|
@@ -5,178 +5,228 @@
|
|
|
活动发布
|
|
活动发布
|
|
|
</div>
|
|
</div>
|
|
|
<div class="main">
|
|
<div class="main">
|
|
|
- <div class="mainTit1">活动信息</div>
|
|
|
|
|
- <div class="mainBox">
|
|
|
|
|
- <el-form
|
|
|
|
|
- :model="ruleForm"
|
|
|
|
|
- :rules="rules"
|
|
|
|
|
- ref="ruleForm"
|
|
|
|
|
- label-width="140px"
|
|
|
|
|
- class="demo-ruleForm"
|
|
|
|
|
- >
|
|
|
|
|
- <el-form-item label="活动名称:" prop="name">
|
|
|
|
|
- <el-input
|
|
|
|
|
- placeholder="请输入"
|
|
|
|
|
- v-model="ruleForm.name"
|
|
|
|
|
- maxlength="30"
|
|
|
|
|
- show-word-limit
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="活动地点:" prop="name2">
|
|
|
|
|
- <el-input
|
|
|
|
|
- placeholder="请输入"
|
|
|
|
|
- v-model="ruleForm.name2"
|
|
|
|
|
- maxlength="50"
|
|
|
|
|
- show-word-limit
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="活动主持人:" prop="name2">
|
|
|
|
|
- <el-input
|
|
|
|
|
- placeholder="请输入"
|
|
|
|
|
- v-model="ruleForm.name2"
|
|
|
|
|
- maxlength="10"
|
|
|
|
|
- show-word-limit
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <div class="row">
|
|
|
|
|
- <el-form-item label="参与活动年龄段:" prop="name2">
|
|
|
|
|
- <el-select
|
|
|
|
|
- v-model="ruleForm.name2"
|
|
|
|
|
- placeholder="请选择"
|
|
|
|
|
- style="width: 170px"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in 99"
|
|
|
|
|
- :key="i"
|
|
|
|
|
- :label="`${i}岁`"
|
|
|
|
|
- :value="i"
|
|
|
|
|
|
|
+ <div class="mainTemp">
|
|
|
|
|
+ <div class="mainTit1">活动信息</div>
|
|
|
|
|
+ <div class="mainBox">
|
|
|
|
|
+ <el-form
|
|
|
|
|
+ :model="ruleForm"
|
|
|
|
|
+ :rules="rules"
|
|
|
|
|
+ ref="ruleForm"
|
|
|
|
|
+ label-width="140px"
|
|
|
|
|
+ class="demo-ruleForm"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-form-item label="活动名称:" prop="name">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ placeholder="请输入"
|
|
|
|
|
+ v-model="ruleForm.name"
|
|
|
|
|
+ maxlength="30"
|
|
|
|
|
+ show-word-limit
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="活动地点:" prop="address">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ placeholder="请输入"
|
|
|
|
|
+ v-model="ruleForm.address"
|
|
|
|
|
+ maxlength="50"
|
|
|
|
|
+ show-word-limit
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="活动主持人:" prop="emcee">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ placeholder="请输入"
|
|
|
|
|
+ v-model="ruleForm.emcee"
|
|
|
|
|
+ maxlength="10"
|
|
|
|
|
+ show-word-limit
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <div class="row">
|
|
|
|
|
+ <el-form-item label="参与活动年龄段:">
|
|
|
|
|
+ <span class="biaoshi biaoshi3">*</span>
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="age1"
|
|
|
|
|
+ placeholder="请选择"
|
|
|
|
|
+ style="width: 170px"
|
|
|
>
|
|
>
|
|
|
- </el-option>
|
|
|
|
|
- </el-select>
|
|
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="i in 99"
|
|
|
|
|
+ :key="i"
|
|
|
|
|
+ :label="`${i}岁`"
|
|
|
|
|
+ :value="i"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <span class="fenge">-</span>
|
|
|
|
|
+ <el-form-item class="mySelect">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="age2"
|
|
|
|
|
+ placeholder="请选择"
|
|
|
|
|
+ style="width: 170px"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="i in 99"
|
|
|
|
|
+ :key="i"
|
|
|
|
|
+ :label="`${i}岁`"
|
|
|
|
|
+ :value="i"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 照片墙1 -->
|
|
|
|
|
+ <el-form-item label="图文封面:">
|
|
|
|
|
+ <span class="biaoshi">*</span>
|
|
|
|
|
+ <el-upload
|
|
|
|
|
+ :class="{ opcNone: ruleForm.thumb }"
|
|
|
|
|
+ accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
|
+ :action="baseURL + '/cms/activity/upload'"
|
|
|
|
|
+ :data="{ type: 'img' }"
|
|
|
|
|
+ :file-list="imgUpList1"
|
|
|
|
|
+ :headers="{ token }"
|
|
|
|
|
+ :limit="1"
|
|
|
|
|
+ :on-exceed="handleExceed"
|
|
|
|
|
+ list-type="picture-card"
|
|
|
|
|
+ :on-preview="handlePictureCardPreview"
|
|
|
|
|
+ :on-remove="handleRemove1"
|
|
|
|
|
+ :before-remove="beforeRemove"
|
|
|
|
|
+ :before-upload="beforethumbUploadImg"
|
|
|
|
|
+ :on-success="upload_thumb_successImg1"
|
|
|
|
|
+ >
|
|
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
|
|
+ <div slot="tip" class="el-upload__tip">
|
|
|
|
|
+ 格式要求:支持png、jpg、gif和jpeg的图片格式;最大支持20M
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-upload>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <span class="fenge">-</span>
|
|
|
|
|
- <el-form-item prop="name3" class="mySelect">
|
|
|
|
|
- <el-select
|
|
|
|
|
- v-model="ruleForm.name3"
|
|
|
|
|
- placeholder="请选择"
|
|
|
|
|
- style="width: 170px"
|
|
|
|
|
|
|
+ <!-- 照片墙2 -->
|
|
|
|
|
+ <el-form-item label="活动顶部配图:">
|
|
|
|
|
+ <span class="biaoshi biaoshi2">*</span>
|
|
|
|
|
+ <el-upload
|
|
|
|
|
+ :class="{ opcNone: ruleForm.filePath }"
|
|
|
|
|
+ accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
|
+ :action="baseURL + '/cms/activity/upload'"
|
|
|
|
|
+ :data="{ type: 'img' }"
|
|
|
|
|
+ :file-list="imgUpList2"
|
|
|
|
|
+ :headers="{ token }"
|
|
|
|
|
+ :limit="1"
|
|
|
|
|
+ :on-exceed="handleExceed"
|
|
|
|
|
+ list-type="picture-card"
|
|
|
|
|
+ :on-preview="handlePictureCardPreview"
|
|
|
|
|
+ :on-remove="handleRemove2"
|
|
|
|
|
+ :before-remove="beforeRemove"
|
|
|
|
|
+ :before-upload="beforethumbUploadImg"
|
|
|
|
|
+ :on-success="upload_thumb_successImg2"
|
|
|
>
|
|
>
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in 99"
|
|
|
|
|
- :key="i"
|
|
|
|
|
- :label="`${i}岁`"
|
|
|
|
|
- :value="i"
|
|
|
|
|
- >
|
|
|
|
|
- </el-option>
|
|
|
|
|
- </el-select>
|
|
|
|
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
|
|
+ <div slot="tip" class="el-upload__tip">
|
|
|
|
|
+ 格式要求:支持png、jpg、gif和jpeg的图片格式;最大支持20M
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-upload>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="mainTit1 mainTit2">活动时间</div>
|
|
|
|
|
+ <div class="mainBox">
|
|
|
|
|
+ <div class="row2">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span>活动时间:</span>
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
|
+ v-model="time1"
|
|
|
|
|
+ type="daterange"
|
|
|
|
|
+ range-separator="-"
|
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-date-picker>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- 照片墙1 -->
|
|
|
|
|
- <el-form-item label="图文封面:">
|
|
|
|
|
- <span class="biaoshi">*</span>
|
|
|
|
|
- <el-upload
|
|
|
|
|
- accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
|
- :action="baseURL + '/cms/content/upload'"
|
|
|
|
|
- :data="{}"
|
|
|
|
|
- :file-list="imgUpList1"
|
|
|
|
|
- :headers="{ token }"
|
|
|
|
|
- :limit="1"
|
|
|
|
|
- :on-exceed="handleExceed"
|
|
|
|
|
- list-type="picture-card"
|
|
|
|
|
- :on-preview="handlePictureCardPreview"
|
|
|
|
|
- :on-remove="handleRemove1"
|
|
|
|
|
- :before-remove="beforeRemove"
|
|
|
|
|
- :before-upload="beforethumbUploadImg"
|
|
|
|
|
- :on-success="upload_thumb_successImg1"
|
|
|
|
|
- >
|
|
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
|
|
- <div slot="tip" class="el-upload__tip">
|
|
|
|
|
- 格式要求:支持png、jpg、gif和jpeg的图片格式;最大支持20M
|
|
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="row2 row3"
|
|
|
|
|
+ v-for="(item, index) in timeArr"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span>活动时段{{ index + 1 }}:</span>
|
|
|
|
|
+ <el-time-picker
|
|
|
|
|
+ is-range
|
|
|
|
|
+ v-model="timeArr[index].time"
|
|
|
|
|
+ format="HH:mm"
|
|
|
|
|
+ value-format="HH:mm"
|
|
|
|
|
+ range-separator="-"
|
|
|
|
|
+ start-placeholder="开始时间"
|
|
|
|
|
+ end-placeholder="结束时间"
|
|
|
|
|
+ placeholder="选择时间范围"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-time-picker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span>预设名额{{ index + 1 }}:</span>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ style="width: 300px"
|
|
|
|
|
+ onkeyup="value=value.replace(/[^\d]/g,'')"
|
|
|
|
|
+ onblur="value=value.replace(/[^\d]/g,'')"
|
|
|
|
|
+ placeholder="请输入数字"
|
|
|
|
|
+ v-model="timeArr[index].num"
|
|
|
|
|
+ maxlength="3"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="addTime"
|
|
|
|
|
+ v-if="index === 0"
|
|
|
|
|
+ @click="addTime(item.time, item.num)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 增加时间段+
|
|
|
</div>
|
|
</div>
|
|
|
- </el-upload>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <!-- 照片墙2 -->
|
|
|
|
|
- <el-form-item label="活动顶部配图:">
|
|
|
|
|
- <span class="biaoshi biaoshi2">*</span>
|
|
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="addTime el-icon-close"
|
|
|
|
|
+ v-else
|
|
|
|
|
+ @click="delTime(item.id)"
|
|
|
|
|
+ ></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="mainTit1">活动详情</div>
|
|
|
|
|
+ <!-- 富文本 -->
|
|
|
|
|
+ <div class="con_topBox">
|
|
|
|
|
+ <div class="con_top">
|
|
|
|
|
+ <div class="tttit">活动正文:</div>
|
|
|
|
|
+ <!-- 富文本上传图片 -->
|
|
|
<el-upload
|
|
<el-upload
|
|
|
- accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
|
- :action="baseURL + '/cms/content/upload'"
|
|
|
|
|
- :data="{}"
|
|
|
|
|
- :file-list="imgUpList2"
|
|
|
|
|
:headers="{ token }"
|
|
:headers="{ token }"
|
|
|
- :limit="1"
|
|
|
|
|
- :on-exceed="handleExceed"
|
|
|
|
|
- list-type="picture-card"
|
|
|
|
|
- :on-preview="handlePictureCardPreview"
|
|
|
|
|
- :on-remove="handleRemove2"
|
|
|
|
|
- :before-remove="beforeRemove"
|
|
|
|
|
- :before-upload="beforethumbUploadImg"
|
|
|
|
|
- :on-success="upload_thumb_successImg2"
|
|
|
|
|
|
|
+ :action="baseURL + '/cms/activity/upload'"
|
|
|
|
|
+ :data="{ type: 'img' }"
|
|
|
|
|
+ accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
|
+ title="上传图片"
|
|
|
|
|
+ class="upload-demo imgUplod"
|
|
|
|
|
+ multiple
|
|
|
|
|
+ :before-upload="beforethumbUploadImgFWB"
|
|
|
|
|
+ :on-success="upload_thumb_successImg"
|
|
|
>
|
|
>
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
|
|
- <div slot="tip" class="el-upload__tip">
|
|
|
|
|
- 格式要求:支持png、jpg、gif和jpeg的图片格式;最大支持20M
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <i class="w-e-icon-image"></i>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mainTit1 mainTit2">活动时间</div>
|
|
|
|
|
- <div class="mainBox">
|
|
|
|
|
- <div class="row2">
|
|
|
|
|
- <div>
|
|
|
|
|
- <span>活动时间:</span>
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- v-model="time1"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- range-separator="-"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- >
|
|
|
|
|
- </el-date-picker>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="row2 row3" v-for="(item, index) in timeArr" :key="item.id">
|
|
|
|
|
- <div>
|
|
|
|
|
- <span>活动时段{{ index + 1 }}:</span>
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- v-model="timeArr[index].time"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- range-separator="-"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- >
|
|
|
|
|
- </el-date-picker>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- <span>预设名额{{ index + 1 }}:</span>
|
|
|
|
|
- <el-input
|
|
|
|
|
- style="width: 300px"
|
|
|
|
|
- onkeyup="value=value.replace(/[^\d]/g,'')"
|
|
|
|
|
- onblur="value=value.replace(/[^\d]/g,'')"
|
|
|
|
|
- placeholder="请输入数字"
|
|
|
|
|
- v-model="timeArr[index].num"
|
|
|
|
|
- maxlength="3"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- <div class="addTime" v-if="index === 0" @click="addTime">
|
|
|
|
|
- 增加时间段+
|
|
|
|
|
- </div>
|
|
|
|
|
- <div
|
|
|
|
|
- class="addTime el-icon-close"
|
|
|
|
|
- v-else
|
|
|
|
|
- @click="delTime(item.id)"
|
|
|
|
|
- ></div>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div id="div1" style="z-index: 1"></div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="mainTit1">活动详情</div>
|
|
|
|
|
|
|
+ <!-- 底部按钮 -->
|
|
|
|
|
+ <div class="bottomBtn">
|
|
|
|
|
+ <el-button @click="back">返 回</el-button>  
|
|
|
|
|
+ <el-button type="primary" @click="save">{{
|
|
|
|
|
+ ruleForm.id ? "编 辑" : "新 增"
|
|
|
|
|
+ }}</el-button>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <!-- 照片墙的查看照片 -->
|
|
|
|
|
+ <el-dialog :visible.sync="dialogVisible">
|
|
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="" />
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+import { activitySave, activityDetail } from "../../utils/api";
|
|
|
|
|
+import E from "wangeditor";
|
|
|
|
|
+import axios from "@/utils/request";
|
|
|
export default {
|
|
export default {
|
|
|
name: "tab1Add",
|
|
name: "tab1Add",
|
|
|
components: {},
|
|
components: {},
|
|
@@ -193,15 +243,30 @@ export default {
|
|
|
time1: "",
|
|
time1: "",
|
|
|
timeArr: [{ id: Date.now(), time: "", num: "" }],
|
|
timeArr: [{ id: Date.now(), time: "", num: "" }],
|
|
|
//关于活动时间 👆
|
|
//关于活动时间 👆
|
|
|
|
|
+ age1: 18,
|
|
|
|
|
+ age2: 60,
|
|
|
ruleForm: {
|
|
ruleForm: {
|
|
|
- name: "",
|
|
|
|
|
- name2: 18,
|
|
|
|
|
- name3: 40,
|
|
|
|
|
|
|
+ name: "", //活动名称
|
|
|
|
|
+ address: "", //活动地点
|
|
|
|
|
+ emcee: "", //活动主持人
|
|
|
|
|
+ age: "", //年龄段
|
|
|
|
|
+ thumb: "", //封面图
|
|
|
|
|
+ filePath: "", //活动顶部配图
|
|
|
|
|
+ startDay: "", //活动时间范围
|
|
|
|
|
+ timeBuckets: [
|
|
|
|
|
+ //活动时间段
|
|
|
|
|
+ // {
|
|
|
|
|
+ // endTime:'结束时间' ,
|
|
|
|
|
+ // quota:'名额' ,
|
|
|
|
|
+ // startTime:'开始时间'
|
|
|
|
|
+ // }
|
|
|
|
|
+ ],
|
|
|
|
|
+ content: "", //富文本简介
|
|
|
},
|
|
},
|
|
|
rules: {
|
|
rules: {
|
|
|
name: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
name: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
|
- name2: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
|
|
|
- name3: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
|
|
|
|
|
+ address: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
|
|
|
+ emcee: [{ required: true, message: "不能为空", trigger: "blur" }],
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
@@ -219,8 +284,86 @@ export default {
|
|
|
},
|
|
},
|
|
|
//方法集合
|
|
//方法集合
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ // 点击编辑
|
|
|
|
|
+ async save() {
|
|
|
|
|
+ if (this.ruleForm.name.trim() === "")
|
|
|
|
|
+ return this.$message.warning("活动名称不能为空!");
|
|
|
|
|
+ if (this.ruleForm.address.trim() === "")
|
|
|
|
|
+ return this.$message.warning("活动地点不能为空!");
|
|
|
|
|
+ if (this.ruleForm.emcee.trim() === "")
|
|
|
|
|
+ return this.$message.warning("活动主持人不能为空!");
|
|
|
|
|
+ if (Number(this.age2) <= Number(this.age1))
|
|
|
|
|
+ return this.$message.warning("请正确填写年龄段!");
|
|
|
|
|
+ if (this.ruleForm.thumb === "")
|
|
|
|
|
+ return this.$message.warning("图片封面不能为空!");
|
|
|
|
|
+ if (this.ruleForm.filePath === "")
|
|
|
|
|
+ return this.$message.warning("活动顶部配图不能为空!");
|
|
|
|
|
+ if (!this.time1) return this.$message.warning("请选择活动时间!");
|
|
|
|
|
+ let timeFlag = false;
|
|
|
|
|
+ let numFlag = false;
|
|
|
|
|
+ let startTimeArr = [];
|
|
|
|
|
+ let endTimeArr = [];
|
|
|
|
|
+ // ---------处理格式
|
|
|
|
|
+ let timeBuckets = [];
|
|
|
|
|
+
|
|
|
|
|
+ this.timeArr.forEach((v) => {
|
|
|
|
|
+ if (!v.time) timeFlag = true;
|
|
|
|
|
+ else if (v.num === "") numFlag = true;
|
|
|
|
|
+ else {
|
|
|
|
|
+ startTimeArr.push(Number(v.time[0].replace(":", "")));
|
|
|
|
|
+ endTimeArr.push(Number(v.time[1].replace(":", "")));
|
|
|
|
|
+ timeBuckets.push({
|
|
|
|
|
+ startTime: v.time[0],
|
|
|
|
|
+ endTime: v.time[1],
|
|
|
|
|
+ quota: Number(v.num),
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ let allStartTime = startTimeArr.sort((a, b) => a - b);
|
|
|
|
|
+ let allEndTime = endTimeArr.sort((a, b) => a - b);
|
|
|
|
|
+ let result = 0; // 判断时间是否有重复区间
|
|
|
|
|
+ for (let k = 0; k < allStartTime.length; k++) {
|
|
|
|
|
+ if (k > 0) {
|
|
|
|
|
+ if (allStartTime[k] < allEndTime[k - 1]) {
|
|
|
|
|
+ result += 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (timeFlag) return this.$message.warning("请选择活动时段!");
|
|
|
|
|
+ if (numFlag) return this.$message.warning("预设名额不能为空!");
|
|
|
|
|
+ if (result > 0) return this.$message.warning("活动时段重合!");
|
|
|
|
|
+ if (this.editor.txt.html() === "")
|
|
|
|
|
+ return this.$message.warning("活动正文不能为空!");
|
|
|
|
|
+ let obj = {
|
|
|
|
|
+ address: this.ruleForm.address,
|
|
|
|
|
+ age: `${this.age1},${this.age2}`,
|
|
|
|
|
+ content: this.editor.txt.html(),
|
|
|
|
|
+ emcee: this.ruleForm.emcee,
|
|
|
|
|
+ startDay: this.time1[0],
|
|
|
|
|
+ endDay: this.time1[1],
|
|
|
|
|
+ filePath: this.ruleForm.filePath,
|
|
|
|
|
+ name: this.ruleForm.name,
|
|
|
|
|
+ thumb: this.ruleForm.thumb,
|
|
|
|
|
+ timeBuckets,
|
|
|
|
|
+ };
|
|
|
|
|
+ if (this.ruleForm.id) obj.id = this.ruleForm.id;
|
|
|
|
|
+ let res = await activitySave(obj);
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ this.$message.success("操作成功!");
|
|
|
|
|
+ this.back();
|
|
|
|
|
+ } else this.$message.warning(res.msg);
|
|
|
|
|
+ },
|
|
|
|
|
+ // 点击返回
|
|
|
|
|
+ back() {
|
|
|
|
|
+ let k = this.$route.query.k;
|
|
|
|
|
+ if (!k) k = "1";
|
|
|
|
|
+ this.$router.push({
|
|
|
|
|
+ path: "/layout/tab1",
|
|
|
|
|
+ query: { k },
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
// 关于活动时间
|
|
// 关于活动时间
|
|
|
- addTime() {
|
|
|
|
|
|
|
+ addTime(time, num) {
|
|
|
this.timeArr.push({ id: Date.now(), time: "", num: "" });
|
|
this.timeArr.push({ id: Date.now(), time: "", num: "" });
|
|
|
},
|
|
},
|
|
|
delTime(id) {
|
|
delTime(id) {
|
|
@@ -231,26 +374,50 @@ export default {
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
this.timeArr = this.timeArr.filter((v) => v.id !== id);
|
|
this.timeArr = this.timeArr.filter((v) => v.id !== id);
|
|
|
-
|
|
|
|
|
this.$message.success("删除成功!");
|
|
this.$message.success("删除成功!");
|
|
|
})
|
|
})
|
|
|
.catch(() => {
|
|
.catch(() => {
|
|
|
this.$message.info("已取消");
|
|
this.$message.info("已取消");
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ // 富文本上传图片
|
|
|
|
|
+ beforethumbUploadImgFWB(file) {
|
|
|
|
|
+ // console.log(998, file)
|
|
|
|
|
+ // 限制图片大小和格式
|
|
|
|
|
+ const sizeOk = file.size / 1024 / 1024 < 5;
|
|
|
|
|
+ const typeOk =
|
|
|
|
|
+ file.type === "image/png" ||
|
|
|
|
|
+ (file.type === "image/jpeg" && !file.name.includes(".jfif")) ||
|
|
|
|
|
+ file.type === "image/gif";
|
|
|
|
|
+
|
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
|
+ if (!typeOk) {
|
|
|
|
|
+ this.$message.error("图片格式有误!");
|
|
|
|
|
+ reject(file);
|
|
|
|
|
+ } else if (!sizeOk) {
|
|
|
|
|
+ this.$message.error("图片大小超过5M!");
|
|
|
|
|
+ reject(file);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ resolve(file);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ upload_thumb_successImg(data) {
|
|
|
|
|
+ this.$message.success("上传成功");
|
|
|
|
|
+ // console.log("--------", data);
|
|
|
|
|
+ this.editor.txt.append(
|
|
|
|
|
+ `<img src="${this.baseURL}${data.data.filePath}" style="max-width:100%;display: block;margin: 10px auto;"/><p>  </p>`
|
|
|
|
|
+ );
|
|
|
|
|
+ },
|
|
|
// ---------------照片墙1
|
|
// ---------------照片墙1
|
|
|
beforeRemove(file, fileList) {
|
|
beforeRemove(file, fileList) {
|
|
|
if (file && file.status === "success") {
|
|
if (file && file.status === "success") {
|
|
|
- return this.$confirm(`此操作将永久删除 ${file.name}`);
|
|
|
|
|
|
|
+ return this.$confirm(`确定删除吗?`);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- async handleRemove1(file, fileList) {
|
|
|
|
|
- const id = file.id || file.response.data.id;
|
|
|
|
|
- const res = await delFileApi(id);
|
|
|
|
|
- if (res.code === 0) {
|
|
|
|
|
- this.$message.success("删除成功");
|
|
|
|
|
- this.imgUpList1 = [];
|
|
|
|
|
- } else this.$message.warning(res.msg);
|
|
|
|
|
|
|
+ handleRemove1(file, fileList) {
|
|
|
|
|
+ this.$message.success("删除成功");
|
|
|
|
|
+ this.ruleForm.thumb = "";
|
|
|
},
|
|
},
|
|
|
handlePictureCardPreview(file) {
|
|
handlePictureCardPreview(file) {
|
|
|
this.dialogImageUrl = file.url;
|
|
this.dialogImageUrl = file.url;
|
|
@@ -279,29 +446,73 @@ export default {
|
|
|
},
|
|
},
|
|
|
upload_thumb_successImg1(data) {
|
|
upload_thumb_successImg1(data) {
|
|
|
this.$message.success("上传图片成功");
|
|
this.$message.success("上传图片成功");
|
|
|
- this.imgUpList1 = [data.data.id];
|
|
|
|
|
|
|
+ this.ruleForm.thumb = data.data.filePath;
|
|
|
},
|
|
},
|
|
|
handleExceed(files, fileList) {
|
|
handleExceed(files, fileList) {
|
|
|
this.$message.warning("最多上传1张图片");
|
|
this.$message.warning("最多上传1张图片");
|
|
|
},
|
|
},
|
|
|
// 照片墙2
|
|
// 照片墙2
|
|
|
async handleRemove2(file, fileList) {
|
|
async handleRemove2(file, fileList) {
|
|
|
- const id = file.id || file.response.data.id;
|
|
|
|
|
- const res = await delFileApi(id);
|
|
|
|
|
- if (res.code === 0) {
|
|
|
|
|
- this.$message.success("删除成功");
|
|
|
|
|
- this.imgUpList2 = [];
|
|
|
|
|
- } else this.$message.warning(res.msg);
|
|
|
|
|
|
|
+ this.$message.success("删除成功");
|
|
|
|
|
+ this.ruleForm.filePath = "";
|
|
|
},
|
|
},
|
|
|
upload_thumb_successImg2(data) {
|
|
upload_thumb_successImg2(data) {
|
|
|
this.$message.success("上传图片成功");
|
|
this.$message.success("上传图片成功");
|
|
|
- this.imgUpList2 = [data.data.id];
|
|
|
|
|
|
|
+ this.ruleForm.filePath = data.data.filePath;
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
|
created() {},
|
|
created() {},
|
|
|
//生命周期 - 挂载完成(可以访问DOM元素)
|
|
//生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
- mounted() {},
|
|
|
|
|
|
|
+ async mounted() {
|
|
|
|
|
+ // 初始化富文本
|
|
|
|
|
+ // 富文本
|
|
|
|
|
+ this.editor = new E("#div1");
|
|
|
|
|
+ // 配置字体
|
|
|
|
|
+ this.editor.config.fontNames = [
|
|
|
|
|
+ "黑体",
|
|
|
|
|
+ "仿宋",
|
|
|
|
|
+ "楷体",
|
|
|
|
|
+ "标楷体",
|
|
|
|
|
+ "华文仿宋",
|
|
|
|
|
+ "华文楷体",
|
|
|
|
|
+ "宋体",
|
|
|
|
|
+ "微软雅黑",
|
|
|
|
|
+ "Arial",
|
|
|
|
|
+ "Tahoma",
|
|
|
|
|
+ "Verdana",
|
|
|
|
|
+ "Times New Roman",
|
|
|
|
|
+ ];
|
|
|
|
|
+ this.editor.config.showLinkVideo = false;
|
|
|
|
|
+ this.editor.create();
|
|
|
|
|
+ // 获取服务器前缀地址
|
|
|
|
|
+ this.baseURL = axios.defaults.baseURL;
|
|
|
|
|
+ // 获取用户token
|
|
|
|
|
+ this.token = localStorage.getItem("WLBWG_token");
|
|
|
|
|
+ // 如果是编辑
|
|
|
|
|
+ if (this.$route.query.id) {
|
|
|
|
|
+ const res = await activityDetail(Number(this.$route.query.id));
|
|
|
|
|
+ this.ruleForm = res.data;
|
|
|
|
|
+ // 图片回显
|
|
|
|
|
+ this.imgUpList1 = [{ url: this.baseURL + res.data.thumb }];
|
|
|
|
|
+ this.imgUpList2 = [{ url: this.baseURL + res.data.filePath }];
|
|
|
|
|
+ // 参与活动年龄段回显
|
|
|
|
|
+ this.age1 =Number(res.data.age.split(',')[0])
|
|
|
|
|
+ this.age2 =Number(res.data.age.split(',')[1])
|
|
|
|
|
+ // 活动时间回显
|
|
|
|
|
+ this.time1 = [res.data.startDay, res.data.endDay];
|
|
|
|
|
+ this.timeArr = [];
|
|
|
|
|
+ res.data.timeBuckets.forEach((v) => {
|
|
|
|
|
+ this.timeArr.push({
|
|
|
|
|
+ id: v.id,
|
|
|
|
|
+ time: [v.startTime, v.endTime],
|
|
|
|
|
+ num: v.quota,
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ // 富文本回显
|
|
|
|
|
+ this.editor.txt.html(res.data.content);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
beforeCreate() {}, //生命周期 - 创建之前
|
|
beforeCreate() {}, //生命周期 - 创建之前
|
|
|
beforeMount() {}, //生命周期 - 挂载之前
|
|
beforeMount() {}, //生命周期 - 挂载之前
|
|
|
beforeUpdate() {}, //生命周期 - 更新之前
|
|
beforeUpdate() {}, //生命周期 - 更新之前
|
|
@@ -340,101 +551,173 @@ export default {
|
|
|
box-shadow: 1px 1px 6px 0px;
|
|
box-shadow: 1px 1px 6px 0px;
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: calc(100% - 65px);
|
|
height: calc(100% - 65px);
|
|
|
- overflow-y: auto;
|
|
|
|
|
- .mainTit1 {
|
|
|
|
|
- height: 38px;
|
|
|
|
|
- line-height: 38px;
|
|
|
|
|
- background-color: #d5d8cc;
|
|
|
|
|
- padding-left: 26px;
|
|
|
|
|
- margin-bottom: 20px;
|
|
|
|
|
- }
|
|
|
|
|
- .mainTit2 {
|
|
|
|
|
- background-color: #ece3d4;
|
|
|
|
|
- }
|
|
|
|
|
- .mainBox {
|
|
|
|
|
- width: 1200px;
|
|
|
|
|
- padding-left: 35px;
|
|
|
|
|
- /deep/.el-form {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
|
|
|
+ .mainTemp {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: calc(100% - 55px);
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ .mainTit1 {
|
|
|
|
|
+ height: 38px;
|
|
|
|
|
+ line-height: 38px;
|
|
|
|
|
+ background-color: #d5d8cc;
|
|
|
|
|
+ padding-left: 26px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
}
|
|
}
|
|
|
- /deep/.el-form-item {
|
|
|
|
|
- width: 500px;
|
|
|
|
|
|
|
+ .mainTit2 {
|
|
|
|
|
+ background-color: #ece3d4;
|
|
|
}
|
|
}
|
|
|
- /deep/.el-input__inner {
|
|
|
|
|
- padding-right: 50px;
|
|
|
|
|
- }
|
|
|
|
|
- .row {
|
|
|
|
|
- width: 500px;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- .fenge {
|
|
|
|
|
- border-top: 1px solid #dcdfe6;
|
|
|
|
|
- border-bottom: 1px solid #dcdfe6;
|
|
|
|
|
- display: inline-block;
|
|
|
|
|
- line-height: 36px;
|
|
|
|
|
- padding: 0 7px;
|
|
|
|
|
- height: 40px;
|
|
|
|
|
|
|
+ .mainBox {
|
|
|
|
|
+ width: 1200px;
|
|
|
|
|
+ padding-left: 35px;
|
|
|
|
|
+ /deep/.el-form {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
}
|
|
}
|
|
|
- /deep/input {
|
|
|
|
|
- border-radius: 4px 0 0 4px;
|
|
|
|
|
- border: 1px solid #dcdfe6;
|
|
|
|
|
- border-right: none;
|
|
|
|
|
|
|
+ /deep/.el-form-item {
|
|
|
|
|
+ width: 500px;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- .mySelect {
|
|
|
|
|
- /deep/input {
|
|
|
|
|
- border-radius: 0 4px 4px 0;
|
|
|
|
|
- border-right: 1px solid #dcdfe6;
|
|
|
|
|
- border-left: none;
|
|
|
|
|
|
|
+ /deep/.el-input__inner {
|
|
|
|
|
+ padding-right: 50px;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- .biaoshi {
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- left: -92px;
|
|
|
|
|
- color: #f56c6c;
|
|
|
|
|
- }
|
|
|
|
|
- .biaoshi2 {
|
|
|
|
|
- left: -120px;
|
|
|
|
|
- }
|
|
|
|
|
- .row2 {
|
|
|
|
|
- & > div {
|
|
|
|
|
- & > span {
|
|
|
|
|
|
|
+ .row {
|
|
|
|
|
+ width: 500px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ .fenge {
|
|
|
|
|
+ border-top: 1px solid #dcdfe6;
|
|
|
|
|
+ border-bottom: 1px solid #dcdfe6;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
- width: 140px;
|
|
|
|
|
- text-align: right;
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- color: #606266;
|
|
|
|
|
- padding-right: 12px;
|
|
|
|
|
- &::before {
|
|
|
|
|
- content: "*";
|
|
|
|
|
- color: #f56c6c;
|
|
|
|
|
- margin-right: 4px;
|
|
|
|
|
|
|
+ line-height: 36px;
|
|
|
|
|
+ padding: 0 7px;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ }
|
|
|
|
|
+ /deep/input {
|
|
|
|
|
+ border-radius: 4px 0 0 4px;
|
|
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
|
|
+ border-right: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .mySelect {
|
|
|
|
|
+ /deep/input {
|
|
|
|
|
+ border-radius: 0 4px 4px 0;
|
|
|
|
|
+ border-right: 1px solid #dcdfe6;
|
|
|
|
|
+ border-left: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .biaoshi {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ left: -92px;
|
|
|
|
|
+ color: #f56c6c;
|
|
|
|
|
+ }
|
|
|
|
|
+ .biaoshi2 {
|
|
|
|
|
+ left: -120px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .biaoshi3 {
|
|
|
|
|
+ left: -134px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .row2 {
|
|
|
|
|
+ & > div {
|
|
|
|
|
+ & > span {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ width: 140px;
|
|
|
|
|
+ text-align: right;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+ padding-right: 12px;
|
|
|
|
|
+ &::before {
|
|
|
|
|
+ content: "*";
|
|
|
|
|
+ color: #f56c6c;
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- .row3 {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- margin: 22px 0;
|
|
|
|
|
- & > div {
|
|
|
|
|
- width: 50%;
|
|
|
|
|
|
|
+ .row3 {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- align-items: center;
|
|
|
|
|
|
|
+ margin: 22px 0;
|
|
|
|
|
+ & > div {
|
|
|
|
|
+ width: 50%;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .addTime {
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ color: #b02323;
|
|
|
|
|
+ margin-left: 27px;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ line-height: 40px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- .addTime {
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
- color: #b02323;
|
|
|
|
|
- margin-left: 27px;
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ .mySelect {
|
|
|
|
|
+ /deep/.el-form-item__content {
|
|
|
|
|
+ margin-left: 0 !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .bottomBtn {
|
|
|
|
|
+ height: 55px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .con_topBox {
|
|
|
|
|
+ padding-bottom: 40px;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ width: 1200px;
|
|
|
|
|
+ padding-left: 90px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .con_top {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ line-height: 40px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+ margin-right: 14px;
|
|
|
|
|
+ &::after {
|
|
|
|
|
+ content: "*";
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: -1px;
|
|
|
|
|
+ left: -9px;
|
|
|
|
|
+ color: #f56c6c;
|
|
|
|
|
+ }
|
|
|
|
|
+ .imgUplod {
|
|
|
|
|
+ /deep/.w-e-icon-image {
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ width: 40px;
|
|
|
height: 40px;
|
|
height: 40px;
|
|
|
line-height: 40px;
|
|
line-height: 40px;
|
|
|
}
|
|
}
|
|
|
|
|
+ /deep/.el-upload-list {
|
|
|
|
|
+ display: none !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ z-index: 9999;
|
|
|
|
|
+ top: 1px;
|
|
|
|
|
+ left: 1070px;
|
|
|
|
|
+ width: 40px;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ background-color: #f6f6f6;
|
|
|
|
|
+ /deep/.w-e-icon-image {
|
|
|
|
|
+ color: black;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .mySelect {
|
|
|
|
|
- /deep/.el-form-item__content {
|
|
|
|
|
- margin-left: 0 !important;
|
|
|
|
|
|
|
+ #div1 {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .opcNone {
|
|
|
|
|
+ /deep/.el-upload--picture-card {
|
|
|
|
|
+ opacity: 0;
|
|
|
|
|
+ pointer-events: none;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|