Selaa lähdekoodia

发货表单页

chrislee 1 vuosi sitten
vanhempi
commit
35de7dc465

+ 13 - 0
src/utils/validate.js

@@ -29,3 +29,16 @@ export function isPhone (s) {
 export function isURL (s) {
   return /^http[s]?:\/\/.*/.test(s)
 }
+
+// 整数范围值校验
+export const intRangeValidator = (min, max) => (rule, value, callback) => {
+  const isInRange = (value >= min) && (value <= max)
+  const reg = /^-?\d+$/
+  const isInt = reg.test(value)
+  if (isInRange && isInt) {
+    return callback()
+  } else {
+    // return callback(new Error(`要求是在${min}到${max}的整数 [${min}, ${max}]`))
+    return callback(new Error('输入数字不符合要求,请检查!'))
+  }
+}

+ 23 - 5
src/views/modules/order/dispatch-arrived.vue

@@ -1,43 +1,61 @@
 <template>
   <div>
-      <div class="my-title">任务单送达</div>
+    <el-dialog
+      title="任务单送达"
+      width="50%"
+      :close-on-click-modal="false"
+      :visible.sync="visible">
       <!-- 表单 -->
       <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+        <el-row class="my-row">
+          <el-col>
+            <el-form-item label="送达数量" prop="cnt">
+              <el-input-number v-model="dataForm.cnt" :min="0" :max="Number(max)"></el-input-number>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row class="my-row">
           <upload-component :display="false" :title="'签收附件'" :accept="'*'" :file-obj-list="fileList" @uploadSuccess="uploadSuccess"/>
         </el-row>
       </el-form>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
           <el-button @click="onChose">取消</el-button>
           <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
-        </span>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
   import UploadComponent from '../common/upload-component'
 
-  export default {
+export default {
     name: 'dispatch-arrived',
     components: { UploadComponent },
     data () {
       return {
+        visible: false,
         fileList: [],
         dataForm: {},
+        max: 0,
         dataRule: {
+          cnt: [{ required: true, message: '请输入送达数量', trigger: 'change' }]
         }
       }
     },
     methods: {
       onChose () {
+        this.visible = false
         this.$emit('onChose')
       },
-      async init (deliverId) {
+      async init (deliverId, max) {
         if (!deliverId) return
+        this.max = max
         this.fileList = []
         this.dataForm = {
           deliverId: deliverId
         }
+        this.visible = true
       },
       uploadSuccess (fileList) {
         this.fileList = fileList

+ 3 - 3
src/views/modules/order/dispatch.vue

@@ -159,7 +159,7 @@
           <template slot-scope="scope">
             <el-button v-if="isAuth('order:deliver:info') && Number(scope.row.state) <= 3" type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
             <el-button v-if="isAuth('order:deliver:send') && Number(scope.row.state) === 2" type="text" size="small" @click="sendHandle(scope.row.deliverId, scope.row.cnt)">发货</el-button>
-            <el-button v-if="isAuth('order:deliver:arrive') && Number(scope.row.state) === 3" type="text" size="small" @click="arriveHandle(scope.row.deliverId)">送达</el-button>
+            <el-button v-if="isAuth('order:deliver:arrive') && Number(scope.row.state) === 3" type="text" size="small" @click="arriveHandle(scope.row.deliverId, scope.row.cnt)">送达</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -319,10 +319,10 @@ export default {
       })
     },
     // 送达
-    arriveHandle (deliverId) {
+    arriveHandle (deliverId, cnt) {
       this.arrivedVisible = true
       this.$nextTick(() => {
-        this.$refs.arrivedPage.init(deliverId)
+        this.$refs.arrivedPage.init(deliverId, cnt)
       })
     },
     // 发货

+ 1 - 5
src/views/modules/order/dispatching.vue

@@ -10,7 +10,7 @@
         <el-row class="my-row">
           <el-col>
             <el-form-item label="发货数量" prop="cnt">
-              <el-input-number v-model="dataForm.cnt" :min="0" :max="max"></el-input-number>
+              <el-input-number v-model="dataForm.cnt" :min="0" :max="Number(max)"></el-input-number>
             </el-form-item>
           </el-col>
         </el-row>
@@ -56,10 +56,6 @@
       dataFormSubmit () {
         this.$refs['dataForm'].validate((valid) => {
           if (valid) {
-            if (this.dataForm.cnt > this.max) {
-              this.$message.warning('发货数量不能大于:' + this.max)
-              return
-            }
             this.$http({
               url: this.$http.adornUrl(`/biz-service/deliver/deliver`),
               method: 'post',