Browse Source

加商品金额验证

1
mo 2 năm trước cách đây
mục cha
commit
8ead564062

+ 1 - 1
config/index.js

@@ -9,7 +9,7 @@ module.exports = {
 
     // Paths
     assetsSubDirectory: 'static',
-    assetsPublicPath: './',
+    assetsPublicPath: '/',
     proxyTable: {
       '/api-mall-admin': {
         target: proxyUrl,

+ 19 - 44
src/views/oms/order/index.vue

@@ -22,12 +22,7 @@
         </el-button>
       </div>
       <div style="margin-top: 15px">
-        <el-form
-          :inline="true"
-          :model="listQuery"
-          size="small"
-          label-width="140px"
-        >
+        <el-form :inline="true" :model="listQuery" size="small" label-width="140px">
           <el-form-item label="输入搜索:">
             <el-input
               v-model="listQuery.orderSn"
@@ -116,11 +111,7 @@
         v-loading="listLoading"
         border
       >
-        <el-table-column
-          type="selection"
-          width="60"
-          align="center"
-        ></el-table-column>
+        <el-table-column type="selection" width="60" align="center"></el-table-column>
         <el-table-column label="编号" width="80" align="center">
           <template slot-scope="scope">{{ scope.row.id }}</template>
         </el-table-column>
@@ -136,6 +127,7 @@
           <template slot-scope="scope">
             <p v-if="scope.row.userType == 'STUDENT'">学生</p>
             <p v-else-if="scope.row.userType == 'TEACHER'">老师</p>
+            <p v-else-if="scope.row.userType == 'COOLESHOW_EDU'">课堂乐器</p>
             <p v-else-if="scope.row.userType == 'JMEDU'">管乐团</p>
             <p v-else>--</p>
           </template>
@@ -153,9 +145,7 @@
           <template slot-scope="scope">¥{{ scope.row.totalAmount }}</template>
         </el-table-column>
         <el-table-column label="支付方式" width="120" align="center">
-          <template slot-scope="scope">{{
-            scope.row.payType | formatPayType
-          }}</template>
+          <template slot-scope="scope">{{ scope.row.payType | formatPayType }}</template>
         </el-table-column>
         <el-table-column label="订单来源" width="120" align="center">
           <template slot-scope="scope">{{
@@ -163,15 +153,11 @@
           }}</template>
         </el-table-column>
         <el-table-column label="订单状态" width="120" align="center">
-          <template slot-scope="scope">{{
-            scope.row.status | formatStatus
-          }}</template>
+          <template slot-scope="scope">{{ scope.row.status | formatStatus }}</template>
         </el-table-column>
         <el-table-column label="操作" width="200" align="center">
           <template slot-scope="scope">
-            <el-button
-              size="mini"
-              @click="handleViewOrder(scope.$index, scope.row)"
+            <el-button size="mini" @click="handleViewOrder(scope.$index, scope.row)"
               >查看订单</el-button
             >
             <!-- <el-button
@@ -234,21 +220,14 @@
       >
       </el-pagination>
     </div>
-    <el-dialog
-      title="关闭订单"
-      :visible.sync="closeOrder.dialogVisible"
-      width="30%"
-    >
+    <el-dialog title="关闭订单" :visible.sync="closeOrder.dialogVisible" width="30%">
       <el-form :model="closeOrder" label-width="150px" ref="closeOrder">
         <el-form-item
           label="操作备注:"
           prop="content"
-          :rules="[
-            { required: true, message: '请填写操作备注', trigger: 'blur' },
-          ]"
+          :rules="[{ required: true, message: '请填写操作备注', trigger: 'blur' }]"
         >
-          <el-input v-model="closeOrder.content" type="textarea" rows="3">
-          </el-input>
+          <el-input v-model="closeOrder.content" type="textarea" rows="3"> </el-input>
         </el-form-item>
       </el-form>
 
@@ -264,9 +243,7 @@
       </el-input> -->
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeOrder.dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="handleCloseOrderConfirm"
-          >确 定</el-button
-        >
+        <el-button type="primary" @click="handleCloseOrderConfirm">确 定</el-button>
       </span>
     </el-dialog>
     <logistics-dialog v-model="logisticsDialogVisible"></logistics-dialog>
@@ -367,8 +344,8 @@ export default {
     if (this.$route.params.status + "") {
       this.listQuery.status = this.$route.params.status;
     }
-    if(this.$route.query.orderSn){
-      this.listQuery.orderSn = this.$route.query.orderSn
+    if (this.$route.query.orderSn) {
+      this.listQuery.orderSn = this.$route.query.orderSn;
     }
   },
   filters: {
@@ -381,9 +358,9 @@ export default {
         return "支付宝";
       } else if (value === 2) {
         return "微信";
-      } else if(value ===3){
+      } else if (value === 3) {
         return "0元支付";
-      }else {
+      } else {
         return "未支付";
       }
     },
@@ -514,9 +491,9 @@ export default {
           // params.append("ids", this.closeOrder.orderIds);
           // params.append("note", this.closeOrder.content);
           let obj = {
-            ids:this.closeOrder.orderIds.join(','),
-            note: this.closeOrder.content
-          }
+            ids: this.closeOrder.orderIds.join(","),
+            note: this.closeOrder.content,
+          };
           closeOrder(obj).then((response) => {
             this.closeOrder.orderIds = [];
             // this.closeOrder.dialogVisible = false;
@@ -552,8 +529,8 @@ export default {
         // let params = new URLSearchParams();
         // params.append("ids", ids);
         let obj = {
-          ids:ids.join(',')
-        }
+          ids: ids.join(","),
+        };
         deleteOrder(obj).then((response) => {
           this.$message({
             message: "删除成功!",
@@ -590,5 +567,3 @@ export default {
   width: 203px;
 }
 </style>
-
-

+ 42 - 61
src/views/pms/product/components/ProductAttrDetail.vue

@@ -25,9 +25,7 @@
       </el-form-item>
       <el-form-item
         label="商品规格:"
-        :rules="[
-          { required: true, message: '请选择商品规格', trigger: 'blur' },
-        ]"
+        :rules="[{ required: true, message: '请选择商品规格', trigger: 'blur' }]"
       >
         <el-card shadow="never" class="cardBg">
           <div v-for="(productAttr, idx) in selectProductAttr">
@@ -84,11 +82,7 @@
             </div>
           </div>
         </el-card>
-        <el-table
-          style="width: 100%; margin-top: 20px"
-          :data="skuStockList"
-          border
-        >
+        <el-table style="width: 100%; margin-top: 20px" :data="skuStockList" border>
           <el-table-column
             v-for="(item, index) in selectProductAttr"
             :label="item.name"
@@ -101,41 +95,31 @@
           </el-table-column>
           <el-table-column label="销售价格" width="80" align="center">
             <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.price"
-                :disabled="!isEdit"
-              ></el-input>
+              <el-input v-model="scope.row.price" :disabled="!isEdit"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="商品库存" width="80" align="center">
             <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.stock"
-                :disabled="!isEdit"
-              ></el-input>
+              <el-input v-model="scope.row.stock" :disabled="!isEdit"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="库存预警值" width="80" align="center">
             <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.lowStock"
-                :disabled="!isEdit"
-              ></el-input>
+              <el-input v-model="scope.row.lowStock" :disabled="!isEdit"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="SKU编号" align="center">
             <template slot-scope="scope">
               <el-input
-
                 v-model="scope.row.skuCode"
-                :disabled="(scope.row.platformLock ||!isEdit )"
+                :disabled="scope.row.platformLock || !isEdit"
               ></el-input>
             </template>
           </el-table-column>
           <el-table-column label="操作" width="80" align="center">
             <template slot-scope="scope">
               <el-button
-              v-if="!scope.row.platformLock"
+                v-if="!scope.row.platformLock"
                 :disabled="!isEdit"
                 type="text"
                 @click="handleRemoveProductSku(scope.$index, scope.row)"
@@ -209,10 +193,7 @@
         </el-card>
       </el-form-item>
       <el-form-item label="商品相册:">
-        <multi-upload
-          v-model="selectProductPics"
-          :disabled="!isEdit"
-        ></multi-upload>
+        <multi-upload v-model="selectProductPics" :disabled="!isEdit"></multi-upload>
       </el-form-item>
       <el-form-item label="规格参数:">
         <el-tabs v-model="activeHtmlName" type="card">
@@ -235,9 +216,7 @@
         </el-tabs>
       </el-form-item>
       <el-form-item style="text-align: center">
-        <el-button size="medium" @click="handlePrev"
-          >上一步,填写商品促销</el-button
-        >
+        <el-button size="medium" @click="handlePrev">上一步,填写商品促销</el-button>
         <!-- <el-button type="primary" size="medium" @click="handleNext"
           >下一步,选择商品关联</el-button
         > -->
@@ -350,7 +329,7 @@ export default {
   },
   created() {},
   mounted() {
-    console.log(this.value.skuStockList,'skuStockList');
+    console.log(this.value.skuStockList, "skuStockList");
     this.handleEditCreated();
     this.getProductAttrCateList();
   },
@@ -412,7 +391,7 @@ export default {
           }
           if (this.isEdit) {
             //编辑模式下刷新商品属性图片
-            console.log('编辑模式刷新属性')
+            console.log("编辑模式刷新属性");
             this.refreshProductAttrPics();
           }
         } else {
@@ -542,15 +521,9 @@ export default {
         cancelButtonText: "取消",
         type: "warning",
       }).then(() => {
-        if (
-          this.value.skuStockList !== null &&
-          this.value.skuStockList.length > 0
-        ) {
+        if (this.value.skuStockList !== null && this.value.skuStockList.length > 0) {
           let tempSkuList = [];
-          tempSkuList = tempSkuList.concat(
-            tempSkuList,
-            this.value.skuStockList
-          );
+          tempSkuList = tempSkuList.concat(tempSkuList, this.value.skuStockList);
           let price = this.value.skuStockList[0].price;
           for (let i = 0; i < tempSkuList.length; i++) {
             tempSkuList[i].price = price;
@@ -569,15 +542,9 @@ export default {
         cancelButtonText: "取消",
         type: "warning",
       }).then(() => {
-        if (
-          this.value.skuStockList !== null &&
-          this.value.skuStockList.length > 0
-        ) {
+        if (this.value.skuStockList !== null && this.value.skuStockList.length > 0) {
           let tempSkuList = [];
-          tempSkuList = tempSkuList.concat(
-            tempSkuList,
-            this.value.skuStockList
-          );
+          tempSkuList = tempSkuList.concat(tempSkuList, this.value.skuStockList);
           let stock = this.value.skuStockList[0].stock;
           let lowStock = this.value.skuStockList[0].lowStock;
           for (let i = 0; i < tempSkuList.length; i++) {
@@ -609,9 +576,7 @@ export default {
         for (let i = 0; i < attr0.values.length; i++) {
           if (attr1.values.length === 0) {
             skuList.push({
-              spData: JSON.stringify([
-                { key: attr0.name, value: attr0.values[i] },
-              ]),
+              spData: JSON.stringify([{ key: attr0.name, value: attr0.values[i] }]),
             });
             continue;
           }
@@ -631,9 +596,7 @@ export default {
         for (let i = 0; i < attr0.values.length; i++) {
           if (attr1.values.length === 0) {
             skuList.push({
-              spData: JSON.stringify([
-                { key: attr0.name, value: attr0.values[i] },
-              ]),
+              spData: JSON.stringify([{ key: attr0.name, value: attr0.values[i] }]),
             });
             continue;
           }
@@ -689,11 +652,7 @@ export default {
       this.value.productAttributeValueList = [];
       for (let i = 0; i < this.selectProductAttr.length; i++) {
         let attr = this.selectProductAttr[i];
-        if (
-          attr.handAddStatus === 1 &&
-          attr.options != null &&
-          attr.options.length > 0
-        ) {
+        if (attr.handAddStatus === 1 && attr.options != null && attr.options.length > 0) {
           this.value.productAttributeValueList.push({
             productAttributeId: attr.id,
             value: this.getOptionStr(attr.options),
@@ -755,7 +714,18 @@ export default {
         this.$message.error("请编辑商品规格");
         return;
       }
-
+      let flag = false;
+      const reg = /(?!(^[0.]*$))((^[1-9]\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\d{1,2}$))/;
+      this.value.skuStockList.forEach((element) => {
+        console.log(element, "element.price", (element.price + "").match(reg));
+        if (!(element.price + "").match(reg)) {
+          flag = true;
+        }
+      });
+      if (flag) {
+        this.$message.error("请填写正确的销售价格");
+        return;
+      }
       this.mergeProductAttrValue();
       this.mergeProductAttrPics();
       this.$emit("nextStep");
@@ -773,7 +743,18 @@ export default {
         this.$message.error("请编辑商品规格");
         return;
       }
-
+      let flag = false;
+      const reg = /(?!(^[0.]*$))((^[1-9]\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\d{1,2}$))/;
+      this.value.skuStockList.forEach((element) => {
+        console.log(element, "element.price", (element.price + "").match(reg));
+        if (!(element.price + "").match(reg)) {
+          flag = true;
+        }
+      });
+      if (flag) {
+        this.$message.error("请填写正确的销售价格");
+        return;
+      }
       this.mergeProductAttrValue();
       this.mergeProductAttrPics();
       this.$emit("finishCommit", this.isEdit);

+ 16 - 2
src/views/pms/product/components/ProductInfoDetail.vue

@@ -157,8 +157,22 @@ export default {
         //   { required: true, message: "请输入商品介绍", trigger: "blur" },
         // ],
         requiredProp: [{ required: true, message: "该项为必填项", trigger: "blur" }],
-        price: [{ required: true, message: "请输入商品售价", trigger: "blur" }],
-        originalPrice: [{ required: true, message: "请输入商品市场价", trigger: "blur" }],
+        price: [
+          {
+            required: true,
+            message: "请输入正确的商品售价",
+            trigger: "blur",
+            pattern: /(?!(^[0.]*$))((^[1-9]\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\d{1,2}$))/,
+          },
+        ],
+        originalPrice: [
+          {
+            required: true,
+            message: "请输入正确的商品市场价",
+            trigger: "blur",
+            pattern: /(?!(^[0.]*$))((^[1-9]\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\d{1,2}$))/,
+          },
+        ],
       },
       showCascader: false,
     };