Pārlūkot izejas kodu

音频管理 修改原价和折扣价的判断逻辑

DESKTOP-O04BTUJ\muzen 2 gadi atpakaļ
vecāks
revīzija
5b8ea9cbe7

+ 10 - 19
src/views/music/album/detail.vue

@@ -27,10 +27,11 @@
         </el-select>
       </el-form-item>
       <el-form-item v-if="form.payType !== 1" label="原价:" prop="price">
-        <el-input v-model.number="form.price" placeholder="请输入原价" />
+        <el-input-number v-model="form.price" placeholder="请输入原价" :min="1" :precision="2" :controls="false" />
       </el-form-item>
       <el-form-item v-if="form.payType !== 1" label="折扣价:" prop="discount">
-        <el-input v-model.number="form.discount" placeholder="请输入折扣价" />
+        <el-input-number v-model="form.discountedPrice" placeholder="请输入折扣价" :min="1" :precision="2"
+          :controls="false" />
       </el-form-item>
       <el-form-item label="专辑封面:" prop="coverUrl">
         <Upload listType="picture-card" :url="form.coverUrl" @upload="upload($event, 'coverUrl')"
@@ -110,29 +111,23 @@ export default {
     Audio
   },
   data() {
-    // 小数点后两位 正则
-    var str = /^\d+.?\d{0,2}$/
     // 判断原价是否大于折扣价
     var checkPrice = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('请输入原价'))
-      } else if (Number(value) < 0) {
-        return callback(new Error('不能为负数'))
-      } else if (!str.test(value)) {
-        return callback(new Error('小数点后最多输入两位'))
+        callback(new Error('请输入原价'))
+      } else if (value.toString().length > 10) {
+        callback(new Error('字符长度不超过10个'))
       } else if (this.form.discount) {
-        Number(value) > Number(this.form.discount) ? callback() : callback(new Error('原价必须大于折扣价'))
+        value > this.form.discount ? callback() : callback(new Error('原价必须大于折扣价'))
       }
     }
     // 判断折扣价是否小于原价
     var checkDiscount = (rule, value, callback) => {
       if (value) {
-        if (Number(value) < 0) {
-          return callback(new Error('不能为负数'))
-        } else if (!str.test(value)) {
-          return callback(new Error('小数点后最多输入两位'))
+        if (value.toString().length > 10) {
+          callback(new Error('字符长度不超过10个'))
         } else if (this.form.price) {
-          Number(value) < Number(this.form.price) ? callback() : callback(new Error('折扣价必须小于原价'))
+          value < this.form.price ? callback() : callback(new Error('折扣价必须小于原价'))
         }
       }
     }
@@ -169,13 +164,9 @@ export default {
           required: true, message: '请选择付费类型', trigger: 'change'
         }],
         price: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           required: true, validator: checkPrice, trigger: 'blur'
         }],
         discount: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           validator: checkDiscount, trigger: 'blur'
         }],
         coverUrl: [{

+ 18 - 25
src/views/music/blog/detail.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-form :model="form" ref="form" :rules="rules" label-width="100px" :disabled="disabled">
       <el-form-item label="播客名称:" prop="name">
-        <el-input v-model="form.name" placeholder="请输入播客名称" />
+        <el-input v-model="form.name" placeholder="请输入播客名称" maxlength="50" show-word-limit />
       </el-form-item>
       <el-form-item label="主播名称:" prop="podcasterIds">
         <el-select v-model="form.podcasterIds" multiple filterable remote reserve-keyword
@@ -34,10 +34,11 @@
         </el-select>
       </el-form-item>
       <el-form-item v-if="form.charging !== 1" label="原价:" prop="price">
-        <el-input v-model="form.price" placeholder="请输入原价" />
+        <el-input-number v-model="form.price" placeholder="请输入原价" :min="1" :precision="2" :controls="false" />
       </el-form-item>
       <el-form-item v-if="form.charging !== 1" label="折扣价:" prop="discountedPrice">
-        <el-input v-model="form.discountedPrice" placeholder="请输入折扣价" />
+        <el-input-number v-model="form.discountedPrice" placeholder="请输入折扣价" :min="1" :precision="2"
+          :controls="false" />
       </el-form-item>
       <el-form-item label="播客封面" prop="thumb">
         <Upload listType="picture-card" :url="form.thumb" @upload="upload" :disabled="disabled" />
@@ -88,7 +89,8 @@
         <el-table-column label="当前状态" prop="status" align="center" :formatter="statusFormatter" />
         <el-table-column label="操作" align="center">
           <template slot-scope="scope">
-            <el-button type="text" @click="getChecked(scope.row)" :disabled="disabledChecked">
+            <el-button type="text" @click="getChecked(scope.row)"
+              :disabled="disabledChecked || scope.row.status === 2">
               选择
             </el-button>
           </template>
@@ -112,29 +114,23 @@ export default {
     Upload
   },
   data() {
-    // 小数点后两位 正则
-    var str = /^\d+.?\d{0,2}$/
     // 判断原价是否大于折扣价
     var checkPrice = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('请输入原价'))
-      } else if (Number(value) < 0) {
-        return callback(new Error('不能为负数'))
-      } else if (!str.test(value)) {
-        return callback(new Error('小数点后最多输入两位'))
+        callback(new Error('请输入原价'))
+      } else if (value.toString().length > 10) {
+        callback(new Error('字符长度不超过10个'))
       } else if (this.form.discountedPrice) {
-        Number(value) > Number(this.form.discountedPrice) ? callback() : callback(new Error('原价必须大于折扣价'))
+        value > this.form.discountedPrice ? callback() : callback(new Error('原价必须大于折扣价'))
       }
     }
     // 判断折扣价是否小于原价
     var checkDiscount = (rule, value, callback) => {
       if (value) {
-        if (Number(value) < 0) {
-          return callback(new Error('不能为负数'))
-        } else if (!str.test(value)) {
-          return callback(new Error('小数点后最多输入两位'))
+        if (value.toString().length > 10) {
+          callback(new Error('字符长度不超过10个'))
         } else if (this.form.price) {
-          Number(value) < Number(this.form.price) ? callback() : callback(new Error('折扣价必须小于原价'))
+          value < this.form.price ? callback() : callback(new Error('折扣价必须小于原价'))
         }
       }
     }
@@ -155,7 +151,8 @@ export default {
       // 弹窗表单
       dialogForm: {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 10,
+        status: 1
       },
       // 总数据
       total: 0,
@@ -167,8 +164,6 @@ export default {
       rules: {
         name: [{
           required: true, message: '请输入播客专辑名称', trigger: 'blur'
-        }, {
-          max: 50, message: '字符不超过50个', trigger: 'blur'
         }],
         podcasterIds: [{
           required: true, message: '请输入主播名称', trigger: 'blur'
@@ -183,13 +178,9 @@ export default {
           required: true, message: '请选择付费类型', trigger: 'change'
         }],
         price: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           required: true, validator: checkPrice, trigger: 'blur'
         }],
         discountedPrice: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           validator: checkDiscount, trigger: 'blur'
         }],
         thumb: [{
@@ -255,6 +246,7 @@ export default {
         })
       }
     },
+
     // 上传
     upload(e) {
       this.form.thumb = e.file
@@ -288,7 +280,8 @@ export default {
     getRefresh() {
       this.dialogForm = {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 10,
+        status: 1
       }
       this.getList()
     },

+ 10 - 17
src/views/music/program/detail.vue

@@ -20,10 +20,11 @@
         </el-select>
       </el-form-item>
       <el-form-item v-if="form.isFree === 0" label="原价:" prop="price">
-        <el-input v-model="form.price" placeholder="请输入原价" />
+        <el-input-number v-model="form.price" placeholder="请输入原价" :min="1" :precision="2" :controls="false" />
       </el-form-item>
       <el-form-item v-if="form.isFree === 0" label="折扣价:" prop="discountedPrice">
-        <el-input v-model="form.discountedPrice" placeholder="请输入折扣价" />
+        <el-input-number v-model="form.discountedPrice" placeholder="请输入折扣价" :min="1" :precision="2"
+          :controls="false" />
       </el-form-item>
       <el-form-item label="节目封面:" prop="cover">
         <Upload listType="picture-card" :url="form.cover" @upload="upload($event, 'cover')"
@@ -60,24 +61,20 @@ export default {
     // 判断原价是否大于折扣价
     var checkPrice = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('请输入原价'))
-      } else if (Number(value) < 0) {
-        return callback(new Error('不能为负数'))
-      } else if (!str.test(value)) {
-        return callback(new Error('小数点后最多输入两位'))
+        callback(new Error('请输入原价'))
+      } else if (value.toString().length > 10) {
+        callback(new Error('字符长度不超过10个'))
       } else if (this.form.discountedPrice) {
-        Number(value) > Number(this.form.discountedPrice) ? callback() : callback(new Error('原价必须大于折扣价'))
+        value > this.form.discountedPrice ? callback() : callback(new Error('原价必须大于折扣价'))
       }
     }
     // 判断折扣价是否小于原价
     var checkDiscount = (rule, value, callback) => {
       if (value) {
-        if (Number(value) < 0) {
-          return callback(new Error('不能为负数'))
-        } else if (!str.test(value)) {
-          return callback(new Error('小数点后最多输入两位'))
+        if (value.toString().length > 10) {
+          callback(new Error('字符长度不超过10个'))
         } else if (this.form.price) {
-          Number(value) < Number(this.form.price) ? callback() : callback(new Error('折扣价必须小于原价'))
+          value < this.form.price ? callback() : callback(new Error('折扣价必须小于原价'))
         }
       }
     }
@@ -101,13 +98,9 @@ export default {
           required: true, message: '请选择付费类型', trigger: 'change'
         }],
         price: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           required: true, validator: checkPrice, trigger: 'blur'
         }],
         discountedPrice: [{
-          max: 10, message: '字符不超过10个', trigger: 'blur'
-        }, {
           validator: checkDiscount, trigger: 'blur'
         }],
         cover: [{