This commit is contained in:
ljw
2024-09-25 22:24:16 +08:00
parent b765154156
commit 8be855ff3e
29 changed files with 904 additions and 437 deletions
+8 -7
View File
@@ -1,22 +1,22 @@
<template>
<div class="oauth">
<el-card class="card">
<h2>您正在授权绑定</h2>
<h2>{{ T('OauthBinding') }}</h2>
<el-form class="info" label-width="100px">
<el-form-item label="平台">
<el-form-item :label="T('Op')">
<div class="impt">{{ oauthInfo.op }}</div>
</el-form-item>
<el-form-item label="用户名">
<el-form-item :label="T('ThirdName')">
<div class="impt">{{ oauthInfo.third_name }}</div>
</el-form-item>
<el-form-item label-width="0">
<el-button style="width: 100%" v-if="!resStatus" type="success" size="large" @click="toConfirm">绑定</el-button>
<el-button style="width: 100%" v-if="!resStatus" type="success" size="large" @click="toConfirm">{{ T('Bind') }}</el-button>
</el-form-item>
<el-form-item label-width="0">
<el-button style="width: 100%" size="large" @click="out">关闭页面</el-button>
<el-button style="width: 100%" size="large" @click="out">{{ T('Close') }}</el-button>
</el-form-item>
</el-form>
如果不是您操作的授权请直接关闭页面
{{ T('OauthCloseNote') }}
</el-card>
</div>
</template>
@@ -26,6 +26,7 @@
import { info, confirm, bindConfirm } from '@/api/oauth'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import { T } from '@/utils/i18n'
const oauthInfo = ref({})
const route = useRoute()
@@ -48,7 +49,7 @@
const res = await bindConfirm({ code }).catch(_ => false)
if (res) {
resStatus.value = 1
ElMessage.success('操作成功,3秒后将自动关闭本页面')
ElMessage.success(T('OperationSuccessAndCloseAfter3Seconds'))
setTimeout(_ => {
out()
}, 3000)
+27 -26
View File
@@ -1,24 +1,24 @@
<template>
<div>
<el-card class="list-query" shadow="hover">
<el-form inline label-width="60px">
<el-form inline label-width="80px">
<el-form-item>
<el-button type="primary" @click="handlerQuery">筛选</el-button>
<el-button type="danger" @click="toAdd">添加</el-button>
<el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
<el-button type="danger" @click="toAdd">{{ T('Add') }}</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="list-body" shadow="hover">
<el-table :data="listRes.list" v-loading="listRes.loading" border>
<el-table-column prop="id" label="id" align="center"/>
<el-table-column prop="op" label="名称" align="center"/>
<el-table-column prop="auto_register" label="自动注册" align="center"/>
<el-table-column prop="created_at" label="创建时间" align="center"/>
<el-table-column prop="updated_at" label="更新时间" align="center"/>
<el-table-column label="操作" align="center">
<el-table-column prop="op" :label="T('Op')" align="center"/>
<el-table-column prop="auto_register" :label="T('AutoRegister')" align="center"/>
<el-table-column prop="created_at" :label="T('CreatedAt')" align="center"/>
<el-table-column prop="updated_at" :label="T('UpdatedAt')" align="center"/>
<el-table-column :label="T('Actions')" align="center">
<template #default="{row}">
<el-button @click="toEdit(row)">编辑</el-button>
<el-button type="danger" @click="del(row)">删除</el-button>
<el-button @click="toEdit(row)">{{ T('Edit') }}</el-button>
<el-button type="danger" @click="del(row)">{{ T('Delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -32,7 +32,7 @@
:total="listRes.total">
</el-pagination>
</el-card>
<el-dialog v-model="formVisible" :title="!formData.id?'创建':'修改'" width="800">
<el-dialog v-model="formVisible" :title="!formData.id?T('Create') :T('Update')" width="800">
<el-form class="dialog-form" ref="form" :model="formData" :rules="rules" label-width="120px">
<el-form-item label="ClientId" prop="client_id">
<el-input v-model="formData.client_id"></el-input>
@@ -43,23 +43,23 @@
<el-form-item label="RedirectUrl" prop="redirect_url">
<el-input v-model="formData.redirect_url"></el-input>
</el-form-item>
<el-form-item label="类型" prop="op" >
<el-form-item label="op" prop="op">
<el-radio-group v-model="formData.op" :disabled="!!formData.id">
<el-radio v-for="item in ops" :key="item.value" :label="item.value" style="display: block">
<el-radio v-for="item in ops" :key="item.value" :value="item.value" style="display: block">
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="自动注册" prop="open_auto_register">
<el-form-item :label="T('AutoRegister')" prop="auto_register">
<el-switch v-model="formData.auto_register"
:active-value="true"
:inactive-value="false"
></el-switch>
<div style="display: block;margin-left: 10px">如果开启,当用户使用oauth登录而没绑定时,会自动注册一个账号</div>
<div style="display: block;margin-left: 10px">{{ T('AutoRegisterNote') }}</div>
</el-form-item>
<el-form-item>
<el-button @click="formVisible = false">取消</el-button>
<el-button @click="submit" type="primary">提交</el-button>
<el-button @click="formVisible = false">{{ T('Cancel') }}</el-button>
<el-button @click="submit" type="primary">{{ T('Submit') }}</el-button>
</el-form-item>
</el-form>
</el-dialog>
@@ -70,6 +70,7 @@
import { onMounted, reactive, watch, ref, onActivated } from 'vue'
import { list, create, update, detail, remove } from '@/api/oauth'
import { ElMessage, ElMessageBox } from 'element-plus'
import { T } from '@/utils/i18n'
const listRes = reactive({
list: [], total: 0, loading: false,
@@ -100,9 +101,9 @@
}
const del = async (row) => {
const cf = await ElMessageBox.confirm('确定删除么?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
const cf = await ElMessageBox.confirm(T('Confirm?', { param: T('Delete') }), {
confirmButtonText: T('Confirm'),
cancelButtonText: T('Cancel'),
type: 'warning',
}).catch(_ => false)
if (!cf) {
@@ -111,7 +112,7 @@
const res = await remove({ id: row.id }).catch(_ => false)
if (res) {
ElMessage.success('操作成功')
ElMessage.success(T('OperationSuccess'))
getList()
}
}
@@ -132,10 +133,10 @@
auto_register: false,
})
const rules = {
client_id: [{ required: true, message: '请输入ClientId', trigger: 'blur' }],
client_secret: [{ required: true, message: '请输入ClientSecret', trigger: 'blur' }],
redirect_url: [{ required: true, message: '请输入RedirectUrl', trigger: 'blur' }],
op: [{ required: true, message: '请选择类型', trigger: 'blur' }],
client_id: [{ required: true, message: T('ParamRequired', { param: 'client_id' }), trigger: 'blur' }],
client_secret: [{ required: true, message: T('ParamRequired', { param: 'client_secret' }), trigger: 'blur' }],
redirect_url: [{ required: true, message: T('ParamRequired', { param: 'redirect_url' }), trigger: 'blur' }],
op: [{ required: true, message: T('ParamRequired', { param: 'op' }), trigger: 'blur' }],
}
const toEdit = (row) => {
formVisible.value = true
@@ -165,7 +166,7 @@
const api = formData.id ? update : create
const res = await api(formData).catch(_ => false)
if (res) {
ElMessage.success('操作成功')
ElMessage.success(T('OperationSuccess'))
formVisible.value = false
getList()
}
+6 -6
View File
@@ -1,22 +1,22 @@
<template>
<div class="oauth">
<el-card class="card">
<h2>您正在授权登录</h2>
<h2>{{ T('OauthLogining') }}</h2>
<el-form class="info" label-width="100px">
<el-form-item label="设备">
<el-form-item :label="T('Device')">
<div class="impt">{{ oauthInfo.device_name }}</div>
</el-form-item>
<el-form-item label="ID">
<div class="impt">{{ oauthInfo.id }}</div>
</el-form-item>
<el-form-item label-width="0">
<el-button style="width: 100%" v-if="!resStatus" type="success" size="large" @click="toConfirm">授权登录</el-button>
<el-button style="width: 100%" v-if="!resStatus" type="success" size="large" @click="toConfirm">{{ T('ConfirmOauth') }}</el-button>
</el-form-item>
<el-form-item label-width="0">
<el-button style="width: 100%" size="large" @click="out">关闭页面</el-button>
<el-button style="width: 100%" size="large" @click="out">{{ T('Close') }}</el-button>
</el-form-item>
</el-form>
如果不是您操作的授权请直接关闭页面
{{ T('OauthCloseNote') }}
</el-card>
</div>
</template>
@@ -48,7 +48,7 @@
const res = await confirm({ code }).catch(_ => false)
if (res) {
resStatus.value = 1
ElMessage.success('操作成功,3秒后将自动关闭本页面')
ElMessage.success(T('OperationSuccessAndCloseAfter3Seconds'))
setTimeout(_ => {
out()
}, 3000)