Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
frontend-yd-email
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Sweet Zhang
frontend-yd-email
Commits
a58b35d4
Commit
a58b35d4
authored
Oct 10, 2025
by
Sweet Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发送邮件调整
parent
ec3e26fd
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
25 additions
and
12 deletions
+25
-12
src/views/ComposeEmail.vue
+3
-1
src/views/ContactManagement.vue
+1
-1
src/views/EditVariableGroup.vue
+3
-6
src/views/ImportDialog.vue
+17
-3
src/views/VariableManagement.vue
+1
-1
No files found.
src/views/ComposeEmail.vue
View file @
a58b35d4
...
@@ -207,8 +207,9 @@
...
@@ -207,8 +207,9 @@
v-model:visible=
"showImportContacts"
v-model:visible=
"showImportContacts"
title=
"导入数据"
title=
"导入数据"
accept=
".csv,.txt,.xlsx"
accept=
".csv,.txt,.xlsx"
@
file-selected=
"handleImportContacts"
@
error=
"handleImportError"
@
error=
"handleImportError"
@
confirm=
"handleImportContacts"
@
close=
"showImportContacts = false"
/>
/>
<!-- 联系人选择弹窗 -->
<!-- 联系人选择弹窗 -->
<ContactSelector
<ContactSelector
...
@@ -526,6 +527,7 @@ const deleteImportRecord = (importBizId: string) => {
...
@@ -526,6 +527,7 @@ const deleteImportRecord = (importBizId: string) => {
const
handleImportContacts
=
(
results
)
=>
{
const
handleImportContacts
=
(
results
)
=>
{
console
.
log
(
'导入数据:'
,
results
)
console
.
log
(
'导入数据:'
,
results
)
if
(
results
.
data
)
{
if
(
results
.
data
)
{
showImportContacts
.
value
=
false
emailForm
.
value
.
sessionId
=
results
.
data
.
data
.
sessionId
||
''
emailForm
.
value
.
sessionId
=
results
.
data
.
data
.
sessionId
||
''
importContactApi
.
getEmailContactImportDetail
(
emailForm
.
value
.
sessionId
||
''
).
then
((
res
)
=>
{
importContactApi
.
getEmailContactImportDetail
(
emailForm
.
value
.
sessionId
||
''
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
...
...
src/views/ContactManagement.vue
View file @
a58b35d4
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
</button>
</button>
<!-- 下载模版 -->
<!-- 下载模版 -->
<a
<a
href=
"http://yd-ali-oss.oss-cn-shanghai-finance-1-pub.aliyuncs.com/xlsx/2025/10/09/2b0ec7e9ab4443fb8530131c001b9a3d.xlsx"
href=
"http
s
://yd-ali-oss.oss-cn-shanghai-finance-1-pub.aliyuncs.com/xlsx/2025/10/09/2b0ec7e9ab4443fb8530131c001b9a3d.xlsx"
download=
"contact_template.xlsx"
download=
"contact_template.xlsx"
class=
"flex items-center text-blue-700"
class=
"flex items-center text-blue-700"
>
>
...
...
src/views/EditVariableGroup.vue
View file @
a58b35d4
...
@@ -146,12 +146,8 @@ const open = (msg: string, title: string) => {
...
@@ -146,12 +146,8 @@ const open = (msg: string, title: string) => {
}
}
const
saveVariableTemplate
=
()
=>
{
const
saveVariableTemplate
=
()
=>
{
if
(
if
(
!
templateForm
.
value
.
groupName
)
{
!
templateForm
.
value
.
groupName
||
open
(
'请输入模版名称'
,
'错误'
)
!
templateForm
.
value
.
variableBizIdList
||
templateForm
.
value
.
variableBizIdList
.
length
===
0
)
{
open
(
'请输入模版名称和选择变量'
,
'错误'
)
return
return
}
}
...
@@ -220,6 +216,7 @@ const fetchVariables = () => {
...
@@ -220,6 +216,7 @@ const fetchVariables = () => {
queryContent
:
searchQuery
.
value
||
''
,
queryContent
:
searchQuery
.
value
||
''
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
1000
,
pageSize
:
1000
,
isGeneral
:
0
,
})
})
.
then
((
response
)
=>
{
.
then
((
response
)
=>
{
variables
.
value
=
response
.
data
.
records
||
[]
variables
.
value
=
response
.
data
.
records
||
[]
...
...
src/views/ImportDialog.vue
View file @
a58b35d4
...
@@ -13,6 +13,13 @@
...
@@ -13,6 +13,13 @@
/>
/>
<div
class=
"flex justify-end gap-3"
>
<div
class=
"flex justify-end gap-3"
>
<button
<button
v-if=
"confirmBtnFlag"
@
click=
"handleConfirm"
class=
"text-white bg-blue-500 px-4 py-2 border border-gray-300 rounded-md"
>
确认
</button>
<button
@
click=
"handleCancel"
@
click=
"handleCancel"
class=
"px-4 py-2 border border-gray-300 rounded-md hover:bg-gray-50"
class=
"px-4 py-2 border border-gray-300 rounded-md hover:bg-gray-50"
>
>
...
@@ -55,6 +62,7 @@ const props = defineProps({
...
@@ -55,6 +62,7 @@ const props = defineProps({
import
FileUploadComponent
from
'@/components/FileUploadComponent.vue'
import
FileUploadComponent
from
'@/components/FileUploadComponent.vue'
import
{
UploadResult
,
UploadConfig
}
from
'@/utils/fileUpload'
import
{
UploadResult
,
UploadConfig
}
from
'@/utils/fileUpload'
const
confirmBtnFlag
=
ref
<
boolean
>
(
false
)
const
uploadConfig
:
UploadConfig
=
{
const
uploadConfig
:
UploadConfig
=
{
url
:
props
.
uploadUrl
,
url
:
props
.
uploadUrl
,
fieldName
:
'file'
,
fieldName
:
'file'
,
...
@@ -65,18 +73,24 @@ const uploadConfig: UploadConfig = {
...
@@ -65,18 +73,24 @@ const uploadConfig: UploadConfig = {
}
}
// 上传成功的文件
// 上传成功的文件
const
uploadedFiles
=
ref
<
any
[]
>
([])
const
uploadedFiles
=
ref
<
any
[]
>
([])
const
result
=
ref
<
any
>
({})
// 处理文档上传成功
// 处理文档上传成功
const
handleDocumentUploadSuccess
=
(
results
:
UploadResult
[])
=>
{
const
handleDocumentUploadSuccess
=
(
results
:
UploadResult
[])
=>
{
emit
(
'success'
,
results
[
0
],
props
.
triggerKey
)
confirmBtnFlag
.
value
=
true
result
.
value
=
results
[
0
]
emit
(
'success'
,
result
.
value
)
}
}
// 处理文档上传失败
// 处理文档上传失败
const
handleDocumentUploadError
=
(
error
:
string
)
=>
{
const
handleDocumentUploadError
=
(
error
:
string
)
=>
{
emit
(
'error'
,
error
,
props
.
triggerKey
)
emit
(
'error'
,
error
,
props
.
triggerKey
)
}
}
const
emit
=
defineEmits
([
'success'
,
'error'
,
'c
ancel
'
])
const
emit
=
defineEmits
([
'success'
,
'error'
,
'c
lose'
,
'confirm
'
])
const
handleCancel
=
()
=>
{
const
handleCancel
=
()
=>
{
emit
(
'cancel'
,
props
.
triggerKey
)
emit
(
'close'
,
props
.
triggerKey
)
}
const
handleConfirm
=
()
=>
{
emit
(
'confirm'
,
result
.
value
,
props
.
triggerKey
)
}
}
// 监听visible变化,重置文件输入
// 监听visible变化,重置文件输入
...
...
src/views/VariableManagement.vue
View file @
a58b35d4
...
@@ -238,7 +238,7 @@ import Pagination from '@/components/Pagination.vue'
...
@@ -238,7 +238,7 @@ import Pagination from '@/components/Pagination.vue'
// 初始数据
// 初始数据
const
total
=
ref
(
0
)
const
total
=
ref
(
0
)
const
currentPage
=
ref
(
1
)
const
currentPage
=
ref
(
1
)
const
pageSize
=
ref
(
10
)
const
pageSize
=
ref
(
10
0
)
// 处理分页变化
// 处理分页变化
const
handlePageChange
=
(
page
:
number
,
size
:
number
)
=>
{
const
handlePageChange
=
(
page
:
number
,
size
:
number
)
=>
{
...
...
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