|
@@ -1,138 +1,138 @@
|
|
|
<template>
|
|
|
- <div class="system-parameter-container layout-padding">
|
|
|
- <div class="layout-padding-auto layout-padding-view pd100">
|
|
|
- <el-divider content-position="center"><h4 class="table-title">系统参数设置</h4></el-divider>
|
|
|
- <el-form :model="state.ruleForm" label-width="200px" ref="ruleFormRef" v-loading="state.loading" class="form">
|
|
|
- <el-row :gutter="35">
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-for="items in state.data" :key="items.id">
|
|
|
- <!-- <el-divider content-position="left">{{ items.groupName }}</el-divider> -->
|
|
|
- <div v-for="item in items.systemSettings" :key="item.id">
|
|
|
- <el-form-item :label="item.settingName">
|
|
|
- <!-- 单选框 -->
|
|
|
- <template v-if="item.valueType === 0">
|
|
|
- <el-radio-group v-model="item.settingValue" class="ml-4" @change="changeVal($event, item.id)">
|
|
|
- <el-radio :label="item1.value" v-for="item1 in item.presetValue" :key="item1.value">{{ item1.key }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </template>
|
|
|
- <!-- 多选框 -->
|
|
|
- <template v-else-if="item.valueType === 1">
|
|
|
- <el-checkbox-group v-model="item.settingValue" @change="changeVal($event, item.id)">
|
|
|
- <el-checkbox v-for="item1 in item.presetValue" :key="item1.value" :label="item1.value">{{ item1.key }}</el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
- </template>
|
|
|
- <!-- 文本 -->
|
|
|
- <template v-else-if="item.valueType === 2">
|
|
|
- <el-input
|
|
|
- v-model="item.settingValue"
|
|
|
- :placeholder="'请输入' + item.settingName"
|
|
|
- class="max-width"
|
|
|
- @input="changeVal($event, item.id)"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <!-- 数字 -->
|
|
|
- <template v-else-if="item.valueType === 3">
|
|
|
- <el-input-number v-model="item.settingValue" :placeholder="'请输入' + item.settingName" @input="changeVal($event, item.id)" />
|
|
|
- </template>
|
|
|
- <!-- 下拉框 -->
|
|
|
- <template v-else-if="item.valueType === 4">
|
|
|
- <el-select v-model="item.settingValue" :placeholder="'请选择' + item.settingName" @change="changeVal($event, item.id)">
|
|
|
- <el-option v-for="item1 in item.presetValue" :key="item1.value" :label="item1.key" :value="item1.value" />
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- <!-- 开关 -->
|
|
|
- <template v-else-if="item.valueType === 5">
|
|
|
- <el-switch v-model="item.settingValue" @change="changeVal($event, item.id)" />
|
|
|
- </template>
|
|
|
- <!-- 时间 -->
|
|
|
- <template v-else-if="item.valueType === 6">
|
|
|
- <el-time-select
|
|
|
- v-model="item.settingValue"
|
|
|
- start="00:00"
|
|
|
- step="00:30"
|
|
|
- end="23:30"
|
|
|
- :placeholder="'请选择' + item.settingName"
|
|
|
- @change="changeVal($event, item.id)"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <!-- 日期 -->
|
|
|
- <template v-else-if="item.valueType === 7">
|
|
|
- <el-date-picker
|
|
|
- v-model="item.settingValue"
|
|
|
- value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
- type="date"
|
|
|
- :placeholder="'请选择' + item.settingName"
|
|
|
- @change="changeVal($event, item.id)"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <!-- 日期区间 -->
|
|
|
- <template v-else-if="item.valueType === 8">
|
|
|
- <div>
|
|
|
- <el-date-picker
|
|
|
- v-model="item.settingValue"
|
|
|
- value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
- type="daterange"
|
|
|
- :placeholder="'请选择' + item.settingName"
|
|
|
- @change="changeVal($event, item.id)"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <!-- 时间区间 -->
|
|
|
- <template v-else-if="item.valueType === 9">
|
|
|
- <el-time-select
|
|
|
- v-model="item.settingValue[0]"
|
|
|
- :max-time="item.settingValue[1]"
|
|
|
- placeholder="开始时间"
|
|
|
- start="00:00"
|
|
|
- step="00:30"
|
|
|
- end="23:30"
|
|
|
- @change="changeVal($event, item.id, 'startTime')"
|
|
|
- />
|
|
|
- <el-time-select
|
|
|
- v-model="item.settingValue[1]"
|
|
|
- :min-time="item.settingValue[0]"
|
|
|
- placeholder="结束时间"
|
|
|
- start="00:00"
|
|
|
- step="00:30"
|
|
|
- end="23:30"
|
|
|
- @change="changeVal($event, item.id, 'endTime')"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <!-- 单个图片上传 -->
|
|
|
- <template v-else-if="item.valueType === 10">
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- accept=".jpg, .jpeg, .png, .gif, .bmp, .JPG, .JPEG, .PBG, .GIF, .BMP"
|
|
|
- action=""
|
|
|
- :show-file-list="false"
|
|
|
- :on-success="handleAvatarSuccess"
|
|
|
- :http-request="(file) => uploadImg(file, item.id)"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- >
|
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
- <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="32px" />
|
|
|
- </el-upload>
|
|
|
- </template>
|
|
|
- <!-- 多个图片上传 -->
|
|
|
- <template v-else-if="item.valueType === 11">
|
|
|
- <el-upload
|
|
|
- v-model:file-list="fileList"
|
|
|
- accept=".jpg, .jpeg, .png, .gif, .bmp, .JPG, .JPEG, .PBG, .GIF, .BMP"
|
|
|
- action=""
|
|
|
- list-type="picture-card"
|
|
|
- ref="uploadListRef"
|
|
|
- :autoUpload="false"
|
|
|
- :on-change="(file) => uploadImgList(file, fileList, item.id)"
|
|
|
- >
|
|
|
- <SvgIcon name="ele-Plus" size="32px" />
|
|
|
- <template #file="file">
|
|
|
- <div style="text-align: center" class="w100 h100">
|
|
|
- <div class="images w100 h100" v-viewer>
|
|
|
- <img class="w100 h100" :src="file.file.url" alt=""/>
|
|
|
- </div>
|
|
|
- <span class="el-upload-list__item-actions">
|
|
|
+ <div class="system-parameter-container layout-pd">
|
|
|
+ <el-card shadow="never">
|
|
|
+ <el-divider content-position="center"><h4 class="table-title">系统参数设置</h4></el-divider>
|
|
|
+ <el-form :model="state.ruleForm" label-width="200px" ref="ruleFormRef" v-loading="state.loading">
|
|
|
+ <el-row :gutter="35">
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-for="items in state.data" :key="items.id">
|
|
|
+ <!-- <el-divider content-position="left">{{ items.groupName }}</el-divider> -->
|
|
|
+ <div v-for="item in items.systemSettings" :key="item.id">
|
|
|
+ <el-form-item :label="item.settingName">
|
|
|
+ <!-- 单选框 -->
|
|
|
+ <template v-if="item.valueType === 0">
|
|
|
+ <el-radio-group v-model="item.settingValue" class="ml-4" @change="changeVal($event, item.id)">
|
|
|
+ <el-radio :label="item1.value" v-for="item1 in item.presetValue" :key="item1.value">{{ item1.key }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </template>
|
|
|
+ <!-- 多选框 -->
|
|
|
+ <template v-else-if="item.valueType === 1">
|
|
|
+ <el-checkbox-group v-model="item.settingValue" @change="changeVal($event, item.id)">
|
|
|
+ <el-checkbox v-for="item1 in item.presetValue" :key="item1.value" :label="item1.value">{{ item1.key }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </template>
|
|
|
+ <!-- 文本 -->
|
|
|
+ <template v-else-if="item.valueType === 2">
|
|
|
+ <el-input
|
|
|
+ v-model="item.settingValue"
|
|
|
+ :placeholder="'请输入' + item.settingName"
|
|
|
+ class="max-width"
|
|
|
+ @input="changeVal($event, item.id)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <!-- 数字 -->
|
|
|
+ <template v-else-if="item.valueType === 3">
|
|
|
+ <el-input-number v-model="item.settingValue" :placeholder="'请输入' + item.settingName" @input="changeVal($event, item.id)" />
|
|
|
+ </template>
|
|
|
+ <!-- 下拉框 -->
|
|
|
+ <template v-else-if="item.valueType === 4">
|
|
|
+ <el-select v-model="item.settingValue" :placeholder="'请选择' + item.settingName" @change="changeVal($event, item.id)">
|
|
|
+ <el-option v-for="item1 in item.presetValue" :key="item1.value" :label="item1.key" :value="item1.value" />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ <!-- 开关 -->
|
|
|
+ <template v-else-if="item.valueType === 5">
|
|
|
+ <el-switch v-model="item.settingValue" @change="changeVal($event, item.id)" />
|
|
|
+ </template>
|
|
|
+ <!-- 时间 -->
|
|
|
+ <template v-else-if="item.valueType === 6">
|
|
|
+ <el-time-select
|
|
|
+ v-model="item.settingValue"
|
|
|
+ start="00:00"
|
|
|
+ step="00:30"
|
|
|
+ end="23:30"
|
|
|
+ :placeholder="'请选择' + item.settingName"
|
|
|
+ @change="changeVal($event, item.id)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <!-- 日期 -->
|
|
|
+ <template v-else-if="item.valueType === 7">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="item.settingValue"
|
|
|
+ value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
+ type="date"
|
|
|
+ :placeholder="'请选择' + item.settingName"
|
|
|
+ @change="changeVal($event, item.id)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <!-- 日期区间 -->
|
|
|
+ <template v-else-if="item.valueType === 8">
|
|
|
+ <div>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="item.settingValue"
|
|
|
+ value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
+ type="daterange"
|
|
|
+ :placeholder="'请选择' + item.settingName"
|
|
|
+ @change="changeVal($event, item.id)"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- 时间区间 -->
|
|
|
+ <template v-else-if="item.valueType === 9">
|
|
|
+ <el-time-select
|
|
|
+ v-model="item.settingValue[0]"
|
|
|
+ :max-time="item.settingValue[1]"
|
|
|
+ placeholder="开始时间"
|
|
|
+ start="00:00"
|
|
|
+ step="00:30"
|
|
|
+ end="23:30"
|
|
|
+ @change="changeVal($event, item.id, 'startTime')"
|
|
|
+ />
|
|
|
+ <el-time-select
|
|
|
+ v-model="item.settingValue[1]"
|
|
|
+ :min-time="item.settingValue[0]"
|
|
|
+ placeholder="结束时间"
|
|
|
+ start="00:00"
|
|
|
+ step="00:30"
|
|
|
+ end="23:30"
|
|
|
+ @change="changeVal($event, item.id, 'endTime')"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <!-- 单个图片上传 -->
|
|
|
+ <template v-else-if="item.valueType === 10">
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ accept=".jpg, .jpeg, .png, .gif, .bmp, .JPG, .JPEG, .PBG, .GIF, .BMP"
|
|
|
+ action=""
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
+ :http-request="(file) => uploadImg(file, item.id)"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ >
|
|
|
+ <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
+ <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="32px" />
|
|
|
+ </el-upload>
|
|
|
+ </template>
|
|
|
+ <!-- 多个图片上传 -->
|
|
|
+ <template v-else-if="item.valueType === 11">
|
|
|
+ <el-upload
|
|
|
+ v-model:file-list="fileList"
|
|
|
+ accept=".jpg, .jpeg, .png, .gif, .bmp, .JPG, .JPEG, .PBG, .GIF, .BMP"
|
|
|
+ action=""
|
|
|
+ list-type="picture-card"
|
|
|
+ ref="uploadListRef"
|
|
|
+ :autoUpload="false"
|
|
|
+ :on-change="(file) => uploadImgList(file, fileList, item.id)"
|
|
|
+ >
|
|
|
+ <SvgIcon name="ele-Plus" size="32px" />
|
|
|
+ <template #file="file">
|
|
|
+ <div style="text-align: center" class="w100 h100">
|
|
|
+ <div class="images w100 h100" v-viewer>
|
|
|
+ <img class="w100 h100" :src="file.file.url" alt=""/>
|
|
|
+ </div>
|
|
|
+ <span class="el-upload-list__item-actions">
|
|
|
<span title="预览图片" class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
|
|
|
<SvgIcon name="ele-ZoomIn" size="18px" />
|
|
|
</span>
|
|
@@ -140,20 +140,20 @@
|
|
|
<SvgIcon name="ele-Delete" size="18px" />
|
|
|
</span>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-upload>
|
|
|
- </template>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" @click="submitForm" :loading="state.loading" v-auth="'system:parameter:edit'">保 存 </el-button>
|
|
|
- <el-button @click="resetForm" :loading="state.loading" v-auth="'system:parameter:edit'">重 置</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-upload>
|
|
|
+ </template>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="submitForm" :loading="state.loading" v-auth="'system:parameter:edit'">保 存 </el-button>
|
|
|
+ <el-button @click="resetForm" :loading="state.loading" v-auth="'system:parameter:edit'">重 置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -332,17 +332,9 @@ onMounted(() => {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.system-parameter-container {
|
|
|
- .pd100 {
|
|
|
- padding: 0 10vw;
|
|
|
- }
|
|
|
.max-width {
|
|
|
max-width: 214px;
|
|
|
}
|
|
|
- .form {
|
|
|
- flex: 1;
|
|
|
- overflow-y: auto;
|
|
|
- overflow-x: hidden;
|
|
|
- }
|
|
|
.avatar-uploader .avatar {
|
|
|
width: 178px;
|
|
|
height: 178px;
|