update: 基础配置组件替换

This commit is contained in:
easy 2023-03-07 15:52:29 +08:00
parent e2417ed44e
commit e2339e28b5
1 changed files with 269 additions and 262 deletions

View File

@ -1,62 +1,66 @@
<template> <template>
<page-container> <page-container>
<a-card class="basis-container"> <div class="basis-container">
<a-form <j-form
layout="vertical" layout="vertical"
ref="formBasicRef" ref="formBasicRef"
:rules="rulesFrom" :rules="rulesFrom"
:model="formValue" :model="formValue"
> >
<a-row :span="24" :gutter="24"> <j-row :span="24" :gutter="24">
<a-col :span="10"> <j-col :span="10">
<a-form-item label="系统名称" name="title"> <j-form-item label="系统名称" name="title">
<a-input <j-input
v-model:value="formValue.title" v-model:value="formValue.title"
:maxlength="64" :maxlength="64"
placeholder="请输入系统名称" placeholder="请输入系统名称"
/> />
</a-form-item> </j-form-item>
<a-form-item label="主题色" name="headerTheme"> <j-form-item label="主题色" name="headerTheme">
<a-select v-model:value="formValue.headerTheme"> <j-select v-model:value="formValue.headerTheme">
<a-select-option value="light" <j-select-option value="light">
>白色</a-select-option 白色
> </j-select-option>
<a-select-option value="dark">黑色</a-select-option> <j-select-option value="dark">
</a-select> 黑色
</a-form-item> </j-select-option>
<a-form-item> </j-select>
</j-form-item>
<j-form-item>
<template #label> <template #label>
<span>高德API Key</span> <span>高德API Key</span>
<a-tooltip title="配置后平台可调用高德地图GIS服务"> <j-tooltip
title="配置后平台可调用高德地图GIS服务"
>
<img <img
class="img-style" class="img-style"
:src="getImage('/init-home/mark.png')" :src="getImage('/init-home/mark.png')"
/> />
</a-tooltip> </j-tooltip>
</template> </template>
<a-input <j-input
v-model:value="formValue.apiKey" v-model:value="formValue.apiKey"
placeholder="请输入高德API Key" placeholder="请输入高德API Key"
/> />
</a-form-item> </j-form-item>
<a-form-item name="'base-path'"> <j-form-item name="'base-path'">
<template #label> <template #label>
<span>base-path</span> <span>base-path</span>
<a-tooltip title="系统后台访问的url"> <j-tooltip title="系统后台访问的url">
<img <img
class="img-style" class="img-style"
:src="getImage('/init-home/mark.png')" :src="getImage('/init-home/mark.png')"
/> />
</a-tooltip> </j-tooltip>
</template> </template>
<a-input <j-input
v-model:value="formValue['base-path']" v-model:value="formValue['base-path']"
placeholder="请输入高德API Key" placeholder="请输入高德API Key"
/> />
</a-form-item> </j-form-item>
<a-row :gutter="24" :span="24"> <j-row :gutter="24" :span="24">
<a-col> <j-col>
<a-form-item label="系统logo"> <j-form-item label="系统logo">
<div class="upload-image-warp-logo"> <div class="upload-image-warp-logo">
<div class="upload-image-border-logo"> <div class="upload-image-border-logo">
<a-upload <a-upload
@ -67,7 +71,9 @@
:beforeUpload=" :beforeUpload="
uploader.beforeLogoUpload uploader.beforeLogoUpload
" "
@change="uploader.handleChangeLogo" @change="
uploader.handleChangeLogo
"
:accept=" :accept="
uploader.imageTypes.toString() uploader.imageTypes.toString()
" "
@ -79,8 +85,8 @@
class="loading-logo" class="loading-logo"
v-if="form.logoLoading" v-if="form.logoLoading"
> >
<LoadingOutlined <AIcon
style="font-size: 28px" type="LoadingOutlined"
/> />
</div> </div>
<div <div
@ -100,53 +106,50 @@
点击修改 点击修改
</div> </div>
<div v-else> <div v-else>
<div <AIcon
v-if="form.logoLoading" :type="
> form.logoLoading
<LoadingOutlined ? 'LoadingOutlined'
style=" : 'PlusOutlined'
font-size: 28px;
" "
/> />
</div> </div>
<div v-else>
<PlusOutlined
style="
font-size: 28px;
"
/>
</div>
</div>
</div> </div>
</a-upload> </a-upload>
<div v-if="form.logoLoading"> <div v-if="form.logoLoading">
<div class="upload-loading-mask"> <div
<LoadingOutlined class="upload-loading-mask"
style="font-size: 28px" >
<AIcon
type="LoadingOutlined"
/> />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="upload-tips">推荐尺寸200*200</div> <div class="upload-tips">
推荐尺寸200*200
</div>
<div class="upload-tips">支持jpg,png</div> <div class="upload-tips">支持jpg,png</div>
</a-form-item> </j-form-item>
</a-col> </j-col>
<a-col> <j-col>
<a-form-item> <j-form-item>
<template #label> <template #label>
<span>浏览器页签</span> <span>浏览器页签</span>
<a-tooltip <j-tooltip
title="浏览器tab页中显示的图片元素" title="浏览器tab页中显示的图片元素"
> >
<img <img
class="img-style" class="img-style"
:src=" :src="
getImage('/init-home/mark.png') getImage(
'/init-home/mark.png',
)
" "
/> />
</a-tooltip> </j-tooltip>
</template> </template>
<div class="upload-image-warp-logo"> <div class="upload-image-warp-logo">
<div class="upload-image-border-logo"> <div class="upload-image-border-logo">
@ -158,7 +161,9 @@
:beforeUpload=" :beforeUpload="
uploader.beforeIconUpload uploader.beforeIconUpload
" "
@change="uploader.changeIconUpload" @change="
uploader.changeIconUpload
"
:accept=" :accept="
uploader.imageTypes.toString() uploader.imageTypes.toString()
" "
@ -170,8 +175,8 @@
v-if="form.iconLoading" v-if="form.iconLoading"
class="loading-icon" class="loading-icon"
> >
<LoadingOutlined <AIcon
style="font-size: 28px" type="LoadingOutlined"
/> />
</div> </div>
<div <div
@ -191,10 +196,8 @@
</div> </div>
<div v-else> <div v-else>
<div> <div>
<PlusOutlined <AIcon
style=" type="PlusOutlined"
font-size: 28px;
"
/> />
</div> </div>
</div> </div>
@ -205,19 +208,21 @@
<div class="upload-tips">推荐尺寸64*64</div> <div class="upload-tips">推荐尺寸64*64</div>
<div class="upload-tips">支持icon格式</div> <div class="upload-tips">支持icon格式</div>
</a-form-item> </j-form-item>
</a-col> </j-col>
</a-row> </j-row>
</a-col> </j-col>
<a-col :span="14"> <j-col :span="14">
<a-form-item label="登录背景图"> <j-form-item label="登录背景图">
<div class="upload-image-warp-back"> <div class="upload-image-warp-back">
<div class="upload-image-border-back"> <div class="upload-image-border-back">
<a-upload <a-upload
name="file" name="file"
:action="action" :action="action"
:headers="headers" :headers="headers"
:beforeUpload="uploader.beforeBackUpload" :beforeUpload="
uploader.beforeBackUpload
"
:showUploadList="false" :showUploadList="false"
@change="uploader.changeBackUpload" @change="uploader.changeBackUpload"
:accept="uploader.imageTypes.toString()" :accept="uploader.imageTypes.toString()"
@ -227,9 +232,7 @@
v-if="form.backLoading" v-if="form.backLoading"
class="loading-back" class="loading-back"
> >
<LoadingOutlined <AIcon type="LoadingOutlined" />
style="font-size: 28px"
/>
</div> </div>
<div <div
class="upload-image" class="upload-image"
@ -248,8 +251,8 @@
</div> </div>
<div v-else> <div v-else>
<div> <div>
<PlusOutlined <AIcon
style="font-size: 28px" type="PlusOutlined"
/> />
</div> </div>
</div> </div>
@ -261,12 +264,12 @@
支持4M以内的图片:支持jpgpng 支持4M以内的图片:支持jpgpng
</div> </div>
<div class="upload-tips">建议尺寸1400x1080</div> <div class="upload-tips">建议尺寸1400x1080</div>
</a-form-item> </j-form-item>
</a-col> </j-col>
</a-row> </j-row>
</a-form> </j-form>
<a-button <j-button
type="primary" type="primary"
@click="form.clickSave" @click="form.clickSave"
:disabled=" :disabled="
@ -275,14 +278,14 @@
form.iconLoading || form.iconLoading ||
form.backLoading form.backLoading
" "
>保存</a-button
> >
</a-card> 保存
</j-button>
</div>
</page-container> </page-container>
</template> </template>
<script setup lang="ts" name="Basis"> <script setup lang="ts" name="Basis">
import { PlusOutlined, LoadingOutlined } from '@ant-design/icons-vue';
import { formType, uploaderType } from './index'; import { formType, uploaderType } from './index';
import { getImage } from '@/utils/comm.ts'; import { getImage } from '@/utils/comm.ts';
import { message } from 'ant-design-vue'; import { message } from 'ant-design-vue';
@ -403,8 +406,6 @@ const form = reactive<formType>({
} else { } else {
message.warning('暂无权限,请联系管理员'); message.warning('暂无权限,请联系管理员');
} }
}, },
}); });
const { formValue, rulesFrom } = toRefs(form); const { formValue, rulesFrom } = toRefs(form);
@ -502,6 +503,8 @@ form.getDetails();
<style lang="less" scoped> <style lang="less" scoped>
.basis-container { .basis-container {
padding: 24px;
background-color: #fff;
.img-style { .img-style {
width: 16px; width: 16px;
height: 16px; height: 16px;
@ -625,5 +628,9 @@ form.getDetails();
font-size: 14px; font-size: 14px;
line-height: 1.5715; line-height: 1.5715;
} }
.anticon {
font-size: 28px;
}
} }
</style> </style>