-
-
- =======================
- {{ log.userName }}
- {{ log.title }}
- =======================
-
-
-
-
-
-
- {{ tagVal }}
- {{ log.contentStrList[index2] }}
-
-
-
-
+ {{ log.userName }}
+ {{ log.action }}
@@ -51,11 +29,13 @@ import { ElTag } from 'element-plus'
defineOptions({ name: 'OperateLogV2' })
-const props = defineProps<{
+interface Props {
logList: OperateLogV2VO[] // 操作日志列表
-}>()
+}
-const logDataList = ref([]) // 操作日志列表
+withDefaults(defineProps(), {
+ logList: () => []
+})
/** 获得 userType 颜色 */
const getUserTypeColor = (type: number) => {
@@ -72,57 +52,6 @@ const getUserTypeColor = (type: number) => {
}
return '#409EFF'
}
-
-// 提取 tag 所需内容和位置
-const renderTags = (content: string) => {
- let newStr = unref(content).slice() // 去掉引用
- newStr = newStr.replaceAll('【】', '【空】').replaceAll(';', '') // 处理掉分号 特殊:处理一下空的情况
- const regex = /【([^【】]+)】/g
- const fg = '|' // 原始位置替换符号
- let match: any[] | null
- let matchStr: string[] = []
- let oldStr: string[] = []
- while ((match = regex.exec(newStr)) !== null) {
- matchStr.push(match[1]) // 提取值
- oldStr.push(match[0]) // 原值
- }
- // 为什么重新循环不放在 while 中一起是因为替换重新赋值过后 match 值就不准确了
- oldStr.forEach((item) => {
- newStr = newStr.replace(item, fg)
- })
- return [newStr.split(fg), matchStr]
-}
-
-const initLog = () => {
- logDataList.value = props.logList.map((logItem) => {
- const keyValue = renderTags(logItem.action)
- // 挂载数据
- logItem.contentStrList = keyValue[0]
- if (keyValue[0][0] === '从') {
- logItem.title = logItem.subType
- } else {
- logItem.title = keyValue[0][0]
- logItem.contentStrList.splice(0, 1)
- }
- logItem.colSize = keyValue[0].length / 3 // 变更记录行数
- logItem.tagsContentList = keyValue[1]
- return logItem
- })
-}
-
-watch(
- () => props.logList.length,
- (newObj) => {
- if (newObj) {
- initLog()
- console.log(logDataList.value)
- }
- },
- {
- immediate: true,
- deep: true
- }
-)