Commit 9f2bfcd7c18c1823d77227777d7ecce8d7599d94
1 parent
04e509d8
活动价格
Showing
1 changed file
with
30 additions
and
21 deletions
src/views/event/handwork/edit.vue
| ... | ... | @@ -5,7 +5,7 @@ import { useRoute } from "vue-router"; |
| 5 | 5 | import { back } from "@/utils/tool"; |
| 6 | 6 | import { getPropertyNbhds } from "@/api/community/residence"; |
| 7 | 7 | import { useLoginStore } from "@/pinia/login"; |
| 8 | -import { validMobile } from "@/utils/validate"; | |
| 8 | +import { validMobile, price } from "@/utils/validate"; | |
| 9 | 9 | import Photowall from "@/components/Photowall/index.vue"; |
| 10 | 10 | import Tinymce from "@/components/Tinymce/index.vue"; |
| 11 | 11 | import { ElMessageBox } from "element-plus"; |
| ... | ... | @@ -67,6 +67,19 @@ const checkPhone = (rules, value, callback) => { |
| 67 | 67 | } |
| 68 | 68 | }; |
| 69 | 69 | /** |
| 70 | + * 单价校验 | |
| 71 | + * @param {object} rules 验证规则 | |
| 72 | + * @param {string} value 待验证数值 | |
| 73 | + * @callback checkPrice~checkCallback | |
| 74 | + */ | |
| 75 | +const checkPrice = (rules, value, callback) => { | |
| 76 | + if (price(value)) { | |
| 77 | + callback(); | |
| 78 | + } else { | |
| 79 | + callback(new Error("请输入正确的数值,小数点后最多两位数字")); | |
| 80 | + } | |
| 81 | +}; | |
| 82 | +/** | |
| 70 | 83 | * 表单验证规则 |
| 71 | 84 | */ |
| 72 | 85 | const rules = reactive({ |
| ... | ... | @@ -132,10 +145,11 @@ const rules = reactive({ |
| 132 | 145 | unitPrice: [ |
| 133 | 146 | { |
| 134 | 147 | required: true, |
| 135 | - message: "请填写活动单价", | |
| 148 | + message: "请输入活动单价", | |
| 136 | 149 | trigger: "change", |
| 137 | - type: "number", | |
| 138 | - min: 0, | |
| 150 | + }, | |
| 151 | + { | |
| 152 | + validator: checkPrice, | |
| 139 | 153 | }, |
| 140 | 154 | ], |
| 141 | 155 | personLimit: [ |
| ... | ... | @@ -212,7 +226,9 @@ const submitForm = ( |
| 212 | 226 | * @param {number} type 1发布 0保存 |
| 213 | 227 | */ |
| 214 | 228 | const postApi = async (type: number) => { |
| 229 | + // 活动单价传给后台的单位是【分】 | |
| 215 | 230 | form.data.publicityPic = form.publicityPic.map((item) => item.url).join(","); |
| 231 | + form.data.unitPrice = form.data.unitPrice * 100; | |
| 216 | 232 | handworkEdit(form.data) |
| 217 | 233 | .then((res) => { |
| 218 | 234 | if (res) { |
| ... | ... | @@ -278,25 +294,21 @@ onMounted(() => { |
| 278 | 294 | if (JSON.stringify(useRoute().query) === "{}") { |
| 279 | 295 | form.dataType = "add"; |
| 280 | 296 | } else { |
| 281 | - let queryData = JSON.parse(useRoute().query.p) | |
| 297 | + let queryData = JSON.parse(useRoute().query.p); | |
| 282 | 298 | form.dataType = "edit"; |
| 283 | - form.data = queryData | |
| 299 | + form.data = queryData; | |
| 284 | 300 | form.value1 = [queryData.startTime, queryData.endTime]; |
| 285 | - form.value2 = [ | |
| 286 | - queryData.signupStartTime, | |
| 287 | - queryData.signupEndTime, | |
| 288 | - ]; | |
| 301 | + form.value2 = [queryData.signupStartTime, queryData.signupEndTime]; | |
| 302 | + form.data.unitPrice = (~~form.data.unitPrice / 100).toFixed(2); | |
| 289 | 303 | form.communityList = queryData.neighborhoodId |
| 290 | - ? queryData.neighborhoodId.split(",") | |
| 291 | - .map((i) => i / 1) | |
| 304 | + ? queryData.neighborhoodId.split(",").map((i) => i / 1) | |
| 292 | 305 | : []; |
| 293 | 306 | if (queryData.publicityPic) { |
| 294 | - queryData.publicityPic.split(",") | |
| 295 | - .map((item) => { | |
| 296 | - form.publicityPic.push({ | |
| 297 | - url: item, | |
| 298 | - }); | |
| 307 | + queryData.publicityPic.split(",").map((item) => { | |
| 308 | + form.publicityPic.push({ | |
| 309 | + url: item, | |
| 299 | 310 | }); |
| 311 | + }); | |
| 300 | 312 | } |
| 301 | 313 | } |
| 302 | 314 | }); |
| ... | ... | @@ -372,10 +384,7 @@ onMounted(() => { |
| 372 | 384 | </el-input> |
| 373 | 385 | </el-form-item> |
| 374 | 386 | <el-form-item label="活动单价" prop="unitPrice" style="width: 50%"> |
| 375 | - <el-input | |
| 376 | - v-model.number="form.data.unitPrice" | |
| 377 | - placeholder="请填写活动单价" | |
| 378 | - > | |
| 387 | + <el-input v-model="form.data.unitPrice" placeholder="请输入活动单价"> | |
| 379 | 388 | <template #append>元</template> |
| 380 | 389 | </el-input> |
| 381 | 390 | </el-form-item> | ... | ... |