b25b036d
wuxw
v1.9 优化日期
|
1
|
<template>
|
72de60dc
wuxw
优化报修完成
|
2
3
4
|
<el-dialog :title="$t('chooseSingleResource.title')" :visible.sync="dialogVisible" width="60%" @close="handleClose">
<el-form :model="form" label-width="120px">
|
4927ce37
wuxw
开发完成报修功能
|
5
|
<el-form-item :label="$t('chooseSingleResource.goodsType')">
|
72de60dc
wuxw
优化报修完成
|
6
7
8
9
|
<el-select v-model="form.rsId" :placeholder="$t('chooseSingleResource.selectGoodsType')" style="width:100%"
@change="handleRsIdChange">
<el-option v-for="item in resourceStoreTypes" :key="item.rstId" :label="item.name" :value="item.rstId">
</el-option>
|
4927ce37
wuxw
开发完成报修功能
|
10
11
12
13
14
|
</el-select>
</el-form-item>
<template v-if="form.isCustom">
<el-form-item :label="$t('chooseSingleResource.goodsName')">
|
72de60dc
wuxw
优化报修完成
|
15
16
17
18
19
20
21
22
|
<el-input v-model="form.customGoodsName" :placeholder="$t('chooseSingleResource.inputGoodsName')">
</el-input>
</el-form-item>
<el-form-item :label="$t('chooseSingleResource.customPrice')" v-if="form.maintenanceType === '1001'">
<el-input-number v-model="form.price" :placeholder="$t('chooseSingleResource.inputPrice')" :min="0"
style="width:100%">
</el-input-number>
|
4927ce37
wuxw
开发完成报修功能
|
23
24
|
</el-form-item>
</template>
|
72de60dc
wuxw
优化报修完成
|
25
|
|
4927ce37
wuxw
开发完成报修功能
|
26
|
<template v-else>
|
72de60dc
wuxw
优化报修完成
|
27
28
29
30
31
|
<el-form-item :label="$t('chooseSingleResource.subCategory')">
<el-select v-model="form.rstId" :placeholder="$t('chooseSingleResource.selectSubCategory')" style="width:100%"
@change="handleRstIdChange">
<el-option v-for="item in sonResourceStoreTypes" :key="item.rstId" :label="item.name" :value="item.rstId">
</el-option>
|
4927ce37
wuxw
开发完成报修功能
|
32
33
34
|
</el-select>
</el-form-item>
|
72de60dc
wuxw
优化报修完成
|
35
36
37
38
39
|
<el-form-item :label="$t('chooseSingleResource.goods')" v-if="form.rstId">
<el-select v-model="form.resId" :placeholder="$t('chooseSingleResource.selectGoods')" style="width:100%"
@change="handleResIdChange">
<el-option v-for="item in resourceStores" :key="item.resId" :label="item.resName" :value="item.resId">
</el-option>
|
4927ce37
wuxw
开发完成报修功能
|
40
41
|
</el-select>
</el-form-item>
|
4927ce37
wuxw
开发完成报修功能
|
42
|
|
72de60dc
wuxw
优化报修完成
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<template v-if="form.resId">
<el-form-item :label="$t('chooseSingleResource.goodsPrice')"
v-if="form.maintenanceType === '1001' && form.outLowPrice === form.outHighPrice">
<el-input-number v-model="form.price" disabled style="width:100%">
</el-input-number>
</el-form-item>
<el-form-item :label="$t('chooseSingleResource.customPrice')"
v-if="form.maintenanceType === '1001' && form.outLowPrice !== form.outHighPrice">
<el-input-number v-model="form.price" :min="form.outLowPrice" :max="form.outHighPrice" style="width:100%">
</el-input-number>
<span>{{ $t('chooseSingleResource.priceRange') }} {{ form.outLowPrice }}-{{ form.outHighPrice }}</span>
</el-form-item>
<el-form-item :label="$t('chooseSingleResource.spec')">
<el-input v-model="form.selectedGoodsInfo.specName" disabled>
</el-input>
</el-form-item>
</template>
|
4927ce37
wuxw
开发完成报修功能
|
62
|
</template>
|
72de60dc
wuxw
优化报修完成
|
63
64
65
66
67
|
<el-form-item :label="$t('chooseSingleResource.quantity')">
<el-input-number v-model="form.useNumber" :min="1" @change="handleQuantityChange">
</el-input-number>
</el-form-item>
|
4927ce37
wuxw
开发完成报修功能
|
68
69
|
</el-form>
|
72de60dc
wuxw
优化报修完成
|
70
71
72
73
74
75
|
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="handleConfirm" :loading="loading">
{{ $t('common.confirm') }}
</el-button>
</span>
|
4927ce37
wuxw
开发完成报修功能
|
76
77
78
79
|
</el-dialog>
</template>
<script>
|
72de60dc
wuxw
优化报修完成
|
80
81
82
|
//import { getDict } from '@/api/community/communityApi'
import { getCommunityId } from '@/api/community/communityApi'
import { listResourceStoreTypes, listUserStorehouses } from '@/api/work/finishRepairApi'
|
4927ce37
wuxw
开发完成报修功能
|
83
84
85
|
export default {
name: 'ChooseSingleResource',
|
4927ce37
wuxw
开发完成报修功能
|
86
87
|
data() {
return {
|
72de60dc
wuxw
优化报修完成
|
88
89
|
dialogVisible: false,
loading: false,
|
4927ce37
wuxw
开发完成报修功能
|
90
91
92
93
|
form: {
maintenanceType: '',
resourceStoreTypes: [],
sonResourceStoreTypes: [],
|
4927ce37
wuxw
开发完成报修功能
|
94
|
rsId: '',
|
72de60dc
wuxw
优化报修完成
|
95
|
rstId: '',
|
4927ce37
wuxw
开发完成报修功能
|
96
97
98
99
100
101
102
103
104
105
106
|
resId: '',
repairId: '',
selectedGoodsInfo: {},
resourceStores: [],
isCustom: false,
customGoodsName: '',
price: '',
outLowPrice: '',
outHighPrice: '',
useNumber: 1,
sign: ''
|
72de60dc
wuxw
优化报修完成
|
107
108
109
110
111
|
},
resourceStoreTypes: [],
sonResourceStoreTypes: [],
resourceStores: [],
communityId: ''
|
4927ce37
wuxw
开发完成报修功能
|
112
113
|
}
},
|
4927ce37
wuxw
开发完成报修功能
|
114
|
methods: {
|
72de60dc
wuxw
优化报修完成
|
115
116
117
118
119
120
|
open(params) {
this.resetForm()
this.communityId = getCommunityId()
this.form.maintenanceType = params.maintenanceType
if (params.sign) {
this.form.sign = params.sign
|
4927ce37
wuxw
开发完成报修功能
|
121
|
}
|
72de60dc
wuxw
优化报修完成
|
122
123
124
125
126
|
if (params.repairId) {
this.form.repairId = params.repairId
}
this.dialogVisible = true
this.loadResourceStoreTypes()
|
4927ce37
wuxw
开发完成报修功能
|
127
|
},
|
72de60dc
wuxw
优化报修完成
|
128
|
async loadResourceStoreTypes() {
|
4927ce37
wuxw
开发完成报修功能
|
129
|
try {
|
72de60dc
wuxw
优化报修完成
|
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
const params = {
page: 1,
row: 100,
communityId: this.communityId,
parentId: '0',
giveType: 1
}
const { data } = await listResourceStoreTypes(params)
this.resourceStoreTypes = data
// 添加自定义选项
this.resourceStoreTypes.push({
rstId: 'custom',
name: this.$t('chooseSingleResource.custom')
})
|
4927ce37
wuxw
开发完成报修功能
|
144
|
} catch (error) {
|
72de60dc
wuxw
优化报修完成
|
145
|
console.error('加载商品类型失败:', error)
|
4927ce37
wuxw
开发完成报修功能
|
146
147
|
}
},
|
72de60dc
wuxw
优化报修完成
|
148
149
150
151
152
153
154
|
async handleRsIdChange(val) {
this.form.rstId = ''
this.sonResourceStoreTypes = []
this.form.resId = ''
this.resourceStores = []
if (val === 'custom') {
|
4927ce37
wuxw
开发完成报修功能
|
155
156
157
|
this.form.isCustom = true
return
}
|
72de60dc
wuxw
优化报修完成
|
158
|
|
4927ce37
wuxw
开发完成报修功能
|
159
160
|
this.form.isCustom = false
try {
|
72de60dc
wuxw
优化报修完成
|
161
162
163
164
165
166
167
168
|
const params = {
page: 1,
row: 100,
parentId: val,
communityId: this.communityId
}
const { data } = await listResourceStoreTypes(params)
this.sonResourceStoreTypes = data
|
4927ce37
wuxw
开发完成报修功能
|
169
|
} catch (error) {
|
72de60dc
wuxw
优化报修完成
|
170
|
console.error('加载二级分类失败:', error)
|
4927ce37
wuxw
开发完成报修功能
|
171
172
|
}
},
|
72de60dc
wuxw
优化报修完成
|
173
174
175
176
|
async handleRstIdChange(val) {
this.form.resId = ''
this.resourceStores = []
|
4927ce37
wuxw
开发完成报修功能
|
177
178
|
try {
const params = {
|
72de60dc
wuxw
优化报修完成
|
179
180
|
page: 1,
row: 100,
|
4927ce37
wuxw
开发完成报修功能
|
181
|
repairId: this.form.repairId,
|
72de60dc
wuxw
优化报修完成
|
182
183
184
185
186
187
188
|
rstId: val,
resId: this.form.resId,
communityId: this.communityId,
chooseType: "repair",
flag: 1,
sign: this.form.sign,
giveType: 1
|
4927ce37
wuxw
开发完成报修功能
|
189
|
}
|
72de60dc
wuxw
优化报修完成
|
190
191
|
const { data } = await listUserStorehouses(params)
this.resourceStores = data
|
4927ce37
wuxw
开发完成报修功能
|
192
|
} catch (error) {
|
72de60dc
wuxw
优化报修完成
|
193
|
console.error('加载商品失败:', error)
|
4927ce37
wuxw
开发完成报修功能
|
194
195
|
}
},
|
72de60dc
wuxw
优化报修完成
|
196
197
198
199
200
201
202
203
204
205
206
|
handleResIdChange(val) {
this.resourceStores.forEach(item => {
if (item.resId === val) {
this.form.selectedGoodsInfo = item
if (item.outLowPrice === item.outHighPrice) {
this.form.price = item.outLowPrice
} else {
this.form.price = ''
}
this.form.outLowPrice = item.outLowPrice
this.form.outHighPrice = item.outHighPrice
|
4927ce37
wuxw
开发完成报修功能
|
207
|
}
|
72de60dc
wuxw
优化报修完成
|
208
209
210
211
212
|
})
},
handleQuantityChange(val) {
if (val < 1) {
this.form.useNumber = 1
|
4927ce37
wuxw
开发完成报修功能
|
213
214
|
}
},
|
72de60dc
wuxw
优化报修完成
|
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
handleClose() {
this.resetForm()
},
resetForm() {
this.form = {
maintenanceType: '',
resourceStoreTypes: [],
sonResourceStoreTypes: [],
rsId: '',
rstId: '',
resId: '',
repairId: '',
selectedGoodsInfo: {},
resourceStores: [],
isCustom: false,
customGoodsName: '',
price: '',
outLowPrice: '',
outHighPrice: '',
useNumber: 1,
sign: ''
|
4927ce37
wuxw
开发完成报修功能
|
236
237
238
239
240
|
}
},
validateForm() {
if (this.form.isCustom) {
if (!this.form.customGoodsName) {
|
72de60dc
wuxw
优化报修完成
|
241
|
this.$message.error(this.$t('chooseSingleResource.validate.goodsNameRequired'))
|
4927ce37
wuxw
开发完成报修功能
|
242
243
244
|
return false
}
if (this.form.maintenanceType === '1001' && !this.form.price) {
|
72de60dc
wuxw
优化报修完成
|
245
|
this.$message.error(this.$t('chooseSingleResource.validate.priceRequired'))
|
4927ce37
wuxw
开发完成报修功能
|
246
247
248
249
|
return false
}
} else {
if (!this.form.rsId) {
|
72de60dc
wuxw
优化报修完成
|
250
|
this.$message.error(this.$t('chooseSingleResource.validate.goodsTypeRequired'))
|
4927ce37
wuxw
开发完成报修功能
|
251
252
253
|
return false
}
if (!this.form.rstId) {
|
72de60dc
wuxw
优化报修完成
|
254
|
this.$message.error(this.$t('chooseSingleResource.validate.subCategoryRequired'))
|
4927ce37
wuxw
开发完成报修功能
|
255
256
257
|
return false
}
if (!this.form.resId) {
|
72de60dc
wuxw
优化报修完成
|
258
259
260
261
262
|
this.$message.error(this.$t('chooseSingleResource.validate.goodsRequired'))
return false
}
if (this.form.maintenanceType === '1001' && !this.form.price) {
this.$message.error(this.$t('chooseSingleResource.validate.priceRequired'))
|
4927ce37
wuxw
开发完成报修功能
|
263
264
265
266
|
return false
}
}
return true
|
72de60dc
wuxw
优化报修完成
|
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
},
handleConfirm() {
if (!this.validateForm()) return
const selectedGoods = {
...this.form.selectedGoodsInfo,
price: this.form.price,
useNumber: this.form.useNumber,
isCustom: this.form.isCustom,
customGoodsName: this.form.customGoodsName
}
if (this.form.isCustom) {
selectedGoods.rstName = this.$t('chooseSingleResource.custom')
}
this.$emit('choose-single-resource', selectedGoods)
this.dialogVisible = false
|
4927ce37
wuxw
开发完成报修功能
|
285
286
287
|
}
}
}
|
72de60dc
wuxw
优化报修完成
|
288
289
290
291
292
293
294
|
</script>
<style scoped>
.el-input-number {
width: 100%;
}
</style>
|