123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- <template>
- <div class="propertyEditor">
- <ul class="detailUl">
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 父级
- </span>
- <div class="inputBox" @tap="showPop('父级')">
- <input placeholder="园区、楼盘、楼栋数" disabled class="myIpt" v-model="buildFa">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 区域
- </span>
- <div class="inputBox" @tap="showArea('区域')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.area">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 楼层
- </span>
- <div class="inputBox" @tap="showArea('楼层')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.floor">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 出租单元名称
- </span>
- <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx">
- </li>
- <li class="detailLi">
- <span class="liName">
- 平面图号
- </span>
- <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx">
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 面积(㎡)
- </span>
- <input placeholder="请填写" class="myIpt" value="256" style="padding-right: 30rpx">
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 用途
- </span>
- <div class="inputBox" @tap="showArea('用途')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.usege">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- 物业性质
- </span>
- <div class="inputBox" @tap="showArea('物业性质')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.nature">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 朝向
- </span>
- <div class="inputBox" @tap="showArea('朝向')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.cx">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- <span style="color: red;margin-right: 5rpx">*</span>
- 装修情况
- </span>
- <div class="inputBox" @tap="showArea('装修情况')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.situation">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- 层高
- </span>
- <input placeholder="请填写" class="myIpt" style="padding-right: 30rpx">
- </li>
- <li class="detailLi2" >
- <div class="titleBox" >
- <span class="liName">承重情况</span>
- </div>
- <van-field
- autosize
- type="textarea"
- placeholder="请输入"
- class="myField"
- maxlength="1000"
- show-word-limit
- />
- </li>
- <li class="detailLi2" >
- <div class="titleBox" >
- <span class="liName">用电说明</span>
- </div>
- <van-field
- autosize
- type="textarea"
- placeholder="请输入"
- class="myField"
- maxlength="1000"
- show-word-limit
- />
- </li>
- <li class="detailLi2" >
- <div class="titleBox" >
- <span style="color: red;margin-right: 5rpx">*</span>
- <span class="liName">出租指导价(元/㎡/月)</span>
- </div>
- <van-field
- autosize
- type="textarea"
- placeholder="请输入"
- class="myField"
- />
- </li>
- <li class="detailLi2" >
- <div class="titleBox" >
- <span class="liName">备注</span>
- </div>
- <van-field
- autosize
- type="textarea"
- placeholder="请输入"
- class="myField"
- maxlength="1000"
- show-word-limit
- />
- </li>
- <li class="detailLi2" >
- <div class="titleBox" style="margin-bottom: 24rpx">
- <span class="liName">
- 房型图
- <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传9张)</span>
- </span>
- </div>
- <van-uploader
- :max-count="9"
- @delete="deleteRYXXZP"
- :file-list="fileList"
- @after-read="uploadRYXXZP"
- :show-upload="true"
- />
- </li>
- <li class="detailLi2" >
- <div class="titleBox" style="margin-bottom: 24rpx">
- <span class="liName">
- 室内外环境
- <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传6张)</span>
- </span>
- </div>
- <van-uploader
- :max-count="6"
- @delete="deleteRYXXZP2"
- :file-list="fileList2"
- @after-read="uploadRYXXZP2"
- :show-upload="true"
- />
- </li>
- <li class="detailLi2" style="position:relative;">
- <div class="titleBox" >
- <span class="liName">出租位置</span>
- </div>
- <van-field
- autosize
- type="textarea"
- placeholder="请选择地址"
- class="myField"
- style="padding-right: 120rpx;box-sizing: border-box"
- />
- <div class="locationBox">
- <van-icon name="location" />
- 地图
- </div>
- </li>
- <li class="detailLi">
- <span class="liName">
- 当前可用状态
- </span>
- <div class="inputBox" @tap="showArea('可用状态')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.enable">
- <van-icon name="arrow-down" />
- </div>
- </li>
- <li class="detailLi" style="border-bottom: none">
- <span class="liName">
- 租赁状态
- </span>
- <div class="inputBox" @tap="showArea('租赁状态')">
- <input placeholder="请选择" disabled class="myIpt" v-model="postData.status">
- <van-icon name="arrow-down" />
- </div>
- </li>
- </ul>
- <button class="commitBtn">保存</button>
- <van-popup
- :show="showTree"
- round position="bottom"
- custom-style="height:50%;"
- >
- <van-cascader
- :value="cascaderValue"
- title="请选择所在地区"
- :options="options"
- @close="showTree = false"
- @finish="onFinish"
- :field-names="fieldNames"
- />
- </van-popup>
- <van-popup
- :show="show"
- position="bottom"
- custom-style="height: 50%;"
- >
- <van-picker v-show="popType==='区域'" :columns="areaList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='楼层'" :columns="floorList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='用途'" :columns="usegeList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='物业性质'" :columns="natureList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='朝向'" :columns="cxList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='装修情况'" :columns="situationList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='可用状态'" :columns="enableList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- <van-picker v-show="popType==='租赁状态'" :columns="statusList" show-toolbar @cancel="show=false" @confirm="onConfirm" value-key="label"/>
- </van-popup>
- </div>
- </template>
- <script>
- import {
- getTreeData2,
- saleControllerGetById,
- getByCodes,
- } from "@/js_sdk/http";
- export default {
- name: "propertyEditor",
- data(){
- return{
- dic_key: [
- "MNP_BUILDING_LCQY",
- "MNP_BUILDING_LC",
- "HOUSE_USAGE",
- "PROPERTY_NATURE",
- "MNP_BUILDING_CX",
- "DECORATION_SITUATION",
- "HOUSE_ENABLE",
- "HOUSE_STATUS"
- ],
- fileList: [],
- fileList2: [],
- buildFa:'',
- show:false,
- showTree:false,
- cascaderValue: null,
- fieldNames: {
- text: 'label',
- value: 'value',
- children: 'children',
- },
- options:[
- ],
- areaList:[],
- floorList:[],
- usegeList:[],
- natureList:[],
- enableList:[],
- cxList:[],
- situationList:[],
- statusList:[],
- popType:'',
- postData:{
- area:'',
- floor:'',
- usege:'',
- nature:'',
- cx:'',
- situation:'',
- }
- }
- },
- onLoad(options){
- console.log('id',options.id)
- if (options.id){
- saleControllerGetById(options.id).then(res=>{
- console.log(res)
- })
- }
- this.getByCodes()
- this.getTree()
- },
- methods:{
- getTree(){
- getTreeData2().then(res=>{
- console.log(res.data)
- this.options = res.data
- })
- },
- async getByCodes() {
- let data = await getByCodes(JSON.stringify(this.dic_key));
- this.dic_SelectList = this.$common.handleDicList(data);
- this.areaList = this.dic_SelectList.MNP_BUILDING_LCQY
- this.floorList = this.dic_SelectList.MNP_BUILDING_LC
- this.usegeList = this.dic_SelectList.HOUSE_USAGE
- this.natureList = this.dic_SelectList.PROPERTY_NATURE
- this.cxList = this.dic_SelectList.MNP_BUILDING_CX
- this.situationList = this.dic_SelectList.DECORATION_SITUATION
- this.enableList = this.dic_SelectList.HOUSE_ENABLE
- this.statusList = this.dic_SelectList.HOUSE_STATUS
- },
- showPop(e){
- this.showTree = true
- },
- showArea(e){
- this.popType = e
- this.show = true
- },
- onFinish(e){
- console.log(e)
- const fieldValue = e.detail.selectedOptions
- .map((option) => option.label)
- .join('/');
- this.buildFa = fieldValue
- this.showTree = false
- },
- onConfirm(e){
- console.log(e)
- switch (this.popType) {
- case "区域":
- this.postData.area = e.detail.value.label
- break;
- case "楼层":
- this.postData.floor = e.detail.value.label
- break;
- case "用途":
- this.postData.usege = e.detail.value.label
- break;
- case "物业性质":
- this.postData.nature = e.detail.value.label
- break;
- case "朝向":
- this.postData.cx = e.detail.value.label
- break;
- case "装修情况":
- this.postData.situation = e.detail.value.label
- break;
- case "可用状态":
- this.postData.enable = e.detail.value.label
- break;
- case "租赁状态":
- this.postData.status = e.detail.value.label
- break;
- }
- this.show = false
- },
- deleteRYXXZP(event) {
- this.fileList.splice(event.detail.index, 1);
- this.$forceUpdate();
- },
- deleteRYXXZP2(event) {
- this.fileList.splice(event.detail.index, 1);
- this.$forceUpdate();
- },
- uploadRYXXZP(event) {
- console.log(event)
- let that = this;
- const { file } = event.detail;
- uni.uploadFile({
- url: that.$constant.BASE_URI + "/wx/fileController/upload",
- filePath: file.url,
- name: "file",
- formData: { user: "test" },
- success(res) {
- // 上传完成需要更新 fileList
- let data = JSON.parse(res.data);
- that.fileList.push({
- imgUrl: "/FileController/download/" + data.data[0],
- id: data.data[0],
- url:
- that.$constant.BASE_URI +
- "/FileController/download/" +
- data.data[0],
- isImage: true,
- });
- },
- fail(res) {},
- });
- },
- uploadRYXXZP2(event) {
- console.log(event)
- let that = this;
- const { file } = event.detail;
- uni.uploadFile({
- url: that.$constant.BASE_URI + "/wx/fileController/upload",
- filePath: file.url,
- name: "file",
- formData: { user: "test" },
- success(res) {
- // 上传完成需要更新 fileList
- let data = JSON.parse(res.data);
- that.fileList.push({
- imgUrl: "/FileController/download/" + data.data[0],
- id: data.data[0],
- url:
- that.$constant.BASE_URI +
- "/FileController/download/" +
- data.data[0],
- isImage: true,
- });
- },
- fail(res) {},
- });
- },
- }
- }
- </script>
- <style lang="scss">
- .propertyEditor{
- padding-bottom: 150rpx;
- .detailUl{
- margin-top: 20rpx;
- background: white;
- padding: 24rpx 32rpx;
- .liName{
- font-size: 32rpx;
- color: rgba(51, 51, 51, 1);
- white-space: nowrap;
- .callNumber{
- color: rgba(24, 23, 42, 1);
- font-size: 36rpx;
- font-weight: 600;
- }
- .callName{
- color: rgba(102, 102, 102, 1);
- font-size: 28rpx;
- }
- }
- .phoneIcon{
- width: 64rpx;
- height: 64rpx;
- }
- .detailLi{
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 32rpx 0;
- border-bottom: 2rpx solid #E6E6E6;
- .liInfo{
- display: inline-block;
- text-align: right;
- max-width: 428rpx;
- color: rgba(102, 102, 102, 1);
- font-size: 32rpx;
- line-height: 38rpx;
- overflow: hidden;
- word-wrap: break-word;
- }
- .inputBox{
- display: flex;
- align-items: center;
- }
- .myIpt{
- text-align: right;
- margin-right: 20rpx;
- color: rgba(102, 102, 102, 1);
- }
- }
- .detailLi2{
- display: flex;
- flex-direction: column;
- padding: 32rpx 0;
- border-bottom: 2rpx solid #E6E6E6;
- .detailLi2BoxTop{
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- margin: 12rpx 0;
- .checkItem{
- width: 128rpx;
- height: 64rpx;
- font-size: 28rpx;
- color: #666666;
- display: flex;
- align-items: center;
- justify-content: center;
- background: #F5F7FA;
- border-radius: 8rpx;
- margin: 12rpx 0;
- }
- .checked{
- background: #0365F9;
- color: white;
- }
- }
- .locationBox{
- position: absolute;
- right: 24rpx;
- top: 100rpx;
- }
- .van-cell {
- background: #F5F7FA !important;
- border-radius: 8rpx;
- font-size: 28rpx;
- margin-top: 16rpx;
- }
- }
- }
- .commitBtn{
- width: 654rpx;
- height: 96rpx;
- background: rgba(3, 101, 249, 1);
- margin: 64rpx 48rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 36rpx;
- color: white;
- }
- }
- </style>
|