Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
75b4e03e
提交
75b4e03e
authored
8月 14, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化前端代码,调整菜单和路由
上级
6fac9e0e
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
225 行增加
和
69 行删除
+225
-69
index.html
public/index.html
+2
-1
App.vue
src/App.vue
+15
-28
index.js
src/router/index.js
+4
-4
aiArgenChat.vue
src/views/components/aiChat/aiArgenChat.vue
+12
-0
aiChat.vue
src/views/components/aiChat/aiChat.vue
+155
-0
summaryList.vue
src/views/components/aiChat/summaryList.vue
+0
-0
giftRecord.vue
src/views/giftRecord.vue
+37
-36
没有找到文件。
public/index.html
浏览文件 @
75b4e03e
...
@@ -12,7 +12,8 @@
...
@@ -12,7 +12,8 @@
<!-- Prevent caching at the proxy server -->
<!-- Prevent caching at the proxy server -->
<meta
http-equiv=
"expires"
content=
"0"
>
<meta
http-equiv=
"expires"
content=
"0"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=EmulateIE9"
/>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=EmulateIE9"
/>
<title><
%=
htmlWebpackPlugin
.
options
.
title
%
></title>
<!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
<title>
企微侧边栏
</title>
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,shrink-to-fit=no,user-scalable=no"> -->
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,shrink-to-fit=no,user-scalable=no"> -->
<script
src=
"https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"
></script>
<script
src=
"https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"
></script>
</head>
</head>
...
...
src/App.vue
浏览文件 @
75b4e03e
...
@@ -4,16 +4,9 @@
...
@@ -4,16 +4,9 @@
<div
class=
"mobile-menu-bar"
v-if=
"token && external_userid && showMemberId"
>
<div
class=
"mobile-menu-bar"
v-if=
"token && external_userid && showMemberId"
>
<!-- 临时调试信息 -->
<!-- 临时调试信息 -->
<div
class=
"menu-container"
>
<div
class=
"menu-container"
>
<el-menu
<el-menu
:default-active=
"selectedPath"
mode=
"horizontal"
class=
"mobile-el-menu"
:default-active=
"selectedPath"
:class=
"
{ 'collapsed': !isMenuExpanded
&&
shouldShowToggle }" background-color="#fff" router
mode=
"horizontal"
@select="handleSelect" ref="menuRef">
class=
"mobile-el-menu"
:class=
"
{ 'collapsed': !isMenuExpanded
&&
shouldShowToggle }"
background-color="#fff"
router
@select="handleSelect"
ref="menuRef"
>
<el-menu-item
v-for=
"item in menuList"
:key=
"item.path"
:index=
"item.path"
class=
"mobile-menu-item"
>
<el-menu-item
v-for=
"item in menuList"
:key=
"item.path"
:index=
"item.path"
class=
"mobile-menu-item"
>
<!-- 任务列表菜单项显示红点 -->
<!-- 任务列表菜单项显示红点 -->
<div
v-if=
"item.path === '/taskList' && hasTaskRedDot"
class=
"menu-item-with-badge"
>
<div
v-if=
"item.path === '/taskList' && hasTaskRedDot"
class=
"menu-item-with-badge"
>
...
@@ -27,20 +20,14 @@
...
@@ -27,20 +20,14 @@
<span
v-else
>
{{
item
.
label
}}
</span>
<span
v-else
>
{{
item
.
label
}}
</span>
</el-menu-item>
</el-menu-item>
</el-menu>
</el-menu>
<!-- 展开收起按钮 -->
<!-- 展开收起按钮 -->
<el-button
<el-button
type=
"text"
size=
"mini"
v-if=
"shouldShowToggle"
class=
"menu-toggle-btn"
@
click=
"toggleMenu"
>
type=
"text"
size=
"mini"
v-if=
"shouldShowToggle"
class=
"menu-toggle-btn"
@
click=
"toggleMenu"
>
<i
:class=
"isMenuExpanded ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
></i>
<i
:class=
"isMenuExpanded ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
></i>
<span>
{{
isMenuExpanded
?
'收起'
:
'展开'
}}
</span>
<span>
{{
isMenuExpanded
?
'收起'
:
'展开'
}}
</span>
</el-button>
</el-button>
</div>
</div>
<!-- 绑定的 w 账号 -->
<!-- 绑定的 w 账号 -->
<bindUserList
/>
<bindUserList
/>
</div>
</div>
...
@@ -90,7 +77,7 @@ export default {
...
@@ -90,7 +77,7 @@ export default {
label
:
'礼包记录'
,
label
:
'礼包记录'
,
path
:
'/giftRecord'
path
:
'/giftRecord'
},
},
// {
// {
// label: '任务记录',
// label: '任务记录',
// path: '/taskRecord'
// path: '/taskRecord'
...
@@ -113,7 +100,7 @@ export default {
...
@@ -113,7 +100,7 @@ export default {
hasRedDot
:
false
// 红点状态
hasRedDot
:
false
// 红点状态
},
},
{
{
label
:
'
跟进记录
'
,
label
:
'
微言助手
'
,
path
:
'/summaryList'
path
:
'/summaryList'
},
},
// {
// {
...
@@ -196,7 +183,7 @@ export default {
...
@@ -196,7 +183,7 @@ export default {
this
.
selectedPath
=
currentPath
this
.
selectedPath
=
currentPath
}
}
console
.
log
(
'创建时路径:'
,
currentPath
,
'选中路径:'
,
this
.
selectedPath
)
console
.
log
(
'创建时路径:'
,
currentPath
,
'选中路径:'
,
this
.
selectedPath
)
// 监听窗口大小变化
// 监听窗口大小变化
window
.
addEventListener
(
'resize'
,
this
.
handleResize
)
window
.
addEventListener
(
'resize'
,
this
.
handleResize
)
// 初始检查
// 初始检查
...
@@ -240,25 +227,25 @@ export default {
...
@@ -240,25 +227,25 @@ export default {
toggleMenu
()
{
toggleMenu
()
{
this
.
isMenuExpanded
=
!
this
.
isMenuExpanded
this
.
isMenuExpanded
=
!
this
.
isMenuExpanded
},
},
// 检查菜单是否需要换行
// 检查菜单是否需要换行
checkMenuOverflow
()
{
checkMenuOverflow
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
const
menuElement
=
this
.
$refs
.
menuRef
?.
$el
const
menuElement
=
this
.
$refs
.
menuRef
?.
$el
if
(
!
menuElement
)
return
if
(
!
menuElement
)
return
// 临时展开菜单来检查实际高度
// 临时展开菜单来检查实际高度
const
wasCollapsed
=
!
this
.
isMenuExpanded
&&
this
.
shouldShowToggle
const
wasCollapsed
=
!
this
.
isMenuExpanded
&&
this
.
shouldShowToggle
if
(
wasCollapsed
)
{
if
(
wasCollapsed
)
{
menuElement
.
classList
.
remove
(
'collapsed'
)
menuElement
.
classList
.
remove
(
'collapsed'
)
}
}
const
menuHeight
=
menuElement
.
scrollHeight
const
menuHeight
=
menuElement
.
scrollHeight
const
singleLineHeight
=
50
// 单行高度
const
singleLineHeight
=
50
// 单行高度
// 如果菜单高度超过单行,说明需要换行
// 如果菜单高度超过单行,说明需要换行
this
.
shouldShowToggle
=
menuHeight
>
singleLineHeight
+
10
// 加10px容错
this
.
shouldShowToggle
=
menuHeight
>
singleLineHeight
+
10
// 加10px容错
// 如果不需要展开收起按钮,则直接展开
// 如果不需要展开收起按钮,则直接展开
if
(
!
this
.
shouldShowToggle
)
{
if
(
!
this
.
shouldShowToggle
)
{
this
.
isMenuExpanded
=
true
this
.
isMenuExpanded
=
true
...
@@ -268,7 +255,7 @@ export default {
...
@@ -268,7 +255,7 @@ export default {
}
}
})
})
},
},
// 窗口大小变化处理
// 窗口大小变化处理
handleResize
()
{
handleResize
()
{
clearTimeout
(
this
.
resizeTimer
)
clearTimeout
(
this
.
resizeTimer
)
...
...
src/router/index.js
浏览文件 @
75b4e03e
...
@@ -12,7 +12,7 @@ import taskRecord from '../views/taskRecord.vue'
...
@@ -12,7 +12,7 @@ import taskRecord from '../views/taskRecord.vue'
import
mailList
from
'@/views/mailList.vue'
import
mailList
from
'@/views/mailList.vue'
import
quickSendGame
from
'@/views/quickSendGame.vue'
import
quickSendGame
from
'@/views/quickSendGame.vue'
import
taskList
from
'@/views/taskList.vue'
import
taskList
from
'@/views/taskList.vue'
import
summaryList
from
'@/views/summaryLis
t.vue'
import
aiChat
from
'@/views/components/aiChat/aiCha
t.vue'
import
Cookies
from
'js-cookie'
import
Cookies
from
'js-cookie'
import
store
from
'@/store'
import
store
from
'@/store'
Vue
.
use
(
VueRouter
)
Vue
.
use
(
VueRouter
)
...
@@ -85,9 +85,9 @@ const routes = [
...
@@ -85,9 +85,9 @@ const routes = [
component
:
taskList
component
:
taskList
},
},
{
{
path
:
'/
summaryLis
t'
,
path
:
'/
aiCha
t'
,
name
:
'
summaryLis
t'
,
name
:
'
aiCha
t'
,
component
:
summaryLis
t
component
:
aiCha
t
},
},
{
{
path
:
'/login'
,
path
:
'/login'
,
...
...
src/views/components/aiChat/aiArgenChat.vue
0 → 100644
浏览文件 @
75b4e03e
<
template
>
<div>
<h1>
AI 微言
</h1>
</div>
</
template
>
<
script
>
export
default
{
name
:
'aiArgenChat'
}
</
script
>
\ No newline at end of file
src/views/components/aiChat/aiChat.vue
0 → 100644
浏览文件 @
75b4e03e
<
template
>
<div
class=
"quickSendGame columnFlex"
>
<div
class=
"content search-form"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"AI微言"
name=
"aiChat"
>
<aiArgenChat
v-if=
"activeName === 'aiChat'"
/>
</el-tab-pane>
<el-tab-pane
label=
"AI 跟进记录"
name=
"aiFollow"
>
<summaryList
v-if=
"activeName === 'aiFollow'"
/>
</el-tab-pane>
</el-tabs>
</div>
</div>
</
template
>
<
script
>
import
aiArgenChat
from
'./aiArgenChat.vue'
import
summaryList
from
'./summaryList.vue'
import
{
mapActions
}
from
'vuex'
export
default
{
name
:
'quickSendGame'
,
components
:
{
aiArgenChat
,
summaryList
,
},
data
()
{
return
{
activeName
:
'aiChat'
}
},
created
()
{
},
mounted
()
{
// this.initializeWecom()
},
methods
:
{
...
mapActions
(
'user'
,
[
'initWecom'
]),
async
initializeWecom
()
{
try
{
console
.
log
(
'🚀 开始初始化企业微信 SDK'
)
const
result
=
await
this
.
initWecom
()
console
.
log
(
'✅ 企业微信 SDK 初始化成功'
,
result
)
}
catch
(
error
)
{
console
.
error
(
'❌ 企业微信 SDK 初始化失败:'
,
error
)
}
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.quickSendGame
{
::v-deep
.el-tabs__nav-next,
::v-deep
.el-tabs__nav-prev
{
line-height
:
50px
;
}
width
:
100
%;
height
:
100
%;
background
:
#fff
;
::v-deep
.el-tabs__item
{
padding
:
0
15px
;
}
.detailsTitle
{
width
:
100%
;
padding
:
0
10px
;
height
:
60px
;
font-size
:
18px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#333333
;
border-bottom
:
1px
solid
#ebeef5
;
border-left
:
1px
solid
#ebeef5
;
p
{
color
:
#333333
;
}
}
.content
{
width
:
100%
;
height
:
calc
(
100%
-
10px
);
::v-deep
.el-tabs__header
{
margin
:
0
0
20px
;
}
}
::v-deep
.el-tabs--border-card
.is-active
{
border
:
none
!important
;
}
::v-deep
.is-active
{
border
:
none
;
}
.inputContent
{
width
:
100%
;
::v-deep
.el-input
{
width
:
80%
;
}
}
::v-deep
.el-tabs
,
.el-tabs__content
,
.el-tab-pane
{
width
:
100%
;
height
:
100%
;
}
::v-deep
.el-tabs__content
{
width
:
100%
;
height
:
calc
(
100%
-
50px
);
}
::v-deep
.el-tab-pane
{
width
:
100%
;
height
:
100%
;
}
.scrollList
{
width
:
100%
;
height
:
calc
(
100%
-
40px
);
overflow
:
auto
;
}
.draggable
{
position
:
relative
;
transition
:
all
0.3s
;
.icon
{
position
:
absolute
;
left
:
10px
;
top
:
15px
;
z-index
:
10
;
}
}
::v-deep
.el-icon-circle-close
{
color
:
#fff
;
}
.bate
{
width
:
42px
;
height
:
20px
;
background
:
linear-gradient
(
135deg
,
#6ee7e9
0%
,
#9ff2cd
47%
,
#e3fdb2
100%
);
border-radius
:
10px
;
padding
:
0px
10px
3px
10px
;
}
}
</
style
>
\ No newline at end of file
src/views/summaryList.vue
→
src/views/
components/aiChat/
summaryList.vue
浏览文件 @
75b4e03e
File moved
src/views/giftRecord.vue
浏览文件 @
75b4e03e
...
@@ -20,7 +20,7 @@ export default {
...
@@ -20,7 +20,7 @@ export default {
EmailGift
,
EmailGift
,
WxGift
WxGift
},
},
created
(){
created
()
{
this
.
initializeWecom
()
this
.
initializeWecom
()
},
},
methods
:
{
methods
:
{
...
@@ -45,43 +45,43 @@ export default {
...
@@ -45,43 +45,43 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.gift-tab-container-apply-gift
{
.gift-tab-container-apply-gift
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
padding-top
:
10px
;
padding-top
:
10px
;
background
:
#fff
;
background
:
#fff
;
::v-deep
.el-tabs__content{
::v-deep
.el-tabs__content
{
height
:
calc
(
100%
-
55px
);
height
:
calc
(
100%
-
55px
);
}
}
::v-deep
.el-tabs
{
::v-deep
.el-tabs
{
.el-tabs__header
{
.el-tabs__header
{
margin
:
0
;
margin
:
0
;
padding
:
0
15px
;
padding
:
0
15px
;
}
}
.el-tabs__item
{
.el-tabs__item
{
height
:
40px
;
height
:
40px
;
line-height
:
40px
;
line-height
:
40px
;
font-size
:
16px
;
font-size
:
16px
;
color
:
#333333
;
color
:
#333333
;
&.is-active
{
&.is-active
{
color
:
#3491FA
;
color
:
#3491FA
;
}
}
.el-tabs__active-bar
{
background-color
:
#3491FA
;
height
:
3px
;
border-radius
:
1.5px
;
}
.el-tabs__nav-wrap
::after
{
height
:
1px
;
background-color
:
#e4e7ed
;
}
}
}
}
.el-tabs__active-bar
{
background-color
:
#3491FA
;
height
:
3px
;
border-radius
:
1.5px
;
}
.el-tabs__nav-wrap
::after
{
height
:
1px
;
background-color
:
#e4e7ed
;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论