|
@@ -48,6 +48,9 @@
|
48
|
48
|
<img width="100%" :src="dialogImageUrl" alt="">
|
49
|
49
|
</el-dialog>
|
50
|
50
|
</el-form-item>
|
|
51
|
+ <el-form-item label="项目备注">
|
|
52
|
+ <div id="websiteEditorElem" style="height: 400px"></div>
|
|
53
|
+ </el-form-item>
|
51
|
54
|
<el-form-item label="项目地址">
|
52
|
55
|
<el-input v-model="building.address"></el-input>
|
53
|
56
|
</el-form-item>
|
|
@@ -72,11 +75,11 @@
|
72
|
75
|
</el-form-item>
|
73
|
76
|
</el-form>
|
74
|
77
|
</el-tab-pane>
|
75
|
|
- <el-tab-pane label="户型设置" name="apartment" v-if="detail.buildingId">
|
|
78
|
+ <el-tab-pane label="图片设置" name="apartment" v-if="detail.buildingId">
|
76
|
79
|
<div class="system-table-search">
|
77
|
80
|
<div class="flex-h">
|
78
|
81
|
<div class="flex-item flex-h">
|
79
|
|
- <el-button size="mini" type="success" @click='addHx'>新增户型</el-button>
|
|
82
|
+ <el-button size="mini" type="success" @click='addHx'>新增图片库</el-button>
|
80
|
83
|
</div>
|
81
|
84
|
</div>
|
82
|
85
|
</div>
|
|
@@ -85,9 +88,17 @@
|
85
|
88
|
style="width: 100%">
|
86
|
89
|
<el-table-column
|
87
|
90
|
prop="apartmentName"
|
88
|
|
- label="户型名称"
|
|
91
|
+ label="名称"
|
89
|
92
|
>
|
90
|
93
|
</el-table-column>
|
|
94
|
+ <el-table-column
|
|
95
|
+ prop="apartmentType"
|
|
96
|
+ label="类型"
|
|
97
|
+ >
|
|
98
|
+ <template slot-scope="scope">
|
|
99
|
+ <span>{{scope.row.apartmentType == 'apart'?'户型':'相册'}}</span>
|
|
100
|
+ </template>
|
|
101
|
+ </el-table-column>
|
91
|
102
|
<el-table-column
|
92
|
103
|
prop="marketStatus"
|
93
|
104
|
label="销售状态"
|
|
@@ -116,17 +127,23 @@
|
116
|
127
|
</template>
|
117
|
128
|
</el-table-column>
|
118
|
129
|
</el-table>
|
119
|
|
- <el-dialog title="户型信息" :visible.sync="showHx">
|
|
130
|
+ <el-dialog title="图片信息" :visible.sync="showHx">
|
120
|
131
|
<el-form ref="form" :model="aparmentInfo" label-width="160px">
|
121
|
|
- <el-form-item label="户型名称">
|
|
132
|
+ <el-form-item label="名称">
|
122
|
133
|
<el-input v-model="aparmentInfo.apartmentName"></el-input>
|
123
|
134
|
</el-form-item>
|
|
135
|
+ <el-form-item label="类型">
|
|
136
|
+ <el-select v-model="aparmentInfo.apartmentType" placeholder="请选择">
|
|
137
|
+ <el-option label="户型" value="apart"></el-option>
|
|
138
|
+ <el-option label="相册" value="photo"></el-option>
|
|
139
|
+ </el-select>
|
|
140
|
+ </el-form-item>
|
124
|
141
|
<el-form-item label="销售状态">
|
125
|
142
|
<el-select v-model="aparmentInfo.marketStatus" placeholder="请选择">
|
126
|
143
|
<el-option v-for="(type,i) in saleType" :key="i" :label="type.name" :value="type.id"></el-option>
|
127
|
144
|
</el-select>
|
128
|
145
|
</el-form-item>
|
129
|
|
- <el-form-item label="户型图">
|
|
146
|
+ <el-form-item label="图片">
|
130
|
147
|
<el-upload
|
131
|
148
|
:action="upFileUrl"
|
132
|
149
|
name='uploadFiles'
|
|
@@ -162,6 +179,8 @@ import apis from '../../config/api'
|
162
|
179
|
const { mapState: mapBuildingState, mapActions: mapBuildingActions, mapMutations: mapBuildingMutations } = createNamespacedHelpers('building')
|
163
|
180
|
import { mapState } from 'vuex'
|
164
|
181
|
const { mapActions: mapApartmentActions } = createNamespacedHelpers('apartment')
|
|
182
|
+import E from 'wangeditor'
|
|
183
|
+const { mapActions: mapImgActions } = createNamespacedHelpers('img')
|
165
|
184
|
|
166
|
185
|
export default {
|
167
|
186
|
data () {
|
|
@@ -233,6 +252,9 @@ export default {
|
233
|
252
|
'editApartment',
|
234
|
253
|
'deleteApartment'
|
235
|
254
|
]),
|
|
255
|
+ ...mapImgActions([
|
|
256
|
+ 'uploadImg'
|
|
257
|
+ ]),
|
236
|
258
|
getSaleTypeName (id) {
|
237
|
259
|
return ((this.dicts || []).filter(x => x.type === 'saleType' && x.id == id) [0] || {}).name
|
238
|
260
|
},
|
|
@@ -387,11 +409,39 @@ export default {
|
387
|
409
|
})
|
388
|
410
|
}
|
389
|
411
|
},
|
390
|
|
- created () {
|
|
412
|
+ mounted () {
|
|
413
|
+ const _that = this
|
|
414
|
+ const phoneEditor = new E('#websiteEditorElem')
|
|
415
|
+ phoneEditor.customConfig.onchange = function (html) {
|
|
416
|
+ _that.building = {..._that.building, remark: html}
|
|
417
|
+ }
|
|
418
|
+ phoneEditor.customConfig.customUploadImg = function (files, insert) {
|
|
419
|
+ _that.uploadImg({
|
|
420
|
+ uploadFiles: files[0]
|
|
421
|
+ }).then(data => {
|
|
422
|
+ insert(data[0])
|
|
423
|
+ })
|
|
424
|
+ }
|
|
425
|
+ phoneEditor.customConfig.menus = [
|
|
426
|
+ 'head', // 标题
|
|
427
|
+ 'bold', // 粗体
|
|
428
|
+ 'fontSize', // 字号
|
|
429
|
+ 'fontName', // 字体
|
|
430
|
+ 'italic', // 斜体
|
|
431
|
+ 'underline', // 下划线
|
|
432
|
+ 'strikeThrough', // 删除线
|
|
433
|
+ 'foreColor', // 文字颜色
|
|
434
|
+ 'backColor', // 背景颜色
|
|
435
|
+ 'justify', // 对齐方式
|
|
436
|
+ 'image', // 插入图片
|
|
437
|
+ ]
|
|
438
|
+ phoneEditor.create()
|
|
439
|
+
|
391
|
440
|
if ((this.$route.query.id || '') !== '') {
|
392
|
441
|
this.getAparmentList()
|
393
|
442
|
this.getDetail({id: this.$route.query.id}).then(data => {
|
394
|
443
|
this.buildingProperty = data.propertyType.split(',')
|
|
444
|
+ phoneEditor.txt.html(data.remark)
|
395
|
445
|
this.imgList = data.buildingImg.map(x => {
|
396
|
446
|
return {
|
397
|
447
|
name: x.imgId,
|
|
@@ -399,6 +449,8 @@ export default {
|
399
|
449
|
}
|
400
|
450
|
})
|
401
|
451
|
})
|
|
452
|
+ } else {
|
|
453
|
+ phoneEditor.txt.html('')
|
402
|
454
|
}
|
403
|
455
|
}
|
404
|
456
|
}
|