Kaynağa Gözat

feat:发布

chenqilong 1 yıl önce
ebeveyn
işleme
9b99c4394d
1 değiştirilmiş dosya ile 70 ekleme ve 55 silme
  1. 70 55
      src/pages/issue/index.vue

+ 70 - 55
src/pages/issue/index.vue

@@ -5,9 +5,7 @@
     <view>
       <u-popup :show="show" :overlay="false">
         <view class="pop">
-          <view class="contentXZ"> 
-            <u-parse :content="content"></u-parse>
-          </view><br><br><br><br><br>
+          <view class="contentXZ"> <u-parse :content="content"></u-parse> </view><br /><br /><br /><br /><br />
           <view class="bottom-container">
             <u-button @click="handleAgree" text="我已知晓" color="#5298ff" shape="circle"></u-button>
           </view>
@@ -38,7 +36,7 @@
             </u-radio>
           </u-radio-group>
         </u-form-item>
-        <u-form-item label="所在位置" labelPosition="left" prop="" required borderBottom ref="item1">
+        <u-form-item label="所在位置" labelPosition="left" prop="address" required borderBottom ref="item1">
           <view @click="handleDW" class="letText">
             <text v-if="form.address">{{ form.address }}</text>
             <text v-if="!form.address">请选择定位</text>
@@ -86,7 +84,7 @@
       </u--form>
 
       <view class="" style="padding: 50rpx 0">
-        <u-button @click="submin" text="发布" color="#5298ff" shape="circle"></u-button>
+        <u-button :disabled="disabled" @click="submin" text="发布" color="#5298ff" shape="circle"></u-button>
       </view>
     </view>
     <u-datetime-picker
@@ -110,6 +108,7 @@ export default {
   components: { zjUpload },
   data() {
     return {
+      disabled: false,
       showTime: false,
       show: true,
       form: {
@@ -153,38 +152,42 @@ export default {
             trigger: ['change', 'blur']
           }
         ],
-        amount: [
+        address: [
           {
             required: true,
             message: '必传',
             trigger: ['change', 'blur']
           }
         ],
-        num: [
+        amount: [
           {
             required: true,
             message: '必传',
             trigger: ['change', 'blur']
-          }
-        ],
-        power: [
+          },
           {
-            required: true,
-            message: '必传',
+            pattern: /^\d+\.?\d*$/g,
+            // 正则检验前先将值转为字符串
+            transform(value) {
+              return String(value)
+            },
+            message: '格式不正确',
             trigger: ['change', 'blur']
           }
         ],
-        energy: [
+        num: [
           {
             required: true,
             message: '必传',
             trigger: ['change', 'blur']
-          }
-        ],
-        goodsCreateTime: [
+          },
           {
-            required: true,
-            message: '必传',
+            pattern: /^\d+$/g,
+            // 正则检验前先将值转为字符串
+            transform(value) {
+              return String(value)
+            },
+            message: '格式不正确',
             trigger: ['change', 'blur']
           }
         ]
@@ -193,19 +196,26 @@ export default {
       categoryList: [],
       dictList: [],
       fileList: [],
-      url: [],
+      fileurl: [],
       content: ''
     }
   },
   onReady() {
     //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
-    this.$refs.form.setRules(this.rules)
+    // this.$refs.form.setRules(this.rules)
   },
   onShow() {
     this.getConfig()
     this.getList()
     this.getDictList()
   },
+  watch: {
+    'form.address': {
+      handler(nl) {
+        this.$refs.form.clearValidate('address')
+      }
+    }
+  },
   methods: {
     getConfig() {
       this.$api
@@ -218,9 +228,9 @@ export default {
         .catch(() => {})
     },
     getFiles(value) {
-      this.url = []
+      this.fileurl = []
       value.forEach(v => {
-        this.url.push({
+        this.fileurl.push({
           imgUrl: v
         })
       })
@@ -230,44 +240,49 @@ export default {
         .validate()
         .then(valid => {
           if (valid) {
+            this.disabled = true
             this.form.categoryName =
               this.categoryList.find(v => v.categoryId === this.form.categoryId)?.categoryName ?? ''
             let params = {
               ...this.form,
-              goodsFiles: this.url
+              goodsFiles: this.fileurl
             }
-            this.$api
-              .post('/goods/add', params)
-              .then(res => {
-                this.form = {
-                  title: '',
-                  content: '',
-                  categoryName: '',
-                  categoryId: '',
-                  lng: '',
-                  lat: '',
-                  address: '',
-                  amount: '',
-                  num: '',
-                  brand: '',
-                  power: '',
-                  province: '',
-                  city: '',
-                  area: '',
-                  street: '',
-                  energy: '',
-                  goodsCreateTime: ''
-                }
-                this.$refs.form.clearValidate()
-                this.show = true
-                this.$navToPage(
-                  {
-                    url: '/pages/index/index'
-                  },
-                  'switchTab'
-                )
-              })
-              .catch(() => {})
+            this.$toast('发布成功')
+            setTimeout(() => {
+              this.$api
+                .post('/goods/add', params)
+                .then(res => {
+                  this.form = {
+                    title: '',
+                    content: '',
+                    categoryName: '',
+                    categoryId: '',
+                    lng: '',
+                    lat: '',
+                    address: '',
+                    amount: '',
+                    num: '',
+                    brand: '',
+                    power: '',
+                    province: '',
+                    city: '',
+                    area: '',
+                    street: '',
+                    energy: '',
+                    goodsCreateTime: ''
+                  }
+                  this.$refs.form.clearValidate()
+                  this.disabled = false
+                  this.show = true
+                  this.$navToPage(
+                    {
+                      url: '/pages/index/index'
+                    },
+                    'switchTab'
+                  )
+                })
+                .catch((err) => {this.$toast(err)})
+            }, 1000)
           }
         })
         .catch(err => {