Commit 9f2bfcd7c18c1823d77227777d7ecce8d7599d94

Authored by 杨泽宇
1 parent 04e509d8

活动价格

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>