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,7 +5,7 @@ import { useRoute } from "vue-router"; | ||
| 5 | import { back } from "@/utils/tool"; | 5 | import { back } from "@/utils/tool"; |
| 6 | import { getPropertyNbhds } from "@/api/community/residence"; | 6 | import { getPropertyNbhds } from "@/api/community/residence"; |
| 7 | import { useLoginStore } from "@/pinia/login"; | 7 | import { useLoginStore } from "@/pinia/login"; |
| 8 | -import { validMobile } from "@/utils/validate"; | 8 | +import { validMobile, price } from "@/utils/validate"; |
| 9 | import Photowall from "@/components/Photowall/index.vue"; | 9 | import Photowall from "@/components/Photowall/index.vue"; |
| 10 | import Tinymce from "@/components/Tinymce/index.vue"; | 10 | import Tinymce from "@/components/Tinymce/index.vue"; |
| 11 | import { ElMessageBox } from "element-plus"; | 11 | import { ElMessageBox } from "element-plus"; |
| @@ -67,6 +67,19 @@ const checkPhone = (rules, value, callback) => { | @@ -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 | const rules = reactive({ | 85 | const rules = reactive({ |
| @@ -132,10 +145,11 @@ const rules = reactive({ | @@ -132,10 +145,11 @@ const rules = reactive({ | ||
| 132 | unitPrice: [ | 145 | unitPrice: [ |
| 133 | { | 146 | { |
| 134 | required: true, | 147 | required: true, |
| 135 | - message: "请填写活动单价", | 148 | + message: "请输入活动单价", |
| 136 | trigger: "change", | 149 | trigger: "change", |
| 137 | - type: "number", | ||
| 138 | - min: 0, | 150 | + }, |
| 151 | + { | ||
| 152 | + validator: checkPrice, | ||
| 139 | }, | 153 | }, |
| 140 | ], | 154 | ], |
| 141 | personLimit: [ | 155 | personLimit: [ |
| @@ -212,7 +226,9 @@ const submitForm = ( | @@ -212,7 +226,9 @@ const submitForm = ( | ||
| 212 | * @param {number} type 1发布 0保存 | 226 | * @param {number} type 1发布 0保存 |
| 213 | */ | 227 | */ |
| 214 | const postApi = async (type: number) => { | 228 | const postApi = async (type: number) => { |
| 229 | + // 活动单价传给后台的单位是【分】 | ||
| 215 | form.data.publicityPic = form.publicityPic.map((item) => item.url).join(","); | 230 | form.data.publicityPic = form.publicityPic.map((item) => item.url).join(","); |
| 231 | + form.data.unitPrice = form.data.unitPrice * 100; | ||
| 216 | handworkEdit(form.data) | 232 | handworkEdit(form.data) |
| 217 | .then((res) => { | 233 | .then((res) => { |
| 218 | if (res) { | 234 | if (res) { |
| @@ -278,25 +294,21 @@ onMounted(() => { | @@ -278,25 +294,21 @@ onMounted(() => { | ||
| 278 | if (JSON.stringify(useRoute().query) === "{}") { | 294 | if (JSON.stringify(useRoute().query) === "{}") { |
| 279 | form.dataType = "add"; | 295 | form.dataType = "add"; |
| 280 | } else { | 296 | } else { |
| 281 | - let queryData = JSON.parse(useRoute().query.p) | 297 | + let queryData = JSON.parse(useRoute().query.p); |
| 282 | form.dataType = "edit"; | 298 | form.dataType = "edit"; |
| 283 | - form.data = queryData | 299 | + form.data = queryData; |
| 284 | form.value1 = [queryData.startTime, queryData.endTime]; | 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 | form.communityList = queryData.neighborhoodId | 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 | if (queryData.publicityPic) { | 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,10 +384,7 @@ onMounted(() => { | ||
| 372 | </el-input> | 384 | </el-input> |
| 373 | </el-form-item> | 385 | </el-form-item> |
| 374 | <el-form-item label="活动单价" prop="unitPrice" style="width: 50%"> | 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 | <template #append>元</template> | 388 | <template #append>元</template> |
| 380 | </el-input> | 389 | </el-input> |
| 381 | </el-form-item> | 390 | </el-form-item> |