|
29 | 29 |
|
30 | 30 | <!-- 列表 -->
|
31 | 31 | <el-table v-loading="loading" :data="list">
|
32 |
| - <el-table-column label="客户端编号" align="center" prop="id" /> |
| 32 | + <el-table-column label="客户端编号" align="center" prop="clientId" /> |
33 | 33 | <el-table-column label="客户端密钥" align="center" prop="secret" />
|
34 | 34 | <el-table-column label="应用名" align="center" prop="name" />
|
35 |
| - <el-table-column label="应用图标" align="center" prop="logo" /> |
36 |
| - <el-table-column label="应用描述" align="center" prop="description" /> |
| 35 | + <el-table-column label="应用图标" align="center" prop="logo"> |
| 36 | + <template slot-scope="scope"> |
| 37 | + <img width="40px" height="40px" :src="scope.row.logo"> |
| 38 | + </template> |
| 39 | + </el-table-column> |
37 | 40 | <el-table-column label="状态" align="center" prop="status">
|
38 | 41 | <template slot-scope="scope">
|
39 | 42 | <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
|
40 | 43 | </template>
|
41 | 44 | </el-table-column>
|
42 |
| - <el-table-column label="访问令牌的有效期" align="center" prop="accessTokenValiditySeconds" /> |
43 |
| - <el-table-column label="刷新令牌的有效期" align="center" prop="refreshTokenValiditySeconds" /> |
44 |
| - <el-table-column label="可重定向的 URI 地址" align="center" prop="redirectUris" /> |
| 45 | + <el-table-column label="访问令牌的有效期" align="center" prop="accessTokenValiditySeconds"> |
| 46 | + <template slot-scope="scope">{{ scope.row.accessTokenValiditySeconds }} 秒</template> |
| 47 | + </el-table-column> |
| 48 | + <el-table-column label="刷新令牌的有效期" align="center" prop="refreshTokenValiditySeconds"> |
| 49 | + <template slot-scope="scope">{{ scope.row.refreshTokenValiditySeconds }} 秒</template> |
| 50 | + </el-table-column> |
| 51 | + <el-table-column label="授权类型" align="center" prop="authorizedGrantTypes"> |
| 52 | + <template slot-scope="scope"> |
| 53 | + <el-tag :disable-transitions="true" v-for="(authorizedGrantType, index) in scope.row.authorizedGrantTypes" :index="index"> |
| 54 | + {{ authorizedGrantType }} |
| 55 | + </el-tag> |
| 56 | + </template> |
| 57 | + </el-table-column> |
45 | 58 | <el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
46 | 59 | <template slot-scope="scope">
|
47 | 60 | <span>{{ parseTime(scope.row.createTime) }}</span>
|
|
63 | 76 | <!-- 对话框(添加 / 修改) -->
|
64 | 77 | <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
65 | 78 | <el-form ref="form" :model="form" :rules="rules" label-width="160px">
|
| 79 | + <el-form-item label="客户端编号" prop="secret"> |
| 80 | + <el-input v-model="form.clientId" placeholder="请输入客户端编号" /> |
| 81 | + </el-form-item> |
66 | 82 | <el-form-item label="客户端密钥" prop="secret">
|
67 | 83 | <el-input v-model="form.secret" placeholder="请输入客户端密钥" />
|
68 | 84 | </el-form-item>
|
69 | 85 | <el-form-item label="应用名" prop="name">
|
70 | 86 | <el-input v-model="form.name" placeholder="请输入应用名" />
|
71 | 87 | </el-form-item>
|
72 | 88 | <el-form-item label="应用图标">
|
73 |
| -<!-- <imageUpload v-model="form.logo" :limit="1"/>--> |
74 |
| - <file-upload v-model="form.logo" :limit="1"/> |
| 89 | + <imageUpload v-model="form.logo" :limit="1"/> |
75 | 90 | </el-form-item>
|
76 | 91 | <el-form-item label="应用描述">
|
77 | 92 | <el-input type="textarea" v-model="form.description" placeholder="请输入应用名" />
|
|
89 | 104 | <el-input-number v-model="form.refreshTokenValiditySeconds" placeholder="单位:秒" />
|
90 | 105 | </el-form-item>
|
91 | 106 | <el-form-item label="可重定向的 URI 地址" prop="redirectUris">
|
92 |
| - <el-input v-model="form.redirectUris" placeholder="请输入可重定向的 URI 地址" /> |
| 107 | + <el-select v-model="form.redirectUris" multiple filterable allow-create placeholder="请输入可重定向的 URI 地址" style="width: 500px" > |
| 108 | + <el-option v-for="redirectUri in form.redirectUris" :key="redirectUri" :label="redirectUri" :value="redirectUri"/> |
| 109 | + </el-select> |
| 110 | + </el-form-item> |
| 111 | + <el-form-item label="是否自动授权" prop="autoApprove"> |
| 112 | + <el-radio-group v-model="form.autoApprove"> |
| 113 | + <el-radio :key="true" :label="true">自动登录</el-radio> |
| 114 | + <el-radio :key="false" :label="false">手动登录</el-radio> |
| 115 | + </el-radio-group> |
| 116 | + </el-form-item> |
| 117 | + <el-form-item label="授权类型" prop="authorizedGrantTypes"> |
| 118 | + <el-select v-model="form.authorizedGrantTypes" multiple filterable placeholder="请输入授权类型" style="width: 500px" > |
| 119 | + <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_OAUTH2_GRANT_TYPE)" |
| 120 | + :key="dict.value" :label="dict.label" :value="dict.value"/> |
| 121 | + </el-select> |
| 122 | + </el-form-item> |
| 123 | + <el-form-item label="授权范围" prop="scopes"> |
| 124 | + <el-select v-model="form.scopes" multiple filterable allow-create placeholder="请输入授权范围" style="width: 500px" > |
| 125 | + <el-option v-for="scope in form.scopes" :key="scope" :label="scope" :value="scope"/> |
| 126 | + </el-select> |
| 127 | + </el-form-item> |
| 128 | + <el-form-item label="权限" prop="authorities"> |
| 129 | + <el-select v-model="form.authorities" multiple filterable allow-create placeholder="请输入权限" style="width: 500px" > |
| 130 | + <el-option v-for="authority in form.authorities" :key="authority" :label="authority" :value="authority"/> |
| 131 | + </el-select> |
| 132 | + </el-form-item> |
| 133 | + <el-form-item label="资源" prop="resourceIds"> |
| 134 | + <el-select v-model="form.resourceIds" multiple filterable allow-create placeholder="请输入资源" style="width: 500px" > |
| 135 | + <el-option v-for="resourceId in form.resourceIds" :key="resourceId" :label="resourceId" :value="resourceId"/> |
| 136 | + </el-select> |
| 137 | + </el-form-item> |
| 138 | + <el-form-item label="附加信息" prop="additionalInformation"> |
| 139 | + <el-input type="textarea" v-model="form.additionalInformation" placeholder="请输入附加信息,JSON 格式数据" /> |
93 | 140 | </el-form-item>
|
94 | 141 | </el-form>
|
95 | 142 | <div slot="footer" class="dialog-footer">
|
@@ -141,13 +188,16 @@ export default {
|
141 | 188 | form: {},
|
142 | 189 | // 表单校验
|
143 | 190 | rules: {
|
| 191 | + clientId: [{ required: true, message: "客户端编号不能为空", trigger: "blur" }], |
144 | 192 | secret: [{ required: true, message: "客户端密钥不能为空", trigger: "blur" }],
|
145 | 193 | name: [{ required: true, message: "应用名不能为空", trigger: "blur" }],
|
146 | 194 | logo: [{ required: true, message: "应用图标不能为空", trigger: "blur" }],
|
147 | 195 | status: [{ required: true, message: "状态不能为空", trigger: "blur" }],
|
148 | 196 | accessTokenValiditySeconds: [{ required: true, message: "访问令牌的有效期不能为空", trigger: "blur" }],
|
149 | 197 | refreshTokenValiditySeconds: [{ required: true, message: "刷新令牌的有效期不能为空", trigger: "blur" }],
|
150 | 198 | redirectUris: [{ required: true, message: "可重定向的 URI 地址不能为空", trigger: "blur" }],
|
| 199 | + autoApprove: [{ required: true, message: "是否自动授权不能为空", trigger: "blur" }], |
| 200 | + authorizedGrantTypes: [{ required: true, message: "授权类型不能为空", trigger: "blur" }], |
151 | 201 | }
|
152 | 202 | };
|
153 | 203 | },
|
@@ -176,14 +226,21 @@ export default {
|
176 | 226 | reset() {
|
177 | 227 | this.form = {
|
178 | 228 | id: undefined,
|
| 229 | + clientId: undefined, |
179 | 230 | secret: undefined,
|
180 | 231 | name: undefined,
|
181 | 232 | logo: undefined,
|
182 | 233 | description: undefined,
|
183 | 234 | status: CommonStatusEnum.ENABLE,
|
184 |
| - accessTokenValiditySeconds: undefined, |
185 |
| - refreshTokenValiditySeconds: undefined, |
186 |
| - redirectUris: undefined, |
| 235 | + accessTokenValiditySeconds: 30 * 60, |
| 236 | + refreshTokenValiditySeconds: 30 * 24 * 60, |
| 237 | + redirectUris: [], |
| 238 | + autoApprove: true, |
| 239 | + authorizedGrantTypes: [], |
| 240 | + scopes: [], |
| 241 | + authorities: [], |
| 242 | + resourceIds: [], |
| 243 | + additionalInformation: undefined, |
187 | 244 | };
|
188 | 245 | this.resetForm("form");
|
189 | 246 | },
|
@@ -239,7 +296,7 @@ export default {
|
239 | 296 | /** 删除按钮操作 */
|
240 | 297 | handleDelete(row) {
|
241 | 298 | const id = row.id;
|
242 |
| - this.$modal.confirm('是否确认删除 OAuth2 客户端编号为"' + id + '"的数据项?').then(function() { |
| 299 | + this.$modal.confirm('是否确认删除客户端编号为"' + row.clientId + '"的数据项?').then(function() { |
243 | 300 | return deleteOAuth2Client(id);
|
244 | 301 | }).then(() => {
|
245 | 302 | this.getList();
|
|
0 commit comments