浏览代码

Merge branch 'tmp_meeting_needs' into online

wolyshaw 4 年之前
父节点
当前提交
d0329c3514

+ 1 - 0
.gitignore

@@ -17,3 +17,4 @@ tests/**/coverage/
 debug.log
 debug.log
 *.log
 *.log
 debug.log
 debug.log
+debug.log

+ 21 - 0
src/components/save-form/index.vue

@@ -3,6 +3,8 @@
     class="save-form"
     class="save-form"
     v-bind="{...$attrs, ...$props}"
     v-bind="{...$attrs, ...$props}"
     v-on="$listeners"
     v-on="$listeners"
+    @submit.stop.native="submit"
+    @reset.stop.native="reset"
     ref="form"
     ref="form"
   >
   >
     <slot/>
     <slot/>
@@ -30,6 +32,25 @@ export default {
     }
     }
   },
   },
   methods: {
   methods: {
+    submit(evt) {
+      evt.stopPropagation()
+      evt.stopImmediatePropagation()
+      evt.preventDefault()
+      this.searchs.update(this.model, undefined, 'form')
+      if (this.$listeners.submit) {
+        this.$listeners.submit(evt)
+      }
+    },
+    reset() {
+      if (this.$listeners.reset) {
+        this.$listeners.reset()
+        this.$nextTick(() => {
+          this.resetFields()
+        })
+      } else {
+        this.resetFields()
+      }
+    },
     save(search = null, type = 'form') {
     save(search = null, type = 'form') {
       this.searchs.update(search, undefined, type)
       this.searchs.update(search, undefined, type)
     },
     },

+ 14 - 0
src/views/save-form-test/README.md

@@ -14,3 +14,17 @@ demo/modals // 模块需要的弹窗放在这里
 ###### 列表注意点
 ###### 列表注意点
 1. 列表最多不超过两行,多余的鼠标移入显示
 1. 列表最多不超过两行,多余的鼠标移入显示
 1. 操作按钮尽量右边fliex显示
 1. 操作按钮尽量右边fliex显示
+
+
+###### 推荐使用原生submit提交
+
+按照以下代码使用会默认保存数据,也会默认清空,不需要额外保存
+
+``` html
+<save-form ref="form" :model.sync="form" inline>
+  <el-form-item>
+    <el-button type="primary" native-type="submit">提交</el-button>
+    <el-button type="danger" native-type="reset">重置</el-button>
+  </el-form-item>
+</save-form>
+```

+ 5 - 7
src/views/save-form-test/index.vue

@@ -4,7 +4,7 @@
       <div class="squrt"></div>保存表单演示
       <div class="squrt"></div>保存表单演示
     </h2>
     </h2>
     <div class="m-core">
     <div class="m-core">
-      <save-form ref="form" :model.sync="form" inline>
+      <save-form ref="form" :model.sync="form" inline @submit="submit" @reset="reset">
         <el-form-item
         <el-form-item
           prop="input"
           prop="input"
         >
         >
@@ -54,8 +54,8 @@
           </el-date-picker>
           </el-date-picker>
         </el-form-item>
         </el-form-item>
         <div>
         <div>
-          <el-button type="primary" @click="submit">提交</el-button>
-          <el-button type="danger" @click="reset">重置</el-button>
+          <el-button type="primary" native-type="submit">提交</el-button>
+          <el-button type="danger" native-type="reset">重置</el-button>
         </div>
         </div>
       </save-form>
       </save-form>
     </div>
     </div>
@@ -148,10 +148,8 @@ export default {
     getList() {
     getList() {
       return Promise.resolve()
       return Promise.resolve()
     },
     },
-    submit() {
-      this.$refs.form.validate(valid => {
-        console.log(valid)
-      })
+    submit(evt) {
+      console.log(evt)
     },
     },
     reset() {
     reset() {
       this.$refs.form.resetFields()
       this.$refs.form.resetFields()

+ 7 - 6
src/views/studentManager/studentList.vue

@@ -10,12 +10,13 @@
       <div class="newBand"
       <div class="newBand"
            @click="onCreateQRCode">学员激活列表</div>
            @click="onCreateQRCode">学员激活列表</div>
       <!-- 搜索标题 -->
       <!-- 搜索标题 -->
-      <el-form :inline="true"
+      <save-form :inline="true"
                class="searchForm"
                class="searchForm"
-               v-model.trim="searchForm">
+               @submit="onSearch"
+               @reset="onReSet"
+               :model.sync="searchForm">
         <el-form-item>
         <el-form-item>
           <el-input placeholder="学生姓名或电话"
           <el-input placeholder="学生姓名或电话"
-                    @keyup.enter.native="onSearch"
                     v-model.trim="searchForm.search"></el-input>
                     v-model.trim="searchForm.search"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item prop="organId">
         <el-form-item prop="organId">
@@ -109,15 +110,15 @@
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item>
         <el-form-item>
-          <el-button @click="onSearch"
+          <el-button native-type="submit"
                      type="danger">搜索</el-button>
                      type="danger">搜索</el-button>
-          <el-button @click="onReSet"
+          <el-button native-type="reset"
                      type="primary">重置</el-button>
                      type="primary">重置</el-button>
           <el-button type="primary"
           <el-button type="primary"
                      v-permission="'export/studentHasCourse'"
                      v-permission="'export/studentHasCourse'"
                      @click="downLoadStudent">导出名单</el-button>
                      @click="downLoadStudent">导出名单</el-button>
         </el-form-item>
         </el-form-item>
-      </el-form>
+      </save-form>
       <!-- 列表 -->
       <!-- 列表 -->
       <div class="tableWrap">
       <div class="tableWrap">
         <el-table :data="tableList"
         <el-table :data="tableList"