|
|
|
@ -23,6 +23,11 @@
|
|
|
|
|
:label="item.label" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item :label="$t('system:loginLog:label:IsLoginUncommonly')" prop="IsLoginUncommonly ">
|
|
|
|
|
<el-select v-model="searchData.IsLoginUncommonly" clearable style="width: 120px">
|
|
|
|
|
<el-option v-for="item of $d.YesOrNo" :key="item.id" :value="item.value" :label="item.label" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item :label="$t('system:loginLog:label:CreateTime')">
|
|
|
|
|
<el-date-picker v-model="datetimerange" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
:default-time="['00:00:00', '23:59:59']" @change="handleDatetimeChange" style="width: 380px" />
|
|
|
|
@ -46,8 +51,13 @@
|
|
|
|
|
justify-content: flex-end;
|
|
|
|
|
">
|
|
|
|
|
<el-tooltip class="item" effect="dark" :content="$t('system:loginLog:label:IsLoginUncommonly')"
|
|
|
|
|
placement="top" style="margin-right: 3px" v-if="scope.row.IsLoginUncommonly">
|
|
|
|
|
<i v-if="scope.row.IsLoginUncommonly" class="el-icon-warning icon-i"></i>
|
|
|
|
|
placement="top" style="margin-right: 3px" v-if="scope.row.IsIgnoreUncommonly">
|
|
|
|
|
<i v-if="scope.row.IsLoginUncommonly" class="el-icon-warning icon-i icon-success"></i>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<el-tooltip class="item" effect="dark" :content="$t('system:loginLog:label:IsLoginUncommonly')"
|
|
|
|
|
placement="top" style="margin-right: 3px" v-else-if="scope.row.IsLoginUncommonly">
|
|
|
|
|
<i v-if="scope.row.IsLoginUncommonly" class="el-icon-warning icon-i"
|
|
|
|
|
@click.stop="setIsIgnoreUncommonly(scope.row)"></i>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<span>{{ scope.$index + 1 }}</span>
|
|
|
|
|
</span>
|
|
|
|
@ -116,7 +126,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import { getUserLogList } from '@/api/user'
|
|
|
|
|
import { getUserLogList, setIsIgnoreUncommonly } from '@/api/user'
|
|
|
|
|
import Pagination from '@/components/Pagination'
|
|
|
|
|
import detail from './detail.vue'
|
|
|
|
|
import moment from 'moment'
|
|
|
|
@ -126,6 +136,7 @@ const searchDataDefault = () => {
|
|
|
|
|
OptTypeList: [],
|
|
|
|
|
Ip: '',
|
|
|
|
|
LoginFaildName: '',
|
|
|
|
|
IsLoginUncommonly: null,
|
|
|
|
|
LoginUserName: '',
|
|
|
|
|
LoginUserTypeEnum: null,
|
|
|
|
|
BeginDate: '',
|
|
|
|
@ -159,6 +170,26 @@ export default {
|
|
|
|
|
this.getList()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 忽略异地登录
|
|
|
|
|
async setIsIgnoreUncommonly(row) {
|
|
|
|
|
try {
|
|
|
|
|
let confirm = await this.$confirm(this.$t("system:loginLog:confirmMessage:setIsIgnoreUncommonly"))
|
|
|
|
|
if (!confirm) return false
|
|
|
|
|
let data = {
|
|
|
|
|
IsIgnoreUncommonly: true,
|
|
|
|
|
Id: row.Id
|
|
|
|
|
}
|
|
|
|
|
this.loading = true
|
|
|
|
|
let res = await setIsIgnoreUncommonly(data)
|
|
|
|
|
this.loading = false
|
|
|
|
|
if (res.IsSuccess) {
|
|
|
|
|
this.getList()
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
this.loading = false
|
|
|
|
|
console.log(err)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
handleOpenDialog(row) {
|
|
|
|
|
if (!row.JsonObj)
|
|
|
|
|
return this.$message.warning(this.$t('system:loginLog:message:noJSON'))
|
|
|
|
@ -245,5 +276,9 @@ export default {
|
|
|
|
|
color: #f56c6c;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.icon-success {
|
|
|
|
|
color: #67C23A
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|