提交
This commit is contained in:
parent
93fb0c1c98
commit
444c6bb486
11
src/assets/img/edit/selectArrow-white.svg
Normal file
11
src/assets/img/edit/selectArrow-white.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<filter x="-50.00%" y="-50.00%" width="200.00%" height="200.00%" filterUnits="objectBoundingBox" id="filter932">
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1.5 0 0 0 0 1.5 0 0 0 0 1.5 0 0 0 1 0 " in="SourceGraphic" />
|
||||
</filter>
|
||||
</defs>
|
||||
<g transform="matrix(1 0 0 1 -98 -102 )">
|
||||
<image preserveAspectRatio="none" style="overflow:visible" width="24" height="24" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACdQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3RL5tQAAAAx0Uk5TACuA/Fws+1dUW1V3HjJy8AAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAABaSURBVDjLY2AYBeQCRlwSyg7YxZnOmGCXCDtzrACrBEcOLi1tZw470FXLmTMgjARMcEnAtGBKTMAhYYnV8mVwDaiAK2fANOCMKG4cGhgYNk/AIYEz+YwC3AAAbGZTGUeLECUAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDYtMDFUMTY6MTU6MTArMDg6MDACKzeuAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA2LTAxVDE2OjE1OjEwKzA4OjAwc3aPEgAAAFF0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fd28zNGtkemFmcS90aWFvZ3VvLXJlZ3VsYXIuc3ZnQkQYtAAAAABJRU5ErkJggg==" x="98px" y="102px" filter="url(#filter932)" />
|
||||
</g>
|
||||
</svg>
|
BIN
src/assets/img/edit/selectArrow.png
Normal file
BIN
src/assets/img/edit/selectArrow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 520 B |
12
src/assets/img/edit/succeed-pop-bj2.svg
Normal file
12
src/assets/img/edit/succeed-pop-bj2.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="460px" height="500px" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<mask fill="white" id="clip1934">
|
||||
<path d="M 0 478.213507625273 L 0 0 C 0 0 96.5238034983727 31.8584503828297 229.909090909091 31.2727272727261 C 354.120260509697 30.727289661274 460 0 460 0 L 460 478.213507625273 C 460 490.413943355121 451.904 500 441.6 500 L 18.4 500 C 8.096 500 0 490.413943355121 0 478.213507625273 Z " fill-rule="evenodd" />
|
||||
</mask>
|
||||
</defs>
|
||||
<g transform="matrix(1 0 0 1 -361 -10634 )">
|
||||
<path d="M 0 478.213507625273 L 0 0 C 0 0 96.5238034983727 31.8584503828297 229.909090909091 31.2727272727261 C 354.120260509697 30.727289661274 460 0 460 0 L 460 478.213507625273 C 460 490.413943355121 451.904 500 441.6 500 L 18.4 500 C 8.096 500 0 490.413943355121 0 478.213507625273 Z " fill-rule="nonzero" fill="#f6f6f6" stroke="none" transform="matrix(1 0 0 1 361 10634 )" />
|
||||
<path d="M 0 478.213507625273 L 0 0 C 0 0 96.5238034983727 31.8584503828297 229.909090909091 31.2727272727261 C 354.120260509697 30.727289661274 460 0 460 0 L 460 478.213507625273 C 460 490.413943355121 451.904 500 441.6 500 L 18.4 500 C 8.096 500 0 490.413943355121 0 478.213507625273 Z " stroke-width="2" stroke="#ebebeb" fill="none" transform="matrix(1 0 0 1 361 10634 )" mask="url(#clip1934)" />
|
||||
</g>
|
||||
</svg>
|
@ -28,7 +28,6 @@ export default {
|
||||
props: ['popState', "intermediary"],
|
||||
|
||||
setup(props) {
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const tabList = {
|
||||
@ -37,37 +36,27 @@ export default {
|
||||
more: "更多说明",
|
||||
};
|
||||
|
||||
const tab = ref("person"); // person intermediary more
|
||||
|
||||
computed(() => {
|
||||
if (props['intermediary'] == 1) tab = "intermediary"
|
||||
else tab = "person"
|
||||
})
|
||||
let tab = ref("person"); // person intermediary more
|
||||
|
||||
if (props['intermediary'] == 1) tab.value = "intermediary"
|
||||
else tab.value = "person"
|
||||
|
||||
const cutTabArray = reactive({});
|
||||
|
||||
|
||||
// 监听 prop 变化
|
||||
watch(() => props.popState, (newValue) => {
|
||||
watch(() => props.popState, newValue => {
|
||||
if (newValue && Object.keys(cutTabArray).length === 0) init();
|
||||
});
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
});
|
||||
|
||||
const init = () => {
|
||||
proxy.$post("/tenement/forum/about").then((res) => {
|
||||
proxy.$post("/tenement/forum/about").then(res => {
|
||||
cutTabArray['person'] = res.data['person']
|
||||
cutTabArray['intermediary'] = res.data['intermediary']
|
||||
cutTabArray['more'] = res.data['more']
|
||||
});
|
||||
};
|
||||
|
||||
const cutTab = (tabvalue) => {
|
||||
tab.value = tabvalue;
|
||||
};
|
||||
const cutTab = tabvalue => tab.value = tabvalue;;
|
||||
|
||||
return {
|
||||
tabList,
|
||||
@ -75,7 +64,6 @@ export default {
|
||||
cutTabArray,
|
||||
init,
|
||||
cutTab,
|
||||
// popState,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
202
src/components/edit/choosingIdentity.vue
Normal file
202
src/components/edit/choosingIdentity.vue
Normal file
@ -0,0 +1,202 @@
|
||||
<template>
|
||||
<div class="pop-mask flexcenter">
|
||||
<div class="pop-box">
|
||||
<div v-if="popType == 'choice'">
|
||||
<img class="close-icon" src="@/assets/img/edit/close-icon.svg" />
|
||||
<div class="pop-header flexcenter">发布房源</div>
|
||||
<div class="please-choose">请选择:</div>
|
||||
<div class="choice-box flexflex flex1">
|
||||
<div v-for="(item, index) in identityList" :key="index">
|
||||
<div v-if="index != identityList.length - 1" class="choice-item" @click="choiceItem(item.key)">
|
||||
<div class="choice-name">{{ item.value }}</div>
|
||||
<div class="choice-explain">{{ item.desc }}</div>
|
||||
<div class="choice-arrows"></div>
|
||||
</div>
|
||||
<div v-else class="choice-long-item flexacenter" @click="choiceItem(item.key)">
|
||||
<div class="choice-long-left">
|
||||
<div class="choice-name">{{ item.value }}</div>
|
||||
<div class="choice-explain">{{ item.desc }}</div>
|
||||
</div>
|
||||
<div class="choice-arrows"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'GterFangChoosingIdentity',
|
||||
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
choiceTypeState: true,
|
||||
popType: "choice", //
|
||||
identityList: [{
|
||||
desc: "出租自有物业",
|
||||
key: 3,
|
||||
value: "我是房东",
|
||||
}, {
|
||||
desc: "持有房产代理牌照",
|
||||
key: 1,
|
||||
value: "我是中介",
|
||||
}, {
|
||||
desc: "我已租房,需要招室友",
|
||||
key: 4,
|
||||
value: "有房招室友",
|
||||
}, {
|
||||
desc: "二房东、物业租赁公司等",
|
||||
key: 5,
|
||||
value: "其他",
|
||||
}, {
|
||||
desc: "发布找房源的需求",
|
||||
key: 6,
|
||||
value: "求房源",
|
||||
}]
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.pop-mask {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: rgba(0, 0, 0, 0.117647058823529);
|
||||
}
|
||||
.pop-box {
|
||||
// position: fixed;
|
||||
// top: 50%;
|
||||
// left: 50%;
|
||||
// transform: translate(-50%, -50%);
|
||||
position: relative;
|
||||
z-index: 1111;
|
||||
box-sizing: border-box;
|
||||
border-radius: 16px;
|
||||
padding-top: 48px;
|
||||
background-color: #ffffff;
|
||||
width: 520px;
|
||||
-moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.117647058823529);
|
||||
-webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.117647058823529);
|
||||
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.117647058823529);
|
||||
}
|
||||
|
||||
.pop-header {
|
||||
font-size: 24px;
|
||||
font-weight: 650;
|
||||
color: #000000;
|
||||
margin-bottom: 35px;
|
||||
}
|
||||
|
||||
.please-choose {
|
||||
color: #555555;
|
||||
font-size: 14px;
|
||||
margin-bottom: 24px;
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.choice-box {
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
padding: 0 35px 49px;
|
||||
|
||||
.choice-item,
|
||||
.choice-long-item {
|
||||
background-color: #f6f6f6;
|
||||
height: 160px;
|
||||
width: 220px;
|
||||
border-radius: 16px;
|
||||
margin-bottom: 10px;
|
||||
box-sizing: border-box;
|
||||
padding-top: 18px;
|
||||
|
||||
.choice-name {
|
||||
font-weight: 650;
|
||||
font-size: 18px;
|
||||
color: #000000;
|
||||
position: relative;
|
||||
padding-left: 34px;
|
||||
text-align: left;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 16px;
|
||||
transform: translateY(-50%);
|
||||
background-color: #50e3c2;
|
||||
width: 6px;
|
||||
height: 16px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
background-color: rgb(242, 242, 242);
|
||||
|
||||
.choice-arrows {
|
||||
background-color: #000;
|
||||
background-image: url('@/assets/img/edit/selectArrow-white.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.choice-long-item {
|
||||
width: 450px;
|
||||
justify-content: space-between;
|
||||
height: 100px;
|
||||
padding-right: 20px;
|
||||
|
||||
.choice-arrows {
|
||||
margin: 0;
|
||||
margin-top: -18px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.choice-explain {
|
||||
color: #555555;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 21px;
|
||||
padding-left: 34px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.choice-arrows {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background-color: #fddf6d;
|
||||
border-radius: 50%;
|
||||
margin: 0 auto;
|
||||
background-image: url('@/assets/img/edit/selectArrow.png');
|
||||
background-size: 24px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
|
||||
.close-icon {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 14px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
@ -26,7 +26,6 @@ axios.interceptors.request.use( //响应拦截
|
||||
// 响应拦截器
|
||||
axios.interceptors.response.use(
|
||||
response => {
|
||||
console.log("response", response);
|
||||
if (response.status === 200) return Promise.resolve(response); //进行中
|
||||
else return Promise.reject(response); //失败
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<!-- <div id="container"></div> -->
|
||||
<map-component v-if="mapComponentState" :info="info" @choosingLocation="choosingLocation" />
|
||||
|
||||
<choosing-identity v-if="false"></choosing-identity>
|
||||
<div class="content-box flexflex">
|
||||
<div class="user-box shadow radius16 flexflex">
|
||||
<img class="user-img" :src="user.avatar">
|
||||
@ -15,13 +15,13 @@
|
||||
<img v-if="false" class="housing-info-certifying" src="@/assets/img/edit/certifying-agent.png">
|
||||
<div v-else class="housing-info-identity flexcenter">{{ intermediaryObj[intermediary] }}</div>
|
||||
</div>
|
||||
<div class="housing-info-list" v-if="status != 0 && type != 'plus'">
|
||||
<div class="housing-info-list" v-if="type != 'plus'">
|
||||
<div class="housing-info-item flexacenter" v-if="id">
|
||||
<div class="housing-info-head flexcenter">房源ID</div>
|
||||
<div class="longString"></div>
|
||||
<div class="housing-info-trail">{{ id }}</div>
|
||||
</div>
|
||||
<div class="housing-info-item flexacenter" v-if="status">
|
||||
<div class="housing-info-item flexacenter">
|
||||
<div class="housing-info-head flexcenter">状态</div>
|
||||
<div class="longString"></div>
|
||||
<div class="housing-info-trail">{{ stateObj[status] }}</div>
|
||||
@ -43,7 +43,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 房源已认证 -->
|
||||
<div class="listing-verified flexacenter" v-if="false">
|
||||
<div class="listing-verified flexacenter" v-if="verified == 1">
|
||||
<img class="listing-verified-tick" src="@/assets/img/edit/tick.svg" />
|
||||
房源已认证
|
||||
</div>
|
||||
@ -66,12 +66,12 @@
|
||||
<div class="asterisk" v-if="item.required === 1">*</div>
|
||||
</div>
|
||||
<!--
|
||||
方式一 是 两个选择框的 点击弹出 弹窗
|
||||
方式二 是 两个选择框 但是第一个是居中 并且没有图标 现在只有 起租日期
|
||||
方式三 是 三列选择框 多个 本页面操作
|
||||
方式四 是 一条长长的款 点击弹窗
|
||||
方式五 是 单行输入框 和 单位
|
||||
-->
|
||||
方式一 是 两个选择框的 点击弹出 弹窗
|
||||
方式二 是 两个选择框 但是第一个是居中 并且没有图标 现在只有 起租日期
|
||||
方式三 是 三列选择框 多个 本页面操作
|
||||
方式四 是 一条长长的款 点击弹窗
|
||||
方式五 是 单行输入框 和 单位
|
||||
-->
|
||||
<!-- 出租方式 -->
|
||||
<div v-if="item.field === 'type'" class="form-option modeOne flexacenter">
|
||||
<div ref="type" class="modeOne-item flexacenter" :class="{ 'pitch': typeValue == index }"
|
||||
@ -167,17 +167,19 @@
|
||||
<div class="modeSeven-unlimited flexacenter">
|
||||
<div class="modeSeven-unlimited-item flexacenter"
|
||||
@click="setValueMultiple('property', [], true)">
|
||||
<img v-if="info.property.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
<img v-show="info.property.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
src="@/assets/img/edit/circle-pitch.svg" alt="">
|
||||
<div v-else class="modeSeven-unlimited-circle"></div>
|
||||
<div v-show="info.property.length != 0" class="modeSeven-unlimited-circle"></div>
|
||||
不限
|
||||
</div>
|
||||
</div>
|
||||
<div class="modeSeven-option-box flexflex">
|
||||
<div class="modeSeven-option-item flexacenter" v-for="(item, index) in item.choices"
|
||||
:key="index" @click="setValueMultiple('property', item.key)">
|
||||
<img class="modeSeven-option-icon"
|
||||
:src="info.property.includes(item.key) ? require('@/assets/img/edit/diamond-selected.svg') : require('@/assets/img/edit/diamond-unselected.svg')" />
|
||||
<img v-show="info.property.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-selected.svg" />
|
||||
<img v-show="!info.property.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-unselected.svg" />
|
||||
{{ item.value }}
|
||||
</div>
|
||||
</div>
|
||||
@ -202,17 +204,19 @@
|
||||
class="form-option modeSeven flexflex">
|
||||
<div class="modeSeven-unlimited flexacenter">
|
||||
<div class="modeSeven-unlimited-item flexacenter" @click="setValueMultiple('floor', [], true)">
|
||||
<img v-if="info.floor.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
<img v-show="info.floor.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
src="@/assets/img/edit/circle-pitch.svg" alt="">
|
||||
<div v-else class="modeSeven-unlimited-circle"></div>
|
||||
<div v-show="info.floor.length != 0" class="modeSeven-unlimited-circle"></div>
|
||||
不限
|
||||
</div>
|
||||
</div>
|
||||
<div class="modeSeven-option-box flexflex">
|
||||
<div class="modeSeven-option-item flexacenter" v-for="(item, index) in item.choices"
|
||||
:key="index" @click="setValueMultiple('floor', item.key)">
|
||||
<img class="modeSeven-option-icon"
|
||||
:src="info.floor.includes(item.key) ? require('@/assets/img/edit/diamond-selected.svg') : require('@/assets/img/edit/diamond-unselected.svg')" />
|
||||
<img v-show="info.floor.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-selected.svg" />
|
||||
<img v-show="!info.floor.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-unselected.svg" />
|
||||
{{ item.value }}
|
||||
</div>
|
||||
</div>
|
||||
@ -237,17 +241,19 @@
|
||||
<div class="modeSeven-unlimited flexacenter">
|
||||
<div class="modeSeven-unlimited-item flexacenter"
|
||||
@click="setValueMultiple('sunshinearea', [], true)">
|
||||
<img v-if="info.sunshinearea.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
<img v-show="info.sunshinearea.length == 0" class="modeSeven-unlimited-circle-pitch"
|
||||
src="@/assets/img/edit/circle-pitch.svg" alt="">
|
||||
<div v-else class="modeSeven-unlimited-circle"></div>
|
||||
<div v-show="info.sunshinearea.length != 0" class="modeSeven-unlimited-circle"></div>
|
||||
不限
|
||||
</div>
|
||||
</div>
|
||||
<div class="modeSeven-option-box flexflex">
|
||||
<div class="modeSeven-option-item flexacenter" v-for="(item, i) in item.choices" :key="i"
|
||||
@click="setValueMultiple('sunshinearea', item.key)">
|
||||
<img class="modeSeven-option-icon"
|
||||
:src="info.sunshinearea.includes(item.key) ? require('@/assets/img/edit/diamond-selected.svg') : require('@/assets/img/edit/diamond-unselected.svg')" />
|
||||
<img v-show="info.sunshinearea.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-selected.svg" />
|
||||
<img v-show="!info.sunshinearea.includes(item.key)" class="modeSeven-option-icon"
|
||||
src="@/assets/img/edit/diamond-unselected.svg" />
|
||||
{{ item.value }}
|
||||
</div>
|
||||
</div>
|
||||
@ -318,7 +324,8 @@
|
||||
</div>
|
||||
<div class="modeOne-text flexacenter" style="color: #AAAAAA;" v-else>请选择</div>
|
||||
<img class="arrows-icon" src="@/assets/img/edit/arrows.svg" />
|
||||
<img class="arrows-icon arrows-disabled-icon" src="@/assets/img/edit/disabled-icon.svg" />
|
||||
<img class="arrows-icon arrows-disabled-icon" style="transform: rotate(0);"
|
||||
src="@/assets/img/edit/disabled-icon.svg" />
|
||||
<img class="arrows-icon-pitch" src="@/assets/img/edit/blue-arrow.svg" />
|
||||
<!-- 弹窗 -->
|
||||
<div class="pop area-pop-box radius16" style="position: absolute;top: 58px;height: 614px;"
|
||||
@ -349,11 +356,17 @@
|
||||
<!-- 地址 -->
|
||||
<div class="form-option modeOne flexacenter"
|
||||
v-if="intermediary != 6 && (item.field == 'address' && info['location'])">
|
||||
<div class="modeOne-item flexacenter" style="width: 640px;border-color: rgba(170, 170, 170, 1);"
|
||||
@click="handleLocationData">
|
||||
<div class="modeOne-text flexacenter" style="color: #AAAAAA;">{{ info['address'] ? info['address'] : "请选择"}}</div>
|
||||
<img class="arrows-icon" src="@/assets/img/edit/arrows.svg" />
|
||||
<img class="arrows-icon-pitch" src="@/assets/img/edit/blue-arrow.svg" />
|
||||
<div class="modeOne-item flexacenter"
|
||||
:class="{ 'pitch': info['address'], 'disabled': verified == 1 && info['address'] }"
|
||||
style="width: 640px;border-color: rgba(170, 170, 170, 1);"
|
||||
@click="verified == 1 && info['address'] ? '' : handleLocationData()">
|
||||
<div class="modeOne-text flexacenter" v-if="info['address']">{{ info['address'] }}</div>
|
||||
<div class="modeOne-text flexacenter" v-else style="color: #AAAAAA;">请选择</div>
|
||||
<img class="arrows-icon" src="@/assets/img/edit/arrows.svg" style="transform: rotate(0);" />
|
||||
<img class="arrows-icon-pitch" src="@/assets/img/edit/blue-arrow.svg"
|
||||
style="transform: rotate(0);" />
|
||||
<img class="arrows-icon arrows-disabled-icon" style="transform: rotate(0);"
|
||||
src="@/assets/img/edit/disabled-icon.svg" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -380,15 +393,14 @@
|
||||
</div>
|
||||
|
||||
<!-- 所属小区 -->
|
||||
<div class="form-item" v-if="info['address']">
|
||||
<div class="form-item" v-if="info['address'] && verified == 0">
|
||||
<div class="form-title flexacenter">所属小区
|
||||
</div>
|
||||
<div class="form-option modeOne flexacenter">
|
||||
<div v-if="info['communityid'] != null" ref="communityname" class="modeOne-item flexacenter"
|
||||
<div v-if="info['communityid'] !== 0" ref="communityname" class="modeOne-item flexacenter"
|
||||
:class="{ 'pitch': info['communityname'], 'disabled': verified == 1 }"
|
||||
style="width: 640px;border-color: rgb(170, 170, 170);" @click="handleResidentialArea()">
|
||||
<div class="modeOne-text flexacenter" v-if="info['communityname']">
|
||||
{{ info.communityname }}
|
||||
<div class="modeOne-text flexacenter" v-if="info['communityname']">{{ info.communityname }}
|
||||
</div>
|
||||
<div class="modeOne-text flexacenter" style="color: #AAAAAA;" v-else>请选择</div>
|
||||
<img class="arrows-icon" src="@/assets/img/edit/arrows.svg" />
|
||||
@ -404,7 +416,8 @@
|
||||
<div class="residential-item flexacenter" v-for="item in communityList" :key="item.id"
|
||||
@click="clickResidentialArea(item.id, item.name)">
|
||||
<div class="residential-dot"></div>
|
||||
<div class="residential-text flex1 flexacenter" :class="{ 'pitchpitch': item.id == info['communityid'] }">{{ item.name }}</div>
|
||||
<div class="residential-text flex1 flexacenter"
|
||||
:class="{ 'pitchpitch': item.id == info['communityid'] }">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -604,7 +617,7 @@
|
||||
|
||||
<!-- 如何获取微信二维码 -->
|
||||
<div class="flexcenter pop-mask" @click="howBoxState = false" v-if="howBoxState">
|
||||
<div class="pop how-box shadow radius16">
|
||||
<div class="pop how-box shadow radius16" @click.stop="">
|
||||
<img class="pop-close" @click.stop="howBoxState = false" src="@/assets/img/edit/close-icon.svg" />
|
||||
<div class="how-title">如何获取微信二维码?</div>
|
||||
<img class="how-img" src="@/assets/img/edit/how-img.svg" />
|
||||
@ -613,9 +626,9 @@
|
||||
<!-- 发布成功 -->
|
||||
<div class="flexcenter pop-mask" @click="succeedPopState = 0" v-if="succeedPopState == 1">
|
||||
<div class="pop succeed-box shadow radius16 flexflex"
|
||||
style="background-image: url(@/assets/img/edit/succeed-pop-bj1.svg);">
|
||||
:style="{ backgroundImage: `url(${require('@/assets/img/edit/succeed-pop-bj2.svg')})` }" @click.stop="">
|
||||
<img class="pop-close" src="@/assets/img/edit/close-icon.svg" />
|
||||
<div class="succeed-title flexacenter" style="margin-bottom: 105px;">
|
||||
<div class="succeed-title flexacenter" style="margin-bottom: 95px;">
|
||||
<img class="succeed-icon" src="@/assets/img/edit/successfully-ticked.png" />发布成功
|
||||
</div>
|
||||
|
||||
@ -637,7 +650,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexcenter pop-mask" @click="succeedPopState = 0" v-if="succeedPopState == 2">
|
||||
<div class="pop succeed-box shadow radius16 flexflex" style="padding-bottom: 99px;">
|
||||
<div class="pop succeed-box shadow radius16 flexflex" style="padding-bottom: 99px;" @click.stop="">
|
||||
<img class="pop-close" src="@/assets/img/edit/close-icon.svg" />
|
||||
<div class="succeed-title flexacenter">
|
||||
<img class="succeed-icon" src="@/assets/img/edit/successfully-ticked.png" />发布成功
|
||||
@ -653,8 +666,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexcenter pop-mask" @click="succeedPopState = 0" v-if="succeedPopState == 3">
|
||||
<div class="pop succeed-box shadow radius16 flexflex"
|
||||
style="padding-bottom: 58px; background-image: url(@/assets/img/edit/succeed-pop-bj1.svg);">
|
||||
<div class="pop succeed-box shadow radius16 flexflex" style="padding-bottom: 58px;"
|
||||
:style="{ backgroundImage: `url(${require('@/assets/img/edit/succeed-pop-bj1.svg')})` }" @click.stop="">
|
||||
|
||||
|
||||
<img class="pop-close" src="@/assets/img/edit/close-icon.svg" />
|
||||
<div class="succeed-title flexacenter">
|
||||
<img class="succeed-icon" src="@/assets/img/edit/successfully-ticked.png" />发布成功
|
||||
@ -671,7 +686,7 @@
|
||||
<div class="personage-hint-item">一键切换房源上架/下架状态</div>
|
||||
<div class="personage-hint-item">做房源认证,不占用普通房源发布数</div>
|
||||
</div>
|
||||
<a class="succeed-examine" :href="skipUrl">查看刚刚发布的求房源</a>
|
||||
<a class="succeed-examine" :href="skipUrl">查看刚刚发布的{{ intermediary == 6 ? '求' : '' }}房源</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -696,10 +711,9 @@
|
||||
|
||||
import aboutPop from '@/components/edit/about-pop.vue'
|
||||
import mapComponent from '@/components/edit/map.vue'
|
||||
import choosingIdentity from '@/components/edit/choosingIdentity.vue'
|
||||
|
||||
export default {
|
||||
setup() {
|
||||
},
|
||||
name: 'ZufangEdit',
|
||||
data() {
|
||||
return {
|
||||
@ -729,7 +743,7 @@ export default {
|
||||
uniqid: "",
|
||||
token: "",
|
||||
status: 0, // 发布 状态
|
||||
intermediary: 3,
|
||||
intermediary: 1,
|
||||
type: "", // 编辑类型
|
||||
locationData: [],
|
||||
locationValue: 1,
|
||||
@ -763,7 +777,6 @@ export default {
|
||||
acreage_min: null,
|
||||
acreage_max: null,
|
||||
|
||||
|
||||
targetAreaState: false, // 目标区域弹窗的状态
|
||||
howBoxState: false, // 如何获取微信二维码弹窗状态
|
||||
|
||||
@ -834,12 +847,14 @@ export default {
|
||||
const urlParams = new URLSearchParams(queryString);
|
||||
this.uniqid = urlParams.get('uniqid');
|
||||
this.token = urlParams.get('token');
|
||||
this.verified = urlParams.get('verified') || 0;
|
||||
|
||||
this.init();
|
||||
},
|
||||
components: {
|
||||
aboutPop,
|
||||
mapComponent
|
||||
mapComponent,
|
||||
choosingIdentity,
|
||||
},
|
||||
methods: {
|
||||
|
||||
@ -851,6 +866,13 @@ export default {
|
||||
return require(url)
|
||||
},
|
||||
init() {
|
||||
this.loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
this.$post('/tenement/forum', {
|
||||
intermediary: this.intermediary,
|
||||
token: this.token,
|
||||
@ -916,6 +938,8 @@ export default {
|
||||
// communityid: ""
|
||||
// communityname: ""
|
||||
|
||||
if (info['type']) this.typeValue = info['type'] >>> 0
|
||||
|
||||
if (!info['leasetime']) info['leasetime'] = null
|
||||
|
||||
let intermediary = data.intermediary
|
||||
@ -934,7 +958,13 @@ export default {
|
||||
if (info["rentalduration"]) info['rentalduration'] = Number(info['rentalduration'])
|
||||
|
||||
let arr = ["property", "floor", "sunshinearea"]
|
||||
|
||||
arr.forEach(element => {
|
||||
|
||||
if (info[element] && info[element].length == 1 && info[element][0] == 0) {
|
||||
info[element] = []
|
||||
}
|
||||
|
||||
if (info[element] && info[element].length != 0) {
|
||||
info[element].forEach((ele, i) => {
|
||||
info[element][i] = Number(ele)
|
||||
@ -982,13 +1012,14 @@ export default {
|
||||
this.offshelftime = data.offshelftime
|
||||
this.updatetime = data.updatetime
|
||||
|
||||
}).finally(() => {
|
||||
this.loading.close()
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 处理出租方式
|
||||
handleType(key, value) {
|
||||
// this.typePopState = !this.typePopState
|
||||
if (key >>> 0 == key) {
|
||||
this.typeValue = key
|
||||
this.info['type'] = null
|
||||
@ -1178,7 +1209,17 @@ export default {
|
||||
|
||||
// 提交
|
||||
submit(status = 0) {
|
||||
// /tenement/forum/submit
|
||||
let info = { ...this.info }
|
||||
|
||||
if (info['images'] && info['images'].length > 1 && !info['aid']) {
|
||||
this.$message.error("请选择封面");
|
||||
return
|
||||
}
|
||||
|
||||
if (this.acreage_min) info['acreage'] = [this.acreage_min, this.acreage_max]
|
||||
|
||||
|
||||
|
||||
|
||||
if (this.submitState) return
|
||||
this.submitState = true
|
||||
@ -1190,7 +1231,6 @@ export default {
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
let info = { ...this.info }
|
||||
|
||||
let intermediary = this.intermediary
|
||||
|
||||
@ -1214,7 +1254,7 @@ export default {
|
||||
status,
|
||||
}).then(res => {
|
||||
if (res.code != 200) {
|
||||
let data = res.data
|
||||
let data = res.data || []
|
||||
let rule = data['rule'] || 0
|
||||
if (rule == 3) {
|
||||
this.failPopState = true
|
||||
@ -1226,35 +1266,36 @@ export default {
|
||||
let targetElement = this.$refs[data.field]
|
||||
if (!targetElement) return
|
||||
|
||||
console.log("targetElement", this.$refs[data.field]);
|
||||
if (Array.isArray(targetElement)) {
|
||||
targetElement.forEach(element => {
|
||||
console.log("element", element);
|
||||
element.style.borderColor = "rgba(249, 93, 93, 1)";
|
||||
})
|
||||
} else targetElement.style.borderColor = "rgba(249, 93, 93, 1)";
|
||||
|
||||
// targetElement.style.borderColor = "rgba(249, 93, 93, 1)";
|
||||
|
||||
|
||||
this.$watch(`info.${data.field}`, (newVal, oldVal) => {
|
||||
if (newVal != null && newVal != undefined) {
|
||||
if (Array.isArray(targetElement)) {
|
||||
targetElement.forEach(element => {
|
||||
console.log("element", element);
|
||||
element.style.borderColor = "#aaaaaa";
|
||||
})
|
||||
} else targetElement.style.borderColor = "#aaaaaa";
|
||||
// targetElement.style.borderColor = "#aaaaaa";
|
||||
}
|
||||
})
|
||||
|
||||
// 设置滚动距离
|
||||
const top = targetElement.offsetTop - 150 || 300;
|
||||
if (Array.isArray(targetElement)) targetElement[0].offsetTop - 150 || 300;
|
||||
else targetElement.offsetTop - 150 || 300;
|
||||
let top = 0
|
||||
if (Array.isArray(targetElement)) top = targetElement[0].getBoundingClientRect().top + window.pageYOffset;
|
||||
else top = targetElement.getBoundingClientRect().top + window.pageYOffsetp;
|
||||
|
||||
document.body.scrollTop = document.documentElement.scrollTop = top;
|
||||
if (top) top -= 150
|
||||
else top = 300
|
||||
|
||||
|
||||
// document.body.scrollTop = document.documentElement.scrollTop = top;
|
||||
window.scrollTo({
|
||||
top,
|
||||
behavior: "smooth"
|
||||
})
|
||||
|
||||
return
|
||||
} else {
|
||||
@ -1337,12 +1378,6 @@ export default {
|
||||
|
||||
// 点击选择地址弹窗 处理经纬度
|
||||
handleLocationData() {
|
||||
|
||||
let info = this.info
|
||||
console.log(info);
|
||||
// console.log(info['location'], info['latitude'], info['longitude']);
|
||||
|
||||
|
||||
this.mapComponentState = true
|
||||
},
|
||||
|
||||
@ -1388,7 +1423,7 @@ export default {
|
||||
let info = this.info
|
||||
|
||||
if (!id) {
|
||||
info['communityid'] = null
|
||||
info['communityid'] = 0
|
||||
info['communityname'] = null
|
||||
} else {
|
||||
info['communityid'] = id
|
||||
@ -1413,8 +1448,9 @@ export default {
|
||||
<style lang="less" scoped>
|
||||
.content-box {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto 50px;
|
||||
margin: -36px auto 50px;
|
||||
align-items: flex-start;
|
||||
position: relative;
|
||||
|
||||
.user-box {
|
||||
flex-direction: column;
|
||||
@ -1578,9 +1614,10 @@ export default {
|
||||
color: #000;
|
||||
font-size: 20px;
|
||||
font-weight: 650;
|
||||
padding-top: 36px;
|
||||
padding-left: 47px;
|
||||
padding-bottom: 20px;
|
||||
// padding-top: 36px;
|
||||
// padding-left: 47px;
|
||||
// padding-bottom: 25px;
|
||||
padding: 36px 47px 25px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
@ -1704,6 +1741,7 @@ export default {
|
||||
color: #AAAAAA !important;
|
||||
border-color: rgba(170, 170, 170, 1) !important;
|
||||
background-color: rgba(246, 246, 246, 1) !important;
|
||||
cursor: no-drop;
|
||||
|
||||
.form-arrows {
|
||||
display: none;
|
||||
@ -1796,6 +1834,7 @@ export default {
|
||||
}
|
||||
|
||||
&.noChoice {
|
||||
cursor: no-drop;
|
||||
color: #d7d7d7;
|
||||
border: 1px solid rgba(235, 235, 235, 1);
|
||||
}
|
||||
@ -2095,7 +2134,7 @@ export default {
|
||||
-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
||||
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
||||
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
||||
z-index: 1;
|
||||
z-index: 101;
|
||||
padding: 10px 30px;
|
||||
overflow: auto;
|
||||
|
||||
@ -2464,6 +2503,7 @@ export default {
|
||||
}
|
||||
|
||||
&.how-box {
|
||||
position: relative;
|
||||
padding: 40px 45px 40px;
|
||||
|
||||
.how-title {
|
||||
@ -2500,7 +2540,8 @@ export default {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
margin: 0 auto 93px;
|
||||
// margin: 0 auto 93px;
|
||||
margin: 0 auto 110px;
|
||||
color: #333;
|
||||
font-weight: 650;
|
||||
font-size: 24px;
|
||||
@ -2540,6 +2581,7 @@ export default {
|
||||
font-size: 14px;
|
||||
|
||||
.personage-hint-item {
|
||||
text-align: center;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
margin-bottom: 11px;
|
||||
@ -2687,7 +2729,7 @@ export default {
|
||||
}
|
||||
|
||||
.area-box {
|
||||
// height: calc(100% - 98px);
|
||||
height: calc(100% - 98px);
|
||||
|
||||
.area-left {
|
||||
// padding-top: 16px;
|
||||
|
Loading…
x
Reference in New Issue
Block a user