Junjie
3 天以前 9b8ff50b66361c4b56074b7586b2d5951ecf2091
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>