From 42a2456e29ca67ea6b7150cbdd9989bbf75aaa7c Mon Sep 17 00:00:00 2001 From: jxx <283591387@qq.com.com> Date: Tue, 19 Nov 2019 15:03:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=86=E6=9E=B6=E6=96=87=E6=A1=A31.0?= =?UTF-8?q?=E7=BC=96=E5=86=99=E4=B8=AD..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/ViewGridConfig/methods.js | 8 - Vol.Vue/src/components/basic/VolForm.vue | 27 ++- Vol.Vue/src/views/charts/formOptions.js | 8 +- Vol.Vue/src/views/document/docApi/api.vue | 39 +++- .../src/views/document/docApi/doc_menu.vue | 0 .../src/views/document/docApi/doc_table.vue | 0 .../views/document/docApi/doc_uploadExcel.vue | 0 .../views/document/docApi/doc_uploadImg.vue | 0 .../views/document/docApi/doc_viewGrid.vue | 13 ++ .../src/views/document/docApi/doc_volform.vue | 51 +++-- Vol.Vue/src/views/document/docApi/param.js | 27 ++- .../src/views/document/docApi/sourceCode.js | 90 +++++--- Vol.Vue/src/views/document/docApi/test.vue | 193 ++++++++++++++++-- Vol.Vue/src/views/document/document.vue | 2 +- 14 files changed, 369 insertions(+), 89 deletions(-) create mode 100644 Vol.Vue/src/views/document/docApi/doc_menu.vue create mode 100644 Vol.Vue/src/views/document/docApi/doc_table.vue create mode 100644 Vol.Vue/src/views/document/docApi/doc_uploadExcel.vue create mode 100644 Vol.Vue/src/views/document/docApi/doc_uploadImg.vue create mode 100644 Vol.Vue/src/views/document/docApi/doc_viewGrid.vue diff --git a/Vol.Vue/src/components/basic/ViewGridConfig/methods.js b/Vol.Vue/src/components/basic/ViewGridConfig/methods.js index 181ddba6..a0a43483 100644 --- a/Vol.Vue/src/components/basic/ViewGridConfig/methods.js +++ b/Vol.Vue/src/components/basic/ViewGridConfig/methods.js @@ -657,14 +657,6 @@ let methods = { //let defaultOption = { key: "", value: "请选择" }; formOptions.forEach(item => { item.forEach(d => { - //如果是必填项的数字,设置一个最大与最值小 - if (setMinVal&&d.required) { - if ((d.type == 'number' - || d.type == 'decimal') - && !d.hasOwnProperty('min')) { - d.min = d.type == 'number' ? 1 : 0.1; - } - } if (!d.dataKey) return true; if (keys.indexOf(d.dataKey) == -1) { keys.push(d.dataKey); diff --git a/Vol.Vue/src/components/basic/VolForm.vue b/Vol.Vue/src/components/basic/VolForm.vue index 9ea6aff0..a774dd36 100644 --- a/Vol.Vue/src/components/basic/VolForm.vue +++ b/Vol.Vue/src/components/basic/VolForm.vue @@ -17,10 +17,13 @@ :placeholder="formFileds[item.field]||'--'" >--> - + import("./doc_volform"), VolHeader: () => import("./doc_header"), box: () => import("./doc_box"), + uploadExcel: () => import("./doc_uploadExcel"), + uploadImg: () => import("./doc_uploadImg"), + volmenu: () => import("./doc_menu"), + voltable: () => import("./doc_table"), + viewGrid: () => import("./doc_viewGrid"), other: () => import("./doc_other") }, // methods: { @@ -34,23 +39,43 @@ export default { }, data() { return { - active: -1, + active: 0, data: [ { com_name: "Icons", title: "图标组件" }, + { + com_name: "box", + title: "弹出框组件" + }, { com_name: "DocForm", - title: "表单组件" + title: "form表单组件" }, // { com_name: "VolHeader", title: "VolHeader" }, { - com_name: "box", - title: "弹出框" + com_name: "viewGrid", + title: "代码生成后页面viewGrid" + }, + { + com_name: "volmenu", + title: "菜单组件" + }, + { + com_name: "voltable", + title: "table组件" + }, + { + com_name: "uploadExcel", + title: "excel上传" + }, + { + com_name: "uploadImg", + title: "图片上传" }, { com_name: "other", @@ -70,11 +95,11 @@ export default { > .nav { border-right: 1px solid #ccc3c3; margin-right: 10px; - width: 120px; + width: 180px; position: fixed; .n-item { text-align: right; - padding-right: 29px; + padding-right: 15px; list-style: none; a { font-size: 15px; @@ -93,7 +118,7 @@ export default { } > .list { flex: 1; - margin-left: 140px; + margin-left: 195px; } } .active { diff --git a/Vol.Vue/src/views/document/docApi/doc_menu.vue b/Vol.Vue/src/views/document/docApi/doc_menu.vue new file mode 100644 index 00000000..e69de29b diff --git a/Vol.Vue/src/views/document/docApi/doc_table.vue b/Vol.Vue/src/views/document/docApi/doc_table.vue new file mode 100644 index 00000000..e69de29b diff --git a/Vol.Vue/src/views/document/docApi/doc_uploadExcel.vue b/Vol.Vue/src/views/document/docApi/doc_uploadExcel.vue new file mode 100644 index 00000000..e69de29b diff --git a/Vol.Vue/src/views/document/docApi/doc_uploadImg.vue b/Vol.Vue/src/views/document/docApi/doc_uploadImg.vue new file mode 100644 index 00000000..e69de29b diff --git a/Vol.Vue/src/views/document/docApi/doc_viewGrid.vue b/Vol.Vue/src/views/document/docApi/doc_viewGrid.vue new file mode 100644 index 00000000..984b9db9 --- /dev/null +++ b/Vol.Vue/src/views/document/docApi/doc_viewGrid.vue @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/Vol.Vue/src/views/document/docApi/doc_volform.vue b/Vol.Vue/src/views/document/docApi/doc_volform.vue index 02ec89ef..1ef12d8f 100644 --- a/Vol.Vue/src/views/document/docApi/doc_volform.vue +++ b/Vol.Vue/src/views/document/docApi/doc_volform.vue @@ -48,10 +48,13 @@ export default { number1: 20, mail: "", Date: "", - IsTop: "还没想好...", + IsTop: "", Fruits: [], Other: "", Switch: 1, + readonlyText: "还没想好....", + readonlyImg: + "https://imgs-1256993465.cos.ap-chengdu.myqcloud.com/h5pic/x2.jpg", ProImg: "https://imgs-1256993465.cos.ap-chengdu.myqcloud.com/h5pic/x3.jpg" }, @@ -150,21 +153,7 @@ export default { } ], [ - { - title: "备注", - required: true, - field: "IsTop", - colSize: 12, //设置12,此列占100%宽度 - type: "textarea" - } - ], - [ - { - title: "图片", - disabled: true, //必须设置此属性 - field: "ProImg", - type: "img" - }, + //readonlyImg { title: "checkbox", //如果这里绑定了data数据,后台不会加载此数据源 @@ -176,6 +165,36 @@ export default { ], field: "Fruits", type: "checkbox" + }, + { + title: "字段只读", + readonly: true, //设置readonly或disabled都行 + field: "readonlyText", + type: "text" + } + ], [ + { + title: "备注", + required: true, + field: "IsTop", + min: 3, + max: 5, + placeholder: "至少输入3个字符,最多只能输入5个字符", + colSize: 12, //设置12,此列占100%宽度 + type: "textarea" + } + ], + [ + { + title: "图片只读", + readonly: true, //设置readonly或disabled都行 + field: "readonlyImg", + type: "img" + }, + { + title: "可修改图片", + field: "ProImg", + type: "img" } ] ] diff --git a/Vol.Vue/src/views/document/docApi/param.js b/Vol.Vue/src/views/document/docApi/param.js index 29fee36f..f3a00528 100644 --- a/Vol.Vue/src/views/document/docApi/param.js +++ b/Vol.Vue/src/views/document/docApi/param.js @@ -13,14 +13,16 @@ let param = { { name: "formRules", desc: "表单字段的参数配置说明(数组的元素个数决定了表单每行显示的标签个数)", type: "array", default: "[]" }, { name: "{", desc: "表单字段formRules的参数配置说明", type: "", default: "" }, { name: "dataKey", desc: "数据源字典编号(菜单->系统->下拉框绑定中的字典编号)", type: "string", default: "" }, - { name: "data", desc: "数据源,可以手动绑定格式[{key:1,value:'是'}]也可以自动绑定,自定绑定需要设置属性loadKey='true'", type: "array", default: "[]" }, + { name: "data", desc: "数据源,可以手动绑定格式[{key:1,value:'是'}],也可以自动绑定,自定绑定需要设置属性loadKey='true'", type: "array", default: "[]" }, { name: "title", desc: "标签名称", type: "string", default: "" }, + // + { name: "readonly/readonly", desc: "是否只读", type: "bool", default: "false" }, { name: "required", desc: "是否必填", type: "bool", default: "false" }, { name: "field", desc: "字段,与表单字段必须相同", type: "string", default: "" }, { name: "type", desc: "渲染的标签类型,可选值,mail、text、textarea、img、checkbox、number、decimal、date、datetime、phone、switch", type: "string", default: "text" }, { name: "range", desc: "如果type是日期,需要选开始与结束日期", type: "bool", default: "false" }, - { name: "min", desc: "最小值,如果是int类型,默认验证最小值是1(decimal最小默认值0.1),如果在代码生后的页面需要修改默认值,在扩展js的方法onInit中遍历form对象,可参考SellOrder.js中onInit方法", type: "number", default: "" }, - { name: "max", desc: "最大值", type: "number", default: "" }, + { name: "min", desc: "1、数字类型标签:最小值,如果是type=number(整数)类型,默认验证最小值是1(decimal最小默认值0.1),如果在代码生后的页面需要修改默认值,在扩展js的方法onInit中遍历form对象,可参考SellOrder.js中onInit方法。 2、其他标签,如:input/textarea设置min就是指的字符的最大长度", type: "number", default: "" }, + { name: "max", desc: "最大值,操作与min相同", type: "number", default: "" }, { name: "validator", desc: "对标签的值进行自定义验证,如: validator: (rule, val, callback) => {\ if (val != '234') {\ @@ -58,6 +60,21 @@ let param = { { name: "数据槽slot", desc: "弹出框内容", type: "", default: "" }, { name: "数据槽footer", desc: "弹出框底部按钮,默认只有一个关闭按钮,如果加了
关闭按钮不会显示,需要自己添加", type: "", default: "" }], methods: [] - } + }, uploadExcel: { + attr: [], + methods: [] + }, uploadImg: { + attr: [], + methods: [] + }, volmenu: { + attr: [], + methods: [] + }, voltable: { + attr: [], + methods: [] + }, viewGrid: { + attr: [], + methods: [] + } } -export default param; \ No newline at end of file +export default param; \ No newline at end of file diff --git a/Vol.Vue/src/views/document/docApi/sourceCode.js b/Vol.Vue/src/views/document/docApi/sourceCode.js index ea1dddd2..cd471d68 100644 --- a/Vol.Vue/src/views/document/docApi/sourceCode.js +++ b/Vol.Vue/src/views/document/docApi/sourceCode.js @@ -36,14 +36,28 @@ let codeString = { form: `
<template>
     <div>
-      <VolForm :label-width="150" :loadKey="true" :formFileds="formFileds1" :formRules="formRules1"></VolForm>
+      <VolForm
+        ref="myform"
+        :label-width="150"
+        :loadKey="true"
+        :formFileds="formFileds1"
+        :formRules="formRules1"
+      ></VolForm>
+      <div>
+        <Button type="info" long @click="reset">重置表单</Button>
+      </div>
     </div>
   </template>
   <script>
   import VolForm from "@/components/basic/VolForm.vue";
   export default {
     components: { VolForm },
-    methods: {},
+    methods: {
+      reset() {
+        this.$refs.myform.reset();
+        this.$Message.error("表单已重置");
+      }
+    },
     data() {
       return {
         formFileds1: {
@@ -55,10 +69,13 @@ let codeString = {
           number1: 20,
           mail: "",
           Date: "",
-          IsTop: "还没想好...",
+          IsTop: "",
           Fruits: [],
           Other: "",
           Switch: 1,
+          readonlyText: "还没想好....",
+          readonlyImg:
+            "https://imgs-1256993465.cos.ap-chengdu.myqcloud.com/h5pic/x2.jpg",
           ProImg:
             "https://imgs-1256993465.cos.ap-chengdu.myqcloud.com/h5pic/x3.jpg"
         },
@@ -89,7 +106,12 @@ let codeString = {
               title: "手机号",
               required: true, //设置为必选项
               field: "AgeRange",
-              type: "phone"
+              type: "phone",
+              onKeyPress: $event => {
+                if ($event.keyCode == 13) {
+                  this.$Message.error(this.formFileds1.AgeRange + "");
+                }
+              }
             },
             {
               title: "date日期",
@@ -135,11 +157,11 @@ let codeString = {
               title: "自定义验证",
               required: true,
               field: "Other",
-              validator: (rule, val, callback) => {
+              validator: (rule, val) => {
                 if (val != "234") {
-                  return callback(new Error("必须输入【234】"));
+                  return "必须输入【234】";
                 }
-                return callback();
+                return "";
               }
             },
             {
@@ -152,22 +174,8 @@ let codeString = {
             }
           ],
           [
-            {
-              title: "备注",
-              required: true,
-              field: "IsTop",
-              colSize: 12, //设置12,此列占100%宽度
-              type: "textarea"
-            }
-          ],
-          [
-            {
-              title: "图片",
-              disabled: true, //必须设置此属性
-              field: "ProImg",
-              type: "img"
-            },
-            {
+            //readonlyImg
+            {
               title: "checkbox",
               //如果这里绑定了data数据,后台不会加载此数据源
               data: [
@@ -178,6 +186,37 @@ let codeString = {
               ],
               field: "Fruits",
               type: "checkbox"
+            },
+            {
+              title: "字段只读",
+              readonly: true, //设置readonly或disabled都行
+              field: "readonlyText",
+              type: "text"
+            }
+          ],
+          [
+            {
+              title: "备注",
+              required: true,
+              field: "IsTop",
+              min: 3,
+              max: 5,
+              placeholder: "至少输入3个字符,最多只能输入5个字符",
+              colSize: 12, //设置12,此列占100%宽度
+              type: "textarea"
+            }
+          ],
+          [
+            {
+              title: "图片只读",
+              readonly: true, //设置readonly或disabled都行
+              field: "readonlyImg",
+              type: "img"
+            },
+            {
+              title: "可修改图片",
+              field: "ProImg",
+              type: "img"
             }
           ]
         ]
@@ -215,7 +254,7 @@ let codeString = {
   </script>

 

`, - box:`
+ box: `
<template>
     <div>
       <Button type="info" @click="model=!model">弹出框</Button>
@@ -242,6 +281,7 @@ let codeString = {
   };
   </script>
-

 

` +

 

`, + uploadExcel: ``, uploadImg: ``, volmenu: ``, voltable: ``, viewGrid: `` } export default codeString \ No newline at end of file diff --git a/Vol.Vue/src/views/document/docApi/test.vue b/Vol.Vue/src/views/document/docApi/test.vue index eccb1033..4d130e6f 100644 --- a/Vol.Vue/src/views/document/docApi/test.vue +++ b/Vol.Vue/src/views/document/docApi/test.vue @@ -1,25 +1,190 @@ \ No newline at end of file diff --git a/Vol.Vue/src/views/document/document.vue b/Vol.Vue/src/views/document/document.vue index cecf60e2..38a2f4c7 100644 --- a/Vol.Vue/src/views/document/document.vue +++ b/Vol.Vue/src/views/document/document.vue @@ -175,7 +175,7 @@ export default { left: 0; right: 0; margin: 0 auto; - padding: 30px; + padding: 10px; padding-top: 80px; }