微信小程序联调
This commit is contained in:
@@ -0,0 +1 @@
|
||||
"use strict";const t=require("../../../../common/vendor.js"),e={name:"uniFormsItem",options:{virtualHost:!0},provide(){return{uniFormItem:this}},inject:{form:{from:"uniForm",default:null}},props:{rules:{type:Array,default:()=>null},name:{type:[String,Array],default:""},required:{type:Boolean,default:!1},label:{type:String,default:""},labelWidth:{type:[String,Number],default:""},labelAlign:{type:String,default:""},errorMessage:{type:[String,Boolean],default:""},leftIcon:String,iconColor:{type:String,default:"#606266"}},data:()=>({errMsg:"",userRules:null,localLabelAlign:"left",localLabelWidth:"70px",localLabelPos:"left",border:!1,isFirstBorder:!1}),computed:{msg(){return this.errorMessage||this.errMsg}},watch:{"form.formRules"(t){this.init()},"form.labelWidth"(t){this.localLabelWidth=this._labelWidthUnit(t)},"form.labelPosition"(t){this.localLabelPos=this._labelPosition()},"form.labelAlign"(t){}},created(){this.init(!0),this.name&&this.form&&this.$watch((()=>this.form._getDataValue(this.name,this.form.localData)),((t,e)=>{if(!this.form._isEqual(t,e)){const e=this.itemSetValue(t);this.onFieldChange(e,!1)}}),{immediate:!1})},unmounted(){this.__isUnmounted=!0,this.unInit()},methods:{setRules(t=null){this.userRules=t,this.init(!1)},setValue(){},async onFieldChange(e,i=!0){const{formData:r,localData:s,errShowType:l,validateCheck:a,validateTrigger:o,_isRequiredField:n,_realName:h}=this.form,u=h(this.name);e||(e=this.form.formData[u]);const d=this.itemRules.rules&&this.itemRules.rules.length;if(!this.validator||!d||0===d)return;const m=n(this.itemRules.rules||[]);let f=null;return"bind"===o||i?(f=await this.validator.validateUpdate({[u]:e},r),m||void 0!==e&&""!==e||(f=null),f&&f.errorMessage?("undertext"===l&&(this.errMsg=f?f.errorMessage:""),"toast"===l&&t.index.showToast({title:f.errorMessage||"校验错误",icon:"none"}),"modal"===l&&t.index.showModal({title:"提示",content:f.errorMessage||"校验错误"})):this.errMsg="",a(f||null)):this.errMsg="",f||null},init(t=!1){const{validator:e,formRules:i,childrens:r,formData:s,localData:l,_realName:a,labelWidth:o,_getDataValue:n,_setDataValue:h}=this.form||{};if(this.localLabelAlign=this._justifyContent(),this.localLabelWidth=this._labelWidthUnit(o),this.localLabelPos=this._labelPosition(),this.form&&t&&r.push(this),!e||!i)return;this.form.isFirstBorder||(this.form.isFirstBorder=!0,this.isFirstBorder=!0),this.group&&(this.group.isFirstBorder||(this.group.isFirstBorder=!0,this.isFirstBorder=!0)),this.border=this.form.border;const u=a(this.name),d=this.userRules||this.rules;"object"==typeof i&&d&&(i[u]={rules:d},e.updateSchema(i));const m=i[u]||{};this.itemRules=m,this.validator=e,this.itemSetValue(n(this.name,l))},unInit(){if(this.form){const{childrens:t,formData:e,_realName:i}=this.form;t.forEach(((t,r)=>{t===this&&(this.form.childrens.splice(r,1),delete e[i(t.name)])}))}},itemSetValue(t){const e=this.form._realName(this.name),i=this.itemRules.rules||[],r=this.form._getValue(e,t,i);return this.form._setDataValue(e,this.form.formData,r),r},clearValidate(){this.errMsg=""},_isRequired(){return this.required},_justifyContent(){if(this.form){const{labelAlign:t}=this.form;let e=this.labelAlign?this.labelAlign:t;if("left"===e)return"flex-start";if("center"===e)return"center";if("right"===e)return"flex-end"}return"flex-start"},_labelWidthUnit(t){return this.num2px(this.labelWidth?this.labelWidth:t||(this.label?70:"auto"))},_labelPosition(){return this.form&&this.form.labelPosition||"left"},isTrigger:(t,e,i)=>"submit"!==t&&t?"bind":void 0===t?"bind"!==e?e?"submit":""===i?"bind":"submit":"bind":"submit",num2px:t=>"number"==typeof t?`${t}px`:t}};const i=t._export_sfc(e,[["render",function(e,i,r,s,l,a){return t.e({a:r.required},(r.required,{}),{b:t.t(r.label),c:r.label||r.required?"":1,d:l.localLabelWidth,e:l.localLabelAlign,f:t.t(a.msg),g:a.msg?1:"",h:t.n("is-direction-"+l.localLabelPos),i:t.n(l.border?"uni-forms-item--border":""),j:t.n(l.border&&l.isFirstBorder?"is-first-border":"")})}]]);wx.createComponent(i);
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<view class="{{['uni-forms-item', h, i, j]}}"><block wx:if="{{$slots.label}}"><slot name="label"></slot></block><block wx:else><view class="{{['uni-forms-item__label', c && 'no-label']}}" style="{{'width:' + d + ';' + ('justify-content:' + e)}}"><text wx:if="{{a}}" class="is-required">*</text><text>{{b}}</text></view></block><view class="uni-forms-item__content"><slot></slot><view class="{{['uni-forms-item__error', g && 'msg--active']}}"><text>{{f}}</text></view></view></view>
|
||||
@@ -0,0 +1 @@
|
||||
.uni-forms-item{position:relative;display:flex;margin-bottom:22px;flex-direction:row}.uni-forms-item__label{display:flex;flex-direction:row;align-items:center;text-align:left;font-size:14px;color:#606266;height:36px;padding:0 12px 0 0;vertical-align:middle;flex-shrink:0;box-sizing:border-box}.uni-forms-item__label.no-label{padding:0}.uni-forms-item__content{position:relative;font-size:14px;flex:1;box-sizing:border-box;flex-direction:row}.uni-forms-item .uni-forms-item__nuve-content{display:flex;flex-direction:column;flex:1}.uni-forms-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0;transition:transform .3s;transform:translateY(-100%);opacity:0}.uni-forms-item__error .error-text{color:#f56c6c;font-size:12px}.uni-forms-item__error.msg--active{opacity:1;transform:translateY(0)}.uni-forms-item.is-direction-left{flex-direction:row}.uni-forms-item.is-direction-top{flex-direction:column}.uni-forms-item.is-direction-top .uni-forms-item__label{padding:0 0 8px;line-height:1.5715;text-align:left;white-space:initial}.uni-forms-item .is-required{color:#dd524d;font-weight:700}.uni-forms-item--border{margin-bottom:0;padding:10px 0;border-top:1px #eee solid}.uni-forms-item--border .uni-forms-item__content{flex-direction:column;justify-content:flex-start;align-items:flex-start}.uni-forms-item--border .uni-forms-item__content .uni-forms-item__error{position:relative;top:5px;left:0;padding-top:0}.is-first-border{border:none}
|
||||
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js
vendored
Normal file
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";const e=require("./validate.js"),t=require("./utils.js"),a=require("../../../../common/vendor.js"),i={name:"uniForms",emits:["validate","submit"],options:{virtualHost:!0},props:{value:{type:Object,default:()=>null},modelValue:{type:Object,default:()=>null},model:{type:Object,default:()=>null},rules:{type:Object,default:()=>({})},errShowType:{type:String,default:"undertext"},validateTrigger:{type:String,default:"submit"},labelPosition:{type:String,default:"left"},labelWidth:{type:[String,Number],default:""},labelAlign:{type:String,default:"left"},border:{type:Boolean,default:!1}},provide(){return{uniForm:this}},data:()=>({formData:{},formRules:{}}),computed:{localData(){const e=this.model||this.modelValue||this.value;return e?t.deepCopy(e):{}}},watch:{rules:{handler:function(e,t){this.setRules(e)},deep:!0,immediate:!0}},created(){try{const e=getApp({allowDefault:!0});if(e&&e.$vm&&e.$vm.$&&e.$vm.$.appContext&&e.$vm.$.appContext.config&&e.$vm.$.appContext.config.globalProperties){e.$vm.$.appContext.config.globalProperties.binddata||(e.$vm.$.appContext.config.globalProperties.binddata=function(e,t,a){if(a)this.$refs[a].setValue(e,t);else{let a;for(let e in this.$refs){const t=this.$refs[e];if(t&&t.$options&&"uniForms"===t.$options.name){a=t;break}}if(!a)return console.error("当前 uni-froms 组件缺少 ref 属性");a.model&&(a.model[e]=t),a.modelValue&&(a.modelValue[e]=t),a.value&&(a.value[e]=t)}})}}catch(e){}this.childrens=[],this.inputChildrens=[],this.setRules(this.rules)},methods:{setRules(t){this.formRules=Object.assign({},this.formRules,t),this.validator=new e.SchemaValidator(t)},setValue(e,a){let i=this.childrens.find((t=>t.name===e));return i?(this.formData[e]=t.getValue(e,a,this.formRules[e]&&this.formRules[e].rules||[]),i.onFieldChange(this.formData[e])):null},validate(e,t){return this.checkAll(this.formData,e,t)},validateField(e=[],a){e=[].concat(e);let i={};return this.childrens.forEach((a=>{const l=t.realName(a.name);-1!==e.indexOf(l)&&(i=Object.assign({},i,{[l]:this.formData[l]}))})),this.checkAll(i,[],a)},clearValidate(e=[]){e=[].concat(e),this.childrens.forEach((a=>{if(0===e.length)a.errMsg="";else{const i=t.realName(a.name);-1!==e.indexOf(i)&&(a.errMsg="")}}))},submit(e,t,a){for(let i in this.dataValue){this.childrens.find((e=>e.name===i))&&void 0===this.formData[i]&&(this.formData[i]=this._getValue(i,this.dataValue[i]))}return a||console.warn("submit 方法即将废弃,请使用validate方法代替!"),this.checkAll(this.formData,e,t,"submit")},async checkAll(e,a,i,l){if(!this.validator)return;let r,s=[];for(let d in e){const e=this.childrens.find((e=>t.realName(e.name)===d));e&&s.push(e)}i||"function"!=typeof a||(i=a),!i&&"function"!=typeof i&&Promise&&(r=new Promise(((e,t)=>{i=function(a,i){a?t(a):e(i)}})));let n=[],o=JSON.parse(JSON.stringify(e));for(let d in s){const e=s[d];let a=t.realName(e.name);const i=await e.onFieldChange(o[a]);if(i&&(n.push(i),"toast"===this.errShowType||"modal"===this.errShowType))break}Array.isArray(n)&&0===n.length&&(n=null),Array.isArray(a)&&a.forEach((e=>{let a=t.realName(e),i=t.getDataValue(e,this.localData);void 0!==i&&(o[a]=i)})),"submit"===l?this.$emit("submit",{detail:{value:o,errors:n}}):this.$emit("validate",n);let u={};return u=t.rawData(o,this.name),i&&"function"==typeof i&&i(n,u),r&&i?r:null},validateCheck(e){this.$emit("validate",e)},_getValue:t.getValue,_isRequiredField:t.isRequiredField,_setDataValue:t.setDataValue,_getDataValue:t.getDataValue,_realName:t.realName,_isRealName:t.isRealName,_isEqual:t.isEqual}};const l=a._export_sfc(i,[["render",function(e,t,a,i,l,r){return{}}]]);wx.createComponent(l);
|
||||
4
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.json
vendored
Normal file
4
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.wxml
vendored
Normal file
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="uni-forms"><form><slot></slot></form></view>
|
||||
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/utils.js
vendored
Normal file
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/utils.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";const e=e=>{let r=e.replace("_formdata_#","");return r=r.split("#").map((e=>n(e)?Number(e):e)),r},r=(e,r,a)=>("object"!=typeof e||t(r).reduce(((e,r,t,n)=>t===n.length-1?(e[r]=a,null):(r in e||(e[r]=/^[0-9]{1,}$/.test(n[t+1])?[]:{}),e[r])),e),e);function t(e){return Array.isArray(e)?e:e.replace(/\[/g,".").replace(/\]/g,"").split(".")}const a=(e,r,a="undefined")=>{let n=t(r).reduce(((e,r)=>(e||{})[r]),e);return n&&void 0===n?a:n},n=e=>!isNaN(Number(e)),o=e=>"boolean"==typeof e;exports.deepCopy=e=>JSON.parse(JSON.stringify(e)),exports.getDataValue=(e,r)=>a(r,e),exports.getValue=(e,r,t)=>{const a=t.find((e=>{return e.format&&("int"===(r=e.format)||"double"===r||"number"===r||"timestamp"===r);var r})),l=t.find((e=>e.format&&"boolean"===e.format||"bool"===e.format));return a&&(r=r||0===r?n(Number(r))?Number(r):r:null),l&&(r=!!o(r)&&r),r},exports.isEqual=(e,r)=>{if(e===r)return 0!==e||1/e==1/r;if(null==e||null==r)return e===r;var t=toString.call(e);if(t!==toString.call(r))return!1;switch(t){case"[object RegExp]":case"[object String]":return""+e==""+r;case"[object Number]":return+e!=+e?+r!=+r:0==+e?1/+e==1/r:+e==+r;case"[object Date]":case"[object Boolean]":return+e==+r}if("[object Object]"==t){var a=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(r);if(a.length!=n.length)return!1;for(var o=0;o<a.length;o++){var l=a[o];if(e[l]!==r[l])return!1}return!0}return"[object Array]"==t?e.toString()==r.toString():void 0},exports.isRealName=e=>/^_formdata_#*/.test(e),exports.isRequiredField=e=>{let r=!1;for(let t=0;t<e.length;t++){if(e[t].required){r=!0;break}}return r},exports.rawData=(t={},a)=>{let n=JSON.parse(JSON.stringify(t)),o={};for(let l in n){let t=e(l);r(o,t,n[l])}return o},exports.realName=(e,r={})=>{const a=t(e);if("object"==typeof a&&Array.isArray(a)&&a.length>1){return a.reduce(((e,r)=>e+`#${r}`),"_formdata_")}return a[0]||e},exports.setDataValue=(e,r,t)=>(r[e]=t,t||"");
|
||||
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/validate.js
vendored
Normal file
1
unpackage/dist/build/mp-weixin/uni_modules/uni-forms/components/uni-forms/validate.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user