Commit 9f2bfcd7c18c1823d77227777d7ecce8d7599d94

Authored by 杨泽宇
1 parent 04e509d8

活动价格

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>
... ...