y-taro-ui
Version:
基于taro的表单解决方案 & 基础组件
1 lines • 63.7 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react/jsx-runtime"),i=require("@tarojs/components"),o=require("@tarojs/taro"),n=require("lodash/defaultsDeep"),s=require("going-merry"),a=require("react-transition-group"),c=require("lodash/throttle");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=r(e),d=r(o),m=r(n),u=r(c);function C(e,t,i){return e(i={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&i.path)}},i.exports),i.exports}var p=C((function(e){!function(){var t={}.hasOwnProperty;function i(){for(var e=[],o=0;o<arguments.length;o++){var n=arguments[o];if(n){var s=typeof n;if("string"===s||"number"===s)e.push(n);else if(Array.isArray(n)){if(n.length){var a=i.apply(null,n);a&&e.push(a)}}else if("object"===s)if(n.toString===Object.prototype.toString)for(var c in n)t.call(n,c)&&n[c]&&e.push(c);else e.push(n.toString())}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):window.classNames=i}()}));function y(e,t){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(i[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(i[o[n]]=e[o[n]])}return i}const v=e=>"[object Object]"===Object.prototype.toString.call(e),h=e=>e.then(e=>({data:e,error:null})).catch(e=>({error:e,data:null})),g=e=>h(o.chooseImage(e)),f=(e,t=2e3)=>{o.showToast({icon:"none",title:e,duration:t})},b=(e,t=6e4)=>{o.showToast({icon:"loading",mask:!0,title:e,duration:t})},x=e=>{e.stopPropagation()},j=(e,t=!0)=>{null==e||e.preventDefault(),t&&x(e)};function O(e=25){return new Promise(t=>{setTimeout(()=>{t(null)},e)})}const w=e=>"y-taro-ui-"+e,k=(e,t)=>({["--y-taro-ui-"+e]:t}),N=e=>{const{type:o,style:n,className:s,onClick:a,animated:c}=e,r=p(s,w("icon"),w("icon-"+o),{[w("icon-animate")]:c});return t.jsx(i.Text,{className:r,onClick:a,style:n})},V=e=>{const{border:o=!0,formType:n,onClick:s,style:a,className:c,async:r=!1,native:d=!0,type:m="primary",block:u=!1,loading:C=!1,disabled:v=!1,shape:h="default",size:g="middle",loadingText:f,loadingIcon:b,showLoadingIcon:x=!0,children:j,icon:O,flex:k=1,wait:V=1}=e,F=y(e,["border","formType","onClick","style","className","async","native","type","block","loading","disabled","shape","size","loadingText","loadingIcon","showLoadingIcon","children","icon","flex","wait"]),[I,T]=l.default.useState(!1),S=l.default.useRef(!1),P=v||C||I,E={style:Object.assign(Object.assign({},a),{flex:k}),className:p(c,w("button"),w("button-text-overflow-hide"),w("button-"+m),w("button-size-"+g),w("button-shape-"+h),{[w("button-block")]:u,[w("button-disabled")]:P,[w("button-loading")]:P,[w("button-border")]:!o}),onClick:async e=>{if(!P&&!S.current)if(r){T(!0);try{s&&await s(e)}catch(e){}finally{T(!1)}}else S.current=!0,s&&s(e),setTimeout(()=>S.current=!1,1e3*V)},disabled:P},A=l.default.useMemo(()=>C||I?t.jsxs(i.View,Object.assign({className:w("button-loading-wrapper")},{children:[!!x&&t.jsx(i.View,Object.assign({className:w("button-loading-icon")},{children:b||t.jsx(N,{type:"loading-outlined"})})),t.jsx(i.View,Object.assign({className:w("button-text-overflow-hide")},{children:f||j}))]})):O?t.jsxs(i.View,Object.assign({className:w("button-loading-wrapper")},{children:[t.jsx(i.View,Object.assign({className:w("button-icon")},{children:t.jsx(N,{type:O})})),t.jsx(i.View,Object.assign({className:w("button-text-overflow-hide")},{children:j}))]})):j,[C,I,x,b,f,j,O]);return d?t.jsx(i.Button,Object.assign({formType:n},E,F,{children:A})):t.jsx(i.View,Object.assign({},E,{children:A}))},F=e=>t.jsx(i.View,Object.assign({style:e.style,className:p(w("buttons"),e.className)},{children:e.children}));F.Button=V;const I={components:{form:{reset:"重置",cancel:"取消",submit:"确定",requiredError:" 不可为空",validatorError:" 校验未通过"},imagePicker:{add:"添加",previewError:"图片预览失败,请稍后重试!",chooseImageError:"获取图片失败,请重新选择或拍摄图片!",loading:"上传中...",uploadError:"上传失败"}}},T="Y-TARO-UI-KEY-YY0380";class S{constructor(e){this.fieldEntities=[],this.values={},this.initialValues={},this.callbacks={},this.validateMessages=[],this.subscribable=!0,this.init=!0,this.config={layout:"horizontal",locale:"zh-cn",readonly:!1,textAlign:"right",language:I},this.setConfigs=e=>{this.config=m.default(e,this.config)},this.getFieldValue=e=>this.values[e],this.getFieldsValue=()=>this.values,this.reRenderFieldComponent=(e,t,i,o)=>{this.getFieldEntities().forEach(({name:n,onStoreChange:s,shouldUpdate:a})=>{"function"==typeof a&&a(t,i)||a?s({}):Object.keys(e).forEach(e=>{(n===e||o)&&s({})})})},this.setFieldsValue=(e,t)=>{const i=Object.assign({},this.values),o=Object.assign(Object.assign({},this.values),e);this.values=o,this.subscribable?(this.forceRootUpdate({}),this.reRenderFieldComponent(e,i,o,t)):this.reRenderFieldComponent(e,i,o,t);const{onValuesChange:n}=this.callbacks;n&&n(e,o)},this.getFieldEntities=(e=!1)=>{if(!e)return this.fieldEntities},this.setInitialValues=(e,t)=>{(this.init||t)&&(this.initialValues=e||{},this.setFieldsValue(e),this.init=!1)},this.resetStatus=()=>{this.init=!0},this.registerField=e=>{this.fieldEntities.push(e);const{initialValue:t,name:i}=e;if(void 0!==t&&i){const e={[i]:t};this.initialValues=Object.assign(Object.assign({},this.initialValues),e),this.setFieldsValue(e)}return()=>{this.fieldEntities=this.fieldEntities.filter(t=>t!==e);const t=Object.assign({},this.values);delete t[e.name],this.values=t}},this.setCallbacks=e=>{this.callbacks=e},this.getFields=()=>this.fieldEntities.map(e=>{const t=this.getFieldValue(e.name);return Object.assign({value:t},e)}),this.getField=e=>{const[t]=this.fieldEntities.filter(t=>t.name===e),i=this.getFieldValue(t.name);return Object.assign({value:i},t)},this.getInternalHooks=e=>e===T?{registerField:this.registerField,setInitialValues:this.setInitialValues,setCallbacks:this.setCallbacks,getFields:this.getFields,setConfigs:this.setConfigs,resetStatus:this.resetStatus}:null,this.validateFields=()=>(this.validateMessages=[],this.getFields().every(e=>{const{name:t,rules:i,label:o}=e;return!i||i.every(e=>{const i=o||"";return("function"==typeof e.required?e.required():e.required)&&!this.values[t]?(this.validateMessages.push({name:t,label:o,message:e.message||`${i}${this.config.language.components.form.requiredError}`}),!1):!(e.validator&&!e.validator(this.values[t]))||(this.validateMessages.push({name:t,label:o,message:e.message||`${i}${this.config.language.components.form.validatorError}`}),!1)})})),this.getFieldsError=()=>(this.validateFields(),this.validateMessages),this.useSubscribe=e=>{this.subscribable=e},this.reset=()=>{const e={};this.getFieldEntities().forEach(({name:t})=>{t&&(e[t]=this.initialValues[t])}),this.setFieldsValue(e,!0)},this.submit=()=>{this.validateFields()?this.callbacks.onFinish&&this.callbacks.onFinish(this.config.filterInitialValues?this.fieldEntities.reduce((e,t)=>Object.assign(Object.assign({},e),{[t.name]:this.values[t.name]}),{}):this.values):this.callbacks.onFinishFailed&&this.callbacks.onFinishFailed(this.validateMessages)},this.getForm=()=>({useSubscribe:this.useSubscribe,getFields:this.getFields,getField:this.getField,getFieldValue:this.getFieldValue,getFieldsValue:this.getFieldsValue,setFieldsValue:this.setFieldsValue,setInitialValues:this.setInitialValues,submit:this.submit,reset:this.reset,getInternalHooks:this.getInternalHooks,getFieldsError:this.getFieldsError}),this.forceRootUpdate=e}}const P=t=>{const i=e.useRef(),[,o]=e.useState({});return i.current||(i.current=t||new S(o).getForm()),[i.current]},E=e.memo(e=>{const{options:o=[],value:n,onChange:s,vlidate:a,fieldId:c,disabled:r,direction:l="column",justify:d="flex-start",icon:m="check-circle-filled"}=e;return t.jsx(i.View,Object.assign({className:p(w("radio"),w("radio-direction-"+l),{[w("radio-justify-"+d)]:"row"===l})},{children:o.map(e=>t.jsxs(i.View,Object.assign({className:p(w("radio-item"),{[w("radio-item__disabled")]:r||e.disabled}),onClick:()=>{var t;r||e.disabled||(t=e.id,(a&&a(t)||!a&&!r)&&t!==n&&s&&s(t,c))}},{children:[n===e.id?t.jsx(N,{type:m,className:p(w("radio-item-checkbox"),{[w("radio-item-checkbox__disabled")]:r||e.disabled,[w("radio-item-checkbox__checked")]:!0})}):t.jsx(N,{type:"uncheck-circle-outlined",className:p(w("radio-item-checkbox"),{[w("radio-item-checkbox__disabled")]:r||e.disabled})}),t.jsx(i.Text,Object.assign({className:w("radio-item-text")},{children:e.name}))]}),e.id))}))}),A=e.createContext({readonly:!1,disabled:!1,validateFirst:!1,layout:"horizontal",textAlign:"right",locale:"zh-cn",language:I,formInstance:{}}),_=new Map([["multiSelector",(e,t=[],i)=>t?t.map((t,o)=>{const n=e[o][t];return v(n)?n[i]:n}):null],["selector",(e,t,i)=>{const o=e[t];return v(o)?o[i]:o}]]),$=new Map([["multiSelector",(e,t=[],i,o)=>t?t.map((t,n)=>{const s=e[n].find(e=>e[o]===t);return v(s)?s[i]:s}):null],["selector",(e,t,i,o)=>{const n=e.find(e=>e[o]===t);return v(n)?n[i]:n}]]),M=new Map([["region",(e,t)=>t||[]],["date",(e,t)=>t||""],["time",(e,t)=>t||"00:00"],["multiSelector",(e,t,i)=>t?t.map((t,o)=>{let n=0;return e[o].forEach((e,o)=>{(v(e)&&e[i]===t||e===t)&&(n=o)}),n}):[]],["selector",(e,t,i)=>{let o=0;return e.forEach((e,n)=>{(v(e)&&e[i]===t||e===t)&&(o=n)}),String(o)}]]),R=e.memo(o=>{const{icon:n="right-outlined",placeholder:s,disabled:a=!1,value:c,vlidate:r,mode:l="date",fieldId:d,start:m,end:u,fields:C="day",range:y=[],formatValue:v,rangeKey:h="name",valueKey:g="id",layout:f,onColumnChange:b}=o,{textAlign:x}=e.useContext(A),j=(Array.isArray(c)&&c.length||["string","number"].includes(typeof c))&&c;return t.jsx(i.View,Object.assign({className:w("picker")},{children:t.jsx(i.Picker,Object.assign({disabled:a,range:y,mode:l,onChange:e=>{if(r&&r(e.detail.value)||!r){const t=()=>_.has(l)&&_.get(l)(y,e.detail.value,g)||e.detail.value;o.onChange&&o.onChange(t(),d)}},value:M.has(l)&&M.get(l)(y,c,g),start:m,end:u,fields:C,onColumnChange:b,rangeKey:"object"==typeof y[0]?h:""},{children:t.jsxs(i.View,Object.assign({style:"vertical"===f?{justifyContent:"space-between"}:"right"==x?{justifyContent:"flex-end"}:{},className:w("picker-item")},{children:[j?t.jsxs(i.View,Object.assign({className:p(w("picker-item-value"),{[w("picker-item__disabled")]:a})},{children:[o.addonBefore,v&&v(c)||$.has(l)&&$.get(l)(y,c,h,g)||c,o.addonAfter]})):t.jsxs(i.View,Object.assign({className:w("picker-placeholder")},{children:[o.addonPlaceholderBefore,s,o.addonPlaceholderAfter]})),!a&&"none"!==n&&t.jsx(N,{className:w("picker-icon"),type:n})]}))}))}))}),B=e.memo(e=>{const{value:o,onChange:n,vlidate:s,onBlur:a,addonBefore:c,addonAfter:r,type:l="text",fieldId:d,disabled:m,placeholderClass:u}=e,C=y(e,["value","onChange","vlidate","onBlur","addonBefore","addonAfter","type","fieldId","disabled","placeholderClass"]),v=p(w("input"),{[w("input-main__disabled")]:m});return t.jsxs(i.View,Object.assign({className:v},{children:[c?t.jsx(i.View,Object.assign({className:w("input-addonBefore")},{children:c})):null,t.jsx(i.Input,Object.assign({disabled:m,type:l,onInput:e=>{const{detail:{value:t}}=e;(s&&s(t)||!s)&&t!==o&&n&&n(t,d)},onBlur:e=>{const{detail:{value:t}}=e;(s&&s(t)||!s)&&a&&a(t,d)},value:o,className:w("input-main"),placeholderClass:p(w("input-placeholder"),u)},C)),r?t.jsx(i.View,Object.assign({className:w("input-addonAfter")},{children:r})):null]}))}),D=l.default.memo(e=>{const{value:o,onChange:n,vlidate:s,fieldId:a,onBlur:c,line:r=4,disabled:l,placeholderClass:d,style:m,className:u}=e,C=y(e,["value","onChange","vlidate","fieldId","onBlur","line","disabled","placeholderClass","style","className"]),v=p(w("textarea"),{[w("textarea-main__disabled")]:l});return t.jsx(i.View,Object.assign({className:v},{children:t.jsx(i.Textarea,Object.assign({disabled:l,onInput:e=>{const{detail:{value:t}}=e;(s&&s(t)||!s)&&t!==o&&n&&n(t,a)},onBlur:e=>{const{detail:{value:t}}=e;(s&&s(t)||!s)&&c&&c(t,a)},value:o,placeholderClass:p(w("textarea-placeholder"),d),className:p(w("textarea-main"),u)},C,{style:Object.assign(Object.assign({},m),{height:1.5*r*14+"px"})}))}))}),q={url:"url",id:"file_id",type:"file_type"},z=e.memo(n=>{const{disabled:s,value:a="",borderType:c="dashed",showAdd:r=!0,showDelete:l=!0,maxCount:d=9,mode:u="aspectFit",className:C,addonAfter:y,onUpload:v,onGetfile:h,fileConfig:x,dataFormat:j,showErrorMessage:O=!0,valueType:k="string"}=n,{language:V=I}=e.useContext(A),[F,T]=e.useState([]),S=e.useRef(!1),P=e.useRef(a),E=e.useMemo(()=>m.default(x,q),[x]);e.useEffect(()=>{if(!S.current&&P.current&&h){S.current=!0;(async()=>{const e="string"===k&&"string"==typeof a?a.split(","):a,t=await e.reduce(async(e,t)=>{const i=await e.then(),o=await h(t).catch(()=>({[E.id]:"",[E.url]:""}));return j?i.push(j(o)):i.push({id:o[E.id],type:o[E.type],url:o[E.url]}),Promise.resolve(i)},Promise.resolve([]));T(t)})()}},[a,h,E,j,S,k]);const _=e=>{const t=e.map(e=>e.id);return k===typeof a?t.toString():t},$=p(w("image-picker-item"));return t.jsxs(i.View,Object.assign({className:p(w("image-picker"),C)},{children:[F.map((e,a)=>t.jsx(i.View,Object.assign({className:$},{children:t.jsxs(i.View,Object.assign({className:p(w("image-picker-content"),w("image-picker-content__"+c))},{children:[!s&&l&&t.jsx(N,{type:"close-filled",className:w("image-picker-content-delete"),onClick:()=>(e=>{const{onChange:t}=n,i=[...F];i.splice(e,1),T(i),t&&t(_(i))})(a)}),e.url?t.jsx(i.Image,{className:w("image-picker-content-img"),src:e.url,mode:u,onClick:t=>{t.stopPropagation(),(e=>{const{onPreview:t}=n;t&&t(),o.previewImage({current:e,urls:[e]}).catch(()=>{f(V.components.imagePicker.previewError)})})(e.url)}}):null]}))}),`${e.id}-${a}`)),!s&&r&&F.length<d?t.jsx(i.View,Object.assign({className:$},{children:t.jsx(i.View,Object.assign({className:p(w("image-picker-content"),w("image-picker-content__"+c))},{children:t.jsxs(i.View,Object.assign({className:w("image-picker-content-wrap"),onClick:async()=>{const{onChange:e}=n,{data:t,error:i}=await g({count:1,sourceType:["camera","album"],sizeType:["original","compressed"]});if(i){const{errMsg:e=""}=i;if("chooseImage:fail cancel"===e)return;f(e)}const{tempFilePaths:[s]}=t;if(!s)return console.log("chooseImage api success but tempFilePaths is empty!"),f(V.components.imagePicker.chooseImageError);if(v){b(V.components.imagePicker.loading);const t=await v(s).finally(()=>{o.hideToast()}).catch(({message:e=V.components.imagePicker.uploadError})=>{O&&f(e)});if(t){const i=[...F,{id:t[E.id],type:t[E.type],url:t[E.url]||s}];T(i),e&&e(_(i))}}}},{children:[t.jsx(N,{type:"camera-add-filled",className:w("image-picker-content-add")}),t.jsx(i.Text,Object.assign({className:w("image-picker-content-add-text")},{children:V.components.imagePicker.add}))]}))}))})):null,y]}))}),U=e.memo(e=>{const{fieldId:o,onChange:n}=e,s=y(e,["fieldId","onChange"]);return t.jsx(i.View,Object.assign({className:w("upload")},{children:t.jsx(z,Object.assign({},s,{onChange:e=>{n&&n(e,o)}}))}))}),L=l.default.createContext(null),W=l.default.memo(e=>{const{children:o,label:n,disabled:s,checked:a=!1,onChange:c,icon:r="check-circle-filled"}=e,d=l.default.useContext(L);return t.jsxs(i.View,Object.assign({className:p(w("checkbox"),{[w("checkbox__disabled")]:s}),onClick:()=>{s||((null==d?void 0:d.onToggle)&&d.onToggle(Object.assign({},e)),c&&c(!a))}},{children:[a?t.jsx(N,{type:r,className:p(w("checkbox-checkbox"),{[w("checkbox-checkbox__disabled")]:s,[w("checkbox-checkbox__checked")]:!0})}):t.jsx(N,{type:"uncheck-circle-outlined",className:p(w("checkbox-checkbox"),{[w("checkbox-checkbox__disabled")]:s})}),n&&t.jsx(i.Text,Object.assign({className:w("checkbox-text")},{children:n})),o]}))}),K=l.default.memo(e=>{const{options:o=[],value:n=[],onChange:s,vlidate:a,fieldId:c,disabled:r,max:l=0,direction:d="column",justify:m="flex-start",icon:u="check-circle-filled",children:C}=e,y=e=>{(a&&a(e)||!a&&!r)&&s&&s(e,c)},v={value:n,disabled:r,name:c,onToggle:e=>{const t=n.indexOf(e.value),i=[...n];-1===t?0!==l?i.length+1<=l&&i.push(e.value):i.push(e.value):i.splice(t,1),y(i)},max:l};return t.jsx(i.View,Object.assign({className:p(w("checkbox-group"),w("checkbox-group-direction-"+d),{[w("checkbox-group-justify-"+m)]:"row"===d})},{children:t.jsxs(L.Provider,Object.assign({value:v},{children:[o&&o.map(e=>t.jsx(W,{checked:null==n?void 0:n.includes(e.id),className:e.className,style:e.style,disabled:r||e.disabled,value:e.id,label:e.name,icon:u},`${e.name}-${e.id}`)),C]}))}))}),Y=new Map([["TEXT",e=>t.jsx(i.View,{children:e.value})],["INPUT",e=>t.jsx(B,Object.assign({},e))],["PICKER",e=>t.jsx(R,Object.assign({},e))],["RADIO",e=>t.jsx(E,Object.assign({},e))],["TEXTAREA",e=>t.jsx(D,Object.assign({},e))],["UPLOAD",e=>t.jsx(U,Object.assign({},e))],["CHECKBOX",e=>t.jsx(K,Object.assign({},e))]]),H=e.memo(o=>{const{initialValue:n,children:s,type:a,label:c,name:r,rules:d,render:u,componentProps:C,shouldUpdate:y,isShow:v,layout:h}=o,[,g]=e.useState({}),{textAlign:f,formInstance:b,layout:x="horizontal",readonly:j,disabled:O}=e.useContext(A),k=e.useRef({touched:!1,shouldUpdate:void 0!==v||y,rules:d,name:r,label:c,initialValue:n,onStoreChange:g}),{setFieldsValue:N,getInternalHooks:V,getFieldValue:F}=b,{registerField:I}=V(T),S=h||x;e.useEffect(()=>{let e=()=>{};return e=I(k.current),()=>{e()}},[I]);const P=e.useCallback(e=>r?m.default({disabled:O||j,value:F(r)||n,layout:S,onChange:t=>{N({[r]:t}),e&&e(t)}},Object.assign({},C)):Object.assign(Object.assign({disabled:O||j},C),{layout:S}),[r,C,F,N,O,j,S]);let E=t.jsx(i.Text,{children:"not support this type"});l.default.isValidElement(s)?E=l.default.cloneElement(s,m.default(P(s.props.onChange),s.props)):Y.has(a)&&(E=Y.get(a)(P(null==C?void 0:C.onChange)));const _=d&&d.find(e=>"function"==typeof e.required?e.required():!!e.required);return S?t.jsxs(i.Label,Object.assign({className:p(w("forms-layout"),w("forms-layout-"+S)),for:r},{children:[c?t.jsx(i.View,Object.assign({className:p(w(`forms-layout-${S}-name`),{[w("forms-layout-name__required")]:_,[w("forms-layout-name")]:!0})},{children:t.jsx(i.View,Object.assign({className:w("forms-layout-name-text")},{children:c}))})):null,t.jsx(i.View,Object.assign({style:"horizontal"===S?{textAlign:f}:{},className:w("forms-layout-value"),id:r},{children:"function"==typeof s?s(b):u?u(b):E}))]})):E}),X=i=>{const{isShow:o,dependences:n}=i,{formInstance:s}=e.useContext(A),{getFieldsValue:a,getFieldValue:c}=s,r=a();if(!1===o||"function"==typeof o&&!o({getFieldsValue:a,getFieldValue:c}))return null;if("string"==typeof n&&!r[n])return null;if("function"==typeof n&&!n({getFieldsValue:a,getFieldValue:c}))return null;if(v(n)&&!n.value.test(r[n.name]))return null;if(Array.isArray(n)){if(!n.every(e=>"string"==typeof e?!!r[e]:v(e)?!!e.value.test(r[e.name]):(console.warn("依赖的数组项不正确, 请修改为 (string | { name: string; value: RegExp })[]"),!1)))return null}return i.name||i.label?t.jsx(H,Object.assign({},i)):"function"==typeof i.children?i.children(s):i.children},Q=i=>{const{children:o}=i,{formInstance:n}=e.useContext(A),{submit:s,reset:a}=n,c=e=>l.default.isValidElement(e)?l.default.cloneElement(e):Array.isArray(e)?e.map(e=>{if(l.default.isValidElement(e)){const{props:t}=e;return"submit"===t.formType?l.default.cloneElement(e,Object.assign(Object.assign({},t),{onClick:()=>{t.onClick&&t.onClick(),s&&s()}})):"reset"===t.formType?l.default.cloneElement(e,Object.assign(Object.assign({},t),{onClick:()=>{t.onClick&&t.onClick(),a&&a()}})):l.default.cloneElement(e)}return Array.isArray(e)?c(e):v(e)?t.jsx(X,Object.assign({},e)):void 0}):void 0;return t.jsx(e.Fragment,{children:c(o)})},G=new Map([["zh-cn",I],["en",{components:{form:{reset:"Reset",cancel:"Cancel",submit:"Submit",requiredError:" is required",validatorError:" check failed"},imagePicker:{add:"Add Image",previewError:"Image preview failed, please try again later!",chooseImageError:"Failed to get the picture, please select again or take a picture!",loading:"Uploading...",uploadError:"upload failed"}}}]]),J=e=>{if(l.default.isValidElement(e)){const{props:t}=e;return!!["submit","reset"].includes(t.formType)}if(Array.isArray(e))return e.some(e=>{if(l.default.isValidElement(e)){const{props:t}=e;return!!["submit","reset"].includes(t.formType)}return Array.isArray(e)?J(e):!v(e)&&void 0})},Z=l.default.forwardRef((o,n)=>{const{filterInitialValues:s=!0,readonly:a,layout:c="horizontal",textAlign:r="right",locale:l="zh-cn",fields:d=[],submitter:m,onValuesChange:u,initialValues:C={},disabled:y,onFinish:h,onFinishFailed:g,children:f,form:b,loading:x=!1,loadingIcon:j=t.jsx(i.Text,{}),className:O,style:k}=o,[N]=P(b),{getInternalHooks:F,submit:I,reset:S}=N,{setCallbacks:E,setInitialValues:_,setConfigs:$}=F(T);e.useImperativeHandle(n,()=>N);const M=G.get(l);e.useEffect(()=>{E({onFinish:h,onFinishFailed:g,onValuesChange:u}),$({disabled:y,readonly:a,layout:c,textAlign:r,locale:l,language:M,filterInitialValues:s})},[y,$,h,g,u,a,c,r,l,M,E,s]),x||_(C);const R=e.useMemo(()=>f?t.jsx(Q,{children:f}):d?t.jsx(Q,{children:d}):void 0,[d,f]),B=e.useMemo(()=>{if(a)return null;if(null===m)return m;if("function"==typeof m)return m({onSubmit:I,onReset:S});if(f&&J(f))return null;if(!m)return t.jsx(i.Block,{children:t.jsx(V,Object.assign({block:!0,onClick:I},{children:null==M?void 0:M.components.form.submit}))});const{resetButton:e,cancelButton:o,submitButton:n={},render:s}=m;return s?s({onSubmit:I,onReset:S}):t.jsxs(i.Block,{children:[e&&t.jsx(V,Object.assign({block:!0,formType:"reset"},e,{onClick:S},{children:v(e)&&e.text||(null==M?void 0:M.components.form.reset)})),o&&t.jsx(V,Object.assign({block:!0},o,{children:v(o)&&o.text||(null==M?void 0:M.components.form.cancel)})),t.jsx(V,Object.assign({block:!0,formType:"submit"},n,{onClick:I},{children:v(n)&&n.text||(null==M?void 0:M.components.form.submit)}))]})},[m,M,I,S,a,f]),D=e.useMemo(()=>({readonly:a,layout:c,disabled:y,textAlign:r,locale:l,language:M,formInstance:N}),[a,c,y,r,l,M,N]);return!1===x?t.jsx(i.View,Object.assign({className:w("forms")},{children:t.jsx(A.Provider,Object.assign({value:D},{children:t.jsxs(i.Form,Object.assign({className:p(w("form"),O),style:k},{children:[R,B]}))}))})):j});Z.Field=X,Z.Fields=Q,Z.useForm=P,Z.formContext=A;const ee=[{provinceCode:"110000",name:"北京市",CityTaxFullInfos:[{cityCode:"110100",name:"北京市",provinceCode:"110000"}]},{provinceCode:"120000",name:"天津市",CityTaxFullInfos:[{cityCode:"120100",name:"天津市",provinceCode:"120000"}]},{provinceCode:"130000",name:"河北省",CityTaxFullInfos:[{cityCode:"130100",name:"石家庄市",provinceCode:"130000"},{cityCode:"130200",name:"唐山市",provinceCode:"130000"},{cityCode:"130300",name:"秦皇岛市",provinceCode:"130000"},{cityCode:"130400",name:"邯郸市",provinceCode:"130000"},{cityCode:"130500",name:"邢台市",provinceCode:"130000"},{cityCode:"130600",name:"保定市",provinceCode:"130000"},{cityCode:"130700",name:"张家口市",provinceCode:"130000"},{cityCode:"130800",name:"承德市",provinceCode:"130000"},{cityCode:"130900",name:"沧州市",provinceCode:"130000"},{cityCode:"131000",name:"廊坊市",provinceCode:"130000"},{cityCode:"131100",name:"衡水市",provinceCode:"130000"}]},{provinceCode:"140000",name:"山西省",CityTaxFullInfos:[{cityCode:"140100",name:"太原市",provinceCode:"140000"},{cityCode:"140200",name:"大同市",provinceCode:"140000"},{cityCode:"140300",name:"阳泉市",provinceCode:"140000"},{cityCode:"140400",name:"长治市",provinceCode:"140000"},{cityCode:"140500",name:"晋城市",provinceCode:"140000"},{cityCode:"140600",name:"朔州市",provinceCode:"140000"},{cityCode:"140700",name:"晋中市",provinceCode:"140000"},{cityCode:"140800",name:"运城市",provinceCode:"140000"},{cityCode:"140900",name:"忻州市",provinceCode:"140000"},{cityCode:"141000",name:"临汾市",provinceCode:"140000"},{cityCode:"141100",name:"吕梁市",provinceCode:"140000"}]},{provinceCode:"150000",name:"内蒙古自治区",CityTaxFullInfos:[{cityCode:"150100",name:"呼和浩特市",provinceCode:"150000"},{cityCode:"150200",name:"包头市",provinceCode:"150000"},{cityCode:"150300",name:"乌海市",provinceCode:"150000"},{cityCode:"150400",name:"赤峰市",provinceCode:"150000"},{cityCode:"150500",name:"通辽市",provinceCode:"150000"},{cityCode:"150600",name:"鄂尔多斯市",provinceCode:"150000"},{cityCode:"150700",name:"呼伦贝尔市",provinceCode:"150000"},{cityCode:"150800",name:"巴彦淖尔市",provinceCode:"150000"},{cityCode:"150900",name:"乌兰察布市",provinceCode:"150000"},{cityCode:"152200",name:"兴安盟",provinceCode:"150000"},{cityCode:"152500",name:"锡林郭勒盟",provinceCode:"150000"},{cityCode:"152900",name:"阿拉善盟",provinceCode:"150000"}]},{provinceCode:"210000",name:"辽宁省",CityTaxFullInfos:[{cityCode:"210100",name:"沈阳市",provinceCode:"210000"},{cityCode:"210200",name:"大连市",provinceCode:"210000"},{cityCode:"210300",name:"鞍山市",provinceCode:"210000"},{cityCode:"210400",name:"抚顺市",provinceCode:"210000"},{cityCode:"210500",name:"本溪市",provinceCode:"210000"},{cityCode:"210600",name:"丹东市",provinceCode:"210000"},{cityCode:"210700",name:"锦州市",provinceCode:"210000"},{cityCode:"210800",name:"营口市",provinceCode:"210000"},{cityCode:"210900",name:"阜新市",provinceCode:"210000"},{cityCode:"211000",name:"辽阳市",provinceCode:"210000"},{cityCode:"211100",name:"盘锦市",provinceCode:"210000"},{cityCode:"211200",name:"铁岭市",provinceCode:"210000"},{cityCode:"211300",name:"朝阳市",provinceCode:"210000"},{cityCode:"211400",name:"葫芦岛市",provinceCode:"210000"}]},{provinceCode:"220000",name:"吉林省",CityTaxFullInfos:[{cityCode:"220100",name:"长春市",provinceCode:"220000"},{cityCode:"220200",name:"吉林市",provinceCode:"220000"},{cityCode:"220300",name:"四平市",provinceCode:"220000"},{cityCode:"220400",name:"辽源市",provinceCode:"220000"},{cityCode:"220500",name:"通化市",provinceCode:"220000"},{cityCode:"220600",name:"白山市",provinceCode:"220000"},{cityCode:"220700",name:"松原市",provinceCode:"220000"},{cityCode:"220800",name:"白城市",provinceCode:"220000"},{cityCode:"222400",name:"延边朝鲜族自治州",provinceCode:"220000"}]},{provinceCode:"230000",name:"黑龙江省",CityTaxFullInfos:[{cityCode:"230100",name:"哈尔滨市",provinceCode:"230000"},{cityCode:"230200",name:"齐齐哈尔市",provinceCode:"230000"},{cityCode:"230300",name:"鸡西市",provinceCode:"230000"},{cityCode:"230400",name:"鹤岗市",provinceCode:"230000"},{cityCode:"230500",name:"双鸭山市",provinceCode:"230000"},{cityCode:"230600",name:"大庆市",provinceCode:"230000"},{cityCode:"230700",name:"伊春市",provinceCode:"230000"},{cityCode:"230800",name:"佳木斯市",provinceCode:"230000"},{cityCode:"230900",name:"七台河市",provinceCode:"230000"},{cityCode:"231000",name:"牡丹江市",provinceCode:"230000"},{cityCode:"231100",name:"黑河市",provinceCode:"230000"},{cityCode:"231200",name:"绥化市",provinceCode:"230000"},{cityCode:"232700",name:"大兴安岭地区",provinceCode:"230000"}]},{provinceCode:"310000",name:"上海市",CityTaxFullInfos:[{cityCode:"310100",name:"上海市",provinceCode:"310000"}]},{provinceCode:"320000",name:"江苏省",CityTaxFullInfos:[{cityCode:"320100",name:"南京市",provinceCode:"320000"},{cityCode:"320200",name:"无锡市",provinceCode:"320000"},{cityCode:"320300",name:"徐州市",provinceCode:"320000"},{cityCode:"320400",name:"常州市",provinceCode:"320000"},{cityCode:"320500",name:"苏州市",provinceCode:"320000"},{cityCode:"320600",name:"南通市",provinceCode:"320000"},{cityCode:"320700",name:"连云港市",provinceCode:"320000"},{cityCode:"320800",name:"淮安市",provinceCode:"320000"},{cityCode:"320900",name:"盐城市",provinceCode:"320000"},{cityCode:"321000",name:"扬州市",provinceCode:"320000"},{cityCode:"321100",name:"镇江市",provinceCode:"320000"},{cityCode:"321200",name:"泰州市",provinceCode:"320000"},{cityCode:"321300",name:"宿迁市",provinceCode:"320000"}]},{provinceCode:"330000",name:"浙江省",CityTaxFullInfos:[{cityCode:"330100",name:"杭州市",provinceCode:"330000"},{cityCode:"330200",name:"宁波市",provinceCode:"330000"},{cityCode:"330300",name:"温州市",provinceCode:"330000"},{cityCode:"330400",name:"嘉兴市",provinceCode:"330000"},{cityCode:"330500",name:"湖州市",provinceCode:"330000"},{cityCode:"330600",name:"绍兴市",provinceCode:"330000"},{cityCode:"330700",name:"金华市",provinceCode:"330000"},{cityCode:"330800",name:"衢州市",provinceCode:"330000"},{cityCode:"330900",name:"舟山市",provinceCode:"330000"},{cityCode:"331000",name:"台州市",provinceCode:"330000"},{cityCode:"331100",name:"丽水市",provinceCode:"330000"}]},{provinceCode:"340000",name:"安徽省",CityTaxFullInfos:[{cityCode:"340100",name:"合肥市",provinceCode:"340000"},{cityCode:"340200",name:"芜湖市",provinceCode:"340000"},{cityCode:"340300",name:"蚌埠市",provinceCode:"340000"},{cityCode:"340400",name:"淮南市",provinceCode:"340000"},{cityCode:"340500",name:"马鞍山市",provinceCode:"340000"},{cityCode:"340600",name:"淮北市",provinceCode:"340000"},{cityCode:"340700",name:"铜陵市",provinceCode:"340000"},{cityCode:"340800",name:"安庆市",provinceCode:"340000"},{cityCode:"341000",name:"黄山市",provinceCode:"340000"},{cityCode:"341100",name:"滁州市",provinceCode:"340000"},{cityCode:"341200",name:"阜阳市",provinceCode:"340000"},{cityCode:"341300",name:"宿州市",provinceCode:"340000"},{cityCode:"341500",name:"六安市",provinceCode:"340000"},{cityCode:"341600",name:"亳州市",provinceCode:"340000"},{cityCode:"341700",name:"池州市",provinceCode:"340000"},{cityCode:"341800",name:"宣城市",provinceCode:"340000"}]},{provinceCode:"350000",name:"福建省",CityTaxFullInfos:[{cityCode:"350100",name:"福州市",provinceCode:"350000"},{cityCode:"350200",name:"厦门市",provinceCode:"350000"},{cityCode:"350300",name:"莆田市",provinceCode:"350000"},{cityCode:"350400",name:"三明市",provinceCode:"350000"},{cityCode:"350500",name:"泉州市",provinceCode:"350000"},{cityCode:"350600",name:"漳州市",provinceCode:"350000"},{cityCode:"350700",name:"南平市",provinceCode:"350000"},{cityCode:"350800",name:"龙岩市",provinceCode:"350000"},{cityCode:"350900",name:"宁德市",provinceCode:"350000"}]},{provinceCode:"360000",name:"江西省",CityTaxFullInfos:[{cityCode:"360100",name:"南昌市",provinceCode:"360000"},{cityCode:"360200",name:"景德镇市",provinceCode:"360000"},{cityCode:"360300",name:"萍乡市",provinceCode:"360000"},{cityCode:"360400",name:"九江市",provinceCode:"360000"},{cityCode:"360500",name:"新余市",provinceCode:"360000"},{cityCode:"360600",name:"鹰潭市",provinceCode:"360000"},{cityCode:"360700",name:"赣州市",provinceCode:"360000"},{cityCode:"360800",name:"吉安市",provinceCode:"360000"},{cityCode:"360900",name:"宜春市",provinceCode:"360000"},{cityCode:"361000",name:"抚州市",provinceCode:"360000"},{cityCode:"361100",name:"上饶市",provinceCode:"360000"}]},{provinceCode:"370000",name:"山东省",CityTaxFullInfos:[{cityCode:"370100",name:"济南市",provinceCode:"370000"},{cityCode:"370200",name:"青岛市",provinceCode:"370000"},{cityCode:"370300",name:"淄博市",provinceCode:"370000"},{cityCode:"370400",name:"枣庄市",provinceCode:"370000"},{cityCode:"370500",name:"东营市",provinceCode:"370000"},{cityCode:"370600",name:"烟台市",provinceCode:"370000"},{cityCode:"370700",name:"潍坊市",provinceCode:"370000"},{cityCode:"370800",name:"济宁市",provinceCode:"370000"},{cityCode:"370900",name:"泰安市",provinceCode:"370000"},{cityCode:"371000",name:"威海市",provinceCode:"370000"},{cityCode:"371100",name:"日照市",provinceCode:"370000"},{cityCode:"371200",name:"莱芜市",provinceCode:"370000"},{cityCode:"371300",name:"临沂市",provinceCode:"370000"},{cityCode:"371400",name:"德州市",provinceCode:"370000"},{cityCode:"371500",name:"聊城市",provinceCode:"370000"},{cityCode:"371600",name:"滨州市",provinceCode:"370000"},{cityCode:"371700",name:"菏泽市",provinceCode:"370000"}]},{provinceCode:"410000",name:"河南省",CityTaxFullInfos:[{cityCode:"410100",name:"郑州市",provinceCode:"410000"},{cityCode:"410200",name:"开封市",provinceCode:"410000"},{cityCode:"410300",name:"洛阳市",provinceCode:"410000"},{cityCode:"410400",name:"平顶山市",provinceCode:"410000"},{cityCode:"410500",name:"安阳市",provinceCode:"410000"},{cityCode:"410600",name:"鹤壁市",provinceCode:"410000"},{cityCode:"410700",name:"新乡市",provinceCode:"410000"},{cityCode:"410800",name:"焦作市",provinceCode:"410000"},{cityCode:"410900",name:"濮阳市",provinceCode:"410000"},{cityCode:"411000",name:"许昌市",provinceCode:"410000"},{cityCode:"411100",name:"漯河市",provinceCode:"410000"},{cityCode:"411200",name:"三门峡市",provinceCode:"410000"},{cityCode:"411300",name:"南阳市",provinceCode:"410000"},{cityCode:"411400",name:"商丘市",provinceCode:"410000"},{cityCode:"411500",name:"信阳市",provinceCode:"410000"},{cityCode:"411600",name:"周口市",provinceCode:"410000"},{cityCode:"411700",name:"驻马店市",provinceCode:"410000"}]},{provinceCode:"420000",name:"湖北省",CityTaxFullInfos:[{cityCode:"420100",name:"武汉市",provinceCode:"420000"},{cityCode:"420200",name:"黄石市",provinceCode:"420000"},{cityCode:"420300",name:"十堰市",provinceCode:"420000"},{cityCode:"420500",name:"宜昌市",provinceCode:"420000"},{cityCode:"420600",name:"襄阳市",provinceCode:"420000"},{cityCode:"420700",name:"鄂州市",provinceCode:"420000"},{cityCode:"420800",name:"荆门市",provinceCode:"420000"},{cityCode:"420900",name:"孝感市",provinceCode:"420000"},{cityCode:"421000",name:"荆州市",provinceCode:"420000"},{cityCode:"421100",name:"黄冈市",provinceCode:"420000"},{cityCode:"421200",name:"咸宁市",provinceCode:"420000"},{cityCode:"421300",name:"随州市",provinceCode:"420000"},{cityCode:"422800",name:"恩施土家族苗族自治州",provinceCode:"420000"}]},{provinceCode:"430000",name:"湖南省",CityTaxFullInfos:[{cityCode:"430100",name:"长沙市",provinceCode:"430000"},{cityCode:"430200",name:"株洲市",provinceCode:"430000"},{cityCode:"430300",name:"湘潭市",provinceCode:"430000"},{cityCode:"430400",name:"衡阳市",provinceCode:"430000"},{cityCode:"430500",name:"邵阳市",provinceCode:"430000"},{cityCode:"430600",name:"岳阳市",provinceCode:"430000"},{cityCode:"430700",name:"常德市",provinceCode:"430000"},{cityCode:"430800",name:"张家界市",provinceCode:"430000"},{cityCode:"430900",name:"益阳市",provinceCode:"430000"},{cityCode:"431000",name:"郴州市",provinceCode:"430000"},{cityCode:"431100",name:"永州市",provinceCode:"430000"},{cityCode:"431200",name:"怀化市",provinceCode:"430000"},{cityCode:"431300",name:"娄底市",provinceCode:"430000"},{cityCode:"433100",name:"湘西土家族苗族自治州",provinceCode:"430000"}]},{provinceCode:"440000",name:"广东省",CityTaxFullInfos:[{cityCode:"440100",name:"广州市",provinceCode:"440000"},{cityCode:"440200",name:"韶关市",provinceCode:"440000"},{cityCode:"440300",name:"深圳市",provinceCode:"440000"},{cityCode:"440400",name:"珠海市",provinceCode:"440000"},{cityCode:"440500",name:"汕头市",provinceCode:"440000"},{cityCode:"440600",name:"佛山市",provinceCode:"440000"},{cityCode:"440700",name:"江门市",provinceCode:"440000"},{cityCode:"440800",name:"湛江市",provinceCode:"440000"},{cityCode:"440900",name:"茂名市",provinceCode:"440000"},{cityCode:"441200",name:"肇庆市",provinceCode:"440000"},{cityCode:"441300",name:"惠州市",provinceCode:"440000"},{cityCode:"441400",name:"梅州市",provinceCode:"440000"},{cityCode:"441500",name:"汕尾市",provinceCode:"440000"},{cityCode:"441600",name:"河源市",provinceCode:"440000"},{cityCode:"441700",name:"阳江市",provinceCode:"440000"},{cityCode:"441800",name:"清远市",provinceCode:"440000"},{cityCode:"441900",name:"东莞市",provinceCode:"440000"},{cityCode:"442000",name:"中山市",provinceCode:"440000"},{cityCode:"445100",name:"潮州市",provinceCode:"440000"},{cityCode:"445200",name:"揭阳市",provinceCode:"440000"},{cityCode:"445300",name:"云浮市",provinceCode:"440000"}]},{provinceCode:"450000",name:"广西壮族自治区",CityTaxFullInfos:[{cityCode:"450100",name:"南宁市",provinceCode:"450000"},{cityCode:"450200",name:"柳州市",provinceCode:"450000"},{cityCode:"450300",name:"桂林市",provinceCode:"450000"},{cityCode:"450400",name:"梧州市",provinceCode:"450000"},{cityCode:"450500",name:"北海市",provinceCode:"450000"},{cityCode:"450600",name:"防城港市",provinceCode:"450000"},{cityCode:"450700",name:"钦州市",provinceCode:"450000"},{cityCode:"450800",name:"贵港市",provinceCode:"450000"},{cityCode:"450900",name:"玉林市",provinceCode:"450000"},{cityCode:"451000",name:"百色市",provinceCode:"450000"},{cityCode:"451100",name:"贺州市",provinceCode:"450000"},{cityCode:"451200",name:"河池市",provinceCode:"450000"},{cityCode:"451300",name:"来宾市",provinceCode:"450000"},{cityCode:"451400",name:"崇左市",provinceCode:"450000"}]},{provinceCode:"460000",name:"海南省",CityTaxFullInfos:[{cityCode:"460100",name:"海口市",provinceCode:"460000"},{cityCode:"460200",name:"三亚市",provinceCode:"460000"},{cityCode:"460300",name:"三沙市",provinceCode:"460000"},{cityCode:"460400",name:"儋州市",provinceCode:"460000"}]},{provinceCode:"500000",name:"重庆市",CityTaxFullInfos:[{cityCode:"500100",name:"重庆市",provinceCode:"500000"}]},{provinceCode:"510000",name:"四川省",CityTaxFullInfos:[{cityCode:"510100",name:"成都市",provinceCode:"510000"},{cityCode:"510300",name:"自贡市",provinceCode:"510000"},{cityCode:"510400",name:"攀枝花市",provinceCode:"510000"},{cityCode:"510500",name:"泸州市",provinceCode:"510000"},{cityCode:"510600",name:"德阳市",provinceCode:"510000"},{cityCode:"510700",name:"绵阳市",provinceCode:"510000"},{cityCode:"510800",name:"广元市",provinceCode:"510000"},{cityCode:"510900",name:"遂宁市",provinceCode:"510000"},{cityCode:"511000",name:"内江市",provinceCode:"510000"},{cityCode:"511100",name:"乐山市",provinceCode:"510000"},{cityCode:"511300",name:"南充市",provinceCode:"510000"},{cityCode:"511400",name:"眉山市",provinceCode:"510000"},{cityCode:"511500",name:"宜宾市",provinceCode:"510000"},{cityCode:"511600",name:"广安市",provinceCode:"510000"},{cityCode:"511700",name:"达州市",provinceCode:"510000"},{cityCode:"511800",name:"雅安市",provinceCode:"510000"},{cityCode:"511900",name:"巴中市",provinceCode:"510000"},{cityCode:"512000",name:"资阳市",provinceCode:"510000"},{cityCode:"513200",name:"阿坝藏族羌族自治州",provinceCode:"510000"},{cityCode:"513300",name:"甘孜藏族自治州",provinceCode:"510000"},{cityCode:"513400",name:"凉山彝族自治州",provinceCode:"510000"}]},{provinceCode:"520000",name:"贵州省",CityTaxFullInfos:[{cityCode:"520100",name:"贵阳市",provinceCode:"520000"},{cityCode:"520200",name:"六盘水市",provinceCode:"520000"},{cityCode:"520300",name:"遵义市",provinceCode:"520000"},{cityCode:"520400",name:"安顺市",provinceCode:"520000"},{cityCode:"520500",name:"毕节市",provinceCode:"520000"},{cityCode:"520600",name:"铜仁市",provinceCode:"520000"},{cityCode:"522300",name:"黔西南布依族苗族自治州",provinceCode:"520000"},{cityCode:"522600",name:"黔东南苗族侗族自治州",provinceCode:"520000"},{cityCode:"522700",name:"黔南布依族苗族自治州",provinceCode:"520000"}]},{provinceCode:"530000",name:"云南省",CityTaxFullInfos:[{cityCode:"530100",name:"昆明市",provinceCode:"530000"},{cityCode:"530300",name:"曲靖市",provinceCode:"530000"},{cityCode:"530400",name:"玉溪市",provinceCode:"530000"},{cityCode:"530500",name:"保山市",provinceCode:"530000"},{cityCode:"530600",name:"昭通市",provinceCode:"530000"},{cityCode:"530700",name:"丽江市",provinceCode:"530000"},{cityCode:"530800",name:"普洱市",provinceCode:"530000"},{cityCode:"530900",name:"临沧市",provinceCode:"530000"}]},{provinceCode:"540000",name:"西藏自治区",CityTaxFullInfos:[{cityCode:"540100",name:"拉萨市",provinceCode:"540000"}]},{provinceCode:"610000",name:"陕西省",CityTaxFullInfos:[{cityCode:"610100",name:"西安市",provinceCode:"610000"},{cityCode:"610200",name:"铜川市",provinceCode:"610000"},{cityCode:"610300",name:"宝鸡市",provinceCode:"610000"},{cityCode:"610400",name:"咸阳市",provinceCode:"610000"},{cityCode:"610500",name:"渭南市",provinceCode:"610000"},{cityCode:"610600",name:"延安市",provinceCode:"610000"},{cityCode:"610700",name:"汉中市",provinceCode:"610000"},{cityCode:"610800",name:"榆林市",provinceCode:"610000"},{cityCode:"610900",name:"安康市",provinceCode:"610000"},{cityCode:"611000",name:"商洛市",provinceCode:"610000"}]},{provinceCode:"620000",name:"甘肃省",CityTaxFullInfos:[{cityCode:"620100",name:"兰州市",provinceCode:"620000"},{cityCode:"620200",name:"嘉峪关市",provinceCode:"620000"},{cityCode:"620300",name:"金昌市",provinceCode:"620000"},{cityCode:"620400",name:"白银市",provinceCode:"620000"},{cityCode:"620500",name:"天水市",provinceCode:"620000"},{cityCode:"620600",name:"武威市",provinceCode:"620000"},{cityCode:"620700",name:"张掖市",provinceCode:"620000"},{cityCode:"620800",name:"平凉市",provinceCode:"620000"},{cityCode:"620900",name:"酒泉市",provinceCode:"620000"},{cityCode:"621000",name:"庆阳市",provinceCode:"620000"},{cityCode:"621100",name:"定西市",provinceCode:"620000"},{cityCode:"621200",name:"陇南市",provinceCode:"620000"}]},{provinceCode:"630000",name:"青海省",CityTaxFullInfos:[{cityCode:"630100",name:"西宁市",provinceCode:"630000"},{cityCode:"630200",name:"海东市",provinceCode:"630000"}]},{provinceCode:"640000",name:"宁夏回族自治区",CityTaxFullInfos:[{cityCode:"640100",name:"银川市",provinceCode:"640000"},{cityCode:"640200",name:"石嘴山市",provinceCode:"640000"},{cityCode:"640300",name:"吴忠市",provinceCode:"640000"},{cityCode:"640400",name:"固原市",provinceCode:"640000"},{cityCode:"640500",name:"中卫市",provinceCode:"640000"}]},{provinceCode:"650000",name:"新疆维吾尔自治区",CityTaxFullInfos:[{cityCode:"650100",name:"乌鲁木齐市",provinceCode:"650000"},{cityCode:"650200",name:"克拉玛依市",provinceCode:"650000"},{cityCode:"650400",name:"吐鲁番市",provinceCode:"650000"},{cityCode:"650500",name:"哈密市",provinceCode:"650000"}]}];class te extends l.default.PureComponent{constructor(){super(...arguments),this.state={range:[],v:[0,0]},this.handleColumnChange=e=>{const{column:t,value:i}=e.detail;if(0!==t)return;const o=ee,n=o[i].CityTaxFullInfos;console.log([o,n])},this.handleChange=e=>{const[t,i]=e.detail.value,o=Number(i)||0;this.setState({v:[t,o]});const{range:[n=[],s=[]]}=this.state;s[o].cityCode!==this.props.value&&this.props.onChange({province:n[t],city:s[o]})}}componentDidMount(){this.resolveState(this.props.value)}componentWillReceiveProps(e){e.value!==this.props.value&&this.resolveState(e.value)}resolveState(e){const t=ee;let i=0,o=0;e:for(i=t.length;i>0;i--){const n=t[i-1].CityTaxFullInfos;for(o=n.length;o>0;o--){if(n[o-1].cityCode===e){i--,o--;break e}}}this.setState({range:[t,t[i].CityTaxFullInfos],v:[i,o]});const n=t[i].CityTaxFullInfos[Number(o)||0];this.props.onPreview&&this.props.onPreview({province:t[i],city:n}),n.cityCode!==e&&this.props.onChange({province:t[i],city:n})}render(){const{disabled:e=!1,className:o}=this.props,{range:n,v:s}=this.state;return t.jsx(i.Picker,Object.assign({disabled:e,className:o,mode:"multiSelector",rangeKey:"name",range:n,value:s,onColumnChange:this.handleColumnChange,onChange:this.handleChange},{children:this.props.children}))}}const ie=60;class oe extends l.default.PureComponent{constructor(e){super(e),this.intervalTimerId=void 0,this.countDown=()=>{this.intervalTimerId=setInterval(()=>{if(1===this.state.delay)return clearInterval(this.intervalTimerId),void this.setState(()=>({delay:this.props.delay||ie,buttonDisableStatus:!1}));this.setState(e=>({delay:e.delay-1,buttonDisableStatus:!0}))},1e3)},this.handleClick=async e=>{const{buttonDisableStatus:t}=this.state,{onClick:i,delay:o=ie}=this.props;if(t)e.preventDefault();else if(i)try{await i(),this.setState(()=>({delay:o,buttonDisableStatus:!0}),()=>{clearInterval(this.intervalTimerId),this.countDown()})}catch(e){}};const{delay:t=ie}=this.props;this.state={delay:t,buttonDisableStatus:!1}}async componentDidMount(){const{mode:e,auto:t}=this.props;("auto"===e||t)&&this.countDown()}componentWillUnmount(){clearInterval(this.intervalTimerId)}render(){const e=this.props,{textInterpolate:o,text:n,children:a}=e,c=y(e,["textInterpolate","text","children"]),{buttonDisableStatus:r}=this.state,l=Object.assign(Object.assign({},c),{disabled:r,onClick:this.handleClick}),d=r?s.interpolate(o,Object.assign(Object.assign({},this.props),this.state)):n||a;return t.jsx(i.View,Object.assign({className:w("countdown-button")},{children:t.jsx(V,Object.assign({},l,{children:d}))}))}}oe.defaultProps={block:!0,delay:ie,type:"link",text:"发送",textInterpolate:"{{delay}} s"};const ne=e=>{const{quantity:o=6,onInput:n,onComplete:s,style:a,className:c}=e,r=l.default.useRef(),d=l.default.useRef(Math.random().toString(32).slice(2)),[{formatCodes:m,placeholder:u,focus:C},y]=l.default.useState({formatCodes:[],placeholder:Array(o).fill(""),focus:!1}),v=()=>{C||(r.current&&r.current.firstChild&&r.current.firstChild.focus?r.current.firstChild.focus():r.current&&r.current.focus&&r.current.focus(),y(e=>Object.assign(Object.assign({},e),{focus:!0})))};return l.default.useEffect(()=>{e.focus&&setTimeout(()=>{v()},100)},[e.focus]),t.jsx(i.View,Object.assign({className:p(w("verify-code"),c),style:a},{children:t.jsx(i.View,Object.assign({style:{width:"100%"}},{children:t.jsxs(i.Label,Object.assign({for:d.current,onClick:v},{children:[t.jsx(i.Input,{ref:r,className:w("verify-code-input"),onInput:e=>{const{value:t}=e.detail,i=String(t).split("");if(!(i.length>o))return n&&n(t),y(e=>Object.assign(Object.assign({},e),{formatCodes:i})),i.length===o?(r.current&&r.current.firstChild&&r.current.firstChild.blur?r.current.firstChild.blur():r.current&&r.current.blur&&r.current.blur(),s&&s(t)):void 0},onFocus:v,onBlur:()=>{y(e=>Object.assign(Object.assign({},e),{focus:!1}))},maxlength:o,type:"number",adjustPosition:!1,id:d.current}),t.jsx(i.View,Object.assign({className:w("verify-code-label")},{children:u.map((e,n)=>t.jsx(i.View,Object.assign({className:p(w("verify-code-view"),{focus:C&&(m.length===n||n+1===o&&m.length===o),cursor:C&&m.length===n})},{children:m[n]}),`${e}-${n}`))}))]}))}))}))},se=l.default.memo(e=>{const{title:o,subtitle:n,children:s}=e;return t.jsxs(i.View,Object.assign({className:w("title")},{children:[t.jsx(i.Text,Object.assign({className:w("title-title")},{children:o})),n&&t.jsx(i.Text,Object.assign({className:w("title-subtitle")},{children:n})),s]}))}),ae={account:Symbol("account"),verifyCode:Symbol("verifyCode")},ce={titleProps:{title:"欢迎登录",subtitle:""},formProps:{},fieldsProps:[{type:"INPUT",name:"id",label:"",componentProps:{placeholder:"请输入登录名"},rules:[{required:!0,message:"请输入登录名"}]},{type:"INPUT",name:"password",label:"",componentProps:{password:!0,placeholder:"请输入密码"},rules:[{required:!0,message:"请输入密码"}]}],buttonProps:{async:!0,disabled:!1,children:"确定"}},re={verifyCodeKey:"verifyCode",autoComplete:!1,titleProps:{title:"验证码",subtitle:"验证码已发送至 "},verifyCodeProps:{quantity:6},countDownButtonProps:{style:{margin:"16px 0"},delay:5,auto:!0,type:"link",text:"重新发送",textInterpolate:"{{delay}}s 后重新发送",async:!0},buttonProps:{block:!0,children:"提交",async:!0}},le=l.default.memo(e=>{const{pageConfig:{account:o={},verifyCode:n={}}={},onFinish:s,onFinishFailed:a,onSubmit:c,disabled:r=!1,onChangeStatusSuccess:d}=e,u=l.default.useRef({}),[C]=Z.useForm();Object.keys(C.getFieldsValue()).length&&(u.current=C.getFieldsValue());const[p,y]=l.default.useState(!1),[v,h]=l.default.useState(""),g=l.default.useMemo(()=>m.default(o,ce),[o]),f=l.default.useMemo(()=>m.default({verifyCodeProps:{onInput:e=>{h(e)}},countDownButtonProps:{onClick:()=>s(u.current)}},n,re),[s,n]),[b,x]=l.default.useState(ae.account);return f.autoComplete&&!f.verifyCodeProps.onComplete&&(f.verifyCodeProps.onComplete=e=>c(Object.assign({[n.verifyCodeKey]:e},u.current))),t.jsxs(i.View,Object.assign({style:Object.assign(Object.assign({},k("form-layout-padding-right","0px")),k("form-layout-padding-left","0px"))},{children:[b===ae.account&&t.jsxs(i.View,{children:[t.jsx(se,Object.assign({},g.titleProps)),t.jsx(Z,Object.assign({form:C,textAlign:"left",onFinish:async e=>{try{y(!0),await s(e),x(ae.verifyCode),d&&d(ae.verifyCode)}catch(e){}finally{y(!1)}},onFinishFailed:a,submitter:{submitButton:{async:!0,loading:p,text:g.buttonProps.children,disabled:!g.fieldsProps.every(e=>u.current[e.name]&&!r)}}},{children:g.fieldsProps}))]}),b===ae.verifyCode&&t.jsxs(i.View,{children:[t.jsx(se,Object.assign({},f.titleProps)),t.jsxs(i.View,Object.assign({style:k("verify-code-label-padding","0px")},{children:[t.jsx(ne,Object.assign({},f.verifyCodeProps)),t.jsx(oe,Object.assign({},f.countDownButtonProps)),!f.autoComplete&&t.jsx(V,Object.assign({},f.buttonProps,{disabled:!(v.length===f.verifyCodeProps.quantity),onClick:()=>c(Object.assign({verifyCode:v},u.current))}))]}))]})]}))}),de=l.default.createContext({}),me=e=>{const{current:o,animated:n}=l.default.useContext(de),s=o.key===e.$$key;return t.jsx(i.View,Object.assign({className:p(w("tabs-pane"),{[w("tabs-pane__inactive")]:!s,[w("tabs-pane__active")]:s,[w("tabs-pane__animated")]:n})},{children:e.children}))},ue="auto";function Ce(e){const{activeKey:n,children:s,animated:a=!0,sticky:c=!1,onChange:r,height:d=ue,right:m}=e,u=l.default.useRef(n||s&&s[0].key),C=l.default.useRef(Array.isArray(s)&&s.reduce((e,t,i)=>t.key===u.current?i:e,0)||0),[y,v]=l.default.useState({key:u.current,index:C.current,left:0});l.default.useEffect(()=>{setTimeout(()=>{o.createSelectorQuery().selectAll(".y-taro-ui-tabs-titles-item").boundingClientRect().exec(([e])=>{const{left:t,width:i}=e[C.current]||{};v(e=>Object.assign(Object.assign({},e),{left:t?t+i/2-9:0}))})},0)},[C]);const h=l.default.Children.map(s,({props:e,type:n,key:s},a)=>{if(n===me){const n=s===y.key;return t.jsx(i.View,Object.assign({className:p(w("tabs-titles-item"),w("tabs-titles-item-"+a),{active:n}),id:"tabs-titles-item-"+a,onClick:e=>{n||o.createSelectorQuery().select("#"+e.target.id).boundingClientRect().exec(([{left:t,width:i}])=>{const o={key:s,index:a,left:(e.target.offsetLeft||t)+i/2-9};v(o),r&&r(o)})}},{children:e.title}),s)}});return t.jsx(de.Provider,Object.assign({value:{current:y,animated:a}},{children:t.jsxs(i.View,Object.assign({className:p(w("tabs"),{[w("tabs__sticky")]:d!==ue}),style:{height:d}},{children:[!!h.length&&t.jsxs(i.View,Object.assign({className:p(w("tabs-titles"),{[w("tabs-titles__sticky")]:c,[w("tabs-titles__right")]:m})},{children:[t.jsx(i.View,Object.assign({className:p(w("tabs-titles-items"))},{children:h})),t.jsx(i.View,Object.assign({className:p(w("tabs-titles-right"))},{children:m})),t.jsx(i.View,{className:p(w("tabs-titles-item__active")),style:{left:y.left+"PX"}})]})),t.jsx(i.View,Object.assign({className:p(w("tabs-main-wrap"))},{children:t.jsx(i.View,Object.assign({className:p(w("tabs-main"),{[w("tabs-main__animated")]:a,[w("tabs-main__sticky")]:c}),style:{marginLeft:`-${100*y.index}%`}},{children:l.default.Children.map(e.children,e=>l.default.cloneElement(e,{$$key:e.key}))}))}))]}))}))}Ce.TabPane=me;const pe=w("internal-css-transition"),ye=l.default.memo(e=>{const{style:i,mountOnEnter:o=!0,timeout:n=300,placement:s,unmountOnExit:c=!0}=e,r=y(e,["style","mountOnEnter","timeout","placement","unmountOnExit"]);return t.jsx(a.CSSTransition,Object.assign({},r,{mountOnEnter:o,unmountOnExit:c,timeout:n,classNames:(l=s,{appear:`${pe}-${l}-appear`,appearActive:`${pe}-${l}-active-appear`,appearDone:`${pe}-${l}-done-appear`,enter:`${pe}-${l}-enter`,enterActive:`${pe}-${l}-active-enter`,enterDone:`${pe}-${l}-done-enter`,exit:`${pe}-${l}-exit`,exitActive:`${pe}-${l}-active-exit`,exitDone:`${pe}-${l}-done-exit`})}));var l}),ve=l.default.createContext({visable:!1,onClose:()=>{}}),he=l.default.memo(e=>{const{style:o,className:n,timeout:s=300,m