e18d1bbb
wuxw
开发完成停车场 和停车位功能
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
<el-dialog :title="$t('parkingAreaManage.addTitle')" :visible.sync="visible" width="50%" @close="closeDialog">
<el-form ref="form" :model="addParkingAreaInfo" label-width="150px" label-position="left">
<el-form-item :label="$t('parkingAreaManage.parkingNum')" prop="num"
:rules="[{ required: true, message: $t('parkingAreaManage.numRequired'), trigger: 'blur' }]">
<el-input v-model.trim="addParkingAreaInfo.num" :placeholder="$t('parkingAreaManage.inputParkingNum')" />
</el-form-item>
<el-form-item :label="$t('parkingAreaManage.parkingType')" prop="typeCd"
:rules="[{ required: true, message: $t('parkingAreaManage.typeRequired'), trigger: 'change' }]">
<el-select v-model="addParkingAreaInfo.typeCd" :placeholder="$t('parkingAreaManage.selectParkingType')"
style="width: 100%">
<el-option v-for="item in parkingTypes" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<div v-for="(item, index) in addParkingAreaInfo.attrs" :key="index">
<el-form-item v-if="item.specType === '2233'" :label="item.specName" :prop="`attrs[${index}].value`"
:rules="item.required ? [{ required: true, message: $t('common.required'), trigger: 'blur' }] : []">
<el-input v-model="item.value" :placeholder="item.specHoldplace" />
</el-form-item>
<el-form-item v-if="item.specType === '3344'" :label="item.specName" :prop="`attrs[${index}].value`"
:rules="item.required ? [{ required: true, message: $t('common.required'), trigger: 'change' }] : []">
<el-select v-model="item.value" :placeholder="item.specHoldplace" style="width: 100%">
<el-option v-for="value in item.values" :key="value.value" :label="value.valueName" :value="value.value" />
</el-select>
</el-form-item>
</div>
<el-form-item :label="$t('parkingAreaManage.remark')">
<el-input v-model="addParkingAreaInfo.remark" type="textarea" :rows="3"
:placeholder="$t('parkingAreaManage.remarkPlaceholder')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="saveParkingAreaInfo" :loading="saving">
{{ $t('common.save') }}
</el-button>
</div>
</el-dialog>
</template>
<script>
import { saveParkingArea } from '@/api/car/parkingAreaManageApi'
import { getCommunityId } from '@/api/community/communityApi'
export default {
name: 'AddParkingArea',
data() {
return {
visible: false,
saving: false,
addParkingAreaInfo: {
num: '',
typeCd: '',
remark: '',
attrs: []
},
parkingTypes: [
{ value: '1001', label: this.$t('parkingAreaManage.aboveGround') },
{ value: '2001', label: this.$t('parkingAreaManage.underground') }
]
}
},
methods: {
open() {
this.visible = true
this.resetForm()
this._loadParkingAreaAttrSpec()
},
closeDialog() {
this.$refs.form.resetFields()
},
resetForm() {
this.addParkingAreaInfo = {
num: '',
typeCd: '',
remark: '',
attrs: []
}
},
async saveParkingAreaInfo() {
this.$refs.form.validate(async valid => {
if (!valid) return
try {
this.saving = true
const params = {
...this.addParkingAreaInfo,
communityId: getCommunityId()
}
await saveParkingArea(params)
|
e18d1bbb
wuxw
开发完成停车场 和停车位功能
|
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
this.visible = false
this.$emit('success')
} catch (error) {
console.error('添加停车场失败:', error)
this.$message.error(this.$t('parkingAreaManage.addFailed'))
} finally {
this.saving = false
}
})
},
async _loadParkingAreaAttrSpec() {
try {
// 实际项目中从API获取属性配置
// 这里使用模拟数据
this.addParkingAreaInfo.attrs = [
]
} catch (error) {
console.error('加载停车场属性失败:', error)
}
}
}
}
</script>
|