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
c39a1801
Commit
c39a1801
authored
Apr 08, 2024
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成用户登录
parent
d455f5c2
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
386 additions
and
47 deletions
+386
-47
.env.development
.env.development
+1
-1
phone.png
src/assets/img/phone.png
+0
-0
wechat.png
src/assets/img/wechat.png
+0
-0
common.css
src/assets/styles/common.css
+42
-1
UserCard.vue
src/components/User/UserCard.vue
+35
-0
index.ts
src/router/index.ts
+6
-3
router.ts
src/router/router.ts
+7
-0
UserService.ts
src/services/UserService.ts
+6
-1
index.ts
src/store/index.ts
+3
-1
user.ts
src/store/user.ts
+41
-6
request.ts
src/utils/request.ts
+3
-3
AutoLogin.vue
src/views/Auth/AutoLogin.vue
+3
-3
Login.vue
src/views/Auth/Login.vue
+209
-0
index.vue
src/views/Editor/EditorHeader/index.vue
+7
-7
Index copy.vue
src/views/Index copy.vue
+3
-3
Index.vue
src/views/Market/Index.vue
+4
-4
Workspace.vue
src/views/SellTemplate/Workspace.vue
+8
-6
SearchDocument.vue
src/views/SellTemplate/components/SearchDocument.vue
+3
-3
journeyAdsList.vue
src/views/SellTemplate/components/journeyAdsList.vue
+5
-5
No files found.
.env.development
View file @
c39a1801
VUE_APP_API_URL = 'http://
192.168.10.214
/api/common/post'
VUE_APP_API_URL = 'http://
localhost:8001
/api/common/post'
VUE_APP_UPLOADURLAPI_URL = 'http://192.168.10.214:8120'
VUE_APP_UPLOADURLAPI_URL = 'http://192.168.10.214:8120'
VUE_APP_SHARE_URL = 'http://127.0.0.1:8080'
VUE_APP_SHARE_URL = 'http://127.0.0.1:8080'
\ No newline at end of file
src/assets/img/phone.png
0 → 100644
View file @
c39a1801
619 Bytes
src/assets/img/wechat.png
0 → 100644
View file @
c39a1801
1.14 KB
src/assets/styles/common.css
View file @
c39a1801
...
@@ -164,6 +164,12 @@ page {
...
@@ -164,6 +164,12 @@ page {
/* left: 50% !important; */
/* left: 50% !important; */
/* margin-left: -2px !important; */
/* margin-left: -2px !important; */
}
}
.primary-borders-thin
{
border
:
1px
solid
#d14424
!important
;
}
.transparent-borders
{
border
:
1px
solid
transparent
;
}
.bg-transparent
{
.bg-transparent
{
background
:
transparent
!important
;
background
:
transparent
!important
;
}
}
...
@@ -222,7 +228,10 @@ page {
...
@@ -222,7 +228,10 @@ page {
}
}
.q-px-xl
{
.q-px-xl
{
padding-left
:
30px
;
padding-left
:
30px
;
padding-right
:
300px
;
padding-right
:
30px
;
}
.q-pa-xl
{
padding
:
30px
;
}
}
.display-none
{
.display-none
{
display
:
none
;
display
:
none
;
...
@@ -275,6 +284,24 @@ page {
...
@@ -275,6 +284,24 @@ page {
margin-right
:
10px
;
margin-right
:
10px
;
margin-left
:
10px
;
margin-left
:
10px
;
}
}
.q-my-xl
{
margin-top
:
30px
;
margin-bottom
:
30px
;
}
.q-py-xl
{
padding-top
:
30px
;
padding-bottom
:
30px
;
}
.q-mt-xl
{
margin-top
:
30px
;
}
.q-mb-xl
{
margin-bottom
:
30px
;
}
.q-py-xl
{
padding-top
:
30px
;
padding-bottom
:
30px
;
}
.q-mr-md
{
.q-mr-md
{
margin-right
:
10px
margin-right
:
10px
}
}
...
@@ -297,6 +324,13 @@ page {
...
@@ -297,6 +324,13 @@ page {
.bg-primary
{
.bg-primary
{
background-color
:
#0b40fe
!important
;
background-color
:
#0b40fe
!important
;
}
}
.text-grey-8
{
color
:
grey
;
}
.cusor-pointer
,
.cursor-pointer
{
cursor
:
pointer
;
}
.q-px-lg
{
.q-px-lg
{
padding-left
:
20px
;
padding-left
:
20px
;
padding-right
:
20px
;
padding-right
:
20px
;
...
@@ -380,6 +414,13 @@ page {
...
@@ -380,6 +414,13 @@ page {
.q-mb-lg
{
.q-mb-lg
{
margin-bottom
:
20px
margin-bottom
:
20px
}
}
.text-weight-bold
{
font-weight
:
bold
;
}
.text-weight-bolder
{
font-weight
:
bolder
;
}
.rounded
{
.rounded
{
border-radius
:
6px
;
border-radius
:
6px
;
-webkit-border-radius
:
6px
;
-webkit-border-radius
:
6px
;
...
...
src/components/User/UserCard.vue
0 → 100644
View file @
c39a1801
<
template
>
<el-popover
:width=
"300"
popper-style=
"box-shadow: rgb(14 18 22 / 35%) 0px 10px 38px -10px, rgb(14 18 22 / 20%) 0px 10px 20px -15px; padding: 20px;"
>
<template
#
reference
>
<div
class=
"row items-center cursor-pointer"
>
<el-avatar
:size=
"40"
:src=
"userInfo.photo"
v-if=
"userInfo.photo && userInfo.photo.includes('http')"
></el-avatar>
<el-avatar
:size=
"40"
v-else
class=
"bg-primary text-white"
>
{{
userInfo
.
nickname
[
0
]
}}
</el-avatar>
<div
class=
"q-ml-md"
>
<div
class=
""
style=
"font-size: 16px; line-height: 1"
>
{{
userInfo
.
nickname
}}
</div>
<img
:src=
"vipIcon"
style=
"height: 15px;"
/>
</div>
</div>
</
template
>
<
template
#
default
>
<div
class=
"row items-center text-small"
>
<span
class=
"text-grey-8"
>
个人账号ID:
</span>
<span
class=
"col text-info"
>
1572131810
</span>
<el-button
class=
"text-grey-8"
link
>
退出登录
</el-button>
</div>
</
template
>
</el-popover>
</template>
<
script
lang=
"ts"
setup
>
import
{
useUserStore
}
from
'@/store'
import
{
storeToRefs
}
from
'pinia'
const
useUser
=
useUserStore
()
const
{
userInfo
}
=
storeToRefs
(
useUser
)
const
vipIcon
=
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1712478244000_568.png'
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
src/router/index.ts
View file @
c39a1801
import
{
createRouter
,
createWebHistory
}
from
'vue-router'
import
{
createRouter
,
createWebHistory
}
from
'vue-router'
import
routes
from
'./router'
import
routes
from
'./router'
import
{
userStore
}
from
'@/store/user'
;
import
{
use
Use
rStore
}
from
'@/store/user'
;
import
{
ElLoading
}
from
'element-plus'
;
import
{
ElLoading
}
from
'element-plus'
;
const
router
=
createRouter
({
const
router
=
createRouter
({
...
@@ -14,7 +14,7 @@ const managerMenu = ['/market','/editor_admin']
...
@@ -14,7 +14,7 @@ const managerMenu = ['/market','/editor_admin']
let
loadingInstance
:
any
=
null
let
loadingInstance
:
any
=
null
router
.
beforeEach
((
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
router
.
beforeEach
((
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
const
user
=
userStore
()
const
user
=
use
Use
rStore
()
if
(
!
loadingInstance
){
if
(
!
loadingInstance
){
loadingInstance
=
ElLoading
.
service
({
loadingInstance
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
...
@@ -22,7 +22,7 @@ router.beforeEach((to:any, from:any, next:any) => {
...
@@ -22,7 +22,7 @@ router.beforeEach((to:any, from:any, next:any) => {
})
})
}
}
if
((
whiteList
.
includes
(
to
.
path
)
||
user
.
getUserToken
!=
''
)
&&
!
to
.
query
.
uid
)
{
if
((
whiteList
.
includes
(
to
.
path
)
||
user
.
getUserToken
!=
''
)
&&
!
to
.
query
.
uid
)
{
if
(
managerMenu
.
includes
(
to
.
path
)
&&
user
.
getUser
.
IsEditTrip
Template
!=
1
){
if
(
managerMenu
.
includes
(
to
.
path
)
&&
user
.
getUser
.
is
Template
!=
1
){
next
(
'/notfound'
);
next
(
'/notfound'
);
}
}
if
(
to
.
meta
.
title
)
{
if
(
to
.
meta
.
title
)
{
...
@@ -30,8 +30,11 @@ router.beforeEach((to:any, from:any, next:any) => {
...
@@ -30,8 +30,11 @@ router.beforeEach((to:any, from:any, next:any) => {
}
}
next
();
next
();
}
else
{
}
else
{
if
(
to
.
query
&&
to
.
query
.
uid
){
if
(
to
.
query
&&
to
.
query
.
uid
){
next
(
`/autoLogin?forword=
${
encodeURIComponent
(
to
.
fullPath
)}
`
)
next
(
`/autoLogin?forword=
${
encodeURIComponent
(
to
.
fullPath
)}
`
)
}
else
if
(
user
.
getUserToken
==
''
)
{
next
(
`/login`
)
}
}
next
(
'/notfound'
);
next
(
'/notfound'
);
}
}
...
...
src/router/router.ts
View file @
c39a1801
...
@@ -9,6 +9,13 @@ const routes: RouteRecordRaw[] = [
...
@@ -9,6 +9,13 @@ const routes: RouteRecordRaw[] = [
title
:
'个人空间'
title
:
'个人空间'
}
}
},
},
{
path
:
'/login'
,
component
:
()
=>
import
(
'@/views/Auth/Login.vue'
),
meta
:{
title
:
'登录 Travel Design'
}
},
{
{
path
:
'/notfound'
,
path
:
'/notfound'
,
component
:
()
=>
import
(
'@/views/ErrorNotFound.vue'
),
component
:
()
=>
import
(
'@/views/ErrorNotFound.vue'
),
...
...
src/services/UserService.ts
View file @
c39a1801
...
@@ -3,9 +3,14 @@ import Api,{ HttpResponse, Result } from './../utils/request';
...
@@ -3,9 +3,14 @@ import Api,{ HttpResponse, Result } from './../utils/request';
class
UserServices
{
class
UserServices
{
static
async
LoginAsync
(
userId
:
number
):
Promise
<
HttpResponse
>
{
static
async
Auto
LoginAsync
(
userId
:
number
):
Promise
<
HttpResponse
>
{
let
msg
=
{
EmployeeId
:
userId
}
let
msg
=
{
EmployeeId
:
userId
}
return
Api
.
Post
(
"admin_get_GetErpLoginInfoByUid"
,
msg
)
return
Api
.
Post
(
"admin_get_GetErpLoginInfoByUid"
,
msg
)
}
}
static
async
PasswordLoginAsync
(
account
:
string
,
pwd
:
string
,
tid
:
string
=
''
):
Promise
<
HttpResponse
>
{
let
msg
=
{
account
,
pwd
,
tid
}
return
Api
.
Post
(
"travel_login_password"
,
msg
)
}
}
}
export
default
UserServices
;
export
default
UserServices
;
\ No newline at end of file
src/store/index.ts
View file @
c39a1801
...
@@ -6,6 +6,7 @@ import { useScreenStore } from './screen'
...
@@ -6,6 +6,7 @@ import { useScreenStore } from './screen'
import
{
useFontStore
}
from
'./font'
import
{
useFontStore
}
from
'./font'
import
{
useMapStore
}
from
'./map'
import
{
useMapStore
}
from
'./map'
import
{
useSellTemplateStore
}
from
'./sellTemplate'
import
{
useSellTemplateStore
}
from
'./sellTemplate'
import
{
useUserStore
}
from
'./user'
export
{
export
{
useMainStore
,
useMainStore
,
...
@@ -15,5 +16,6 @@ export {
...
@@ -15,5 +16,6 @@ export {
useScreenStore
,
useScreenStore
,
useFontStore
,
useFontStore
,
useMapStore
,
useMapStore
,
useSellTemplateStore
useSellTemplateStore
,
useUserStore
}
}
\ No newline at end of file
src/store/user.ts
View file @
c39a1801
import
{
ApiResult
}
from
'@/configs/axios'
;
import
UserService
from
'@/services/UserService'
;
import
UserService
from
'@/services/UserService'
;
import
{
defineStore
}
from
'pinia'
;
import
{
defineStore
}
from
'pinia'
;
import
{
StorageLike
}
from
'pinia-plugin-persistedstate'
;
import
{
StorageLike
}
from
'pinia-plugin-persistedstate'
;
...
@@ -15,7 +16,13 @@ const st: StorageLike = {
...
@@ -15,7 +16,13 @@ const st: StorageLike = {
return
ls
.
get
(
key
);
return
ls
.
get
(
key
);
},
},
}
}
export
const
userStore
=
defineStore
(
'user'
,
{
export
interface
UserLoginResult
{
status
:
'ERROR'
|
'CHOSEN'
|
'SUCCESS'
,
data
?:
any
[]
}
export
const
useUserStore
=
defineStore
(
'user'
,
{
state
:()
=>
({
state
:()
=>
({
token
:
''
as
string
,
token
:
''
as
string
,
userInfo
:{}
as
any
userInfo
:{}
as
any
...
@@ -29,16 +36,44 @@ export const userStore = defineStore('user', {
...
@@ -29,16 +36,44 @@ export const userStore = defineStore('user', {
},
},
},
},
actions
:{
actions
:{
async
setUserLoginAsync
(
userId
:
number
){
async
setUser
Auto
LoginAsync
(
userId
:
number
){
try
{
try
{
let
response
=
await
UserService
.
LoginAsync
(
userId
)
let
response
=
await
UserService
.
AutoLoginAsync
(
userId
)
if
(
response
.
data
.
resultCode
==
1
)
{
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
this
.
token
=
response
.
data
.
data
.
token
const
d
=
response
.
data
.
data
this
.
userInfo
=
response
.
data
.
data
this
.
token
=
d
.
token
d
.
nickname
=
d
.
emName
d
.
photo
=
d
.
Icon
d
.
company
=
d
.
GroupName
d
.
logo
=
d
.
GroupPic
d
.
isTemplate
=
d
.
IsEditTripTemplate
this
.
userInfo
=
d
return
true
return
true
}
}
}
catch
(
error
)
{}
}
catch
(
error
)
{}
return
false
return
false
},
setUserLoginOut
(){
this
.
token
=
''
this
.
userInfo
=
{}
window
.
location
.
href
=
'/login'
},
async
setUserPasswordLoginAsync
(
account
:
string
,
pwd
:
string
,
tid
:
string
=
''
)
{
try
{
let
response
=
await
UserService
.
PasswordLoginAsync
(
account
,
pwd
,
tid
)
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
if
(
!
Array
.
isArray
(
response
.
data
.
data
))
{
this
.
token
=
response
.
data
.
data
.
token
this
.
userInfo
=
response
.
data
.
data
.
userinfo
return
{
status
:
'SUCCESS'
}
as
UserLoginResult
}
else
{
return
{
status
:
'CHOSEN'
,
data
:
response
.
data
.
data
}
as
UserLoginResult
}
}
}
catch
(
error
)
{}
return
{
status
:
'ERROR'
}
as
UserLoginResult
}
}
},
},
persist
:
{
persist
:
{
...
...
src/utils/request.ts
View file @
c39a1801
import
service
,
{
ApiResult
}
from
"../configs/axios"
;
import
service
,
{
ApiResult
}
from
"../configs/axios"
;
import
{
userStore
}
from
"@/store/user"
;
import
{
use
Use
rStore
}
from
"@/store/user"
;
import
md5
from
"md5-ts"
;
import
md5
from
"md5-ts"
;
export
interface
HttpResponse
{
export
interface
HttpResponse
{
...
@@ -24,9 +24,9 @@ class Api{
...
@@ -24,9 +24,9 @@ class Api{
datas
=
msg
datas
=
msg
msg
=
datas
??{}
msg
=
datas
??{}
let
token
=
userStore
().
getUserToken
??
''
let
token
=
use
Use
rStore
().
getUserToken
??
''
let
key
=
""
let
key
=
""
let
groupId
=
userStore
().
getUser
?.
groupId
let
groupId
=
use
Use
rStore
().
getUser
?.
groupId
let
timestamp
=
(
new
Date
()).
valueOf
();
let
timestamp
=
(
new
Date
()).
valueOf
();
var
encodeMsg
=
encodeURIComponent
(
JSON
.
stringify
(
msg
)).
toLowerCase
();
var
encodeMsg
=
encodeURIComponent
(
JSON
.
stringify
(
msg
)).
toLowerCase
();
var
md5Str
=
md5
(
`cmd=
${
cmd
}
&msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
var
md5Str
=
md5
(
`cmd=
${
cmd
}
&msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
...
...
src/views/Auth/AutoLogin.vue
View file @
c39a1801
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
</
template
>
</
template
>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
userStore
}
from
'@/store/user'
;
import
{
use
Use
rStore
}
from
'@/store/user'
;
import
{
query
}
from
'@/utils/common'
;
import
{
query
}
from
'@/utils/common'
;
import
{
ElLoading
}
from
'element-plus'
;
import
{
ElLoading
}
from
'element-plus'
;
import
{
ref
}
from
'vue'
;
import
{
ref
}
from
'vue'
;
...
@@ -22,13 +22,13 @@ const userLoginHandler = async ()=>{
...
@@ -22,13 +22,13 @@ const userLoginHandler = async ()=>{
lock
:
true
lock
:
true
})
})
if
(
param
.
uid
){
if
(
param
.
uid
){
let
response
=
await
use
rStore
().
setUser
LoginAsync
(
parseInt
(
param
.
uid
))
let
response
=
await
use
UserStore
().
setUserAuto
LoginAsync
(
parseInt
(
param
.
uid
))
if
(
response
){
if
(
response
){
if
(
param
.
model
==
'0'
)
{
if
(
param
.
model
==
'0'
)
{
router
.
push
({
router
.
push
({
path
:
`/team_editor/
${
param
.
ConfigId
}
`
path
:
`/team_editor/
${
param
.
ConfigId
}
`
})
})
}
else
if
(
param
.
model
==
'1'
&&
use
rStore
().
getUser
.
IsEditTrip
Template
==
1
)
{
}
else
if
(
param
.
model
==
'1'
&&
use
UserStore
().
getUser
.
is
Template
==
1
)
{
router
.
push
({
router
.
push
({
path
:
`/market`
path
:
`/market`
})
})
...
...
src/views/Auth/Login.vue
0 → 100644
View file @
c39a1801
<
template
>
<div
class=
"login-box q-pa-xl row"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708239425000_437.png"
class=
"logo"
/>
<div
class=
"col column"
>
<div
class=
"col column flex-center items-center"
>
<div
class=
"wel"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1711705161000_818.png"
/>
<h1
style=
"font-size: 32px; text-dark"
class=
"q-my-lg"
>
快速,智能,美观
</h1>
<div
class=
"text-info text-small"
style=
"font-size: 13px;"
>
这里有上百种行程设计模板供你选择
</div>
<div
class=
"text-info text-small q-my-md"
style=
"font-size: 13px;"
>
我们为你提供了大量的插件,支持快速实现自己想要的行程
</div>
<div
class=
"text-info text-small"
style=
"font-size: 13px;"
>
AI助手的辅助让你报价与设计快人一步
</div>
</div>
</div>
<div
class=
"text-center text-small text-info full-width"
>
@2012-2024 成都微途科技有限公司 版权所有 蜀ICP备13024891号-9
</div>
</div>
<div
class=
"login-form q-pa-xl column flex-center items-center"
style=
"padding: 30px 100px;"
v-if=
"token==''"
>
<div
style=
"font-size: 36px; "
class=
"text-dark"
>
登录
</div>
<div
class=
"text-info text-small"
>
你的创作空间
</div>
<template
v-if=
"!multipleUsers || multipleUsers.length==0"
>
<div
class=
"q-py-xl row items-center full-width"
>
<div
class=
"login-type row items-center col"
>
<img
src=
"../../assets/img/wechat.png"
alt=
""
>
<span
class=
"q-ml-md"
>
使用微信扫码登录
</span>
</div>
<div
class=
"login-type row items-center col q-ml-md"
>
<img
src=
"../../assets/img/phone.png"
alt=
""
>
<span
class=
"q-ml-md"
>
使用短信验证登录
</span>
</div>
</div>
<el-divider>
<span
class=
"text-info"
>
或者账号登录
</span>
</el-divider>
<el-form
ref=
"loginFormRef"
:model=
"model"
:rules=
"rules"
label-width=
"0px"
size=
"large"
class=
"full-width q-mt-lg"
>
<el-form-item
label=
""
prop=
"account"
>
<el-input
v-model=
"model.account"
placeholder=
"账号"
/>
</el-form-item>
<el-form-item
label=
""
prop=
"password"
>
<el-input
v-model=
"model.password"
type=
"password"
placeholder=
"密码"
autocomplete=
"new-password"
show-password
class=
"q-mt-lg"
/>
</el-form-item>
<div
class=
"text-right"
>
<el-button
link
type=
"primary"
class=
"q-mb-lg"
>
忘记密码?
</el-button>
</div>
<el-form-item>
<el-button
type=
"primary"
class=
"full-width q-mb-lg"
@
click=
"submitForm(loginFormRef)"
:loading=
"loading"
>
登录
</el-button>
</el-form-item>
<div
class=
"text-info text-small row flex-center"
>
<span>
还没有账号?
</span>
<el-button
link
type=
"primary"
class=
"q-mb-lg"
>
立即注册
</el-button>
</div>
</el-form>
</
template
>
<
template
v-if=
"multipleUsers && multipleUsers.length>0"
>
<el-divider>
<span
class=
"text-info"
>
选择你需要登录的组织
</span>
</el-divider>
<div
v-for=
"x in multipleUsers"
@
click=
"()=>model.tid=x.tid"
class=
"light-shadow q-pa-md row items-center full-width rounded q-mt-xl cursor-pointer q-mb-md transparent-borders"
:class=
"
{'primary-borders-thin':model.tid==x.tid}">
<el-avatar
:size=
"30"
:src=
"x.logo"
></el-avatar>
<div
class=
"q-ml-lg"
>
<div
class=
"text-weight-bold"
style=
"font-size: 20px;"
>
{{
x
.
nickname
}}
</div>
<div
class=
"text-info text-small"
>
{{
x
.
tenantname
}}
</div>
</div>
</div>
<el-button
type=
"primary"
size=
"large"
class=
"full-width q-mt-lg"
@
click=
"loginByCompany"
:loading=
"loading"
:disabled=
"model.tid==''"
>
登录
</el-button>
<div
class=
"text-center q-mt-lg"
>
<el-button
link
type=
"primary"
class=
"q-mb-lg"
@
click=
"clearCompanyChoosenHandler"
>
重新登录
</el-button>
</div>
</
template
>
</div>
<div
class=
"login-form q-pa-xl column flex-center items-center"
style=
"padding: 30px 100px;"
v-else
>
<div
style=
"font-size: 36px; "
class=
"text-dark"
>
已登录
</div>
<div
class=
"text-info text-small"
>
你的创作空间
</div>
<div
class=
"q-py-xl flex-center items-center column"
>
<el-avatar
:size=
"100"
:scr=
"userInfo.photo"
>
{{ userInfo.photo
&&
userInfo.photo.includes('http') ? '' :userInfo.nickname[0] }}
</el-avatar>
<div
class=
"q-mt-md text-weight-bold"
style=
"font-size: 18px;"
>
{{ userInfo.nickname }}
</div>
<div
class=
"q-mt-md text-small text-info"
>
{{ userInfo.company }}
</div>
<div
class=
"q-mt-lg row items-center"
>
<el-button
@
click=
"loginOutHandler"
>
退出登录
</el-button>
<el-button
class=
"q-ml-md"
type=
"primary"
@
click=
"forwardWorkspaceHandler"
>
进入工作台
</el-button>
</div>
</div>
</div>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
useUserStore
}
from
'@/store/user'
;
import
{
ElMessage
,
FormInstance
,
FormRules
}
from
'element-plus'
;
import
{
reactive
,
ref
}
from
'vue'
;
interface
RuleForm
{
account
:
string
password
:
string
}
const
model
=
ref
<
{
account
:
string
,
password
:
string
,
tid
:
string
}
>
({
account
:
''
,
password
:
''
,
tid
:
''
})
const
loginFormRef
=
ref
<
FormInstance
>
()
const
loading
=
ref
(
false
)
const
user
=
useUserStore
()
const
token
=
user
.
getUserToken
??
''
const
userInfo
=
user
.
getUser
const
multipleUsers
=
ref
<
any
[]
>
([])
const
rules
=
reactive
<
FormRules
<
RuleForm
>>
({
account
:
[
{
required
:
true
,
message
:
'请输入你的账号'
,
trigger
:
'blur'
},
{
min
:
6
,
message
:
'请输入正确的账号'
,
trigger
:
'blur'
},
],
password
:
[
{
required
:
true
,
message
:
'请输入你的密码'
,
trigger
:
'blur'
},
{
min
:
6
,
max
:
20
,
message
:
'请输入正确的密码'
,
trigger
:
'blur'
},
]
})
const
submitForm
=
async
(
formEl
:
FormInstance
|
undefined
)
=>
{
if
(
!
formEl
)
return
loading
.
value
=
true
await
formEl
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
await
userLoginHandler
()
}
})
loading
.
value
=
false
}
const
loginByCompany
=
async
()
=>
{
if
(
model
.
value
.
tid
==
''
)
ElMessage
.
error
({
message
:
'请选择需要登录的组织'
})
else
{
loading
.
value
=
true
await
userLoginHandler
()
loading
.
value
=
false
}
}
const
userLoginHandler
=
async
()
=>
{
const
result
=
await
user
.
setUserPasswordLoginAsync
(
model
.
value
.
account
,
model
.
value
.
password
,
model
.
value
.
tid
)
if
(
result
.
status
==
'SUCCESS'
){
ElMessage
.
success
({
message
:
'登录成功'
})
location
.
href
=
'/'
;
}
else
if
(
result
.
status
==
'CHOSEN'
&&
Array
.
isArray
(
result
.
data
)){
multipleUsers
.
value
=
result
.
data
}
else
{
ElMessage
.
error
({
message
:
'账号或密码错误'
})
}
}
const
forwardWorkspaceHandler
=
()
=>
{
location
.
href
=
'/'
;
}
const
clearCompanyChoosenHandler
=
()
=>
{
multipleUsers
.
value
=
[]
model
.
value
.
tid
=
''
}
const
loginOutHandler
=
()
=>
{
user
.
setUserLoginOut
()
}
</
script
>
<
style
>
.login-box
{
background-color
:
#f8f7fc
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1711704450000_818.jpeg')
;
background-position
:
center
;
background-attachment
:
fixed
;
background-size
:
cover
;
width
:
100vw
;
height
:
100vh
;
position
:
relative
;
}
.login-box
.logo
{
height
:
30px
;
width
:
auto
;
top
:
80px
;
left
:
80px
;
position
:
absolute
;
z-index
:
2
;
}
.login-box
.foot-box
{
position
:
absolute
;
bottom
:
30px
;
}
.login-box
.login-form
{
width
:
600px
;
background-color
:
#FFF
;
border-radius
:
15px
;
}
.login-box
.wel
{
text-align
:
center
;
}
.login-box
.wel
img
{
width
:
300px
;
height
:
auto
;
}
.login-box
.login-type
{
border
:
1px
solid
#dbdfe9
;
padding
:
10px
20px
;
border-radius
:
6px
;
text-align
:
center
;
cursor
:
pointer
;
font-size
:
14px
;
}
.login-box
.login-type
:hover
{
background-color
:
#f8f7fc
;
color
:
var
(
--el-color-primary
);
}
.login-box
.login-type
img
{
width
:
16px
;
}
</
style
>
\ No newline at end of file
src/views/Editor/EditorHeader/index.vue
View file @
c39a1801
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
<div class="arrow-btn"><IconDown class="arrow" /></div>
<div class="arrow-btn"><IconDown class="arrow" /></div>
</Popover>
</Popover>
</div> -->
</div> -->
<div
class=
"group-menu-item"
v-if=
"userInfo.
IsEditTrip
Template==1&&model==1"
>
<div
class=
"group-menu-item"
v-if=
"userInfo.
is
Template==1&&model==1"
>
<div
class=
"menu-item"
v-tooltip=
"'导入PSD'"
@
click=
"UploadPsdHandler"
>
<div
class=
"menu-item"
v-tooltip=
"'导入PSD'"
@
click=
"UploadPsdHandler"
>
<IconUpload
class=
"icon"
/>
<IconUpload
class=
"icon"
/>
</div>
</div>
...
@@ -74,10 +74,10 @@
...
@@ -74,10 +74,10 @@
<IconDownload
class=
"icon"
/>
<IconDownload
class=
"icon"
/>
</div>
</div>
<el-button
type=
"primary"
<el-button
type=
"primary"
v-if=
"(userInfo.
IsEditTrip
Template==1||ConfigId>0)&&model!=2"
v-if=
"(userInfo.
is
Template==1||ConfigId>0)&&model!=2"
size=
"small"
:loading=
"datas.loading"
size=
"small"
:loading=
"datas.loading"
@
click=
"setTemplate"
style=
"color: #ffff;margin-left: 10px;"
>
@
click=
"setTemplate"
style=
"color: #ffff;margin-left: 10px;"
>
<
template
v-if=
"userInfo.
IsEditTrip
Template==1&&model==1"
>
<
template
v-if=
"userInfo.
is
Template==1&&model==1"
>
保存
{{
searchData
.
TemplateType
!=
2
?
'模板'
:
'广告'
}}
保存
{{
searchData
.
TemplateType
!=
2
?
'模板'
:
'广告'
}}
</
template
>
</
template
>
<
template
v-if=
"ConfigId>0&&model!=2"
>
<
template
v-if=
"ConfigId>0&&model!=2"
>
...
@@ -150,7 +150,7 @@ import useScreening from '@/hooks/useScreening'
...
@@ -150,7 +150,7 @@ import useScreening from '@/hooks/useScreening'
import
useImport
from
'@/hooks/useImport'
import
useImport
from
'@/hooks/useImport'
import
useSlideHandler
from
'@/hooks/useSlideHandler'
import
useSlideHandler
from
'@/hooks/useSlideHandler'
import
type
{
DialogForExportTypes
}
from
'@/types/export'
import
type
{
DialogForExportTypes
}
from
'@/types/export'
import
{
userStore
}
from
"@/store/user"
;
import
{
use
Use
rStore
}
from
"@/store/user"
;
import
{
useScreenStore
}
from
"@/store/screen"
;
import
{
useScreenStore
}
from
"@/store/screen"
;
import
ConfigService
from
'@/services/ConfigService'
import
ConfigService
from
'@/services/ConfigService'
import
{
injectKeyDataSource
,
injectKeyTemplate
}
from
'@/types/injectKey'
import
{
injectKeyDataSource
,
injectKeyTemplate
}
from
'@/types/injectKey'
...
@@ -197,7 +197,7 @@ const titleValue = ref('')
...
@@ -197,7 +197,7 @@ const titleValue = ref('')
const
{
setNewDatasList
}
=
useEditor
()
const
{
setNewDatasList
}
=
useEditor
()
const
autoSave
=
inject
(
"SellTravelSave"
)
as
any
const
autoSave
=
inject
(
"SellTravelSave"
)
as
any
const
{
userInfo
}
=
storeToRefs
(
userStore
())
const
{
userInfo
}
=
storeToRefs
(
use
Use
rStore
())
const
datas
=
reactive
({
const
datas
=
reactive
({
DataSource
:{},
DataSource
:{},
...
@@ -490,7 +490,7 @@ const setTemplate = async (type) =>{
...
@@ -490,7 +490,7 @@ const setTemplate = async (type) =>{
if
(
dataLoading
.
value
){
if
(
dataLoading
.
value
){
dataLoadingStore
.
setDataLoading
(
0
)
dataLoadingStore
.
setDataLoading
(
0
)
}
}
if
(
model
.
value
==
1
&&
userInfo
.
value
.
IsEditTrip
Template
==
1
){
if
(
model
.
value
==
1
&&
userInfo
.
value
.
is
Template
==
1
){
arr
.
forEach
(
x
=>
{
arr
.
forEach
(
x
=>
{
if
(
searchData
.
value
.
TemplateType
==
2
)
{
if
(
searchData
.
value
.
TemplateType
==
2
)
{
x
.
pageType
=
0
x
.
pageType
=
0
...
@@ -547,7 +547,7 @@ const setTemplate = async (type) =>{
...
@@ -547,7 +547,7 @@ const setTemplate = async (type) =>{
}
}
queryObj
.
value
.
TempData
=
JSON
.
stringify
(
arr
)
queryObj
.
value
.
TempData
=
JSON
.
stringify
(
arr
)
if
(
model
.
value
==
1
&&
userInfo
.
value
.
IsEditTrip
Template
==
1
){
if
(
model
.
value
==
1
&&
userInfo
.
value
.
is
Template
==
1
){
datas
.
loading
=
true
datas
.
loading
=
true
await
SetTripTemplateSlide
()
await
SetTripTemplateSlide
()
}
else
if
(
ConfigId
.
value
&&
model
.
value
!=
2
){
}
else
if
(
ConfigId
.
value
&&
model
.
value
!=
2
){
...
...
src/views/Index copy.vue
View file @
c39a1801
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
import
{
LOCALSTORAGE_KEY_DISCARDED_DB
}
from
'@/configs/storage'
import
{
LOCALSTORAGE_KEY_DISCARDED_DB
}
from
'@/configs/storage'
import
{
deleteDiscardedDB
}
from
'@/utils/database'
import
{
deleteDiscardedDB
}
from
'@/utils/database'
import
{
isPC
,
query
}
from
'@/utils/common'
import
{
isPC
,
query
}
from
'@/utils/common'
import
{
userStore
}
from
'@/store/user'
import
{
use
Use
rStore
}
from
'@/store/user'
import
{
injectKeyTemplate
}
from
'@/types/injectKey'
import
{
injectKeyTemplate
}
from
'@/types/injectKey'
import
ConfigService
from
'@/services/ConfigService'
import
ConfigService
from
'@/services/ConfigService'
import
{
domainManager
}
from
'@/utils/domainManager'
import
{
domainManager
}
from
'@/utils/domainManager'
...
@@ -58,7 +58,7 @@
...
@@ -58,7 +58,7 @@
const
slidesStore
=
useSlidesStore
()
const
slidesStore
=
useSlidesStore
()
const
{
databaseId
}
=
storeToRefs
(
mainStore
)
const
{
databaseId
}
=
storeToRefs
(
mainStore
)
const
{
screening
,
market
,
model
,
ConfigId
}
=
storeToRefs
(
useScreenStore
())
const
{
screening
,
market
,
model
,
ConfigId
}
=
storeToRefs
(
useScreenStore
())
const
{
userInfo
}
=
storeToRefs
(
userStore
())
const
{
userInfo
}
=
storeToRefs
(
use
Use
rStore
())
const
{
SalesEditor
,
SalesTripId
}
=
storeToRefs
(
useSellTemplateStore
())
const
{
SalesEditor
,
SalesTripId
}
=
storeToRefs
(
useSellTemplateStore
())
const
{
slides
}
=
storeToRefs
(
useSlidesStore
())
const
{
slides
}
=
storeToRefs
(
useSlidesStore
())
const
{
enterScreeningFromStart
}
=
storeToRefs
(
useScreenStore
())
const
{
enterScreeningFromStart
}
=
storeToRefs
(
useScreenStore
())
...
@@ -84,7 +84,7 @@
...
@@ -84,7 +84,7 @@
ConfigIdStore
.
setConfigId
(
ConfigId
)
ConfigIdStore
.
setConfigId
(
ConfigId
)
modelStore
.
setModel
(
model
)
modelStore
.
setModel
(
model
)
try
{
try
{
if
(
param
.
uid
)
await
use
rStore
().
setUser
LoginAsync
(
userId
)
if
(
param
.
uid
)
await
use
UserStore
().
setUserAuto
LoginAsync
(
userId
)
if
(
ConfigId
>
0
&&
model
!=
2
)
await
GetTripConfig
(
ConfigId
)
if
(
ConfigId
>
0
&&
model
!=
2
)
await
GetTripConfig
(
ConfigId
)
}
catch
(
error
)
{}
}
catch
(
error
)
{}
if
(
userId
>
0
)
isFinish
.
value
=
true
if
(
userId
>
0
)
isFinish
.
value
=
true
...
...
src/views/Market/Index.vue
View file @
c39a1801
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
<el-col
:span=
"6"
style=
"text-align: right;"
>
<el-col
:span=
"6"
style=
"text-align: right;"
>
<el-dropdown
split-button
<el-dropdown
split-button
size=
"small"
type=
"primary"
size=
"small"
type=
"primary"
v-if=
"userInfo.
IsEditTrip
Template==1 && model==1"
v-if=
"userInfo.
is
Template==1 && model==1"
@
click=
"addTemplate(1)"
>
@
click=
"addTemplate(1)"
>
<span
style=
"font-size: 23px;margin-right: 10px;"
>
+
</span>
<span>
创建
</span>
<span
style=
"font-size: 23px;margin-right: 10px;"
>
+
</span>
<span>
创建
</span>
<
template
#
dropdown
>
<
template
#
dropdown
>
...
@@ -196,7 +196,7 @@
...
@@ -196,7 +196,7 @@
<el-button
class=
"MarketIndexButtom"
type=
"primary"
<el-button
class=
"MarketIndexButtom"
type=
"primary"
@
click=
"goToTemplate(item)"
>
选择该
{{
item
.
TemplateType
!=
2
?
'模版'
:
'广告'
}}
</el-button>
@
click=
"goToTemplate(item)"
>
选择该
{{
item
.
TemplateType
!=
2
?
'模版'
:
'广告'
}}
</el-button>
</div>
</div>
<div
class=
"q-mt-lg"
v-if=
"userInfo.
IsEditTrip
Template==1 && model==1"
>
<div
class=
"q-mt-lg"
v-if=
"userInfo.
is
Template==1 && model==1"
>
<el-button
class=
"MarketIndexButtom"
type=
"primary"
<el-button
class=
"MarketIndexButtom"
type=
"primary"
@
click=
"deleteTemplate(item)"
>
删除
</el-button>
@
click=
"deleteTemplate(item)"
>
删除
</el-button>
</div>
</div>
...
@@ -239,7 +239,7 @@
...
@@ -239,7 +239,7 @@
import
{
reactive
,
ref
,
inject
,
watch
,
onMounted
}
from
"vue"
;
import
{
reactive
,
ref
,
inject
,
watch
,
onMounted
}
from
"vue"
;
import
LineService
from
'@/services/LineService'
import
LineService
from
'@/services/LineService'
import
ConfigService
from
'@/services/ConfigService'
import
ConfigService
from
'@/services/ConfigService'
import
{
userStore
}
from
"@/store/user"
;
import
{
use
Use
rStore
}
from
"@/store/user"
;
import
{
useSellTemplateStore
}
from
'@/store'
import
{
useSellTemplateStore
}
from
'@/store'
import
{
useScreenStore
}
from
"@/store/screen"
;
import
{
useScreenStore
}
from
"@/store/screen"
;
import
{
storeToRefs
}
from
"pinia"
;
import
{
storeToRefs
}
from
"pinia"
;
...
@@ -250,7 +250,7 @@ import { useRouter } from "vue-router";
...
@@ -250,7 +250,7 @@ import { useRouter } from "vue-router";
const
{
const
{
userInfo
userInfo
}
=
storeToRefs
(
userStore
())
}
=
storeToRefs
(
use
Use
rStore
())
const
router
=
useRouter
();
const
router
=
useRouter
();
const
lines
=
ref
([]
as
Array
<
any
>
)
//线路
const
lines
=
ref
([]
as
Array
<
any
>
)
//线路
const
countriesOther
=
ref
([
'日本'
,
'韩国'
,
'老挝'
,
'法国'
,
'意大利'
]
as
Array
<
any
>
)
//国家
const
countriesOther
=
ref
([
'日本'
,
'韩国'
,
'老挝'
,
'法国'
,
'意大利'
]
as
Array
<
any
>
)
//国家
...
...
src/views/SellTemplate/Workspace.vue
View file @
c39a1801
...
@@ -6,8 +6,9 @@
...
@@ -6,8 +6,9 @@
<SearchDocument
@
open-position=
"openFilePosition"
></SearchDocument>
<SearchDocument
@
open-position=
"openFilePosition"
></SearchDocument>
</div>
</div>
<div
class=
"user"
>
<div
class=
"user"
>
<el-avatar
:size=
"30"
:src=
"userInfo.Icon"
v-if=
"userInfo.Icon"
/>
<!--
<el-avatar
:size=
"30"
:src=
"userInfo.photo"
v-if=
"userInfo.photo"
/>
<el-avatar
:size=
"30"
v-else
>
{{
userInfo
.
EmName
[
0
]
}}
</el-avatar>
<el-avatar
:size=
"30"
v-else
>
{{
userInfo
.
nickname
[
0
]
}}
</el-avatar>
-->
<UserCard></UserCard>
</div>
</div>
</div>
</div>
<div
class=
"col row"
>
<div
class=
"col row"
>
...
@@ -87,22 +88,23 @@
...
@@ -87,22 +88,23 @@
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
userStore
}
from
'@/store/user'
;
import
{
use
Use
rStore
}
from
'@/store/user'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
ref
,
reactive
,
provide
,
inject
}
from
'vue'
;
import
{
ref
}
from
'vue'
;
import
SearchDocument
from
'./components/SearchDocument.vue'
import
SearchDocument
from
'./components/SearchDocument.vue'
import
BrowsingHistory
from
'./BrowsingHistory.vue'
import
BrowsingHistory
from
'./BrowsingHistory.vue'
import
StarTarget
from
'./StarTarget.vue'
import
StarTarget
from
'./StarTarget.vue'
import
ShareList
from
'./Share.vue'
;
import
ShareList
from
'./Share.vue'
;
import
journeyAds
from
'./journeyAds.vue'
import
journeyAds
from
'./journeyAds.vue'
import
RecycleBin
from
'./RecycleBin.vue'
import
RecycleBin
from
'./RecycleBin.vue'
import
UserCard
from
'@/components/User/UserCard.vue'
import
{
Plus
,
ArrowDown
,
Clock
,
Star
,
Share
,
Picture
,
Management
,
Delete
}
from
'@element-plus/icons-vue'
;
import
{
Plus
,
ArrowDown
,
Clock
,
Star
,
Share
,
Picture
,
Management
,
Delete
}
from
'@element-plus/icons-vue'
;
import
{
useSellTemplateStore
,
useScreenStore
,
useSlidesStore
}
from
'@/store'
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
openNewBlank
}
from
'@/utils/common'
;
import
{
openNewBlank
}
from
'@/utils/common'
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
{
userInfo
}
=
storeToRefs
(
userStore
())
const
{
userInfo
}
=
storeToRefs
(
useUserStore
())
console
.
log
(
userInfo
.
value
)
const
currentMenu
=
ref
<
number
>
(
0
)
const
currentMenu
=
ref
<
number
>
(
0
)
const
position
=
ref
<
{
FileId
:
number
,
FileType
:
1
|
2
,
Position
:{
FileId
:
number
,
FileName
:
string
}[]}
|
null
>
(
null
)
const
position
=
ref
<
{
FileId
:
number
,
FileType
:
1
|
2
,
Position
:{
FileId
:
number
,
FileName
:
string
}[]}
|
null
>
(
null
)
...
...
src/views/SellTemplate/components/SearchDocument.vue
View file @
c39a1801
...
@@ -51,7 +51,7 @@
...
@@ -51,7 +51,7 @@
import
{
inject
,
ref
}
from
'vue'
;
import
{
inject
,
ref
}
from
'vue'
;
import
{
Search
}
from
'@element-plus/icons-vue'
;
import
{
Search
}
from
'@element-plus/icons-vue'
;
import
ConfigService
from
'@/services/ConfigService'
;
import
ConfigService
from
'@/services/ConfigService'
;
import
{
userStore
}
from
'@/store/user'
;
import
{
use
Use
rStore
}
from
'@/store/user'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
formatDateTimeToRead
}
from
'@/utils/common'
import
{
formatDateTimeToRead
}
from
'@/utils/common'
import
{
useScreenStore
,
useSellTemplateStore
,
useSlidesStore
}
from
'@/store'
;
import
{
useScreenStore
,
useSellTemplateStore
,
useSlidesStore
}
from
'@/store'
;
...
@@ -62,7 +62,7 @@ const emit = defineEmits<{
...
@@ -62,7 +62,7 @@ const emit = defineEmits<{
(
event
:
'open-position'
,
playload
:
any
):
void
(
event
:
'open-position'
,
playload
:
any
):
void
}
>
()
}
>
()
const
{
userInfo
}
=
storeToRefs
(
userStore
())
const
{
userInfo
}
=
storeToRefs
(
use
Use
rStore
())
const
searchKey
=
ref
<
string
>
(
''
)
const
searchKey
=
ref
<
string
>
(
''
)
const
isSearchFocus
=
ref
(
false
)
const
isSearchFocus
=
ref
(
false
)
const
searchType
=
ref
<
string
>
(
'0'
)
const
searchType
=
ref
<
string
>
(
'0'
)
...
@@ -73,7 +73,7 @@ const searchData = ref({} as any);
...
@@ -73,7 +73,7 @@ const searchData = ref({} as any);
searchData
.
value
=
inject
(
injectKeyTemplate
);
searchData
.
value
=
inject
(
injectKeyTemplate
);
const
showRightContent
=
ref
(
0
)
const
showRightContent
=
ref
(
0
)
const
loggedder
=
ref
(
''
)
const
loggedder
=
ref
(
''
)
loggedder
.
value
=
userInfo
.
value
.
emN
ame
loggedder
.
value
=
userInfo
.
value
.
nickn
ame
const
searchHandler
=
()
=>
{
const
searchHandler
=
()
=>
{
if
(
loading
.
value
)
return
if
(
loading
.
value
)
return
...
...
src/views/SellTemplate/components/journeyAdsList.vue
View file @
c39a1801
...
@@ -180,7 +180,7 @@
...
@@ -180,7 +180,7 @@
emit('success')}"
></TreeFileRecover>
emit('success')}"
></TreeFileRecover>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
userStore
}
from
'@/store/user'
;
import
{
use
Use
rStore
}
from
'@/store/user'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
ApiResult
}
from
'@/configs/axios'
;
import
{
ApiResult
}
from
'@/configs/axios'
;
import
OrgService
from
'@/services/OrgService'
;
import
OrgService
from
'@/services/OrgService'
;
...
@@ -257,8 +257,8 @@ import { useRouter } from 'vue-router';
...
@@ -257,8 +257,8 @@ import { useRouter } from 'vue-router';
});
});
const
SalesEditorStore
=
useSellTemplateStore
();
const
SalesEditorStore
=
useSellTemplateStore
();
const
marketStore
=
useScreenStore
();
const
marketStore
=
useScreenStore
();
const
{
userInfo
}
=
storeToRefs
(
userStore
())
const
{
userInfo
}
=
storeToRefs
(
use
Use
rStore
())
datas
.
loggedder
=
userInfo
.
value
.
emN
ame
datas
.
loggedder
=
userInfo
.
value
.
nickn
ame
const
router
=
useRouter
()
const
router
=
useRouter
()
const
dataList
=
ref
([]
as
Array
<
any
>
);
const
dataList
=
ref
([]
as
Array
<
any
>
);
dataList
.
value
=
props
.
list
dataList
.
value
=
props
.
list
...
@@ -609,8 +609,8 @@ import { useRouter } from 'vue-router';
...
@@ -609,8 +609,8 @@ import { useRouter } from 'vue-router';
else
DeleteFile
(
row
);
else
DeleteFile
(
row
);
}
else
{
}
else
{
if
(
row
.
FileType
)
{
if
(
row
.
FileType
)
{
const
cp
=
userInfo
.
value
.
emN
ame
!=
row
.
CreateName
&&
row
.
IsView
==
0
?
0
:
1
const
cp
=
userInfo
.
value
.
nickn
ame
!=
row
.
CreateName
&&
row
.
IsView
==
0
?
0
:
1
const
ep
=
userInfo
.
value
.
emN
ame
!=
row
.
CreateName
&&
row
.
IsDownLoad
==
0
?
0
:
1
const
ep
=
userInfo
.
value
.
nickn
ame
!=
row
.
CreateName
&&
row
.
IsDownLoad
==
0
?
0
:
1
//@TODO:返回字段中缺少CreateBy,
//@TODO:返回字段中缺少CreateBy,
const
url
=
createSaleEditorLink
(
row
.
FileId
,
row
.
TempId
,
row
.
FileType
,
row
.
ParentFileId
,
ep
,
cp
)
const
url
=
createSaleEditorLink
(
row
.
FileId
,
row
.
TempId
,
row
.
FileType
,
row
.
ParentFileId
,
ep
,
cp
)
router
.
push
({
router
.
push
({
...
...
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