Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
12725f14
提交
12725f14
authored
12月 22, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'release' 到 'master'
准备上线 7.2 版本 查看合并请求
!50
上级
0ca19dde
7af060b5
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
519 行增加
和
28 行删除
+519
-28
game.js
src/api/game.js
+59
-2
uncheck.svg
src/assets/icon/svg/uncheck.svg
+2
-0
copy.js
src/directive/copy/copy.js
+22
-4
sendGame.vue
src/views/components/quickSendGame/sendGame.vue
+0
-0
SendTransAppGame.vue
...ws/components/quickSendGame/sendGame/SendTransAppGame.vue
+6
-5
SendTransWxGame.vue
...ews/components/quickSendGame/sendGame/SendTransWxGame.vue
+0
-0
selectChannel.vue
...views/components/quickSendGame/sendGame/selectChannel.vue
+0
-1
sendSelectChannel.vue
...s/components/quickSendGame/sendGame/sendSelectChannel.vue
+0
-5
vipTools.vue
src/views/components/quickSendGame/vipTools.vue
+1
-1
roleInfoPanel.vue
src/views/components/roleInfo/roleInfoPanel.vue
+96
-3
skillPersonal.vue
src/views/components/skill/skillPersonal.vue
+0
-6
Info.vue
src/views/userInfo/components/Info.vue
+1
-1
mentorRecord.vue
src/views/userInfo/components/gameInfo/mentorRecord.vue
+332
-0
没有找到文件。
src/api/game.js
浏览文件 @
12725f14
...
...
@@ -1537,4 +1537,62 @@ export function teachingVideoVideoListApi(data) {
reject
(
error
)
})
})
}
\ No newline at end of file
}
// 发送分身包
export
function
memberRegGameCloneLink
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/member/memberRegGameCloneLink'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
// 带教记录列表
export
function
roleTeachingList
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/role/roleTeachingList'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
// 新增带教
export
function
roleTeachingAdd
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/role/roleTeachingAdd'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
// 获取带教次数
export
function
roleTeachingNum
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/role/roleTeachingNum'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
src/assets/icon/svg/uncheck.svg
0 → 100644
浏览文件 @
12725f14
<svg
t=
"1765950660083"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"5445"
width=
"200"
height=
"200"
><path
d=
"M512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667-191.029333 426.666667-426.666667 426.666667z m0-64c200.298667 0 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667z"
p-id=
"5446"
></path></svg>
\ No newline at end of file
src/directive/copy/copy.js
浏览文件 @
12725f14
...
...
@@ -71,13 +71,31 @@ const copy = {
el
.
__copyIcon
=
copyIcon
},
// 当指令与元素解绑时
// 当指令与元素解绑时
unbind
:
function
(
el
)
{
// 清理事件监听器和元素
if
(
el
.
__copyIcon
)
{
el
.
__copyIcon
.
removeEventListener
(
'click'
,
null
)
el
.
parentNode
.
removeChild
(
el
.
__copyIcon
)
delete
el
.
__copyIcon
try
{
// 移除事件监听器
const
clickHandler
=
el
.
__copyIcon
.
__clickHandler
if
(
clickHandler
)
{
el
.
__copyIcon
.
removeEventListener
(
'click'
,
clickHandler
)
delete
el
.
__copyIcon
.
__clickHandler
}
// 安全地移除图标元素
if
(
el
.
__copyIcon
&&
el
.
__copyIcon
.
parentNode
)
{
el
.
__copyIcon
.
parentNode
.
removeChild
(
el
.
__copyIcon
)
}
else
if
(
el
.
__copyIcon
&&
el
.
__copyIcon
.
remove
)
{
// 如果节点还在DOM中,使用 remove() 方法
el
.
__copyIcon
.
remove
()
}
}
catch
(
error
)
{
// 忽略移除节点时的错误,可能节点已经被移除了
console
.
warn
(
'移除复制图标时出错:'
,
error
)
}
finally
{
delete
el
.
__copyIcon
}
}
}
}
...
...
src/views/components/quickSendGame/sendGame.vue
浏览文件 @
12725f14
差异被折叠。
点击展开。
src/views/components/quickSendGame/sendGame/SendTransAppGame.vue
浏览文件 @
12725f14
...
...
@@ -321,11 +321,12 @@
}
const
res
=
await
getLandingPageMemberLink
(
params
)
if
(
res
&&
res
.
data
.
data
)
{
this
.
loading
=
false
this
.
close
()
this
.
$emit
(
'confirm'
,
res
.
data
.
data
)
this
.
$message
.
success
(
'发送成功'
)
}
this
.
loading
=
false
this
.
close
()
this
.
$emit
(
'confirm'
,
res
.
data
.
data
)
this
.
$message
.
success
(
'发送成功'
)
}
}
catch
(
error
)
{
this
.
loading
=
false
console
.
error
(
'获取链接失败:'
,
error
)
...
...
src/views/components/quickSendGame/sendGame/SendTransWxGame.vue
浏览文件 @
12725f14
差异被折叠。
点击展开。
src/views/components/quickSendGame/sendGame/selectChannel.vue
浏览文件 @
12725f14
...
...
@@ -147,7 +147,6 @@ export default {
// list = [{ msgtype: 'text', text: { content: str }}]
this
.
sendChatMessage
(
str
,
'text'
)
}
// this.set_sendSkillMessage(list)
// 3:召回 召回的时候请求召回染色的接口
this
.
recallChannelSeq
()
}
...
...
src/views/components/quickSendGame/sendGame/sendSelectChannel.vue
浏览文件 @
12725f14
...
...
@@ -37,9 +37,6 @@ export default {
close
()
{
this
.
$emit
(
'update:show'
,
false
)
},
// const list = [{ msgtype: 'text', text: { content: `${str}${item.url}` }}]
// this.set_sendSkillMessage(list)
onConfirm
()
{
if
(
this
.
webForm
.
channel_id
===
''
)
{
this
.
$message
.
warning
(
'请选择渠道'
)
...
...
@@ -105,8 +102,6 @@ export default {
// list = [{ msgtype: 'text', text: { content: str }}]
this
.
sendChatMessage
(
str
,
'text'
)
}
// this.set_sendSkillMessage(list)
// this.sendChatMessage(str,'text')
// 3:召回 召回的时候请求召回染色的接口
this
.
recallChannelSeq
()
}
...
...
src/views/components/quickSendGame/vipTools.vue
浏览文件 @
12725f14
...
...
@@ -286,7 +286,7 @@ export default {
handleFlowerLinkSuccess
(
url
)
{
if
(
url
)
{
this
.
sendChatMessage
(
url
,
"text"
);
this
.
$message
.
success
(
"发送成功"
);
this
.
$message
.
success
(
'发送成功'
)
}
},
// 发送举报申诉自助链接
...
...
src/views/components/roleInfo/roleInfoPanel.vue
浏览文件 @
12725f14
...
...
@@ -184,6 +184,17 @@
</p>
</div>
</div>
<!-- 带教记录 -->
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
带教次数:
</span>
<el-button
type=
"text"
style=
"cursor: pointer;z-index:10;"
@
click
.
stop=
"openMentorRecordDrawer(items)"
>
{{ items.teach_num || '-' }}次
</el-button>
</div>
</div>
</div>
</el-collapse-item>
</div>
...
...
@@ -204,24 +215,39 @@
:show
.
sync=
"showAppeal"
:appeal-info=
"appealInfo"
/>
<!-- 带教记录弹窗 -->
<el-drawer
:visible
.
sync=
"showMentorRecord"
v-if=
"showMentorRecord"
:title=
"`${currentRoleName}带教记录`"
size=
"300px"
:append-to-body=
"true"
>
<mentorRecord
:role-id=
"currentRoleId"
@
refresh=
"handleMentorRecordRefresh"
/>
</el-drawer>
</div>
</template>
<
script
>
import
{
mapState
,
mapMutations
,
mapActions
}
from
"vuex"
;
import
{
getRoleHoLo
,
marketingRoleGrade
,
getServerDayApi
}
from
"@/api/game"
;
import
{
getRoleHoLo
,
marketingRoleGrade
,
getServerDayApi
,
roleTeachingNum
}
from
"@/api/game"
;
import
noContent
from
"@/components/noContent.vue"
;
import
appeal
from
"./layer/appeal.vue"
;
import
watchMember
from
"@/mixins/watchMember"
;
import
{
createDetails
}
from
"@/views/popup/RecentActivitiesPopup/index.js"
;
import
{
createRoleRecentActivityNotPushNum
}
from
"@/views/hooks/useGetCount.js"
;
import
vipLevel
from
"@/views/userInfo/components/gameInfo/vipLevel.vue"
;
import
mentorRecord
from
"@/views/userInfo/components/gameInfo/mentorRecord.vue"
;
export
default
{
name
:
"roleInfo"
,
components
:
{
noContent
,
appeal
,
vipLevel
,
mentorRecord
,
},
data
()
{
return
{
...
...
@@ -240,6 +266,9 @@ export default {
recentActivitiesPopupInstance
:
null
,
//近期要开模块弹框
roleRecentActivityNotPushNumInstance
:
null
,
//侧边栏计数弹框
numRoleIdList
:
[],
showMentorRecord
:
false
,
// 带教记录弹窗显示状态
currentRoleId
:
null
,
// 当前查看带教记录的角色ID
currentRoleName
:
''
// 当前查看带教记录的角色名称
};
},
computed
:
{
...
...
@@ -248,7 +277,11 @@ export default {
watch
:
{
collapseActive
(
newVal
,
oldVal
)
{
if
(
newVal
.
length
>
0
)
{
this
.
handleChange
(
newVal
.
filter
((
item
)
=>
!
oldVal
.
includes
(
item
)));
const
newOpenedItems
=
newVal
.
filter
(
item
=>
!
oldVal
.
includes
(
item
))
this
.
handleChange
(
newOpenedItems
)
// 处理带教次数获取
this
.
handleChangeRoleTeachingNum
(
newOpenedItems
)
}
},
},
...
...
@@ -303,7 +336,6 @@ export default {
});
}
},
async
handleChange
(
v
)
{
const
index
=
this
.
roleList
.
findIndex
(
(
item
)
=>
v
.
includes
(
item
.
role_id
)
&&
!
item
.
server_day
...
...
@@ -354,6 +386,67 @@ export default {
}
);
},
/**
* 打开带教记录弹窗
*/
openMentorRecordDrawer
(
roleItem
)
{
console
.
log
(
roleItem
,
'roleItem'
)
this
.
currentRoleId
=
roleItem
.
role_id
this
.
currentRoleName
=
`
${
roleItem
.
role_name
}
-
${
roleItem
.
server_name
}
`
this
.
showMentorRecord
=
true
},
/**
* 带教记录刷新后,更新角色列表中的带教次数
*/
async
handleMentorRecordRefresh
(
roleId
,
teachingListLength
)
{
// 重新获取角色列表,更新带教次数
const
index
=
this
.
roleList
.
findIndex
(
item
=>
item
.
role_id
===
roleId
)
if
(
index
!==
-
1
)
{
this
.
$set
(
this
.
roleList
[
index
],
'teach_num'
,
teachingListLength
)
}
this
.
roleList
=
this
.
roleList
.
concat
([])
},
/**
* 处理角色展开时获取带教次数
* @param {Array} openedRoleIds - 新展开的角色ID数组
*/
handleChangeRoleTeachingNum
(
openedRoleIds
)
{
if
(
!
openedRoleIds
||
openedRoleIds
.
length
===
0
)
{
return
}
// 遍历新展开的角色,获取带教次数
openedRoleIds
.
forEach
(
roleId
=>
{
const
roleItem
=
this
.
roleList
.
find
(
item
=>
item
.
role_id
===
roleId
)
if
(
roleItem
)
{
// 如果已经存在 teach_num 字段,则不请求接口
if
(
roleItem
.
teach_num
===
undefined
||
roleItem
.
teach_num
===
null
)
{
this
.
getRoleTeachingNum
(
roleId
)
}
}
})
},
/**
* 获取角色带教次数
* @param {String|Number} roleId - 角色ID
*/
async
getRoleTeachingNum
(
roleId
)
{
try
{
const
res
=
await
roleTeachingNum
({
role_id
:
roleId
})
console
.
log
(
res
,
'res'
)
if
(
res
.
status_code
===
1
)
{
// 更新对应角色的 teach_num 字段
const
index
=
this
.
roleList
.
findIndex
(
item
=>
item
.
role_id
===
roleId
)
if
(
index
!==
-
1
)
{
this
.
$set
(
this
.
roleList
[
index
],
'teach_num'
,
res
.
data
.
data
?.
role_teaching_num
||
0
)
this
.
roleList
=
[...
this
.
roleList
]
}
}
}
catch
(
error
)
{
console
.
error
(
'获取带教次数失败:'
,
error
)
}
}
},
beforeDestroy
()
{
this
.
recentActivitiesPopupInstance
.
destroy
();
...
...
src/views/components/skill/skillPersonal.vue
浏览文件 @
12725f14
...
...
@@ -140,7 +140,6 @@ export default {
this
.
requestGroup
()
}
,
methods
:
{
// ...mapMutations('common', ['set_sendSkillMessage', 'set_isEditSkill']),
sendMessage
:
debounce
(
function
(
item
,
id
)
{
console
.
log
(
item
,
id
,
'sendMessage'
)
}
,
500
),
...
...
@@ -150,11 +149,6 @@ export default {
// 复制内容到粘贴板
if
(
item
.
msgtype
==
'text'
)
{
if
(
item
&&
item
.
text
&&
item
.
text
.
content
)
{
// copyToClipboard(
// item.text.content,
// (message) => this.$message.success(message),
// (message) => this.$message.error(message)
// )
this
.
sendChatMessage
(
item
.
text
.
content
)
}
}
else
if
(
item
.
msgtype
==
'image'
&&
item
.
image
.
picurl
)
{
...
...
src/views/userInfo/components/Info.vue
浏览文件 @
12725f14
...
...
@@ -389,7 +389,7 @@ export default {
}
,
methods
:
{
...
mapMutations
(
'game'
,
[
'set_accountSelect'
,
'accountSelect'
]),
...
mapMutations
(
'game'
,
[
'set_accountSelect'
]),
...
mapActions
(
'user'
,
[
'initWecom'
]),
// 初始化企业微信SDK
...
...
src/views/userInfo/components/gameInfo/mentorRecord.vue
0 → 100644
浏览文件 @
12725f14
<!--
* @Author: 金多虾 937667504@qq.com
* @Date: 2025-12-11 11:01:15
* @LastEditors: 金多虾 937667504@qq.com
* @LastEditTime: 2025-12-20 11:25:56
* @FilePath: /company_wx_frontend/src/views/works/component/gameInfo/roleInfo/mentorRecord.vue
* @Description: 带教记录组件
-->
<
template
>
<div
class=
"mentor-record-page"
>
<!-- 提示信息和添加按钮区域 -->
<div
class=
"mentor-record-page__toolbar"
>
<el-button
v-if=
"teachingList.length
<
5
"
type=
"primary"
size=
"small"
@
click=
"showAddForm = !showAddForm"
>
添加记录
</el-button>
</div>
<!-- 新增记录表单 -->
<div
v-if=
"showAddForm && teachingList.length
<
5
"
class=
"mentor-record-page__add-form"
>
<el-input
v-model=
"formData.content"
type=
"textarea"
:rows=
"3"
placeholder=
"请输入"
maxlength=
"500"
show-word-limit
class=
"mentor-record-page__add-form-input"
/>
<div
class=
"mentor-record-page__add-form-buttons"
>
<el-button
size=
"mini"
@
click=
"handleCancelAdd"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
:loading=
"submitLoading"
@
click=
"handleSubmitAdd"
>
保存
</el-button>
</div>
</div>
<!-- 带教记录列表 -->
<div
class=
"mentor-record-page__list"
>
<div
v-for=
"(item, index) in teachingList"
:key=
"item.id || index"
class=
"mentor-record-page__list-item"
>
<p
class=
"mentor-record-page__list-item-title"
>
第
{{
item
.
teaching_num
}}
次带教
</p>
<p
class=
"mentor-record-page__list-item-content"
>
{{
item
.
teaching_text
}}
</p>
<div
class=
"mentor-record-page__list-item-footer"
>
<span
class=
"mentor-record-page__list-item-creator"
>
新增人:
{{
item
.
update_user
||
'-'
}}
</span>
<span
class=
"mentor-record-page__list-item-divider"
>
|
</span>
<span
class=
"mentor-record-page__list-item-time"
>
{{
item
.
update_time
}}
</span>
</div>
</div>
<div
v-if=
"teachingList.length === 0 && !loading"
class=
"mentor-record-page__empty"
>
<svg-icon
icon-class=
"noContent"
/>
<p>
暂无带教记录
</p>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
roleTeachingList
,
roleTeachingAdd
}
from
'@/api/game'
import
{
mapState
}
from
'vuex'
export
default
{
name
:
'MentorRecord'
,
props
:
{
roleId
:
{
type
:
[
String
,
Number
],
required
:
true
},
},
data
()
{
return
{
loading
:
false
,
submitLoading
:
false
,
showAddForm
:
false
,
teachingList
:
[],
formData
:
{
content
:
''
}
}
},
watch
:
{
roleId
:
{
immediate
:
true
,
handler
(
newVal
)
{
if
(
newVal
)
{
this
.
getTeachingList
()
}
}
}
},
computed
:
{
...
mapState
(
'user'
,
[
'userInfo'
])
},
methods
:
{
/**
* 获取带教记录列表
*/
async
getTeachingList
()
{
if
(
!
this
.
roleId
)
{
return
}
try
{
this
.
loading
=
true
const
res
=
await
roleTeachingList
({
role_id
:
this
.
roleId
})
if
(
res
.
status_code
===
1
)
{
this
.
teachingList
=
res
.
data
.
data
||
[]
// 按teaching_num倒序排列
this
.
teachingList
.
sort
((
a
,
b
)
=>
{
return
(
b
.
teaching_num
||
0
)
-
(
a
.
teaching_num
||
0
)
})
}
else
{
this
.
$message
({
message
:
res
.
data
.
msg
||
'获取带教记录失败'
,
type
:
'error'
})
}
}
catch
(
error
)
{
console
.
error
(
'获取带教记录失败:'
,
error
)
this
.
$message
({
message
:
'获取带教记录失败,请稍后重试'
,
type
:
'error'
})
}
finally
{
this
.
loading
=
false
}
},
/**
* 新增带教记录
*/
async
handleSubmitAdd
()
{
if
(
!
this
.
formData
.
content
||
!
this
.
formData
.
content
.
trim
())
{
this
.
$message
({
message
:
'请输入带教记录内容'
,
type
:
'warning'
})
return
}
try
{
this
.
submitLoading
=
true
const
res
=
await
roleTeachingAdd
({
role_id
:
this
.
roleId
,
teaching_num
:
this
.
teachingList
.
length
+
1
,
teaching_text
:
this
.
formData
.
content
.
trim
(),
create_user_id
:
this
.
userInfo
.
id
,
create_user
:
this
.
userInfo
.
username
})
if
(
res
.
status_code
===
1
)
{
this
.
$message
({
message
:
res
.
data
.
msg
||
'添加成功'
,
type
:
'success'
})
this
.
formData
.
content
=
''
this
.
showAddForm
=
false
// 重新获取列表
await
this
.
getTeachingList
()
// 通知父组件更新带教次数
this
.
$emit
(
'refresh'
,
this
.
roleId
,
this
.
teachingList
.
length
)
}
else
{
this
.
$message
({
message
:
res
.
data
.
msg
||
'添加失败'
,
type
:
'error'
})
}
}
catch
(
error
)
{
console
.
error
(
'新增带教记录失败:'
,
error
)
this
.
$message
({
message
:
'添加失败,请稍后重试'
,
type
:
'error'
})
}
finally
{
this
.
submitLoading
=
false
}
},
/**
* 取消新增
*/
handleCancelAdd
()
{
this
.
formData
.
content
=
''
this
.
showAddForm
=
false
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.mentor-record-page
{
width
:
100%
;
height
:
100%
;
padding
:
12px
;
padding-top
:
0
;
background
:
#fff
;
border-right
:
1px
solid
#ebedf0
;
display
:
flex
;
flex-direction
:
column
;
overflow
:
hidden
;
&__header
{
display
:
flex
;
align-items
:
center
;
padding
:
12px
0
;
padding-top
:
0
;
border-bottom
:
1px
solid
#ebedf0
;
&-title
{
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-size
:
14px
;
font-weight
:
500
;
line-height
:
22px
;
color
:
#131920
;
}
}
&
__toolbar
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-end
;
margin-bottom
:
20px
;
&-tip
{
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-size
:
12px
;
font-weight
:
400
;
line-height
:
20px
;
color
:
#909399
;
}
}
&
__add-form
{
display
:
flex
;
flex-direction
:
column
;
gap
:
8px
;
margin-bottom
:
12px
;
&-input
{
::v-deep
.el-textarea__inner
{
border
:
1px
solid
#d6d9e0
;
border-radius
:
6px
;
padding
:
4px
6px
;
font-size
:
13px
;
line-height
:
22px
;
color
:
#323335
;
min-height
:
60px
;
resize
:
none
;
&::placeholder
{
color
:
#c9cdd4
;
}
}
}
&
-buttons
{
display
:
flex
;
gap
:
8px
;
justify-content
:
flex-end
;
}
}
&
__list
{
flex
:
1
;
overflow-y
:
auto
;
display
:
flex
;
flex-direction
:
column
;
gap
:
12px
;
&-item
{
background
:
#fff
;
border
:
1px
solid
#ebedf0
;
border-radius
:
6px
;
padding
:
8px
;
display
:
flex
;
flex-direction
:
column
;
gap
:
4px
;
&-title
{
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-size
:
12px
;
font-weight
:
400
;
line-height
:
20px
;
color
:
#6d7176
;
}
&
-content
{
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-size
:
15px
;
font-weight
:
500
;
line-height
:
22px
;
color
:
#131920
;
word-break
:
break-all
;
}
&
-footer
{
display
:
flex
;
align-items
:
center
;
gap
:
4px
;
}
&
-creator
,
&
-time
{
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-size
:
12px
;
font-weight
:
400
;
line-height
:
20px
;
color
:
#b0b2b5
;
}
&
-divider
{
color
:
#ebedf0
;
font-size
:
12px
;
}
}
}
&
__empty
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
padding
:
40px
0
;
color
:
#909399
;
font-size
:
14px
;
p
{
margin-top
:
12px
;
}
}
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论