From 3eab4409e562a873d9bd7b047b3d0590901a6654 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 11 三月 2026 11:06:49 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/config/config.html |   43 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/src/main/webapp/views/config/config.html b/src/main/webapp/views/config/config.html
index 02587dd..2c4bd10 100644
--- a/src/main/webapp/views/config/config.html
+++ b/src/main/webapp/views/config/config.html
@@ -22,6 +22,7 @@
         html,
         body {
             margin: 0;
+            height: 100%;
             min-height: 100%;
             color: var(--text-main);
             font-family: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
@@ -34,12 +35,16 @@
         .page-shell {
             max-width: 1700px;
             margin: 0 auto;
+            height: 100%;
             padding: 14px;
             box-sizing: border-box;
+            display: flex;
         }
 
         .card-shell {
             position: relative;
+            flex: 1 1 auto;
+            display: flex;
             border-radius: 24px;
             border: 1px solid var(--card-border);
             background:
@@ -53,6 +58,12 @@
         .card-body {
             position: relative;
             z-index: 1;
+            flex: 1 1 auto;
+            min-height: 0;
+            min-width: 0;
+            width: 100%;
+            display: flex;
+            flex-direction: column;
         }
 
         .list-toolbar {
@@ -164,6 +175,11 @@
 
         .table-wrap {
             padding: 10px 16px;
+            flex: 1 1 auto;
+            min-height: 0;
+            min-width: 0;
+            width: 100%;
+            display: flex;
         }
 
         .table-shell {
@@ -171,6 +187,11 @@
             overflow: hidden;
             border: 1px solid rgba(217, 227, 238, 0.98);
             background: rgba(255, 255, 255, 0.95);
+            flex: 1 1 auto;
+            min-height: 0;
+            min-width: 0;
+            width: 100%;
+            max-width: 100%;
         }
 
         .table-shell .el-table {
@@ -436,6 +457,7 @@
                             <el-button slot="reference" size="small" plain icon="el-icon-setting">鍒楄缃�</el-button>
                         </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>
                     </div>
                 </div>
             </div>
@@ -510,7 +532,7 @@
                 </div>
             </el-collapse-transition>
 
-            <div class="table-wrap">
+            <div ref="tableWrap" class="table-wrap">
                 <div class="table-shell">
                     <el-table
                         ref="dataTable"
@@ -552,8 +574,9 @@
                                 <span v-else>{{ valueOrDash(getTableValue(scope.row, field)) }}</span>
                             </template>
                         </el-table-column>
-                        <el-table-column label="鎿嶄綔" width="160" fixed="right" align="center">
+                        <el-table-column label="鎿嶄綔" width="190" fixed="right" align="center">
                             <template slot-scope="scope">
+                                <el-button type="text" @click="openDetailDialog(scope.row)">璇︽儏</el-button>
                                 <el-button type="text" @click="openEditDialog(scope.row)">淇敼</el-button>
                                 <el-button type="text" style="color:#f56c6c;" @click="removeRows([scope.row[primaryKeyField]])">鍒犻櫎</el-button>
                             </template>
@@ -562,7 +585,7 @@
                 </div>
             </div>
 
-            <div class="pager-bar">
+            <div ref="pagerBar" class="pager-bar">
                 <el-pagination
                     small
                     background
@@ -580,7 +603,7 @@
 
     <el-dialog
         class="dialog-panel"
-        :title="dialog.mode === 'create' ? '鏂板 Config' : '淇敼 Config'"
+        :title="dialog.mode === 'create' ? '鏂板 Config' : (dialog.mode === 'detail' ? '璇︽儏 Config' : '淇敼 Config')"
         :visible.sync="dialog.visible"
         width="760px"
         :close-on-click-modal="false">
@@ -594,7 +617,7 @@
                 <el-col
                     v-for="field in editableFields"
                     :key="'dialog-' + field.field"
-                    :span="field.textarea || field.kind === 'image' ? 24 : 12">
+                    :span="field.dialogSpan || (field.textarea || field.kind === 'image' ? 24 : 12)">
                     <el-form-item :label="field.label" :prop="field.field">
                         <el-date-picker
                             v-if="field.kind === 'date'"
@@ -602,12 +625,14 @@
                             type="datetime"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             :placeholder="'璇烽�夋嫨' + field.label"
+                            :disabled="isDialogReadonly"
                             style="width: 100%;">
                         </el-date-picker>
                         <el-select
                             v-else-if="field.kind === 'enum'"
                             v-model="dialogForm[field.field]"
                             clearable
+                            :disabled="isDialogReadonly"
                             :placeholder="'璇烽�夋嫨' + field.label"
                             style="width: 100%;">
                             <el-option
@@ -622,6 +647,7 @@
                             v-model="dialogDisplay[field.field]"
                             :fetch-suggestions="getSuggestionFetcher(field)"
                             :placeholder="'璇疯緭鍏�' + field.label"
+                            :disabled="isDialogReadonly"
                             style="width: 100%;"
                             @select="handleForeignSelect(field, $event)"
                             @input="handleForeignInput(field)">
@@ -633,6 +659,7 @@
                         <el-switch
                             v-else-if="field.kind === 'checkbox'"
                             v-model="dialogForm[field.field]"
+                            :disabled="isDialogReadonly"
                             :active-value="normalizeOptionValue(field, field.checkboxActiveRaw)"
                             :inactive-value="normalizeOptionValue(field, field.checkboxInactiveRaw)"
                             active-color="#13ce66"
@@ -643,11 +670,13 @@
                             v-model.trim="dialogForm[field.field]"
                             type="textarea"
                             :rows="3"
+                            :disabled="isDialogReadonly"
                             :placeholder="'璇疯緭鍏�' + field.label">
                         </el-input>
                         <el-input
                             v-else
                             v-model.trim="dialogForm[field.field]"
+                            :disabled="isDialogReadonly"
                             :placeholder="'璇疯緭鍏�' + field.label">
                         </el-input>
                     </el-form-item>
@@ -656,7 +685,7 @@
         </el-form>
         <div slot="footer" class="dialog-footer">
             <el-button @click="dialog.visible = false">鍙栨秷</el-button>
-            <el-button type="primary" :loading="dialog.submitting" @click="submitDialog">淇濆瓨</el-button>
+            <el-button v-if="!isDialogReadonly" type="primary" :loading="dialog.submitting" @click="submitDialog">淇濆瓨</el-button>
         </div>
     </el-dialog>
 </div>
@@ -665,6 +694,6 @@
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></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?v=20260310" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/config/config.js" charset="utf-8"></script>
 </body>
 </html>

--
Gitblit v1.9.1