老产品前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1055 lines
34 KiB

<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="div_form">
<div class="form_flex">
<div class="form_item">
<el-form-item label="主办方"
prop="sponsorId"
label-width="150px">
<el-cascader v-if="formData.richTextFlag || formType === 'add'"
class="item_width_6"
ref="myCascader"
v-model="agencyIdArray"
:options="orgOptions"
:props="orgOptionProps"
:show-all-levels="false"
@change="handleChangeAgency"></el-cascader>
<el-input v-else
class="item_width_6"
v-model="formData.sponsorName"></el-input>
</el-form-item>
<el-form-item label="活动标题"
prop="title"
label-width="150px"
style="display: block">
<el-input class="item_width_6"
type="textarea"
maxlength="50"
show-word-limit
:rows="2"
placeholder="请输入活动标题,不超过50字"
v-model="formData.title"></el-input>
</el-form-item>
<el-form-item label="封面"
prop="coverPic"
label-width="150px"
style="display: block">
<el-upload :headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:before-upload="beforeAvatarUpload"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="1">
<span class="font-14">选择图片</span>
</el-upload>
</el-form-item>
<el-form-item label="活动时间"
label-width="150px"
prop="actStartTime">
<el-date-picker v-model="formData.actStartTime"
class="list_item_width_3"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="开始时间">
</el-date-picker>
<span class="data-tag">至</span>
<el-date-picker v-model="formData.actEndTime"
class="list_item_width_3 data-tag"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动人数"
prop="actQuota"
style="display: block"
label-width="150px">
<el-input-number class="item_width_2"
:min="0"
v-model="formData.actQuota"
label="活动人数"></el-input-number>
</el-form-item>
<el-form-item label="活动积分"
prop="reward"
style="display: block"
label-width="150px">
<el-input-number class="item_width_2"
:min="0"
v-model="formData.reward"
label="活动积分"></el-input-number>
</el-form-item>
<el-form-item label="联系人"
prop="sponsorContacts"
label-width="150px"
style="display: block">
<el-input class="item_width_6"
maxlength="20"
placeholder="请输入联系人"
v-model="formData.sponsorContacts">
</el-input>
</el-form-item>
</div>
<div class="form_item">
<el-form-item label="联系电话"
prop="sponsorTel"
label-width="150px"
style="display: block">
<el-input class="item_width_6"
maxlength="20"
placeholder="请输入联系电话"
v-model="formData.sponsorTel">
</el-input>
</el-form-item>
<el-form-item label="报名仅限志愿者"
prop="volunteerLimit"
label-width="150px"
style="display: block">
<el-checkbox v-model="formData.volunteerLimit"></el-checkbox>
</el-form-item>
<el-form-item label="报名无需审核"
prop="auditSwitch"
label-width="150px"
style="display: block">
<el-checkbox v-model="noauditSwitch"></el-checkbox>
<span class="div-tooltip">(选中后报名参加活动人员可以直接审核通过)</span>
</el-form-item>
<el-form-item label="报名截止时间"
style="display: block"
prop="signUpEndTime"
label-width="150px">
<el-date-picker class="item_width_2"
v-model="formData.signUpEndTime"
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
type="datetime"
placeholder="选择时间">
</el-date-picker>
</el-form-item>
<el-form-item label="报名条件"
prop="requirement"
label-width="150px"
style="display: block">
<el-input class="item_width_6"
type="textarea"
maxlength="200"
show-word-limit
:rows="7"
placeholder="请输入报名条件,不超过200字"
v-model="formData.requirement"></el-input>
</el-form-item>
<el-form-item label="签到时间"
label-width="150px"
prop="signInStartTime">
<el-date-picker v-model="formData.signInStartTime"
class="list_item_width_3"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="开始时间">
</el-date-picker>
<span class="data-tag">至</span>
<el-date-picker v-model="formData.signInEndTime"
class="list_item_width_3 data-tag"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
format="yyyy-MM-dd HH:mm"
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="签到有效范围(米)"
prop="signInRadius"
style="display: block"
label-width="160px">
<el-input-number class="item_width_2"
:min="0"
v-model="formData.signInRadius"
label="签到有效范围"></el-input-number>
</el-form-item>
</div>
</div>
<div class="form_flex">
<div class="form_item">
<el-form-item label="活动位置"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width: 500px">
<el-select v-model="searchValueAct"
filterable
style="width: 330px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethodAct"
:loading="loadingAct">
<el-option v-for="(item,index) in searchOptionsAct"
@click.native="handleClickKeyAct(index)"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<div id="app_heart_act"
class="div_map"></div>
</div>
</el-form-item>
<el-form-item label="活动地址 "
prop="actAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入位置 "
v-model="formData.actAddress">
</el-input>
</el-form-item>
</div>
<div class="form_item">
<el-form-item label="签到位置"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width: 500px">
<el-select v-model="searchValueSignin"
filterable
style="width: 500px"
remote
:reserve-keyword="true"
placeholder="请输入关键词"
:remote-method="remoteMethodSignin"
:loading="loadingSignin">
<el-option v-for="(item,index) in searchOptionsSignin"
@click.native="handleClickKeySignin(index)"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<div id="app_heart_signin"
class="div_map"></div>
</div>
</el-form-item>
<el-form-item label="签到地址 "
prop="signInAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入位置 "
v-model="formData.signInAddress">
</el-input>
</el-form-item>
</div>
</div>
<el-form-item label="活动详情"
prop="actContentHtml"
label-width="150px"
style="display: block">
<div v-if="formData.richTextFlag || formType === 'add'">
<Tinymce class="tinymce_view"
v-if="formType != 'detail'"
v-model="formData.actContentHtml"
:height="250"
style="width: 1000px"
:customerId="customerId"
placeholder="在这里输入文字" />
<p v-else
class="text_p"
v-html="formData.actContentHtml"></p>
</div>
<div class="div_content"
v-else>
<div v-for="(item, index) in formData.actContent"
:key="index">
<div v-if="item.contentType === 'text'">{{ item.content }}</div>
<img v-if="item.contentType === 'img'"
class="img_icon"
:src="item.content" />
</div>
</div>
</el-form-item>
<el-form-item v-if="formData.summaryFlag"
label="活动回顾"
prop="summaryContentHtml"
label-width="150px"
style="display: block">
<div v-if="formData.richTextFlag">
<p class="text_p"
v-html="formData.summaryContentHtml"></p>
</div>
<div class="div_content"
v-else>
<div v-for="(item, index) in formData.summaryContent"
:key="index">
<div v-if="item.contentType === 'text'">{{ item.content }}</div>
<img v-if="item.contentType === 'img'"
class="img_icon"
:src="item.content" />
<p v-if="item.contentType === 'rich_text'"
class="text_p"
v-html="item.content"></p>
</div>
</div>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="handleCancle">取 消</el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm">确 定</el-button>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // 引入Loading服务
import { requestPost } from "@/js/dai/request";
import Tinymce from "@c/tinymce2/index.vue";
import daiMap from "@/utils/dai-map";
let loading; // 加载动画
var map_act;
var map_signin;
export default {
data () {
let endDisabledDate = (time) => {
//这个关键属性我们一定要写在data的里面并且return的外面,这是动态改变区间的关键
let nowData = Date.now();
if (this.formData.actStartTime) {
let startTime = new Date(this.formData.actStartTime + ":00");
return time.getTime() < startTime;
} else {
return "";
}
};
let startDisabledDate = (time) => {
//这个关键属性我们一定要写在data的里面并且return的外面,这是动态改变区间的关键
let nowData = Date.now();
return time.getTime() > nowData;
};
const valActTime = (rule, value, callback) => {
if (value === "" || value === null) {
callback(new Error("请选择活动开始时间"));
} else if (!this.formData.actEndTime) {
callback(new Error("请选择活动结束时间"));
} else {
callback();
}
};
const valSigninTime = (rule, value, callback) => {
if (value === "" || value === null) {
callback(new Error("请选择签到开始时间"));
} else if (!this.formData.signInEndTime) {
callback(new Error("请选择签到结束时间"));
} else {
callback();
}
};
return {
formType: "add", //表单操作类型 add新增,edit编辑,detail详情
searchOptionsAct: [],
searchValueAct: '',
resultListAct: [],
loadingAct: false,
searchOptionsSignin: [],
searchValueSignin: '',
resultListSignin: [],
loadingSignin: false,
btnDisable: false,
customerId: "",
actId: "",
valActTime: valActTime,
valSigninTime: valSigninTime,
noauditSwitch: false,
formData: {
actAddress: "",
actContentHtml: "",
actContent: {},
actDraftId: "",
actEndTime: "",
actId: "",
actLatitude: null,
actLongitude: null,
actQuota: 0,
actStartTime: "",
actType: "heart",
auditSwitch: true,
coverPic: "",
coverPicAuditStatus: "",
customerId: "",
noticePassedPeople: false,
requirement: "",
reward: 0,
signInAddress: "",
signInEndTime: "",
signInLatitude: null,
signInLongitude: null,
signInRadius: 200,
signInStartTime: "",
signUpEndTime: "",
sponsorContacts: "",
sponsorId: "",
sponsorPath: "",
sponsorName: "",
sponsorTel: "",
sponsorType: "",
target: "",
title: "",
volunteerLimit: false,
},
orgOptions: [],
orgOptionProps: {
multiple: false,
value: "gridId",
label: "agencyGridName",
children: "agencyGridList",
checkStrictly: true,
},
agencyIdArray: [],
endPickerOptions: {
disabledDate: endDisabledDate,
},
startPickerOptions: {
disabledDate: startDisabledDate,
},
//图片相关 oss/file/uploadvariedfile
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
// upload_url: '', // 上传URL
upload_name: "", // 图片或视频名称
replayImgList: [
// {
// id: '1',
// url: 'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20220629/db05fed5cc56417299364ab8362ac9a0.png'
// }
],
hideUploadBtn: false,
};
},
components: { Tinymce },
mounted () {
this.customerId = localStorage.getItem("customerId");
this.loadSponsorlist();
},
methods: {
async initForm (type, actId) {
this.$refs.ref_form.resetFields();
let { latitude, longitude } = this.$store.state.user;
this.formType = type;
if (actId) {
this.startLoading();
this.actId = actId;
this.formData.actId = actId;
await this.loadFormData();
this.endLoading();
} else {
this.actId = "";
this.formData.actId = "";
this.formData.actLatitude = latitude
this.formData.actLongitude = longitude
this.formData.signInLatitude = latitude
this.formData.signInLongitude = longitude
// this.formData = JSON.parse(JSON.stringify(this.formDataTemp));
// this.agencyIdArray = this.formData.sponsorPath.split(',')
}
this.$nextTick(() => {
if (!map_act) {
this.initMap(this.formData.actLatitude, this.formData.actLongitude, this.formData.signInLatitude, this.formData.signInLongitude)
} else {
map_act.setCenter(this.formData.actLatitude, this.formData.actLongitude);
map_act.setMarker(this.formData.actLatitude, this.formData.actLongitude);
map_signin.setCenter(this.formData.signInLatitude, this.formData.signInLongitude);
map_signin.setMarker(this.formData.signInLatitude, this.formData.signInLongitude);
}
})
},
//获取主办方
async loadSponsorlist () {
const url = "/heart/work/act/sponsorlist";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
data.agencyGridName = data.agencyName;
data.gridId = data.agencyId;
data.level = "agency";
this.orgOptions.push(data);
} else {
this.$message.error(msg);
}
},
handleChangeAgency (val) {
let obj = this.$refs["myCascader"].getCheckedNodes()[0].data;
if (obj) {
this.formData.sponsorId = obj.gridId;
this.formData.sponsorName = obj.agencyGridName;
this.formData.sponsorPath = this.agencyIdArray.join(",");
if (obj.level === "agency") {
this.formData.sponsorType = "agency";
} else {
this.formData.sponsorType = "grid";
}
} else {
this.formData.sponsorId = "";
this.formData.sponsorPath = "";
this.formData.sponsorName = "";
this.formData.sponsorType = "";
}
},
//加载form
async loadFormData () {
const url = "/heart/work/act/detail";
let params = {
actId: this.actId,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.formData = JSON.parse(JSON.stringify(data));
if (this.formData.richTextFlag) {
this.agencyIdArray = this.formData.sponsorPath.split(",");
if (this.formData.actContent && this.formData.actContent.length > 0) {
this.formData.actContentHtml = this.formData.actContent[0].content;
}
if (
this.formData.summaryContent &&
this.formData.summaryContent.length > 0
) {
this.formData.summaryContentHtml =
this.formData.summaryContent[0].content;
}
}
this.noauditSwitch = !this.formData.auditSwitch;
if (this.formData.coverPic) {
let obj = {
id: "111",
url: this.formData.coverPic,
};
this.replayImgList = [];
this.replayImgList.push(obj);
this.hideUploadBtn = true;
}
} else {
this.$message.error(msg);
}
},
async handleComfirm () {
console.log(this.formData);
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
}, 3000);
this.$refs["ref_form"].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj);
this.btnDisable = false;
} else {
let errBeforeSubmit = "";
if (
new Date(this.formData.actEndTime).getTime() <=
new Date(this.formData.actStartTime).getTime()
) {
errBeforeSubmit = "活动预计开始时间应早于活动预计结束时间";
} else if (
new Date(this.formData.signInEndTime).getTime() <=
new Date(this.formData.signInStartTime).getTime()
) {
errBeforeSubmit = "签到开始时间应早于签到结束时间";
}
if (errBeforeSubmit) {
this.$message({
type: "info",
message: errBeforeSubmit,
});
return false;
}
this.addHeartAct();
}
});
},
async addHeartAct () {
let obj = {
contentType: "rich_text",
content: this.dormatHtml(this.formData.actContentHtml),
};
this.formData.actContent = [];
this.formData.actContent.push(obj);
this.formData.customerId = this.customerId;
this.formData.noticePassedPeople = false;
this.formData.auditSwitch = !this.noauditSwitch;
let url = "/heart/work/act/publishV2";
if (this.actId) {
this.formData.actId = this.actId;
url = "/heart/work/act/republishV2";
} else {
url = "/heart/work/act/publishV2";
}
// let url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolrecord/add"
this.startLoading();
const { data, code, msg } = await requestPost(url, this.formData);
this.endLoading();
if (code === 0) {
this.$message({
type: "success",
message: "操作成功",
});
this.resetData();
this.$emit("dialogOk");
this.btnDisable = false;
} else {
this.btnDisable = false;
this.$message.error(msg);
}
},
dormatHtml (content) {
let c = "";
if (content.indexOf("DOCTYPE") != -1) {
c = content.slice(45, -16);
}
console.log("content", typeof content);
return c || content;
},
removePic (file, fileList) {
this.formData.coverPic = "";
this.replayImgList = [];
this.hideUploadBtn = fileList.length >= 1;
},
// 最多上传3张图,超过时隐藏上传按钮
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 1;
},
exceedPic () {
this.$message.warning("只能上传1张封面图");
},
beforeAvatarUpload (file) {
const isJPG = file.type === "image/jpeg";
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 10MB!");
}
return isLt2M;
},
handleSuccess (response, file, fileList) {
this.replayImgList.push(file);
this.formData.coverPic = response.data.url;
},
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义
initMap (latitude1, longitude1, latitude2, longitude2) {
map_act = new daiMap(
document.getElementById("app_heart_act"),
{ latitude1, longitude1 },
{
zoom: 16.2, // 设置地图缩放级别
pitch: 43.5, // 设置俯仰角
rotation: 45, // 设置地图旋转角度
}
);
map_signin = new daiMap(
document.getElementById("app_heart_signin"),
{ latitude2, longitude2 },
{
zoom: 16.2, // 设置地图缩放级别
pitch: 43.5, // 设置俯仰角
rotation: 45, // 设置地图旋转角度
}
);
// 监听地图平移结束
map_act.on("dragend", (e) => {
this.handleMoveCenterAct(e);
});
map_act.setCenter(latitude1, longitude1);
map_act.setMarker(latitude1, longitude1);
// 监听地图平移结束
map_signin.on("dragend", (e) => {
this.handleMoveCenterSignin(e);
});
map_signin.setCenter(latitude2, longitude2);
map_signin.setMarker(latitude2, longitude2);
},
async handleMoveCenterAct () {
//修改地图中心点
const { lat, lng } = map_act.getCenter();
this.formData.actLatitude = lat;
this.formData.actLongitude = lng;
map_act.setMarker(lat, lng);
let { msg, data } = await map_act.getAddress(lat, lng);
if (msg == "success") {
this.formData.actAddress = data.address
this.searchValueAct = data.address
this.searchOptionsAct = []
}
},
async handleMoveCenterSignin () {
//修改地图中心点
const { lat, lng } = map_signin.getCenter();
this.formData.signInLatitude = lat;
this.formData.signInLongitude = lng;
map_signin.setMarker(lat, lng);
let { msg, data } = await map_signin.getAddress(lat, lng);
if (msg == "success") {
this.formData.signInAddress = data.address
this.searchValueSignin = data.address
this.searchOptionsSignin = []
}
},
async remoteMethodAct (query) {
if (query !== '') {
this.loadingAct = true;
const { msg, data } = await map_act.searchNearby(query);
this.loadingAct = false;
this.resultListAct = []
if (msg == "success" && data.resultList && data.resultList.length > 0) {
if (data.resultList && data.resultList.length > 0) {
this.resultListAct = data.resultList
this.searchOptionsAct = this.resultListAct.map(item => {
return { value: `${item.hotPointID}`, label: `${item.address + item.name}` };
});
}
} else {
this.searchOptionsAct = [
{
value: '0',
label: '未检索到结果'
}
]
}
} else {
this.searchOptionsAct = [];
}
},
async remoteMethodSignin (query) {
if (query !== '') {
this.loadingSign = true;
const { msg, data } = await map_signin.searchNearby(query);
this.loadingSign = false;
this.resultListSignin = []
if (msg == "success" && data.resultList && data.resultList.length > 0) {
if (data.resultList && data.resultList.length > 0) {
this.resultListSignin = data.resultList
this.searchOptionsSignin = this.resultListSignin.map(item => {
return { value: `${item.hotPointID}`, label: `${item.address + item.name}` };
});
}
} else {
this.searchOptionsSignin = [
{
value: '0',
label: '未检索到结果'
}
]
}
} else {
this.searchOptionsSignin = [];
}
},
handleClickKeyAct (index) {
let selPosition = this.resultListAct[index]
let lonlat = selPosition.lonlat.split(" ")
map_act.setCenter(lonlat[1], lonlat[0]);
map_act.setMarker(lonlat[1], lonlat[0]);
this.formData.actLatitude = lonlat[1];
this.formData.actLongitude = lonlat[0];
this.formData.actAddress = selPosition.address + selPosition.name
},
handleClickKeySignin (index) {
let selPosition = this.resultListSignin[index]
let lonlat = selPosition.lonlat.split(" ")
map_signin.setCenter(lonlat[1], lonlat[0]);
map_signin.setMarker(lonlat[1], lonlat[0]);
this.formData.signInLatitude = lonlat[1];
this.formData.signInLongitude = lonlat[0];
this.formData.signInAddress = selPosition.address + selPosition.name
},
handleCancle () {
this.resetData();
this.$emit("dialogCancle");
},
resetData () {
this.searchValueAct = ''
this.searchOptionsAct = []
this.resultListAct = []
this.searchValueSignin = ''
this.searchOptionsSignin = []
this.resultListSignin = []
this.actId = "";
this.replayImgList = [];
this.agencyIdArray = [];
this.hideUploadBtn = false;
this.noauditSwitch = false;
this.formData = {
actAddress: "",
actContentHtml: "",
actContent: {},
actDraftId: "",
actEndTime: "",
actId: "",
actLatitude: null,
actLongitude: null,
actQuota: 0,
actStartTime: "",
actType: "heart",
auditSwitch: true,
coverPic: "",
coverPicAuditStatus: "",
customerId: "",
noticePassedPeople: false,
requirement: "",
reward: 0,
signInAddress: "",
signInEndTime: "",
signInLatitude: null,
signInLongitude: null,
signInRadius: 200,
signInStartTime: "",
signUpEndTime: "",
sponsorContacts: "",
sponsorId: "",
sponsorPath: "",
sponsorName: "",
sponsorTel: "",
sponsorType: "",
target: "",
title: "",
volunteerLimit: false,
};
},
// 开启加载动画
startLoading () {
loading = Loading.service({
lock: true, // 是否锁定
text: "正在加载……", // 加载中需要显示的文字
background: "rgba(0,0,0,.7)", // 背景颜色
});
},
// 结束加载动画
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
}
},
},
computed: {
dataRule () {
return {
sponsorId: [
{ required: true, message: "主办方不能为空", trigger: "change" },
],
title: [
{ required: true, message: "活动标题不能为空", trigger: "change" },
],
coverPic: [
{ required: true, message: "封面图不能为空", trigger: "change" },
],
actContentHtml: [
{ required: true, message: "活动详情不能为空", trigger: "change" },
],
actAddress: [
{ required: true, message: "活动地点不能为空", trigger: "change" },
],
actStartTime: [
{
required: true,
validator: this.valActTime,
message: "活动时间不能为空",
trigger: "change",
},
],
actQuota: [
{ required: true, message: "活动人数不能为空", trigger: "change" },
],
reward: [
{ required: true, message: "活动积分不能为空", trigger: "change" },
],
signUpEndTime: [
{
required: true,
message: "报名截止时间不能为空",
trigger: "change",
},
],
signInStartTime: [
{
required: true,
validator: this.valSigninTime,
message: "签到时间不能为空",
trigger: "change",
},
],
signInAddress: [
{ required: true, message: "签到地点不能为空", trigger: "change" },
],
signInRadius: [
{
required: true,
message: "签到有效范围不能为空",
trigger: "change",
},
],
sponsorContacts: [
{ required: true, message: "联系人不能为空", trigger: "change" },
],
sponsorTel: [
{ required: true, message: "联系电话不能为空", trigger: "change" },
],
};
},
},
props: {},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/modules/management/form-main.scss";
.avatar-uploader {
margin: 0 0 0 20px;
}
.div-tooltip {
margin-left: 10px;
color: red;
}
.text_p {
width: 1000px;
margin: 0 0;
border: 3px;
p {
margin: 0;
padding: 0;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
}
}
.div_content {
width: 1000px;
}
.img_icon {
width: 200px;
height: 200px;
}
</style>
<style lang="scss">
.el-dialog__body {
padding: 0 10px 20px !important;
}
.hide {
.el-upload--picture-card {
display: none !important;
}
}
</style>