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.
house/fount/views/modules/fangwuxinxi/add-or-update.vue

808 lines
33 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<!-- 添加/编辑页面容器 -->
<div class="addEdit-block">
<!-- 表单组件 -->
<el-form
class="detail-form-content"
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="80px"
:style="{backgroundColor:addEditForm.addEditBoxColor}" <!-- -->
>
<el-row> <!-- 表单布局行 -->
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="房屋名称" prop="fangwumingcheng"> <!-- 房屋名称输入框 -->
<el-input v-model="ruleForm.fangwumingcheng"
placeholder="房屋名称" clearable :readonly="ro.fangwumingcheng"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="房屋名称" prop="fangwumingcheng">
<el-input v-model="ruleForm.fangwumingcheng"
placeholder="房屋名称" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="select" v-if="type!='info'" label="房屋类型" prop="fangwuleixing"> <!-- 房屋类型选择框 -->
<el-select v-model="ruleForm.fangwuleixing" placeholder="请选择房屋类型">
<el-option
v-for="(item,index) in fangwuleixingOptions"
v-bind:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="房屋类型" prop="fangwuleixing">
<el-input v-model="ruleForm.fangwuleixing"
placeholder="房屋类型" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="24"> <!-- 占满整行 -->
<el-form-item class="upload" v-if="type!='info' && !ro.tupian" label="图片" prop="tupian"> <!-- 图片上传组件 -->
<file-upload
tip="点击上传图片"
action="file/upload"
:limit="3"
:multiple="true"
:fileUrls="ruleForm.tupian?ruleForm.tupian:''"
@change="tupianUploadChange"
></file-upload>
</el-form-item>
<div v-else> <!-- 如果是查看模式或只读,显示图片 -->
<el-form-item v-if="ruleForm.tupian" label="图片" prop="tupian">
<img style="margin-right:20px;" v-bind:key="index" v-for="(item,index) in ruleForm.tupian.split(',')" :src="item" width="100" height="100">
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="select" v-if="type!='info'" label="租赁方式" prop="zulinfangshi"> <!-- 租赁方式选择框 -->
<el-select v-model="ruleForm.zulinfangshi" placeholder="请选择租赁方式">
<el-option
v-for="(item,index) in zulinfangshiOptions"
v-bind:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="租赁方式" prop="zulinfangshi">
<el-input v-model="ruleForm.zulinfangshi"
placeholder="租赁方式" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="朝向楼层" prop="chaoxianglouceng"> <!-- 朝向楼层输入框 -->
<el-input v-model="ruleForm.chaoxianglouceng"
placeholder="朝向楼层" clearable :readonly="ro.chaoxianglouceng"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="朝向楼层" prop="chaoxianglouceng">
<el-input v-model="ruleForm.chaoxianglouceng"
placeholder="朝向楼层" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="面积" prop="mianji"> <!-- 面积输入框 -->
<el-input v-model="ruleForm.mianji"
placeholder="面积" clearable :readonly="ro.mianji"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="面积" prop="mianji">
<el-input v-model="ruleForm.mianji"
placeholder="面积" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="select" v-if="type!='info'" label="房屋状态" prop="fangwuzhuangtai"> <!-- 房屋状态选择框 -->
<el-select v-model="ruleForm.fangwuzhuangtai" placeholder="请选择房屋状态">
<el-option
v-for="(item,index) in fangwuzhuangtaiOptions"
v-bind:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="房屋状态" prop="fangwuzhuangtai">
<el-input v-model="ruleForm.fangwuzhuangtai"
placeholder="房屋状态" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="小区" prop="xiaoqu"> <!-- 小区输入框 -->
<el-input v-model="ruleForm.xiaoqu"
placeholder="小区" clearable :readonly="ro.xiaoqu"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="小区" prop="xiaoqu">
<el-input v-model="ruleForm.xiaoqu"
placeholder="小区" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="详细地址" prop="xiangxidizhi"> <!-- 详细地址输入框 -->
<el-input v-model="ruleForm.xiangxidizhi"
placeholder="详细地址" clearable :readonly="ro.xiangxidizhi"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="详细地址" prop="xiangxidizhi">
<el-input v-model="ruleForm.xiangxidizhi"
placeholder="详细地址" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="月租价格" prop="yuezujiage"> <!-- 月租价格输入框 -->
<el-input v-model="ruleForm.yuezujiage"
placeholder="月租价格" clearable :readonly="ro.yuezujiage"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="月租价格" prop="yuezujiage">
<el-input v-model="ruleForm.yuezujiage"
placeholder="月租价格" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="押金" prop="yajin"> <!-- 押金输入框 -->
<el-input v-model="ruleForm.yajin"
placeholder="押金" clearable :readonly="ro.yajin"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="押金" prop="yajin">
<el-input v-model="ruleForm.yajin"
placeholder="押金" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="房屋设施" prop="fangwusheshi"> <!-- 房屋设施输入框 -->
<el-input v-model="ruleForm.fangwusheshi"
placeholder="房屋设施" clearable :readonly="ro.fangwusheshi"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="房屋设施" prop="fangwusheshi">
<el-input v-model="ruleForm.fangwusheshi"
placeholder="房屋设施" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="date" v-if="type!='info'" label="发布日期" prop="faburiqi"> <!-- 发布日期选择器 -->
<el-date-picker
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
v-model="ruleForm.faburiqi"
type="date"
placeholder="发布日期">
</el-date-picker>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" v-if="ruleForm.faburiqi" label="发布日期" prop="faburiqi">
<el-input v-model="ruleForm.faburiqi"
placeholder="发布日期" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 左侧列宽度为12 -->
<el-form-item class="select" v-if="type!='info'" label="房主账号" prop="fangzhuzhanghao"> <!-- 房主账号选择框 -->
<el-select @change="fangzhuzhanghaoChange" v-model="ruleForm.fangzhuzhanghao" placeholder="请选择房主账号">
<el-option
v-for="(item,index) in fangzhuzhanghaoOptions"
v-bind:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input"v-if="ruleForm.fangzhuzhanghao" label="房主账号" prop="fangzhuzhanghao">
<el-input v-model="ruleForm.fangzhuzhanghao"
placeholder="房主账号" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12"> <!-- 右侧列宽度为12 -->
<el-form-item class="input" v-if="type!='info'" label="房主姓名" prop="fangzhuxingming"> <!-- 房主姓名输入框 -->
<el-input v-model="ruleForm.fangzhuxingming"
placeholder="房主姓名" clearable :readonly="ro.fangzhuxingming"></el-input>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示只读输入框 -->
<el-form-item class="input" label="房主姓名" prop="fangzhuxingming">
<el-input v-model="ruleForm.fangzhuxingming"
placeholder="房主姓名" readonly></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row> <!-- 新的表单布局行 -->
<el-col :span="24"> <!-- -->
<el-form-item v-if="type!='info'" label="房屋详情" prop="fangwuxiangqing"> <!-- 房屋详情编辑器 -->
<editor
style="min-width: 200px; max-width: 600px;"
v-model="ruleForm.fangwuxiangqing"
class="editor"
action="file/upload">
</editor>
</el-form-item>
<div v-else> <!-- 如果是查看模式,显示富文本内容 -->
<el-form-item v-if="ruleForm.fangwuxiangqing" label="房屋详情" prop="fangwuxiangqing">
<span v-html="ruleForm.fangwuxiangqing"></span>
</el-form-item>
</div>
</el-col>
</el-row>
<el-form-item class="btn"> <!-- 按钮容器 -->
<el-button v-if="type!='info'" type="primary" class="btn-success" @click="onSubmit">提交</el-button> <!-- 提交按钮 -->
<el-button v-if="type!='info'" class="btn-close" @click="back()">取消</el-button> <!-- 取消按钮 -->
<el-button v-if="type=='info'" class="btn-close" @click="back()">返回</el-button> <!-- 返回按钮 -->
</el-form-item>
</el-form>
</div>
</template>
<script>
// 引入验证工具函数
import { isNumber,isIntNumer,isEmail,isPhone, isMobile,isURL,checkIdCard } from "@/utils/validate";
export default {
data() {
let self = this
// 定义身份证验证规则
var validateIdCard = (rule, value, callback) => {
if(!value){
callback();
} else if (!checkIdCard(value)) {
callback(new Error("请输入正确的身份证号码"));
} else {
callback();
}
};
// 定义URL验证规则
var validateUrl = (rule, value, callback) => {
if(!value){
callback();
} else if (!isURL(value)) {
callback(new Error("请输入正确的URL地址"));
} else {
callback();
}
};
// 定义手机号验证规则
var validateMobile = (rule, value, callback) => {
if(!value){
callback();
} else if (!isMobile(value)) {
callback(new Error("请输入正确的手机号码"));
} else {
callback();
}
};
// 定义电话号验证规则
var validatePhone = (rule, value, callback) => {
if(!value){
callback();
} else if (!isPhone(value)) {
callback(new Error("请输入正确的电话号码"));
} else {
callback();
}
};
// 定义邮箱验证规则
var validateEmail = (rule, value, callback) => {
if(!value){
callback();
} else if (!isEmail(value)) {
callback(new Error("请输入正确的邮箱地址"));
} else {
callback();
}
};
// 定义数字验证规则
var validateNumber = (rule, value, callback) => {
if(!value){
callback();
} else if (!isNumber(value)) {
callback(new Error("请输入数字"));
} else {
callback();
}
};
// 定义整数验证规则
var validateIntNumber = (rule, value, callback) => {
if(!value){
callback();
} else if (!isIntNumer(value)) {
callback(new Error("请输入整数"));
} else {
callback();
}
};
return {
// 表单样式配置
addEditForm: { /* 样式配置参数 */ },
id: '',
type: '',
ro:{
// 各字段只读状态配置
fangwumingcheng : false,
fangwuleixing : false,
tupian : false,
zulinfangshi : false,
chaoxianglouceng : false,
mianji : false,
fangwuzhuangtai : false,
xiaoqu : false,
xiangxidizhi : false,
yuezujiage : false,
yajin : false,
fangwusheshi : false,
fangwuxiangqing : false,
faburiqi : false,
fangzhuzhanghao : false,
fangzhuxingming : false,
},
// 表单数据模型
ruleForm: {
fangwumingcheng: '',
fangwuleixing: '',
tupian: '',
zulinfangshi: '',
chaoxianglouceng: '',
mianji: '',
fangwuzhuangtai: '',
xiaoqu: '',
xiangxidizhi: '',
yuezujiage: '',
yajin: '',
fangwusheshi: '',
fangwuxiangqing: '',
faburiqi: '',
fangzhuzhanghao: '',
fangzhuxingming: '',
},
// 房屋类型选项
fangwuleixingOptions: [],
// 租赁方式选项
zulinfangshiOptions: [],
// 房屋状态选项
fangwuzhuangtaiOptions: [],
// 房主账号选项
fangzhuzhanghaoOptions: [],
// 表单验证规则
rules: {
fangwumingcheng: [
{ required: true, message: '房屋名称不能为空', trigger: 'blur' }, // 必填验证
],
fangwuleixing: [
{ required: true, message: '房屋类型不能为空', trigger: 'blur' }, // 必填验证
],
tupian: [
{ required: true, message: '图片不能为空', trigger: 'blur' }, // 必填验证
],
zulinfangshi: [
],
chaoxianglouceng: [
],
mianji: [
],
fangwuzhuangtai: [
],
xiaoqu: [
],
xiangxidizhi: [
],
yuezujiage: [
{ validator: validateIntNumber, trigger: 'blur' }, // 整数验证
],
yajin: [
{ validator: validateIntNumber, trigger: 'blur' }, // 整数验证
],
fangwusheshi: [
],
fangwuxiangqing: [
],
faburiqi: [
],
fangzhuzhanghao: [
],
fangzhuxingming: [
],
}
};
},
props: ["parent"], // 定义父组件传入的属性
computed: {
},
created() {
this.addEditStyleChange() // 调用样式更新方法
this.addEditUploadStyleChange() // 调用上传组件样式更新方法
},
methods: {
// 下载文件方法
download(file){
window.open(`${file}`)
},
// 初始化方法
init(id,type) {
if (id) {
this.id = id; // 设置当前ID
this.type = type; // 设置当前类型
}
if(this.type=='info'||this.type=='else'){ // 如果是查看或编辑模式
this.info(id); // 获取详细信息
}else if(this.type=='cross'){ // 如果是关联模式
var obj = this.$storage.getObj('crossObj'); // 获取关联对象
for (var o in obj){ // 遍历关联对象属性
if(o=='fangwumingcheng'){
this.ruleForm.fangwumingcheng = obj[o]; // 设置房屋名称
this.ro.fangwumingcheng = true; // 设置为只读
continue;
}
if(o=='fangwuleixing'){
this.ruleForm.fangwuleixing = obj[o]; // 设置房屋类型
this.ro.fangwuleixing = true; // 设置为只读
continue;
}
if(o=='tupian'){
this.ruleForm.tupian = obj[o]; // 设置图片
this.ro.tupian = true; // 设置为只读
continue;
}
if(o=='zulinfangshi'){
this.ruleForm.zulinfangshi = obj[o]; // 设置租赁方式
this.ro.zulinfangshi = true; // 设置为只读
continue;
}
if(o=='chaoxianglouceng'){
this.ruleForm.chaoxianglouceng = obj[o]; // 设置朝向楼层
this.ro.chaoxianglouceng = true; // 设置为只读
continue;
}
if(o=='mianji'){
this.ruleForm.mianji = obj[o]; // 设置面积
this.ro.mianji = true; // 设置为只读
continue;
}
if(o=='fangwuzhuangtai'){
this.ruleForm.fangwuzhuangtai = obj[o]; // 设置房屋状态
this.ro.fangwuzhuangtai = true; // 设置为只读
continue;
}
if(o=='xiaoqu'){
this.ruleForm.xiaoqu = obj[o]; // 设置小区
this.ro.xiaoqu = true; // 设置为只读
continue;
}
if(o=='xiangxidizhi'){
this.ruleForm.xiangxidizhi = obj[o]; // 设置详细地址
this.ro.xiangxidizhi = true; // 设置为只读
continue;
}
if(o=='yuezujiage'){
this.ruleForm.yuezujiage = obj[o]; // 设置月租价格
this.ro.yuezujiage = true; // 设置为只读
continue;
}
if(o=='yajin'){
this.ruleForm.yajin = obj[o]; // 设置押金
this.ro.yajin = true; // 设置为只读
continue;
}
if(o=='fangwusheshi'){
this.ruleForm.fangwusheshi = obj[o]; // 设置房屋设施
this.ro.fangwusheshi = true; // 设置为只读
continue;
}
if(o=='fangwuxiangqing'){
this.ruleForm.fangwuxiangqing = obj[o]; // 设置房屋详情
this.ro.fangwuxiangqing = true; // 设置为只读
continue;
}
if(o=='faburiqi'){
this.ruleForm.faburiqi = obj[o]; // 设置发布日期
this.ro.faburiqi = true; // 设置为只读
continue;
}
if(o=='fangzhuzhanghao'){
this.ruleForm.fangzhuzhanghao = obj[o]; // 设置房主账号
this.ro.fangzhuzhanghao = true; // 设置为只读
continue;
}
if(o=='fangzhuxingming'){
this.ruleForm.fangzhuxingming = obj[o]; // 设置房主姓名
this.ro.fangzhuxingming = true; // 设置为只读
continue;
}
}
}
// 获取当前用户信息
this.$http({
url: `${this.$storage.get('sessionTable')}/session`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
var json = data.data;
} else {
this.$message.error(data.msg);
}
});
// 获取房屋类型选项
this.$http({
url: `option/fangwuleixing/fangwuleixing`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
this.fangwuleixingOptions = data.data;
} else {
this.$message.error(data.msg);
}
});
// 设置租赁方式选项
this.zulinfangshiOptions = "整租,合租".split(',');
// 设置房屋状态选项
this.fangwuzhuangtaiOptions = "可租,已租".split(',');
// 获取房主账号选项
this.$http({
url: `option/fangzhu/fangzhuzhanghao`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
this.fangzhuzhanghaoOptions = data.data;
} else {
this.$message.error(data.msg);
}
});
},
// 房主账号变更时的级联查询
fangzhuzhanghaoChange () {
this.$http({
url: `follow/fangzhu/fangzhuzhanghao?columnValue=`+ this.ruleForm.fangzhuzhanghao,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
if(data.data.fangzhuxingming){
this.ruleForm.fangzhuxingming = data.data.fangzhuxingming // 更新房主姓名
}
} else {
this.$message.error(data.msg);
}
});
},
// 获取详细信息方法
info(id) {
this.$http({
url: `fangwuxinxi/info/${id}`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
this.ruleForm = data.data; // 更新表单数据
} else {
this.$message.error(data.msg);
}
});
},
// 提交表单方法
onSubmit() {
// 表单验证并提交
this.$refs["ruleForm"].validate(valid => {
if (valid) {
this.$http({
url: `fangwuxinxi/${!this.ruleForm.id ? "save" : "update"}`, // 请求保存或更新接口
method: "post",
data: this.ruleForm
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功", // 显示成功消息
type: "success",
duration: 1500,
onClose: () => {
this.parent.showFlag = true; // 显示列表页
this.parent.addOrUpdateFlag = false; // 隐藏表单页
this.parent.fangwuxinxiCrossAddOrUpdateFlag = false; // 隐藏关联表单页
this.parent.search(); // 刷新列表
this.parent.contentStyleChange(); // 更新列表样式
}
});
} else {
this.$message.error(data.msg); // 显示错误消息
}
});
}
});
},
// 获取唯一标识符方法
getUUID () {
return new Date().getTime();
},
// 返回方法
back() {
this.parent.showFlag = true; // 显示列表页
this.parent.addOrUpdateFlag = false; // 隐藏表单页
this.parent.fangwuxinxiCrossAddOrUpdateFlag = false; // 隐藏关联表单页
this.parent.contentStyleChange(); // 更新列表样式
},
// 图片上传变更方法
tupianUploadChange(fileUrls) {
this.ruleForm.tupian = fileUrls; // 更新图片数据
this.addEditUploadStyleChange(); // 更新上传组件样式
},
addEditStyleChange() { // 更新表单样式方法
this.$nextTick(()=>{ // 在DOM更新后执行
// 更新input样式
document.querySelectorAll('.addEdit-block .input .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.inputHeight;
el.style.color = this.addEditForm.inputFontColor;
el.style.fontSize = this.addEditForm.inputFontSize;
el.style.borderWidth = this.addEditForm.inputBorderWidth;
el.style.borderStyle = this.addEditForm.inputBorderStyle;
el.style.borderColor = this.addEditForm.inputBorderColor;
el.style.borderRadius = this.addEditForm.inputBorderRadius;
el.style.backgroundColor = this.addEditForm.inputBgColor;
});
document.querySelectorAll('.addEdit-block .input .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.inputHeight;
el.style.color = this.addEditForm.inputLableColor;
el.style.fontSize = this.addEditForm.inputLableFontSize;
});
// 更新select样式
document.querySelectorAll('.addEdit-block .select .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.selectHeight;
el.style.color = this.addEditForm.selectFontColor;
el.style.fontSize = this.addEditForm.selectFontSize;
el.style.borderWidth = this.addEditForm.selectBorderWidth;
el.style.borderStyle = this.addEditForm.selectBorderStyle;
el.style.borderColor = this.addEditForm.selectBorderColor;
el.style.borderRadius = this.addEditForm.selectBorderRadius;
el.style.backgroundColor = this.addEditForm.selectBgColor;
});
document.querySelectorAll('.addEdit-block .select .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.selectHeight;
el.style.color = this.addEditForm.selectLableColor;
el.style.fontSize = this.addEditForm.selectLableFontSize;
});
document.querySelectorAll('.addEdit-block .select .el-select__caret').forEach(el=>{
el.style.color = this.addEditForm.selectIconFontColor;
el.style.fontSize = this.addEditForm.selectIconFontSize;
});
// 更新date样式
document.querySelectorAll('.addEdit-block .date .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.dateHeight;
el.style.color = this.addEditForm.dateFontColor;
el.style.fontSize = this.addEditForm.dateFontSize;
el.style.borderWidth = this.addEditForm.dateBorderWidth;
el.style.borderStyle = this.addEditForm.dateBorderStyle;
el.style.borderColor = this.addEditForm.dateBorderColor;
el.style.borderRadius = this.addEditForm.dateBorderRadius;
el.style.backgroundColor = this.addEditForm.dateBgColor;
});
document.querySelectorAll('.addEdit-block .date .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.dateHeight;
el.style.color = this.addEditForm.dateLableColor;
el.style.fontSize = this.addEditForm.dateLableFontSize;
});
document.querySelectorAll('.addEdit-block .date .el-input__icon').forEach(el=>{
el.style.color = this.addEditForm.dateIconFontColor;
el.style.fontSize = this.addEditForm.dateIconFontSize;
el.style.lineHeight = this.addEditForm.dateHeight;
});
// 更新upload样式
let iconLineHeight = parseInt(this.addEditForm.uploadHeight) - parseInt(this.addEditForm.uploadBorderWidth) * 2 + 'px';
document.querySelectorAll('.addEdit-block .upload .el-upload--picture-card').forEach(el=>{
el.style.width = this.addEditForm.uploadHeight;
el.style.height = this.addEditForm.uploadHeight;
el.style.borderWidth = this.addEditForm.uploadBorderWidth;
el.style.borderStyle = this.addEditForm.uploadBorderStyle;
el.style.borderColor = this.addEditForm.uploadBorderColor;
el.style.borderRadius = this.addEditForm.uploadBorderRadius;
el.style.backgroundColor = this.addEditForm.uploadBgColor;
});
document.querySelectorAll('.addEdit-block .upload .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.uploadHeight;
el.style.color = this.addEditForm.uploadLableColor;
el.style.fontSize = this.addEditForm.uploadLableFontSize;
});
document.querySelectorAll('.addEdit-block .upload .el-icon-plus').forEach(el=>{
el.style.color = this.addEditForm.uploadIconFontColor;
el.style.fontSize = this.addEditForm.uploadIconFontSize;
el.style.lineHeight = iconLineHeight;
el.style.display = 'block';
});
// 更新textarea样式
document.querySelectorAll('.addEdit-block .textarea .el-textarea__inner').forEach(el=>{
el.style.height = this.addEditForm.textareaHeight;
el.style.color = this.addEditForm.textareaFontColor;
el.style.fontSize = this.addEditForm.textareaFontSize;
el.style.borderWidth = this.addEditForm.textareaBorderWidth;
el.style.borderStyle = this.addEditForm.textareaBorderStyle;
el.style.borderColor = this.addEditForm.textareaBorderColor;
el.style.borderRadius = this.addEditForm.textareaBorderRadius;
el.style.backgroundColor = this.addEditForm.textareaBgColor;
});
document.querySelectorAll('.addEdit-block .textarea .el-form-item__label').forEach(el=>{
// el.style.lineHeight = this.addEditForm.textareaHeight
el.style.color = this.addEditForm.textareaLableColor;
el.style.fontSize = this.addEditForm.textareaLableFontSize;
});
// 更新按钮样式
document.querySelectorAll('.addEdit-block .btn .btn-success').forEach(el=>{
el.style.width = this.addEditForm.btnSaveWidth;
el.style.height = this.addEditForm.btnSaveHeight;
el.style.color = this.addEditForm.btnSaveFontColor;
el.style.fontSize = this.addEditForm.btnSaveFontSize;
el.style.borderWidth = this.addEditForm.btnSaveBorderWidth;
el.style.borderStyle = this.addEditForm.btnSaveBorderStyle;
el.style.borderColor = this.addEditForm.btnSaveBorderColor;
el.style.borderRadius = this.addEditForm.btnSaveBorderRadius;
el.style.backgroundColor = this.addEditForm.btnSaveBgColor;
});
// 更新取消按钮样式
document.querySelectorAll('.addEdit-block .btn .btn-close').forEach(el=>{
el.style.width = this.addEditForm.btnCancelWidth;
el.style.height = this.addEditForm.btnCancelHeight;
el.style.color = this.addEditForm.btnCancelFontColor;
el.style.fontSize = this.addEditForm.btnCancelFontSize;
el.style.borderWidth = this.addEditForm.btnCancelBorderWidth;
el.style.borderStyle = this.addEditForm.btnCancelBorderStyle;
el.style.borderColor = this.addEditForm.btnCancelBorderColor;
el.style.borderRadius = this.addEditForm.btnCancelBorderRadius;
el.style.backgroundColor = this.addEditForm.btnCancelBgColor;
});
});
},
addEditUploadStyleChange() { // 更新上传组件样式方法
this.$nextTick(()=>{ // 在DOM更新后执行
document.querySelectorAll('.addEdit-block .upload .el-upload-list--picture-card .el-upload-list__item').forEach(el=>{
el.style.width = this.addEditForm.uploadHeight;
el.style.height = this.addEditForm.uploadHeight;
el.style.borderWidth = this.addEditForm.uploadBorderWidth;
el.style.borderStyle = this.addEditForm.uploadBorderStyle;
el.style.borderColor = this.addEditForm.uploadBorderColor;
el.style.borderRadius = this.addEditForm.uploadBorderRadius;
el.style.backgroundColor = this.addEditForm.uploadBgColor;
});
});
},
}
};
</script>
<style lang="scss">
.editor{
height: 500px; <!-- -->
& /deep/ .ql-container { <!-- 编辑器内容区域 -->
height: 310px; <!-- 设置内容区域高度 -->
}
}
.amap-wrapper { <!-- 地图容器 -->
width: 100%; <!-- 宽度为100% -->
height: 500px; <!-- 高度为500px -->
}
.search-box { <!-- 搜索和筛选组件 -->
position: absolute; <!-- 绝对定位 -->
}
.addEdit-block { <!-- 表单容器 -->
margin: -10px; <!-- 外边距 -->
}
.detail-form-content { <!-- 表单内容 -->
padding: 12px; <!-- 内边距 -->
}
.btn .el-button { <!-- 按钮样式 -->
padding: 0; <!-- 无内边距 -->
}
</style>