From 8bfe1168a42d4e3750a15b0c0fb0a7629d6cf91c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 01 四月 2026 17:46:53 +0800
Subject: [PATCH] #日志清理与手动操作权限

---
 src/main/webapp/views/config/config.html |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 1 deletions(-)

diff --git a/src/main/webapp/views/config/config.html b/src/main/webapp/views/config/config.html
index 691e470..46425eb 100644
--- a/src/main/webapp/views/config/config.html
+++ b/src/main/webapp/views/config/config.html
@@ -114,6 +114,7 @@
 
         .toolbar-ops {
             justify-content: flex-end;
+            align-items: center;
         }
 
         .list-toolbar .el-input__inner,
@@ -248,6 +249,15 @@
             padding-right: 4px;
         }
 
+        .grant-status-text {
+            display: inline-flex;
+            align-items: center;
+            min-height: 32px;
+            padding: 0 6px;
+            color: #5c6b7a;
+            font-size: 12px;
+        }
+
         .dialog-panel .el-dialog {
             border-radius: 24px;
             overflow: hidden;
@@ -369,8 +379,18 @@
                                 v-for="field in quickSearchableFields"
                                 :key="'quick-' + field.field"
                                 class="toolbar-search-item">
+                                <el-autocomplete
+                                    v-if="field.kind === 'enum' && field.suggestInput"
+                                    v-model="searchForm[field.field]"
+                                    size="small"
+                                    clearable
+                                    :fetch-suggestions="getEnumSuggestionFetcher(field)"
+                                    :placeholder="field.label"
+                                    style="width: 100%;"
+                                    @keyup.enter.native="handleSearch">
+                                </el-autocomplete>
                                 <el-select
-                                    v-if="field.kind === 'enum'"
+                                    v-else-if="field.kind === 'enum'"
                                     v-model="searchForm[field.field]"
                                     size="small"
                                     clearable
@@ -458,6 +478,11 @@
                         </el-popover>
                         <el-button size="small" plain icon="el-icon-download" :loading="exporting" @click="exportRows">瀵煎嚭</el-button>
                         <el-button size="small" plain type="warning" icon="el-icon-refresh-right" @click="refreshCache">鍒锋柊缂撳瓨</el-button>
+                        <el-button size="small" plain type="success" icon="el-icon-key" @click="openGrantDialog">鏈�楂樻潈闄愭巿鏉�</el-button>
+                        <el-tag size="small" :type="grantStatus.granted ? 'success' : 'info'">
+                            {{ grantStatus.granted ? '宸叉巿鏉�' : '鏈巿鏉�' }}
+                        </el-tag>
+                        <span class="grant-status-text">{{ grantStatusText }}</span>
                     </div>
                 </div>
             </div>
@@ -481,6 +506,16 @@
                                 value-format="yyyy-MM-dd HH:mm:ss"
                                 style="width: 100%;">
                             </el-date-picker>
+                            <el-autocomplete
+                                v-else-if="field.kind === 'enum' && field.suggestInput"
+                                v-model="searchForm[field.field]"
+                                size="small"
+                                clearable
+                                :fetch-suggestions="getEnumSuggestionFetcher(field)"
+                                :placeholder="field.label"
+                                style="width: 100%;"
+                                @keyup.enter.native="handleSearch">
+                            </el-autocomplete>
                             <el-select
                                 v-else-if="field.kind === 'enum'"
                                 v-model="searchForm[field.field]"
@@ -628,6 +663,15 @@
                             :disabled="isDialogReadonly"
                             style="width: 100%;">
                         </el-date-picker>
+                        <el-autocomplete
+                            v-else-if="field.kind === 'enum' && field.suggestInput"
+                            v-model="dialogForm[field.field]"
+                            clearable
+                            :fetch-suggestions="getEnumSuggestionFetcher(field)"
+                            :placeholder="'璇疯緭鍏�' + field.label"
+                            :disabled="isDialogReadonly"
+                            style="width: 100%;">
+                        </el-autocomplete>
                         <el-select
                             v-else-if="field.kind === 'enum'"
                             v-model="dialogForm[field.field]"
@@ -688,10 +732,53 @@
             <el-button v-if="!isDialogReadonly" type="primary" :loading="dialog.submitting" @click="submitDialog">淇濆瓨</el-button>
         </div>
     </el-dialog>
+
+    <el-dialog
+        class="dialog-panel"
+        title="鏈�楂樻潈闄愭巿鏉�"
+        :visible.sync="grantDialog.visible"
+        width="460px"
+        :close-on-click-modal="false"
+        @closed="resetGrantDialog">
+        <el-alert
+            title="浠呰鑹茬紪鐮佷负admin鐨勫惎鐢ㄧ鐞嗗憳璐﹀彿鍙巿鏉冿紝鎺堟潈鏈夋晥鏈�30鍒嗛挓銆�"
+            type="warning"
+            :closable="false"
+            show-icon
+            style="margin-bottom: 16px;">
+        </el-alert>
+        <el-form
+            ref="grantForm"
+            :model="grantDialog.form"
+            :rules="grantDialog.rules"
+            label-width="90px"
+            size="small">
+            <el-form-item label="璐﹀彿" prop="account">
+                <el-input
+                    v-model.trim="grantDialog.form.account"
+                    placeholder="璇疯緭鍏ョ鐞嗗憳璐﹀彿">
+                </el-input>
+            </el-form-item>
+            <el-form-item label="瀵嗙爜" prop="password">
+                <el-input
+                    v-model="grantDialog.form.password"
+                    type="password"
+                    show-password
+                    placeholder="璇疯緭鍏ュ瘑鐮�"
+                    @keyup.enter.native="submitGrant">
+                </el-input>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="grantDialog.visible = false">鍙栨秷</el-button>
+            <el-button type="primary" :loading="grantDialog.submitting" @click="submitGrant">纭鎺堟潈</el-button>
+        </div>
+    </el-dialog>
 </div>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/tools/md5.js"></script>
 <script type="text/javascript" src="../../static/vue/js/vue.min.js"></script>
 <script type="text/javascript" src="../../static/vue/element/element.js"></script>
 <script type="text/javascript" src="../../static/js/config/config.js" charset="utf-8"></script>

--
Gitblit v1.9.1