Browse Source

添加输入框规则验证

asd123a20 3 years ago
parent
commit
86d056f39e

+ 8 - 1
admin-code/src/views/Home.vue

@@ -47,7 +47,14 @@ export default {
       title: '',
       visibleSync: false,
       formdata: {},
-      formrules: {},
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ]
+      },
       formfiled: [
         { label: '名称', name: 'name' },
         { label: '编码', name: 'code' }

+ 8 - 1
admin-column/src/views/home.vue

@@ -40,7 +40,14 @@ export default {
         { name: 'name', label: '名称' },
         { name: 'code', label: '编码' }
       ],
-      formrules: {}
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ]
+      }
     };
   },
   computed: {

+ 49 - 3
admin-content/src/views/home.vue

@@ -30,6 +30,7 @@
               class="avatar-uploader"
               action="/api/files/avatar/upload"
               :show-file-list="false"
+              :headers="myHeaders"
               :on-success="handleAvatarSuccess"
               :before-upload="beforeAvatarUpload">
               <img v-if="formdata[item.name] && formdata[item.name] !== ''" :src="formdata[item.name]" class="avatar">
@@ -37,6 +38,17 @@
             </el-upload>
             <!-- 富文本 -->
             <editoritem v-if="item.name == 'content'" @change="editChage" :value="formdata[item.name]"></editoritem>
+            <!-- 附件上传 -->
+            <el-upload
+              v-if="item.name == 'annex'"
+              :headers="myHeaders"
+              class="upload-demo"
+              action="/api/files/avatar/upload"
+              :on-success="handleAnnexSuccess"
+              :on-remove="handleRemove"
+              :file-list="fileList">
+              <el-button size="small" type="primary">附件上传</el-button>
+            </el-upload>
           </template>
         </formData>
       </template>
@@ -49,6 +61,7 @@ import dialogAndDrawer from '@components/dialogAndDrawer.vue';
 import formData from '@components/formData/index.vue';
 import editoritem from '@components/editoritem.vue';
 import { mapState, mapActions } from 'vuex';
+const token = sessionStorage.getItem('token');
 export default {
   components: {
     filterList,
@@ -58,6 +71,8 @@ export default {
   },
   data() {
     return {
+      fileList: [],
+      myHeaders: { Authorization: token },
       title: '',
       visibleSync: false,
       filed: [
@@ -72,9 +87,29 @@ export default {
         { name: 'describe', label: '描述' },
         { name: 'bind', label: '绑定栏目', formater: 'dict:column' },
         { name: 'date', label: '时间', formater: 'date:datetime' },
-        { name: 'content', label: '内容', formater: 'slot' }
+        { name: 'content', label: '内容', formater: 'slot' },
+        { name: 'annex', label: '附件', formater: 'slot' }
       ],
-      formrules: {}
+      formrules: {
+        thumbnail: [
+          { required: true, message: '请上传缩略图', trigger: 'chage' }
+        ],
+        title: [
+          { required: true, message: '请输入标题', trigger: 'blur' }
+        ],
+        describe: [
+          { required: true, message: '请输入描述', trigger: 'blur' }
+        ],
+        bind: [
+          { required: true, message: '请绑定栏目', trigger: 'chage' }
+        ],
+        date: [
+          { required: true, message: '请输入时间', trigger: 'blur' }
+        ],
+        content: [
+          { required: true, message: '请输入内容', trigger: 'blur' }
+        ]
+      }
     };
   },
   computed: {
@@ -141,11 +176,22 @@ export default {
     editChage (e) {
       this.$refs.formData.setForm('content', e);
     },
+    // 附件上传
+    handleAnnexSuccess(res, file) {
+      this.$refs.formData.setForm('annex', res.data.filePath);
+      this.fileList.push({ name: res.data.name, url: res.data.filePath });
+    },
+    // 删除附件列表
+    handleRemove(file, fileList) {
+      console.log(123);
+      this.$refs.formData.setForm('annex', null);
+      delete this.fileList[0];
+    },
     // 缩略图上传
     handleAvatarSuccess(res, file) {
-      // this.imageUrl = URL.createObjectURL(file.raw);
       this.$refs.formData.setForm('thumbnail', res.data.filePath);
     },
+    // 缩略图上传限制
     beforeAvatarUpload(file) {
       const isJPG = file.type === 'image/jpeg';
       const isLt2M = file.size / 1024 / 1024 < 2;

+ 3 - 0
admin-frame/lib/axios.js

@@ -1,5 +1,6 @@
 import axios from 'axios';
 import router from '../src/router/index';
+import { Message } from 'element-ui';
 // 添加请求拦截器
 axios.interceptors.request.use(function (config) {
   const token = sessionStorage.getItem('token');
@@ -12,6 +13,7 @@ axios.interceptors.request.use(function (config) {
 
 // 添加响应拦截器
 axios.interceptors.response.use(function (response) {
+  console.log(response);
   if (response.status == 401) {
     // 返回登录处理
     sessionStorage.removeItem('token');
@@ -23,6 +25,7 @@ axios.interceptors.response.use(function (response) {
   }
   return response.data;
 }, function (error) {
+  Message.error('服务器错误');
   // 对响应错误做点什么
   return Promise.reject(error);
 });

+ 26 - 4
admin-img-news/src/views/home.vue

@@ -36,18 +36,18 @@
           </template>
           <template v-slot:ext="{ formdata }">
             <!-- 地址 -->
-            <el-form-item v-if="formdata && formdata.type == '0'" label="地址">
+            <el-form-item prop="url" v-if="formdata && formdata.type == '0'" label="地址">
               <el-input v-model="formdata['url']" placeholder="请输入地址"></el-input>
             </el-form-item>
             <!-- 栏目 -->
-            <el-form-item v-if="formdata && formdata.type == '1'" label="栏目">
+            <el-form-item prop="column" v-if="formdata && formdata.type == '1'" label="栏目">
               <el-select v-model="formdata['column']" placeholder="请选择栏目">
                 <el-option v-for="i in columnList" :key="i.code" :label="i.name" :value="i.code">
                 </el-option>
               </el-select>
             </el-form-item>
             <!-- 单页 -->
-            <el-form-item v-if="formdata && formdata.type == '2'" label="单页">
+            <el-form-item prop="pages" v-if="formdata && formdata.type == '2'" label="单页">
               <el-select v-model="formdata['pages']" placeholder="请选择单页">
                 <el-option v-for="i in pagesList" :key="i._id" :label="i.title" :value="i._id">
                 </el-option>
@@ -82,7 +82,29 @@ export default {
       ],
       formdata: {},
       formfiled: [],
-      formrules: {},
+      formrules: {
+        img: [
+          { required: true, message: '请上传缩略图', trigger: 'chage' }
+        ],
+        title: [
+          { required: true, message: '请输入标题', trigger: 'blur' }
+        ],
+        bind: [
+          { required: true, message: '请选择绑定类型编码', trigger: 'chage' }
+        ],
+        url: [
+          { required: true, message: '请输入url', trigger: 'blur' }
+        ],
+        pages: [
+          { required: true, message: '请选择单页', trigger: 'chage' }
+        ],
+        column: [
+          { required: true, message: '请选择栏目', trigger: 'chage' }
+        ],
+        type: [
+          { required: true, message: '请选择栏目', trigger: 'chage' }
+        ]
+      },
       type: null
     };
   },

+ 27 - 5
admin-menu/src/views/home.vue

@@ -14,18 +14,18 @@
         <formData ref="formData" :filed="formfiled" :data="formdata" :rules="formrules" @save="formSave">
           <template v-slot:ext="{ formdata }">
             <!-- 地址 -->
-            <el-form-item v-if="formdata && formdata.type == '0'" label="地址">
+            <el-form-item prop="url" v-if="formdata && formdata.type == '0'" label="地址">
               <el-input v-model="formdata['url']" placeholder="请输入地址"></el-input>
             </el-form-item>
             <!-- 栏目 -->
-            <el-form-item v-if="formdata && formdata.type == '1'" label="栏目">
-              <el-select v-model="formdata['column']" placeholder="请选择栏目">
+            <el-form-item prop="column" v-if="formdata && formdata.type == '1'" label="栏目">
+              <el-select multiple v-model="formdata['column']" placeholder="请选择栏目">
                 <el-option v-for="i in columnList" :key="i.code" :label="i.name" :value="i.code">
                 </el-option>
               </el-select>
             </el-form-item>
             <!-- 单页 -->
-            <el-form-item v-if="formdata && formdata.type == '2'" label="单页">
+            <el-form-item prop="pages" v-if="formdata && formdata.type == '2'" label="单页">
               <el-select v-model="formdata['pages']" placeholder="请选择单页">
                 <el-option v-for="i in pagesList" :key="i._id" :label="i.title" :value="i._id">
                 </el-option>
@@ -63,7 +63,29 @@ export default {
         { name: 'date', label: '时间', formater: 'date:datetime' },
         { name: 'type', label: '类型', formater: 'dict:imgNewsType' }
       ],
-      formrules: {}
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ],
+        date: [
+          { required: true, message: '请输入时间', trigger: 'blur' }
+        ],
+        type: [
+          { required: true, message: '请输入类型', trigger: 'blur' }
+        ],
+        url: [
+          { required: true, message: '请输入类型', trigger: 'blur' }
+        ],
+        column: [
+          { required: true, message: '请输入类型', trigger: 'chage' }
+        ],
+        pages: [
+          { required: true, message: '请输入类型', trigger: 'chage' }
+        ]
+      }
     };
   },
   computed: {

+ 14 - 1
admin-page/src/views/home.vue

@@ -48,7 +48,20 @@ export default {
         { name: 'describe', label: '描述' },
         { name: 'content', label: '内容', formater: 'slot' }
       ],
-      formrules: {}
+      formrules: {
+        title: [
+          { required: true, message: '请输入标题', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ],
+        describe: [
+          { required: true, message: '请输入描述', trigger: 'blur' }
+        ],
+        content: [
+          { required: true, message: '请输入内容', trigger: 'blur' }
+        ]
+      }
     };
   },
   computed: {

+ 8 - 1
admin-role/src/views/home.vue

@@ -51,7 +51,14 @@ export default {
         { name: 'name', label: '名称' },
         { name: 'code', label: '编码' }
       ],
-      formrules: {}
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ]
+      }
     };
   },
   computed: {

+ 11 - 1
admin-toconfig/src/views/home.vue

@@ -41,7 +41,17 @@ export default {
         { name: 'code', label: '编码' },
         { name: 'value', label: '内容' }
       ],
-      formrules: {}
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        code: [
+          { required: true, message: '请输入编码', trigger: 'blur' }
+        ],
+        value: [
+          { required: true, message: '请输入内容', trigger: 'blur' }
+        ]
+      }
     };
   },
   computed: {

+ 11 - 1
admin-user/src/views/home.vue

@@ -52,7 +52,17 @@ export default {
         { name: 'password', label: '密码' },
         { name: 'phone', label: '电话' }
       ],
-      formrules: {},
+      formrules: {
+        name: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+        userName: [
+          { required: true, message: '请输入用户名', trigger: 'blur' }
+        ],
+        password: [
+          { required: true, message: '请输入密码', trigger: 'blur' }
+        ]
+      },
       userInfo: {},
       values: []
     };