Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
339f967c
提交
339f967c
authored
7月 06, 2023
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 新增公众号授权
上级
4ad890e2
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
84 行增加
和
219 行删除
+84
-219
ConnectionIcon.vue
src/components/ConnectionIcon.vue
+0
-0
api.ts
src/modules/connect/api.ts
+17
-2
FormDialog.vue
src/modules/connect/components/FormDialog.vue
+0
-0
ListItem.vue
src/modules/connect/components/ListItem.vue
+5
-1
StepOne.vue
src/modules/connect/components/StepOne.vue
+19
-40
StepTwo.vue
src/modules/connect/components/StepTwo.vue
+19
-132
types.ts
src/modules/connect/types.ts
+15
-2
View.vue
src/modules/connect/views/View.vue
+0
-0
Index.vue
src/modules/home/views/Index.vue
+4
-17
BindConnection.vue
src/modules/trip/template/components/BindConnection.vue
+3
-23
Image.vue
src/modules/user/views/Image.vue
+1
-1
vite.config.ts
vite.config.ts
+1
-1
没有找到文件。
src/components/ConnectionIcon.vue
浏览文件 @
339f967c
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/modules/connect/api.ts
浏览文件 @
339f967c
...
@@ -6,7 +6,7 @@ export function getConnectionList(params: { created_operator?: string; type?: st
...
@@ -6,7 +6,7 @@ export function getConnectionList(params: { created_operator?: string; type?: st
}
}
// 创建链接
// 创建链接
export
function
createConnection
(
data
:
{
type
:
string
;
config_attributes
:
string
})
{
export
function
createConnection
(
data
:
{
type
:
string
;
config_attributes
:
any
})
{
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/create'
,
data
)
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/create'
,
data
)
}
}
...
@@ -16,7 +16,7 @@ export function getConnectionDetails(params: { id?: string }) {
...
@@ -16,7 +16,7 @@ export function getConnectionDetails(params: { id?: string }) {
}
}
// 更新链接
// 更新链接
export
function
updateConnection
(
data
:
{
id
:
string
;
config_attributes
:
string
})
{
export
function
updateConnection
(
data
:
{
id
:
string
;
config_attributes
:
any
})
{
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/update'
,
data
)
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/update'
,
data
)
}
}
...
@@ -39,3 +39,18 @@ export function getSurveyForm(params: { form_id: string }) {
...
@@ -39,3 +39,18 @@ export function getSurveyForm(params: { form_id: string }) {
export
function
submitSurveyForm
(
data
:
{
id
:
string
;
form_id
:
string
;
form
:
string
})
{
export
function
submitSurveyForm
(
data
:
{
id
:
string
;
form_id
:
string
;
form
:
string
})
{
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/save-survey-form-view'
,
data
)
return
httpRequest
.
post
(
'/api/lab/v1/experiment/connection/save-survey-form-view'
,
data
)
}
}
// 获取公众号第三方授权操作地址
export
function
getWechatAuth
(
params
:
{
connection_id
:
string
;
auth_type
?:
1
|
2
|
3
;
redirect_uri
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/wechat-platform/auth'
,
{
params
})
}
// 同步授权方公众号信息到本地
export
function
asyncOfficialAccountInfo
(
params
:
{
connection_id
:
string
;
appid
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/wechat-platform/async-official-account'
,
{
params
})
}
// 同步微信公众号用户到本地
export
function
asyncOfficialAccountUsers
(
params
:
{
connection_id
:
string
;
appid
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/wechat-platform/async-official-account'
,
{
params
})
}
src/modules/connect/components/FormDialog.vue
浏览文件 @
339f967c
差异被折叠。
点击展开。
src/modules/connect/components/ListItem.vue
浏览文件 @
339f967c
...
@@ -27,6 +27,10 @@ const routerView = function () {
...
@@ -27,6 +27,10 @@ const routerView = function () {
const
edit
=
function
()
{
const
edit
=
function
()
{
emits
(
'edit'
,
props
.
data
.
id
)
emits
(
'edit'
,
props
.
data
.
id
)
}
}
const
iconMap
=
{
'13'
:
'99'
,
'14'
:
'100'
}
</
script
>
</
script
>
<
template
>
<
template
>
...
@@ -40,7 +44,7 @@ const edit = function () {
...
@@ -40,7 +44,7 @@ const edit = function () {
<el-icon
size=
"20"
color=
"#333"
><Delete
/></el-icon>
<el-icon
size=
"20"
color=
"#333"
><Delete
/></el-icon>
</div>
</div>
<div
class=
"connect-item__icon"
>
<div
class=
"connect-item__icon"
>
<Icon
w=
"40"
h=
"40"
:multi
colour=
"true"
class=
"svg"
:name=
"
data.type"
></Icon>
<Icon
w=
"40"
h=
"40"
:multi
Color=
"true"
class=
"svg"
:name=
"iconMap[data.type] ||
data.type"
></Icon>
</div>
</div>
<p>
<p>
{{
data
.
type
===
'12'
?
data
.
config_attributes
[
0
].
value
:
data
.
type_name
}}
{{
data
.
type
===
'12'
?
data
.
config_attributes
[
0
].
value
:
data
.
type_name
}}
...
...
src/modules/connect/components/StepOne.vue
浏览文件 @
339f967c
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
type
{
IconProp
}
from
'../types'
import
type
{
PlatformItem
}
from
'../types'
import
Icon
from
'@/components/ConnectionIcon.vue'
import
Icon
from
'@/components/ConnectionIcon.vue'
// icon
defineProps
<
{
platformList
:
PlatformItem
[]
}
>
()
const
iconItems
=
$ref
<
IconProp
[]
>
([
const
modelValue
=
defineModel
<
string
>
({
default
:
'1'
})
{
label
:
'公众号'
,
name
:
'1'
,
checkbox
:
true
},
{
label
:
'钉钉'
,
name
:
'2'
,
checkbox
:
false
},
{
label
:
'小鹅通'
,
name
:
'3'
,
checkbox
:
false
},
{
label
:
'问卷星'
,
name
:
'4'
,
checkbox
:
false
},
{
label
:
'今日头条'
,
name
:
'5'
,
checkbox
:
false
},
{
label
:
'抖音'
,
name
:
'6'
,
checkbox
:
false
},
{
label
:
'微博'
,
name
:
'7'
,
checkbox
:
false
},
{
label
:
'小红书'
,
name
:
'8'
,
checkbox
:
false
},
{
label
:
'邮箱'
,
name
:
'9'
,
checkbox
:
false
},
{
label
:
'短信'
,
name
:
'10'
,
checkbox
:
false
},
{
label
:
'内部消息'
,
name
:
'11'
,
checkbox
:
false
},
{
label
:
'自定义'
,
name
:
'12'
,
checkbox
:
false
},
{
label
:
'卷王'
,
name
:
'13'
,
checkbox
:
false
}
])
let
typeValue
=
ref
<
IconProp
>
({
label
:
'公众号'
,
name
:
'1'
,
checkbox
:
true
})
const
emit
=
defineEmits
<
{
change
:
[
data
:
PlatformItem
]
}
>
()
const
handleIcon
=
function
(
data
:
IconProp
)
{
function
handleChange
(
item
:
PlatformItem
)
{
iconItems
.
forEach
((
item
:
IconProp
)
=>
(
item
.
checkbox
=
false
))
modelValue
.
value
=
item
.
type
data
.
checkbox
=
true
emit
(
'change'
,
item
)
typeValue
.
value
=
data
}
}
const
getData
=
function
()
{
return
typeValue
.
value
}
defineExpose
({
getData
})
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"connect-from_icon__box"
>
<div
class=
"connect-from_icon__box"
>
<div
v-for=
"item in iconItems"
:key=
"item.name"
:class=
"item.checkbox ? 'mr20-mt20 active box' : 'mr20-mt20 box'
"
>
<div
class=
"box"
v-for=
"item in platformList"
:key=
"item.type"
:class=
"
{ active: item.type === modelValue }" @click="handleChange(item)
">
<div
@
click=
"handleIcon(item)"
class=
"connect-form_icon"
:style=
"`background: $
{item.checkbox ? '#AA1941' : ''}`
">
<div
class=
"connect-form_icon
"
>
<Icon
:multi
colour=
"!item.checkbox"
:color=
"item.checkbox ? '#fff' : ''"
class=
"svg"
:name=
"item.nam
e"
></Icon>
<Icon
:multi
Color=
"item.type !== modelValue"
:color=
"item.type === modelValue ? '#fff' : ''"
class=
"svg"
:name=
"item.icon || item.typ
e"
></Icon>
</div>
</div>
<div
class=
"name"
>
{{
item
.
label
}}
</div>
<div
class=
"name"
>
{{
item
.
type_name
}}
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.connect-from_icon__box
{
.connect-from_icon__box
{
display
:
grid
;
grid-template-columns
:
repeat
(
4
,
1fr
);
row-gap
:
20px
;
column-gap
:
20px
;
.box
{
.box
{
padding
:
10px
20px
;
padding
:
10px
20px
;
width
:
180px
;
height
:
100px
;
height
:
100px
;
border
:
1px
dashed
#ddd
;
border
:
1px
dashed
#ddd
;
}
cursor
:
pointer
;
padding
:
10px
;
display
:
flex
;
flex-wrap
:
wrap
;
.mr20-mt20
{
margin-right
:
20px
;
margin-bottom
:
20px
;
&
.active
{
&
.active
{
.name
{
.name
{
color
:
#ba143e
;
color
:
#ba143e
;
}
}
.connect-form_icon
{
.connect-form_icon
{
background
:
#aa1941
;
box-shadow
:
2px
2px
10px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
box-shadow
:
2px
2px
10px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
}
}
}
}
...
...
src/modules/connect/components/StepTwo.vue
浏览文件 @
339f967c
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
type
{
FormInstance
}
from
'element-plus'
import
type
{
FormInstance
}
from
'element-plus'
import
type
{
PlatformItem
,
ConfigAttribute
}
from
'../types'
const
props
=
defineProps
<
{
data
:
{
type
:
string
;
name
:
string
;
value
?:
string
|
Array
<
any
>
}
}
>
()
const
props
=
defineProps
<
{
platform
:
PlatformItem
}
>
()
const
modelValue
=
defineModel
<
ConfigAttribute
[]
>
()
// 用户需知
// 用户需知
const
checked
=
$
ref
(
true
)
const
checked
=
ref
(
true
)
// form
// form
const
formRef
=
$
ref
<
FormInstance
>
()
const
formRef
=
ref
<
FormInstance
>
()
const
formAll
=
ref
([
const
configList
=
computed
(()
=>
{
{
return
props
.
platform
.
config_attributes
||
[]
type
:
'1'
,
})
form
:
[
onMounted
(()
=>
{
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
modelValue
.
value
=
modelValue
.
value
?
Object
.
assign
([],
configList
.
value
,
modelValue
.
value
)
:
configList
.
value
{
label
:
'公众号类型'
,
prop
:
'type'
,
value
:
''
},
{
label
:
'授权方昵称'
,
prop
:
'nikeName'
,
value
:
''
}
]
},
{
type
:
'2'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'AgentId'
,
prop
:
'agentId'
,
value
:
''
},
{
label
:
'AppKey'
,
prop
:
'appKey'
,
value
:
''
},
{
label
:
'AppSecret'
,
prop
:
'appSecret'
,
value
:
''
}
]
},
{
type
:
'3'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'app_id'
,
prop
:
'app_id'
,
value
:
''
},
{
label
:
'client_id'
,
prop
:
'client_id'
,
value
:
''
},
{
label
:
'secret_key'
,
prop
:
'secret_key'
,
value
:
''
}
]
},
{
type
:
'4'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'AppKey'
,
prop
:
'appKey'
,
value
:
''
},
{
label
:
'AppSecret'
,
prop
:
'appSecret'
,
value
:
''
}
]
},
{
type
:
'5'
,
form
:
[{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
}]
},
{
type
:
'6'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'应用类别'
,
prop
:
'dyInput1'
,
value
:
''
},
{
label
:
'授权域回调'
,
prop
:
'dyInput2'
,
value
:
''
},
{
label
:
'网站应用简介'
,
prop
:
'dyInput3'
,
value
:
''
},
{
label
:
'应用官网'
,
prop
:
'dyInput4'
,
value
:
''
},
{
label
:
'联系人姓名'
,
prop
:
'dyInput5'
,
value
:
''
}
]
},
{
type
:
'6'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'应用类别'
,
prop
:
'dyInput1'
,
value
:
''
},
{
label
:
'授权域回调'
,
prop
:
'dyInput2'
,
value
:
''
},
{
label
:
'网站应用简介'
,
prop
:
'dyInput3'
,
value
:
''
},
{
label
:
'应用官网'
,
prop
:
'dyInput4'
,
value
:
''
},
{
label
:
'联系人姓名'
,
prop
:
'dyInput5'
,
value
:
''
}
]
},
{
type
:
'7'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'AppKey'
,
prop
:
'appKey'
,
value
:
''
},
{
label
:
'AppSecret'
,
prop
:
'appSecret'
,
value
:
''
}
]
},
{
type
:
'8'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'AppKey'
,
prop
:
'appKey'
,
value
:
''
},
{
label
:
'AppSecret'
,
prop
:
'appSecret'
,
value
:
''
}
]
},
{
type
:
'9'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'client_id'
,
prop
:
'client_id'
,
value
:
''
},
{
label
:
'client_secret'
,
prop
:
'client_secret'
,
value
:
''
},
{
label
:
'token URL'
,
prop
:
'token'
,
value
:
''
},
{
label
:
'API URL'
,
prop
:
'apiUrl'
,
value
:
''
}
]
},
{
type
:
'10'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'client_id'
,
prop
:
'client_id'
,
value
:
''
},
{
label
:
'SdkAppId'
,
prop
:
'sdkAppId'
,
value
:
''
},
{
label
:
'token URL'
,
prop
:
'token'
,
value
:
''
},
{
label
:
'API URL'
,
prop
:
'apiUrl'
,
value
:
''
}
]
},
{
type
:
'11'
,
form
:
[{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
}]
},
{
type
:
'12'
,
form
:
[
{
label
:
'链接名称'
,
prop
:
'name'
,
value
:
''
},
{
label
:
'APP类型'
,
prop
:
'appType'
,
value
:
''
},
{
label
:
'AppId'
,
prop
:
'appId'
,
value
:
''
}
]
},
{
type
:
'13'
,
form
:
[{
label
:
'名称'
,
prop
:
'name'
,
value
:
''
}]
}
])
const
formItem
=
computed
(()
=>
{
const
[
data
]
=
formAll
.
value
.
filter
(
item
=>
item
.
type
===
props
.
data
.
type
)
let
dataValue
=
[]
try
{
dataValue
=
Array
.
isArray
(
props
.
data
?.
value
)
?
props
.
data
?.
value
:
JSON
.
parse
(
props
.
data
?.
value
||
''
)
}
catch
(
error
)
{
console
.
log
(
error
)
}
return
props
.
data
?.
value
?
Object
.
assign
(
data
?.
form
,
dataValue
)
:
data
?.
form
})
})
defineExpose
({
formItem
})
function
showItem
(
data
:
ConfigAttribute
)
{
return
!!
configList
.
value
.
find
(
item
=>
item
.
prop
===
data
.
prop
)
}
</
script
>
</
script
>
<
template
>
<
template
>
...
@@ -154,11 +39,13 @@ defineExpose({ formItem })
...
@@ -154,11 +39,13 @@ defineExpose({ formItem })
<div
class=
"content-right"
>
<div
class=
"content-right"
>
<el-form
ref=
"formRef"
label-suffix=
":"
label-width=
"122px"
>
<el-form
ref=
"formRef"
label-suffix=
":"
label-width=
"122px"
>
<el-form-item
label=
"链接类型"
>
<el-form-item
label=
"链接类型"
>
<span>
{{
props
.
data
.
name
}}
</span>
<span>
{{
platform
.
type_name
}}
</span>
</el-form-item>
<el-form-item
:label=
"item.label"
:prop=
"item.prop"
v-for=
"item in formItem"
:key=
"item.prop"
>
<el-input
v-model=
"item.value"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-form-item>
<template
v-for=
"item in modelValue"
:key=
"item.prop"
>
<el-form-item
:label=
"item.label"
:prop=
"item.prop"
v-if=
"showItem(item)"
>
<el-input
v-model=
"item.value"
placeholder=
"请输入"
></el-input>
</el-form-item>
</
template
>
</el-form>
</el-form>
</div>
</div>
</div>
</div>
...
...
src/modules/connect/types.ts
浏览文件 @
339f967c
...
@@ -9,4 +9,18 @@ export interface DetailsProp {
...
@@ -9,4 +9,18 @@ export interface DetailsProp {
config_attributes
:
string
config_attributes
:
string
type
:
string
type
:
string
type_name
:
string
type_name
:
string
}
}
\ No newline at end of file
export
interface
ConfigAttribute
{
label
:
string
prop
:
string
value
:
string
}
export
interface
PlatformItem
{
type
:
string
type_name
:
string
icon
?:
string
config_attributes
?:
ConfigAttribute
[]
onBeforeNext
?:
(
index
:
number
,
data
:
PlatformItem
)
=>
Promise
<
boolean
>
|
boolean
}
src/modules/connect/views/View.vue
浏览文件 @
339f967c
差异被折叠。
点击展开。
src/modules/home/views/Index.vue
浏览文件 @
339f967c
...
@@ -96,17 +96,8 @@ function handleViewEvent(item: any) {
...
@@ -96,17 +96,8 @@ function handleViewEvent(item: any) {
<div
class=
"home-right_content"
>
<div
class=
"home-right_content"
>
<AppCard
class=
"card"
title=
"最近活跃用户跟踪"
>
<AppCard
class=
"card"
title=
"最近活跃用户跟踪"
>
<div
class=
"content-user"
>
<div
class=
"content-user"
>
<div
<div
:class=
"item.isActive ? 'content-user_item active' : 'content-user_item'"
v-for=
"item in userList"
:key=
"item.id"
@
click=
"handleUser(item)"
>
:class=
"item.isActive ? 'content-user_item active' : 'content-user_item'"
<img
:src=
"item.gender === '1' ? 'https://webapp-pub.ezijing.com/pages/assa/dml_boy.png' : 'https://webapp-pub.ezijing.com/pages/assa/dml_girl.png'"
/>
v-for=
"item in userList"
:key=
"item.id"
@
click=
"handleUser(item)"
>
<img
:src=
"
item.gender === '1'
? 'https://webapp-pub.ezijing.com/pages/assa/dml_boy.png'
: 'https://webapp-pub.ezijing.com/pages/assa/dml_girl.png'
"
/>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
<div
class=
"name"
>
{{
item
.
name
}}
</div>
</div>
</div>
</div>
</div>
...
@@ -120,7 +111,7 @@ function handleViewEvent(item: any) {
...
@@ -120,7 +111,7 @@ function handleViewEvent(item: any) {
</div>
</div>
<!--
<Icon
:name=
"item.connection_type"
w=
"30"
h=
"30"
></Icon>
-->
<!--
<Icon
:name=
"item.connection_type"
w=
"30"
h=
"30"
></Icon>
-->
<div
class=
"event"
>
<div
class=
"event"
>
<Icon
class=
"icon"
:name=
"item.connection_type"
:multi
colou
r=
"true"
w=
"24"
h=
"24"
></Icon>
<Icon
class=
"icon"
:name=
"item.connection_type"
:multi
Colo
r=
"true"
w=
"24"
h=
"24"
></Icon>
在
在
<span>
"
{{
item
.
connection_name
}}
"
</span>
上
<span>
"
{{
item
.
connection_name
}}
"
</span>
上
<span
style=
"cursor: pointer"
@
click=
"handleViewEvent(item)"
>
"
{{
item
.
event_name
}}
"
</span>
<span
style=
"cursor: pointer"
@
click=
"handleViewEvent(item)"
>
"
{{
item
.
event_name
}}
"
</span>
...
@@ -131,11 +122,7 @@ function handleViewEvent(item: any) {
...
@@ -131,11 +122,7 @@ function handleViewEvent(item: any) {
</div>
</div>
</div>
</div>
<!-- 事件详情 -->
<!-- 事件详情 -->
<ViewEvent
<ViewEvent
v-model=
"viewEventVisible"
:event=
"currentViewEvent"
:user=
"currentUser"
v-if=
"viewEventVisible && currentViewEvent"
></ViewEvent>
v-model=
"viewEventVisible"
:event=
"currentViewEvent"
:user=
"currentUser"
v-if=
"viewEventVisible && currentViewEvent"
></ViewEvent>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/modules/trip/template/components/BindConnection.vue
浏览文件 @
339f967c
...
@@ -49,31 +49,11 @@ function handleSave() {
...
@@ -49,31 +49,11 @@ function handleSave() {
<
template
>
<
template
>
<el-dialog
title=
"配置连接"
width=
"800px"
append-to-body
@
update:modelValue=
"$emit('update:modelValue')"
>
<el-dialog
title=
"配置连接"
width=
"800px"
append-to-body
@
update:modelValue=
"$emit('update:modelValue')"
>
<div
class=
"connection-list"
>
<div
class=
"connection-list"
>
<div
<div
class=
"connection-item"
v-for=
"item in connectionList"
:key=
"item.id"
:class=
"
{ 'is-active': isActive(item) }" @click="toggleSelection(item)">
class=
"connection-item"
v-for=
"item in connectionList"
:key=
"item.id"
:class=
"
{ 'is-active': isActive(item) }"
@click="toggleSelection(item)"
>
<el-checkbox
@
change=
"toggleSelection(item)"
:model-value=
"isActive(item)"
/>
<el-checkbox
@
change=
"toggleSelection(item)"
:model-value=
"isActive(item)"
/>
<div
:class=
"isActive(item) ? 'connection-item__icon active' : 'connection-item__icon'"
>
<div
:class=
"isActive(item) ? 'connection-item__icon active' : 'connection-item__icon'"
>
<ConnectionIcon
<ConnectionIcon
style=
"transform: translateY(3px)"
v-if=
"isActive(item)"
color=
"#fff"
:name=
"item.type + ''"
w=
"20"
h=
"20"
/>
style=
"transform: translateY(3px)"
<ConnectionIcon
style=
"transform: translateY(3px)"
v-else
:multiColor=
"true"
:name=
"item.type + ''"
w=
"20"
h=
"20"
/>
v-if=
"isActive(item)"
color=
"#fff"
:name=
"item.type + ''"
w=
"20"
h=
"20"
/>
<ConnectionIcon
style=
"transform: translateY(3px)"
v-else
:multicolour=
"true"
:name=
"item.type + ''"
w=
"20"
h=
"20"
/>
</div>
</div>
<p
:style=
"`color: $
{isActive(item)
&&
'#ba143e'}`">
{{
item
.
name
}}
</p>
<p
:style=
"`color: $
{isActive(item)
&&
'#ba143e'}`">
{{
item
.
name
}}
</p>
</div>
</div>
...
...
src/modules/user/views/Image.vue
浏览文件 @
339f967c
...
@@ -130,7 +130,7 @@ function handleViewEvent(item: any) {
...
@@ -130,7 +130,7 @@ function handleViewEvent(item: any) {
{{
item
.
updated_time
?.
slice
(
item
.
updated_time
.
indexOf
(
' '
),
item
.
updated_time
.
length
-
3
)
}}
{{
item
.
updated_time
?.
slice
(
item
.
updated_time
.
indexOf
(
' '
),
item
.
updated_time
.
length
-
3
)
}}
{{
getDate
(
item
.
updated_time
)
}}
{{
getDate
(
item
.
updated_time
)
}}
</div>
</div>
<Icon
class=
"icon"
:multi
colou
r=
"true"
:name=
"item.connection_type"
w=
"20"
h=
"20"
></Icon>
<Icon
class=
"icon"
:multi
Colo
r=
"true"
:name=
"item.connection_type"
w=
"20"
h=
"20"
></Icon>
<div
class=
"event"
>
<div
class=
"event"
>
在
<span>
"
{{
item
.
connection_name
}}
"
</span>
上
在
<span>
"
{{
item
.
connection_name
}}
"
</span>
上
<span
style=
"cursor: pointer"
@
click=
"handleViewEvent(item)"
>
"
{{
item
.
event_name
}}
"
</span>
<span
style=
"cursor: pointer"
@
click=
"handleViewEvent(item)"
>
"
{{
item
.
event_name
}}
"
</span>
...
...
vite.config.ts
浏览文件 @
339f967c
...
@@ -10,7 +10,7 @@ import AutoImport from 'unplugin-auto-import/vite'
...
@@ -10,7 +10,7 @@ import AutoImport from 'unplugin-auto-import/vite'
export
default
defineConfig
(({
mode
})
=>
({
export
default
defineConfig
(({
mode
})
=>
({
base
:
mode
===
'prod'
?
'https://webapp-pub.ezijing.com/website/prod/saas-dml/'
:
'/'
,
base
:
mode
===
'prod'
?
'https://webapp-pub.ezijing.com/website/prod/saas-dml/'
:
'/'
,
plugins
:
[
plugins
:
[
vue
({
reactivityTransform
:
true
}),
vue
({
script
:
{
defineModel
:
true
},
reactivityTransform
:
true
}),
AutoImport
({
AutoImport
({
imports
:
[
'vue'
,
'vue/macros'
,
'vue-router'
,
'@vueuse/core'
],
imports
:
[
'vue'
,
'vue/macros'
,
'vue-router'
,
'@vueuse/core'
],
dts
:
true
,
dts
:
true
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论