|
@ -1,24 +1,24 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="app-container"> |
|
|
<div class="app-container"> |
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
|
|
<el-form-item label="用户ID" prop="userId"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.userIdLabel')" prop="userId"> |
|
|
<el-input |
|
|
<el-input |
|
|
v-model="queryParams.userId" |
|
|
v-model="queryParams.userId" |
|
|
placeholder="请输入关联用户ID" |
|
|
:placeholder="$t('business.behavior.userBehaviorLog.userIdPlaceholder')" |
|
|
clearable |
|
|
clearable |
|
|
@keyup.enter.native="handleQuery" |
|
|
@keyup.enter.native="handleQuery" |
|
|
/> |
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="IP地址" prop="ip"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.ipLabel')" prop="ip"> |
|
|
<el-input |
|
|
<el-input |
|
|
v-model="queryParams.ip" |
|
|
v-model="queryParams.ip" |
|
|
placeholder="请输入客户端IP地址" |
|
|
:placeholder="$t('business.behavior.userBehaviorLog.ipPlaceholder')" |
|
|
clearable |
|
|
clearable |
|
|
@keyup.enter.native="handleQuery" |
|
|
@keyup.enter.native="handleQuery" |
|
|
/> |
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="行为类型" prop="behaviorType"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.behaviorTypeLabel')" prop="behaviorType"> |
|
|
<el-select v-model="queryParams.behaviorType" placeholder="请选择行为类型" clearable> |
|
|
<el-select v-model="queryParams.behaviorType" :placeholder="$t('business.behavior.userBehaviorLog.behaviorTypePlaceholder')" clearable> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in behaviorTypeOptions" |
|
|
v-for="dict in behaviorTypeOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -27,8 +27,8 @@ |
|
|
/> |
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="设备类型" prop="deviceType"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.deviceTypeLabel')" prop="deviceType"> |
|
|
<el-select v-model="queryParams.deviceType" placeholder="请选择设备类型" clearable> |
|
|
<el-select v-model="queryParams.deviceType" :placeholder="$t('business.behavior.userBehaviorLog.deviceTypePlaceholder')" clearable> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in deviceTypeOptions" |
|
|
v-for="dict in deviceTypeOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -37,8 +37,8 @@ |
|
|
/> |
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="平台类型" prop="platform"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.platformLabel')" prop="platform"> |
|
|
<el-select v-model="queryParams.platform" placeholder="请选择平台类型" clearable> |
|
|
<el-select v-model="queryParams.platform" :placeholder="$t('business.behavior.userBehaviorLog.platformPlaceholder')" clearable> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in platformOptions" |
|
|
v-for="dict in platformOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -108,10 +108,10 @@ |
|
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="userBehaviorLogList" @selection-change="handleSelectionChange"> |
|
|
<el-table v-loading="loading" :data="userBehaviorLogList" @selection-change="handleSelectionChange"> |
|
|
<el-table-column type="selection" width="55" align="center"/> |
|
|
<el-table-column type="selection" width="55" align="center"/> |
|
|
<el-table-column label="ID" align="center" prop="id" v-if="true"/> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.idLabel')" align="center" prop="id" v-if="true"/> |
|
|
<el-table-column label="用户ID" align="center" prop="userId"/> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.userIdLabel')" align="center" prop="userId"/> |
|
|
<el-table-column label="用户名" align="center" prop="userName"/> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.userNameLabel')" align="center" prop="userName"/> |
|
|
<el-table-column label="行为类型" align="center" prop="behaviorType"> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.behaviorTypeLabel')" align="center" prop="behaviorType"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span>{{ getBehaviorTypeLabel(scope.row.behaviorType) }}</span> |
|
|
<span>{{ getBehaviorTypeLabel(scope.row.behaviorType) }}</span> |
|
|
</template> |
|
|
</template> |
|
@ -119,21 +119,21 @@ |
|
|
<!-- <el-table-column label="动作标识" align="center" prop="action"/> --> |
|
|
<!-- <el-table-column label="动作标识" align="center" prop="action"/> --> |
|
|
<!-- <el-table-column label="目标ID" align="center" prop="targetId"/> |
|
|
<!-- <el-table-column label="目标ID" align="center" prop="targetId"/> |
|
|
<el-table-column label="目标对象类型" align="center" prop="targetType"/> --> |
|
|
<el-table-column label="目标对象类型" align="center" prop="targetType"/> --> |
|
|
<el-table-column label="IP地址" align="center" prop="ip"/> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.ipLabel')" align="center" prop="ip"/> |
|
|
<el-table-column label="浏览器" align="center" prop="ua"/> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.uaLabel')" align="center" prop="ua"/> |
|
|
<el-table-column label="设备类型" align="center" prop="deviceType"> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.deviceTypeLabel')" align="center" prop="deviceType"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span>{{ getDeviceTypeLabel(scope.row.deviceType) }}</span> |
|
|
<span>{{ getDeviceTypeLabel(scope.row.deviceType) }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column label="平台类型" align="center" prop="platform"> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.platformLabel')" align="center" prop="platform"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span>{{ getPlatformLabel(scope.row.platform) }}</span> |
|
|
<span>{{ getPlatformLabel(scope.row.platform) }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<!-- <el-table-column label="地理位置" align="center" prop="location"/> --> |
|
|
<!-- <el-table-column label="地理位置" align="center" prop="location"/> --> |
|
|
<!-- <el-table-column label="扩展字段,用于存储额外信息" align="center" prop="extraInfo"/> --> |
|
|
<!-- <el-table-column label="扩展字段,用于存储额外信息" align="center" prop="extraInfo"/> --> |
|
|
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> |
|
|
<el-table-column :label="$t('business.behavior.userBehaviorLog.operationLabel')" align="center" width="200" class-name="small-padding fixed-width"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button |
|
|
<el-button |
|
|
size="mini" |
|
|
size="mini" |
|
@ -173,8 +173,8 @@ |
|
|
<!-- 添加或修改用户行为日志对话框 --> |
|
|
<!-- 添加或修改用户行为日志对话框 --> |
|
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
|
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
|
|
<el-form-item label="关联用户ID" prop="userId"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.userIdLabel')" prop="userId"> |
|
|
<el-input v-model="form.userId" placeholder="请输入关联用户ID"/> |
|
|
<el-input v-model="form.userId" :placeholder="$t('business.behavior.userBehaviorLog.userIdPlaceholder')"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item label="具体动作标识" prop="action"> |
|
|
<!-- <el-form-item label="具体动作标识" prop="action"> |
|
|
<el-input v-model="form.action" placeholder="请输入具体动作标识"/> |
|
|
<el-input v-model="form.action" placeholder="请输入具体动作标识"/> |
|
@ -182,14 +182,14 @@ |
|
|
<!-- <el-form-item label="目标对象ID" prop="targetId"> |
|
|
<!-- <el-form-item label="目标对象ID" prop="targetId"> |
|
|
<el-input v-model="form.targetId" placeholder="请输入目标对象ID"/> |
|
|
<el-input v-model="form.targetId" placeholder="请输入目标对象ID"/> |
|
|
</el-form-item> --> |
|
|
</el-form-item> --> |
|
|
<el-form-item label="客户端IP地址" prop="ip"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.ipLabel')" prop="ip"> |
|
|
<el-input v-model="form.ip" placeholder="请输入客户端IP地址"/> |
|
|
<el-input v-model="form.ip" :placeholder="$t('business.behavior.userBehaviorLog.ipPlaceholder')"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="浏览器" prop="ua"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.uaLabel')" prop="ua"> |
|
|
<el-input v-model="form.ua" placeholder="请输入内容"/> |
|
|
<el-input v-model="form.ua" :placeholder="$t('business.behavior.userBehaviorLog.uaPlaceholder')"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="行为类型" prop="behaviorType"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.behaviorTypeLabel')" prop="behaviorType"> |
|
|
<el-select v-model="form.behaviorType" placeholder="请选择行为类型"> |
|
|
<el-select v-model="form.behaviorType" :placeholder="$t('business.behavior.userBehaviorLog.behaviorTypePlaceholder')"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in behaviorTypeOptions" |
|
|
v-for="dict in behaviorTypeOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -198,8 +198,8 @@ |
|
|
/> |
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="设备类型" prop="deviceType"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.deviceTypeLabel')" prop="deviceType"> |
|
|
<el-select v-model="form.deviceType" placeholder="请选择设备类型"> |
|
|
<el-select v-model="form.deviceType" :placeholder="$t('business.behavior.userBehaviorLog.deviceTypePlaceholder')"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in deviceTypeOptions" |
|
|
v-for="dict in deviceTypeOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -208,8 +208,8 @@ |
|
|
/> |
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="平台类型" prop="platform"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.platformLabel')" prop="platform"> |
|
|
<el-select v-model="form.platform" placeholder="请选择平台类型"> |
|
|
<el-select v-model="form.platform" :placeholder="$t('business.behavior.userBehaviorLog.platformPlaceholder')"> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="dict in platformOptions" |
|
|
v-for="dict in platformOptions" |
|
|
:key="dict.dictValue" |
|
|
:key="dict.dictValue" |
|
@ -231,10 +231,10 @@ |
|
|
<!-- 用户行为日志详情 --> |
|
|
<!-- 用户行为日志详情 --> |
|
|
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body> |
|
|
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body> |
|
|
<el-form ref="form" :model="form" label-width="auto"> |
|
|
<el-form ref="form" :model="form" label-width="auto"> |
|
|
<el-form-item label="关联用户ID:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailUserIdLabel')"> |
|
|
{{ form.userId }} |
|
|
{{ form.userId }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="用户名:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailUserNameLabel')"> |
|
|
{{ form.userName }} |
|
|
{{ form.userName }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item label="具体动作标识:"> |
|
|
<!-- <el-form-item label="具体动作标识:"> |
|
@ -243,19 +243,19 @@ |
|
|
<!-- <el-form-item label="目标对象ID:"> |
|
|
<!-- <el-form-item label="目标对象ID:"> |
|
|
{{ form.targetId }} |
|
|
{{ form.targetId }} |
|
|
</el-form-item> --> |
|
|
</el-form-item> --> |
|
|
<el-form-item label="客户端IP地址:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailIpLabel')"> |
|
|
{{ form.ip }} |
|
|
{{ form.ip }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="浏览器:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailUaLabel')"> |
|
|
{{ form.ua }} |
|
|
{{ form.ua }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="行为类型:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailBehaviorTypeLabel')"> |
|
|
{{ getBehaviorTypeLabel(form.behaviorType) }} |
|
|
{{ getBehaviorTypeLabel(form.behaviorType) }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="设备类型:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailDeviceTypeLabel')"> |
|
|
{{ getDeviceTypeLabel(form.deviceType) }} |
|
|
{{ getDeviceTypeLabel(form.deviceType) }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="平台类型:"> |
|
|
<el-form-item :label="$t('business.behavior.userBehaviorLog.detailPlatformLabel')"> |
|
|
{{ getPlatformLabel(form.platform) }} |
|
|
{{ getPlatformLabel(form.platform) }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
@ -325,23 +325,23 @@ export default { |
|
|
{dictValue: '3', dictLabel: 'Android'}, |
|
|
{dictValue: '3', dictLabel: 'Android'}, |
|
|
], |
|
|
], |
|
|
behaviorTypeOptions: [ |
|
|
behaviorTypeOptions: [ |
|
|
{dictValue: '1', dictLabel: '登录'}, |
|
|
{dictValue: '1', dictLabel: this.$t('business.behavior.userBehaviorLog.loginLabel')}, |
|
|
{dictValue: '2', dictLabel: '支付'}, |
|
|
{dictValue: '2', dictLabel: this.$t('business.behavior.userBehaviorLog.paymentLabel')}, |
|
|
{dictValue: '3', dictLabel: '实名认证'}, |
|
|
{dictValue: '3', dictLabel: this.$t('business.behavior.userBehaviorLog.realNameAuthLabel')}, |
|
|
{dictValue: '4', dictLabel: '点击操作'}, |
|
|
{dictValue: '4', dictLabel: this.$t('business.behavior.userBehaviorLog.clickOperationLabel')}, |
|
|
{dictValue: '5', dictLabel: '访问页面'}, |
|
|
{dictValue: '5', dictLabel: this.$t('business.behavior.userBehaviorLog.visitPageLabel')}, |
|
|
{dictValue: '6', dictLabel: '登出'} |
|
|
{dictValue: '6', dictLabel: this.$t('business.behavior.userBehaviorLog.logoutLabel')} |
|
|
], |
|
|
], |
|
|
deviceTypeOptions: [ |
|
|
deviceTypeOptions: [ |
|
|
{dictValue: '1', dictLabel: 'PC'}, |
|
|
{dictValue: '1', dictLabel: 'PC'}, |
|
|
{dictValue: '2', dictLabel: '移动设备'}, |
|
|
{dictValue: '2', dictLabel: this.$t('business.behavior.userBehaviorLog.mobileDeviceLabel')}, |
|
|
{dictValue: '3', dictLabel: '平板设备'} |
|
|
{dictValue: '3', dictLabel: this.$t('business.behavior.userBehaviorLog.tabletDeviceLabel')} |
|
|
], |
|
|
], |
|
|
// 表单校验 |
|
|
// 表单校验 |
|
|
rules: { |
|
|
rules: { |
|
|
userId: [ |
|
|
userId: [ |
|
|
{ required: true, message: "用户关联ID不能为空", trigger: "blur" }, |
|
|
{ required: true, message: this.$t('business.behavior.userBehaviorLog.userIdRequired'), trigger: "blur" }, |
|
|
{ pattern: /^\d+$/, message: "用户关联ID必须为数字", trigger: "blur" } |
|
|
{ pattern: /^\d+$/, message: this.$t('business.behavior.userBehaviorLog.userIdMustNumber'), trigger: "blur" } |
|
|
],} |
|
|
],} |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
@ -407,14 +407,14 @@ export default { |
|
|
handleAdd() { |
|
|
handleAdd() { |
|
|
this.reset(); |
|
|
this.reset(); |
|
|
this.open = true; |
|
|
this.open = true; |
|
|
this.title = "添加用户行为日志"; |
|
|
this.title = this.$t('business.behavior.userBehaviorLog.addTitle'); |
|
|
}, |
|
|
}, |
|
|
/** 详情按钮操作 */ |
|
|
/** 详情按钮操作 */ |
|
|
handleDetail(row) { |
|
|
handleDetail(row) { |
|
|
this.reset(); |
|
|
this.reset(); |
|
|
this.form = row; |
|
|
this.form = row; |
|
|
this.detailOpen = true; |
|
|
this.detailOpen = true; |
|
|
this.title = "用户行为日志"; |
|
|
this.title = this.$t('business.behavior.userBehaviorLog.behaviorLog'); |
|
|
}, |
|
|
}, |
|
|
/** 修改按钮操作 */ |
|
|
/** 修改按钮操作 */ |
|
|
handleUpdate(row) { |
|
|
handleUpdate(row) { |
|
@ -425,7 +425,7 @@ export default { |
|
|
this.loading = false; |
|
|
this.loading = false; |
|
|
this.form = response.data; |
|
|
this.form = response.data; |
|
|
this.open = true; |
|
|
this.open = true; |
|
|
this.title = "修改用户行为日志"; |
|
|
this.title = $t('business.behavior.userBehaviorLog.editTitle'); |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
/** 提交按钮 */ |
|
|
/** 提交按钮 */ |
|
@ -435,7 +435,7 @@ export default { |
|
|
this.buttonLoading = true; |
|
|
this.buttonLoading = true; |
|
|
if (this.form.id != null) { |
|
|
if (this.form.id != null) { |
|
|
updateUserBehaviorLog(this.form).then(response => { |
|
|
updateUserBehaviorLog(this.form).then(response => { |
|
|
this.$modal.msgSuccess("修改成功"); |
|
|
this.$modal.msgSuccess(this.$t('common.promptMsg.editSuccess')); |
|
|
this.open = false; |
|
|
this.open = false; |
|
|
this.getList(); |
|
|
this.getList(); |
|
|
}).finally(() => { |
|
|
}).finally(() => { |
|
@ -443,7 +443,7 @@ export default { |
|
|
}); |
|
|
}); |
|
|
} else { |
|
|
} else { |
|
|
addUserBehaviorLog(this.form).then(response => { |
|
|
addUserBehaviorLog(this.form).then(response => { |
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
this.$modal.msgSuccess(this.$t('common.promptMsg.addSuccess')); |
|
|
this.open = false; |
|
|
this.open = false; |
|
|
this.getList(); |
|
|
this.getList(); |
|
|
}).finally(() => { |
|
|
}).finally(() => { |
|
@ -456,13 +456,13 @@ export default { |
|
|
/** 删除按钮操作 */ |
|
|
/** 删除按钮操作 */ |
|
|
handleDelete(row) { |
|
|
handleDelete(row) { |
|
|
const ids = row.id || this.ids; |
|
|
const ids = row.id || this.ids; |
|
|
this.$modal.confirm('是否确认删除用户行为日志编号为"' + ids + '"的数据项?').then(() => { |
|
|
this.$modal.confirm(this.$t('common.promptMsg.deleteConfirm')).then(() => { |
|
|
this.loading = true; |
|
|
this.loading = true; |
|
|
return delUserBehaviorLog(ids); |
|
|
return delUserBehaviorLog(ids); |
|
|
}).then(() => { |
|
|
}).then(() => { |
|
|
this.loading = false; |
|
|
this.loading = false; |
|
|
this.getList(); |
|
|
this.getList(); |
|
|
this.$modal.msgSuccess("删除成功"); |
|
|
this.$modal.msgSuccess(this.$t('common.promptMsg.deleteSuccess')); |
|
|
}).catch(() => { |
|
|
}).catch(() => { |
|
|
}).finally(() => { |
|
|
}).finally(() => { |
|
|
this.loading = false; |
|
|
this.loading = false; |
|
|