@fast-form-designer/vue 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +4001 -3985
- package/dist/index.umd.cjs +2 -2
- package/dist/pca-BXk_jle3.js +4 -0
- package/dist/style.css +1 -1
- package/dist/utils/pca.d.ts +20 -1
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(Xe,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@element-plus/icons-vue")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@element-plus/icons-vue"],e):(Xe=typeof globalThis<"u"?globalThis:Xe||self,e(Xe.FastFormDesigner={},Xe.Vue,Xe.ElementPlus,Xe.ElementPlusIconsVue))})(this,(function(Xe,e,$e,ee){"use strict";function uo(o){return o+"_"+Math.random().toString(36).substring(2,9)}function Ut(o){const n=JSON.parse(JSON.stringify(o)),t=uo(o.type||"input");if(n.type==="grid"){const c=Array.isArray(n.children)?n.children:[],i=c.length>0?c:[{type:"grid-col",props:{label:"列",span:12}}];return{id:t,type:"grid",props:n.props||{label:"栅格布局",width:"100%",gutter:20},children:i.map(m=>{const h=m;return{...h,id:uo("grid-col"),type:"grid-col",props:{...h.props||{},label:h.props?.label??"列",span:h.props?.span??12},children:[]}})}}if(n.type==="grid-col")return{id:t,type:"grid-col",props:{...n.props||{},label:n.props?.label??"列",span:n.props?.span??12},children:[]};if(n.type==="sub-form")return{id:t,type:"sub-form",props:n.props||{label:"子表单"},children:[]};const a=n.type||o.type;return{id:t,type:a||"input",props:n.props||{label:""},children:n.children?[]:void 0}}function Ft(o){const n=JSON.parse(JSON.stringify(o)),t=a=>{if(a.id=uo(a.type||"input"),Array.isArray(a.children))for(const c of a.children)t(c)};return t(n),n}const Me=o=>typeof o=="object"&&o!==null&&!Array.isArray(o),fo=(o,n)=>{if(!n)return o;if(o==null)return;if(Me(o)&&n in o)return o[n];const t=n.split(".").map(c=>c.trim()).filter(Boolean);let a=o;for(const c of t){if(Me(a)){a=a[c];continue}if(Array.isArray(a)){const i=Number(c);if(!Number.isInteger(i))return;a=a[i];continue}return}return a},Mt=o=>{if(o)try{return JSON.parse(o)}catch{return}},Pn=o=>{const n=Mt(o);return Me(n)?n:void 0},Yo=o=>{try{return JSON.parse(o)}catch{return}},Rt=o=>{if(!o)return;const n=typeof document<"u"?document.cookie:"";if(!n)return;const t=n.split(";");for(const a of t){const[c,...i]=a.trim().split("=");if(c===o)return decodeURIComponent(i.join("="))}},$n=(o,n)=>{if(o)try{const t=o.getItem(n);return t===null?void 0:t}catch{return}},yn=(o,n)=>{const t=o.trim();if(!t)return;const[a,...c]=t.split("|").map(u=>u.trim()).filter(Boolean);if(!a)return;const i=/^([a-zA-Z_]\w*)(?:[.:])(.+)$/.exec(a);if(!i)return;const m=i[1],h=(i[2]??"").trim();if(!h)return;const p=()=>n.globalObject?n.globalObject:typeof window<"u"?window:void 0;let y;m==="form"?y=fo(n.formModel,h):m==="cookie"?y=Rt(h):m==="localStorage"?y=$n(typeof window<"u"?window.localStorage:void 0,h):m==="sessionStorage"?y=$n(typeof window<"u"?window.sessionStorage:void 0,h):m==="global"?y=fo(p(),h):y=void 0;for(const u of c){const C=/^json:(.+)$/.exec(u);if(C){typeof y=="string"&&(y=Yo(y));const g=(C[1]??"").trim();if(!g){y=void 0;continue}const T=g.split(":").map(R=>R.trim()).filter(Boolean).join(".");y=fo(y,T);continue}if(u==="json"){typeof y=="string"&&(y=Yo(y));continue}if(u==="number"){if(typeof y=="string"||typeof y=="number"){const g=Number(y);y=Number.isFinite(g)?g:void 0}else y=void 0;continue}if(u==="boolean"){if(typeof y=="boolean")continue;if(typeof y=="string"){const g=y.trim().toLowerCase();g==="true"?y=!0:g==="false"?y=!1:y=void 0}else y=void 0;continue}const E=/^default:(.+)$/.exec(u);if(E){if(y!=null&&y!=="")continue;const g=(E[1]??"").trim(),T=Yo(g);y=T===void 0?g:T;continue}}return y},It=(o,n)=>{const t=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(o);if(t&&t[1])return yn(t[1],n);const a=/\{\{\s*([\s\S]+?)\s*\}\}/g;return o.replace(a,(c,i)=>{const m=yn(i,n);if(m==null)return"";if(typeof m=="string"||typeof m=="number"||typeof m=="boolean")return String(m);try{return JSON.stringify(m)}catch{return""}})},Pt=o=>Me(o)&&typeof o.$ref=="string",Ao=(o,n,t=0)=>{if(t>20)return;if(typeof o=="string")return It(o,n);if(typeof o=="number"||typeof o=="boolean"||o===null)return o;if(o===void 0)return;if(Array.isArray(o))return o.map(c=>Ao(c,n,t+1));if(!Me(o))return;if(Pt(o))return yn(o.$ref,n);const a={};for(const[c,i]of Object.entries(o))a[c]=Ao(i,n,t+1);return a},Jn=o=>{if(!o)return[];const n=String(o),t=new Set,a=p=>{const y=p.trim();if(!y)return;const u=y.split("|")[0]?.trim()??"",C=/^form(?:[.:])(.+)$/.exec(u);if(!C)return;const E=(C[1]??"").trim();if(!E)return;const g=E.split(".")[0]?.trim();g&&t.add(g)},c=/\{\{\s*([\s\S]+?)\s*\}\}/g;let i;for(;i=c.exec(n);)a(i[1]??"");const m=(p,y=0)=>{if(!(y>20)&&p!=null){if(typeof p=="string"){let u;for(;u=c.exec(p);)a(u[1]??"");return}if(!(typeof p=="number"||typeof p=="boolean")){if(Array.isArray(p)){for(const u of p)m(u,y+1);return}if(Me(p)){typeof p.$ref=="string"&&a(p.$ref);for(const u of Object.values(p))m(u,y+1)}}}},h=Yo(n);return h!==void 0&&m(h),Array.from(t)},Ln=o=>typeof o=="string"&&/\{\{\s*form[.:]/.test(o),$t=o=>typeof o=="string"||typeof o=="number",zn=(o,n)=>{if(!Array.isArray(o))return[];const t=10,a=(c,i)=>{if(!Me(c))return;const m=fo(c,n.labelKey),h=fo(c,n.valueKey);if(typeof m!="string"||!$t(h))return;const p={label:m,value:h};if(n.childrenKey&&i<t){const y=fo(c,n.childrenKey);if(Array.isArray(y)){const u=y.map(C=>a(C,i+1)).filter(Boolean);u.length>0&&(p.children=u)}}return p};return o.map(c=>a(c,1)).filter(Boolean)},gn=(o,n=0)=>{if(n>20)return o;if(o===void 0)return"";if(o===null||typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o;if(Array.isArray(o))return o.map(a=>gn(a,n+1));if(!Me(o))return o;const t={};for(const[a,c]of Object.entries(o))t[a]=gn(c,n+1);return t},jn=(o,n,t)=>{const a=Pn(o.paramsJson),c=Pn(o.headersJson),i=Ao(a,t),m=Ao(c,t),h=Me(i)?i:void 0,p=h?gn(h):void 0,y=Me(p)?p:void 0,u=Me(m)?m:void 0,C=o.method||"GET";let E=o.url;const g={method:C,signal:n},T={};if(u)for(const[R,q]of Object.entries(u))(typeof q=="string"||typeof q=="number"||typeof q=="boolean")&&(T[R]=String(q));if(C==="GET"){if(y){const R=new URL(E,window.location.origin);for(const[q,U]of Object.entries(y))if(U===void 0)R.searchParams.set(q,"");else if(typeof U=="string"||typeof U=="number"||typeof U=="boolean")R.searchParams.set(q,String(U));else if(U!==void 0)try{R.searchParams.set(q,JSON.stringify(U))}catch{}E=R.toString()}}else C==="POST"&&(T["Content-Type"]="application/json",y&&(g.body=JSON.stringify(y)));return Object.keys(T).length>0&&(g.headers=T),{url:E,fetchInit:g,resolvedParams:y,resolvedHeaders:T,resolvedParamsRaw:i,resolvedHeadersRaw:m}},Hn=async(o,n,t)=>{const c=jn(o,n,t??{}),m=await(await fetch(c.url,c.fetchInit)).json(),h=fo(m,o.dataPath);return zn(h,o)},Jt=async(o,n,t)=>{const c=jn(o,t,n??{}),i=await fetch(c.url,c.fetchInit);let m,h;try{m=await i.json()}catch{try{h=await i.text()}catch{h=void 0}}const p=fo(m,o.dataPath),y=zn(p,o);return{request:{url:c.url,method:o.method,headers:c.resolvedHeaders,body:typeof c.fetchInit.body=="string"?c.fetchInit.body:void 0,resolvedParams:c.resolvedParams,resolvedParamsRaw:c.resolvedParamsRaw,resolvedHeadersRaw:c.resolvedHeadersRaw},response:{ok:i.ok,status:i.status,statusText:i.statusText,json:m,text:h},extractedData:p,mappedOptions:y}},Yn=Symbol("Designer");function Lt(){const o=e.reactive([]),n=e.reactive({labelPosition:"right",labelWidth:100,size:"default",visibilityRules:[]}),t=e.ref(void 0),a=C=>{t.value=C},c=(C,E)=>{for(const g of C){if(g.id===E)return g;if(g.children){const T=c(g.children,E);if(T)return T}}},i=e.computed(()=>{if(t.value)return c(o,t.value)}),m=C=>{const E=g=>{const T=g.findIndex(R=>R.id===C);if(T>-1)return g.splice(T,1),!0;for(const R of g)if(R.children&&E(R.children))return!0;return!1};E(o),t.value===C&&(t.value=void 0)},h=(C,E)=>{const g=C.findIndex(T=>T.id===E);if(g>-1)return{container:C,index:g};for(const T of C){if(!Array.isArray(T.children))continue;const R=h(T.children,E);if(R)return R}},u={formList:o,formConfig:n,selectedId:t,selectedComponent:i,setSelected:a,deleteComponent:m,duplicateComponent:C=>{const E=h(o,C);if(!E)return;const g=E.container[E.index];if(!g)return;const T=Ft(g);E.container.splice(E.index+1,0,T),t.value=T.id},clearCanvas:()=>{o.length=0,t.value=void 0}};return e.provide(Yn,u),u}function bn(){const o=e.inject(Yn);if(!o)throw new Error("useDesigner must be used within FastFormDesigner");return o}var zt=Object.defineProperty,qo=Object.getOwnPropertySymbols,qn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable,Gn=(o,n,t)=>n in o?zt(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,Bo=(o,n)=>{for(var t in n||(n={}))qn.call(n,t)&&Gn(o,t,n[t]);if(qo)for(var t of qo(n))Wn.call(n,t)&&Gn(o,t,n[t]);return o},Kn=(o,n)=>{var t={};for(var a in o)qn.call(o,a)&&n.indexOf(a)<0&&(t[a]=o[a]);if(o!=null&&qo)for(var a of qo(o))n.indexOf(a)<0&&Wn.call(o,a)&&(t[a]=o[a]);return t};const Xn="[vue-draggable-plus]: ";function jt(o){console.warn(Xn+o)}function Ht(o){console.error(Xn+o)}function Qn(o,n,t){return t>=0&&t<o.length&&o.splice(t,0,o.splice(n,1)[0]),o}function Yt(o){return o.replace(/-(\w)/g,(n,t)=>t?t.toUpperCase():"")}function qt(o){return Object.keys(o).reduce((n,t)=>(typeof o[t]<"u"&&(n[Yt(t)]=o[t]),n),{})}function Zn(o,n){return Array.isArray(o)&&o.splice(n,1),o}function vn(o,n,t){return Array.isArray(o)&&o.splice(n,0,t),o}function Wt(o){return typeof o>"u"}function Gt(o){return typeof o=="string"}function et(o,n,t){const a=o.children[t];o.insertBefore(n,a)}function kn(o){o.parentNode&&o.parentNode.removeChild(o)}function Kt(o,n=document){var t;let a=null;return typeof n?.querySelector=="function"?a=(t=n?.querySelector)==null?void 0:t.call(n,o):a=document.querySelector(o),a||jt(`Element not found: ${o}`),a}function Xt(o,n,t=null){return function(...a){return o.apply(t,a),n.apply(t,a)}}function Qt(o,n){const t=Bo({},o);return Object.keys(n).forEach(a=>{t[a]?t[a]=Xt(o[a],n[a]):t[a]=n[a]}),t}function Zt(o){return o instanceof HTMLElement}function ot(o,n){Object.keys(o).forEach(t=>{n(t,o[t])})}function vt(o){return o.charCodeAt(0)===111&&o.charCodeAt(1)===110&&(o.charCodeAt(2)>122||o.charCodeAt(2)<97)}const ea=Object.assign;function nt(o,n){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(o);n&&(a=a.filter(function(c){return Object.getOwnPropertyDescriptor(o,c).enumerable})),t.push.apply(t,a)}return t}function eo(o){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?arguments[n]:{};n%2?nt(Object(t),!0).forEach(function(a){oa(o,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):nt(Object(t)).forEach(function(a){Object.defineProperty(o,a,Object.getOwnPropertyDescriptor(t,a))})}return o}function Wo(o){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Wo=function(n){return typeof n}:Wo=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Wo(o)}function oa(o,n,t){return n in o?Object.defineProperty(o,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[n]=t,o}function co(){return co=Object.assign||function(o){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(o[a]=t[a])}return o},co.apply(this,arguments)}function na(o,n){if(o==null)return{};var t={},a=Object.keys(o),c,i;for(i=0;i<a.length;i++)c=a[i],!(n.indexOf(c)>=0)&&(t[c]=o[c]);return t}function ta(o,n){if(o==null)return{};var t=na(o,n),a,c;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);for(c=0;c<i.length;c++)a=i[c],!(n.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(o,a)&&(t[a]=o[a])}return t}var aa="1.15.2";function ro(o){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(o)}var io=ro(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Uo=ro(/Edge/i),tt=ro(/firefox/i),Fo=ro(/safari/i)&&!ro(/chrome/i)&&!ro(/android/i),at=ro(/iP(ad|od|hone)/i),lt=ro(/chrome/i)&&ro(/android/i),dt={capture:!1,passive:!1};function me(o,n,t){o.addEventListener(n,t,!io&&dt)}function ie(o,n,t){o.removeEventListener(n,t,!io&&dt)}function Go(o,n){if(n){if(n[0]===">"&&(n=n.substring(1)),o)try{if(o.matches)return o.matches(n);if(o.msMatchesSelector)return o.msMatchesSelector(n);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(n)}catch{return!1}return!1}}function la(o){return o.host&&o!==document&&o.host.nodeType?o.host:o.parentNode}function Qe(o,n,t,a){if(o){t=t||document;do{if(n!=null&&(n[0]===">"?o.parentNode===t&&Go(o,n):Go(o,n))||a&&o===t)return o;if(o===t)break}while(o=la(o))}return null}var ct=/\s+/g;function He(o,n,t){if(o&&n)if(o.classList)o.classList[t?"add":"remove"](n);else{var a=(" "+o.className+" ").replace(ct," ").replace(" "+n+" "," ");o.className=(a+(t?" "+n:"")).replace(ct," ")}}function K(o,n,t){var a=o&&o.style;if(a){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(o,""):o.currentStyle&&(t=o.currentStyle),n===void 0?t:t[n];!(n in a)&&n.indexOf("webkit")===-1&&(n="-webkit-"+n),a[n]=t+(typeof t=="string"?"":"px")}}function So(o,n){var t="";if(typeof o=="string")t=o;else do{var a=K(o,"transform");a&&a!=="none"&&(t=a+" "+t)}while(!n&&(o=o.parentNode));var c=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return c&&new c(t)}function rt(o,n,t){if(o){var a=o.getElementsByTagName(n),c=0,i=a.length;if(t)for(;c<i;c++)t(a[c],c);return a}return[]}function oo(){var o=document.scrollingElement;return o||document.documentElement}function Be(o,n,t,a,c){if(!(!o.getBoundingClientRect&&o!==window)){var i,m,h,p,y,u,C;if(o!==window&&o.parentNode&&o!==oo()?(i=o.getBoundingClientRect(),m=i.top,h=i.left,p=i.bottom,y=i.right,u=i.height,C=i.width):(m=0,h=0,p=window.innerHeight,y=window.innerWidth,u=window.innerHeight,C=window.innerWidth),(n||t)&&o!==window&&(c=c||o.parentNode,!io))do if(c&&c.getBoundingClientRect&&(K(c,"transform")!=="none"||t&&K(c,"position")!=="static")){var E=c.getBoundingClientRect();m-=E.top+parseInt(K(c,"border-top-width")),h-=E.left+parseInt(K(c,"border-left-width")),p=m+i.height,y=h+i.width;break}while(c=c.parentNode);if(a&&o!==window){var g=So(c||o),T=g&&g.a,R=g&&g.d;g&&(m/=R,h/=T,C/=T,u/=R,p=m+u,y=h+C)}return{top:m,left:h,bottom:p,right:y,width:C,height:u}}}function it(o,n,t){for(var a=ho(o,!0),c=Be(o)[n];a;){var i=Be(a)[t],m=void 0;if(m=c>=i,!m)return a;if(a===oo())break;a=ho(a,!1)}return!1}function _o(o,n,t,a){for(var c=0,i=0,m=o.children;i<m.length;){if(m[i].style.display!=="none"&&m[i]!==X.ghost&&(a||m[i]!==X.dragged)&&Qe(m[i],t.draggable,o,!1)){if(c===n)return m[i];c++}i++}return null}function Vn(o,n){for(var t=o.lastElementChild;t&&(t===X.ghost||K(t,"display")==="none"||n&&!Go(t,n));)t=t.previousElementSibling;return t||null}function We(o,n){var t=0;if(!o||!o.parentNode)return-1;for(;o=o.previousElementSibling;)o.nodeName.toUpperCase()!=="TEMPLATE"&&o!==X.clone&&(!n||Go(o,n))&&t++;return t}function mt(o){var n=0,t=0,a=oo();if(o)do{var c=So(o),i=c.a,m=c.d;n+=o.scrollLeft*i,t+=o.scrollTop*m}while(o!==a&&(o=o.parentNode));return[n,t]}function da(o,n){for(var t in o)if(o.hasOwnProperty(t)){for(var a in n)if(n.hasOwnProperty(a)&&n[a]===o[t][a])return Number(t)}return-1}function ho(o,n){if(!o||!o.getBoundingClientRect)return oo();var t=o,a=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var c=K(t);if(t.clientWidth<t.scrollWidth&&(c.overflowX=="auto"||c.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(c.overflowY=="auto"||c.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return oo();if(a||n)return t;a=!0}}while(t=t.parentNode);return oo()}function ca(o,n){if(o&&n)for(var t in n)n.hasOwnProperty(t)&&(o[t]=n[t]);return o}function Cn(o,n){return Math.round(o.top)===Math.round(n.top)&&Math.round(o.left)===Math.round(n.left)&&Math.round(o.height)===Math.round(n.height)&&Math.round(o.width)===Math.round(n.width)}var Mo;function st(o,n){return function(){if(!Mo){var t=arguments,a=this;t.length===1?o.call(a,t[0]):o.apply(a,t),Mo=setTimeout(function(){Mo=void 0},n)}}}function ra(){clearTimeout(Mo),Mo=void 0}function pt(o,n,t){o.scrollLeft+=n,o.scrollTop+=t}function ut(o){var n=window.Polymer,t=window.jQuery||window.Zepto;return n&&n.dom?n.dom(o).cloneNode(!0):t?t(o).clone(!0)[0]:o.cloneNode(!0)}function ft(o,n,t){var a={};return Array.from(o.children).forEach(function(c){var i,m,h,p;if(!(!Qe(c,n.draggable,o,!1)||c.animated||c===t)){var y=Be(c);a.left=Math.min((i=a.left)!==null&&i!==void 0?i:1/0,y.left),a.top=Math.min((m=a.top)!==null&&m!==void 0?m:1/0,y.top),a.right=Math.max((h=a.right)!==null&&h!==void 0?h:-1/0,y.right),a.bottom=Math.max((p=a.bottom)!==null&&p!==void 0?p:-1/0,y.bottom)}}),a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}var Ye="Sortable"+new Date().getTime();function ia(){var o=[],n;return{captureAnimationState:function(){if(o=[],!!this.options.animation){var t=[].slice.call(this.el.children);t.forEach(function(a){if(!(K(a,"display")==="none"||a===X.ghost)){o.push({target:a,rect:Be(a)});var c=eo({},o[o.length-1].rect);if(a.thisAnimationDuration){var i=So(a,!0);i&&(c.top-=i.f,c.left-=i.e)}a.fromRect=c}})}},addAnimationState:function(t){o.push(t)},removeAnimationState:function(t){o.splice(da(o,{target:t}),1)},animateAll:function(t){var a=this;if(!this.options.animation){clearTimeout(n),typeof t=="function"&&t();return}var c=!1,i=0;o.forEach(function(m){var h=0,p=m.target,y=p.fromRect,u=Be(p),C=p.prevFromRect,E=p.prevToRect,g=m.rect,T=So(p,!0);T&&(u.top-=T.f,u.left-=T.e),p.toRect=u,p.thisAnimationDuration&&Cn(C,u)&&!Cn(y,u)&&(g.top-u.top)/(g.left-u.left)===(y.top-u.top)/(y.left-u.left)&&(h=sa(g,C,E,a.options)),Cn(u,y)||(p.prevFromRect=y,p.prevToRect=u,h||(h=a.options.animation),a.animate(p,g,u,h)),h&&(c=!0,i=Math.max(i,h),clearTimeout(p.animationResetTimer),p.animationResetTimer=setTimeout(function(){p.animationTime=0,p.prevFromRect=null,p.fromRect=null,p.prevToRect=null,p.thisAnimationDuration=null},h),p.thisAnimationDuration=h)}),clearTimeout(n),c?n=setTimeout(function(){typeof t=="function"&&t()},i):typeof t=="function"&&t(),o=[]},animate:function(t,a,c,i){if(i){K(t,"transition",""),K(t,"transform","");var m=So(this.el),h=m&&m.a,p=m&&m.d,y=(a.left-c.left)/(h||1),u=(a.top-c.top)/(p||1);t.animatingX=!!y,t.animatingY=!!u,K(t,"transform","translate3d("+y+"px,"+u+"px,0)"),this.forRepaintDummy=ma(t),K(t,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),K(t,"transform","translate3d(0,0,0)"),typeof t.animated=="number"&&clearTimeout(t.animated),t.animated=setTimeout(function(){K(t,"transition",""),K(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1},i)}}}}function ma(o){return o.offsetWidth}function sa(o,n,t,a){return Math.sqrt(Math.pow(n.top-o.top,2)+Math.pow(n.left-o.left,2))/Math.sqrt(Math.pow(n.top-t.top,2)+Math.pow(n.left-t.left,2))*a.animation}var Eo=[],wn={initializeByDefault:!0},Ro={mount:function(o){for(var n in wn)wn.hasOwnProperty(n)&&!(n in o)&&(o[n]=wn[n]);Eo.forEach(function(t){if(t.pluginName===o.pluginName)throw"Sortable: Cannot mount plugin ".concat(o.pluginName," more than once")}),Eo.push(o)},pluginEvent:function(o,n,t){var a=this;this.eventCanceled=!1,t.cancel=function(){a.eventCanceled=!0};var c=o+"Global";Eo.forEach(function(i){n[i.pluginName]&&(n[i.pluginName][c]&&n[i.pluginName][c](eo({sortable:n},t)),n.options[i.pluginName]&&n[i.pluginName][o]&&n[i.pluginName][o](eo({sortable:n},t)))})},initializePlugins:function(o,n,t,a){Eo.forEach(function(m){var h=m.pluginName;if(!(!o.options[h]&&!m.initializeByDefault)){var p=new m(o,n,o.options);p.sortable=o,p.options=o.options,o[h]=p,co(t,p.defaults)}});for(var c in o.options)if(o.options.hasOwnProperty(c)){var i=this.modifyOption(o,c,o.options[c]);typeof i<"u"&&(o.options[c]=i)}},getEventProperties:function(o,n){var t={};return Eo.forEach(function(a){typeof a.eventProperties=="function"&&co(t,a.eventProperties.call(n[a.pluginName],o))}),t},modifyOption:function(o,n,t){var a;return Eo.forEach(function(c){o[c.pluginName]&&c.optionListeners&&typeof c.optionListeners[n]=="function"&&(a=c.optionListeners[n].call(o[c.pluginName],t))}),a}};function pa(o){var n=o.sortable,t=o.rootEl,a=o.name,c=o.targetEl,i=o.cloneEl,m=o.toEl,h=o.fromEl,p=o.oldIndex,y=o.newIndex,u=o.oldDraggableIndex,C=o.newDraggableIndex,E=o.originalEvent,g=o.putSortable,T=o.extraEventProperties;if(n=n||t&&t[Ye],!!n){var R,q=n.options,U="on"+a.charAt(0).toUpperCase()+a.substr(1);window.CustomEvent&&!io&&!Uo?R=new CustomEvent(a,{bubbles:!0,cancelable:!0}):(R=document.createEvent("Event"),R.initEvent(a,!0,!0)),R.to=m||t,R.from=h||t,R.item=c||t,R.clone=i,R.oldIndex=p,R.newIndex=y,R.oldDraggableIndex=u,R.newDraggableIndex=C,R.originalEvent=E,R.pullMode=g?g.lastPutMode:void 0;var W=eo(eo({},T),Ro.getEventProperties(a,n));for(var oe in W)R[oe]=W[oe];t&&t.dispatchEvent(R),q[U]&&q[U].call(n,R)}}var ua=["evt"],ze=function(o,n){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=t.evt,c=ta(t,ua);Ro.pluginEvent.bind(X)(o,n,eo({dragEl:O,parentEl:Ce,ghostEl:Q,rootEl:ye,nextEl:Co,lastDownEl:Ko,cloneEl:be,cloneHidden:yo,dragStarted:Po,putSortable:Ae,activeSortable:X.active,originalEvent:a,oldIndex:To,oldDraggableIndex:Io,newIndex:qe,newDraggableIndex:go,hideGhostForTarget:Ct,unhideGhostForTarget:wt,cloneNowHidden:function(){yo=!0},cloneNowShown:function(){yo=!1},dispatchSortableEvent:function(i){Je({sortable:n,name:i,originalEvent:a})}},c))};function Je(o){pa(eo({putSortable:Ae,cloneEl:be,targetEl:O,rootEl:ye,oldIndex:To,oldDraggableIndex:Io,newIndex:qe,newDraggableIndex:go},o))}var O,Ce,Q,ye,Co,Ko,be,yo,To,qe,Io,go,Xo,Ae,Do=!1,Qo=!1,Zo=[],wo,Ze,Nn,xn,ht,yt,Po,Oo,$o,Jo=!1,vo=!1,en,Re,Bn=[],Sn=!1,on=[],nn=typeof document<"u",tn=at,gt=Uo||io?"cssFloat":"float",fa=nn&&!lt&&!at&&"draggable"in document.createElement("div"),bt=(function(){if(nn){if(io)return!1;var o=document.createElement("x");return o.style.cssText="pointer-events:auto",o.style.pointerEvents==="auto"}})(),kt=function(o,n){var t=K(o),a=parseInt(t.width)-parseInt(t.paddingLeft)-parseInt(t.paddingRight)-parseInt(t.borderLeftWidth)-parseInt(t.borderRightWidth),c=_o(o,0,n),i=_o(o,1,n),m=c&&K(c),h=i&&K(i),p=m&&parseInt(m.marginLeft)+parseInt(m.marginRight)+Be(c).width,y=h&&parseInt(h.marginLeft)+parseInt(h.marginRight)+Be(i).width;if(t.display==="flex")return t.flexDirection==="column"||t.flexDirection==="column-reverse"?"vertical":"horizontal";if(t.display==="grid")return t.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(c&&m.float&&m.float!=="none"){var u=m.float==="left"?"left":"right";return i&&(h.clear==="both"||h.clear===u)?"vertical":"horizontal"}return c&&(m.display==="block"||m.display==="flex"||m.display==="table"||m.display==="grid"||p>=a&&t[gt]==="none"||i&&t[gt]==="none"&&p+y>a)?"vertical":"horizontal"},ha=function(o,n,t){var a=t?o.left:o.top,c=t?o.right:o.bottom,i=t?o.width:o.height,m=t?n.left:n.top,h=t?n.right:n.bottom,p=t?n.width:n.height;return a===m||c===h||a+i/2===m+p/2},ya=function(o,n){var t;return Zo.some(function(a){var c=a[Ye].options.emptyInsertThreshold;if(!(!c||Vn(a))){var i=Be(a),m=o>=i.left-c&&o<=i.right+c,h=n>=i.top-c&&n<=i.bottom+c;if(m&&h)return t=a}}),t},Vt=function(o){function n(c,i){return function(m,h,p,y){var u=m.options.group.name&&h.options.group.name&&m.options.group.name===h.options.group.name;if(c==null&&(i||u))return!0;if(c==null||c===!1)return!1;if(i&&c==="clone")return c;if(typeof c=="function")return n(c(m,h,p,y),i)(m,h,p,y);var C=(i?m:h).options.group.name;return c===!0||typeof c=="string"&&c===C||c.join&&c.indexOf(C)>-1}}var t={},a=o.group;(!a||Wo(a)!="object")&&(a={name:a}),t.name=a.name,t.checkPull=n(a.pull,!0),t.checkPut=n(a.put),t.revertClone=a.revertClone,o.group=t},Ct=function(){!bt&&Q&&K(Q,"display","none")},wt=function(){!bt&&Q&&K(Q,"display","")};nn&&!lt&&document.addEventListener("click",function(o){if(Qo)return o.preventDefault(),o.stopPropagation&&o.stopPropagation(),o.stopImmediatePropagation&&o.stopImmediatePropagation(),Qo=!1,!1},!0);var No=function(o){if(O){o=o.touches?o.touches[0]:o;var n=ya(o.clientX,o.clientY);if(n){var t={};for(var a in o)o.hasOwnProperty(a)&&(t[a]=o[a]);t.target=t.rootEl=n,t.preventDefault=void 0,t.stopPropagation=void 0,n[Ye]._onDragOver(t)}}},ga=function(o){O&&O.parentNode[Ye]._isOutsideThisEl(o.target)};function X(o,n){if(!(o&&o.nodeType&&o.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(o));this.el=o,this.options=n=co({},n),o[Ye]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(o.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return kt(o,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(i,m){i.setData("Text",m.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:X.supportPointer!==!1&&"PointerEvent"in window&&!Fo,emptyInsertThreshold:5};Ro.initializePlugins(this,o,t);for(var a in t)!(a in n)&&(n[a]=t[a]);Vt(n);for(var c in this)c.charAt(0)==="_"&&typeof this[c]=="function"&&(this[c]=this[c].bind(this));this.nativeDraggable=n.forceFallback?!1:fa,this.nativeDraggable&&(this.options.touchStartThreshold=1),n.supportPointer?me(o,"pointerdown",this._onTapStart):(me(o,"mousedown",this._onTapStart),me(o,"touchstart",this._onTapStart)),this.nativeDraggable&&(me(o,"dragover",this),me(o,"dragenter",this)),Zo.push(this.el),n.store&&n.store.get&&this.sort(n.store.get(this)||[]),co(this,ia())}X.prototype={constructor:X,_isOutsideThisEl:function(o){!this.el.contains(o)&&o!==this.el&&(Oo=null)},_getDirection:function(o,n){return typeof this.options.direction=="function"?this.options.direction.call(this,o,n,O):this.options.direction},_onTapStart:function(o){if(o.cancelable){var n=this,t=this.el,a=this.options,c=a.preventOnFilter,i=o.type,m=o.touches&&o.touches[0]||o.pointerType&&o.pointerType==="touch"&&o,h=(m||o).target,p=o.target.shadowRoot&&(o.path&&o.path[0]||o.composedPath&&o.composedPath()[0])||h,y=a.filter;if(Ba(t),!O&&!(/mousedown|pointerdown/.test(i)&&o.button!==0||a.disabled)&&!p.isContentEditable&&!(!this.nativeDraggable&&Fo&&h&&h.tagName.toUpperCase()==="SELECT")&&(h=Qe(h,a.draggable,t,!1),!(h&&h.animated)&&Ko!==h)){if(To=We(h),Io=We(h,a.draggable),typeof y=="function"){if(y.call(this,o,h,this)){Je({sortable:n,rootEl:p,name:"filter",targetEl:h,toEl:t,fromEl:t}),ze("filter",n,{evt:o}),c&&o.cancelable&&o.preventDefault();return}}else if(y&&(y=y.split(",").some(function(u){if(u=Qe(p,u.trim(),t,!1),u)return Je({sortable:n,rootEl:u,name:"filter",targetEl:h,fromEl:t,toEl:t}),ze("filter",n,{evt:o}),!0}),y)){c&&o.cancelable&&o.preventDefault();return}a.handle&&!Qe(p,a.handle,t,!1)||this._prepareDragStart(o,m,h)}}},_prepareDragStart:function(o,n,t){var a=this,c=a.el,i=a.options,m=c.ownerDocument,h;if(t&&!O&&t.parentNode===c){var p=Be(t);if(ye=c,O=t,Ce=O.parentNode,Co=O.nextSibling,Ko=t,Xo=i.group,X.dragged=O,wo={target:O,clientX:(n||o).clientX,clientY:(n||o).clientY},ht=wo.clientX-p.left,yt=wo.clientY-p.top,this._lastX=(n||o).clientX,this._lastY=(n||o).clientY,O.style["will-change"]="all",h=function(){if(ze("delayEnded",a,{evt:o}),X.eventCanceled){a._onDrop();return}a._disableDelayedDragEvents(),!tt&&a.nativeDraggable&&(O.draggable=!0),a._triggerDragStart(o,n),Je({sortable:a,name:"choose",originalEvent:o}),He(O,i.chosenClass,!0)},i.ignore.split(",").forEach(function(y){rt(O,y.trim(),_n)}),me(m,"dragover",No),me(m,"mousemove",No),me(m,"touchmove",No),me(m,"mouseup",a._onDrop),me(m,"touchend",a._onDrop),me(m,"touchcancel",a._onDrop),tt&&this.nativeDraggable&&(this.options.touchStartThreshold=4,O.draggable=!0),ze("delayStart",this,{evt:o}),i.delay&&(!i.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Uo||io))){if(X.eventCanceled){this._onDrop();return}me(m,"mouseup",a._disableDelayedDrag),me(m,"touchend",a._disableDelayedDrag),me(m,"touchcancel",a._disableDelayedDrag),me(m,"mousemove",a._delayedDragTouchMoveHandler),me(m,"touchmove",a._delayedDragTouchMoveHandler),i.supportPointer&&me(m,"pointermove",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(h,i.delay)}else h()}},_delayedDragTouchMoveHandler:function(o){var n=o.touches?o.touches[0]:o;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){O&&_n(O),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var o=this.el.ownerDocument;ie(o,"mouseup",this._disableDelayedDrag),ie(o,"touchend",this._disableDelayedDrag),ie(o,"touchcancel",this._disableDelayedDrag),ie(o,"mousemove",this._delayedDragTouchMoveHandler),ie(o,"touchmove",this._delayedDragTouchMoveHandler),ie(o,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(o,n){n=n||o.pointerType=="touch"&&o,!this.nativeDraggable||n?this.options.supportPointer?me(document,"pointermove",this._onTouchMove):n?me(document,"touchmove",this._onTouchMove):me(document,"mousemove",this._onTouchMove):(me(O,"dragend",this),me(ye,"dragstart",this._onDragStart));try{document.selection?ln(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(o,n){if(Do=!1,ye&&O){ze("dragStarted",this,{evt:n}),this.nativeDraggable&&me(document,"dragover",ga);var t=this.options;!o&&He(O,t.dragClass,!1),He(O,t.ghostClass,!0),X.active=this,o&&this._appendGhost(),Je({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(Ze){this._lastX=Ze.clientX,this._lastY=Ze.clientY,Ct();for(var o=document.elementFromPoint(Ze.clientX,Ze.clientY),n=o;o&&o.shadowRoot&&(o=o.shadowRoot.elementFromPoint(Ze.clientX,Ze.clientY),o!==n);)n=o;if(O.parentNode[Ye]._isOutsideThisEl(o),n)do{if(n[Ye]){var t=void 0;if(t=n[Ye]._onDragOver({clientX:Ze.clientX,clientY:Ze.clientY,target:o,rootEl:n}),t&&!this.options.dragoverBubble)break}o=n}while(n=n.parentNode);wt()}},_onTouchMove:function(o){if(wo){var n=this.options,t=n.fallbackTolerance,a=n.fallbackOffset,c=o.touches?o.touches[0]:o,i=Q&&So(Q,!0),m=Q&&i&&i.a,h=Q&&i&&i.d,p=tn&&Re&&mt(Re),y=(c.clientX-wo.clientX+a.x)/(m||1)+(p?p[0]-Bn[0]:0)/(m||1),u=(c.clientY-wo.clientY+a.y)/(h||1)+(p?p[1]-Bn[1]:0)/(h||1);if(!X.active&&!Do){if(t&&Math.max(Math.abs(c.clientX-this._lastX),Math.abs(c.clientY-this._lastY))<t)return;this._onDragStart(o,!0)}if(Q){i?(i.e+=y-(Nn||0),i.f+=u-(xn||0)):i={a:1,b:0,c:0,d:1,e:y,f:u};var C="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");K(Q,"webkitTransform",C),K(Q,"mozTransform",C),K(Q,"msTransform",C),K(Q,"transform",C),Nn=y,xn=u,Ze=c}o.cancelable&&o.preventDefault()}},_appendGhost:function(){if(!Q){var o=this.options.fallbackOnBody?document.body:ye,n=Be(O,!0,tn,!0,o),t=this.options;if(tn){for(Re=o;K(Re,"position")==="static"&&K(Re,"transform")==="none"&&Re!==document;)Re=Re.parentNode;Re!==document.body&&Re!==document.documentElement?(Re===document&&(Re=oo()),n.top+=Re.scrollTop,n.left+=Re.scrollLeft):Re=oo(),Bn=mt(Re)}Q=O.cloneNode(!0),He(Q,t.ghostClass,!1),He(Q,t.fallbackClass,!0),He(Q,t.dragClass,!0),K(Q,"transition",""),K(Q,"transform",""),K(Q,"box-sizing","border-box"),K(Q,"margin",0),K(Q,"top",n.top),K(Q,"left",n.left),K(Q,"width",n.width),K(Q,"height",n.height),K(Q,"opacity","0.8"),K(Q,"position",tn?"absolute":"fixed"),K(Q,"zIndex","100000"),K(Q,"pointerEvents","none"),X.ghost=Q,o.appendChild(Q),K(Q,"transform-origin",ht/parseInt(Q.style.width)*100+"% "+yt/parseInt(Q.style.height)*100+"%")}},_onDragStart:function(o,n){var t=this,a=o.dataTransfer,c=t.options;if(ze("dragStart",this,{evt:o}),X.eventCanceled){this._onDrop();return}ze("setupClone",this),X.eventCanceled||(be=ut(O),be.removeAttribute("id"),be.draggable=!1,be.style["will-change"]="",this._hideClone(),He(be,this.options.chosenClass,!1),X.clone=be),t.cloneId=ln(function(){ze("clone",t),!X.eventCanceled&&(t.options.removeCloneOnHide||ye.insertBefore(be,O),t._hideClone(),Je({sortable:t,name:"clone"}))}),!n&&He(O,c.dragClass,!0),n?(Qo=!0,t._loopId=setInterval(t._emulateDragOver,50)):(ie(document,"mouseup",t._onDrop),ie(document,"touchend",t._onDrop),ie(document,"touchcancel",t._onDrop),a&&(a.effectAllowed="move",c.setData&&c.setData.call(t,a,O)),me(document,"drop",t),K(O,"transform","translateZ(0)")),Do=!0,t._dragStartId=ln(t._dragStarted.bind(t,n,o)),me(document,"selectstart",t),Po=!0,Fo&&K(document.body,"user-select","none")},_onDragOver:function(o){var n=this.el,t=o.target,a,c,i,m=this.options,h=m.group,p=X.active,y=Xo===h,u=m.sort,C=Ae||p,E,g=this,T=!1;if(Sn)return;function R(M,de){ze(M,g,eo({evt:o,isOwner:y,axis:E?"vertical":"horizontal",revert:i,dragRect:a,targetRect:c,canSort:u,fromSortable:C,target:t,completed:U,onMove:function(D,I){return an(ye,n,O,a,D,Be(D),o,I)},changed:W},de))}function q(){R("dragOverAnimationCapture"),g.captureAnimationState(),g!==C&&C.captureAnimationState()}function U(M){return R("dragOverCompleted",{insertion:M}),M&&(y?p._hideClone():p._showClone(g),g!==C&&(He(O,Ae?Ae.options.ghostClass:p.options.ghostClass,!1),He(O,m.ghostClass,!0)),Ae!==g&&g!==X.active?Ae=g:g===X.active&&Ae&&(Ae=null),C===g&&(g._ignoreWhileAnimating=t),g.animateAll(function(){R("dragOverAnimationComplete"),g._ignoreWhileAnimating=null}),g!==C&&(C.animateAll(),C._ignoreWhileAnimating=null)),(t===O&&!O.animated||t===n&&!t.animated)&&(Oo=null),!m.dragoverBubble&&!o.rootEl&&t!==document&&(O.parentNode[Ye]._isOutsideThisEl(o.target),!M&&No(o)),!m.dragoverBubble&&o.stopPropagation&&o.stopPropagation(),T=!0}function W(){qe=We(O),go=We(O,m.draggable),Je({sortable:g,name:"change",toEl:n,newIndex:qe,newDraggableIndex:go,originalEvent:o})}if(o.preventDefault!==void 0&&o.cancelable&&o.preventDefault(),t=Qe(t,m.draggable,n,!0),R("dragOver"),X.eventCanceled)return T;if(O.contains(o.target)||t.animated&&t.animatingX&&t.animatingY||g._ignoreWhileAnimating===t)return U(!1);if(Qo=!1,p&&!m.disabled&&(y?u||(i=Ce!==ye):Ae===this||(this.lastPutMode=Xo.checkPull(this,p,O,o))&&h.checkPut(this,p,O,o))){if(E=this._getDirection(o,t)==="vertical",a=Be(O),R("dragOverValid"),X.eventCanceled)return T;if(i)return Ce=ye,q(),this._hideClone(),R("revert"),X.eventCanceled||(Co?ye.insertBefore(O,Co):ye.appendChild(O)),U(!0);var oe=Vn(n,m.draggable);if(!oe||Ca(o,E,this)&&!oe.animated){if(oe===O)return U(!1);if(oe&&n===o.target&&(t=oe),t&&(c=Be(t)),an(ye,n,O,a,t,c,o,!!t)!==!1)return q(),oe&&oe.nextSibling?n.insertBefore(O,oe.nextSibling):n.appendChild(O),Ce=n,W(),U(!0)}else if(oe&&Va(o,E,this)){var pe=_o(n,0,m,!0);if(pe===O)return U(!1);if(t=pe,c=Be(t),an(ye,n,O,a,t,c,o,!1)!==!1)return q(),n.insertBefore(O,pe),Ce=n,W(),U(!0)}else if(t.parentNode===n){c=Be(t);var se=0,ne,Z=O.parentNode!==n,xe=!ha(O.animated&&O.toRect||a,t.animated&&t.toRect||c,E),H=E?"top":"left",$=it(t,"top","top")||it(O,"top","top"),k=$?$.scrollTop:void 0;Oo!==t&&(ne=c[H],Jo=!1,vo=!xe&&m.invertSwap||Z),se=wa(o,t,c,E,xe?1:m.swapThreshold,m.invertedSwapThreshold==null?m.swapThreshold:m.invertedSwapThreshold,vo,Oo===t);var f;if(se!==0){var x=We(O);do x-=se,f=Ce.children[x];while(f&&(K(f,"display")==="none"||f===Q))}if(se===0||f===t)return U(!1);Oo=t,$o=se;var b=t.nextElementSibling,F=!1;F=se===1;var P=an(ye,n,O,a,t,c,o,F);if(P!==!1)return(P===1||P===-1)&&(F=P===1),Sn=!0,setTimeout(ka,30),q(),F&&!b?n.appendChild(O):t.parentNode.insertBefore(O,F?b:t),$&&pt($,0,k-$.scrollTop),Ce=O.parentNode,ne!==void 0&&!vo&&(en=Math.abs(ne-Be(t)[H])),W(),U(!0)}if(n.contains(O))return U(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){ie(document,"mousemove",this._onTouchMove),ie(document,"touchmove",this._onTouchMove),ie(document,"pointermove",this._onTouchMove),ie(document,"dragover",No),ie(document,"mousemove",No),ie(document,"touchmove",No)},_offUpEvents:function(){var o=this.el.ownerDocument;ie(o,"mouseup",this._onDrop),ie(o,"touchend",this._onDrop),ie(o,"pointerup",this._onDrop),ie(o,"touchcancel",this._onDrop),ie(document,"selectstart",this)},_onDrop:function(o){var n=this.el,t=this.options;if(qe=We(O),go=We(O,t.draggable),ze("drop",this,{evt:o}),Ce=O&&O.parentNode,qe=We(O),go=We(O,t.draggable),X.eventCanceled){this._nulling();return}Do=!1,vo=!1,Jo=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),En(this.cloneId),En(this._dragStartId),this.nativeDraggable&&(ie(document,"drop",this),ie(n,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Fo&&K(document.body,"user-select",""),K(O,"transform",""),o&&(Po&&(o.cancelable&&o.preventDefault(),!t.dropBubble&&o.stopPropagation()),Q&&Q.parentNode&&Q.parentNode.removeChild(Q),(ye===Ce||Ae&&Ae.lastPutMode!=="clone")&&be&&be.parentNode&&be.parentNode.removeChild(be),O&&(this.nativeDraggable&&ie(O,"dragend",this),_n(O),O.style["will-change"]="",Po&&!Do&&He(O,Ae?Ae.options.ghostClass:this.options.ghostClass,!1),He(O,this.options.chosenClass,!1),Je({sortable:this,name:"unchoose",toEl:Ce,newIndex:null,newDraggableIndex:null,originalEvent:o}),ye!==Ce?(qe>=0&&(Je({rootEl:Ce,name:"add",toEl:Ce,fromEl:ye,originalEvent:o}),Je({sortable:this,name:"remove",toEl:Ce,originalEvent:o}),Je({rootEl:Ce,name:"sort",toEl:Ce,fromEl:ye,originalEvent:o}),Je({sortable:this,name:"sort",toEl:Ce,originalEvent:o})),Ae&&Ae.save()):qe!==To&&qe>=0&&(Je({sortable:this,name:"update",toEl:Ce,originalEvent:o}),Je({sortable:this,name:"sort",toEl:Ce,originalEvent:o})),X.active&&((qe==null||qe===-1)&&(qe=To,go=Io),Je({sortable:this,name:"end",toEl:Ce,originalEvent:o}),this.save()))),this._nulling()},_nulling:function(){ze("nulling",this),ye=O=Ce=Q=Co=be=Ko=yo=wo=Ze=Po=qe=go=To=Io=Oo=$o=Ae=Xo=X.dragged=X.ghost=X.clone=X.active=null,on.forEach(function(o){o.checked=!0}),on.length=Nn=xn=0},handleEvent:function(o){switch(o.type){case"drop":case"dragend":this._onDrop(o);break;case"dragenter":case"dragover":O&&(this._onDragOver(o),ba(o));break;case"selectstart":o.preventDefault();break}},toArray:function(){for(var o=[],n,t=this.el.children,a=0,c=t.length,i=this.options;a<c;a++)n=t[a],Qe(n,i.draggable,this.el,!1)&&o.push(n.getAttribute(i.dataIdAttr)||xa(n));return o},sort:function(o,n){var t={},a=this.el;this.toArray().forEach(function(c,i){var m=a.children[i];Qe(m,this.options.draggable,a,!1)&&(t[c]=m)},this),n&&this.captureAnimationState(),o.forEach(function(c){t[c]&&(a.removeChild(t[c]),a.appendChild(t[c]))}),n&&this.animateAll()},save:function(){var o=this.options.store;o&&o.set&&o.set(this)},closest:function(o,n){return Qe(o,n||this.options.draggable,this.el,!1)},option:function(o,n){var t=this.options;if(n===void 0)return t[o];var a=Ro.modifyOption(this,o,n);typeof a<"u"?t[o]=a:t[o]=n,o==="group"&&Vt(t)},destroy:function(){ze("destroy",this);var o=this.el;o[Ye]=null,ie(o,"mousedown",this._onTapStart),ie(o,"touchstart",this._onTapStart),ie(o,"pointerdown",this._onTapStart),this.nativeDraggable&&(ie(o,"dragover",this),ie(o,"dragenter",this)),Array.prototype.forEach.call(o.querySelectorAll("[draggable]"),function(n){n.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),Zo.splice(Zo.indexOf(this.el),1),this.el=o=null},_hideClone:function(){if(!yo){if(ze("hideClone",this),X.eventCanceled)return;K(be,"display","none"),this.options.removeCloneOnHide&&be.parentNode&&be.parentNode.removeChild(be),yo=!0}},_showClone:function(o){if(o.lastPutMode!=="clone"){this._hideClone();return}if(yo){if(ze("showClone",this),X.eventCanceled)return;O.parentNode==ye&&!this.options.group.revertClone?ye.insertBefore(be,O):Co?ye.insertBefore(be,Co):ye.appendChild(be),this.options.group.revertClone&&this.animate(O,be),K(be,"display",""),yo=!1}}};function ba(o){o.dataTransfer&&(o.dataTransfer.dropEffect="move"),o.cancelable&&o.preventDefault()}function an(o,n,t,a,c,i,m,h){var p,y=o[Ye],u=y.options.onMove,C;return window.CustomEvent&&!io&&!Uo?p=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(p=document.createEvent("Event"),p.initEvent("move",!0,!0)),p.to=n,p.from=o,p.dragged=t,p.draggedRect=a,p.related=c||n,p.relatedRect=i||Be(n),p.willInsertAfter=h,p.originalEvent=m,o.dispatchEvent(p),u&&(C=u.call(y,p,m)),C}function _n(o){o.draggable=!1}function ka(){Sn=!1}function Va(o,n,t){var a=Be(_o(t.el,0,t.options,!0)),c=ft(t.el,t.options,Q),i=10;return n?o.clientX<c.left-i||o.clientY<a.top&&o.clientX<a.right:o.clientY<c.top-i||o.clientY<a.bottom&&o.clientX<a.left}function Ca(o,n,t){var a=Be(Vn(t.el,t.options.draggable)),c=ft(t.el,t.options,Q),i=10;return n?o.clientX>c.right+i||o.clientY>a.bottom&&o.clientX>a.left:o.clientY>c.bottom+i||o.clientX>a.right&&o.clientY>a.top}function wa(o,n,t,a,c,i,m,h){var p=a?o.clientY:o.clientX,y=a?t.height:t.width,u=a?t.top:t.left,C=a?t.bottom:t.right,E=!1;if(!m){if(h&&en<y*c){if(!Jo&&($o===1?p>u+y*i/2:p<C-y*i/2)&&(Jo=!0),Jo)E=!0;else if($o===1?p<u+en:p>C-en)return-$o}else if(p>u+y*(1-c)/2&&p<C-y*(1-c)/2)return Na(n)}return E=E||m,E&&(p<u+y*i/2||p>C-y*i/2)?p>u+y/2?1:-1:0}function Na(o){return We(O)<We(o)?1:-1}function xa(o){for(var n=o.tagName+o.className+o.src+o.href+o.textContent,t=n.length,a=0;t--;)a+=n.charCodeAt(t);return a.toString(36)}function Ba(o){on.length=0;for(var n=o.getElementsByTagName("input"),t=n.length;t--;){var a=n[t];a.checked&&on.push(a)}}function ln(o){return setTimeout(o,0)}function En(o){return clearTimeout(o)}nn&&me(document,"touchmove",function(o){(X.active||Do)&&o.cancelable&&o.preventDefault()}),X.utils={on:me,off:ie,css:K,find:rt,is:function(o,n){return!!Qe(o,n,o,!1)},extend:ca,throttle:st,closest:Qe,toggleClass:He,clone:ut,index:We,nextTick:ln,cancelNextTick:En,detectDirection:kt,getChild:_o},X.get=function(o){return o[Ye]},X.mount=function(){for(var o=arguments.length,n=new Array(o),t=0;t<o;t++)n[t]=arguments[t];n[0].constructor===Array&&(n=n[0]),n.forEach(function(a){if(!a.prototype||!a.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(a));a.utils&&(X.utils=eo(eo({},X.utils),a.utils)),Ro.mount(a)})},X.create=function(o,n){return new X(o,n)},X.version=aa;var Se=[],Lo,Tn,Dn=!1,On,An,dn,zo;function Sa(){function o(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var n in this)n.charAt(0)==="_"&&typeof this[n]=="function"&&(this[n]=this[n].bind(this))}return o.prototype={dragStarted:function(n){var t=n.originalEvent;this.sortable.nativeDraggable?me(document,"dragover",this._handleAutoScroll):this.options.supportPointer?me(document,"pointermove",this._handleFallbackAutoScroll):t.touches?me(document,"touchmove",this._handleFallbackAutoScroll):me(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(n){var t=n.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?ie(document,"dragover",this._handleAutoScroll):(ie(document,"pointermove",this._handleFallbackAutoScroll),ie(document,"touchmove",this._handleFallbackAutoScroll),ie(document,"mousemove",this._handleFallbackAutoScroll)),Nt(),cn(),ra()},nulling:function(){dn=Tn=Lo=Dn=zo=On=An=null,Se.length=0},_handleFallbackAutoScroll:function(n){this._handleAutoScroll(n,!0)},_handleAutoScroll:function(n,t){var a=this,c=(n.touches?n.touches[0]:n).clientX,i=(n.touches?n.touches[0]:n).clientY,m=document.elementFromPoint(c,i);if(dn=n,t||this.options.forceAutoScrollFallback||Uo||io||Fo){Un(n,this.options,m,t);var h=ho(m,!0);Dn&&(!zo||c!==On||i!==An)&&(zo&&Nt(),zo=setInterval(function(){var p=ho(document.elementFromPoint(c,i),!0);p!==h&&(h=p,cn()),Un(n,a.options,p,t)},10),On=c,An=i)}else{if(!this.options.bubbleScroll||ho(m,!0)===oo()){cn();return}Un(n,this.options,ho(m,!1),!1)}}},co(o,{pluginName:"scroll",initializeByDefault:!0})}function cn(){Se.forEach(function(o){clearInterval(o.pid)}),Se=[]}function Nt(){clearInterval(zo)}var Un=st(function(o,n,t,a){if(n.scroll){var c=(o.touches?o.touches[0]:o).clientX,i=(o.touches?o.touches[0]:o).clientY,m=n.scrollSensitivity,h=n.scrollSpeed,p=oo(),y=!1,u;Tn!==t&&(Tn=t,cn(),Lo=n.scroll,u=n.scrollFn,Lo===!0&&(Lo=ho(t,!0)));var C=0,E=Lo;do{var g=E,T=Be(g),R=T.top,q=T.bottom,U=T.left,W=T.right,oe=T.width,pe=T.height,se=void 0,ne=void 0,Z=g.scrollWidth,xe=g.scrollHeight,H=K(g),$=g.scrollLeft,k=g.scrollTop;g===p?(se=oe<Z&&(H.overflowX==="auto"||H.overflowX==="scroll"||H.overflowX==="visible"),ne=pe<xe&&(H.overflowY==="auto"||H.overflowY==="scroll"||H.overflowY==="visible")):(se=oe<Z&&(H.overflowX==="auto"||H.overflowX==="scroll"),ne=pe<xe&&(H.overflowY==="auto"||H.overflowY==="scroll"));var f=se&&(Math.abs(W-c)<=m&&$+oe<Z)-(Math.abs(U-c)<=m&&!!$),x=ne&&(Math.abs(q-i)<=m&&k+pe<xe)-(Math.abs(R-i)<=m&&!!k);if(!Se[C])for(var b=0;b<=C;b++)Se[b]||(Se[b]={});(Se[C].vx!=f||Se[C].vy!=x||Se[C].el!==g)&&(Se[C].el=g,Se[C].vx=f,Se[C].vy=x,clearInterval(Se[C].pid),(f!=0||x!=0)&&(y=!0,Se[C].pid=setInterval((function(){a&&this.layer===0&&X.active._onTouchMove(dn);var F=Se[this.layer].vy?Se[this.layer].vy*h:0,P=Se[this.layer].vx?Se[this.layer].vx*h:0;typeof u=="function"&&u.call(X.dragged.parentNode[Ye],P,F,o,dn,Se[this.layer].el)!=="continue"||pt(Se[this.layer].el,P,F)}).bind({layer:C}),24))),C++}while(n.bubbleScroll&&E!==p&&(E=ho(E,!1)));Dn=y}},30),xt=function(o){var n=o.originalEvent,t=o.putSortable,a=o.dragEl,c=o.activeSortable,i=o.dispatchSortableEvent,m=o.hideGhostForTarget,h=o.unhideGhostForTarget;if(n){var p=t||c;m();var y=n.changedTouches&&n.changedTouches.length?n.changedTouches[0]:n,u=document.elementFromPoint(y.clientX,y.clientY);h(),p&&!p.el.contains(u)&&(i("spill"),this.onSpill({dragEl:a,putSortable:t}))}};function Fn(){}Fn.prototype={startIndex:null,dragStart:function(o){var n=o.oldDraggableIndex;this.startIndex=n},onSpill:function(o){var n=o.dragEl,t=o.putSortable;this.sortable.captureAnimationState(),t&&t.captureAnimationState();var a=_o(this.sortable.el,this.startIndex,this.options);a?this.sortable.el.insertBefore(n,a):this.sortable.el.appendChild(n),this.sortable.animateAll(),t&&t.animateAll()},drop:xt},co(Fn,{pluginName:"revertOnSpill"});function Mn(){}Mn.prototype={onSpill:function(o){var n=o.dragEl,t=o.putSortable,a=t||this.sortable;a.captureAnimationState(),n.parentNode&&n.parentNode.removeChild(n),a.animateAll()},drop:xt},co(Mn,{pluginName:"removeOnSpill"}),X.mount(new Sa),X.mount(Mn,Fn);function _a(o){return o==null?o:JSON.parse(JSON.stringify(o))}function Ea(o){e.getCurrentInstance()&&e.onUnmounted(o)}function Ta(o){e.getCurrentInstance()?e.onMounted(o):e.nextTick(o)}let Bt=null,St=null;function _t(o=null,n=null){Bt=o,St=n}function Da(){return{data:Bt,clonedData:St}}const Et=Symbol("cloneElement");function Oa(...o){var n,t;const a=(n=e.getCurrentInstance())==null?void 0:n.proxy;let c=null;const i=o[0];let[,m,h]=o;Array.isArray(e.unref(m))||(h=m,m=null);let p=null;const{immediate:y=!0,clone:u=_a,forceFallback:C,fallbackOnBody:E,customUpdate:g}=(t=e.unref(h))!=null?t:{};function T($){var k;const{from:f,oldIndex:x,item:b}=$,F=Array.from(f.childNodes);c=C&&!E?F.slice(0,-1):F;const P=e.unref((k=e.unref(m))==null?void 0:k[x]),M=u(P);_t(P,M),b[Et]=M}function R($){const k=$.item[Et];if(!Wt(k)){if(kn($.item),e.isRef(m)){const f=[...e.unref(m)];m.value=vn(f,$.newDraggableIndex,k);return}vn(e.unref(m),$.newDraggableIndex,k)}}function q($){const{from:k,item:f,oldIndex:x,oldDraggableIndex:b,pullMode:F,clone:P}=$;if(et(k,f,x),F==="clone"){kn(P);return}if(e.isRef(m)){const M=[...e.unref(m)];m.value=Zn(M,b);return}Zn(e.unref(m),b)}function U($){if(g){g($);return}const{from:k,item:f,oldIndex:x,oldDraggableIndex:b,newDraggableIndex:F}=$;if(kn(f),et(k,f,x),e.isRef(m)){const P=[...e.unref(m)];m.value=Qn(P,b,F);return}Qn(e.unref(m),b,F)}function W($){const{newIndex:k,oldIndex:f,from:x,to:b}=$;let F=null;const P=k===f&&x===b;try{if(P){let M=null;c?.some((de,D)=>{if(M&&c?.length!==b.childNodes.length)return x.insertBefore(M,de.nextSibling),!0;const I=b.childNodes[D];M=b?.replaceChild(de,I)})}}catch(M){F=M}finally{c=null}e.nextTick(()=>{if(_t(),F)throw F})}const oe={onUpdate:U,onStart:T,onAdd:R,onRemove:q,onEnd:W};function pe($){const k=e.unref(i);return $||($=Gt(k)?Kt(k,a?.$el):k),$&&!Zt($)&&($=$.$el),$||Ht("Root element not found"),$}function se(){var $;const k=($=e.unref(h))!=null?$:{},{immediate:f,clone:x}=k,b=Kn(k,["immediate","clone"]);return ot(b,(F,P)=>{vt(F)&&(b[F]=(M,...de)=>{const D=Da();return ea(M,D),P(M,...de)})}),Qt(m===null?{}:oe,b)}const ne=$=>{$=pe($),p&&Z.destroy(),p=new X($,se())};e.watch(()=>h,()=>{p&&ot(se(),($,k)=>{p?.option($,k)})},{deep:!0});const Z={option:($,k)=>p?.option($,k),destroy:()=>{p?.destroy(),p=null},save:()=>p?.save(),toArray:()=>p?.toArray(),closest:(...$)=>p?.closest(...$)},xe=()=>Z?.option("disabled",!0),H=()=>Z?.option("disabled",!1);return Ta(()=>{y&&ne()}),Ea(Z.destroy),Bo({start:ne,pause:xe,resume:H},Z)}const Rn=["update","start","add","remove","choose","unchoose","end","sort","filter","clone","move","change"],Aa=["clone","animation","ghostClass","group","sort","disabled","store","handle","draggable","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","chosenClass","dragClass","ignore","filter","preventOnFilter","easing","setData","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","emptyInsertThreshold","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","modelValue","tag","target","customUpdate",...Rn.map(o=>`on${o.replace(/^\S/,n=>n.toUpperCase())}`)],jo=e.defineComponent({name:"VueDraggable",model:{prop:"modelValue",event:"update:modelValue"},props:Aa,emits:["update:modelValue",...Rn],setup(o,{slots:n,emit:t,expose:a,attrs:c}){const i=Rn.reduce((u,C)=>{const E=`on${C.replace(/^\S/,g=>g.toUpperCase())}`;return u[E]=(...g)=>t(C,...g),u},{}),m=e.computed(()=>{const u=e.toRefs(o),{modelValue:C}=u,E=Kn(u,["modelValue"]),g=Object.entries(E).reduce((T,[R,q])=>{const U=e.unref(q);return U!==void 0&&(T[R]=U),T},{});return Bo(Bo({},i),qt(Bo(Bo({},c),g)))}),h=e.computed({get:()=>o.modelValue,set:u=>t("update:modelValue",u)}),p=e.ref(),y=e.reactive(Oa(o.target||p,h,m));return a(y),()=>{var u;return e.h(o.tag||"div",{ref:p},(u=n?.default)==null?void 0:u.call(n,y))}}}),Ua=[{title:"基础组件",list:[{type:"input",props:{label:"单行文本",width:"100%",placeholder:"请输入",disabled:!1,clearable:!0}},{type:"textarea",props:{label:"多行文本",width:"100%",placeholder:"请输入",rows:3,disabled:!1}},{type:"text",props:{label:"文字",width:"100%",text:"这是一段文字",disabled:!1}},{type:"link",props:{label:"链接",width:"100%",linkText:"点击打开",linkUrl:"https://example.com",linkTarget:"_blank",linkUnderline:!0,disabled:!1}},{type:"input-number",props:{label:"计数器",width:"100%",disabled:!1}},{type:"rate",props:{label:"评分",width:"100%",max:5,allowHalf:!1,clearable:!0,disabled:!1}},{type:"radio",props:{label:"单选框",width:"100%",optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1}},{type:"checkbox",props:{label:"复选框",width:"100%",optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1}},{type:"select",props:{label:"下拉框",width:"100%",placeholder:"请选择",filterable:!1,virtualized:!1,optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1,clearable:!0}},{type:"switch",props:{label:"开关",width:"100%",disabled:!1}},{type:"date",props:{label:"日期",width:"100%",placeholder:"选择日期",disabled:!1,clearable:!0}},{type:"time",props:{label:"时间",width:"100%",placeholder:"选择时间",disabled:!1,clearable:!0}},{type:"pca",props:{label:"省市区",width:"100%",placeholder:"请选择",pcaType:"province-city-area",multiple:!1,clearable:!0,disabled:!1}},{type:"datetime",props:{label:"日期时间",width:"100%",placeholder:"选择日期时间",disabled:!1,clearable:!0}}]},{title:"高级组件",list:[{type:"cascader",props:{label:"级联选择",width:"100%",placeholder:"请选择",checkStrictly:!1,optionsSource:"static",options:[{label:"选项1",value:"1",children:[{label:"子选项1-1",value:"1-1"},{label:"子选项1-2",value:"1-2"}]},{label:"选项2",value:"2",children:[{label:"子选项2-1",value:"2-1"}]}],disabled:!1,clearable:!0}},{type:"signature",props:{label:"手写签名",width:"100%",signatureHeight:200,signatureLineWidth:2,signaturePenColor:"#000000",signatureBackgroundColor:"#ffffff",clearable:!0,disabled:!1}},{type:"upload",props:{label:"文件上传",width:"100%",action:"",name:"file",multiple:!1,limit:5,listType:"text",autoUpload:!1,showFileList:!0,withCredentials:!1,uploadHeadersJson:"{}",uploadDataJson:"{}",disabled:!1}},{type:"sub-form",props:{label:"子表单",width:"100%",showIndex:!0,showAction:!0,disabled:!1},children:[]}]},{title:"布局组件",list:[{type:"group",props:{label:"分组",width:"100%"},children:[]},{type:"grid",props:{label:"栅格布局",width:"100%",gutter:20},children:[{id:"",type:"grid-col",props:{label:"列",span:12},children:[]},{id:"",type:"grid-col",props:{label:"列",span:12},children:[]}]}]}],Fa={class:"left-panel"},Ma={class:"group-title"},Ra={class:"component-label"},Ia=e.defineComponent({__name:"LeftPanel",props:{componentGroups:{}},setup(o){const n=o,t=h=>h.map(p=>({title:p.title,list:[...p.list]})),a=h=>t(h??Ua),c=e.ref(a(n.componentGroups));e.watch(()=>n.componentGroups,h=>{c.value=a(h)},{deep:!0});const i={input:ee.Edit,textarea:ee.Document,text:ee.Tickets,link:ee.Link,"input-number":ee.List,rate:ee.Star,radio:ee.CircleCheck,checkbox:ee.Finished,select:ee.Select,pca:ee.Location,switch:ee.SwitchButton,date:ee.Calendar,time:ee.Clock,datetime:ee.Calendar,cascader:ee.Select,signature:ee.EditPen,upload:ee.UploadFilled,group:ee.Postcard,grid:ee.Grid,"sub-form":ee.Postcard},m=h=>h?i[h]:null;return(h,p)=>{const y=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock("div",Fa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(u,C)=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"component-group"},[e.createElementVNode("div",Ma,e.toDisplayString(u.title),1),e.createVNode(e.unref(jo),{modelValue:u.list,"onUpdate:modelValue":E=>u.list=E,group:{name:"form-builder",pull:"clone",put:!1},sort:!1,clone:e.unref(Ut),"item-key":"type",class:"component-list"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,(E,g)=>(e.openBlock(),e.createElementBlock("div",{key:`${E.type}-${g}`,class:"component-item"},[m(E.type)?(e.openBlock(),e.createBlock(y,{key:0,class:"component-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m(E.type))))]),_:2},1024)):e.createCommentVNode("",!0),e.createElementVNode("span",Ra,e.toDisplayString(E.props?.label||""),1)]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","clone"])]))),128))])}}}),bo=(o,n)=>{const t=o.__vccOpts||o;for(const[a,c]of n)t[a]=c;return t},Pa=bo(Ia,[["__scopeId","data-v-9d6dfcb8"]]),$a=["data-ff-id"],Ja={key:0,class:"item-actions"},La={key:1,class:"grid-layout-item"},za={class:"group-header"},ja={class:"group-title"},Ha={key:0,class:"group-empty"},Ya={key:3,class:"sub-form-layout-item"},qa={class:"ff-label-inline"},Wa={class:"ff-label-text"},Ga={class:"sub-form-table"},Ka={class:"sub-form-header-row"},Xa={key:0,class:"sub-form-cell cell-index"},Qa=["onClick"],Za={class:"cell-title"},va={key:0,class:"cell-actions"},el={key:0,class:"sub-form-empty"},ol={class:"sub-form-body-row"},nl={key:0,class:"sub-form-cell cell-index"},tl={class:"sub-form-columns"},al=["onClick"],ll={class:"cell-control"},dl={class:"ff-text-preview-content"},cl=["textContent"],rl={class:"ff-label-inline"},il={class:"ff-label-text"},ml={class:"ff-text-preview-content"},sl=bo(e.defineComponent({name:"FormItem",__name:"FormItem",props:{element:{}},emits:["init-grid","update-children"],setup(o,{emit:n}){const a=o.element,{selectedId:c,setSelected:i,deleteComponent:m,duplicateComponent:h}=bn(),p=n,y=e.computed(()=>c.value===a.id),u=D=>D.type==="grid-col",C=D=>{if(typeof D=="number"&&Number.isFinite(D)&&!(D<=0))return`${D}px`},E=e.computed(()=>C(a.props.labelWidth)),g=e.ref([]),T=e.ref(!1),R=D=>D==="radio"||D==="checkbox"||D==="select"||D==="cascader";(()=>{const D=e.ref(!1),I=e.ref(null),ce=()=>{I.value&&(I.value.abort(),I.value=null)},Ue=()=>{if(D.value||!R(a.type)||(a.props.optionsSource??"static")==="static")return;const fe=a.props.remoteOptions;if(!fe||!fe.url)return;D.value=!0,ce();const Fe=new AbortController;I.value=Fe;const Le={url:fe.url,method:fe.method||"GET",paramsJson:fe.paramsJson,headersJson:fe.headersJson,dataPath:fe.dataPath,labelKey:fe.labelKey||"label",valueKey:fe.valueKey||"value",childrenKey:fe.childrenKey};T.value=!0,Hn(Le,Fe.signal).then(je=>{Fe.signal.aborted||(g.value=je)}).catch(je=>{je instanceof DOMException&&je.name==="AbortError"||(g.value=[])}).finally(()=>{Fe.signal.aborted||(T.value=!1)})};e.watchEffect(()=>{if(!R(a.type)){ce(),g.value=[],T.value=!1,D.value=!1;return}if((a.props.optionsSource??"static")==="static"){ce(),g.value=Array.isArray(a.props.options)?a.props.options:[],T.value=!1,D.value=!1;return}D.value||(g.value=[],T.value=!1)}),e.watch(()=>a.props.remoteOptions,()=>{ce(),g.value=[],T.value=!1,D.value=!1},{deep:!0}),e.onMounted(()=>Ue()),e.onBeforeUnmount(()=>ce())})();const U=e.ref(!1);e.onMounted(()=>{U.value||a.type!=="grid"||(a.children||[]).filter(u).length>0||(U.value=!0,p("init-grid",{gridId:a.id,legacyChildren:a.children||[]}))});const W=e.computed(()=>a.type!=="grid"?[]:(a.children||[]).filter(u)),oe=D=>{if(!D||typeof D!="object")return!1;const I=D;return typeof I.id=="string"&&typeof I.type=="string"},pe=(D,I)=>{const ce=Array.isArray(I)?I.filter(oe):[];p("update-children",{id:D,children:ce})},se=(D,I)=>{const ce=Array.isArray(I)?I.filter(oe):[];p("update-children",{id:D,children:ce})},ne=(D,I)=>{const ce=Array.isArray(I)?I.filter(oe):[];p("update-children",{id:D,children:ce})},Z=D=>{const I=D.props.width;return I==="25%"||I==="33.33%"||I==="50%"||I==="66.66%"||I==="75%"||I==="100%"?{width:I}:{width:"100%"}},xe=D=>({input:"单行文本",textarea:"多行文本",text:"文字",link:"链接","input-number":"计数器",rate:"评分",radio:"单选框",checkbox:"复选框",select:"下拉框",switch:"开关",date:"日期",time:"时间",datetime:"日期时间",cascader:"级联选择",pca:"省市区",signature:"手写签名",upload:"上传",group:"分组",grid:"栅格","grid-col":"列","sub-form":"子表单"})[D]??"字段",H=D=>{const I=D.item;if(!(I instanceof HTMLElement))return;const ce=I.dataset.ffId;typeof ce=="string"&&ce.trim()&&i(ce)},$=D=>{p("init-grid",D)},k=D=>{p("update-children",D)},f=e.computed(()=>{const D=a.props.defaultValue;return typeof D=="string"?D:typeof D=="number"||typeof D=="boolean"?String(D):""}),x=e.computed(()=>{const D=a.props.defaultValue;return typeof D=="string"&&D.trim()?D:null}),b=e.computed(()=>{const D=a.props.defaultValue;return typeof D=="number"?D:void 0}),F=e.computed(()=>{const D=a.props.defaultValue;return typeof D=="boolean"?D:!1}),P=e.computed(()=>{const D=a.props.defaultValue;return typeof D=="string"||typeof D=="number"?D:void 0}),M=e.computed(()=>{const D=a.props.defaultValue;return Array.isArray(D)?D.filter(I=>typeof I=="string"||typeof I=="number"):[]}),de=e.computed(()=>{const D=a.props.defaultValue;if(!Array.isArray(D))return[];const I=[];for(const ce of D){if(!Array.isArray(ce))continue;const Ue=ce.filter(Ie=>typeof Ie=="string"||typeof Ie=="number");Ue.length>0&&I.push(Ue)}return I});return(D,I)=>{const ce=e.resolveComponent("el-icon"),Ue=e.resolveComponent("FormItem",!0),Ie=e.resolveComponent("el-col"),fe=e.resolveComponent("el-row"),Fe=e.resolveComponent("el-tooltip"),Le=e.resolveComponent("el-input"),je=e.resolveComponent("el-link"),ko=e.resolveComponent("el-input-number"),mo=e.resolveComponent("el-option"),so=e.resolveComponent("el-select"),ve=e.resolveComponent("el-radio"),po=e.resolveComponent("el-radio-group"),w=e.resolveComponent("el-checkbox"),B=e.resolveComponent("el-checkbox-group"),A=e.resolveComponent("el-switch"),te=e.resolveComponent("el-date-picker"),v=e.resolveComponent("el-time-picker"),re=e.resolveComponent("el-cascader"),ae=e.resolveComponent("el-button"),ue=e.resolveComponent("el-upload"),Pe=e.resolveComponent("el-form-item"),no=e.resolveComponent("el-rate"),to=e.resolveComponent("el-select-v2");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["form-item-wrapper",{active:y.value}]),"data-ff-id":e.unref(a).id,onClick:I[4]||(I[4]=e.withModifiers(_=>e.unref(i)(e.unref(a).id),["stop"]))},[y.value?(e.openBlock(),e.createElementBlock("div",Ja,[e.createVNode(ce,{class:"copy-btn",onClick:I[0]||(I[0]=e.withModifiers(_=>e.unref(h)(e.unref(a).id),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.CopyDocument))]),_:1}),e.createVNode(ce,{class:"delete-btn",onClick:I[1]||(I[1]=e.withModifiers(_=>e.unref(m)(e.unref(a).id),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Delete))]),_:1})])):e.createCommentVNode("",!0),e.unref(a).type==="grid"?(e.openBlock(),e.createElementBlock("div",La,[e.createVNode(fe,{gutter:e.unref(a).props.gutter??20,class:"grid-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,(_,ke)=>(e.openBlock(),e.createBlock(Ie,{key:_.id||ke,span:_.props.span??12,class:"grid-col"},{default:e.withCtx(()=>[e.createVNode(e.unref(jo),{"model-value":_.children||[],"onUpdate:modelValue":we=>pe(_.id,we),onEnd:H,group:"form-builder","item-key":"id",class:"grid-dropzone","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.children||[],we=>(e.openBlock(),e.createBlock(Ue,{key:we.id,element:we,onInitGrid:$,onUpdateChildren:k},null,8,["element"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["span"]))),128))]),_:1},8,["gutter"])])):e.unref(a).type==="group"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"group-layout-item",style:e.normalizeStyle({width:e.unref(a).props.width??"100%"})},[e.createElementVNode("div",za,[e.createElementVNode("span",ja,e.toDisplayString(e.unref(a).props.label),1)]),e.createVNode(e.unref(jo),{"model-value":e.unref(a).children||[],"onUpdate:modelValue":I[2]||(I[2]=_=>ne(e.unref(a).id,_)),onEnd:H,group:"form-builder","item-key":"id",class:"group-dropzone","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children||[],_=>(e.openBlock(),e.createBlock(Ue,{key:_.id,element:_,onInitGrid:$,onUpdateChildren:k},null,8,["element"]))),128)),(e.unref(a).children||[]).length===0?(e.openBlock(),e.createElementBlock("div",Ha,"拖拽组件到此处")):e.createCommentVNode("",!0)]),_:1},8,["model-value"])],4)):e.unref(a).type==="sub-form"?(e.openBlock(),e.createElementBlock("div",Ya,[e.createVNode(Pe,{label:e.unref(a).props.label,"label-width":E.value,class:e.normalizeClass({"ff-label-wrap":e.unref(a).props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",qa,[e.createElementVNode("span",Wa,e.toDisplayString(e.unref(a).props.label),1),e.unref(a).props.description?(e.openBlock(),e.createBlock(Fe,{key:0,content:e.unref(a).props.description},{default:e.withCtx(()=>[e.createVNode(ce,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createElementVNode("div",Ga,[e.createElementVNode("div",Ka,[e.unref(a).props.showIndex?(e.openBlock(),e.createElementBlock("div",Xa,"#")):e.createCommentVNode("",!0),e.createVNode(e.unref(jo),{"model-value":e.unref(a).children||[],"onUpdate:modelValue":I[3]||(I[3]=_=>se(e.unref(a).id,_)),onEnd:H,group:"form-builder","item-key":"id",class:"sub-form-columns sub-form-draggable","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children||[],_=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["sub-form-cell cell-header",{active:e.unref(c)===_.id}]),onClick:e.withModifiers(ke=>e.unref(i)(_.id),["stop"])},[e.createElementVNode("span",Za,e.toDisplayString(_.props.label),1),e.unref(c)===_.id?(e.openBlock(),e.createElementBlock("div",va,[e.createVNode(ce,{class:"copy-btn",onClick:e.withModifiers(ke=>e.unref(h)(_.id),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.CopyDocument))]),_:1},8,["onClick"]),e.createVNode(ce,{class:"delete-btn",onClick:e.withModifiers(ke=>e.unref(m)(_.id),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Delete))]),_:1},8,["onClick"])])):e.createCommentVNode("",!0)],10,Qa))),128)),(e.unref(a).children||[]).length===0?(e.openBlock(),e.createElementBlock("div",el," 拖拽组件到此处作为子表单列 ")):e.createCommentVNode("",!0)]),_:1},8,["model-value"])]),e.createElementVNode("div",ol,[e.unref(a).props.showIndex?(e.openBlock(),e.createElementBlock("div",nl,"1")):e.createCommentVNode("",!0),e.createElementVNode("div",tl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children||[],_=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:"sub-form-cell cell-body",onClick:e.withModifiers(ke=>e.unref(i)(_.id),["stop"])},[e.createElementVNode("div",ll,[_.type==="input"?(e.openBlock(),e.createBlock(Le,{key:0,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="textarea"?(e.openBlock(),e.createBlock(Le,{key:1,type:"textarea",rows:2,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="text"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-text-preview",style:e.normalizeStyle(Z(_))},[e.createElementVNode("span",dl,e.toDisplayString(_.props.text||"文字"),1)],4)):_.type==="link"?(e.openBlock(),e.createElementBlock("div",{key:3,class:"ff-link-preview",style:e.normalizeStyle(Z(_))},[e.createVNode(je,{href:_.props.linkUrl||void 0,target:_.props.linkTarget||"_blank",type:"primary",underline:_.props.linkUnderline!==!1?"hover":"never",disabled:_.props.disabled===!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.props.linkText||_.props.linkUrl||"链接"),1)]),_:2},1032,["href","target","underline","disabled"])],4)):_.type==="input-number"?(e.openBlock(),e.createBlock(ko,{key:4,"model-value":0,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["style"])):_.type==="select"?(e.openBlock(),e.createBlock(so,{key:5,"model-value":_.props.multiple===!0?[]:void 0,multiple:_.props.multiple===!0,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],ke=>(e.openBlock(),e.createBlock(mo,{key:String(ke.value),label:ke.label,value:ke.value},null,8,["label","value"]))),128))]),_:2},1032,["model-value","multiple","placeholder","style"])):_.type==="radio"?(e.openBlock(),e.createBlock(po,{key:6,"model-value":void 0,disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],ke=>(e.openBlock(),e.createBlock(ve,{key:String(ke.value),value:ke.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ke.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["style"])):_.type==="checkbox"?(e.openBlock(),e.createBlock(B,{key:7,"model-value":[],disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],ke=>(e.openBlock(),e.createBlock(w,{key:String(ke.value),value:ke.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ke.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["style"])):_.type==="switch"?(e.openBlock(),e.createBlock(A,{key:8,"model-value":!1,disabled:""})):_.type==="date"?(e.openBlock(),e.createBlock(te,{key:9,"model-value":null,type:"date",placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="time"?(e.openBlock(),e.createBlock(v,{key:10,"model-value":null,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="pca"?(e.openBlock(),e.createElementBlock("div",{key:11,class:"ff-pca-preview",style:e.normalizeStyle(Z(_))},[...I[5]||(I[5]=[e.createElementVNode("span",{class:"ff-pca-preview-text"},"省市区",-1)])],4)):_.type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:12,class:"ff-signature-preview",style:e.normalizeStyle({...Z(_),height:"80px"})},[...I[6]||(I[6]=[e.createElementVNode("span",{class:"ff-signature-preview-text"},"手写签名",-1)])],4)):_.type==="datetime"?(e.openBlock(),e.createBlock(te,{key:13,"model-value":null,type:"datetime",placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="cascader"?(e.openBlock(),e.createBlock(re,{key:14,"model-value":_.props.multiple===!0?[]:[],placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_)),options:Array.isArray(_.props.options)?_.props.options:[],props:{multiple:_.props.multiple===!0}},null,8,["model-value","placeholder","style","options","props"])):_.type==="upload"?(e.openBlock(),e.createBlock(ue,{key:15,action:"","auto-upload":!1,"show-file-list":!1,disabled:""},{default:e.withCtx(()=>[e.createVNode(ae,{disabled:"",type:"primary"},{default:e.withCtx(()=>[...I[7]||(I[7]=[e.createTextVNode("选择文件",-1)])]),_:1})]),_:1})):(e.openBlock(),e.createElementBlock("span",{key:16,class:"cell-placeholder",textContent:e.toDisplayString(xe(_.type))},null,8,cl))])],8,al))),128))])])])]),_:1},8,["label","label-width","class"])])):(e.openBlock(),e.createBlock(Pe,{key:4,label:e.unref(a).props.label,required:e.unref(a).props.required,"label-width":E.value,class:e.normalizeClass({"ff-label-wrap":e.unref(a).props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",rl,[e.createElementVNode("span",il,e.toDisplayString(e.unref(a).props.label),1),e.unref(a).props.description?(e.openBlock(),e.createBlock(Fe,{key:0,content:e.unref(a).props.description},{default:e.withCtx(()=>[e.createVNode(ce,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.unref(a).type==="input"?(e.openBlock(),e.createBlock(Le,{key:0,"model-value":f.value,placeholder:e.unref(a).props.placeholder,clearable:e.unref(a).props.clearable,disabled:e.unref(a).props.disabled,style:e.normalizeStyle({width:e.unref(a).props.width}),readonly:""},null,8,["model-value","placeholder","clearable","disabled","style"])):e.unref(a).type==="textarea"?(e.openBlock(),e.createBlock(Le,{key:1,"model-value":f.value,type:"textarea",rows:e.unref(a).props.rows,placeholder:e.unref(a).props.placeholder,disabled:e.unref(a).props.disabled,style:e.normalizeStyle({width:e.unref(a).props.width}),readonly:""},null,8,["model-value","rows","placeholder","disabled","style"])):e.unref(a).type==="text"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-text-preview",style:e.normalizeStyle({width:e.unref(a).props.width,opacity:e.unref(a).props.disabled===!0?.6:1})},[e.createElementVNode("span",ml,e.toDisplayString(e.unref(a).props.text||"文字"),1)],4)):e.unref(a).type==="link"?(e.openBlock(),e.createElementBlock("div",{key:3,class:"ff-link-preview",style:e.normalizeStyle({width:e.unref(a).props.width})},[e.createVNode(je,{href:e.unref(a).props.linkUrl||void 0,target:e.unref(a).props.linkTarget||"_blank",type:"primary",underline:e.unref(a).props.linkUnderline!==!1?"hover":"never",disabled:e.unref(a).props.disabled===!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).props.linkText||e.unref(a).props.linkUrl||"链接"),1)]),_:1},8,["href","target","underline","disabled"])],4)):e.unref(a).type==="input-number"?(e.openBlock(),e.createBlock(ko,{key:4,"model-value":b.value,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},null,8,["model-value","style"])):e.unref(a).type==="rate"?(e.openBlock(),e.createBlock(no,{key:5,"model-value":b.value??0,disabled:"",max:e.unref(a).props.max??5,"allow-half":e.unref(a).props.allowHalf===!0},null,8,["model-value","max","allow-half"])):e.unref(a).type==="radio"?(e.openBlock(),e.createBlock(po,{key:6,"model-value":P.value,disabled:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,_=>(e.openBlock(),e.createBlock(ve,{key:String(_.value),value:_.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"])):e.unref(a).type==="checkbox"?(e.openBlock(),e.createBlock(B,{key:7,"model-value":M.value,disabled:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,_=>(e.openBlock(),e.createBlock(w,{key:String(_.value),value:_.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"])):e.unref(a).type==="select"&&e.unref(a).props.virtualized===!0?(e.openBlock(),e.createBlock(to,{key:8,"model-value":e.unref(a).props.multiple===!0?M.value:P.value,multiple:e.unref(a).props.multiple===!0,placeholder:e.unref(a).props.placeholder,filterable:e.unref(a).props.filterable===!0,clearable:e.unref(a).props.clearable,options:g.value,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},null,8,["model-value","multiple","placeholder","filterable","clearable","options","style"])):e.unref(a).type==="select"?(e.openBlock(),e.createBlock(so,{key:9,"model-value":e.unref(a).props.multiple===!0?M.value:P.value,multiple:e.unref(a).props.multiple===!0,placeholder:e.unref(a).props.placeholder,filterable:e.unref(a).props.filterable===!0,clearable:e.unref(a).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,_=>(e.openBlock(),e.createBlock(mo,{key:String(_.value),label:_.label,value:_.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","multiple","placeholder","filterable","clearable","style"])):e.unref(a).type==="switch"?(e.openBlock(),e.createBlock(A,{key:10,"model-value":F.value,disabled:""},null,8,["model-value"])):e.unref(a).type==="date"?(e.openBlock(),e.createBlock(te,{key:11,"model-value":x.value,type:"date","value-format":"YYYY-MM-DD",placeholder:e.unref(a).props.placeholder,clearable:e.unref(a).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(a).type==="time"?(e.openBlock(),e.createBlock(v,{key:12,"model-value":x.value,"value-format":"HH:mm:ss",placeholder:e.unref(a).props.placeholder,clearable:e.unref(a).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(a).type==="pca"?(e.openBlock(),e.createElementBlock("div",{key:13,class:"ff-pca-preview",style:e.normalizeStyle({width:e.unref(a).props.width})},[...I[8]||(I[8]=[e.createElementVNode("span",{class:"ff-pca-preview-text"},"省市区",-1)])],4)):e.unref(a).type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:14,class:"ff-signature-preview",style:e.normalizeStyle({width:e.unref(a).props.width,height:"80px"})},[...I[9]||(I[9]=[e.createElementVNode("span",{class:"ff-signature-preview-text"},"手写签名",-1)])],4)):e.unref(a).type==="datetime"?(e.openBlock(),e.createBlock(te,{key:15,"model-value":x.value,type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:e.unref(a).props.placeholder,clearable:e.unref(a).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(a).type==="cascader"?(e.openBlock(),e.createBlock(re,{key:16,"model-value":e.unref(a).props.multiple===!0?de.value:M.value,placeholder:e.unref(a).props.placeholder,clearable:e.unref(a).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(a).props.width}),options:g.value,props:{multiple:e.unref(a).props.multiple===!0,checkStrictly:e.unref(a).props.checkStrictly===!0}},null,8,["model-value","placeholder","clearable","style","options","props"])):e.unref(a).type==="upload"?(e.openBlock(),e.createBlock(ue,{key:17,action:e.unref(a).props.action||"",name:e.unref(a).props.name||"file",accept:e.unref(a).props.accept,multiple:e.unref(a).props.multiple===!0,limit:e.unref(a).props.limit,"list-type":e.unref(a).props.listType||"text","auto-upload":e.unref(a).props.autoUpload===!0,"show-file-list":e.unref(a).props.showFileList!==!1,"with-credentials":e.unref(a).props.withCredentials===!0,disabled:""},{default:e.withCtx(()=>[e.createVNode(ae,{type:"primary"},{default:e.withCtx(()=>[...I[10]||(I[10]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1},8,["action","name","accept","multiple","limit","list-type","auto-upload","show-file-list","with-credentials"])):e.createCommentVNode("",!0)]),_:1},8,["label","required","label-width","class"]))],10,$a)}}}),[["__scopeId","data-v-7667a53c"]]),pl={key:0,class:"empty-placeholder"},ul=bo(e.defineComponent({__name:"CenterCanvas",setup(o){const{formList:n,formConfig:t,setSelected:a}=bn(),c=u=>{const C=new Set(n.map(g=>g.id));n.length=0,n.push(...u);const E=u.filter(g=>!C.has(g.id));if(E.length===1){const g=E[0];g&&a(g.id)}},i=u=>{const C=u.item;if(!(C instanceof HTMLElement))return;const E=C.dataset.ffId;typeof E=="string"&&E.trim()&&a(E)},m=(u,C)=>{for(const E of u){if(E.id===C)return E;if(E.children?.length){const g=m(E.children,C);if(g)return g}}},h=u=>{const C=m(n,u.gridId);if(!C||C.type!=="grid"||(C.children||[]).filter(T=>T.type==="grid-col").length>0)return;const g=Array.isArray(u.legacyChildren)?u.legacyChildren:[];C.children=[{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:g.filter(T=>T.type!=="grid-col")},{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:[]}]},p=u=>{const C=m(n,u.id);C&&(C.children=u.children)},y=()=>{a(void 0)};return(u,C)=>{const E=e.resolveComponent("el-empty"),g=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",{class:"center-canvas",onClick:y},[e.createVNode(g,{class:"canvas-form","label-position":e.unref(t).labelPosition,"label-width":e.unref(t).labelWidth+"px",size:e.unref(t).size},{default:e.withCtx(()=>[e.createVNode(e.unref(jo),{"model-value":e.unref(n),"onUpdate:modelValue":c,onEnd:i,group:"form-builder","item-key":"id",class:"draggable-area","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),T=>(e.openBlock(),e.createBlock(sl,{key:T.id,element:T,onInitGrid:h,onUpdateChildren:p},null,8,["element"]))),128))]),_:1},8,["model-value"]),e.unref(n).length===0?(e.openBlock(),e.createElementBlock("div",pl,[e.createVNode(E,{description:"拖拽左侧组件到此处","image-size":120})])):e.createCommentVNode("",!0)]),_:1},8,["label-position","label-width","size"])])}}}),[["__scopeId","data-v-f940c6e1"]]),fl={class:"rules-toolbar"},hl={class:"rule-title"},yl={class:"rule-section"},gl={class:"rule-header-row"},bl={class:"rule-section"},kl={class:"rule-header-row"},Vl=bo(e.defineComponent({name:"VisibilityRulesDialog",__name:"VisibilityRulesDialog",props:{modelValue:{type:Boolean},rules:{},fieldOptions:{}},emits:["update:modelValue","save"],setup(o,{emit:n}){const t=o,a=n,c=e.computed({get:()=>t.modelValue,set:w=>a("update:modelValue",w)}),i=e.ref([]),m=e.ref([]),h=e.computed(()=>Array.isArray(t.fieldOptions)?t.fieldOptions:[]),p=e.computed(()=>h.value.filter(w=>w.componentType!=="sub-form")),y=e.computed(()=>{const w={};for(const B of h.value)w[B.value]=B;return w}),u=w=>y.value[w.field]?.kind??"string",C=w=>{const B=y.value[w.field];return Array.isArray(B?.options)?B.options:[]},E=w=>y.value[w.field]?.componentType??"",g=w=>w==="eq"||w==="neq"||w==="gt"||w==="gte"||w==="lt"||w==="lte",T=w=>{try{return JSON.parse(JSON.stringify(w))}catch{return[]}},R=w=>`${w}_${Math.random().toString(36).slice(2,10)}`,q=()=>({id:R("cond"),field:"",operator:"eq",value:""}),U=()=>({id:R("act"),field:"",action:"show"}),W=()=>({id:R("rule"),logic:"any",conditions:[q()],actions:[U()]});e.watch(()=>c.value,w=>{if(!w)return;const B=T(Array.isArray(t.rules)?t.rules:[]);i.value=B,m.value=B.map(A=>A.id)},{immediate:!0}),e.watch(()=>t.rules,w=>{if(!c.value)return;const B=T(Array.isArray(w)?w:[]);i.value=B,m.value=B.map(A=>A.id)},{deep:!0});const oe=()=>{const w=[...i.value,W()];i.value=w,m.value=w.map(B=>B.id)},pe=w=>{const B=[...i.value];B.splice(w,1),i.value=B,m.value=B.map(A=>A.id)},se=()=>{i.value=[],m.value=[]},ne=(w,B)=>{const A=i.value[w];if(!A)return;const te=[...A.conditions],v=typeof B=="number"?B+1:te.length;te.splice(v,0,q()),A.conditions=te},Z=(w,B)=>{const A=i.value[w];if(!A||A.conditions.length<=1)return;const te=[...A.conditions];te.splice(B,1),A.conditions=te},xe=(w,B)=>{const A=i.value[w];if(!A)return;const te=[...A.actions],v=typeof B=="number"?B+1:te.length;te.splice(v,0,U()),A.actions=te},H=(w,B)=>{const A=i.value[w];if(!A||A.actions.length<=1)return;const te=[...A.actions];te.splice(B,1),A.actions=te},$=w=>w==="is_empty"||w==="not_empty",k=w=>{if(!(w.operator==="eq"||w.operator==="neq")||u(w)!=="string")return!1;const A=y.value[w.field];return!A||!(A.componentType==="radio"||A.componentType==="select"||A.componentType==="pca")?!1:C(w).length>0},f=w=>{const B=w.value;return typeof B=="string"||typeof B=="number"?B:void 0},x=(w,B)=>{w.value=B},b=w=>{if(!(w.operator==="contains"||w.operator==="not_contains")||u(w)!=="array")return!1;const A=y.value[w.field];return!A||!(A.componentType==="checkbox"||A.componentType==="select"||A.componentType==="cascader"||A.componentType==="pca")?!1:C(w).length>0},F=w=>{const B=w.value;return typeof B=="string"||typeof B=="number"?B:void 0},P=(w,B)=>{w.value=B},M=w=>{const B=E(w);if(!(B==="radio"||B==="select"||B==="pca"))return!1;const A=u(w);return A==="string"||A==="number"?C(w).length>0:!1},de=w=>{const B=E(w);if(B==="upload"||B==="signature")return[{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];const A=u(w);if(A==="boolean")return[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];if(A==="number"){const v=[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"大于",value:"gt"},{label:"大于等于",value:"gte"},{label:"小于",value:"lt"},{label:"小于等于",value:"lte"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];return M(w)&&v.splice(6,0,{label:"在集合内",value:"in"},{label:"不在集合内",value:"not_in"}),v}if(A==="array")return[{label:"包含",value:"contains"},{label:"不包含",value:"not_contains"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];const te=[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"包含",value:"contains"},{label:"不包含",value:"not_contains"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];return M(w)&&te.splice(4,0,{label:"在集合内",value:"in"},{label:"不在集合内",value:"not_in"}),te},D=w=>de(w)[0]?.value??"eq",I=w=>{const B=de(w);if(new Set(B.map(v=>v.value)).has(w.operator)||(w.operator=D(w)),$(w.operator)){w.value=void 0;return}const te=u(w);if(te==="boolean"){typeof w.value!="boolean"&&(w.value=!1);return}if(te==="number"){if(w.operator==="in"||w.operator==="not_in"){Array.isArray(w.value)||(w.value=[]);return}typeof w.value!="number"&&(w.value=void 0);return}if(w.operator==="in"||w.operator==="not_in"){Array.isArray(w.value)||(w.value=[]);return}if(te==="array"){Array.isArray(w.value)&&(w.value=w.value[0]);return}},ce=w=>{I(w)},Ue=w=>{I(w)},Ie=w=>w.value===!0,fe=(w,B)=>{w.value=B===!0},Fe=w=>{const B=w.value;if(typeof B=="number")return B;if(typeof B=="string"&&B.trim()!==""){const A=Number(B);return Number.isFinite(A)?A:void 0}},Le=(w,B)=>{w.value=typeof B=="number"&&Number.isFinite(B)?B:void 0},je=w=>{const B=w.value;return Array.isArray(B)?B.map(A=>String(A)):B==null?[]:[String(B)]},ko=(w,B)=>{const A=Array.isArray(B)?B.map(v=>String(v)):[];if(u(w)==="number"){const v=[];for(const re of A){const ae=re.trim();if(!ae)continue;const ue=Number(ae);Number.isFinite(ue)&&v.push(ue)}w.value=v;return}w.value=A.filter(v=>v.trim()!=="")},mo=w=>{const B=w.value;return B==null?"":Array.isArray(B)?B.map(A=>String(A)).join(", "):String(B)},so=(w,B)=>{w.value=B},ve=w=>{const B=[];for(const A of w){const te=(A.conditions||[]).filter(re=>typeof re.field=="string"&&re.field.trim()).map(re=>{const ae={...re,field:re.field.trim(),operator:re.operator};if(I(ae),$(ae.operator))return ae.value=void 0,ae;const ue=ae.value;return ue===void 0?ae:Array.isArray(ue)?(ae.value=ue.filter(Pe=>typeof Pe=="string"||typeof Pe=="number"),ae):(typeof ue=="string"||typeof ue=="number"||typeof ue=="boolean"||ue===null||(ae.value=void 0),ae)}),v=(A.actions||[]).filter(re=>typeof re.field=="string"&&re.field.trim()).map(re=>{const ae=re.action==="hide"?"hide":"show";return{id:re.id||R("act"),field:re.field.trim(),action:ae}});te.length===0||v.length===0||B.push({id:A.id||R("rule"),logic:A.logic==="all"?"all":"any",conditions:te,actions:v})}return B},po=()=>{const w=ve(i.value);if(i.value.length>0&&w.length===0){$e.ElMessage.warning("请至少配置一个完整规则(包含条件与动作)");return}a("save",w),c.value=!1};return(w,B)=>{const A=e.resolveComponent("el-button"),te=e.resolveComponent("el-empty"),v=e.resolveComponent("el-option"),re=e.resolveComponent("el-select"),ae=e.resolveComponent("el-table-column"),ue=e.resolveComponent("el-input"),Pe=e.resolveComponent("el-input-number"),no=e.resolveComponent("el-table"),to=e.resolveComponent("el-collapse-item"),_=e.resolveComponent("el-collapse"),ke=e.resolveComponent("el-dialog");return e.openBlock(),e.createBlock(ke,{modelValue:c.value,"onUpdate:modelValue":B[2]||(B[2]=we=>c.value=we),title:"字段显隐规则",width:"920px","destroy-on-close":"","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(A,{onClick:B[1]||(B[1]=we=>c.value=!1)},{default:e.withCtx(()=>[...B[11]||(B[11]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(A,{type:"primary",onClick:po},{default:e.withCtx(()=>[...B[12]||(B[12]=[e.createTextVNode("保存",-1)])]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",fl,[e.createVNode(A,{type:"primary",onClick:oe},{default:e.withCtx(()=>[...B[3]||(B[3]=[e.createTextVNode("新增规则",-1)])]),_:1}),e.createVNode(A,{disabled:i.value.length===0,onClick:se},{default:e.withCtx(()=>[...B[4]||(B[4]=[e.createTextVNode("清空规则",-1)])]),_:1},8,["disabled"])]),i.value.length===0?(e.openBlock(),e.createBlock(te,{key:0,description:"暂无显隐规则"})):(e.openBlock(),e.createBlock(_,{key:1,modelValue:m.value,"onUpdate:modelValue":B[0]||(B[0]=we=>m.value=we)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(we,_e)=>(e.openBlock(),e.createBlock(to,{key:we.id,name:we.id},{title:e.withCtx(()=>[e.createElementVNode("div",hl,[e.createElementVNode("span",null,"规则 "+e.toDisplayString(_e+1),1),e.createVNode(A,{type:"danger",link:"",onClick:e.withModifiers(L=>pe(_e),["stop"])},{default:e.withCtx(()=>[...B[5]||(B[5]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])])]),default:e.withCtx(()=>[e.createElementVNode("div",yl,[e.createElementVNode("div",gl,[B[7]||(B[7]=e.createElementVNode("div",{class:"rule-header-label"},"触发条件",-1)),e.createVNode(re,{modelValue:we.logic,"onUpdate:modelValue":L=>we.logic=L,style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(v,{label:"满足所有条件",value:"all"}),e.createVNode(v,{label:"满足任意条件",value:"any"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e.createVNode(A,{style:{"margin-left":"12px"},onClick:L=>ne(_e)},{default:e.withCtx(()=>[...B[6]||(B[6]=[e.createTextVNode("添加条件",-1)])]),_:1},8,["onClick"])]),e.createVNode(no,{data:we.conditions,border:"","table-layout":"auto",class:"rule-table"},{default:e.withCtx(()=>[e.createVNode(ae,{label:"序号",width:"70",align:"center"},{default:e.withCtx(({$index:L})=>[e.createTextVNode(e.toDisplayString(L+1),1)]),_:1}),e.createVNode(ae,{label:"字段","min-width":"240"},{default:e.withCtx(({row:L})=>[e.createVNode(re,{modelValue:L.field,"onUpdate:modelValue":Y=>L.field=Y,filterable:"",placeholder:"请选择",style:{width:"100%"},onChange:()=>ce(L)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),e.createVNode(ae,{label:"关系",width:"150"},{default:e.withCtx(({row:L})=>[e.createVNode(re,{modelValue:L.operator,"onUpdate:modelValue":Y=>L.operator=Y,style:{width:"100%"},onChange:()=>Ue(L)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(de(L),Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),e.createVNode(ae,{label:"内容","min-width":"240"},{default:e.withCtx(({row:L})=>[$(L.operator)?(e.openBlock(),e.createBlock(ue,{key:0,disabled:"",placeholder:"无需填写"})):k(L)?(e.openBlock(),e.createBlock(re,{key:1,"model-value":f(L),filterable:"",placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>x(L,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C(L),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:Y},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):u(L)==="boolean"?(e.openBlock(),e.createBlock(re,{key:2,"model-value":Ie(L),placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>fe(L,Y)},{default:e.withCtx(()=>[e.createVNode(v,{label:"true",value:!0}),e.createVNode(v,{label:"false",value:!1})]),_:1},8,["model-value","onUpdate:modelValue"])):u(L)==="number"&&g(L.operator)?(e.openBlock(),e.createBlock(Pe,{key:3,"model-value":Fe(L),style:{width:"100%"},"onUpdate:modelValue":Y=>Le(L,Y)},null,8,["model-value","onUpdate:modelValue"])):L.operator==="in"||L.operator==="not_in"?(e.openBlock(),e.createBlock(re,{key:4,"model-value":je(L),multiple:"",filterable:"","allow-create":"","default-first-option":"","collapse-tags":"",placeholder:"输入后回车",style:{width:"100%"},"onUpdate:modelValue":Y=>ko(L,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C(L),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:String(Y)},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):b(L)?(e.openBlock(),e.createBlock(re,{key:5,"model-value":F(L),filterable:"",placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>P(L,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C(L),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:Y},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(ue,{key:6,"model-value":mo(L),placeholder:"输入内容","onUpdate:modelValue":Y=>so(L,Y)},null,8,["model-value","onUpdate:modelValue"]))]),_:1}),e.createVNode(ae,{label:"操作",width:"120",align:"center"},{default:e.withCtx(({$index:L})=>[e.createVNode(A,{icon:e.unref(ee.CirclePlus),circle:"",plain:"",type:"primary",onClick:Y=>ne(_e,L)},null,8,["icon","onClick"]),e.createVNode(A,{icon:e.unref(ee.CloseBold),circle:"",plain:"",type:"danger",disabled:we.conditions.length<=1,onClick:Y=>Z(_e,L)},null,8,["icon","disabled","onClick"])]),_:2},1024)]),_:2},1032,["data"])]),e.createElementVNode("div",bl,[e.createElementVNode("div",kl,[B[9]||(B[9]=e.createElementVNode("div",{class:"rule-header-label required"},"*",-1)),B[10]||(B[10]=e.createElementVNode("div",{class:"rule-header-label"},"执行动作",-1)),e.createVNode(A,{style:{"margin-left":"12px"},onClick:L=>xe(_e)},{default:e.withCtx(()=>[...B[8]||(B[8]=[e.createTextVNode("添加动作",-1)])]),_:1},8,["onClick"])]),e.createVNode(no,{data:we.actions,border:"","table-layout":"auto",class:"rule-table"},{default:e.withCtx(()=>[e.createVNode(ae,{label:"序号",width:"70",align:"center"},{default:e.withCtx(({$index:L})=>[e.createTextVNode(e.toDisplayString(L+1),1)]),_:1}),e.createVNode(ae,{label:"字段","min-width":"280"},{default:e.withCtx(({row:L})=>[e.createVNode(re,{modelValue:L.field,"onUpdate:modelValue":Y=>L.field=Y,filterable:"",placeholder:"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),e.createVNode(ae,{label:"执行动作","min-width":"240"},{default:e.withCtx(({row:L})=>[e.createVNode(re,{modelValue:L.action,"onUpdate:modelValue":Y=>L.action=Y,placeholder:"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(v,{label:"显示",value:"show"}),e.createVNode(v,{label:"隐藏",value:"hide"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),e.createVNode(ae,{label:"操作",width:"120",align:"center"},{default:e.withCtx(({$index:L})=>[e.createVNode(A,{icon:e.unref(ee.CirclePlus),circle:"",plain:"",type:"primary",onClick:Y=>xe(_e,L)},null,8,["icon","onClick"]),e.createVNode(A,{icon:e.unref(ee.CloseBold),circle:"",plain:"",type:"danger",disabled:we.actions.length<=1,onClick:Y=>H(_e,L)},null,8,["icon","disabled","onClick"])]),_:2},1024)]),_:2},1032,["data"])])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]))]),_:1},8,["modelValue"])}}}),[["__scopeId","data-v-114881ed"]]),Cl=JSON.parse('[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130171","name":"石家庄高新技术产业开发区"},{"code":"130172","name":"石家庄循环化工园区"},{"code":"130181","name":"辛集市"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130271","name":"河北唐山芦台经济开发区"},{"code":"130272","name":"唐山市汉沽管理区"},{"code":"130273","name":"唐山高新技术产业开发区"},{"code":"130274","name":"河北唐山海港经济开发区"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"},{"code":"130284","name":"滦州市"}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"},{"code":"130371","name":"秦皇岛市经济技术开发区"},{"code":"130372","name":"北戴河新区"}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130407","name":"肥乡区"},{"code":"130408","name":"永年区"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130471","name":"邯郸经济技术开发区"},{"code":"130473","name":"邯郸冀南新区"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"襄都区"},{"code":"130503","name":"信都区"},{"code":"130505","name":"任泽区"},{"code":"130506","name":"南和区"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130571","name":"河北邢台经济开发区"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130671","name":"保定高新技术产业开发区"},{"code":"130672","name":"保定白沟新城"},{"code":"130681","name":"涿州市"},{"code":"130682","name":"定州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"},{"code":"130771","name":"张家口经济开发区"},{"code":"130772","name":"张家口市察北管理区"},{"code":"130773","name":"张家口市塞北管理区"}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"},{"code":"130871","name":"承德高新技术产业开发区"},{"code":"130881","name":"平泉市"}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130971","name":"河北沧州经济开发区"},{"code":"130972","name":"沧州高新技术产业开发区"},{"code":"130973","name":"沧州渤海新区"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131071","name":"廊坊经济技术开发区"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131171","name":"河北衡水高新技术产业开发区"},{"code":"131172","name":"衡水滨湖新区"},{"code":"131182","name":"深州市"}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140171","name":"山西转型综合改革示范区"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","children":[{"code":"140212","name":"新荣区"},{"code":"140213","name":"平城区"},{"code":"140214","name":"云冈区"},{"code":"140215","name":"云州区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140271","name":"山西大同经济开发区"}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"}]},{"code":"1404","name":"长治市","children":[{"code":"140403","name":"潞州区"},{"code":"140404","name":"上党区"},{"code":"140405","name":"屯留区"},{"code":"140406","name":"潞城区"},{"code":"140423","name":"襄垣县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140671","name":"山西朔州经济开发区"},{"code":"140681","name":"怀仁市"}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区"},{"code":"140703","name":"太谷区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140971","name":"五台山风景名胜区"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"},{"code":"150172","name":"呼和浩特经济技术开发区"}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"},{"code":"150271","name":"包头稀土高新技术产业开发区"}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150571","name":"通辽经济技术开发区"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"},{"code":"152571","name":"乌拉盖管理区管委会"}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"},{"code":"152971","name":"内蒙古阿拉善高新技术产业开发区"}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220171","name":"长春经济技术开发区"},{"code":"220172","name":"长春净月高新技术产业开发区"},{"code":"220173","name":"长春高新技术产业开发区"},{"code":"220174","name":"长春汽车经济技术开发区"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"},{"code":"220184","name":"公主岭市"}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220271","name":"吉林经济开发区"},{"code":"220272","name":"吉林高新技术产业开发区"},{"code":"220273","name":"吉林中国新加坡食品区"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220771","name":"吉林松原经济开发区"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220871","name":"吉林白城经济开发区"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"},{"code":"230671","name":"大庆高新技术产业开发区"}]},{"code":"2307","name":"伊春市","children":[{"code":"230717","name":"伊美区"},{"code":"230718","name":"乌翠区"},{"code":"230719","name":"友好区"},{"code":"230722","name":"嘉荫县"},{"code":"230723","name":"汤旺县"},{"code":"230724","name":"丰林县"},{"code":"230725","name":"大箐山县"},{"code":"230726","name":"南岔县"},{"code":"230751","name":"金林区"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"},{"code":"231183","name":"嫩江市"}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"漠河市"},{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232761","name":"加格达奇区"},{"code":"232762","name":"松岭区"},{"code":"232763","name":"新林区"},{"code":"232764","name":"呼中区"}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320371","name":"徐州经济技术开发区"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320576","name":"苏州工业园区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","children":[{"code":"320612","name":"通州区"},{"code":"320613","name":"崇川区"},{"code":"320614","name":"海门区"},{"code":"320623","name":"如东县"},{"code":"320671","name":"南通经济技术开发区"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320685","name":"海安市"}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"},{"code":"320771","name":"连云港经济技术开发区"}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"},{"code":"320871","name":"淮安经济技术开发区"}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320971","name":"盐城经济技术开发区"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321071","name":"扬州经济技术开发区"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321171","name":"镇江新区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"},{"code":"321371","name":"宿迁经济技术开发区"}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330112","name":"临安区"},{"code":"330113","name":"临平区"},{"code":"330114","name":"钱塘区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330213","name":"奉化区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"},{"code":"330383","name":"龙港市"}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"},{"code":"331083","name":"玉环市"}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340176","name":"合肥高新技术产业开发区"},{"code":"340177","name":"合肥经济技术开发区"},{"code":"340178","name":"合肥新站高新技术产业开发区"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区"},{"code":"340207","name":"鸠江区"},{"code":"340209","name":"弋江区"},{"code":"340210","name":"湾沚区"},{"code":"340212","name":"繁昌区"},{"code":"340223","name":"南陵县"},{"code":"340271","name":"芜湖经济技术开发区"},{"code":"340272","name":"安徽芜湖三山经济开发区"},{"code":"340281","name":"无为市"}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"},{"code":"340371","name":"蚌埠市高新技术开发区"},{"code":"340372","name":"蚌埠市经济开发区"}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340871","name":"安徽安庆经济开发区"},{"code":"340881","name":"桐城市"},{"code":"340882","name":"潜山市"}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341171","name":"中新苏滁高新技术产业开发区"},{"code":"341172","name":"滁州经济技术开发区"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341271","name":"阜阳合肥现代产业园区"},{"code":"341272","name":"阜阳经济技术开发区"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"},{"code":"341371","name":"宿州马鞍山现代产业园区"},{"code":"341372","name":"宿州经济技术开发区"}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341871","name":"宣城市经济开发区"},{"code":"341881","name":"宁国市"},{"code":"341882","name":"广德市"}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350112","name":"长乐区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","children":[{"code":"350404","name":"三元区"},{"code":"350405","name":"沙县区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350604","name":"龙海区"},{"code":"350605","name":"长泰区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360113","name":"红谷滩区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360404","name":"柴桑区"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区"},{"code":"360603","name":"余江区"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360704","name":"赣县区"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"},{"code":"360783","name":"龙南市"}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区"},{"code":"361003","name":"东乡区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361104","name":"广信区"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370114","name":"章丘区"},{"code":"370115","name":"济阳区"},{"code":"370116","name":"莱芜区"},{"code":"370117","name":"钢城区"},{"code":"370124","name":"平阴县"},{"code":"370126","name":"商河县"},{"code":"370176","name":"济南高新技术产业开发区"}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370215","name":"即墨区"},{"code":"370281","name":"胶州市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"},{"code":"370571","name":"东营经济技术开发区"},{"code":"370572","name":"东营港经济开发区"}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370614","name":"蓬莱区"},{"code":"370671","name":"烟台高新技术产业开发区"},{"code":"370676","name":"烟台经济技术开发区"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370772","name":"潍坊滨海经济技术开发区"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370871","name":"济宁高新技术产业开发区"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371071","name":"威海火炬高技术产业开发区"},{"code":"371072","name":"威海经济技术开发区"},{"code":"371073","name":"威海临港经济技术开发区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"},{"code":"371171","name":"日照经济技术开发区"}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"},{"code":"371371","name":"临沂高新技术产业开发区"}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371471","name":"德州天衢新区"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区"},{"code":"371503","name":"茌平区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371681","name":"邹平市"}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"},{"code":"371771","name":"菏泽经济技术开发区"},{"code":"371772","name":"菏泽高新技术开发区"}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410171","name":"郑州经济技术开发区"},{"code":"410172","name":"郑州高新技术产业开发区"},{"code":"410173","name":"郑州航空港经济综合实验区"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410307","name":"偃师区"},{"code":"410308","name":"孟津区"},{"code":"410311","name":"洛龙区"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410371","name":"洛阳高新技术产业开发区"}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410471","name":"平顶山高新技术产业开发区"},{"code":"410472","name":"平顶山市城乡一体化示范区"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410571","name":"安阳高新技术产业开发区"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"},{"code":"410671","name":"鹤壁经济技术开发区"}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410771","name":"新乡高新技术产业开发区"},{"code":"410772","name":"新乡经济技术开发区"},{"code":"410773","name":"新乡市平原城乡一体化示范区"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"},{"code":"410783","name":"长垣市"}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410871","name":"焦作城乡一体化示范区"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"},{"code":"410971","name":"河南濮阳工业园区"},{"code":"410972","name":"濮阳经济技术开发区"}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区"},{"code":"411003","name":"建安区"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411071","name":"许昌经济技术开发区"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"},{"code":"411171","name":"漯河经济技术开发区"}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411271","name":"河南三门峡经济开发区"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411371","name":"南阳高新技术产业开发区"},{"code":"411372","name":"南阳市城乡一体化示范区"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411471","name":"豫东综合物流产业聚集区"},{"code":"411472","name":"河南商丘经济开发区"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"},{"code":"411571","name":"信阳高新技术产业开发区"}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区"},{"code":"411603","name":"淮阳区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411671","name":"周口临港开发区"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"},{"code":"411771","name":"河南驻马店经济开发区"}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"},{"code":"420882","name":"京山市"}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421024","name":"江陵县"},{"code":"421071","name":"荆州经济技术开发区"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"},{"code":"421088","name":"监利市"}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421171","name":"龙感湖管理区"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430181","name":"浏阳市"},{"code":"430182","name":"宁乡市"}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430212","name":"渌口区"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430371","name":"湖南湘潭高新技术产业园区"},{"code":"430372","name":"湘潭昭山示范区"},{"code":"430373","name":"湘潭九华示范区"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430473","name":"湖南衡阳松木经济开发区"},{"code":"430476","name":"湖南衡阳高新技术产业园区"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"},{"code":"430582","name":"邵东市"}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430671","name":"岳阳市屈原管理区"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430771","name":"常德市西洞庭管理区"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430971","name":"益阳市大通湖管理区"},{"code":"430972","name":"湖南益阳高新技术产业园区"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"},{"code":"431171","name":"永州经济技术开发区"},{"code":"431173","name":"永州市回龙圩管理区"},{"code":"431181","name":"祁阳市"}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431271","name":"怀化市洪江管理区"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"},{"code":"440309","name":"龙华区"},{"code":"440310","name":"坪山区"},{"code":"440311","name":"光明区"}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"4419","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"},{"code":"441900404","name":"东莞滨海湾新区"}]},{"code":"4420","name":"中山市","children":[{"code":"442000001","name":"石岐街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"中山港街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000007","name":"民众街道"},{"code":"442000008","name":"南朗街道"},{"code":"442000101","name":"黄圃镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"},{"code":"442000118","name":"小榄镇"}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450181","name":"横州市"}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450332","name":"恭城瑶族自治县"},{"code":"450381","name":"荔浦市"}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区"},{"code":"451003","name":"田阳区"},{"code":"451022","name":"田东县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"},{"code":"451082","name":"平果市"}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区"},{"code":"451203","name":"宜州区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"4604","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510117","name":"郫都区"},{"code":"510118","name":"新津区"},{"code":"510121","name":"金堂县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区"},{"code":"510604","name":"罗江区"},{"code":"510623","name":"中江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510923","name":"大英县"},{"code":"510981","name":"射洪市"}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511083","name":"隆昌市"}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511504","name":"叙州区"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市"},{"code":"513402","name":"会理市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520204","name":"水城区"},{"code":"520281","name":"盘州市"}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"},{"code":"520581","name":"黔西市"}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市"},{"code":"522302","name":"兴仁市"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530115","name":"晋宁区"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530304","name":"马龙区"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"},{"code":"530481","name":"澄江市"}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530681","name":"水富市"}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市"},{"code":"532302","name":"禄丰市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540104","name":"达孜区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540127","name":"墨竹工卡县"},{"code":"540171","name":"格尔木藏青工业园区"},{"code":"540172","name":"拉萨经济技术开发区"},{"code":"540173","name":"西藏文化旅游创意园区"},{"code":"540174","name":"达孜工业园区"}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"},{"code":"540481","name":"米林市"}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540531","name":"浪卡子县"},{"code":"540581","name":"错那市"}]},{"code":"5406","name":"那曲市","children":[{"code":"540602","name":"色尼区"},{"code":"540621","name":"嘉黎县"},{"code":"540622","name":"比如县"},{"code":"540623","name":"聂荣县"},{"code":"540624","name":"安多县"},{"code":"540625","name":"申扎县"},{"code":"540626","name":"索县"},{"code":"540627","name":"班戈县"},{"code":"540628","name":"巴青县"},{"code":"540629","name":"尼玛县"},{"code":"540630","name":"双湖县"}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610118","name":"鄠邑区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610305","name":"凤翔区"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"},{"code":"610482","name":"彬州市"}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"},{"code":"610681","name":"子长市"}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区"},{"code":"610703","name":"南郑区"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"},{"code":"610881","name":"神木市"}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610929","name":"白河县"},{"code":"610981","name":"旬阳市"}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"},{"code":"620171","name":"兰州新区"}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201001","name":"雄关街道"},{"code":"620201002","name":"钢城街道"},{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"},{"code":"620881","name":"华亭市"}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630106","name":"湟中区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632301","name":"同仁市"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632803","name":"茫崖市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"},{"code":"632857","name":"大柴旦行政委员会"}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市"},{"code":"652902","name":"库车市"},{"code":"652922","name":"温宿县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654203","name":"沙湾市"},{"code":"654221","name":"额敏县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659005","name":"北屯市"},{"code":"659006","name":"铁门关市"},{"code":"659007","name":"双河市"},{"code":"659008","name":"可克达拉市"},{"code":"659009","name":"昆玉市"},{"code":"659010","name":"胡杨河市"},{"code":"659011","name":"新星市"},{"code":"659012","name":"白杨市"}]}]}]'),Tt=new Map,Dt=(o,n,t)=>{const a=[];for(const c of o){const i={label:c.name,value:c.code};t<n&&Array.isArray(c.children)&&c.children.length>0&&(i.children=Dt(c.children,n,t+1)),a.push(i)}return a},rn=o=>{const n=Tt.get(o);if(n)return n;const t=Dt(Cl,o,1);return Tt.set(o,t),t},wl={class:"right-panel"},Nl={key:0,class:"config-content"},xl={class:"grid-span-list"},Bl={class:"grid-span-label"},Sl={class:"rule-header"},_l={key:1,class:"empty-selection"},El={class:"config-content"},Tl=bo(e.defineComponent({__name:"RightPanel",setup(o){const{selectedComponent:n,formConfig:t,formList:a}=bn(),c=e.ref("component"),i=d=>d.type==="grid-col",m=d=>d==="radio"||d==="checkbox"||d==="select"||d==="cascader",h=e.computed(()=>{const d=n.value?.type;return!(!d||d==="upload"||d==="grid"||d==="grid-col"||d==="group"||d==="sub-form"||d==="text"||d==="link")}),p=d=>{if(d.props.remoteOptions)return;const l={url:"",method:"GET",labelKey:"label",valueKey:"value"};d.props.remoteOptions=l},y=d=>{if(Array.isArray(d.props.options)&&d.props.options.length>0)return;const l=[{label:"选项1",value:"1"},{label:"选项2",value:"2"}];d.props.options=l},u=e.ref(""),C=d=>typeof d=="object"&&d!==null&&!Array.isArray(d),E=()=>{const d=n.value;if(!d)return;const l=d.props.field;if(typeof l!="string")return;const N=l.trim();d.props.field=N},g=e.ref(""),T=e.ref("[]"),R=e.computed({get:()=>{const d=n.value;if(!d)return!1;const l=d.props.defaultValue;return typeof l=="boolean"?l:!1},set:d=>{n.value&&(n.value.props.defaultValue=d)}}),q=e.computed({get:()=>{const d=n.value;if(!d)return;const l=d.props.defaultValue;return typeof l=="number"?l:void 0},set:d=>{n.value&&(n.value.props.defaultValue=d)}}),U=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="rate")return 0;const l=d.props.defaultValue;return typeof l=="number"?l:0},set:d=>{const l=n.value;if(!(!l||l.type!=="rate")){if(d<=0){l.props.defaultValue=void 0;return}l.props.defaultValue=d}}}),W=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="date")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="date"||(l.props.defaultValue=d)}}),oe=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="time")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="time"||(l.props.defaultValue=d)}}),pe=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="datetime")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="datetime"||(l.props.defaultValue=d)}}),se=()=>{const d=n.value;d&&(d.props.defaultValue=W.value||void 0)},ne=()=>{const d=n.value;d&&(d.props.defaultValue=oe.value||void 0)},Z=()=>{const d=n.value;d&&(d.props.defaultValue=pe.value||void 0)},xe=d=>typeof d=="string"||typeof d=="number"||typeof d=="boolean"||d===null,H=d=>{if(d===void 0)return"";if(typeof d=="string")return d;if(typeof d=="number"||typeof d=="boolean")return String(d);try{return JSON.stringify(d)}catch{return""}},$=()=>{const d=n.value;if(!d)return;const l=g.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const N=JSON.parse(l);if(!xe(N)){$e.ElMessage.error("默认值不支持对象或数组"),g.value=H(d.props.defaultValue);return}d.props.defaultValue=N,g.value=H(N)}catch{d.props.defaultValue=l}},k=()=>{const d=n.value;if(!d)return;const l=g.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const N=JSON.parse(l);if(!xe(N))return;d.props.defaultValue=N}catch{d.props.defaultValue=l}},f=d=>Array.isArray(d)&&d.every(l=>typeof l=="string"||typeof l=="number"),x=d=>Array.isArray(d)&&d.every(l=>f(l)),b=(d,l)=>{if(d.length!==l.length)return!1;for(let N=0;N<d.length;N++)if(d[N]!==l[N])return!1;return!0},F=(d,l)=>{if(d.length!==l.length)return!1;for(let N=0;N<d.length;N++){const S=d[N],j=l[N];if(!S||!j||!b(S,j))return!1}return!0},P=d=>{if(d.type!=="pca")return;const l=d.props.pcaType??"province-city-area",N=l==="province",S=d.props.multiple===!0,j=d.props.defaultValue;if(N){if(S){f(j)||(d.props.defaultValue=[]);return}if(f(j)){const J=j[0]??void 0;d.props.defaultValue!==J&&(d.props.defaultValue=J);return}if(x(j)){const J=j[0]?.[0]??void 0;d.props.defaultValue!==J&&(d.props.defaultValue=J)}return}const ge=l==="province-city"?2:3,z=J=>J.slice(0,ge);if(S){if(!x(j)){d.props.defaultValue=[];return}const J=j.map(De=>z(De));F(j,J)||(d.props.defaultValue=J);return}if(x(j)){const J=j[0]??[],De=z(J);b(J,De)||(d.props.defaultValue=De);return}if(f(j)){const J=z(j);b(j,J)||(d.props.defaultValue=J);return}(!f(d.props.defaultValue)||d.props.defaultValue.length!==0)&&(d.props.defaultValue=[])},M=()=>{const d=n.value;if(!d||d.type!=="upload"||d.props.multiple===!0)return;const l=d.props.defaultValue;Array.isArray(l)&&(d.props.defaultValue=l[0])},de=e.computed(()=>{const d=n.value;return d&&(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0)?'[[1,2],[3,4]] 或 [["a","b"],["c","d"]]':'["a","b"] 或 [1,2]'}),D=()=>{const d=n.value;d&&P(d)},I=()=>{const d=n.value;if(d){if(d.type==="pca"){P(d);return}if(d.type==="select"){if(d.props.multiple===!0){f(d.props.defaultValue)||(d.props.defaultValue=[]);return}const l=d.props.defaultValue;f(l)&&(d.props.defaultValue=l[0]??void 0);return}if(d.type==="cascader"){if(d.props.multiple===!0){x(d.props.defaultValue)||(d.props.defaultValue=[]);return}const l=d.props.defaultValue;x(l)&&(d.props.defaultValue=l[0]??[])}}},ce=()=>{const d=n.value;if(!d)return;const l=T.value.trim();if(!l){d.props.defaultValue=void 0,T.value="[]";return}try{const N=JSON.parse(l);if(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0){if(!x(N)){$e.ElMessage.error("默认值 JSON 必须是二维字符串/数字数组"),T.value=JSON.stringify(x(d.props.defaultValue)?d.props.defaultValue:[],null,2);return}d.props.defaultValue=N,T.value=JSON.stringify(N,null,2);return}if(!f(N)){$e.ElMessage.error("默认值 JSON 必须是字符串/数字数组"),T.value=JSON.stringify(f(d.props.defaultValue)?d.props.defaultValue:[],null,2);return}d.props.defaultValue=N,T.value=JSON.stringify(N,null,2)}catch{$e.ElMessage.error("默认值 JSON 解析失败")}},Ue=()=>{const d=n.value;if(!d)return;const l=T.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const N=JSON.parse(l);if(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0){if(!x(N))return;d.props.defaultValue=N;return}if(!f(N))return;d.props.defaultValue=N}catch{return}},Ie=d=>{const l=d.trim();if(!l)return{value:void 0};try{const N=JSON.parse(l);return N==null?{value:void 0}:C(N)?{value:N}:{error:'JSON 必须是对象(例如 {"a":1})'}}catch{return{error:"JSON 解析失败"}}},fe=d=>typeof d=="string"||typeof d=="number",Fe=(d,l)=>l>10||!C(d)||typeof d.label!="string"||!fe(d.value)?!1:d.children!==void 0?Array.isArray(d.children)?d.children.every(N=>Fe(N,l+1)):!1:!0,Le=d=>Array.isArray(d)&&d.every(l=>Fe(l,1)),je=()=>{if(!n.value||n.value.type!=="cascader")return;const d=u.value.trim();if(!d){n.value.props.options=[];return}try{const l=JSON.parse(d);if(!Le(l)){$e.ElMessage.error("静态选项 JSON 格式不正确");return}n.value.props.options=l}catch{$e.ElMessage.error("静态选项 JSON 解析失败")}};e.watch(()=>[n.value?.id,n.value?.type,n.value?.props.optionsSource],()=>{const d=n.value;if(!d||!m(d.type))return;const l=d.props.optionsSource??"static";l==="remote"&&p(d),l==="static"&&d.type!=="cascader"&&y(d),d.type==="cascader"&&(u.value=JSON.stringify(d.props.options||[],null,2))},{immediate:!0}),e.watch(()=>[n.value?.id,n.value?.type,n.value?.props.defaultValue,n.value?.props.multiple,n.value?.props.pcaType],()=>{const d=n.value;if(!d)return;const l=d.type;if(l==="checkbox"){const N=d.props.defaultValue;T.value=JSON.stringify(f(N)?N:[],null,2),g.value="";return}if(l==="select"&&d.props.multiple===!0){const N=d.props.defaultValue;T.value=JSON.stringify(f(N)?N:[],null,2),g.value="";return}if(l==="cascader"){const N=d.props.defaultValue;d.props.multiple===!0?T.value=JSON.stringify(x(N)?N:[],null,2):T.value=JSON.stringify(f(N)?N:[],null,2),g.value="";return}if(l==="pca"){P(d);const N=d.props.pcaType??"province-city-area",S=d.props.defaultValue;if(N==="province"){if(d.props.multiple===!0){T.value=JSON.stringify(f(S)?S:[],null,2),g.value="";return}g.value=H(S);return}d.props.multiple===!0?T.value=JSON.stringify(x(S)?S:[],null,2):T.value=JSON.stringify(f(S)?S:[],null,2),g.value="";return}g.value=H(d.props.defaultValue)},{immediate:!0});const ko=e.computed(()=>{const d=n.value;return d?Array.isArray(d.props.options)?d.props.options:[]:[]}),mo=()=>{const d=n.value;if(!d||!m(d.type)||d.type==="cascader")return;y(d);const l=(d.props.options||[]).length+1;d.props.options=[...d.props.options||[],{label:`选项${l}`,value:String(l)}]},so=d=>{const l=n.value;l&&Array.isArray(l.props.options)&&l.props.options.splice(d,1)},ve=e.computed(()=>{if(!n.value||n.value.type!=="grid")return[];const d=n.value,l=(d.children||[]).filter(i);if(l.length>0)return l;const N=Array.isArray(d.children)?d.children:[],S=[{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:N.filter(j=>j.type!=="grid-col")},{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:[]}];return d.children=S,S}),po=e.computed({get:()=>ve.value.length,set:d=>{if(!n.value||n.value.type!=="grid")return;const l=ve.value,N=Math.max(1,Math.min(4,d||1));if(N===l.length)return;if(N>l.length){const j=N-l.length;for(let ge=0;ge<j;ge++)l.push({id:uo("grid-col"),type:"grid-col",props:{label:"列",span:Math.floor(24/N)},children:[]})}else{const j=l.splice(N),ge=l[l.length-1];if(ge&&j.length)for(const z of j)z.children?.length&&(ge.children=[...ge.children||[],...z.children])}const S=n.value;S.children=l}}),w=()=>{n.value&&(n.value.props.rules||(n.value.props.rules=[]),n.value.props.rules.push({type:"email",message:"格式不正确",trigger:"blur"}))},B=d=>{n.value&&n.value.props.rules&&n.value.props.rules.splice(d,1)},A=e.ref(!1),te=e.ref("request"),v=e.ref(`{
|
|
1
|
+
(function(ze,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@element-plus/icons-vue")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@element-plus/icons-vue"],e):(ze=typeof globalThis<"u"?globalThis:ze||self,e(ze.FastFormDesigner={},ze.Vue,ze.ElementPlus,ze.ElementPlusIconsVue))})(this,(function(ze,e,$e,Q){"use strict";function uo(o){return o+"_"+Math.random().toString(36).substring(2,9)}function Rt(o){const a=JSON.parse(JSON.stringify(o)),n=uo(o.type||"input");if(a.type==="grid"){const c=Array.isArray(a.children)?a.children:[],i=c.length>0?c:[{type:"grid-col",props:{label:"列",span:12}}];return{id:n,type:"grid",props:a.props||{label:"栅格布局",width:"100%",gutter:20},children:i.map(m=>{const f=m;return{...f,id:uo("grid-col"),type:"grid-col",props:{...f.props||{},label:f.props?.label??"列",span:f.props?.span??12},children:[]}})}}if(a.type==="grid-col")return{id:n,type:"grid-col",props:{...a.props||{},label:a.props?.label??"列",span:a.props?.span??12},children:[]};if(a.type==="sub-form")return{id:n,type:"sub-form",props:a.props||{label:"子表单"},children:[]};const t=a.type||o.type;return{id:n,type:t||"input",props:a.props||{label:""},children:a.children?[]:void 0}}function Pt(o){const a=JSON.parse(JSON.stringify(o)),n=t=>{if(t.id=uo(t.type||"input"),Array.isArray(t.children))for(const c of t.children)n(c)};return n(a),a}const Me=o=>typeof o=="object"&&o!==null&&!Array.isArray(o),fo=(o,a)=>{if(!a)return o;if(o==null)return;if(Me(o)&&a in o)return o[a];const n=a.split(".").map(c=>c.trim()).filter(Boolean);let t=o;for(const c of n){if(Me(t)){t=t[c];continue}if(Array.isArray(t)){const i=Number(c);if(!Number.isInteger(i))return;t=t[i];continue}return}return t},It=o=>{if(o)try{return JSON.parse(o)}catch{return}},Ln=o=>{const a=It(o);return Me(a)?a:void 0},Go=o=>{try{return JSON.parse(o)}catch{return}},$t=o=>{if(!o)return;const a=typeof document<"u"?document.cookie:"";if(!a)return;const n=a.split(";");for(const t of n){const[c,...i]=t.trim().split("=");if(c===o)return decodeURIComponent(i.join("="))}},zn=(o,a)=>{if(o)try{const n=o.getItem(a);return n===null?void 0:n}catch{return}},bn=(o,a)=>{const n=o.trim();if(!n)return;const[t,...c]=n.split("|").map(u=>u.trim()).filter(Boolean);if(!t)return;const i=/^([a-zA-Z_]\w*)(?:[.:])(.+)$/.exec(t);if(!i)return;const m=i[1],f=(i[2]??"").trim();if(!f)return;const p=()=>a.globalObject?a.globalObject:typeof window<"u"?window:void 0;let g;m==="form"?g=fo(a.formModel,f):m==="cookie"?g=$t(f):m==="localStorage"?g=zn(typeof window<"u"?window.localStorage:void 0,f):m==="sessionStorage"?g=zn(typeof window<"u"?window.sessionStorage:void 0,f):m==="global"?g=fo(p(),f):g=void 0;for(const u of c){const b=/^json:(.+)$/.exec(u);if(b){typeof g=="string"&&(g=Go(g));const x=(b[1]??"").trim();if(!x){g=void 0;continue}const T=x.split(":").map(D=>D.trim()).filter(Boolean).join(".");g=fo(g,T);continue}if(u==="json"){typeof g=="string"&&(g=Go(g));continue}if(u==="number"){if(typeof g=="string"||typeof g=="number"){const x=Number(g);g=Number.isFinite(x)?x:void 0}else g=void 0;continue}if(u==="boolean"){if(typeof g=="boolean")continue;if(typeof g=="string"){const x=g.trim().toLowerCase();x==="true"?g=!0:x==="false"?g=!1:g=void 0}else g=void 0;continue}const E=/^default:(.+)$/.exec(u);if(E){if(g!=null&&g!=="")continue;const x=(E[1]??"").trim(),T=Go(x);g=T===void 0?x:T;continue}}return g},Jt=(o,a)=>{const n=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(o);if(n&&n[1])return bn(n[1],a);const t=/\{\{\s*([\s\S]+?)\s*\}\}/g;return o.replace(t,(c,i)=>{const m=bn(i,a);if(m==null)return"";if(typeof m=="string"||typeof m=="number"||typeof m=="boolean")return String(m);try{return JSON.stringify(m)}catch{return""}})},Lt=o=>Me(o)&&typeof o.$ref=="string",Uo=(o,a,n=0)=>{if(n>20)return;if(typeof o=="string")return Jt(o,a);if(typeof o=="number"||typeof o=="boolean"||o===null)return o;if(o===void 0)return;if(Array.isArray(o))return o.map(c=>Uo(c,a,n+1));if(!Me(o))return;if(Lt(o))return bn(o.$ref,a);const t={};for(const[c,i]of Object.entries(o))t[c]=Uo(i,a,n+1);return t},jn=o=>{if(!o)return[];const a=String(o),n=new Set,t=p=>{const g=p.trim();if(!g)return;const u=g.split("|")[0]?.trim()??"",b=/^form(?:[.:])(.+)$/.exec(u);if(!b)return;const E=(b[1]??"").trim();if(!E)return;const x=E.split(".")[0]?.trim();x&&n.add(x)},c=/\{\{\s*([\s\S]+?)\s*\}\}/g;let i;for(;i=c.exec(a);)t(i[1]??"");const m=(p,g=0)=>{if(!(g>20)&&p!=null){if(typeof p=="string"){let u;for(;u=c.exec(p);)t(u[1]??"");return}if(!(typeof p=="number"||typeof p=="boolean")){if(Array.isArray(p)){for(const u of p)m(u,g+1);return}if(Me(p)){typeof p.$ref=="string"&&t(p.$ref);for(const u of Object.values(p))m(u,g+1)}}}},f=Go(a);return f!==void 0&&m(f),Array.from(n)},Hn=o=>typeof o=="string"&&/\{\{\s*form[.:]/.test(o),zt=o=>typeof o=="string"||typeof o=="number",Yn=(o,a)=>{if(!Array.isArray(o))return[];const n=10,t=(c,i)=>{if(!Me(c))return;const m=fo(c,a.labelKey),f=fo(c,a.valueKey);if(typeof m!="string"||!zt(f))return;const p={label:m,value:f};if(a.childrenKey&&i<n){const g=fo(c,a.childrenKey);if(Array.isArray(g)){const u=g.map(b=>t(b,i+1)).filter(Boolean);u.length>0&&(p.children=u)}}return p};return o.map(c=>t(c,1)).filter(Boolean)},kn=(o,a=0)=>{if(a>20)return o;if(o===void 0)return"";if(o===null||typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o;if(Array.isArray(o))return o.map(t=>kn(t,a+1));if(!Me(o))return o;const n={};for(const[t,c]of Object.entries(o))n[t]=kn(c,a+1);return n},qn=(o,a,n)=>{const t=Ln(o.paramsJson),c=Ln(o.headersJson),i=Uo(t,n),m=Uo(c,n),f=Me(i)?i:void 0,p=f?kn(f):void 0,g=Me(p)?p:void 0,u=Me(m)?m:void 0,b=o.method||"GET";let E=o.url;const x={method:b,signal:a},T={};if(u)for(const[D,H]of Object.entries(u))(typeof H=="string"||typeof H=="number"||typeof H=="boolean")&&(T[D]=String(H));if(b==="GET"){if(g){const D=new URL(E,window.location.origin);for(const[H,R]of Object.entries(g))if(R===void 0)D.searchParams.set(H,"");else if(typeof R=="string"||typeof R=="number"||typeof R=="boolean")D.searchParams.set(H,String(R));else if(R!==void 0)try{D.searchParams.set(H,JSON.stringify(R))}catch{}E=D.toString()}}else b==="POST"&&(T["Content-Type"]="application/json",g&&(x.body=JSON.stringify(g)));return Object.keys(T).length>0&&(x.headers=T),{url:E,fetchInit:x,resolvedParams:g,resolvedHeaders:T,resolvedParamsRaw:i,resolvedHeadersRaw:m}},Wn=async(o,a,n)=>{const c=qn(o,a,n??{}),m=await(await fetch(c.url,c.fetchInit)).json(),f=fo(m,o.dataPath);return Yn(f,o)},jt=async(o,a,n)=>{const c=qn(o,n,a??{}),i=await fetch(c.url,c.fetchInit);let m,f;try{m=await i.json()}catch{try{f=await i.text()}catch{f=void 0}}const p=fo(m,o.dataPath),g=Yn(p,o);return{request:{url:c.url,method:o.method,headers:c.resolvedHeaders,body:typeof c.fetchInit.body=="string"?c.fetchInit.body:void 0,resolvedParams:c.resolvedParams,resolvedParamsRaw:c.resolvedParamsRaw,resolvedHeadersRaw:c.resolvedHeadersRaw},response:{ok:i.ok,status:i.status,statusText:i.statusText,json:m,text:f},extractedData:p,mappedOptions:g}},Gn=Symbol("Designer");function Ht(){const o=e.reactive([]),a=e.reactive({labelPosition:"right",labelWidth:100,size:"default",visibilityRules:[]}),n=e.ref(void 0),t=b=>{n.value=b},c=(b,E)=>{for(const x of b){if(x.id===E)return x;if(x.children){const T=c(x.children,E);if(T)return T}}},i=e.computed(()=>{if(n.value)return c(o,n.value)}),m=b=>{const E=x=>{const T=x.findIndex(D=>D.id===b);if(T>-1)return x.splice(T,1),!0;for(const D of x)if(D.children&&E(D.children))return!0;return!1};E(o),n.value===b&&(n.value=void 0)},f=(b,E)=>{const x=b.findIndex(T=>T.id===E);if(x>-1)return{container:b,index:x};for(const T of b){if(!Array.isArray(T.children))continue;const D=f(T.children,E);if(D)return D}},u={formList:o,formConfig:a,selectedId:n,selectedComponent:i,setSelected:t,deleteComponent:m,duplicateComponent:b=>{const E=f(o,b);if(!E)return;const x=E.container[E.index];if(!x)return;const T=Pt(x);E.container.splice(E.index+1,0,T),n.value=T.id},clearCanvas:()=>{o.length=0,n.value=void 0}};return e.provide(Gn,u),u}function Vn(){const o=e.inject(Gn);if(!o)throw new Error("useDesigner must be used within FastFormDesigner");return o}var Yt=Object.defineProperty,Ko=Object.getOwnPropertySymbols,Kn=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable,Qn=(o,a,n)=>a in o?Yt(o,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[a]=n,So=(o,a)=>{for(var n in a||(a={}))Kn.call(a,n)&&Qn(o,n,a[n]);if(Ko)for(var n of Ko(a))Xn.call(a,n)&&Qn(o,n,a[n]);return o},Zn=(o,a)=>{var n={};for(var t in o)Kn.call(o,t)&&a.indexOf(t)<0&&(n[t]=o[t]);if(o!=null&&Ko)for(var t of Ko(o))a.indexOf(t)<0&&Xn.call(o,t)&&(n[t]=o[t]);return n};const vn="[vue-draggable-plus]: ";function qt(o){console.warn(vn+o)}function Wt(o){console.error(vn+o)}function et(o,a,n){return n>=0&&n<o.length&&o.splice(n,0,o.splice(a,1)[0]),o}function Gt(o){return o.replace(/-(\w)/g,(a,n)=>n?n.toUpperCase():"")}function Kt(o){return Object.keys(o).reduce((a,n)=>(typeof o[n]<"u"&&(a[Gt(n)]=o[n]),a),{})}function ot(o,a){return Array.isArray(o)&&o.splice(a,1),o}function nt(o,a,n){return Array.isArray(o)&&o.splice(a,0,n),o}function Xt(o){return typeof o>"u"}function Qt(o){return typeof o=="string"}function tt(o,a,n){const t=o.children[n];o.insertBefore(a,t)}function Cn(o){o.parentNode&&o.parentNode.removeChild(o)}function Zt(o,a=document){var n;let t=null;return typeof a?.querySelector=="function"?t=(n=a?.querySelector)==null?void 0:n.call(a,o):t=document.querySelector(o),t||qt(`Element not found: ${o}`),t}function vt(o,a,n=null){return function(...t){return o.apply(n,t),a.apply(n,t)}}function ea(o,a){const n=So({},o);return Object.keys(a).forEach(t=>{n[t]?n[t]=vt(o[t],a[t]):n[t]=a[t]}),n}function oa(o){return o instanceof HTMLElement}function at(o,a){Object.keys(o).forEach(n=>{a(n,o[n])})}function na(o){return o.charCodeAt(0)===111&&o.charCodeAt(1)===110&&(o.charCodeAt(2)>122||o.charCodeAt(2)<97)}const ta=Object.assign;function lt(o,a){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);a&&(t=t.filter(function(c){return Object.getOwnPropertyDescriptor(o,c).enumerable})),n.push.apply(n,t)}return n}function oo(o){for(var a=1;a<arguments.length;a++){var n=arguments[a]!=null?arguments[a]:{};a%2?lt(Object(n),!0).forEach(function(t){aa(o,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):lt(Object(n)).forEach(function(t){Object.defineProperty(o,t,Object.getOwnPropertyDescriptor(n,t))})}return o}function Xo(o){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Xo=function(a){return typeof a}:Xo=function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},Xo(o)}function aa(o,a,n){return a in o?Object.defineProperty(o,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):o[a]=n,o}function lo(){return lo=Object.assign||function(o){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(o[t]=n[t])}return o},lo.apply(this,arguments)}function la(o,a){if(o==null)return{};var n={},t=Object.keys(o),c,i;for(i=0;i<t.length;i++)c=t[i],!(a.indexOf(c)>=0)&&(n[c]=o[c]);return n}function da(o,a){if(o==null)return{};var n=la(o,a),t,c;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);for(c=0;c<i.length;c++)t=i[c],!(a.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(o,t)&&(n[t]=o[t])}return n}var ca="1.15.2";function co(o){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(o)}var ro=co(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Fo=co(/Edge/i),dt=co(/firefox/i),Mo=co(/safari/i)&&!co(/chrome/i)&&!co(/android/i),ct=co(/iP(ad|od|hone)/i),rt=co(/chrome/i)&&co(/android/i),it={capture:!1,passive:!1};function me(o,a,n){o.addEventListener(a,n,!ro&&it)}function re(o,a,n){o.removeEventListener(a,n,!ro&&it)}function Qo(o,a){if(a){if(a[0]===">"&&(a=a.substring(1)),o)try{if(o.matches)return o.matches(a);if(o.msMatchesSelector)return o.msMatchesSelector(a);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(a)}catch{return!1}return!1}}function ra(o){return o.host&&o!==document&&o.host.nodeType?o.host:o.parentNode}function Ze(o,a,n,t){if(o){n=n||document;do{if(a!=null&&(a[0]===">"?o.parentNode===n&&Qo(o,a):Qo(o,a))||t&&o===n)return o;if(o===n)break}while(o=ra(o))}return null}var mt=/\s+/g;function He(o,a,n){if(o&&a)if(o.classList)o.classList[n?"add":"remove"](a);else{var t=(" "+o.className+" ").replace(mt," ").replace(" "+a+" "," ");o.className=(t+(n?" "+a:"")).replace(mt," ")}}function G(o,a,n){var t=o&&o.style;if(t){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(o,""):o.currentStyle&&(n=o.currentStyle),a===void 0?n:n[a];!(a in t)&&a.indexOf("webkit")===-1&&(a="-webkit-"+a),t[a]=n+(typeof n=="string"?"":"px")}}function _o(o,a){var n="";if(typeof o=="string")n=o;else do{var t=G(o,"transform");t&&t!=="none"&&(n=t+" "+n)}while(!a&&(o=o.parentNode));var c=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return c&&new c(n)}function st(o,a,n){if(o){var t=o.getElementsByTagName(a),c=0,i=t.length;if(n)for(;c<i;c++)n(t[c],c);return t}return[]}function no(){var o=document.scrollingElement;return o||document.documentElement}function Be(o,a,n,t,c){if(!(!o.getBoundingClientRect&&o!==window)){var i,m,f,p,g,u,b;if(o!==window&&o.parentNode&&o!==no()?(i=o.getBoundingClientRect(),m=i.top,f=i.left,p=i.bottom,g=i.right,u=i.height,b=i.width):(m=0,f=0,p=window.innerHeight,g=window.innerWidth,u=window.innerHeight,b=window.innerWidth),(a||n)&&o!==window&&(c=c||o.parentNode,!ro))do if(c&&c.getBoundingClientRect&&(G(c,"transform")!=="none"||n&&G(c,"position")!=="static")){var E=c.getBoundingClientRect();m-=E.top+parseInt(G(c,"border-top-width")),f-=E.left+parseInt(G(c,"border-left-width")),p=m+i.height,g=f+i.width;break}while(c=c.parentNode);if(t&&o!==window){var x=_o(c||o),T=x&&x.a,D=x&&x.d;x&&(m/=D,f/=T,b/=T,u/=D,p=m+u,g=f+b)}return{top:m,left:f,bottom:p,right:g,width:b,height:u}}}function pt(o,a,n){for(var t=ho(o,!0),c=Be(o)[a];t;){var i=Be(t)[n],m=void 0;if(m=c>=i,!m)return t;if(t===no())break;t=ho(t,!1)}return!1}function Eo(o,a,n,t){for(var c=0,i=0,m=o.children;i<m.length;){if(m[i].style.display!=="none"&&m[i]!==K.ghost&&(t||m[i]!==K.dragged)&&Ze(m[i],n.draggable,o,!1)){if(c===a)return m[i];c++}i++}return null}function wn(o,a){for(var n=o.lastElementChild;n&&(n===K.ghost||G(n,"display")==="none"||a&&!Qo(n,a));)n=n.previousElementSibling;return n||null}function Ge(o,a){var n=0;if(!o||!o.parentNode)return-1;for(;o=o.previousElementSibling;)o.nodeName.toUpperCase()!=="TEMPLATE"&&o!==K.clone&&(!a||Qo(o,a))&&n++;return n}function ut(o){var a=0,n=0,t=no();if(o)do{var c=_o(o),i=c.a,m=c.d;a+=o.scrollLeft*i,n+=o.scrollTop*m}while(o!==t&&(o=o.parentNode));return[a,n]}function ia(o,a){for(var n in o)if(o.hasOwnProperty(n)){for(var t in a)if(a.hasOwnProperty(t)&&a[t]===o[n][t])return Number(n)}return-1}function ho(o,a){if(!o||!o.getBoundingClientRect)return no();var n=o,t=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var c=G(n);if(n.clientWidth<n.scrollWidth&&(c.overflowX=="auto"||c.overflowX=="scroll")||n.clientHeight<n.scrollHeight&&(c.overflowY=="auto"||c.overflowY=="scroll")){if(!n.getBoundingClientRect||n===document.body)return no();if(t||a)return n;t=!0}}while(n=n.parentNode);return no()}function ma(o,a){if(o&&a)for(var n in a)a.hasOwnProperty(n)&&(o[n]=a[n]);return o}function Nn(o,a){return Math.round(o.top)===Math.round(a.top)&&Math.round(o.left)===Math.round(a.left)&&Math.round(o.height)===Math.round(a.height)&&Math.round(o.width)===Math.round(a.width)}var Ro;function ft(o,a){return function(){if(!Ro){var n=arguments,t=this;n.length===1?o.call(t,n[0]):o.apply(t,n),Ro=setTimeout(function(){Ro=void 0},a)}}}function sa(){clearTimeout(Ro),Ro=void 0}function ht(o,a,n){o.scrollLeft+=a,o.scrollTop+=n}function yt(o){var a=window.Polymer,n=window.jQuery||window.Zepto;return a&&a.dom?a.dom(o).cloneNode(!0):n?n(o).clone(!0)[0]:o.cloneNode(!0)}function gt(o,a,n){var t={};return Array.from(o.children).forEach(function(c){var i,m,f,p;if(!(!Ze(c,a.draggable,o,!1)||c.animated||c===n)){var g=Be(c);t.left=Math.min((i=t.left)!==null&&i!==void 0?i:1/0,g.left),t.top=Math.min((m=t.top)!==null&&m!==void 0?m:1/0,g.top),t.right=Math.max((f=t.right)!==null&&f!==void 0?f:-1/0,g.right),t.bottom=Math.max((p=t.bottom)!==null&&p!==void 0?p:-1/0,g.bottom)}}),t.width=t.right-t.left,t.height=t.bottom-t.top,t.x=t.left,t.y=t.top,t}var Ye="Sortable"+new Date().getTime();function pa(){var o=[],a;return{captureAnimationState:function(){if(o=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(t){if(!(G(t,"display")==="none"||t===K.ghost)){o.push({target:t,rect:Be(t)});var c=oo({},o[o.length-1].rect);if(t.thisAnimationDuration){var i=_o(t,!0);i&&(c.top-=i.f,c.left-=i.e)}t.fromRect=c}})}},addAnimationState:function(n){o.push(n)},removeAnimationState:function(n){o.splice(ia(o,{target:n}),1)},animateAll:function(n){var t=this;if(!this.options.animation){clearTimeout(a),typeof n=="function"&&n();return}var c=!1,i=0;o.forEach(function(m){var f=0,p=m.target,g=p.fromRect,u=Be(p),b=p.prevFromRect,E=p.prevToRect,x=m.rect,T=_o(p,!0);T&&(u.top-=T.f,u.left-=T.e),p.toRect=u,p.thisAnimationDuration&&Nn(b,u)&&!Nn(g,u)&&(x.top-u.top)/(x.left-u.left)===(g.top-u.top)/(g.left-u.left)&&(f=fa(x,b,E,t.options)),Nn(u,g)||(p.prevFromRect=g,p.prevToRect=u,f||(f=t.options.animation),t.animate(p,x,u,f)),f&&(c=!0,i=Math.max(i,f),clearTimeout(p.animationResetTimer),p.animationResetTimer=setTimeout(function(){p.animationTime=0,p.prevFromRect=null,p.fromRect=null,p.prevToRect=null,p.thisAnimationDuration=null},f),p.thisAnimationDuration=f)}),clearTimeout(a),c?a=setTimeout(function(){typeof n=="function"&&n()},i):typeof n=="function"&&n(),o=[]},animate:function(n,t,c,i){if(i){G(n,"transition",""),G(n,"transform","");var m=_o(this.el),f=m&&m.a,p=m&&m.d,g=(t.left-c.left)/(f||1),u=(t.top-c.top)/(p||1);n.animatingX=!!g,n.animatingY=!!u,G(n,"transform","translate3d("+g+"px,"+u+"px,0)"),this.forRepaintDummy=ua(n),G(n,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),G(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){G(n,"transition",""),G(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},i)}}}}function ua(o){return o.offsetWidth}function fa(o,a,n,t){return Math.sqrt(Math.pow(a.top-o.top,2)+Math.pow(a.left-o.left,2))/Math.sqrt(Math.pow(a.top-n.top,2)+Math.pow(a.left-n.left,2))*t.animation}var To=[],xn={initializeByDefault:!0},Po={mount:function(o){for(var a in xn)xn.hasOwnProperty(a)&&!(a in o)&&(o[a]=xn[a]);To.forEach(function(n){if(n.pluginName===o.pluginName)throw"Sortable: Cannot mount plugin ".concat(o.pluginName," more than once")}),To.push(o)},pluginEvent:function(o,a,n){var t=this;this.eventCanceled=!1,n.cancel=function(){t.eventCanceled=!0};var c=o+"Global";To.forEach(function(i){a[i.pluginName]&&(a[i.pluginName][c]&&a[i.pluginName][c](oo({sortable:a},n)),a.options[i.pluginName]&&a[i.pluginName][o]&&a[i.pluginName][o](oo({sortable:a},n)))})},initializePlugins:function(o,a,n,t){To.forEach(function(m){var f=m.pluginName;if(!(!o.options[f]&&!m.initializeByDefault)){var p=new m(o,a,o.options);p.sortable=o,p.options=o.options,o[f]=p,lo(n,p.defaults)}});for(var c in o.options)if(o.options.hasOwnProperty(c)){var i=this.modifyOption(o,c,o.options[c]);typeof i<"u"&&(o.options[c]=i)}},getEventProperties:function(o,a){var n={};return To.forEach(function(t){typeof t.eventProperties=="function"&&lo(n,t.eventProperties.call(a[t.pluginName],o))}),n},modifyOption:function(o,a,n){var t;return To.forEach(function(c){o[c.pluginName]&&c.optionListeners&&typeof c.optionListeners[a]=="function"&&(t=c.optionListeners[a].call(o[c.pluginName],n))}),t}};function ha(o){var a=o.sortable,n=o.rootEl,t=o.name,c=o.targetEl,i=o.cloneEl,m=o.toEl,f=o.fromEl,p=o.oldIndex,g=o.newIndex,u=o.oldDraggableIndex,b=o.newDraggableIndex,E=o.originalEvent,x=o.putSortable,T=o.extraEventProperties;if(a=a||n&&n[Ye],!!a){var D,H=a.options,R="on"+t.charAt(0).toUpperCase()+t.substr(1);window.CustomEvent&&!ro&&!Fo?D=new CustomEvent(t,{bubbles:!0,cancelable:!0}):(D=document.createEvent("Event"),D.initEvent(t,!0,!0)),D.to=m||n,D.from=f||n,D.item=c||n,D.clone=i,D.oldIndex=p,D.newIndex=g,D.oldDraggableIndex=u,D.newDraggableIndex=b,D.originalEvent=E,D.pullMode=x?x.lastPutMode:void 0;var q=oo(oo({},T),Po.getEventProperties(t,a));for(var ee in q)D[ee]=q[ee];n&&n.dispatchEvent(D),H[R]&&H[R].call(a,D)}}var ya=["evt"],je=function(o,a){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},t=n.evt,c=da(n,ya);Po.pluginEvent.bind(K)(o,a,oo({dragEl:A,parentEl:Ve,ghostEl:X,rootEl:fe,nextEl:Co,lastDownEl:Zo,cloneEl:ge,cloneHidden:yo,dragStarted:$o,putSortable:Ue,activeSortable:K.active,originalEvent:t,oldIndex:Do,oldDraggableIndex:Io,newIndex:qe,newDraggableIndex:go,hideGhostForTarget:xt,unhideGhostForTarget:Bt,cloneNowHidden:function(){yo=!0},cloneNowShown:function(){yo=!1},dispatchSortableEvent:function(i){Je({sortable:a,name:i,originalEvent:t})}},c))};function Je(o){ha(oo({putSortable:Ue,cloneEl:ge,targetEl:A,rootEl:fe,oldIndex:Do,oldDraggableIndex:Io,newIndex:qe,newDraggableIndex:go},o))}var A,Ve,X,fe,Co,Zo,ge,yo,Do,qe,Io,go,vo,Ue,Oo=!1,en=!1,on=[],wo,ve,Bn,Sn,bt,kt,$o,Ao,Jo,Lo=!1,nn=!1,tn,Re,_n=[],En=!1,an=[],ln=typeof document<"u",dn=ct,Vt=Fo||ro?"cssFloat":"float",ga=ln&&!rt&&!ct&&"draggable"in document.createElement("div"),Ct=(function(){if(ln){if(ro)return!1;var o=document.createElement("x");return o.style.cssText="pointer-events:auto",o.style.pointerEvents==="auto"}})(),wt=function(o,a){var n=G(o),t=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),c=Eo(o,0,a),i=Eo(o,1,a),m=c&&G(c),f=i&&G(i),p=m&&parseInt(m.marginLeft)+parseInt(m.marginRight)+Be(c).width,g=f&&parseInt(f.marginLeft)+parseInt(f.marginRight)+Be(i).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(c&&m.float&&m.float!=="none"){var u=m.float==="left"?"left":"right";return i&&(f.clear==="both"||f.clear===u)?"vertical":"horizontal"}return c&&(m.display==="block"||m.display==="flex"||m.display==="table"||m.display==="grid"||p>=t&&n[Vt]==="none"||i&&n[Vt]==="none"&&p+g>t)?"vertical":"horizontal"},ba=function(o,a,n){var t=n?o.left:o.top,c=n?o.right:o.bottom,i=n?o.width:o.height,m=n?a.left:a.top,f=n?a.right:a.bottom,p=n?a.width:a.height;return t===m||c===f||t+i/2===m+p/2},ka=function(o,a){var n;return on.some(function(t){var c=t[Ye].options.emptyInsertThreshold;if(!(!c||wn(t))){var i=Be(t),m=o>=i.left-c&&o<=i.right+c,f=a>=i.top-c&&a<=i.bottom+c;if(m&&f)return n=t}}),n},Nt=function(o){function a(c,i){return function(m,f,p,g){var u=m.options.group.name&&f.options.group.name&&m.options.group.name===f.options.group.name;if(c==null&&(i||u))return!0;if(c==null||c===!1)return!1;if(i&&c==="clone")return c;if(typeof c=="function")return a(c(m,f,p,g),i)(m,f,p,g);var b=(i?m:f).options.group.name;return c===!0||typeof c=="string"&&c===b||c.join&&c.indexOf(b)>-1}}var n={},t=o.group;(!t||Xo(t)!="object")&&(t={name:t}),n.name=t.name,n.checkPull=a(t.pull,!0),n.checkPut=a(t.put),n.revertClone=t.revertClone,o.group=n},xt=function(){!Ct&&X&&G(X,"display","none")},Bt=function(){!Ct&&X&&G(X,"display","")};ln&&!rt&&document.addEventListener("click",function(o){if(en)return o.preventDefault(),o.stopPropagation&&o.stopPropagation(),o.stopImmediatePropagation&&o.stopImmediatePropagation(),en=!1,!1},!0);var No=function(o){if(A){o=o.touches?o.touches[0]:o;var a=ka(o.clientX,o.clientY);if(a){var n={};for(var t in o)o.hasOwnProperty(t)&&(n[t]=o[t]);n.target=n.rootEl=a,n.preventDefault=void 0,n.stopPropagation=void 0,a[Ye]._onDragOver(n)}}},Va=function(o){A&&A.parentNode[Ye]._isOutsideThisEl(o.target)};function K(o,a){if(!(o&&o.nodeType&&o.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(o));this.el=o,this.options=a=lo({},a),o[Ye]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(o.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return wt(o,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(i,m){i.setData("Text",m.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:K.supportPointer!==!1&&"PointerEvent"in window&&!Mo,emptyInsertThreshold:5};Po.initializePlugins(this,o,n);for(var t in n)!(t in a)&&(a[t]=n[t]);Nt(a);for(var c in this)c.charAt(0)==="_"&&typeof this[c]=="function"&&(this[c]=this[c].bind(this));this.nativeDraggable=a.forceFallback?!1:ga,this.nativeDraggable&&(this.options.touchStartThreshold=1),a.supportPointer?me(o,"pointerdown",this._onTapStart):(me(o,"mousedown",this._onTapStart),me(o,"touchstart",this._onTapStart)),this.nativeDraggable&&(me(o,"dragover",this),me(o,"dragenter",this)),on.push(this.el),a.store&&a.store.get&&this.sort(a.store.get(this)||[]),lo(this,pa())}K.prototype={constructor:K,_isOutsideThisEl:function(o){!this.el.contains(o)&&o!==this.el&&(Ao=null)},_getDirection:function(o,a){return typeof this.options.direction=="function"?this.options.direction.call(this,o,a,A):this.options.direction},_onTapStart:function(o){if(o.cancelable){var a=this,n=this.el,t=this.options,c=t.preventOnFilter,i=o.type,m=o.touches&&o.touches[0]||o.pointerType&&o.pointerType==="touch"&&o,f=(m||o).target,p=o.target.shadowRoot&&(o.path&&o.path[0]||o.composedPath&&o.composedPath()[0])||f,g=t.filter;if(Ea(n),!A&&!(/mousedown|pointerdown/.test(i)&&o.button!==0||t.disabled)&&!p.isContentEditable&&!(!this.nativeDraggable&&Mo&&f&&f.tagName.toUpperCase()==="SELECT")&&(f=Ze(f,t.draggable,n,!1),!(f&&f.animated)&&Zo!==f)){if(Do=Ge(f),Io=Ge(f,t.draggable),typeof g=="function"){if(g.call(this,o,f,this)){Je({sortable:a,rootEl:p,name:"filter",targetEl:f,toEl:n,fromEl:n}),je("filter",a,{evt:o}),c&&o.cancelable&&o.preventDefault();return}}else if(g&&(g=g.split(",").some(function(u){if(u=Ze(p,u.trim(),n,!1),u)return Je({sortable:a,rootEl:u,name:"filter",targetEl:f,fromEl:n,toEl:n}),je("filter",a,{evt:o}),!0}),g)){c&&o.cancelable&&o.preventDefault();return}t.handle&&!Ze(p,t.handle,n,!1)||this._prepareDragStart(o,m,f)}}},_prepareDragStart:function(o,a,n){var t=this,c=t.el,i=t.options,m=c.ownerDocument,f;if(n&&!A&&n.parentNode===c){var p=Be(n);if(fe=c,A=n,Ve=A.parentNode,Co=A.nextSibling,Zo=n,vo=i.group,K.dragged=A,wo={target:A,clientX:(a||o).clientX,clientY:(a||o).clientY},bt=wo.clientX-p.left,kt=wo.clientY-p.top,this._lastX=(a||o).clientX,this._lastY=(a||o).clientY,A.style["will-change"]="all",f=function(){if(je("delayEnded",t,{evt:o}),K.eventCanceled){t._onDrop();return}t._disableDelayedDragEvents(),!dt&&t.nativeDraggable&&(A.draggable=!0),t._triggerDragStart(o,a),Je({sortable:t,name:"choose",originalEvent:o}),He(A,i.chosenClass,!0)},i.ignore.split(",").forEach(function(g){st(A,g.trim(),Tn)}),me(m,"dragover",No),me(m,"mousemove",No),me(m,"touchmove",No),me(m,"mouseup",t._onDrop),me(m,"touchend",t._onDrop),me(m,"touchcancel",t._onDrop),dt&&this.nativeDraggable&&(this.options.touchStartThreshold=4,A.draggable=!0),je("delayStart",this,{evt:o}),i.delay&&(!i.delayOnTouchOnly||a)&&(!this.nativeDraggable||!(Fo||ro))){if(K.eventCanceled){this._onDrop();return}me(m,"mouseup",t._disableDelayedDrag),me(m,"touchend",t._disableDelayedDrag),me(m,"touchcancel",t._disableDelayedDrag),me(m,"mousemove",t._delayedDragTouchMoveHandler),me(m,"touchmove",t._delayedDragTouchMoveHandler),i.supportPointer&&me(m,"pointermove",t._delayedDragTouchMoveHandler),t._dragStartTimer=setTimeout(f,i.delay)}else f()}},_delayedDragTouchMoveHandler:function(o){var a=o.touches?o.touches[0]:o;Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){A&&Tn(A),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var o=this.el.ownerDocument;re(o,"mouseup",this._disableDelayedDrag),re(o,"touchend",this._disableDelayedDrag),re(o,"touchcancel",this._disableDelayedDrag),re(o,"mousemove",this._delayedDragTouchMoveHandler),re(o,"touchmove",this._delayedDragTouchMoveHandler),re(o,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(o,a){a=a||o.pointerType=="touch"&&o,!this.nativeDraggable||a?this.options.supportPointer?me(document,"pointermove",this._onTouchMove):a?me(document,"touchmove",this._onTouchMove):me(document,"mousemove",this._onTouchMove):(me(A,"dragend",this),me(fe,"dragstart",this._onDragStart));try{document.selection?rn(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(o,a){if(Oo=!1,fe&&A){je("dragStarted",this,{evt:a}),this.nativeDraggable&&me(document,"dragover",Va);var n=this.options;!o&&He(A,n.dragClass,!1),He(A,n.ghostClass,!0),K.active=this,o&&this._appendGhost(),Je({sortable:this,name:"start",originalEvent:a})}else this._nulling()},_emulateDragOver:function(){if(ve){this._lastX=ve.clientX,this._lastY=ve.clientY,xt();for(var o=document.elementFromPoint(ve.clientX,ve.clientY),a=o;o&&o.shadowRoot&&(o=o.shadowRoot.elementFromPoint(ve.clientX,ve.clientY),o!==a);)a=o;if(A.parentNode[Ye]._isOutsideThisEl(o),a)do{if(a[Ye]){var n=void 0;if(n=a[Ye]._onDragOver({clientX:ve.clientX,clientY:ve.clientY,target:o,rootEl:a}),n&&!this.options.dragoverBubble)break}o=a}while(a=a.parentNode);Bt()}},_onTouchMove:function(o){if(wo){var a=this.options,n=a.fallbackTolerance,t=a.fallbackOffset,c=o.touches?o.touches[0]:o,i=X&&_o(X,!0),m=X&&i&&i.a,f=X&&i&&i.d,p=dn&&Re&&ut(Re),g=(c.clientX-wo.clientX+t.x)/(m||1)+(p?p[0]-_n[0]:0)/(m||1),u=(c.clientY-wo.clientY+t.y)/(f||1)+(p?p[1]-_n[1]:0)/(f||1);if(!K.active&&!Oo){if(n&&Math.max(Math.abs(c.clientX-this._lastX),Math.abs(c.clientY-this._lastY))<n)return;this._onDragStart(o,!0)}if(X){i?(i.e+=g-(Bn||0),i.f+=u-(Sn||0)):i={a:1,b:0,c:0,d:1,e:g,f:u};var b="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");G(X,"webkitTransform",b),G(X,"mozTransform",b),G(X,"msTransform",b),G(X,"transform",b),Bn=g,Sn=u,ve=c}o.cancelable&&o.preventDefault()}},_appendGhost:function(){if(!X){var o=this.options.fallbackOnBody?document.body:fe,a=Be(A,!0,dn,!0,o),n=this.options;if(dn){for(Re=o;G(Re,"position")==="static"&&G(Re,"transform")==="none"&&Re!==document;)Re=Re.parentNode;Re!==document.body&&Re!==document.documentElement?(Re===document&&(Re=no()),a.top+=Re.scrollTop,a.left+=Re.scrollLeft):Re=no(),_n=ut(Re)}X=A.cloneNode(!0),He(X,n.ghostClass,!1),He(X,n.fallbackClass,!0),He(X,n.dragClass,!0),G(X,"transition",""),G(X,"transform",""),G(X,"box-sizing","border-box"),G(X,"margin",0),G(X,"top",a.top),G(X,"left",a.left),G(X,"width",a.width),G(X,"height",a.height),G(X,"opacity","0.8"),G(X,"position",dn?"absolute":"fixed"),G(X,"zIndex","100000"),G(X,"pointerEvents","none"),K.ghost=X,o.appendChild(X),G(X,"transform-origin",bt/parseInt(X.style.width)*100+"% "+kt/parseInt(X.style.height)*100+"%")}},_onDragStart:function(o,a){var n=this,t=o.dataTransfer,c=n.options;if(je("dragStart",this,{evt:o}),K.eventCanceled){this._onDrop();return}je("setupClone",this),K.eventCanceled||(ge=yt(A),ge.removeAttribute("id"),ge.draggable=!1,ge.style["will-change"]="",this._hideClone(),He(ge,this.options.chosenClass,!1),K.clone=ge),n.cloneId=rn(function(){je("clone",n),!K.eventCanceled&&(n.options.removeCloneOnHide||fe.insertBefore(ge,A),n._hideClone(),Je({sortable:n,name:"clone"}))}),!a&&He(A,c.dragClass,!0),a?(en=!0,n._loopId=setInterval(n._emulateDragOver,50)):(re(document,"mouseup",n._onDrop),re(document,"touchend",n._onDrop),re(document,"touchcancel",n._onDrop),t&&(t.effectAllowed="move",c.setData&&c.setData.call(n,t,A)),me(document,"drop",n),G(A,"transform","translateZ(0)")),Oo=!0,n._dragStartId=rn(n._dragStarted.bind(n,a,o)),me(document,"selectstart",n),$o=!0,Mo&&G(document.body,"user-select","none")},_onDragOver:function(o){var a=this.el,n=o.target,t,c,i,m=this.options,f=m.group,p=K.active,g=vo===f,u=m.sort,b=Ue||p,E,x=this,T=!1;if(En)return;function D(P,ce){je(P,x,oo({evt:o,isOwner:g,axis:E?"vertical":"horizontal",revert:i,dragRect:t,targetRect:c,canSort:u,fromSortable:b,target:n,completed:R,onMove:function(U,I){return cn(fe,a,A,t,U,Be(U),o,I)},changed:q},ce))}function H(){D("dragOverAnimationCapture"),x.captureAnimationState(),x!==b&&b.captureAnimationState()}function R(P){return D("dragOverCompleted",{insertion:P}),P&&(g?p._hideClone():p._showClone(x),x!==b&&(He(A,Ue?Ue.options.ghostClass:p.options.ghostClass,!1),He(A,m.ghostClass,!0)),Ue!==x&&x!==K.active?Ue=x:x===K.active&&Ue&&(Ue=null),b===x&&(x._ignoreWhileAnimating=n),x.animateAll(function(){D("dragOverAnimationComplete"),x._ignoreWhileAnimating=null}),x!==b&&(b.animateAll(),b._ignoreWhileAnimating=null)),(n===A&&!A.animated||n===a&&!n.animated)&&(Ao=null),!m.dragoverBubble&&!o.rootEl&&n!==document&&(A.parentNode[Ye]._isOutsideThisEl(o.target),!P&&No(o)),!m.dragoverBubble&&o.stopPropagation&&o.stopPropagation(),T=!0}function q(){qe=Ge(A),go=Ge(A,m.draggable),Je({sortable:x,name:"change",toEl:a,newIndex:qe,newDraggableIndex:go,originalEvent:o})}if(o.preventDefault!==void 0&&o.cancelable&&o.preventDefault(),n=Ze(n,m.draggable,a,!0),D("dragOver"),K.eventCanceled)return T;if(A.contains(o.target)||n.animated&&n.animatingX&&n.animatingY||x._ignoreWhileAnimating===n)return R(!1);if(en=!1,p&&!m.disabled&&(g?u||(i=Ve!==fe):Ue===this||(this.lastPutMode=vo.checkPull(this,p,A,o))&&f.checkPut(this,p,A,o))){if(E=this._getDirection(o,n)==="vertical",t=Be(A),D("dragOverValid"),K.eventCanceled)return T;if(i)return Ve=fe,H(),this._hideClone(),D("revert"),K.eventCanceled||(Co?fe.insertBefore(A,Co):fe.appendChild(A)),R(!0);var ee=wn(a,m.draggable);if(!ee||xa(o,E,this)&&!ee.animated){if(ee===A)return R(!1);if(ee&&a===o.target&&(n=ee),n&&(c=Be(n)),cn(fe,a,A,t,n,c,o,!!n)!==!1)return H(),ee&&ee.nextSibling?a.insertBefore(A,ee.nextSibling):a.appendChild(A),Ve=a,q(),R(!0)}else if(ee&&Na(o,E,this)){var pe=Eo(a,0,m,!0);if(pe===A)return R(!1);if(n=pe,c=Be(n),cn(fe,a,A,t,n,c,o,!1)!==!1)return H(),a.insertBefore(A,pe),Ve=a,q(),R(!0)}else if(n.parentNode===a){c=Be(n);var ie=0,ne,Z=A.parentNode!==a,Ce=!ba(A.animated&&A.toRect||t,n.animated&&n.toRect||c,E),se=E?"top":"left",O=pt(n,"top","top")||pt(A,"top","top"),V=O?O.scrollTop:void 0;Ao!==n&&(ne=c[se],Lo=!1,nn=!Ce&&m.invertSwap||Z),ie=Ba(o,n,c,E,Ce?1:m.swapThreshold,m.invertedSwapThreshold==null?m.swapThreshold:m.invertedSwapThreshold,nn,Ao===n);var h;if(ie!==0){var C=Ge(A);do C-=ie,h=Ve.children[C];while(h&&(G(h,"display")==="none"||h===X))}if(ie===0||h===n)return R(!1);Ao=n,Jo=ie;var y=n.nextElementSibling,F=!1;F=ie===1;var $=cn(fe,a,A,t,n,c,o,F);if($!==!1)return($===1||$===-1)&&(F=$===1),En=!0,setTimeout(wa,30),H(),F&&!y?a.appendChild(A):n.parentNode.insertBefore(A,F?y:n),O&&ht(O,0,V-O.scrollTop),Ve=A.parentNode,ne!==void 0&&!nn&&(tn=Math.abs(ne-Be(n)[se])),q(),R(!0)}if(a.contains(A))return R(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){re(document,"mousemove",this._onTouchMove),re(document,"touchmove",this._onTouchMove),re(document,"pointermove",this._onTouchMove),re(document,"dragover",No),re(document,"mousemove",No),re(document,"touchmove",No)},_offUpEvents:function(){var o=this.el.ownerDocument;re(o,"mouseup",this._onDrop),re(o,"touchend",this._onDrop),re(o,"pointerup",this._onDrop),re(o,"touchcancel",this._onDrop),re(document,"selectstart",this)},_onDrop:function(o){var a=this.el,n=this.options;if(qe=Ge(A),go=Ge(A,n.draggable),je("drop",this,{evt:o}),Ve=A&&A.parentNode,qe=Ge(A),go=Ge(A,n.draggable),K.eventCanceled){this._nulling();return}Oo=!1,nn=!1,Lo=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Dn(this.cloneId),Dn(this._dragStartId),this.nativeDraggable&&(re(document,"drop",this),re(a,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Mo&&G(document.body,"user-select",""),G(A,"transform",""),o&&($o&&(o.cancelable&&o.preventDefault(),!n.dropBubble&&o.stopPropagation()),X&&X.parentNode&&X.parentNode.removeChild(X),(fe===Ve||Ue&&Ue.lastPutMode!=="clone")&&ge&&ge.parentNode&&ge.parentNode.removeChild(ge),A&&(this.nativeDraggable&&re(A,"dragend",this),Tn(A),A.style["will-change"]="",$o&&!Oo&&He(A,Ue?Ue.options.ghostClass:this.options.ghostClass,!1),He(A,this.options.chosenClass,!1),Je({sortable:this,name:"unchoose",toEl:Ve,newIndex:null,newDraggableIndex:null,originalEvent:o}),fe!==Ve?(qe>=0&&(Je({rootEl:Ve,name:"add",toEl:Ve,fromEl:fe,originalEvent:o}),Je({sortable:this,name:"remove",toEl:Ve,originalEvent:o}),Je({rootEl:Ve,name:"sort",toEl:Ve,fromEl:fe,originalEvent:o}),Je({sortable:this,name:"sort",toEl:Ve,originalEvent:o})),Ue&&Ue.save()):qe!==Do&&qe>=0&&(Je({sortable:this,name:"update",toEl:Ve,originalEvent:o}),Je({sortable:this,name:"sort",toEl:Ve,originalEvent:o})),K.active&&((qe==null||qe===-1)&&(qe=Do,go=Io),Je({sortable:this,name:"end",toEl:Ve,originalEvent:o}),this.save()))),this._nulling()},_nulling:function(){je("nulling",this),fe=A=Ve=X=Co=ge=Zo=yo=wo=ve=$o=qe=go=Do=Io=Ao=Jo=Ue=vo=K.dragged=K.ghost=K.clone=K.active=null,an.forEach(function(o){o.checked=!0}),an.length=Bn=Sn=0},handleEvent:function(o){switch(o.type){case"drop":case"dragend":this._onDrop(o);break;case"dragenter":case"dragover":A&&(this._onDragOver(o),Ca(o));break;case"selectstart":o.preventDefault();break}},toArray:function(){for(var o=[],a,n=this.el.children,t=0,c=n.length,i=this.options;t<c;t++)a=n[t],Ze(a,i.draggable,this.el,!1)&&o.push(a.getAttribute(i.dataIdAttr)||_a(a));return o},sort:function(o,a){var n={},t=this.el;this.toArray().forEach(function(c,i){var m=t.children[i];Ze(m,this.options.draggable,t,!1)&&(n[c]=m)},this),a&&this.captureAnimationState(),o.forEach(function(c){n[c]&&(t.removeChild(n[c]),t.appendChild(n[c]))}),a&&this.animateAll()},save:function(){var o=this.options.store;o&&o.set&&o.set(this)},closest:function(o,a){return Ze(o,a||this.options.draggable,this.el,!1)},option:function(o,a){var n=this.options;if(a===void 0)return n[o];var t=Po.modifyOption(this,o,a);typeof t<"u"?n[o]=t:n[o]=a,o==="group"&&Nt(n)},destroy:function(){je("destroy",this);var o=this.el;o[Ye]=null,re(o,"mousedown",this._onTapStart),re(o,"touchstart",this._onTapStart),re(o,"pointerdown",this._onTapStart),this.nativeDraggable&&(re(o,"dragover",this),re(o,"dragenter",this)),Array.prototype.forEach.call(o.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),on.splice(on.indexOf(this.el),1),this.el=o=null},_hideClone:function(){if(!yo){if(je("hideClone",this),K.eventCanceled)return;G(ge,"display","none"),this.options.removeCloneOnHide&&ge.parentNode&&ge.parentNode.removeChild(ge),yo=!0}},_showClone:function(o){if(o.lastPutMode!=="clone"){this._hideClone();return}if(yo){if(je("showClone",this),K.eventCanceled)return;A.parentNode==fe&&!this.options.group.revertClone?fe.insertBefore(ge,A):Co?fe.insertBefore(ge,Co):fe.appendChild(ge),this.options.group.revertClone&&this.animate(A,ge),G(ge,"display",""),yo=!1}}};function Ca(o){o.dataTransfer&&(o.dataTransfer.dropEffect="move"),o.cancelable&&o.preventDefault()}function cn(o,a,n,t,c,i,m,f){var p,g=o[Ye],u=g.options.onMove,b;return window.CustomEvent&&!ro&&!Fo?p=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(p=document.createEvent("Event"),p.initEvent("move",!0,!0)),p.to=a,p.from=o,p.dragged=n,p.draggedRect=t,p.related=c||a,p.relatedRect=i||Be(a),p.willInsertAfter=f,p.originalEvent=m,o.dispatchEvent(p),u&&(b=u.call(g,p,m)),b}function Tn(o){o.draggable=!1}function wa(){En=!1}function Na(o,a,n){var t=Be(Eo(n.el,0,n.options,!0)),c=gt(n.el,n.options,X),i=10;return a?o.clientX<c.left-i||o.clientY<t.top&&o.clientX<t.right:o.clientY<c.top-i||o.clientY<t.bottom&&o.clientX<t.left}function xa(o,a,n){var t=Be(wn(n.el,n.options.draggable)),c=gt(n.el,n.options,X),i=10;return a?o.clientX>c.right+i||o.clientY>t.bottom&&o.clientX>t.left:o.clientY>c.bottom+i||o.clientX>t.right&&o.clientY>t.top}function Ba(o,a,n,t,c,i,m,f){var p=t?o.clientY:o.clientX,g=t?n.height:n.width,u=t?n.top:n.left,b=t?n.bottom:n.right,E=!1;if(!m){if(f&&tn<g*c){if(!Lo&&(Jo===1?p>u+g*i/2:p<b-g*i/2)&&(Lo=!0),Lo)E=!0;else if(Jo===1?p<u+tn:p>b-tn)return-Jo}else if(p>u+g*(1-c)/2&&p<b-g*(1-c)/2)return Sa(a)}return E=E||m,E&&(p<u+g*i/2||p>b-g*i/2)?p>u+g/2?1:-1:0}function Sa(o){return Ge(A)<Ge(o)?1:-1}function _a(o){for(var a=o.tagName+o.className+o.src+o.href+o.textContent,n=a.length,t=0;n--;)t+=a.charCodeAt(n);return t.toString(36)}function Ea(o){an.length=0;for(var a=o.getElementsByTagName("input"),n=a.length;n--;){var t=a[n];t.checked&&an.push(t)}}function rn(o){return setTimeout(o,0)}function Dn(o){return clearTimeout(o)}ln&&me(document,"touchmove",function(o){(K.active||Oo)&&o.cancelable&&o.preventDefault()}),K.utils={on:me,off:re,css:G,find:st,is:function(o,a){return!!Ze(o,a,o,!1)},extend:ma,throttle:ft,closest:Ze,toggleClass:He,clone:yt,index:Ge,nextTick:rn,cancelNextTick:Dn,detectDirection:wt,getChild:Eo},K.get=function(o){return o[Ye]},K.mount=function(){for(var o=arguments.length,a=new Array(o),n=0;n<o;n++)a[n]=arguments[n];a[0].constructor===Array&&(a=a[0]),a.forEach(function(t){if(!t.prototype||!t.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t));t.utils&&(K.utils=oo(oo({},K.utils),t.utils)),Po.mount(t)})},K.create=function(o,a){return new K(o,a)},K.version=ca;var Se=[],zo,On,An=!1,Un,Fn,mn,jo;function Ta(){function o(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var a in this)a.charAt(0)==="_"&&typeof this[a]=="function"&&(this[a]=this[a].bind(this))}return o.prototype={dragStarted:function(a){var n=a.originalEvent;this.sortable.nativeDraggable?me(document,"dragover",this._handleAutoScroll):this.options.supportPointer?me(document,"pointermove",this._handleFallbackAutoScroll):n.touches?me(document,"touchmove",this._handleFallbackAutoScroll):me(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(a){var n=a.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?re(document,"dragover",this._handleAutoScroll):(re(document,"pointermove",this._handleFallbackAutoScroll),re(document,"touchmove",this._handleFallbackAutoScroll),re(document,"mousemove",this._handleFallbackAutoScroll)),St(),sn(),sa()},nulling:function(){mn=On=zo=An=jo=Un=Fn=null,Se.length=0},_handleFallbackAutoScroll:function(a){this._handleAutoScroll(a,!0)},_handleAutoScroll:function(a,n){var t=this,c=(a.touches?a.touches[0]:a).clientX,i=(a.touches?a.touches[0]:a).clientY,m=document.elementFromPoint(c,i);if(mn=a,n||this.options.forceAutoScrollFallback||Fo||ro||Mo){Mn(a,this.options,m,n);var f=ho(m,!0);An&&(!jo||c!==Un||i!==Fn)&&(jo&&St(),jo=setInterval(function(){var p=ho(document.elementFromPoint(c,i),!0);p!==f&&(f=p,sn()),Mn(a,t.options,p,n)},10),Un=c,Fn=i)}else{if(!this.options.bubbleScroll||ho(m,!0)===no()){sn();return}Mn(a,this.options,ho(m,!1),!1)}}},lo(o,{pluginName:"scroll",initializeByDefault:!0})}function sn(){Se.forEach(function(o){clearInterval(o.pid)}),Se=[]}function St(){clearInterval(jo)}var Mn=ft(function(o,a,n,t){if(a.scroll){var c=(o.touches?o.touches[0]:o).clientX,i=(o.touches?o.touches[0]:o).clientY,m=a.scrollSensitivity,f=a.scrollSpeed,p=no(),g=!1,u;On!==n&&(On=n,sn(),zo=a.scroll,u=a.scrollFn,zo===!0&&(zo=ho(n,!0)));var b=0,E=zo;do{var x=E,T=Be(x),D=T.top,H=T.bottom,R=T.left,q=T.right,ee=T.width,pe=T.height,ie=void 0,ne=void 0,Z=x.scrollWidth,Ce=x.scrollHeight,se=G(x),O=x.scrollLeft,V=x.scrollTop;x===p?(ie=ee<Z&&(se.overflowX==="auto"||se.overflowX==="scroll"||se.overflowX==="visible"),ne=pe<Ce&&(se.overflowY==="auto"||se.overflowY==="scroll"||se.overflowY==="visible")):(ie=ee<Z&&(se.overflowX==="auto"||se.overflowX==="scroll"),ne=pe<Ce&&(se.overflowY==="auto"||se.overflowY==="scroll"));var h=ie&&(Math.abs(q-c)<=m&&O+ee<Z)-(Math.abs(R-c)<=m&&!!O),C=ne&&(Math.abs(H-i)<=m&&V+pe<Ce)-(Math.abs(D-i)<=m&&!!V);if(!Se[b])for(var y=0;y<=b;y++)Se[y]||(Se[y]={});(Se[b].vx!=h||Se[b].vy!=C||Se[b].el!==x)&&(Se[b].el=x,Se[b].vx=h,Se[b].vy=C,clearInterval(Se[b].pid),(h!=0||C!=0)&&(g=!0,Se[b].pid=setInterval((function(){t&&this.layer===0&&K.active._onTouchMove(mn);var F=Se[this.layer].vy?Se[this.layer].vy*f:0,$=Se[this.layer].vx?Se[this.layer].vx*f:0;typeof u=="function"&&u.call(K.dragged.parentNode[Ye],$,F,o,mn,Se[this.layer].el)!=="continue"||ht(Se[this.layer].el,$,F)}).bind({layer:b}),24))),b++}while(a.bubbleScroll&&E!==p&&(E=ho(E,!1)));An=g}},30),_t=function(o){var a=o.originalEvent,n=o.putSortable,t=o.dragEl,c=o.activeSortable,i=o.dispatchSortableEvent,m=o.hideGhostForTarget,f=o.unhideGhostForTarget;if(a){var p=n||c;m();var g=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,u=document.elementFromPoint(g.clientX,g.clientY);f(),p&&!p.el.contains(u)&&(i("spill"),this.onSpill({dragEl:t,putSortable:n}))}};function Rn(){}Rn.prototype={startIndex:null,dragStart:function(o){var a=o.oldDraggableIndex;this.startIndex=a},onSpill:function(o){var a=o.dragEl,n=o.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var t=Eo(this.sortable.el,this.startIndex,this.options);t?this.sortable.el.insertBefore(a,t):this.sortable.el.appendChild(a),this.sortable.animateAll(),n&&n.animateAll()},drop:_t},lo(Rn,{pluginName:"revertOnSpill"});function Pn(){}Pn.prototype={onSpill:function(o){var a=o.dragEl,n=o.putSortable,t=n||this.sortable;t.captureAnimationState(),a.parentNode&&a.parentNode.removeChild(a),t.animateAll()},drop:_t},lo(Pn,{pluginName:"removeOnSpill"}),K.mount(new Ta),K.mount(Pn,Rn);function Da(o){return o==null?o:JSON.parse(JSON.stringify(o))}function Oa(o){e.getCurrentInstance()&&e.onUnmounted(o)}function Aa(o){e.getCurrentInstance()?e.onMounted(o):e.nextTick(o)}let Et=null,Tt=null;function Dt(o=null,a=null){Et=o,Tt=a}function Ua(){return{data:Et,clonedData:Tt}}const Ot=Symbol("cloneElement");function Fa(...o){var a,n;const t=(a=e.getCurrentInstance())==null?void 0:a.proxy;let c=null;const i=o[0];let[,m,f]=o;Array.isArray(e.unref(m))||(f=m,m=null);let p=null;const{immediate:g=!0,clone:u=Da,forceFallback:b,fallbackOnBody:E,customUpdate:x}=(n=e.unref(f))!=null?n:{};function T(O){var V;const{from:h,oldIndex:C,item:y}=O,F=Array.from(h.childNodes);c=b&&!E?F.slice(0,-1):F;const $=e.unref((V=e.unref(m))==null?void 0:V[C]),P=u($);Dt($,P),y[Ot]=P}function D(O){const V=O.item[Ot];if(!Xt(V)){if(Cn(O.item),e.isRef(m)){const h=[...e.unref(m)];m.value=nt(h,O.newDraggableIndex,V);return}nt(e.unref(m),O.newDraggableIndex,V)}}function H(O){const{from:V,item:h,oldIndex:C,oldDraggableIndex:y,pullMode:F,clone:$}=O;if(tt(V,h,C),F==="clone"){Cn($);return}if(e.isRef(m)){const P=[...e.unref(m)];m.value=ot(P,y);return}ot(e.unref(m),y)}function R(O){if(x){x(O);return}const{from:V,item:h,oldIndex:C,oldDraggableIndex:y,newDraggableIndex:F}=O;if(Cn(h),tt(V,h,C),e.isRef(m)){const $=[...e.unref(m)];m.value=et($,y,F);return}et(e.unref(m),y,F)}function q(O){const{newIndex:V,oldIndex:h,from:C,to:y}=O;let F=null;const $=V===h&&C===y;try{if($){let P=null;c?.some((ce,U)=>{if(P&&c?.length!==y.childNodes.length)return C.insertBefore(P,ce.nextSibling),!0;const I=y.childNodes[U];P=y?.replaceChild(ce,I)})}}catch(P){F=P}finally{c=null}e.nextTick(()=>{if(Dt(),F)throw F})}const ee={onUpdate:R,onStart:T,onAdd:D,onRemove:H,onEnd:q};function pe(O){const V=e.unref(i);return O||(O=Qt(V)?Zt(V,t?.$el):V),O&&!oa(O)&&(O=O.$el),O||Wt("Root element not found"),O}function ie(){var O;const V=(O=e.unref(f))!=null?O:{},{immediate:h,clone:C}=V,y=Zn(V,["immediate","clone"]);return at(y,(F,$)=>{na(F)&&(y[F]=(P,...ce)=>{const U=Ua();return ta(P,U),$(P,...ce)})}),ea(m===null?{}:ee,y)}const ne=O=>{O=pe(O),p&&Z.destroy(),p=new K(O,ie())};e.watch(()=>f,()=>{p&&at(ie(),(O,V)=>{p?.option(O,V)})},{deep:!0});const Z={option:(O,V)=>p?.option(O,V),destroy:()=>{p?.destroy(),p=null},save:()=>p?.save(),toArray:()=>p?.toArray(),closest:(...O)=>p?.closest(...O)},Ce=()=>Z?.option("disabled",!0),se=()=>Z?.option("disabled",!1);return Aa(()=>{g&&ne()}),Oa(Z.destroy),So({start:ne,pause:Ce,resume:se},Z)}const In=["update","start","add","remove","choose","unchoose","end","sort","filter","clone","move","change"],Ma=["clone","animation","ghostClass","group","sort","disabled","store","handle","draggable","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","chosenClass","dragClass","ignore","filter","preventOnFilter","easing","setData","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","emptyInsertThreshold","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","modelValue","tag","target","customUpdate",...In.map(o=>`on${o.replace(/^\S/,a=>a.toUpperCase())}`)],Ho=e.defineComponent({name:"VueDraggable",model:{prop:"modelValue",event:"update:modelValue"},props:Ma,emits:["update:modelValue",...In],setup(o,{slots:a,emit:n,expose:t,attrs:c}){const i=In.reduce((u,b)=>{const E=`on${b.replace(/^\S/,x=>x.toUpperCase())}`;return u[E]=(...x)=>n(b,...x),u},{}),m=e.computed(()=>{const u=e.toRefs(o),{modelValue:b}=u,E=Zn(u,["modelValue"]),x=Object.entries(E).reduce((T,[D,H])=>{const R=e.unref(H);return R!==void 0&&(T[D]=R),T},{});return So(So({},i),Kt(So(So({},c),x)))}),f=e.computed({get:()=>o.modelValue,set:u=>n("update:modelValue",u)}),p=e.ref(),g=e.reactive(Fa(o.target||p,f,m));return t(g),()=>{var u;return e.h(o.tag||"div",{ref:p},(u=a?.default)==null?void 0:u.call(a,g))}}}),Ra=[{title:"基础组件",list:[{type:"input",props:{label:"单行文本",width:"100%",placeholder:"请输入",disabled:!1,clearable:!0}},{type:"textarea",props:{label:"多行文本",width:"100%",placeholder:"请输入",rows:3,disabled:!1}},{type:"text",props:{label:"文字",width:"100%",text:"这是一段文字",disabled:!1}},{type:"link",props:{label:"链接",width:"100%",linkText:"点击打开",linkUrl:"https://example.com",linkTarget:"_blank",linkUnderline:!0,disabled:!1}},{type:"input-number",props:{label:"计数器",width:"100%",disabled:!1}},{type:"rate",props:{label:"评分",width:"100%",max:5,allowHalf:!1,clearable:!0,disabled:!1}},{type:"radio",props:{label:"单选框",width:"100%",optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1}},{type:"checkbox",props:{label:"复选框",width:"100%",optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1}},{type:"select",props:{label:"下拉框",width:"100%",placeholder:"请选择",filterable:!1,virtualized:!1,optionsSource:"static",options:[{label:"选项1",value:"1"},{label:"选项2",value:"2"}],disabled:!1,clearable:!0}},{type:"switch",props:{label:"开关",width:"100%",disabled:!1}},{type:"date",props:{label:"日期",width:"100%",placeholder:"选择日期",disabled:!1,clearable:!0}},{type:"time",props:{label:"时间",width:"100%",placeholder:"选择时间",disabled:!1,clearable:!0}},{type:"pca",props:{label:"省市区",width:"100%",placeholder:"请选择",pcaType:"province-city-area",multiple:!1,clearable:!0,disabled:!1}},{type:"datetime",props:{label:"日期时间",width:"100%",placeholder:"选择日期时间",disabled:!1,clearable:!0}}]},{title:"高级组件",list:[{type:"cascader",props:{label:"级联选择",width:"100%",placeholder:"请选择",checkStrictly:!1,optionsSource:"static",options:[{label:"选项1",value:"1",children:[{label:"子选项1-1",value:"1-1"},{label:"子选项1-2",value:"1-2"}]},{label:"选项2",value:"2",children:[{label:"子选项2-1",value:"2-1"}]}],disabled:!1,clearable:!0}},{type:"signature",props:{label:"手写签名",width:"100%",signatureHeight:200,signatureLineWidth:2,signaturePenColor:"#000000",signatureBackgroundColor:"#ffffff",clearable:!0,disabled:!1}},{type:"upload",props:{label:"文件上传",width:"100%",action:"",name:"file",multiple:!1,limit:5,listType:"text",autoUpload:!1,showFileList:!0,withCredentials:!1,uploadHeadersJson:"{}",uploadDataJson:"{}",disabled:!1}},{type:"sub-form",props:{label:"子表单",width:"100%",showIndex:!0,showAction:!0,disabled:!1},children:[]}]},{title:"布局组件",list:[{type:"group",props:{label:"分组",width:"100%"},children:[]},{type:"grid",props:{label:"栅格布局",width:"100%",gutter:20},children:[{id:"",type:"grid-col",props:{label:"列",span:12},children:[]},{id:"",type:"grid-col",props:{label:"列",span:12},children:[]}]}]}],Pa={class:"left-panel"},Ia={class:"group-title"},$a={class:"component-label"},Ja=e.defineComponent({__name:"LeftPanel",props:{componentGroups:{}},setup(o){const a=o,n=f=>f.map(p=>({title:p.title,list:[...p.list]})),t=f=>n(f??Ra),c=e.ref(t(a.componentGroups));e.watch(()=>a.componentGroups,f=>{c.value=t(f)},{deep:!0});const i={input:Q.Edit,textarea:Q.Document,text:Q.Tickets,link:Q.Link,"input-number":Q.List,rate:Q.Star,radio:Q.CircleCheck,checkbox:Q.Finished,select:Q.Select,pca:Q.Location,switch:Q.SwitchButton,date:Q.Calendar,time:Q.Clock,datetime:Q.Calendar,cascader:Q.Select,signature:Q.EditPen,upload:Q.UploadFilled,group:Q.Postcard,grid:Q.Grid,"sub-form":Q.Postcard},m=f=>f?i[f]:null;return(f,p)=>{const g=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock("div",Pa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(u,b)=>(e.openBlock(),e.createElementBlock("div",{key:b,class:"component-group"},[e.createElementVNode("div",Ia,e.toDisplayString(u.title),1),e.createVNode(e.unref(Ho),{modelValue:u.list,"onUpdate:modelValue":E=>u.list=E,group:{name:"form-builder",pull:"clone",put:!1},sort:!1,clone:e.unref(Rt),"item-key":"type",class:"component-list"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,(E,x)=>(e.openBlock(),e.createElementBlock("div",{key:`${E.type}-${x}`,class:"component-item"},[m(E.type)?(e.openBlock(),e.createBlock(g,{key:0,class:"component-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m(E.type))))]),_:2},1024)):e.createCommentVNode("",!0),e.createElementVNode("span",$a,e.toDisplayString(E.props?.label||""),1)]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","clone"])]))),128))])}}}),bo=(o,a)=>{const n=o.__vccOpts||o;for(const[t,c]of a)n[t]=c;return n},La=bo(Ja,[["__scopeId","data-v-9d6dfcb8"]]),za=["data-ff-id"],ja={key:0,class:"item-actions"},Ha={key:1,class:"grid-layout-item"},Ya={class:"group-header"},qa={class:"group-title"},Wa={key:0,class:"group-empty"},Ga={key:3,class:"sub-form-layout-item"},Ka={class:"ff-label-inline"},Xa={class:"ff-label-text"},Qa={class:"sub-form-table"},Za={class:"sub-form-header-row"},va={key:0,class:"sub-form-cell cell-index"},el=["onClick"],ol={class:"cell-title"},nl={key:0,class:"cell-actions"},tl={key:0,class:"sub-form-empty"},al={class:"sub-form-body-row"},ll={key:0,class:"sub-form-cell cell-index"},dl={class:"sub-form-columns"},cl=["onClick"],rl={class:"cell-control"},il={class:"ff-text-preview-content"},ml=["textContent"],sl={class:"ff-label-inline"},pl={class:"ff-label-text"},ul={class:"ff-text-preview-content"},fl=bo(e.defineComponent({name:"FormItem",__name:"FormItem",props:{element:{}},emits:["init-grid","update-children"],setup(o,{emit:a}){const t=o.element,{selectedId:c,setSelected:i,deleteComponent:m,duplicateComponent:f}=Vn(),p=a,g=e.computed(()=>c.value===t.id),u=U=>U.type==="grid-col",b=U=>{if(typeof U=="number"&&Number.isFinite(U)&&!(U<=0))return`${U}px`},E=e.computed(()=>b(t.props.labelWidth)),x=e.ref([]),T=e.ref(!1),D=U=>U==="radio"||U==="checkbox"||U==="select"||U==="cascader";(()=>{const U=e.ref(!1),I=e.ref(null),ae=()=>{I.value&&(I.value.abort(),I.value=null)},Fe=()=>{if(U.value||!D(t.type)||(t.props.optionsSource??"static")==="static")return;const _e=t.props.remoteOptions;if(!_e||!_e.url)return;U.value=!0,ae();const xe=new AbortController;I.value=xe;const Pe={url:_e.url,method:_e.method||"GET",paramsJson:_e.paramsJson,headersJson:_e.headersJson,dataPath:_e.dataPath,labelKey:_e.labelKey||"label",valueKey:_e.valueKey||"value",childrenKey:_e.childrenKey};T.value=!0,Wn(Pe,xe.signal).then(Ie=>{xe.signal.aborted||(x.value=Ie)}).catch(Ie=>{Ie instanceof DOMException&&Ie.name==="AbortError"||(x.value=[])}).finally(()=>{xe.signal.aborted||(T.value=!1)})};e.watchEffect(()=>{if(!D(t.type)){ae(),x.value=[],T.value=!1,U.value=!1;return}if((t.props.optionsSource??"static")==="static"){ae(),x.value=Array.isArray(t.props.options)?t.props.options:[],T.value=!1,U.value=!1;return}U.value||(x.value=[],T.value=!1)}),e.watch(()=>t.props.remoteOptions,()=>{ae(),x.value=[],T.value=!1,U.value=!1},{deep:!0}),e.onMounted(()=>Fe()),e.onBeforeUnmount(()=>ae())})();const R=e.ref(!1);e.onMounted(()=>{R.value||t.type!=="grid"||(t.children||[]).filter(u).length>0||(R.value=!0,p("init-grid",{gridId:t.id,legacyChildren:t.children||[]}))});const q=e.computed(()=>t.type!=="grid"?[]:(t.children||[]).filter(u)),ee=U=>{if(!U||typeof U!="object")return!1;const I=U;return typeof I.id=="string"&&typeof I.type=="string"},pe=(U,I)=>{const ae=Array.isArray(I)?I.filter(ee):[];p("update-children",{id:U,children:ae})},ie=(U,I)=>{const ae=Array.isArray(I)?I.filter(ee):[];p("update-children",{id:U,children:ae})},ne=(U,I)=>{const ae=Array.isArray(I)?I.filter(ee):[];p("update-children",{id:U,children:ae})},Z=U=>{const I=U.props.width;return I==="25%"||I==="33.33%"||I==="50%"||I==="66.66%"||I==="75%"||I==="100%"?{width:I}:{width:"100%"}},Ce=U=>({input:"单行文本",textarea:"多行文本",text:"文字",link:"链接","input-number":"计数器",rate:"评分",radio:"单选框",checkbox:"复选框",select:"下拉框",switch:"开关",date:"日期",time:"时间",datetime:"日期时间",cascader:"级联选择",pca:"省市区",signature:"手写签名",upload:"上传",group:"分组",grid:"栅格","grid-col":"列","sub-form":"子表单"})[U]??"字段",se=U=>{const I=U.item;if(!(I instanceof HTMLElement))return;const ae=I.dataset.ffId;typeof ae=="string"&&ae.trim()&&i(ae)},O=U=>{p("init-grid",U)},V=U=>{p("update-children",U)},h=e.computed(()=>{const U=t.props.defaultValue;return typeof U=="string"?U:typeof U=="number"||typeof U=="boolean"?String(U):""}),C=e.computed(()=>{const U=t.props.defaultValue;return typeof U=="string"&&U.trim()?U:null}),y=e.computed(()=>{const U=t.props.defaultValue;return typeof U=="number"?U:void 0}),F=e.computed(()=>{const U=t.props.defaultValue;return typeof U=="boolean"?U:!1}),$=e.computed(()=>{const U=t.props.defaultValue;return typeof U=="string"||typeof U=="number"?U:void 0}),P=e.computed(()=>{const U=t.props.defaultValue;return Array.isArray(U)?U.filter(I=>typeof I=="string"||typeof I=="number"):[]}),ce=e.computed(()=>{const U=t.props.defaultValue;if(!Array.isArray(U))return[];const I=[];for(const ae of U){if(!Array.isArray(ae))continue;const Fe=ae.filter(Le=>typeof Le=="string"||typeof Le=="number");Fe.length>0&&I.push(Fe)}return I});return(U,I)=>{const ae=e.resolveComponent("el-icon"),Fe=e.resolveComponent("FormItem",!0),Le=e.resolveComponent("el-col"),_e=e.resolveComponent("el-row"),xe=e.resolveComponent("el-tooltip"),Pe=e.resolveComponent("el-input"),Ie=e.resolveComponent("el-link"),io=e.resolveComponent("el-input-number"),ko=e.resolveComponent("el-option"),mo=e.resolveComponent("el-select"),so=e.resolveComponent("el-radio"),eo=e.resolveComponent("el-radio-group"),N=e.resolveComponent("el-checkbox"),S=e.resolveComponent("el-checkbox-group"),M=e.resolveComponent("el-switch"),oe=e.resolveComponent("el-date-picker"),v=e.resolveComponent("el-time-picker"),te=e.resolveComponent("el-cascader"),le=e.resolveComponent("el-button"),he=e.resolveComponent("el-upload"),Oe=e.resolveComponent("el-form-item"),We=e.resolveComponent("el-rate"),po=e.resolveComponent("el-select-v2");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["form-item-wrapper",{active:g.value}]),"data-ff-id":e.unref(t).id,onClick:I[4]||(I[4]=e.withModifiers(_=>e.unref(i)(e.unref(t).id),["stop"]))},[g.value?(e.openBlock(),e.createElementBlock("div",ja,[e.createVNode(ae,{class:"copy-btn",onClick:I[0]||(I[0]=e.withModifiers(_=>e.unref(f)(e.unref(t).id),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.CopyDocument))]),_:1}),e.createVNode(ae,{class:"delete-btn",onClick:I[1]||(I[1]=e.withModifiers(_=>e.unref(m)(e.unref(t).id),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Delete))]),_:1})])):e.createCommentVNode("",!0),e.unref(t).type==="grid"?(e.openBlock(),e.createElementBlock("div",Ha,[e.createVNode(_e,{gutter:e.unref(t).props.gutter??20,class:"grid-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(q.value,(_,be)=>(e.openBlock(),e.createBlock(Le,{key:_.id||be,span:_.props.span??12,class:"grid-col"},{default:e.withCtx(()=>[e.createVNode(e.unref(Ho),{"model-value":_.children||[],"onUpdate:modelValue":we=>pe(_.id,we),onEnd:se,group:"form-builder","item-key":"id",class:"grid-dropzone","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.children||[],we=>(e.openBlock(),e.createBlock(Fe,{key:we.id,element:we,onInitGrid:O,onUpdateChildren:V},null,8,["element"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["span"]))),128))]),_:1},8,["gutter"])])):e.unref(t).type==="group"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"group-layout-item",style:e.normalizeStyle({width:e.unref(t).props.width??"100%"})},[e.createElementVNode("div",Ya,[e.createElementVNode("span",qa,e.toDisplayString(e.unref(t).props.label),1)]),e.createVNode(e.unref(Ho),{"model-value":e.unref(t).children||[],"onUpdate:modelValue":I[2]||(I[2]=_=>ne(e.unref(t).id,_)),onEnd:se,group:"form-builder","item-key":"id",class:"group-dropzone","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).children||[],_=>(e.openBlock(),e.createBlock(Fe,{key:_.id,element:_,onInitGrid:O,onUpdateChildren:V},null,8,["element"]))),128)),(e.unref(t).children||[]).length===0?(e.openBlock(),e.createElementBlock("div",Wa,"拖拽组件到此处")):e.createCommentVNode("",!0)]),_:1},8,["model-value"])],4)):e.unref(t).type==="sub-form"?(e.openBlock(),e.createElementBlock("div",Ga,[e.createVNode(Oe,{label:e.unref(t).props.label,"label-width":E.value,class:e.normalizeClass({"ff-label-wrap":e.unref(t).props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",Ka,[e.createElementVNode("span",Xa,e.toDisplayString(e.unref(t).props.label),1),e.unref(t).props.description?(e.openBlock(),e.createBlock(xe,{key:0,content:e.unref(t).props.description},{default:e.withCtx(()=>[e.createVNode(ae,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createElementVNode("div",Qa,[e.createElementVNode("div",Za,[e.unref(t).props.showIndex?(e.openBlock(),e.createElementBlock("div",va,"#")):e.createCommentVNode("",!0),e.createVNode(e.unref(Ho),{"model-value":e.unref(t).children||[],"onUpdate:modelValue":I[3]||(I[3]=_=>ie(e.unref(t).id,_)),onEnd:se,group:"form-builder","item-key":"id",class:"sub-form-columns sub-form-draggable","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).children||[],_=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:e.normalizeClass(["sub-form-cell cell-header",{active:e.unref(c)===_.id}]),onClick:e.withModifiers(be=>e.unref(i)(_.id),["stop"])},[e.createElementVNode("span",ol,e.toDisplayString(_.props.label),1),e.unref(c)===_.id?(e.openBlock(),e.createElementBlock("div",nl,[e.createVNode(ae,{class:"copy-btn",onClick:e.withModifiers(be=>e.unref(f)(_.id),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.CopyDocument))]),_:1},8,["onClick"]),e.createVNode(ae,{class:"delete-btn",onClick:e.withModifiers(be=>e.unref(m)(_.id),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Delete))]),_:1},8,["onClick"])])):e.createCommentVNode("",!0)],10,el))),128)),(e.unref(t).children||[]).length===0?(e.openBlock(),e.createElementBlock("div",tl," 拖拽组件到此处作为子表单列 ")):e.createCommentVNode("",!0)]),_:1},8,["model-value"])]),e.createElementVNode("div",al,[e.unref(t).props.showIndex?(e.openBlock(),e.createElementBlock("div",ll,"1")):e.createCommentVNode("",!0),e.createElementVNode("div",dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).children||[],_=>(e.openBlock(),e.createElementBlock("div",{key:_.id,class:"sub-form-cell cell-body",onClick:e.withModifiers(be=>e.unref(i)(_.id),["stop"])},[e.createElementVNode("div",rl,[_.type==="input"?(e.openBlock(),e.createBlock(Pe,{key:0,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="textarea"?(e.openBlock(),e.createBlock(Pe,{key:1,type:"textarea",rows:2,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="text"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-text-preview",style:e.normalizeStyle(Z(_))},[e.createElementVNode("span",il,e.toDisplayString(_.props.text||"文字"),1)],4)):_.type==="link"?(e.openBlock(),e.createElementBlock("div",{key:3,class:"ff-link-preview",style:e.normalizeStyle(Z(_))},[e.createVNode(Ie,{href:_.props.linkUrl||void 0,target:_.props.linkTarget||"_blank",type:"primary",underline:_.props.linkUnderline!==!1?"hover":"never",disabled:_.props.disabled===!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.props.linkText||_.props.linkUrl||"链接"),1)]),_:2},1032,["href","target","underline","disabled"])],4)):_.type==="input-number"?(e.openBlock(),e.createBlock(io,{key:4,"model-value":0,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["style"])):_.type==="select"?(e.openBlock(),e.createBlock(mo,{key:5,"model-value":_.props.multiple===!0?[]:void 0,multiple:_.props.multiple===!0,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],be=>(e.openBlock(),e.createBlock(ko,{key:String(be.value),label:be.label,value:be.value},null,8,["label","value"]))),128))]),_:2},1032,["model-value","multiple","placeholder","style"])):_.type==="radio"?(e.openBlock(),e.createBlock(eo,{key:6,"model-value":void 0,disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],be=>(e.openBlock(),e.createBlock(so,{key:String(be.value),value:be.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(be.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["style"])):_.type==="checkbox"?(e.openBlock(),e.createBlock(S,{key:7,"model-value":[],disabled:"",style:e.normalizeStyle(Z(_))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Array.isArray(_.props.options)?_.props.options:[],be=>(e.openBlock(),e.createBlock(N,{key:String(be.value),value:be.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(be.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["style"])):_.type==="switch"?(e.openBlock(),e.createBlock(M,{key:8,"model-value":!1,disabled:""})):_.type==="date"?(e.openBlock(),e.createBlock(oe,{key:9,"model-value":null,type:"date",placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="time"?(e.openBlock(),e.createBlock(v,{key:10,"model-value":null,placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="pca"?(e.openBlock(),e.createElementBlock("div",{key:11,class:"ff-pca-preview",style:e.normalizeStyle(Z(_))},[...I[5]||(I[5]=[e.createElementVNode("span",{class:"ff-pca-preview-text"},"省市区",-1)])],4)):_.type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:12,class:"ff-signature-preview",style:e.normalizeStyle({...Z(_),height:"80px"})},[...I[6]||(I[6]=[e.createElementVNode("span",{class:"ff-signature-preview-text"},"手写签名",-1)])],4)):_.type==="datetime"?(e.openBlock(),e.createBlock(oe,{key:13,"model-value":null,type:"datetime",placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_))},null,8,["placeholder","style"])):_.type==="cascader"?(e.openBlock(),e.createBlock(te,{key:14,"model-value":_.props.multiple===!0?[]:[],placeholder:_.props.placeholder,disabled:"",style:e.normalizeStyle(Z(_)),options:Array.isArray(_.props.options)?_.props.options:[],props:{multiple:_.props.multiple===!0}},null,8,["model-value","placeholder","style","options","props"])):_.type==="upload"?(e.openBlock(),e.createBlock(he,{key:15,action:"","auto-upload":!1,"show-file-list":!1,disabled:""},{default:e.withCtx(()=>[e.createVNode(le,{disabled:"",type:"primary"},{default:e.withCtx(()=>[...I[7]||(I[7]=[e.createTextVNode("选择文件",-1)])]),_:1})]),_:1})):(e.openBlock(),e.createElementBlock("span",{key:16,class:"cell-placeholder",textContent:e.toDisplayString(Ce(_.type))},null,8,ml))])],8,cl))),128))])])])]),_:1},8,["label","label-width","class"])])):(e.openBlock(),e.createBlock(Oe,{key:4,label:e.unref(t).props.label,required:e.unref(t).props.required,"label-width":E.value,class:e.normalizeClass({"ff-label-wrap":e.unref(t).props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",sl,[e.createElementVNode("span",pl,e.toDisplayString(e.unref(t).props.label),1),e.unref(t).props.description?(e.openBlock(),e.createBlock(xe,{key:0,content:e.unref(t).props.description},{default:e.withCtx(()=>[e.createVNode(ae,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.unref(t).type==="input"?(e.openBlock(),e.createBlock(Pe,{key:0,"model-value":h.value,placeholder:e.unref(t).props.placeholder,clearable:e.unref(t).props.clearable,disabled:e.unref(t).props.disabled,style:e.normalizeStyle({width:e.unref(t).props.width}),readonly:""},null,8,["model-value","placeholder","clearable","disabled","style"])):e.unref(t).type==="textarea"?(e.openBlock(),e.createBlock(Pe,{key:1,"model-value":h.value,type:"textarea",rows:e.unref(t).props.rows,placeholder:e.unref(t).props.placeholder,disabled:e.unref(t).props.disabled,style:e.normalizeStyle({width:e.unref(t).props.width}),readonly:""},null,8,["model-value","rows","placeholder","disabled","style"])):e.unref(t).type==="text"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-text-preview",style:e.normalizeStyle({width:e.unref(t).props.width,opacity:e.unref(t).props.disabled===!0?.6:1})},[e.createElementVNode("span",ul,e.toDisplayString(e.unref(t).props.text||"文字"),1)],4)):e.unref(t).type==="link"?(e.openBlock(),e.createElementBlock("div",{key:3,class:"ff-link-preview",style:e.normalizeStyle({width:e.unref(t).props.width})},[e.createVNode(Ie,{href:e.unref(t).props.linkUrl||void 0,target:e.unref(t).props.linkTarget||"_blank",type:"primary",underline:e.unref(t).props.linkUnderline!==!1?"hover":"never",disabled:e.unref(t).props.disabled===!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).props.linkText||e.unref(t).props.linkUrl||"链接"),1)]),_:1},8,["href","target","underline","disabled"])],4)):e.unref(t).type==="input-number"?(e.openBlock(),e.createBlock(io,{key:4,"model-value":y.value,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},null,8,["model-value","style"])):e.unref(t).type==="rate"?(e.openBlock(),e.createBlock(We,{key:5,"model-value":y.value??0,disabled:"",max:e.unref(t).props.max??5,"allow-half":e.unref(t).props.allowHalf===!0},null,8,["model-value","max","allow-half"])):e.unref(t).type==="radio"?(e.openBlock(),e.createBlock(eo,{key:6,"model-value":$.value,disabled:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,_=>(e.openBlock(),e.createBlock(so,{key:String(_.value),value:_.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"])):e.unref(t).type==="checkbox"?(e.openBlock(),e.createBlock(S,{key:7,"model-value":P.value,disabled:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,_=>(e.openBlock(),e.createBlock(N,{key:String(_.value),value:_.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"])):e.unref(t).type==="select"&&e.unref(t).props.virtualized===!0?(e.openBlock(),e.createBlock(po,{key:8,"model-value":e.unref(t).props.multiple===!0?P.value:$.value,multiple:e.unref(t).props.multiple===!0,placeholder:e.unref(t).props.placeholder,filterable:e.unref(t).props.filterable===!0,clearable:e.unref(t).props.clearable,options:x.value,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},null,8,["model-value","multiple","placeholder","filterable","clearable","options","style"])):e.unref(t).type==="select"?(e.openBlock(),e.createBlock(mo,{key:9,"model-value":e.unref(t).props.multiple===!0?P.value:$.value,multiple:e.unref(t).props.multiple===!0,placeholder:e.unref(t).props.placeholder,filterable:e.unref(t).props.filterable===!0,clearable:e.unref(t).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,_=>(e.openBlock(),e.createBlock(ko,{key:String(_.value),label:_.label,value:_.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","multiple","placeholder","filterable","clearable","style"])):e.unref(t).type==="switch"?(e.openBlock(),e.createBlock(M,{key:10,"model-value":F.value,disabled:""},null,8,["model-value"])):e.unref(t).type==="date"?(e.openBlock(),e.createBlock(oe,{key:11,"model-value":C.value,type:"date","value-format":"YYYY-MM-DD",placeholder:e.unref(t).props.placeholder,clearable:e.unref(t).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(t).type==="time"?(e.openBlock(),e.createBlock(v,{key:12,"model-value":C.value,"value-format":"HH:mm:ss",placeholder:e.unref(t).props.placeholder,clearable:e.unref(t).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(t).type==="pca"?(e.openBlock(),e.createElementBlock("div",{key:13,class:"ff-pca-preview",style:e.normalizeStyle({width:e.unref(t).props.width})},[...I[8]||(I[8]=[e.createElementVNode("span",{class:"ff-pca-preview-text"},"省市区",-1)])],4)):e.unref(t).type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:14,class:"ff-signature-preview",style:e.normalizeStyle({width:e.unref(t).props.width,height:"80px"})},[...I[9]||(I[9]=[e.createElementVNode("span",{class:"ff-signature-preview-text"},"手写签名",-1)])],4)):e.unref(t).type==="datetime"?(e.openBlock(),e.createBlock(oe,{key:15,"model-value":C.value,type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:e.unref(t).props.placeholder,clearable:e.unref(t).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width})},null,8,["model-value","placeholder","clearable","style"])):e.unref(t).type==="cascader"?(e.openBlock(),e.createBlock(te,{key:16,"model-value":e.unref(t).props.multiple===!0?ce.value:P.value,placeholder:e.unref(t).props.placeholder,clearable:e.unref(t).props.clearable,disabled:"",style:e.normalizeStyle({width:e.unref(t).props.width}),options:x.value,props:{multiple:e.unref(t).props.multiple===!0,checkStrictly:e.unref(t).props.checkStrictly===!0}},null,8,["model-value","placeholder","clearable","style","options","props"])):e.unref(t).type==="upload"?(e.openBlock(),e.createBlock(he,{key:17,action:e.unref(t).props.action||"",name:e.unref(t).props.name||"file",accept:e.unref(t).props.accept,multiple:e.unref(t).props.multiple===!0,limit:e.unref(t).props.limit,"list-type":e.unref(t).props.listType||"text","auto-upload":e.unref(t).props.autoUpload===!0,"show-file-list":e.unref(t).props.showFileList!==!1,"with-credentials":e.unref(t).props.withCredentials===!0,disabled:""},{default:e.withCtx(()=>[e.createVNode(le,{type:"primary"},{default:e.withCtx(()=>[...I[10]||(I[10]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1},8,["action","name","accept","multiple","limit","list-type","auto-upload","show-file-list","with-credentials"])):e.createCommentVNode("",!0)]),_:1},8,["label","required","label-width","class"]))],10,za)}}}),[["__scopeId","data-v-7667a53c"]]),hl={key:0,class:"empty-placeholder"},yl=bo(e.defineComponent({__name:"CenterCanvas",setup(o){const{formList:a,formConfig:n,setSelected:t}=Vn(),c=u=>{const b=new Set(a.map(x=>x.id));a.length=0,a.push(...u);const E=u.filter(x=>!b.has(x.id));if(E.length===1){const x=E[0];x&&t(x.id)}},i=u=>{const b=u.item;if(!(b instanceof HTMLElement))return;const E=b.dataset.ffId;typeof E=="string"&&E.trim()&&t(E)},m=(u,b)=>{for(const E of u){if(E.id===b)return E;if(E.children?.length){const x=m(E.children,b);if(x)return x}}},f=u=>{const b=m(a,u.gridId);if(!b||b.type!=="grid"||(b.children||[]).filter(T=>T.type==="grid-col").length>0)return;const x=Array.isArray(u.legacyChildren)?u.legacyChildren:[];b.children=[{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:x.filter(T=>T.type!=="grid-col")},{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:[]}]},p=u=>{const b=m(a,u.id);b&&(b.children=u.children)},g=()=>{t(void 0)};return(u,b)=>{const E=e.resolveComponent("el-empty"),x=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",{class:"center-canvas",onClick:g},[e.createVNode(x,{class:"canvas-form","label-position":e.unref(n).labelPosition,"label-width":e.unref(n).labelWidth+"px",size:e.unref(n).size},{default:e.withCtx(()=>[e.createVNode(e.unref(Ho),{"model-value":e.unref(a),"onUpdate:modelValue":c,onEnd:i,group:"form-builder","item-key":"id",class:"draggable-area","ghost-class":"ghost",animation:200},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),T=>(e.openBlock(),e.createBlock(fl,{key:T.id,element:T,onInitGrid:f,onUpdateChildren:p},null,8,["element"]))),128))]),_:1},8,["model-value"]),e.unref(a).length===0?(e.openBlock(),e.createElementBlock("div",hl,[e.createVNode(E,{description:"拖拽左侧组件到此处","image-size":120})])):e.createCommentVNode("",!0)]),_:1},8,["label-position","label-width","size"])])}}}),[["__scopeId","data-v-f940c6e1"]]),gl={class:"rules-toolbar"},bl={class:"rule-title"},kl={class:"rule-section"},Vl={class:"rule-header-row"},Cl={class:"rule-section"},wl={class:"rule-header-row"},Nl=bo(e.defineComponent({name:"VisibilityRulesDialog",__name:"VisibilityRulesDialog",props:{modelValue:{type:Boolean},rules:{},fieldOptions:{}},emits:["update:modelValue","save"],setup(o,{emit:a}){const n=o,t=a,c=e.computed({get:()=>n.modelValue,set:N=>t("update:modelValue",N)}),i=e.ref([]),m=e.ref([]),f=e.computed(()=>Array.isArray(n.fieldOptions)?n.fieldOptions:[]),p=e.computed(()=>f.value.filter(N=>N.componentType!=="sub-form")),g=e.computed(()=>{const N={};for(const S of f.value)N[S.value]=S;return N}),u=N=>g.value[N.field]?.kind??"string",b=N=>{const S=g.value[N.field];return Array.isArray(S?.options)?S.options:[]},E=N=>g.value[N.field]?.componentType??"",x=N=>N==="eq"||N==="neq"||N==="gt"||N==="gte"||N==="lt"||N==="lte",T=N=>{try{return JSON.parse(JSON.stringify(N))}catch{return[]}},D=N=>`${N}_${Math.random().toString(36).slice(2,10)}`,H=()=>({id:D("cond"),field:"",operator:"eq",value:""}),R=()=>({id:D("act"),field:"",action:"show"}),q=()=>({id:D("rule"),logic:"any",conditions:[H()],actions:[R()]});e.watch(()=>c.value,N=>{if(!N)return;const S=T(Array.isArray(n.rules)?n.rules:[]);i.value=S,m.value=S.map(M=>M.id)},{immediate:!0}),e.watch(()=>n.rules,N=>{if(!c.value)return;const S=T(Array.isArray(N)?N:[]);i.value=S,m.value=S.map(M=>M.id)},{deep:!0});const ee=()=>{const N=[...i.value,q()];i.value=N,m.value=N.map(S=>S.id)},pe=N=>{const S=[...i.value];S.splice(N,1),i.value=S,m.value=S.map(M=>M.id)},ie=()=>{i.value=[],m.value=[]},ne=(N,S)=>{const M=i.value[N];if(!M)return;const oe=[...M.conditions],v=typeof S=="number"?S+1:oe.length;oe.splice(v,0,H()),M.conditions=oe},Z=(N,S)=>{const M=i.value[N];if(!M||M.conditions.length<=1)return;const oe=[...M.conditions];oe.splice(S,1),M.conditions=oe},Ce=(N,S)=>{const M=i.value[N];if(!M)return;const oe=[...M.actions],v=typeof S=="number"?S+1:oe.length;oe.splice(v,0,R()),M.actions=oe},se=(N,S)=>{const M=i.value[N];if(!M||M.actions.length<=1)return;const oe=[...M.actions];oe.splice(S,1),M.actions=oe},O=N=>N==="is_empty"||N==="not_empty",V=N=>{if(!(N.operator==="eq"||N.operator==="neq")||u(N)!=="string")return!1;const M=g.value[N.field];return!M||!(M.componentType==="radio"||M.componentType==="select"||M.componentType==="pca")?!1:b(N).length>0},h=N=>{const S=N.value;return typeof S=="string"||typeof S=="number"?S:void 0},C=(N,S)=>{N.value=S},y=N=>{if(!(N.operator==="contains"||N.operator==="not_contains")||u(N)!=="array")return!1;const M=g.value[N.field];return!M||!(M.componentType==="checkbox"||M.componentType==="select"||M.componentType==="cascader"||M.componentType==="pca")?!1:b(N).length>0},F=N=>{const S=N.value;return typeof S=="string"||typeof S=="number"?S:void 0},$=(N,S)=>{N.value=S},P=N=>{const S=E(N);if(!(S==="radio"||S==="select"||S==="pca"))return!1;const M=u(N);return M==="string"||M==="number"?b(N).length>0:!1},ce=N=>{const S=E(N);if(S==="upload"||S==="signature")return[{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];const M=u(N);if(M==="boolean")return[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];if(M==="number"){const v=[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"大于",value:"gt"},{label:"大于等于",value:"gte"},{label:"小于",value:"lt"},{label:"小于等于",value:"lte"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];return P(N)&&v.splice(6,0,{label:"在集合内",value:"in"},{label:"不在集合内",value:"not_in"}),v}if(M==="array")return[{label:"包含",value:"contains"},{label:"不包含",value:"not_contains"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];const oe=[{label:"等于",value:"eq"},{label:"不等于",value:"neq"},{label:"包含",value:"contains"},{label:"不包含",value:"not_contains"},{label:"为空",value:"is_empty"},{label:"不为空",value:"not_empty"}];return P(N)&&oe.splice(4,0,{label:"在集合内",value:"in"},{label:"不在集合内",value:"not_in"}),oe},U=N=>ce(N)[0]?.value??"eq",I=N=>{const S=ce(N);if(new Set(S.map(v=>v.value)).has(N.operator)||(N.operator=U(N)),O(N.operator)){N.value=void 0;return}const oe=u(N);if(oe==="boolean"){typeof N.value!="boolean"&&(N.value=!1);return}if(oe==="number"){if(N.operator==="in"||N.operator==="not_in"){Array.isArray(N.value)||(N.value=[]);return}typeof N.value!="number"&&(N.value=void 0);return}if(N.operator==="in"||N.operator==="not_in"){Array.isArray(N.value)||(N.value=[]);return}if(oe==="array"){Array.isArray(N.value)&&(N.value=N.value[0]);return}},ae=N=>{I(N)},Fe=N=>{I(N)},Le=N=>N.value===!0,_e=(N,S)=>{N.value=S===!0},xe=N=>{const S=N.value;if(typeof S=="number")return S;if(typeof S=="string"&&S.trim()!==""){const M=Number(S);return Number.isFinite(M)?M:void 0}},Pe=(N,S)=>{N.value=typeof S=="number"&&Number.isFinite(S)?S:void 0},Ie=N=>{const S=N.value;return Array.isArray(S)?S.map(M=>String(M)):S==null?[]:[String(S)]},io=(N,S)=>{const M=Array.isArray(S)?S.map(v=>String(v)):[];if(u(N)==="number"){const v=[];for(const te of M){const le=te.trim();if(!le)continue;const he=Number(le);Number.isFinite(he)&&v.push(he)}N.value=v;return}N.value=M.filter(v=>v.trim()!=="")},ko=N=>{const S=N.value;return S==null?"":Array.isArray(S)?S.map(M=>String(M)).join(", "):String(S)},mo=(N,S)=>{N.value=S},so=N=>{const S=[];for(const M of N){const oe=(M.conditions||[]).filter(te=>typeof te.field=="string"&&te.field.trim()).map(te=>{const le={...te,field:te.field.trim(),operator:te.operator};if(I(le),O(le.operator))return le.value=void 0,le;const he=le.value;return he===void 0?le:Array.isArray(he)?(le.value=he.filter(Oe=>typeof Oe=="string"||typeof Oe=="number"),le):(typeof he=="string"||typeof he=="number"||typeof he=="boolean"||he===null||(le.value=void 0),le)}),v=(M.actions||[]).filter(te=>typeof te.field=="string"&&te.field.trim()).map(te=>{const le=te.action==="hide"?"hide":"show";return{id:te.id||D("act"),field:te.field.trim(),action:le}});oe.length===0||v.length===0||S.push({id:M.id||D("rule"),logic:M.logic==="all"?"all":"any",conditions:oe,actions:v})}return S},eo=()=>{const N=so(i.value);if(i.value.length>0&&N.length===0){$e.ElMessage.warning("请至少配置一个完整规则(包含条件与动作)");return}t("save",N),c.value=!1};return(N,S)=>{const M=e.resolveComponent("el-button"),oe=e.resolveComponent("el-empty"),v=e.resolveComponent("el-option"),te=e.resolveComponent("el-select"),le=e.resolveComponent("el-table-column"),he=e.resolveComponent("el-input"),Oe=e.resolveComponent("el-input-number"),We=e.resolveComponent("el-table"),po=e.resolveComponent("el-collapse-item"),_=e.resolveComponent("el-collapse"),be=e.resolveComponent("el-dialog");return e.openBlock(),e.createBlock(be,{modelValue:c.value,"onUpdate:modelValue":S[2]||(S[2]=we=>c.value=we),title:"字段显隐规则",width:"920px","destroy-on-close":"","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(M,{onClick:S[1]||(S[1]=we=>c.value=!1)},{default:e.withCtx(()=>[...S[11]||(S[11]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(M,{type:"primary",onClick:eo},{default:e.withCtx(()=>[...S[12]||(S[12]=[e.createTextVNode("保存",-1)])]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",gl,[e.createVNode(M,{type:"primary",onClick:ee},{default:e.withCtx(()=>[...S[3]||(S[3]=[e.createTextVNode("新增规则",-1)])]),_:1}),e.createVNode(M,{disabled:i.value.length===0,onClick:ie},{default:e.withCtx(()=>[...S[4]||(S[4]=[e.createTextVNode("清空规则",-1)])]),_:1},8,["disabled"])]),i.value.length===0?(e.openBlock(),e.createBlock(oe,{key:0,description:"暂无显隐规则"})):(e.openBlock(),e.createBlock(_,{key:1,modelValue:m.value,"onUpdate:modelValue":S[0]||(S[0]=we=>m.value=we)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(we,Ke)=>(e.openBlock(),e.createBlock(po,{key:we.id,name:we.id},{title:e.withCtx(()=>[e.createElementVNode("div",bl,[e.createElementVNode("span",null,"规则 "+e.toDisplayString(Ke+1),1),e.createVNode(M,{type:"danger",link:"",onClick:e.withModifiers(J=>pe(Ke),["stop"])},{default:e.withCtx(()=>[...S[5]||(S[5]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])])]),default:e.withCtx(()=>[e.createElementVNode("div",kl,[e.createElementVNode("div",Vl,[S[7]||(S[7]=e.createElementVNode("div",{class:"rule-header-label"},"触发条件",-1)),e.createVNode(te,{modelValue:we.logic,"onUpdate:modelValue":J=>we.logic=J,style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(v,{label:"满足所有条件",value:"all"}),e.createVNode(v,{label:"满足任意条件",value:"any"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e.createVNode(M,{style:{"margin-left":"12px"},onClick:J=>ne(Ke)},{default:e.withCtx(()=>[...S[6]||(S[6]=[e.createTextVNode("添加条件",-1)])]),_:1},8,["onClick"])]),e.createVNode(We,{data:we.conditions,border:"","table-layout":"auto",class:"rule-table"},{default:e.withCtx(()=>[e.createVNode(le,{label:"序号",width:"70",align:"center"},{default:e.withCtx(({$index:J})=>[e.createTextVNode(e.toDisplayString(J+1),1)]),_:1}),e.createVNode(le,{label:"字段","min-width":"240"},{default:e.withCtx(({row:J})=>[e.createVNode(te,{modelValue:J.field,"onUpdate:modelValue":Y=>J.field=Y,filterable:"",placeholder:"请选择",style:{width:"100%"},onChange:()=>ae(J)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),e.createVNode(le,{label:"关系",width:"150"},{default:e.withCtx(({row:J})=>[e.createVNode(te,{modelValue:J.operator,"onUpdate:modelValue":Y=>J.operator=Y,style:{width:"100%"},onChange:()=>Fe(J)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ce(J),Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),e.createVNode(le,{label:"内容","min-width":"240"},{default:e.withCtx(({row:J})=>[O(J.operator)?(e.openBlock(),e.createBlock(he,{key:0,disabled:"",placeholder:"无需填写"})):V(J)?(e.openBlock(),e.createBlock(te,{key:1,"model-value":h(J),filterable:"",placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>C(J,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b(J),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:Y},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):u(J)==="boolean"?(e.openBlock(),e.createBlock(te,{key:2,"model-value":Le(J),placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>_e(J,Y)},{default:e.withCtx(()=>[e.createVNode(v,{label:"true",value:!0}),e.createVNode(v,{label:"false",value:!1})]),_:1},8,["model-value","onUpdate:modelValue"])):u(J)==="number"&&x(J.operator)?(e.openBlock(),e.createBlock(Oe,{key:3,"model-value":xe(J),style:{width:"100%"},"onUpdate:modelValue":Y=>Pe(J,Y)},null,8,["model-value","onUpdate:modelValue"])):J.operator==="in"||J.operator==="not_in"?(e.openBlock(),e.createBlock(te,{key:4,"model-value":Ie(J),multiple:"",filterable:"","allow-create":"","default-first-option":"","collapse-tags":"",placeholder:"输入后回车",style:{width:"100%"},"onUpdate:modelValue":Y=>io(J,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b(J),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:String(Y)},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):y(J)?(e.openBlock(),e.createBlock(te,{key:5,"model-value":F(J),filterable:"",placeholder:"请选择",style:{width:"100%"},"onUpdate:modelValue":Y=>$(J,Y)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b(J),Y=>(e.openBlock(),e.createBlock(v,{key:String(Y),label:String(Y),value:Y},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(he,{key:6,"model-value":ko(J),placeholder:"输入内容","onUpdate:modelValue":Y=>mo(J,Y)},null,8,["model-value","onUpdate:modelValue"]))]),_:1}),e.createVNode(le,{label:"操作",width:"120",align:"center"},{default:e.withCtx(({$index:J})=>[e.createVNode(M,{icon:e.unref(Q.CirclePlus),circle:"",plain:"",type:"primary",onClick:Y=>ne(Ke,J)},null,8,["icon","onClick"]),e.createVNode(M,{icon:e.unref(Q.CloseBold),circle:"",plain:"",type:"danger",disabled:we.conditions.length<=1,onClick:Y=>Z(Ke,J)},null,8,["icon","disabled","onClick"])]),_:2},1024)]),_:2},1032,["data"])]),e.createElementVNode("div",Cl,[e.createElementVNode("div",wl,[S[9]||(S[9]=e.createElementVNode("div",{class:"rule-header-label required"},"*",-1)),S[10]||(S[10]=e.createElementVNode("div",{class:"rule-header-label"},"执行动作",-1)),e.createVNode(M,{style:{"margin-left":"12px"},onClick:J=>Ce(Ke)},{default:e.withCtx(()=>[...S[8]||(S[8]=[e.createTextVNode("添加动作",-1)])]),_:1},8,["onClick"])]),e.createVNode(We,{data:we.actions,border:"","table-layout":"auto",class:"rule-table"},{default:e.withCtx(()=>[e.createVNode(le,{label:"序号",width:"70",align:"center"},{default:e.withCtx(({$index:J})=>[e.createTextVNode(e.toDisplayString(J+1),1)]),_:1}),e.createVNode(le,{label:"字段","min-width":"280"},{default:e.withCtx(({row:J})=>[e.createVNode(te,{modelValue:J.field,"onUpdate:modelValue":Y=>J.field=Y,filterable:"",placeholder:"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,Y=>(e.openBlock(),e.createBlock(v,{key:Y.value,label:Y.label,value:Y.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),e.createVNode(le,{label:"执行动作","min-width":"240"},{default:e.withCtx(({row:J})=>[e.createVNode(te,{modelValue:J.action,"onUpdate:modelValue":Y=>J.action=Y,placeholder:"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(v,{label:"显示",value:"show"}),e.createVNode(v,{label:"隐藏",value:"hide"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),e.createVNode(le,{label:"操作",width:"120",align:"center"},{default:e.withCtx(({$index:J})=>[e.createVNode(M,{icon:e.unref(Q.CirclePlus),circle:"",plain:"",type:"primary",onClick:Y=>Ce(Ke,J)},null,8,["icon","onClick"]),e.createVNode(M,{icon:e.unref(Q.CloseBold),circle:"",plain:"",type:"danger",disabled:we.actions.length<=1,onClick:Y=>se(Ke,J)},null,8,["icon","disabled","onClick"])]),_:2},1024)]),_:2},1032,["data"])])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]))]),_:1},8,["modelValue"])}}}),[["__scopeId","data-v-114881ed"]]);let Yo=null;const $n=new Map,At=async()=>Yo||(Yo=(await Promise.resolve().then(()=>Cd)).default,Yo),xl=o=>{Yo=o,$n.clear()},Ut=(o,a,n)=>{const t=[];for(const c of o){const i={label:c.name,value:c.code};n<a&&Array.isArray(c.children)&&c.children.length>0&&(i.children=Ut(c.children,a,n+1)),t.push(i)}return t},xo=async o=>{const a=$n.get(o);if(a)return a;const n=await At(),t=Ut(n,o,1);return $n.set(o,t),t},Bl={class:"right-panel"},Sl={key:0,class:"config-content"},_l={class:"grid-span-list"},El={class:"grid-span-label"},Tl={class:"rule-header"},Dl={key:1,class:"empty-selection"},Ol={class:"config-content"},Al=bo(e.defineComponent({__name:"RightPanel",setup(o){const a=e.ref(new Map);e.onMounted(async()=>{const[d,l,w]=await Promise.all([xo(1),xo(2),xo(3)]);a.value.set(1,d),a.value.set(2,l),a.value.set(3,w)});const{selectedComponent:n,formConfig:t,formList:c}=Vn(),i=e.ref("component"),m=d=>d.type==="grid-col",f=d=>d==="radio"||d==="checkbox"||d==="select"||d==="cascader",p=e.computed(()=>{const d=n.value?.type;return!(!d||d==="upload"||d==="grid"||d==="grid-col"||d==="group"||d==="sub-form"||d==="text"||d==="link")}),g=d=>{if(d.props.remoteOptions)return;const l={url:"",method:"GET",labelKey:"label",valueKey:"value"};d.props.remoteOptions=l},u=d=>{if(Array.isArray(d.props.options)&&d.props.options.length>0)return;const l=[{label:"选项1",value:"1"},{label:"选项2",value:"2"}];d.props.options=l},b=e.ref(""),E=d=>typeof d=="object"&&d!==null&&!Array.isArray(d),x=()=>{const d=n.value;if(!d)return;const l=d.props.field;if(typeof l!="string")return;const w=l.trim();d.props.field=w},T=e.ref(""),D=e.ref("[]"),H=e.computed({get:()=>{const d=n.value;if(!d)return!1;const l=d.props.defaultValue;return typeof l=="boolean"?l:!1},set:d=>{n.value&&(n.value.props.defaultValue=d)}}),R=e.computed({get:()=>{const d=n.value;if(!d)return;const l=d.props.defaultValue;return typeof l=="number"?l:void 0},set:d=>{n.value&&(n.value.props.defaultValue=d)}}),q=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="rate")return 0;const l=d.props.defaultValue;return typeof l=="number"?l:0},set:d=>{const l=n.value;if(!(!l||l.type!=="rate")){if(d<=0){l.props.defaultValue=void 0;return}l.props.defaultValue=d}}}),ee=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="date")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="date"||(l.props.defaultValue=d)}}),pe=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="time")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="time"||(l.props.defaultValue=d)}}),ie=e.computed({get:()=>{const d=n.value;if(!d||d.type!=="datetime")return null;const l=d.props.defaultValue;return typeof l=="string"?l:null},set:d=>{const l=n.value;!l||l.type!=="datetime"||(l.props.defaultValue=d)}}),ne=()=>{const d=n.value;d&&(d.props.defaultValue=ee.value||void 0)},Z=()=>{const d=n.value;d&&(d.props.defaultValue=pe.value||void 0)},Ce=()=>{const d=n.value;d&&(d.props.defaultValue=ie.value||void 0)},se=d=>typeof d=="string"||typeof d=="number"||typeof d=="boolean"||d===null,O=d=>{if(d===void 0)return"";if(typeof d=="string")return d;if(typeof d=="number"||typeof d=="boolean")return String(d);try{return JSON.stringify(d)}catch{return""}},V=()=>{const d=n.value;if(!d)return;const l=T.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const w=JSON.parse(l);if(!se(w)){$e.ElMessage.error("默认值不支持对象或数组"),T.value=O(d.props.defaultValue);return}d.props.defaultValue=w,T.value=O(w)}catch{d.props.defaultValue=l}},h=()=>{const d=n.value;if(!d)return;const l=T.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const w=JSON.parse(l);if(!se(w))return;d.props.defaultValue=w}catch{d.props.defaultValue=l}},C=d=>Array.isArray(d)&&d.every(l=>typeof l=="string"||typeof l=="number"),y=d=>Array.isArray(d)&&d.every(l=>C(l)),F=(d,l)=>{if(d.length!==l.length)return!1;for(let w=0;w<d.length;w++)if(d[w]!==l[w])return!1;return!0},$=(d,l)=>{if(d.length!==l.length)return!1;for(let w=0;w<d.length;w++){const B=d[w],j=l[w];if(!B||!j||!F(B,j))return!1}return!0},P=d=>{if(d.type!=="pca")return;const l=d.props.pcaType??"province-city-area",w=l==="province",B=d.props.multiple===!0,j=d.props.defaultValue;if(w){if(B){C(j)||(d.props.defaultValue=[]);return}if(C(j)){const L=j[0]??void 0;d.props.defaultValue!==L&&(d.props.defaultValue=L);return}if(y(j)){const L=j[0]?.[0]??void 0;d.props.defaultValue!==L&&(d.props.defaultValue=L)}return}const ye=l==="province-city"?2:3,z=L=>L.slice(0,ye);if(B){if(!y(j)){d.props.defaultValue=[];return}const L=j.map(Te=>z(Te));$(j,L)||(d.props.defaultValue=L);return}if(y(j)){const L=j[0]??[],Te=z(L);F(L,Te)||(d.props.defaultValue=Te);return}if(C(j)){const L=z(j);F(j,L)||(d.props.defaultValue=L);return}(!C(d.props.defaultValue)||d.props.defaultValue.length!==0)&&(d.props.defaultValue=[])},ce=()=>{const d=n.value;if(!d||d.type!=="upload"||d.props.multiple===!0)return;const l=d.props.defaultValue;Array.isArray(l)&&(d.props.defaultValue=l[0])},U=e.computed(()=>{const d=n.value;return d&&(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0)?'[[1,2],[3,4]] 或 [["a","b"],["c","d"]]':'["a","b"] 或 [1,2]'}),I=()=>{const d=n.value;d&&P(d)},ae=()=>{const d=n.value;if(d){if(d.type==="pca"){P(d);return}if(d.type==="select"){if(d.props.multiple===!0){C(d.props.defaultValue)||(d.props.defaultValue=[]);return}const l=d.props.defaultValue;C(l)&&(d.props.defaultValue=l[0]??void 0);return}if(d.type==="cascader"){if(d.props.multiple===!0){y(d.props.defaultValue)||(d.props.defaultValue=[]);return}const l=d.props.defaultValue;y(l)&&(d.props.defaultValue=l[0]??[])}}},Fe=()=>{const d=n.value;if(!d)return;const l=D.value.trim();if(!l){d.props.defaultValue=void 0,D.value="[]";return}try{const w=JSON.parse(l);if(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0){if(!y(w)){$e.ElMessage.error("默认值 JSON 必须是二维字符串/数字数组"),D.value=JSON.stringify(y(d.props.defaultValue)?d.props.defaultValue:[],null,2);return}d.props.defaultValue=w,D.value=JSON.stringify(w,null,2);return}if(!C(w)){$e.ElMessage.error("默认值 JSON 必须是字符串/数字数组"),D.value=JSON.stringify(C(d.props.defaultValue)?d.props.defaultValue:[],null,2);return}d.props.defaultValue=w,D.value=JSON.stringify(w,null,2)}catch{$e.ElMessage.error("默认值 JSON 解析失败")}},Le=()=>{const d=n.value;if(!d)return;const l=D.value.trim();if(!l){d.props.defaultValue=void 0;return}try{const w=JSON.parse(l);if(d.type==="cascader"&&d.props.multiple===!0||d.type==="pca"&&(d.props.pcaType??"province-city-area")!=="province"&&d.props.multiple===!0){if(!y(w))return;d.props.defaultValue=w;return}if(!C(w))return;d.props.defaultValue=w}catch{return}},_e=d=>{const l=d.trim();if(!l)return{value:void 0};try{const w=JSON.parse(l);return w==null?{value:void 0}:E(w)?{value:w}:{error:'JSON 必须是对象(例如 {"a":1})'}}catch{return{error:"JSON 解析失败"}}},xe=d=>typeof d=="string"||typeof d=="number",Pe=(d,l)=>l>10||!E(d)||typeof d.label!="string"||!xe(d.value)?!1:d.children!==void 0?Array.isArray(d.children)?d.children.every(w=>Pe(w,l+1)):!1:!0,Ie=d=>Array.isArray(d)&&d.every(l=>Pe(l,1)),io=()=>{if(!n.value||n.value.type!=="cascader")return;const d=b.value.trim();if(!d){n.value.props.options=[];return}try{const l=JSON.parse(d);if(!Ie(l)){$e.ElMessage.error("静态选项 JSON 格式不正确");return}n.value.props.options=l}catch{$e.ElMessage.error("静态选项 JSON 解析失败")}};e.watch(()=>[n.value?.id,n.value?.type,n.value?.props.optionsSource],()=>{const d=n.value;if(!d||!f(d.type))return;const l=d.props.optionsSource??"static";l==="remote"&&g(d),l==="static"&&d.type!=="cascader"&&u(d),d.type==="cascader"&&(b.value=JSON.stringify(d.props.options||[],null,2))},{immediate:!0}),e.watch(()=>[n.value?.id,n.value?.type,n.value?.props.defaultValue,n.value?.props.multiple,n.value?.props.pcaType],()=>{const d=n.value;if(!d)return;const l=d.type;if(l==="checkbox"){const w=d.props.defaultValue;D.value=JSON.stringify(C(w)?w:[],null,2),T.value="";return}if(l==="select"&&d.props.multiple===!0){const w=d.props.defaultValue;D.value=JSON.stringify(C(w)?w:[],null,2),T.value="";return}if(l==="cascader"){const w=d.props.defaultValue;d.props.multiple===!0?D.value=JSON.stringify(y(w)?w:[],null,2):D.value=JSON.stringify(C(w)?w:[],null,2),T.value="";return}if(l==="pca"){P(d);const w=d.props.pcaType??"province-city-area",B=d.props.defaultValue;if(w==="province"){if(d.props.multiple===!0){D.value=JSON.stringify(C(B)?B:[],null,2),T.value="";return}T.value=O(B);return}d.props.multiple===!0?D.value=JSON.stringify(y(B)?B:[],null,2):D.value=JSON.stringify(C(B)?B:[],null,2),T.value="";return}T.value=O(d.props.defaultValue)},{immediate:!0});const ko=e.computed(()=>{const d=n.value;return d?Array.isArray(d.props.options)?d.props.options:[]:[]}),mo=()=>{const d=n.value;if(!d||!f(d.type)||d.type==="cascader")return;u(d);const l=(d.props.options||[]).length+1;d.props.options=[...d.props.options||[],{label:`选项${l}`,value:String(l)}]},so=d=>{const l=n.value;l&&Array.isArray(l.props.options)&&l.props.options.splice(d,1)},eo=e.computed(()=>{if(!n.value||n.value.type!=="grid")return[];const d=n.value,l=(d.children||[]).filter(m);if(l.length>0)return l;const w=Array.isArray(d.children)?d.children:[],B=[{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:w.filter(j=>j.type!=="grid-col")},{id:uo("grid-col"),type:"grid-col",props:{label:"列",span:12},children:[]}];return d.children=B,B}),N=e.computed({get:()=>eo.value.length,set:d=>{if(!n.value||n.value.type!=="grid")return;const l=eo.value,w=Math.max(1,Math.min(4,d||1));if(w===l.length)return;if(w>l.length){const j=w-l.length;for(let ye=0;ye<j;ye++)l.push({id:uo("grid-col"),type:"grid-col",props:{label:"列",span:Math.floor(24/w)},children:[]})}else{const j=l.splice(w),ye=l[l.length-1];if(ye&&j.length)for(const z of j)z.children?.length&&(ye.children=[...ye.children||[],...z.children])}const B=n.value;B.children=l}}),S=()=>{n.value&&(n.value.props.rules||(n.value.props.rules=[]),n.value.props.rules.push({type:"email",message:"格式不正确",trigger:"blur"}))},M=d=>{n.value&&n.value.props.rules&&n.value.props.rules.splice(d,1)},oe=e.ref(!1),v=e.ref("request"),te=e.ref(`{
|
|
2
2
|
"userId": 1
|
|
3
|
-
}`),re=e.ref("{}"),ae=e.ref(!1),ue=e.ref(void 0),Pe=e.ref(void 0);let no;const to=()=>{ue.value=void 0,Pe.value=void 0,te.value="request"},_=d=>d==="input-number"?0:d==="switch"?!1:d==="checkbox"||d==="cascader"?[]:"test_value",ke=()=>{const d={},l=N=>{for(const S of N){if(S.type==="grid"){const ge=(S.children||[]).filter(z=>z.type==="grid-col");for(const z of ge)l(z.children||[]);continue}if(S.type==="grid-col"){l(S.children||[]);continue}if(S.type==="group"){l(S.children||[]);continue}const j=S.props.field?.trim()||S.id;j&&(d[j]=S.props.defaultValue??_(S.type))}};return l(a),JSON.stringify(d,null,2)},we=()=>{to(),v.value=ke(),A.value=!0},_e=()=>{const d=n.value;if(!d)return;const l=d.props.remoteOptions;if(!(!l||!l.url))return{url:l.url,method:l.method||"GET",paramsJson:l.paramsJson,headersJson:l.headersJson,dataPath:l.dataPath,labelKey:l.labelKey||"label",valueKey:l.valueKey||"value",childrenKey:l.childrenKey}},L=async()=>{const d=_e();if(!d){ue.value="请先配置远程接口地址";return}const l=Ie(v.value);if(l.error){ue.value=`表单值:${l.error}`;return}const N=Ie(re.value);if(N.error){ue.value=`全局变量:${N.error}`;return}no?.abort(),no=new AbortController,ae.value=!0,ue.value=void 0,Pe.value=void 0;try{const S=await Jt(d,{formModel:l.value,globalObject:N.value},no.signal);Pe.value=S,te.value="response"}catch(S){if(S instanceof DOMException&&S.name==="AbortError")return;ue.value=S instanceof Error?S.message:"接口测试失败"}finally{ae.value=!1}},Y=d=>{if(d===void 0)return"";try{return JSON.stringify(d,null,2)}catch{return String(d)}},mn=e.computed(()=>{const d=Pe.value;if(!d)return"";const l=d.request,N={url:l.url,method:l.method,headers:l.headers??{},body:l.body,resolvedParams:l.resolvedParams,resolvedParamsRaw:l.resolvedParamsRaw,resolvedHeadersRaw:l.resolvedHeadersRaw};return Y(N)}),sn=e.computed(()=>{const d=Pe.value;if(!d)return"";const l=d.response,N={ok:l.ok,status:l.status,statusText:l.statusText,json:l.json,text:l.text};return Y(N)}),pn=e.computed(()=>{const d=Pe.value;if(!d)return"";const l={extractedData:d.extractedData,mappedOptions:d.mappedOptions};return Y(l)}),s=e.computed(()=>(t.visibilityRules??[]).length),V=e.computed(()=>{const d=s.value;return d>0?`已设置${d}个字段显隐规则`:"添加字段显隐规则"}),G=e.ref(!1),le=()=>{Array.isArray(t.visibilityRules)||(t.visibilityRules=[]),G.value=!0},Ee=d=>{t.visibilityRules=d},Ne=d=>{const l=d.props.field;return typeof l=="string"&&l.trim()?l.trim():d.id},Ve=e.computed(()=>{const d=[],l=new Set,N=z=>{const J=[],De=lo=>{for(const he of lo)(typeof he.value=="string"||typeof he.value=="number")&&J.push(he.value),Array.isArray(he.children)&&he.children.length&&De(he.children)};Array.isArray(z)&&z.length&&De(z);const ao=new Map;for(const lo of J){const he=String(lo);ao.has(he)||ao.set(he,lo)}return Array.from(ao.values())},S=z=>{if(z.type==="radio"||z.type==="checkbox"||z.type==="select")return(z.props.optionsSource??"static")!=="static"?void 0:Array.isArray(z.props.options)?z.props.options.map(J=>J.value):void 0;if(z.type==="cascader")return(z.props.optionsSource??"static")!=="static"?void 0:N(Array.isArray(z.props.options)?z.props.options:[]);if(z.type==="pca"){const J=z.props.pcaType??"province-city-area";return N(rn(J==="province"?1:J==="province-city"?2:3))}},j=z=>z.type==="switch"?"boolean":z.type==="input-number"||z.type==="rate"?"number":z.type==="checkbox"||z.type==="select"&&z.props.multiple===!0||z.type==="cascader"?"array":z.type==="pca"?(z.props.pcaType??"province-city-area")==="province"&&z.props.multiple!==!0?"string":"array":z.type==="upload"||z.type==="sub-form"?"array":"string",ge=z=>{for(const J of z){if(J.type==="grid"){const lo=(J.children||[]).filter(he=>he.type==="grid-col");for(const he of lo)ge(he.children||[]);continue}if(J.type==="grid-col"){ge(J.children||[]);continue}if(J.type==="group"){ge(J.children||[]);continue}if(J.type==="text"||J.type==="link")continue;const De=Ne(J);if(!De||l.has(De))continue;l.add(De);const ao=S(J);d.push({label:`${J.props.label||De}(${De})`,value:De,kind:j(J),componentType:J.type,options:ao})}};return ge(a),d});return(d,l)=>{const N=e.resolveComponent("el-input"),S=e.resolveComponent("el-form-item"),j=e.resolveComponent("el-option"),ge=e.resolveComponent("el-select"),z=e.resolveComponent("el-input-number"),J=e.resolveComponent("el-switch"),De=e.resolveComponent("el-rate"),ao=e.resolveComponent("el-date-picker"),lo=e.resolveComponent("el-time-picker"),he=e.resolveComponent("el-divider"),Ge=e.resolveComponent("el-radio-button"),xo=e.resolveComponent("el-radio-group"),Ke=e.resolveComponent("el-button"),Ho=e.resolveComponent("el-form"),un=e.resolveComponent("el-empty"),Vo=e.resolveComponent("el-tab-pane"),fn=e.resolveComponent("el-tabs"),hn=e.resolveComponent("el-alert"),In=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",wl,[e.createVNode(fn,{modelValue:c.value,"onUpdate:modelValue":l[64]||(l[64]=r=>c.value=r),class:"config-tabs",stretch:""},{default:e.withCtx(()=>[e.createVNode(Vo,{label:"字段属性",name:"component"},{default:e.withCtx(()=>[e.unref(n)?(e.openBlock(),e.createElementBlock("div",Nl,[e.createVNode(Ho,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(S,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.label,"onUpdate:modelValue":l[0]||(l[0]=r=>e.unref(n).props.label=r)},null,8,["modelValue"])]),_:1}),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:0,label:"字段名"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.field,"onUpdate:modelValue":l[1]||(l[1]=r=>e.unref(n).props.field=r),placeholder:"默认使用随机ID",onBlur:E},null,8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:1,label:"描述信息"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.description,"onUpdate:modelValue":l[2]||(l[2]=r=>e.unref(n).props.description=r),placeholder:"输入描述信息"},null,8,["modelValue"])]),_:1})),["grid","grid-col"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:2,label:"组件宽度"},{default:e.withCtx(()=>[e.createVNode(ge,{modelValue:e.unref(n).props.width,"onUpdate:modelValue":l[3]||(l[3]=r=>e.unref(n).props.width=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"25%",value:"25%"}),e.createVNode(j,{label:"33.33%",value:"33.33%"}),e.createVNode(j,{label:"50%",value:"50%"}),e.createVNode(j,{label:"66.66%",value:"66.66%"}),e.createVNode(j,{label:"75%",value:"75%"}),e.createVNode(j,{label:"100%",value:"100%"})]),_:1},8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:3,label:"标签宽度(0或空则跟随表单)"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.labelWidth,"onUpdate:modelValue":l[4]||(l[4]=r=>e.unref(n).props.labelWidth=r),min:0},null,8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:4,label:"标签换行","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.labelWrap,"onUpdate:modelValue":l[5]||(l[5]=r=>e.unref(n).props.labelWrap=r)},null,8,["modelValue"])]),_:1})),h.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.unref(n).type==="switch"?(e.openBlock(),e.createBlock(S,{key:0,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:R.value,"onUpdate:modelValue":l[6]||(l[6]=r=>R.value=r)},null,8,["modelValue"])]),_:1})):e.unref(n).type==="input-number"?(e.openBlock(),e.createBlock(S,{key:1,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:q.value,"onUpdate:modelValue":l[7]||(l[7]=r=>q.value=r)},null,8,["modelValue"])]),_:1})):e.unref(n).type==="rate"?(e.openBlock(),e.createBlock(S,{key:2,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(De,{modelValue:U.value,"onUpdate:modelValue":l[8]||(l[8]=r=>U.value=r),max:e.unref(n).props.max??5,"allow-half":e.unref(n).props.allowHalf===!0,clearable:e.unref(n).props.clearable===!0},null,8,["modelValue","max","allow-half","clearable"])]),_:1})):e.unref(n).type==="date"?(e.openBlock(),e.createBlock(S,{key:3,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(ao,{modelValue:W.value,"onUpdate:modelValue":l[9]||(l[9]=r=>W.value=r),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",clearable:!0,onChange:se},null,8,["modelValue"])]),_:1})):e.unref(n).type==="time"?(e.openBlock(),e.createBlock(S,{key:4,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(lo,{modelValue:oe.value,"onUpdate:modelValue":l[10]||(l[10]=r=>oe.value=r),format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:"选择时间",clearable:!0,onChange:ne},null,8,["modelValue"])]),_:1})):e.unref(n).type==="datetime"?(e.openBlock(),e.createBlock(S,{key:5,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(ao,{modelValue:pe.value,"onUpdate:modelValue":l[11]||(l[11]=r=>pe.value=r),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"选择日期时间",clearable:!0,onChange:Z},null,8,["modelValue"])]),_:1})):e.unref(n).type==="checkbox"||e.unref(n).type==="cascader"||e.unref(n).type==="pca"&&((e.unref(n).props.pcaType??"province-city-area")!=="province"||e.unref(n).props.multiple===!0)||e.unref(n).type==="select"&&e.unref(n).props.multiple===!0?(e.openBlock(),e.createBlock(S,{key:6,label:"默认值(JSON)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:T.value,"onUpdate:modelValue":l[12]||(l[12]=r=>T.value=r),type:"textarea",rows:3,placeholder:de.value,onInput:Ue,onBlur:ce},null,8,["modelValue","placeholder"])]),_:1})):(e.openBlock(),e.createBlock(S,{key:7,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:g.value,"onUpdate:modelValue":l[13]||(l[13]=r=>g.value=r),placeholder:"可直接输入字符串;也支持输入 1 / true / null 等 JSON 值",onInput:k,onBlur:$},null,8,["modelValue"])]),_:1}))],64)):e.createCommentVNode("",!0),m(e.unref(n).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[74]||(l[74]=[e.createTextVNode("选项数据",-1)])]),_:1}),e.createVNode(S,{label:"选项来源"},{default:e.withCtx(()=>[e.createVNode(xo,{modelValue:e.unref(n).props.optionsSource,"onUpdate:modelValue":l[14]||(l[14]=r=>e.unref(n).props.optionsSource=r)},{default:e.withCtx(()=>[e.createVNode(Ge,{value:"static"},{default:e.withCtx(()=>[...l[75]||(l[75]=[e.createTextVNode("静态",-1)])]),_:1}),e.createVNode(Ge,{value:"remote"},{default:e.withCtx(()=>[...l[76]||(l[76]=[e.createTextVNode("远程",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.unref(n).type==="select"||e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(S,{key:0,label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[15]||(l[15]=r=>e.unref(n).props.multiple=r),onChange:I},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="select"?(e.openBlock(),e.createBlock(S,{key:1,label:"可搜索","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.filterable,"onUpdate:modelValue":l[16]||(l[16]=r=>e.unref(n).props.filterable=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="select"?(e.openBlock(),e.createBlock(S,{key:2,label:"虚拟化","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.virtualized,"onUpdate:modelValue":l[17]||(l[17]=r=>e.unref(n).props.virtualized=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(S,{key:3,label:"任意级","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.checkStrictly,"onUpdate:modelValue":l[18]||(l[18]=r=>e.unref(n).props.checkStrictly=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),(e.unref(n).props.optionsSource??"static")==="static"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(S,{key:0,label:"静态选项(JSON)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:u.value,"onUpdate:modelValue":l[19]||(l[19]=r=>u.value=r),type:"textarea",rows:8,placeholder:"请输入数组 JSON,节点格式:{ label, value, children? }",onBlur:je},null,8,["modelValue"])]),_:1})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ko.value,(r,Te)=>(e.openBlock(),e.createElementBlock("div",{key:Te,class:"option-item"},[e.createVNode(S,{label:"选项文本"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:r.label,"onUpdate:modelValue":Oe=>r.label=Oe},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(S,{label:"选项值"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:r.value,"onUpdate:modelValue":Oe=>r.value=Oe},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(Ke,{type:"danger",link:"",onClick:Oe=>so(Te)},{default:e.withCtx(()=>[...l[77]||(l[77]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"]),e.createVNode(he)]))),128)),e.createVNode(Ke,{style:{width:"100%","margin-bottom":"10px"},onClick:mo},{default:e.withCtx(()=>[...l[78]||(l[78]=[e.createTextVNode("添加选项",-1)])]),_:1})],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.unref(n).props.remoteOptions?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(S,{label:"接口地址"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.url,"onUpdate:modelValue":l[20]||(l[20]=r=>e.unref(n).props.remoteOptions.url=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"请求方式"},{default:e.withCtx(()=>[e.createVNode(xo,{modelValue:e.unref(n).props.remoteOptions.method,"onUpdate:modelValue":l[21]||(l[21]=r=>e.unref(n).props.remoteOptions.method=r)},{default:e.withCtx(()=>[e.createVNode(Ge,{value:"GET"},{default:e.withCtx(()=>[...l[79]||(l[79]=[e.createTextVNode("GET",-1)])]),_:1}),e.createVNode(Ge,{value:"POST"},{default:e.withCtx(()=>[...l[80]||(l[80]=[e.createTextVNode("POST",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(S,{label:"数据路径(可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.dataPath,"onUpdate:modelValue":l[22]||(l[22]=r=>e.unref(n).props.remoteOptions.dataPath=r),placeholder:"如 data.list"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"label 字段"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.labelKey,"onUpdate:modelValue":l[23]||(l[23]=r=>e.unref(n).props.remoteOptions.labelKey=r),placeholder:"默认 label"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"value 字段"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.valueKey,"onUpdate:modelValue":l[24]||(l[24]=r=>e.unref(n).props.remoteOptions.valueKey=r),placeholder:"默认 value"},null,8,["modelValue"])]),_:1}),e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(S,{key:0,label:"children 字段(可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.childrenKey,"onUpdate:modelValue":l[25]||(l[25]=r=>e.unref(n).props.remoteOptions.childrenKey=r),placeholder:"如 children"},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(S,{label:"请求参数(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.paramsJson,"onUpdate:modelValue":l[26]||(l[26]=r=>e.unref(n).props.remoteOptions.paramsJson=r),type:"textarea",rows:3,placeholder:'{"page": 1, "userId": "{{form.userId}}", "token": "{{cookie:token}}"}'},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"请求头(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.remoteOptions.headersJson,"onUpdate:modelValue":l[27]||(l[27]=r=>e.unref(n).props.remoteOptions.headersJson=r),type:"textarea",rows:3,placeholder:'{"Authorization": "Bearer {{localStorage:token}}"}'},null,8,["modelValue"])]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(Ke,{type:"primary",plain:"",disabled:!e.unref(n).props.remoteOptions.url,onClick:we},{default:e.withCtx(()=>[...l[81]||(l[81]=[e.createTextVNode(" 测试接口 ",-1)])]),_:1},8,["disabled"])]),_:1})],64)):e.createCommentVNode("",!0)],64))],64)):e.createCommentVNode("",!0),e.unref(n).type==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:7},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[82]||(l[82]=[e.createTextVNode("栅格配置",-1)])]),_:1}),e.createVNode(S,{label:"间距 (gutter)"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.gutter,"onUpdate:modelValue":l[28]||(l[28]=r=>e.unref(n).props.gutter=r),min:0,max:80},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"列数"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:po.value,"onUpdate:modelValue":l[29]||(l[29]=r=>po.value=r),min:1,max:4},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"列跨度 (span)"},{default:e.withCtx(()=>[e.createElementVNode("div",xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ve.value,(r,Te)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"grid-span-item"},[e.createElementVNode("div",Bl,"第 "+e.toDisplayString(Te+1)+" 列",1),e.createVNode(z,{modelValue:r.props.span,"onUpdate:modelValue":Oe=>r.props.span=Oe,min:1,max:24},null,8,["modelValue","onUpdate:modelValue"])]))),128))])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="sub-form"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:8},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[83]||(l[83]=[e.createTextVNode("子表单配置",-1)])]),_:1}),e.createVNode(S,{label:"显示序号"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.showIndex,"onUpdate:modelValue":l[30]||(l[30]=r=>e.unref(n).props.showIndex=r)},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"显示操作列"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.showAction,"onUpdate:modelValue":l[31]||(l[31]=r=>e.unref(n).props.showAction=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="text"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:9},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[84]||(l[84]=[e.createTextVNode("文字配置",-1)])]),_:1}),e.createVNode(S,{label:"内容"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.text,"onUpdate:modelValue":l[32]||(l[32]=r=>e.unref(n).props.text=r),type:"textarea",rows:3,placeholder:"输入文字内容"},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="link"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:10},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[85]||(l[85]=[e.createTextVNode("链接配置",-1)])]),_:1}),e.createVNode(S,{label:"文本"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.linkText,"onUpdate:modelValue":l[33]||(l[33]=r=>e.unref(n).props.linkText=r),placeholder:"显示文本(可为空)"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"地址(href)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.linkUrl,"onUpdate:modelValue":l[34]||(l[34]=r=>e.unref(n).props.linkUrl=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"打开方式"},{default:e.withCtx(()=>[e.createVNode(ge,{modelValue:e.unref(n).props.linkTarget,"onUpdate:modelValue":l[35]||(l[35]=r=>e.unref(n).props.linkTarget=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"新窗口打开",value:"_blank"}),e.createVNode(j,{label:"当前窗口打开",value:"_self"}),e.createVNode(j,{label:"父窗口打开",value:"_parent"}),e.createVNode(j,{label:"顶层窗口打开",value:"_top"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(S,{label:"下划线","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.linkUnderline,"onUpdate:modelValue":l[36]||(l[36]=r=>e.unref(n).props.linkUnderline=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["input","textarea","select","pca","date","time","datetime","cascader"].includes(e.unref(n).type)?(e.openBlock(),e.createBlock(S,{key:11,label:"占位提示"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.placeholder,"onUpdate:modelValue":l[37]||(l[37]=r=>e.unref(n).props.placeholder=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="pca"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:12},[e.createVNode(S,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(ge,{modelValue:e.unref(n).props.pcaType,"onUpdate:modelValue":l[38]||(l[38]=r=>e.unref(n).props.pcaType=r),onChange:D},{default:e.withCtx(()=>[e.createVNode(j,{label:"省会",value:"province"}),e.createVNode(j,{label:"省会/城市",value:"province-city"}),e.createVNode(j,{label:"省会/城市/区域",value:"province-city-area"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(S,{label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[39]||(l[39]=r=>e.unref(n).props.multiple=r),onChange:I},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="signature"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:13},[e.createVNode(S,{label:"画布高度"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.signatureHeight,"onUpdate:modelValue":l[40]||(l[40]=r=>e.unref(n).props.signatureHeight=r),min:80},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"笔触粗细"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.signatureLineWidth,"onUpdate:modelValue":l[41]||(l[41]=r=>e.unref(n).props.signatureLineWidth=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"笔触颜色"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.signaturePenColor,"onUpdate:modelValue":l[42]||(l[42]=r=>e.unref(n).props.signaturePenColor=r),placeholder:"#000000"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"背景颜色"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.signatureBackgroundColor,"onUpdate:modelValue":l[43]||(l[43]=r=>e.unref(n).props.signatureBackgroundColor=r),placeholder:"#ffffff"},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="textarea"?(e.openBlock(),e.createBlock(S,{key:14,label:"行数"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.rows,"onUpdate:modelValue":l[44]||(l[44]=r=>e.unref(n).props.rows=r),min:1},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="rate"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:15},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[86]||(l[86]=[e.createTextVNode("评分配置",-1)])]),_:1}),e.createVNode(S,{label:"最大分值"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.max,"onUpdate:modelValue":l[45]||(l[45]=r=>e.unref(n).props.max=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"允许半选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.allowHalf,"onUpdate:modelValue":l[46]||(l[46]=r=>e.unref(n).props.allowHalf=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["input","select","pca","date","time","datetime","cascader","signature","rate"].includes(e.unref(n).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:16},[e.unref(n).type!=="signature"?(e.openBlock(),e.createBlock(S,{key:0,label:"显示清除按钮","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.clearable,"onUpdate:modelValue":l[47]||(l[47]=r=>e.unref(n).props.clearable=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),["group","text"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:17,label:"是否禁用","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.disabled,"onUpdate:modelValue":l[48]||(l[48]=r=>e.unref(n).props.disabled=r)},null,8,["modelValue"])]),_:1})),e.unref(n).type==="upload"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:18},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[87]||(l[87]=[e.createTextVNode("上传配置",-1)])]),_:1}),e.createVNode(S,{label:"上传地址"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.action,"onUpdate:modelValue":l[49]||(l[49]=r=>e.unref(n).props.action=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.name,"onUpdate:modelValue":l[50]||(l[50]=r=>e.unref(n).props.name=r),placeholder:"file"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"文件类型"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.accept,"onUpdate:modelValue":l[51]||(l[51]=r=>e.unref(n).props.accept=r),placeholder:".png,.jpg"},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[52]||(l[52]=r=>e.unref(n).props.multiple=r),onChange:M},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"最大数量"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.limit,"onUpdate:modelValue":l[53]||(l[53]=r=>e.unref(n).props.limit=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"列表样式"},{default:e.withCtx(()=>[e.createVNode(ge,{modelValue:e.unref(n).props.listType,"onUpdate:modelValue":l[54]||(l[54]=r=>e.unref(n).props.listType=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"文本列表",value:"text"}),e.createVNode(j,{label:"缩略图列表",value:"picture"}),e.createVNode(j,{label:"照片墙",value:"picture-card"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(S,{label:"自动上传","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.autoUpload,"onUpdate:modelValue":l[55]||(l[55]=r=>e.unref(n).props.autoUpload=r)},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"显示文件列表","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.showFileList,"onUpdate:modelValue":l[56]||(l[56]=r=>e.unref(n).props.showFileList=r)},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"携带 Cookie","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.withCredentials,"onUpdate:modelValue":l[57]||(l[57]=r=>e.unref(n).props.withCredentials=r)},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"请求头(JSON)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.uploadHeadersJson,"onUpdate:modelValue":l[58]||(l[58]=r=>e.unref(n).props.uploadHeadersJson=r),type:"textarea",rows:3,placeholder:'{"Authorization":"Bearer ..."}'},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"额外参数(JSON)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:e.unref(n).props.uploadDataJson,"onUpdate:modelValue":l[59]||(l[59]=r=>e.unref(n).props.uploadDataJson=r),type:"textarea",rows:3,placeholder:'{"bizId":123}'},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(S,{key:19,label:"是否必填","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(J,{modelValue:e.unref(n).props.required,"onUpdate:modelValue":l[60]||(l[60]=r=>e.unref(n).props.required=r)},null,8,["modelValue"])]),_:1})),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:20},[e.createVNode(he,null,{default:e.withCtx(()=>[...l[88]||(l[88]=[e.createTextVNode("验证规则",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).props.rules,(r,Te)=>(e.openBlock(),e.createElementBlock("div",{key:Te,class:"rule-item"},[e.createElementVNode("div",Sl,[e.createElementVNode("span",null,"规则 "+e.toDisplayString(Te+1),1),e.createVNode(Ke,{type:"danger",link:"",onClick:Oe=>B(Te)},{default:e.withCtx(()=>[...l[89]||(l[89]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])]),e.createVNode(S,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(ge,{modelValue:r.type,"onUpdate:modelValue":Oe=>r.type=Oe},{default:e.withCtx(()=>[e.createVNode(j,{label:"邮箱",value:"email"}),e.createVNode(j,{label:"手机号",value:"phone"}),e.createVNode(j,{label:"URL",value:"url"}),e.createVNode(j,{label:"IP地址",value:"ip"}),e.createVNode(j,{label:"正则表达式",value:"regexp"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(S,{label:"错误提示"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:r.message,"onUpdate:modelValue":Oe=>r.message=Oe},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),r.type==="regexp"?(e.openBlock(),e.createBlock(S,{key:0,label:"正则模式"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:r.pattern,"onUpdate:modelValue":Oe=>r.pattern=Oe},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):e.createCommentVNode("",!0)]))),128)),e.createVNode(Ke,{style:{width:"100%"},onClick:w},{default:e.withCtx(()=>[...l[90]||(l[90]=[e.createTextVNode("添加验证规则",-1)])]),_:1})],64))]),_:1})])):(e.openBlock(),e.createElementBlock("div",_l,[e.createVNode(un,{description:"请选择一个字段"})]))]),_:1}),e.createVNode(Vo,{label:"表单属性",name:"form"},{default:e.withCtx(()=>[e.createElementVNode("div",El,[e.createVNode(Ho,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(S,{label:"标签对齐方式"},{default:e.withCtx(()=>[e.createVNode(xo,{modelValue:e.unref(t).labelPosition,"onUpdate:modelValue":l[61]||(l[61]=r=>e.unref(t).labelPosition=r)},{default:e.withCtx(()=>[e.createVNode(Ge,{value:"left"},{default:e.withCtx(()=>[...l[91]||(l[91]=[e.createTextVNode("左",-1)])]),_:1}),e.createVNode(Ge,{value:"right"},{default:e.withCtx(()=>[...l[92]||(l[92]=[e.createTextVNode("右",-1)])]),_:1}),e.createVNode(Ge,{value:"top"},{default:e.withCtx(()=>[...l[93]||(l[93]=[e.createTextVNode("顶部",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(S,{label:"标签宽度"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(t).labelWidth,"onUpdate:modelValue":l[62]||(l[62]=r=>e.unref(t).labelWidth=r)},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"组件尺寸"},{default:e.withCtx(()=>[e.createVNode(xo,{modelValue:e.unref(t).size,"onUpdate:modelValue":l[63]||(l[63]=r=>e.unref(t).size=r)},{default:e.withCtx(()=>[e.createVNode(Ge,{value:"large"},{default:e.withCtx(()=>[...l[94]||(l[94]=[e.createTextVNode("大",-1)])]),_:1}),e.createVNode(Ge,{value:"default"},{default:e.withCtx(()=>[...l[95]||(l[95]=[e.createTextVNode("中",-1)])]),_:1}),e.createVNode(Ge,{value:"small"},{default:e.withCtx(()=>[...l[96]||(l[96]=[e.createTextVNode("小",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(he,null,{default:e.withCtx(()=>[...l[97]||(l[97]=[e.createTextVNode("字段显隐规则",-1)])]),_:1}),e.createVNode(S,{label:"配置"},{default:e.withCtx(()=>[e.createVNode(Ke,{type:"primary",plain:"",style:{width:"100%"},onClick:le},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.value),1)]),_:1})]),_:1})]),_:1})])]),_:1})]),_:1},8,["modelValue"])]),e.createVNode(In,{modelValue:A.value,"onUpdate:modelValue":l[72]||(l[72]=r=>A.value=r),title:"远程接口测试",width:"760px","destroy-on-close":""},{footer:e.withCtx(()=>[e.createVNode(Ke,{disabled:ae.value,onClick:l[71]||(l[71]=r=>A.value=!1)},{default:e.withCtx(()=>[...l[100]||(l[100]=[e.createTextVNode("关闭",-1)])]),_:1},8,["disabled"])]),default:e.withCtx(()=>[e.createVNode(Ho,{"label-position":"top",size:"small"},{default:e.withCtx(()=>[e.createVNode(S,{label:"测试上下文:表单值(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:v.value,"onUpdate:modelValue":l[65]||(l[65]=r=>v.value=r),type:"textarea",rows:4,placeholder:'{"userId": 1}'},null,8,["modelValue"])]),_:1}),e.createVNode(S,{label:"测试上下文:全局变量(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:re.value,"onUpdate:modelValue":l[66]||(l[66]=r=>re.value=r),type:"textarea",rows:3,placeholder:'{"app": {"tenantId": "t1"}}'},null,8,["modelValue"])]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(Ke,{type:"primary",loading:ae.value,onClick:L},{default:e.withCtx(()=>[...l[98]||(l[98]=[e.createTextVNode("执行测试",-1)])]),_:1},8,["loading"]),e.createVNode(Ke,{disabled:ae.value,onClick:to},{default:e.withCtx(()=>[...l[99]||(l[99]=[e.createTextVNode("清空结果",-1)])]),_:1},8,["disabled"])]),_:1}),ue.value?(e.openBlock(),e.createBlock(hn,{key:0,type:"error",closable:!1,title:ue.value},null,8,["title"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(fn,{modelValue:te.value,"onUpdate:modelValue":l[70]||(l[70]=r=>te.value=r),class:"remote-test-tabs"},{default:e.withCtx(()=>[e.createVNode(Vo,{label:"请求",name:"request"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:mn.value,"onUpdate:modelValue":l[67]||(l[67]=r=>mn.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示请求快照"},null,8,["modelValue"])]),_:1}),e.createVNode(Vo,{label:"响应",name:"response"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:sn.value,"onUpdate:modelValue":l[68]||(l[68]=r=>sn.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示响应内容"},null,8,["modelValue"])]),_:1}),e.createVNode(Vo,{label:"映射结果",name:"options"},{default:e.withCtx(()=>[e.createVNode(N,{modelValue:pn.value,"onUpdate:modelValue":l[69]||(l[69]=r=>pn.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示 dataPath 提取与映射结果"},null,8,["modelValue"])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(Vl,{modelValue:G.value,"onUpdate:modelValue":l[73]||(l[73]=r=>G.value=r),rules:e.unref(t).visibilityRules??[],"field-options":Ve.value,onSave:Ee},null,8,["modelValue","rules","field-options"])],64)}}}),[["__scopeId","data-v-70cf260a"]]),Dl={key:0,class:"ff-signature-actions"},Ol=bo(e.defineComponent({name:"SignaturePad",__name:"SignaturePad",props:{modelValue:{},height:{default:160},width:{default:"100%"},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},lineWidth:{default:2},penColor:{default:"#000000"},backgroundColor:{default:"#ffffff"},outputType:{default:"png"},quality:{default:.92}},emits:["update:modelValue"],setup(o,{emit:n}){const t=o,a=n,c=e.ref(null),i=e.ref(null),m=e.computed(()=>typeof t.height=="number"&&t.height>0?t.height:160),h=e.computed(()=>t.disabled===!0),p=e.computed(()=>t.clearable===!0),y=e.computed(()=>t.width||"100%"),u=e.ref(!1),C=e.ref(null),E=e.ref(null),g=()=>{const f=c.value;return f?f.getContext("2d"):null},T=()=>{const f=i.value;if(!f)return 0;const x=f.getBoundingClientRect();return Math.max(0,Math.floor(x.width))},R=()=>{const f=c.value,x=g();if(!f||!x)return;const b=T();if(b<=0)return;x.save(),x.setTransform(1,0,0,1,0,0);const F=window.devicePixelRatio||1;x.scale(F,F),x.fillStyle=t.backgroundColor,x.fillRect(0,0,b,m.value),x.restore()},q=async f=>{const x=c.value,b=g();!x||!b||await new Promise(F=>{const P=new Image;P.onload=()=>{const M=T();if(M<=0){F();return}R(),b.drawImage(P,0,0,M,m.value),F()},P.onerror=()=>F(),P.src=f})},U=async()=>{const f=c.value,x=g();if(!f||!x)return;const b=T();if(b<=0)return;const F=window.devicePixelRatio||1;f.width=Math.floor(b*F),f.height=Math.floor(m.value*F),f.style.width=`${b}px`,f.style.height=`${m.value}px`,x.setTransform(1,0,0,1,0,0),x.scale(F,F),x.lineCap="round",x.lineJoin="round",R(),typeof t.modelValue=="string"&&t.modelValue.trim()&&await q(t.modelValue)},W=()=>{const f=c.value;if(!f)return null;const x=t.outputType==="jpeg"?"image/jpeg":"image/png";if(x==="image/jpeg"){const b=typeof t.quality=="number"&&t.quality>=0&&t.quality<=1?t.quality:.92;return f.toDataURL(x,b)}return f.toDataURL(x)},oe=async()=>{await e.nextTick(),R(),a("update:modelValue",null)},pe=f=>{const x=c.value;if(!x)return null;const b=x.getBoundingClientRect();return{x:f.clientX-b.left,y:f.clientY-b.top}},se=f=>{const x=g();x&&(x.strokeStyle=t.penColor,x.lineWidth=typeof t.lineWidth=="number"&&t.lineWidth>0?t.lineWidth:2,x.beginPath(),x.moveTo(f.x,f.y),E.value=f)},ne=f=>{const x=g();if(!x)return;if(!E.value){se(f);return}x.lineTo(f.x,f.y),x.stroke(),E.value=f},Z=()=>{const f=g();if(!f)return;f.closePath(),E.value=null;const x=W();a("update:modelValue",x)},xe=f=>{if(h.value)return;const x=c.value;if(!x||C.value!==null)return;const b=pe(f);b&&(u.value=!0,C.value=f.pointerId,x.setPointerCapture(f.pointerId),se(b))},H=f=>{if(h.value||!u.value||C.value!==f.pointerId)return;const x=pe(f);x&&ne(x)},$=f=>{h.value||u.value&&C.value===f.pointerId&&(u.value=!1,C.value=null,Z())};let k=null;return e.onMounted(async()=>{await e.nextTick(),await U(),i.value&&(k=new ResizeObserver(()=>{U()}),k.observe(i.value))}),e.onBeforeUnmount(()=>{k&&i.value&&k.unobserve(i.value),k=null}),e.watch(()=>[t.modelValue,t.height,t.backgroundColor],async()=>{await e.nextTick(),await U()}),(f,x)=>{const b=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{ref_key:"wrapRef",ref:i,class:"ff-signature-pad",style:e.normalizeStyle({width:y.value})},[e.createElementVNode("div",{class:"ff-signature-canvas-wrap",style:e.normalizeStyle({height:`${m.value}px`})},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:c,class:e.normalizeClass(["ff-signature-canvas",{disabled:h.value}]),onPointerdown:xe,onPointermove:H,onPointerup:$,onPointercancel:$,onPointerleave:$},null,34)],4),p.value&&!h.value?(e.openBlock(),e.createElementBlock("div",Dl,[e.createVNode(b,{size:"small",onClick:oe},{default:e.withCtx(()=>[...x[0]||(x[0]=[e.createTextVNode("清空",-1)])]),_:1})])):e.createCommentVNode("",!0)],4)}}}),[["__scopeId","data-v-a1a825f6"]]),Al={key:0},Ul={key:1},Fl={class:"ff-group-header"},Ml={class:"ff-group-title"},Rl={class:"ff-group-body"},Il={key:3,class:"ff-form-item sub-form-container"},Pl={class:"ff-label-inline"},$l={class:"ff-label-text"},Jl={key:0,class:"sub-form-content"},Ll={class:"sub-form-table-wrap"},zl={class:"row-index-wrapper"},jl={class:"index-number"},Hl={key:0,class:"index-actions"},Yl={key:0,class:"sub-form-actions"},ql={key:1,class:"no-sub-form"},Wl={key:4,class:"ff-form-item"},Gl={class:"ff-label-inline"},Kl={class:"ff-label-text"},Xl=["src"],Ql={key:1,class:"ff-signature-placeholder"},Zl={key:0,class:"ff-signature-actions"},vl={class:"thumbnail-area"},ed=["src"],od={key:1,class:"file-icon-thumbnail"},nd={class:"el-upload-list__item-actions"},td=["onClick"],ad=["onClick"],ld=["title"],dd=["onClick"],cd=["onClick"],rd=["title"],id=["onClick"],md=["src"],sd=bo(e.defineComponent({name:"FormRendererNode",__name:"FormRendererNode",props:{element:{},model:{},hideLabel:{type:Boolean,default:!1},formDisabled:{type:Boolean,default:!1},visibleMap:{}},emits:["update-field"],setup(o,{emit:n}){const t=o,a=n,c=e.computed(()=>{const s=t.element.props.field;return typeof s=="string"&&s.trim()?s.trim():t.element.id}),i=s=>{const V=t.visibleMap?.[s];return V===void 0?!0:V},m=s=>{const V=s.props.field;return typeof V=="string"&&V.trim()?V.trim():s.id},h=s=>s.type==="grid"?(s.children||[]).filter(G=>G.type==="grid-col").some(G=>h(G)):s.type==="grid-col"?(s.children||[]).some(V=>h(V)):s.type==="group"?(s.children||[]).some(V=>h(V)):s.type==="text"||s.type==="link"?!0:i(m(s)),p=e.computed(()=>h(t.element)),y=e.computed(()=>{if(!(t.element.type==="text"||t.element.type==="link"))return c.value}),u=e.computed(()=>t.formDisabled===!0||t.element.props.disabled===!0),C=e.computed(()=>t.model[c.value]),E=e.computed(()=>{const s=t.element.props.linkUrl;if(typeof s!="string")return;const V=s.trim();return V||void 0}),g=e.computed(()=>{const s=t.element.props.linkText;if(typeof s=="string"&&s.trim())return s;const V=t.element.props.linkUrl;return typeof V=="string"&&V.trim()?V.trim():"链接"}),T=s=>{if(typeof s=="number"&&Number.isFinite(s)&&!(s<=0))return`${s}px`},R=e.computed(()=>T(t.element.props.labelWidth)),q=e.computed(()=>t.element.props.width??"100%"),U=e.ref([]),W=e.ref(!1),oe=e.computed(()=>{const s=t.element.props.pcaType;return s==="province"||s==="province-city"||s==="province-city-area"?s:"province-city-area"}),pe=e.computed(()=>rn(1)),se=e.computed(()=>oe.value==="province-city"?rn(2):rn(3)),ne=e.computed(()=>({multiple:t.element.props.multiple===!0})),Z=s=>s==="radio"||s==="checkbox"||s==="select"||s==="cascader";(()=>{const s=e.computed(()=>{if(!Z(t.element.type))return[];if((t.element.props.optionsSource??"static")==="static")return[];const d=t.element.props.remoteOptions;if(!d)return[];const l=[...Jn(d.paramsJson),...Jn(d.headersJson)];return l.length===0&&(Ln(d.paramsJson)||Ln(d.headersJson))?"all":Array.from(new Set(l)).sort()}),V=e.ref(void 0),G=e.ref(null),le=()=>{G.value&&(G.value.abort(),G.value=null)},Ee=Ve=>{const d=s.value;if(d==="all")return JSON.stringify(Ve);const l={};for(const N of d)l[N]=Ve[N];return JSON.stringify(l)},Ne=Ve=>{le();const d=new AbortController;G.value=d;const l={url:Ve.url,method:Ve.method||"GET",paramsJson:Ve.paramsJson,headersJson:Ve.headersJson,dataPath:Ve.dataPath,labelKey:Ve.labelKey||"label",valueKey:Ve.valueKey||"value",childrenKey:Ve.childrenKey};W.value=!0,Hn(l,d.signal,{formModel:t.model}).then(N=>{d.signal.aborted||(U.value=N)}).catch(N=>{N instanceof DOMException&&N.name==="AbortError"||(U.value=[])}).finally(()=>{d.signal.aborted||(W.value=!1)})};e.watch(()=>t.model,Ve=>{if(!Z(t.element.type)){le(),U.value=[],W.value=!1,V.value=void 0;return}if((t.element.props.optionsSource??"static")==="static"){le(),U.value=Array.isArray(t.element.props.options)?t.element.props.options:[],W.value=!1,V.value=void 0;return}const l=t.element.props.remoteOptions;if(!l||!l.url){le(),U.value=[],W.value=!1,V.value=void 0;return}const N=Ee(Ve);!(V.value===void 0)&&N===V.value||(V.value=N,Ne(l))},{immediate:!0,deep:!0}),e.watch(()=>t.element.props.remoteOptions,()=>{le(),U.value=[],W.value=!1,V.value=void 0},{deep:!0}),e.onBeforeUnmount(()=>le())})();const H=s=>{a("update-field",{element:t.element,key:c.value,value:s})},$=e.computed({get:()=>{const s=C.value;return typeof s=="string"?s:typeof s=="number"?String(s):""},set:s=>H(s)}),k=e.computed({get:()=>{const s=C.value;return typeof s=="string"&&s.trim()?s:null},set:s=>{if(typeof s=="string"&&s.trim()){H(s);return}H(void 0)}}),f=e.computed({get:()=>{const s=C.value;return typeof s=="string"&&s.trim()?s:null},set:s=>{if(typeof s=="string"&&s.trim()){H(s);return}H(void 0)}}),x=e.ref(!1),b=e.ref(null),F=()=>{u.value||(b.value=f.value,x.value=!0)},P=()=>{x.value=!1},M=()=>{f.value=b.value,x.value=!1},de=()=>{f.value=null},D=e.computed({get:()=>{const s=C.value;return typeof s=="string"||typeof s=="number"?s:void 0},set:s=>H(s)}),I=e.computed({get:()=>{const s=C.value;if(typeof s=="number")return s;if(typeof s=="string"){const V=s.trim();if(V==="")return;const G=Number(V);return Number.isFinite(G)?G:void 0}},set:s=>H(s)}),ce=e.computed({get:()=>{const s=C.value;return typeof s=="number"?s:0},set:s=>{if(typeof s!="number"){H(void 0);return}if(s<=0){H(void 0);return}H(s)}}),Ue=e.computed({get:()=>C.value===!0,set:s=>H(s)}),Ie=e.computed({get:()=>{const s=C.value;return Array.isArray(s)?s.every(V=>typeof V=="string"||typeof V=="number")?s:[]:[]},set:s=>H(s)}),fe=s=>Array.isArray(s)&&s.every(V=>typeof V=="string"||typeof V=="number"),Fe=s=>Array.isArray(s)&&s.every(V=>fe(V)),Le=e.computed({get:()=>{const s=C.value;return t.element.props.multiple===!0?fe(s)?s:[]:typeof s=="string"||typeof s=="number"?s:void 0},set:s=>{if(t.element.props.multiple===!0){H(fe(s)?s:[]);return}H(typeof s=="string"||typeof s=="number"?s:void 0)}}),je=e.computed({get:()=>{const s=C.value;return t.element.props.multiple===!0?Fe(s)?s:[]:fe(s)?s:[]},set:s=>{if(t.element.props.multiple===!0){H(Fe(s)?s:[]);return}H(fe(s)?s:[])}}),ko=e.computed(()=>({multiple:t.element.props.multiple===!0,checkStrictly:t.element.props.checkStrictly===!0})),mo=e.computed({get:()=>{const s=C.value;return t.element.props.multiple===!0?fe(s)?s:[]:typeof s=="string"||typeof s=="number"?s:void 0},set:s=>{if(t.element.props.multiple===!0){H(fe(s)?s:[]);return}H(typeof s=="string"||typeof s=="number"?s:void 0)}}),so=e.computed({get:()=>{const s=C.value;return t.element.props.multiple===!0?Fe(s)?s:[]:fe(s)?s:[]},set:s=>{if(t.element.props.multiple===!0){H(Fe(s)?s:[]);return}H(fe(s)?s:[])}}),ve=s=>{if(!s||!s.trim())return{};try{const V=JSON.parse(s);if(!Me(V))return{};const G=Ao(V,{formModel:t.model});return Me(G)?G:{}}catch{return{}}},po=e.computed(()=>{const s=ve(t.element.props.uploadHeadersJson),V={};for(const[G,le]of Object.entries(s))(typeof le=="string"||typeof le=="number"||typeof le=="boolean")&&(V[G]=String(le));return V}),w=e.computed(()=>{const s=ve(t.element.props.uploadDataJson),V={};for(const[G,le]of Object.entries(s))if(le!=null)if(typeof le=="object")try{V[G]=JSON.stringify(le)}catch{V[G]=""}else V[G]=String(le);return V}),B=e.computed({get:()=>Array.isArray(C.value)?C.value:[],set:s=>H(s)}),A=e.ref(!1),te=e.ref(""),v=s=>{if(u.value)return;const V=B.value.filter(G=>G.uid!==s.uid);B.value=V},re=s=>{let V=s.url,G=!1;if(!V&&s.raw&&(V=URL.createObjectURL(s.raw),G=!0),!V)return;if(s.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(s.name))te.value=V,A.value=!0;else{const Ee=document.createElement("a");Ee.href=V,Ee.download=s.name||"download",document.body.appendChild(Ee),Ee.click(),document.body.removeChild(Ee),G&&URL.revokeObjectURL(V)}},ae=(s,V)=>{$e.ElMessage.error(`文件 "${V.name}" 上传失败,请重试`)},ue=(s,V)=>{$e.ElMessage.error(`文件数量超出限制,最多可上传 ${t.element.props.limit||5} 个文件`)},Pe=s=>{if(u.value)return!1;const V=t.element.props.accept;if(V){const G=V.split(",").map(d=>d.trim()),le=s.name.toLowerCase(),Ee=le.lastIndexOf(".")>0?le.slice(le.lastIndexOf(".")):"",Ne=s.type;if(!G.some(d=>{const l=d.toLowerCase();if(l.startsWith("."))return Ee===l;if(l.includes("*")){const[N]=l.split("/"),[S]=Ne.split("/");return N===S}else return Ne===l}))return $e.ElMessage.error(`文件类型不允许,只支持 ${V} 类型的文件`),!1}return!0},no=(s,V)=>{if(!u.value&&s.status==="ready"){const G=t.element.props.accept;if(G){const le=G.split(",").map(l=>l.trim()),Ee=s.name.toLowerCase(),Ne=Ee.lastIndexOf(".")>0?Ee.slice(Ee.lastIndexOf(".")):"",Ve=s.raw?.type||"";le.some(l=>{const N=l.toLowerCase();if(N.startsWith("."))return Ne===N;if(N.includes("*")){const[S]=N.split("/"),[j]=Ve.split("/");return S===j}else return Ve===N})||($e.ElMessage.error(`文件类型不允许,只支持 ${G} 类型的文件`),B.value=B.value.filter(l=>l.uid!==s.uid))}}},to=s=>{a("update-field",s)},_=s=>{const V=s.props.field;return typeof V=="string"&&V.trim()?V.trim():s.id},ke=s=>{const V=s.props.defaultValue;if(V!==void 0)return V;if(s.type==="checkbox")return[];if(s.type==="select"&&s.props.multiple===!0)return[];if(s.type==="cascader")return[];if(s.type==="upload")return[];if(s.type==="switch")return!1},we=()=>{const s={},V=Array.isArray(t.element.children)?t.element.children:[];for(const G of V){const le=_(G);s[le]=ke(G)}return s},_e=e.computed({get:()=>{const s=C.value;return Array.isArray(s)?s.filter(V=>Me(V)):[]},set:s=>H(s)}),L=()=>{if(u.value)return;const s=[..._e.value,we()];_e.value=s},Y=s=>{if(u.value)return;const V=[..._e.value],G=V[s];if(!Me(G))return;const le=JSON.parse(JSON.stringify(G));V.splice(s+1,0,le),_e.value=V},mn=s=>{if(u.value)return;const V=[..._e.value];V.splice(s,1),_e.value=V},sn=(s,V,G)=>{const le=[..._e.value],Ee=le[V],Ne=Me(Ee)?{...Ee}:{};Ne[G.key]=G.value,le[V]=Ne,_e.value=le},pn=e.computed(()=>t.element.type!=="grid"?[]:(t.element.children||[]).filter(s=>s.type==="grid-col"));return(s,V)=>{const G=e.resolveComponent("FormRendererNode",!0),le=e.resolveComponent("el-col"),Ee=e.resolveComponent("el-row"),Ne=e.resolveComponent("el-icon"),Ve=e.resolveComponent("el-tooltip"),d=e.resolveComponent("el-table-column"),l=e.resolveComponent("el-table"),N=e.resolveComponent("el-button"),S=e.resolveComponent("el-form-item"),j=e.resolveComponent("el-link"),ge=e.resolveComponent("el-input"),z=e.resolveComponent("el-input-number"),J=e.resolveComponent("el-rate"),De=e.resolveComponent("el-radio"),ao=e.resolveComponent("el-radio-group"),lo=e.resolveComponent("el-checkbox"),he=e.resolveComponent("el-checkbox-group"),Ge=e.resolveComponent("el-select-v2"),xo=e.resolveComponent("el-option"),Ke=e.resolveComponent("el-select"),Ho=e.resolveComponent("el-switch"),un=e.resolveComponent("el-cascader"),Vo=e.resolveComponent("el-date-picker"),fn=e.resolveComponent("el-time-picker"),hn=e.resolveComponent("el-dialog"),In=e.resolveComponent("el-upload");return o.element.type==="grid"&&p.value?(e.openBlock(),e.createElementBlock("div",Al,[e.createVNode(Ee,{gutter:o.element.props.gutter??20},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pn.value,(r,Te)=>(e.openBlock(),e.createBlock(le,{key:r.id||Te,span:r.props.span??12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children||[],Oe=>(e.openBlock(),e.createBlock(G,{key:Oe.id,element:Oe,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:to},null,8,["element","model","form-disabled","visible-map"]))),128))]),_:2},1032,["span"]))),128))]),_:1},8,["gutter"])])):o.element.type==="grid-col"&&p.value?(e.openBlock(),e.createElementBlock("div",Ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(G,{key:r.id,element:r,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:to},null,8,["element","model","form-disabled","visible-map"]))),128))])):o.element.type==="group"&&p.value?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-group",style:e.normalizeStyle({width:q.value})},[e.createElementVNode("div",Fl,[e.createElementVNode("span",Ml,e.toDisplayString(o.element.props.label),1)]),e.createElementVNode("div",Rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(G,{key:r.id,element:r,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:to},null,8,["element","model","form-disabled","visible-map"]))),128))])],4)):o.element.type==="sub-form"&&p.value?(e.openBlock(),e.createElementBlock("div",Il,[e.createVNode(S,{prop:c.value,label:o.element.props.label,"label-width":R.value,class:e.normalizeClass({"ff-label-wrap":o.element.props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",Pl,[e.createElementVNode("span",$l,e.toDisplayString(o.element.props.label),1),o.element.props.description?(e.openBlock(),e.createBlock(Ve,{key:0,content:o.element.props.description},{default:e.withCtx(()=>[e.createVNode(Ne,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[o.element.children&&o.element.children.length!==0?(e.openBlock(),e.createElementBlock("div",Jl,[e.createElementVNode("div",Ll,[e.createVNode(l,{data:_e.value,border:"",fit:!1,"table-layout":"auto",class:"sub-form-table"},{default:e.withCtx(()=>[o.element.props.showIndex?(e.openBlock(),e.createBlock(d,{key:0,label:"#",width:"60",align:"center",fixed:"left"},{default:e.withCtx(({$index:r})=>[e.createElementVNode("div",zl,[e.createElementVNode("span",jl,e.toDisplayString(r+1),1),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Hl,[e.createVNode(Ne,{class:"action-icon copy-icon",title:"复制",onClick:e.withModifiers(Te=>Y(r),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.CopyDocument))]),_:1},8,["onClick"]),e.createVNode(Ne,{class:"action-icon delete-icon",title:"删除",onClick:e.withModifiers(Te=>mn(r),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Delete))]),_:1},8,["onClick"])]))])]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(d,{key:r.id,label:r.props.label,"min-width":220},{default:e.withCtx(({row:Te,$index:Oe})=>[e.createVNode(G,{element:r,model:Te,"hide-label":!0,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:bd=>sn(Te,Oe,bd)},null,8,["element","model","form-disabled","visible-map","onUpdateField"])]),_:2},1032,["label"]))),128))]),_:1},8,["data"])]),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Yl,[e.createVNode(N,{type:"primary",plain:"",icon:e.unref(ee.Plus),onClick:L},{default:e.withCtx(()=>[...V[19]||(V[19]=[e.createTextVNode("添加一行",-1)])]),_:1},8,["icon"])]))])):(e.openBlock(),e.createElementBlock("div",ql,"暂无可用字段"))]),_:1},8,["prop","label","label-width","class"])])):p.value?(e.openBlock(),e.createElementBlock("div",Wl,[e.createVNode(S,{prop:y.value,label:o.hideLabel?"":o.element.props.label,"label-width":o.hideLabel?"0px":R.value,class:e.normalizeClass(o.hideLabel?"ff-no-label":{"ff-label-wrap":o.element.props.labelWrap===!0})},e.createSlots({default:e.withCtx(()=>[o.element.type==="text"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"ff-text",style:e.normalizeStyle({width:q.value,opacity:u.value?.6:1})},e.toDisplayString(o.element.props.text||""),5)):e.createCommentVNode("",!0),o.element.type==="link"?(e.openBlock(),e.createBlock(j,{key:1,href:E.value,target:o.element.props.linkTarget||"_blank",type:"primary",underline:o.element.props.linkUnderline!==!1?"hover":"never",disabled:u.value||!E.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.value),1)]),_:1},8,["href","target","underline","disabled"])):e.createCommentVNode("",!0),o.element.type==="input"?(e.openBlock(),e.createBlock(ge,{key:2,modelValue:$.value,"onUpdate:modelValue":V[0]||(V[0]=r=>$.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="textarea"?(e.openBlock(),e.createBlock(ge,{key:3,modelValue:$.value,"onUpdate:modelValue":V[1]||(V[1]=r=>$.value=r),type:"textarea",rows:o.element.props.rows,placeholder:o.element.props.placeholder,disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","rows","placeholder","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="input-number"?(e.openBlock(),e.createBlock(z,{key:4,modelValue:I.value,"onUpdate:modelValue":V[2]||(V[2]=r=>I.value=r),disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="rate"?(e.openBlock(),e.createElementBlock("div",{key:5,style:e.normalizeStyle({width:q.value})},[e.createVNode(J,{modelValue:ce.value,"onUpdate:modelValue":V[3]||(V[3]=r=>ce.value=r),max:o.element.props.max??5,"allow-half":o.element.props.allowHalf===!0,clearable:o.element.props.clearable===!0,disabled:u.value},null,8,["modelValue","max","allow-half","clearable","disabled"])],4)):e.createCommentVNode("",!0),o.element.type==="radio"?(e.openBlock(),e.createBlock(ao,{key:6,modelValue:D.value,"onUpdate:modelValue":V[4]||(V[4]=r=>D.value=r),disabled:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,r=>(e.openBlock(),e.createBlock(De,{key:String(r.value),value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="checkbox"?(e.openBlock(),e.createBlock(he,{key:7,modelValue:Ie.value,"onUpdate:modelValue":V[5]||(V[5]=r=>Ie.value=r),disabled:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,r=>(e.openBlock(),e.createBlock(lo,{key:String(r.value),value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="select"&&o.element.props.virtualized===!0?(e.openBlock(),e.createBlock(Ge,{key:8,modelValue:Le.value,"onUpdate:modelValue":V[6]||(V[6]=r=>Le.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,filterable:o.element.props.filterable===!0,clearable:o.element.props.clearable,disabled:u.value,options:U.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","multiple","placeholder","filterable","clearable","disabled","options","style"])):o.element.type==="select"?(e.openBlock(),e.createBlock(Ke,{key:9,modelValue:Le.value,"onUpdate:modelValue":V[7]||(V[7]=r=>Le.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,filterable:o.element.props.filterable===!0,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,r=>(e.openBlock(),e.createBlock(xo,{key:String(r.value),label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","multiple","placeholder","filterable","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="switch"?(e.openBlock(),e.createBlock(Ho,{key:10,modelValue:Ue.value,"onUpdate:modelValue":V[8]||(V[8]=r=>Ue.value=r),disabled:u.value},null,8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="pca"&&(o.element.props.pcaType??"province-city-area")==="province"?(e.openBlock(),e.createBlock(Ke,{key:11,modelValue:mo.value,"onUpdate:modelValue":V[9]||(V[9]=r=>mo.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,r=>(e.openBlock(),e.createBlock(xo,{key:String(r.value),label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","multiple","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="pca"&&(o.element.props.pcaType??"province-city-area")!=="province"?(e.openBlock(),e.createBlock(un,{key:12,modelValue:so.value,"onUpdate:modelValue":V[10]||(V[10]=r=>so.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value}),options:se.value,props:ne.value},null,8,["modelValue","placeholder","clearable","disabled","style","options","props"])):e.createCommentVNode("",!0),o.element.type==="date"?(e.openBlock(),e.createBlock(Vo,{key:13,modelValue:k.value,"onUpdate:modelValue":V[11]||(V[11]=r=>k.value=r),type:"date","value-format":"YYYY-MM-DD",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="time"?(e.openBlock(),e.createBlock(fn,{key:14,modelValue:k.value,"onUpdate:modelValue":V[12]||(V[12]=r=>k.value=r),"value-format":"HH:mm:ss",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:15,class:"ff-signature-field",style:e.normalizeStyle({width:q.value})},[e.createElementVNode("div",{class:e.normalizeClass(["ff-signature-box",{disabled:u.value}]),style:e.normalizeStyle({height:`${o.element.props.signatureHeight??160}px`}),onClick:F},[f.value?(e.openBlock(),e.createElementBlock("img",{key:0,class:"ff-signature-image",src:f.value,alt:"signature"},null,8,Xl)):(e.openBlock(),e.createElementBlock("span",Ql,"点击签名"))],6),o.element.props.clearable===!0&&!u.value&&f.value?(e.openBlock(),e.createElementBlock("div",Zl,[e.createVNode(N,{size:"small",onClick:e.withModifiers(de,["stop"])},{default:e.withCtx(()=>[...V[20]||(V[20]=[e.createTextVNode("清空",-1)])]),_:1})])):e.createCommentVNode("",!0),e.createVNode(hn,{modelValue:x.value,"onUpdate:modelValue":V[14]||(V[14]=r=>x.value=r),"append-to-body":"",title:o.element.props.label||"手写签名",width:"680px","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(N,{onClick:P},{default:e.withCtx(()=>[...V[21]||(V[21]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(N,{type:"primary",onClick:M},{default:e.withCtx(()=>[...V[22]||(V[22]=[e.createTextVNode("确定",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(Ol,{modelValue:b.value,"onUpdate:modelValue":V[13]||(V[13]=r=>b.value=r),height:o.element.props.signatureHeight??160,"line-width":o.element.props.signatureLineWidth??2,"pen-color":o.element.props.signaturePenColor??"#000000","background-color":o.element.props.signatureBackgroundColor??"#ffffff",clearable:o.element.props.clearable===!0,disabled:u.value,width:"100%"},null,8,["modelValue","height","line-width","pen-color","background-color","clearable","disabled"])]),_:1},8,["modelValue","title"])],4)):e.createCommentVNode("",!0),o.element.type==="datetime"?(e.openBlock(),e.createBlock(Vo,{key:16,modelValue:k.value,"onUpdate:modelValue":V[15]||(V[15]=r=>k.value=r),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="cascader"?(e.openBlock(),e.createBlock(un,{key:17,modelValue:je.value,"onUpdate:modelValue":V[16]||(V[16]=r=>je.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:q.value}),options:U.value,props:ko.value},null,8,["modelValue","placeholder","clearable","disabled","style","options","props"])):e.createCommentVNode("",!0),o.element.type==="upload"?(e.openBlock(),e.createBlock(In,{key:18,"file-list":B.value,"onUpdate:fileList":V[17]||(V[17]=r=>B.value=r),action:o.element.props.action||"",name:o.element.props.name||"file",headers:po.value,data:w.value,accept:o.element.props.accept,multiple:o.element.props.multiple===!0,limit:o.element.props.limit,"list-type":o.element.props.listType||"text","auto-upload":o.element.props.autoUpload===!0,"show-file-list":o.element.props.showFileList!==!1,"with-credentials":o.element.props.withCredentials===!0,disabled:u.value,onBeforeUpload:Pe,onExceed:ue,onError:ae,onChange:no},{file:e.withCtx(({file:r})=>[e.createElementVNode("div",{class:e.normalizeClass(["custom-upload-item",[o.element.props.listType==="picture"?"mode-picture":"",o.element.props.listType==="picture-card"?"mode-picture-card":"",!o.element.props.listType||o.element.props.listType==="text"?"mode-text":""]])},[o.element.props.listType==="picture"||o.element.props.listType==="picture-card"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",vl,[r.url&&(r.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(r.name))?(e.openBlock(),e.createElementBlock("img",{key:0,class:"el-upload-list__item-thumbnail",src:r.url,alt:""},null,8,ed)):(e.openBlock(),e.createElementBlock("div",od,[e.createVNode(Ne,{size:24},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Document))]),_:1})])),e.createElementVNode("span",nd,[e.createElementVNode("span",{class:"el-upload-list__item-preview",onClick:Te=>re(r)},[e.createVNode(Ne,null,{default:e.withCtx(()=>[r.url&&(r.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(r.name))?(e.openBlock(),e.createBlock(e.unref(ee.ZoomIn),{key:0})):(e.openBlock(),e.createBlock(e.unref(ee.Download),{key:1}))]),_:2},1024)],8,td),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"el-upload-list__item-delete",onClick:e.withModifiers(Te=>v(r),["stop"])},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Delete))]),_:1})],8,ad))])]),e.createElementVNode("span",{class:"file-name-display",title:r.name},e.toDisplayString(r.name),9,ld),o.element.props.listType==="picture"&&!u.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"picture-mode-close",onClick:Te=>v(r)},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Close))]),_:1})],8,dd)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{class:"text-mode-content",onClick:Te=>re(r)},[e.createVNode(Ne,{class:"file-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Document))]),_:1}),e.createElementVNode("span",{class:"file-name",title:r.name},e.toDisplayString(r.name),9,rd)],8,cd),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-mode-close",onClick:e.withModifiers(Te=>v(r),["stop"])},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(ee.Close))]),_:1})],8,id))],64))],2)]),default:e.withCtx(()=>[e.createVNode(N,{type:"primary"},{default:e.withCtx(()=>[...V[23]||(V[23]=[e.createTextVNode("选择文件",-1)])]),_:1})]),_:1},8,["file-list","action","name","headers","data","accept","multiple","limit","list-type","auto-upload","show-file-list","with-credentials","disabled"])):e.createCommentVNode("",!0),e.createVNode(hn,{modelValue:A.value,"onUpdate:modelValue":V[18]||(V[18]=r=>A.value=r),"append-to-body":""},{default:e.withCtx(()=>[e.createElementVNode("img",{"w-full":"",src:te.value,alt:"Preview Image",style:{width:"100%"}},null,8,md)]),_:1},8,["modelValue"])]),_:2},[o.hideLabel?void 0:{name:"label",fn:e.withCtx(()=>[e.createElementVNode("span",Gl,[e.createElementVNode("span",Kl,e.toDisplayString(o.element.props.label),1),o.element.props.description?(e.openBlock(),e.createBlock(Ve,{key:0,content:o.element.props.description},{default:e.withCtx(()=>[e.createVNode(Ne,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),key:"0"}]),1032,["prop","label","label-width","class"])])):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-c71174a9"]]),Ot=e.defineComponent({__name:"FormRenderer",props:{schema:{},modelValue:{},disabled:{type:Boolean}},emits:["update:modelValue","change"],setup(o,{expose:n,emit:t}){const a=o,c=t,i=e.ref({}),m=e.ref(),h=k=>{const f=k.props.field;return typeof f=="string"&&f.trim()?f.trim():k.id},p=()=>{c("update:modelValue",{...i.value})},y=k=>{c("change",k,{...i.value})},u=k=>{i.value[k.key]=k.value,p(),y(k.element)},C=e.computed(()=>{const k={},f=x=>{for(const b of x){if(b.type==="grid"){const M=(b.children||[]).filter(de=>de.type==="grid-col");for(const de of M)f(de.children||[]);continue}if(b.type==="grid-col"){f(b.children||[]);continue}if(b.type==="group"){f(b.children||[]);continue}if(b.type==="text"||b.type==="link")continue;const F=h(b);if(!oe(F))continue;const P=[];b.props.required&&P.push({required:!0,message:`${b.props.label}不能为空`,trigger:"change"}),b.props.rules&&b.props.rules.length>0&&b.props.rules.forEach(M=>{let de;if(M.type==="regexp"&&M.pattern){const D=new RegExp(M.pattern);de=((I,ce,Ue)=>{const Ie=ce==null?"":String(ce);D.test(Ie)?Ue():Ue(new Error(M.message))})}P.push({type:M.type==="regexp"?void 0:M.type,message:M.message,trigger:M.trigger,validator:de})}),P.length>0&&(k[F]=P)}};return f(a.schema.list),k}),E=k=>k==null?!0:typeof k=="string"?k.trim()==="":Array.isArray(k)?k.length===0:!1,g=k=>{if(typeof k=="number")return Number.isFinite(k)?k:void 0;if(typeof k!="string")return;const f=k.trim();if(!f)return;const x=Number(f);return Number.isFinite(x)?x:void 0},T=k=>{if(typeof k=="boolean")return k;if(typeof k!="string")return;const f=k.trim().toLowerCase();if(f==="true")return!0;if(f==="false")return!1},R=k=>Array.isArray(k)?k.map(f=>String(f)).map(f=>f.trim()).filter(Boolean):typeof k=="string"?k.split(",").map(f=>f.trim()).filter(Boolean):typeof k=="number"||typeof k=="boolean"?[String(k)]:[],q=(k,f)=>{const x=f[k.field],b=k.operator,F=k.value;if(b==="is_empty")return E(x);if(b==="not_empty")return!E(x);if(b==="in"||b==="not_in"){const P=R(F),M=Array.isArray(x)?x.map(de=>String(de)).some(de=>P.includes(de)):typeof x=="string"||typeof x=="number"||typeof x=="boolean"?P.includes(String(x)):!1;return b==="in"?M:!M}if(b==="contains"||b==="not_contains"){const P=F==null?"":String(F),M=typeof x=="string"?x.includes(P):Array.isArray(x)?x.map(de=>String(de)).includes(P):!1;return b==="contains"?M:!M}if(b==="eq"||b==="neq"){if(x==null){const M=F==null||F==="";return b==="eq"?M:!M}if(typeof x=="number"){const M=g(F),de=M!==void 0&&x===M;return b==="eq"?de:!de}if(typeof x=="boolean"){const M=T(F),de=M!==void 0&&x===M;return b==="eq"?de:!de}if(typeof x=="string"){const M=x===String(F??"");return b==="eq"?M:!M}const P=String(x)===String(F??"");return b==="eq"?P:!P}if(b==="gt"||b==="gte"||b==="lt"||b==="lte"){const P=g(x),M=g(F);return P===void 0||M===void 0?!1:b==="gt"?P>M:b==="gte"?P>=M:b==="lt"?P<M:P<=M}return!1},U=(k,f)=>{const x=k.conditions||[];return x.length===0?!1:k.logic==="all"?x.every(b=>q(b,f)):x.some(b=>q(b,f))},W=e.computed(()=>{const k=a.schema.config.visibilityRules||[],f={},x=new Set;for(const b of k)for(const F of b.actions||[])F.field&&F.action==="show"&&x.add(F.field);for(const b of x)f[b]=!1;for(const b of k)if(U(b,i.value))for(const P of b.actions||[])f[P.field]=P.action==="show";return f}),oe=k=>{const f=W.value[k];return f===void 0?!0:f},pe=e.computed(()=>{const k=[],f=x=>{for(const b of x){if(b.type==="grid"){const F=(b.children||[]).filter(P=>P.type==="grid-col");for(const P of F)f(P.children||[]);continue}if(b.type==="grid-col"){f(b.children||[]);continue}if(b.type==="group"){f(b.children||[]);continue}b.type==="text"||b.type==="link"||k.push(h(b))}};return f(a.schema.list),k}),se=e.computed(()=>pe.value.filter(k=>!oe(k))),ne=e.ref(new Set);e.watch(()=>se.value,k=>{const f=new Set(k);for(const x of f)ne.value.has(x)||m.value?.clearValidate(x);ne.value=f},{immediate:!0});const Z=k=>Array.isArray(k)&&k.every(f=>typeof f=="string"||typeof f=="number"),xe=k=>Array.isArray(k)&&k.every(f=>Z(f)),H=(k,f)=>{if(f!==void 0){if(k.type==="checkbox"||k.type==="select"&&k.props.multiple===!0)return Z(f)?f:void 0;if(k.type==="cascader")return k.props.multiple===!0?xe(f)?f:void 0:Z(f)?f:void 0;if(k.type==="upload")return Array.isArray(f)?f:void 0;if(k.type==="sub-form")return Array.isArray(f)?f:[];if(k.type==="switch")return typeof f=="boolean"?f:void 0;if(k.type==="input-number"||k.type==="rate")return typeof f=="number"?f:void 0;if(typeof f=="string"||typeof f=="number"||typeof f=="boolean"||f===null)return f}},$=()=>{const k={...a.modelValue||{}},f=x=>{for(const b of x){if(b.type==="grid"){const P=(b.children||[]).filter(M=>M.type==="grid-col");for(const M of P)f(M.children||[]);continue}if(b.type==="grid-col"){f(b.children||[]);continue}if(b.type==="group"){f(b.children||[]);continue}if(b.type==="text"||b.type==="link")continue;const F=h(b);if(k[F]===void 0){const P=H(b,b.props.defaultValue);if(P!==void 0){k[F]=P;continue}b.type==="checkbox"?k[F]=[]:b.type==="select"&&b.props.multiple===!0?k[F]=[]:b.type==="cascader"?k[F]=[]:b.type==="sub-form"?k[F]=[]:b.type==="upload"?k[F]=[]:b.type==="switch"?k[F]=!1:k[F]=void 0}}};f(a.schema.list),i.value=k,p()};return e.watch(()=>a.schema,$,{immediate:!0,deep:!0}),e.watch(()=>a.modelValue,k=>{k&&(i.value={...k})},{deep:!0}),n({validate:()=>m.value?.validate(),resetFields:()=>m.value?.resetFields()}),(k,f)=>{const x=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(x,{ref_key:"formRef",ref:m,class:"ff-form-renderer",model:i.value,rules:C.value,"label-position":o.schema.config.labelPosition,"label-width":o.schema.config.labelWidth+"px",size:o.schema.config.size,disabled:o.disabled===!0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.schema.list,b=>(e.openBlock(),e.createBlock(sd,{key:b.id,element:b,model:i.value,"form-disabled":o.disabled===!0,"visible-map":W.value,onUpdateField:u},null,8,["element","model","form-disabled","visible-map"]))),128))]),_:1},8,["model","rules","label-position","label-width","size","disabled"])}}}),pd={class:"fast-form-designer"},ud={class:"designer-container"},fd={class:"left-container"},hd={class:"center-container"},yd={class:"actions"},gd={class:"right-container"},At=bo(e.defineComponent({__name:"FastFormDesigner",props:{componentGroups:{},toolbarActions:{}},setup(o){const n=o,{formList:t,formConfig:a,clearCanvas:c}=Lt(),i=e.ref(!1),m=e.ref(!1),h=e.ref(""),p=e.computed(()=>({config:a,list:t})),y=()=>{i.value=!0},u=()=>{const U=JSON.stringify(p.value,null,2);navigator.clipboard.writeText(U).then(()=>{$e.ElMessage.success("JSON已复制到剪贴板")}).catch(()=>{$e.ElMessage.error("复制失败")}),console.log(U)},C=()=>{h.value="",m.value=!0},E=()=>{try{const U=JSON.parse(h.value);U.config&&Object.assign(a,U.config),U.list&&(t.length=0,t.push(...U.list)),m.value=!1,$e.ElMessage.success("导入成功")}catch{$e.ElMessage.error("JSON格式错误")}},g=()=>({schema:p.value,formList:t,formConfig:a,openPreview:y,openImport:C,exportJson:u,clearCanvas:c}),T=[{key:"preview",label:"预览",type:"primary",link:!0,onClick:U=>U.openPreview()},{key:"export-json",label:"导出JSON",type:"primary",link:!0,onClick:U=>U.exportJson()},{key:"import-json",label:"导入JSON",type:"primary",link:!0,onClick:U=>U.openImport()},{key:"clear",label:"清空",type:"danger",link:!0,onClick:U=>U.clearCanvas()}],R=e.computed(()=>(n.toolbarActions?.length?n.toolbarActions:T).filter(W=>W.visible!==!1)),q=U=>{U.onClick&&U.onClick(g())};return(U,W)=>{const oe=e.resolveComponent("el-button"),pe=e.resolveComponent("el-dialog"),se=e.resolveComponent("el-input");return e.openBlock(),e.createElementBlock("div",pd,[e.createElementVNode("div",ud,[e.createElementVNode("div",fd,[e.createVNode(Pa,{"component-groups":n.componentGroups},null,8,["component-groups"])]),e.createElementVNode("div",hd,[e.createElementVNode("div",yd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,ne=>(e.openBlock(),e.createBlock(oe,{key:ne.key,type:ne.type,link:ne.link!==!1,disabled:ne.disabled===!0,onClick:Z=>q(ne)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ne.label),1)]),_:2},1032,["type","link","disabled","onClick"]))),128))]),e.createVNode(ul)]),e.createElementVNode("div",gd,[e.createVNode(Tl)])]),e.createVNode(pe,{modelValue:i.value,"onUpdate:modelValue":W[1]||(W[1]=ne=>i.value=ne),title:"表单预览",width:"60%","destroy-on-close":""},{footer:e.withCtx(()=>[e.createVNode(oe,{onClick:W[0]||(W[0]=ne=>i.value=!1)},{default:e.withCtx(()=>[...W[5]||(W[5]=[e.createTextVNode("关闭",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(Ot,{schema:p.value},null,8,["schema"])]),_:1},8,["modelValue"]),e.createVNode(pe,{modelValue:m.value,"onUpdate:modelValue":W[4]||(W[4]=ne=>m.value=ne),title:"导入JSON",width:"50%"},{footer:e.withCtx(()=>[e.createVNode(oe,{onClick:W[3]||(W[3]=ne=>m.value=!1)},{default:e.withCtx(()=>[...W[6]||(W[6]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(oe,{type:"primary",onClick:E},{default:e.withCtx(()=>[...W[7]||(W[7]=[e.createTextVNode("确定",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(se,{modelValue:h.value,"onUpdate:modelValue":W[2]||(W[2]=ne=>h.value=ne),type:"textarea",rows:10,placeholder:"请输入JSON配置"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-2da758c0"]]);Xe.FastFormDesigner=At,Xe.FormRenderer=Ot,Xe.default=At,Object.defineProperties(Xe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
3
|
+
}`),le=e.ref("{}"),he=e.ref(!1),Oe=e.ref(void 0),We=e.ref(void 0);let po;const _=()=>{Oe.value=void 0,We.value=void 0,v.value="request"},be=d=>d==="input-number"?0:d==="switch"?!1:d==="checkbox"||d==="cascader"?[]:"test_value",we=()=>{const d={},l=w=>{for(const B of w){if(B.type==="grid"){const ye=(B.children||[]).filter(z=>z.type==="grid-col");for(const z of ye)l(z.children||[]);continue}if(B.type==="grid-col"){l(B.children||[]);continue}if(B.type==="group"){l(B.children||[]);continue}const j=B.props.field?.trim()||B.id;j&&(d[j]=B.props.defaultValue??be(B.type))}};return l(c),JSON.stringify(d,null,2)},Ke=()=>{_(),te.value=we(),oe.value=!0},J=()=>{const d=n.value;if(!d)return;const l=d.props.remoteOptions;if(!(!l||!l.url))return{url:l.url,method:l.method||"GET",paramsJson:l.paramsJson,headersJson:l.headersJson,dataPath:l.dataPath,labelKey:l.labelKey||"label",valueKey:l.valueKey||"value",childrenKey:l.childrenKey}},Y=async()=>{const d=J();if(!d){Oe.value="请先配置远程接口地址";return}const l=_e(te.value);if(l.error){Oe.value=`表单值:${l.error}`;return}const w=_e(le.value);if(w.error){Oe.value=`全局变量:${w.error}`;return}po?.abort(),po=new AbortController,he.value=!0,Oe.value=void 0,We.value=void 0;try{const B=await jt(d,{formModel:l.value,globalObject:w.value},po.signal);We.value=B,v.value="response"}catch(B){if(B instanceof DOMException&&B.name==="AbortError")return;Oe.value=B instanceof Error?B.message:"接口测试失败"}finally{he.value=!1}},qo=d=>{if(d===void 0)return"";try{return JSON.stringify(d,null,2)}catch{return String(d)}},pn=e.computed(()=>{const d=We.value;if(!d)return"";const l=d.request,w={url:l.url,method:l.method,headers:l.headers??{},body:l.body,resolvedParams:l.resolvedParams,resolvedParamsRaw:l.resolvedParamsRaw,resolvedHeadersRaw:l.resolvedHeadersRaw};return qo(w)}),un=e.computed(()=>{const d=We.value;if(!d)return"";const l=d.response,w={ok:l.ok,status:l.status,statusText:l.statusText,json:l.json,text:l.text};return qo(w)}),fn=e.computed(()=>{const d=We.value;if(!d)return"";const l={extractedData:d.extractedData,mappedOptions:d.mappedOptions};return qo(l)}),s=e.computed(()=>(t.visibilityRules??[]).length),k=e.computed(()=>{const d=s.value;return d>0?`已设置${d}个字段显隐规则`:"添加字段显隐规则"}),W=e.ref(!1),de=()=>{Array.isArray(t.visibilityRules)||(t.visibilityRules=[]),W.value=!0},Ee=d=>{t.visibilityRules=d},Ne=d=>{const l=d.props.field;return typeof l=="string"&&l.trim()?l.trim():d.id},ke=e.computed(()=>{const d=[],l=new Set,w=z=>{const L=[],Te=ao=>{for(const ue of ao)(typeof ue.value=="string"||typeof ue.value=="number")&&L.push(ue.value),Array.isArray(ue.children)&&ue.children.length&&Te(ue.children)};Array.isArray(z)&&z.length&&Te(z);const to=new Map;for(const ao of L){const ue=String(ao);to.has(ue)||to.set(ue,ao)}return Array.from(to.values())},B=z=>{if(z.type==="radio"||z.type==="checkbox"||z.type==="select")return(z.props.optionsSource??"static")!=="static"?void 0:Array.isArray(z.props.options)?z.props.options.map(L=>L.value):void 0;if(z.type==="cascader")return(z.props.optionsSource??"static")!=="static"?void 0:w(Array.isArray(z.props.options)?z.props.options:[]);if(z.type==="pca"){const L=z.props.pcaType??"province-city-area",Te=L==="province"?1:L==="province-city"?2:3;return w(a.value.get(Te)??[])}},j=z=>z.type==="switch"?"boolean":z.type==="input-number"||z.type==="rate"?"number":z.type==="checkbox"||z.type==="select"&&z.props.multiple===!0||z.type==="cascader"?"array":z.type==="pca"?(z.props.pcaType??"province-city-area")==="province"&&z.props.multiple!==!0?"string":"array":z.type==="upload"||z.type==="sub-form"?"array":"string",ye=z=>{for(const L of z){if(L.type==="grid"){const ao=(L.children||[]).filter(ue=>ue.type==="grid-col");for(const ue of ao)ye(ue.children||[]);continue}if(L.type==="grid-col"){ye(L.children||[]);continue}if(L.type==="group"){ye(L.children||[]);continue}if(L.type==="text"||L.type==="link")continue;const Te=Ne(L);if(!Te||l.has(Te))continue;l.add(Te);const to=B(L);d.push({label:`${L.props.label||Te}(${Te})`,value:Te,kind:j(L),componentType:L.type,options:to})}};return ye(c),d});return(d,l)=>{const w=e.resolveComponent("el-input"),B=e.resolveComponent("el-form-item"),j=e.resolveComponent("el-option"),ye=e.resolveComponent("el-select"),z=e.resolveComponent("el-input-number"),L=e.resolveComponent("el-switch"),Te=e.resolveComponent("el-rate"),to=e.resolveComponent("el-date-picker"),ao=e.resolveComponent("el-time-picker"),ue=e.resolveComponent("el-divider"),Xe=e.resolveComponent("el-radio-button"),Bo=e.resolveComponent("el-radio-group"),Qe=e.resolveComponent("el-button"),Wo=e.resolveComponent("el-form"),hn=e.resolveComponent("el-empty"),Vo=e.resolveComponent("el-tab-pane"),yn=e.resolveComponent("el-tabs"),gn=e.resolveComponent("el-alert"),Jn=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Bl,[e.createVNode(yn,{modelValue:i.value,"onUpdate:modelValue":l[64]||(l[64]=r=>i.value=r),class:"config-tabs",stretch:""},{default:e.withCtx(()=>[e.createVNode(Vo,{label:"字段属性",name:"component"},{default:e.withCtx(()=>[e.unref(n)?(e.openBlock(),e.createElementBlock("div",Sl,[e.createVNode(Wo,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(B,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.label,"onUpdate:modelValue":l[0]||(l[0]=r=>e.unref(n).props.label=r)},null,8,["modelValue"])]),_:1}),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:0,label:"字段名"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.field,"onUpdate:modelValue":l[1]||(l[1]=r=>e.unref(n).props.field=r),placeholder:"默认使用随机ID",onBlur:x},null,8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:1,label:"描述信息"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.description,"onUpdate:modelValue":l[2]||(l[2]=r=>e.unref(n).props.description=r),placeholder:"输入描述信息"},null,8,["modelValue"])]),_:1})),["grid","grid-col"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:2,label:"组件宽度"},{default:e.withCtx(()=>[e.createVNode(ye,{modelValue:e.unref(n).props.width,"onUpdate:modelValue":l[3]||(l[3]=r=>e.unref(n).props.width=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"25%",value:"25%"}),e.createVNode(j,{label:"33.33%",value:"33.33%"}),e.createVNode(j,{label:"50%",value:"50%"}),e.createVNode(j,{label:"66.66%",value:"66.66%"}),e.createVNode(j,{label:"75%",value:"75%"}),e.createVNode(j,{label:"100%",value:"100%"})]),_:1},8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:3,label:"标签宽度(0或空则跟随表单)"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.labelWidth,"onUpdate:modelValue":l[4]||(l[4]=r=>e.unref(n).props.labelWidth=r),min:0},null,8,["modelValue"])]),_:1})),["grid","grid-col","group"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:4,label:"标签换行","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.labelWrap,"onUpdate:modelValue":l[5]||(l[5]=r=>e.unref(n).props.labelWrap=r)},null,8,["modelValue"])]),_:1})),p.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.unref(n).type==="switch"?(e.openBlock(),e.createBlock(B,{key:0,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:H.value,"onUpdate:modelValue":l[6]||(l[6]=r=>H.value=r)},null,8,["modelValue"])]),_:1})):e.unref(n).type==="input-number"?(e.openBlock(),e.createBlock(B,{key:1,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:R.value,"onUpdate:modelValue":l[7]||(l[7]=r=>R.value=r)},null,8,["modelValue"])]),_:1})):e.unref(n).type==="rate"?(e.openBlock(),e.createBlock(B,{key:2,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(Te,{modelValue:q.value,"onUpdate:modelValue":l[8]||(l[8]=r=>q.value=r),max:e.unref(n).props.max??5,"allow-half":e.unref(n).props.allowHalf===!0,clearable:e.unref(n).props.clearable===!0},null,8,["modelValue","max","allow-half","clearable"])]),_:1})):e.unref(n).type==="date"?(e.openBlock(),e.createBlock(B,{key:3,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(to,{modelValue:ee.value,"onUpdate:modelValue":l[9]||(l[9]=r=>ee.value=r),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",clearable:!0,onChange:ne},null,8,["modelValue"])]),_:1})):e.unref(n).type==="time"?(e.openBlock(),e.createBlock(B,{key:4,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(ao,{modelValue:pe.value,"onUpdate:modelValue":l[10]||(l[10]=r=>pe.value=r),format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:"选择时间",clearable:!0,onChange:Z},null,8,["modelValue"])]),_:1})):e.unref(n).type==="datetime"?(e.openBlock(),e.createBlock(B,{key:5,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(to,{modelValue:ie.value,"onUpdate:modelValue":l[11]||(l[11]=r=>ie.value=r),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"选择日期时间",clearable:!0,onChange:Ce},null,8,["modelValue"])]),_:1})):e.unref(n).type==="checkbox"||e.unref(n).type==="cascader"||e.unref(n).type==="pca"&&((e.unref(n).props.pcaType??"province-city-area")!=="province"||e.unref(n).props.multiple===!0)||e.unref(n).type==="select"&&e.unref(n).props.multiple===!0?(e.openBlock(),e.createBlock(B,{key:6,label:"默认值(JSON)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:D.value,"onUpdate:modelValue":l[12]||(l[12]=r=>D.value=r),type:"textarea",rows:3,placeholder:U.value,onInput:Le,onBlur:Fe},null,8,["modelValue","placeholder"])]),_:1})):(e.openBlock(),e.createBlock(B,{key:7,label:"默认值"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:T.value,"onUpdate:modelValue":l[13]||(l[13]=r=>T.value=r),placeholder:"可直接输入字符串;也支持输入 1 / true / null 等 JSON 值",onInput:h,onBlur:V},null,8,["modelValue"])]),_:1}))],64)):e.createCommentVNode("",!0),f(e.unref(n).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[74]||(l[74]=[e.createTextVNode("选项数据",-1)])]),_:1}),e.createVNode(B,{label:"选项来源"},{default:e.withCtx(()=>[e.createVNode(Bo,{modelValue:e.unref(n).props.optionsSource,"onUpdate:modelValue":l[14]||(l[14]=r=>e.unref(n).props.optionsSource=r)},{default:e.withCtx(()=>[e.createVNode(Xe,{value:"static"},{default:e.withCtx(()=>[...l[75]||(l[75]=[e.createTextVNode("静态",-1)])]),_:1}),e.createVNode(Xe,{value:"remote"},{default:e.withCtx(()=>[...l[76]||(l[76]=[e.createTextVNode("远程",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.unref(n).type==="select"||e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(B,{key:0,label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[15]||(l[15]=r=>e.unref(n).props.multiple=r),onChange:ae},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="select"?(e.openBlock(),e.createBlock(B,{key:1,label:"可搜索","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.filterable,"onUpdate:modelValue":l[16]||(l[16]=r=>e.unref(n).props.filterable=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="select"?(e.openBlock(),e.createBlock(B,{key:2,label:"虚拟化","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.virtualized,"onUpdate:modelValue":l[17]||(l[17]=r=>e.unref(n).props.virtualized=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(B,{key:3,label:"任意级","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.checkStrictly,"onUpdate:modelValue":l[18]||(l[18]=r=>e.unref(n).props.checkStrictly=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),(e.unref(n).props.optionsSource??"static")==="static"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(B,{key:0,label:"静态选项(JSON)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:b.value,"onUpdate:modelValue":l[19]||(l[19]=r=>b.value=r),type:"textarea",rows:8,placeholder:"请输入数组 JSON,节点格式:{ label, value, children? }",onBlur:io},null,8,["modelValue"])]),_:1})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ko.value,(r,De)=>(e.openBlock(),e.createElementBlock("div",{key:De,class:"option-item"},[e.createVNode(B,{label:"选项文本"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:r.label,"onUpdate:modelValue":Ae=>r.label=Ae},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(B,{label:"选项值"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:r.value,"onUpdate:modelValue":Ae=>r.value=Ae},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(Qe,{type:"danger",link:"",onClick:Ae=>so(De)},{default:e.withCtx(()=>[...l[77]||(l[77]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"]),e.createVNode(ue)]))),128)),e.createVNode(Qe,{style:{width:"100%","margin-bottom":"10px"},onClick:mo},{default:e.withCtx(()=>[...l[78]||(l[78]=[e.createTextVNode("添加选项",-1)])]),_:1})],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.unref(n).props.remoteOptions?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(B,{label:"接口地址"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.url,"onUpdate:modelValue":l[20]||(l[20]=r=>e.unref(n).props.remoteOptions.url=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"请求方式"},{default:e.withCtx(()=>[e.createVNode(Bo,{modelValue:e.unref(n).props.remoteOptions.method,"onUpdate:modelValue":l[21]||(l[21]=r=>e.unref(n).props.remoteOptions.method=r)},{default:e.withCtx(()=>[e.createVNode(Xe,{value:"GET"},{default:e.withCtx(()=>[...l[79]||(l[79]=[e.createTextVNode("GET",-1)])]),_:1}),e.createVNode(Xe,{value:"POST"},{default:e.withCtx(()=>[...l[80]||(l[80]=[e.createTextVNode("POST",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(B,{label:"数据路径(可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.dataPath,"onUpdate:modelValue":l[22]||(l[22]=r=>e.unref(n).props.remoteOptions.dataPath=r),placeholder:"如 data.list"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"label 字段"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.labelKey,"onUpdate:modelValue":l[23]||(l[23]=r=>e.unref(n).props.remoteOptions.labelKey=r),placeholder:"默认 label"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"value 字段"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.valueKey,"onUpdate:modelValue":l[24]||(l[24]=r=>e.unref(n).props.remoteOptions.valueKey=r),placeholder:"默认 value"},null,8,["modelValue"])]),_:1}),e.unref(n).type==="cascader"?(e.openBlock(),e.createBlock(B,{key:0,label:"children 字段(可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.childrenKey,"onUpdate:modelValue":l[25]||(l[25]=r=>e.unref(n).props.remoteOptions.childrenKey=r),placeholder:"如 children"},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(B,{label:"请求参数(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.paramsJson,"onUpdate:modelValue":l[26]||(l[26]=r=>e.unref(n).props.remoteOptions.paramsJson=r),type:"textarea",rows:3,placeholder:'{"page": 1, "userId": "{{form.userId}}", "token": "{{cookie:token}}"}'},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"请求头(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.remoteOptions.headersJson,"onUpdate:modelValue":l[27]||(l[27]=r=>e.unref(n).props.remoteOptions.headersJson=r),type:"textarea",rows:3,placeholder:'{"Authorization": "Bearer {{localStorage:token}}"}'},null,8,["modelValue"])]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(Qe,{type:"primary",plain:"",disabled:!e.unref(n).props.remoteOptions.url,onClick:Ke},{default:e.withCtx(()=>[...l[81]||(l[81]=[e.createTextVNode(" 测试接口 ",-1)])]),_:1},8,["disabled"])]),_:1})],64)):e.createCommentVNode("",!0)],64))],64)):e.createCommentVNode("",!0),e.unref(n).type==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:7},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[82]||(l[82]=[e.createTextVNode("栅格配置",-1)])]),_:1}),e.createVNode(B,{label:"间距 (gutter)"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.gutter,"onUpdate:modelValue":l[28]||(l[28]=r=>e.unref(n).props.gutter=r),min:0,max:80},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"列数"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:N.value,"onUpdate:modelValue":l[29]||(l[29]=r=>N.value=r),min:1,max:4},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"列跨度 (span)"},{default:e.withCtx(()=>[e.createElementVNode("div",_l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(eo.value,(r,De)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"grid-span-item"},[e.createElementVNode("div",El,"第 "+e.toDisplayString(De+1)+" 列",1),e.createVNode(z,{modelValue:r.props.span,"onUpdate:modelValue":Ae=>r.props.span=Ae,min:1,max:24},null,8,["modelValue","onUpdate:modelValue"])]))),128))])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="sub-form"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:8},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[83]||(l[83]=[e.createTextVNode("子表单配置",-1)])]),_:1}),e.createVNode(B,{label:"显示序号"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.showIndex,"onUpdate:modelValue":l[30]||(l[30]=r=>e.unref(n).props.showIndex=r)},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"显示操作列"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.showAction,"onUpdate:modelValue":l[31]||(l[31]=r=>e.unref(n).props.showAction=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="text"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:9},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[84]||(l[84]=[e.createTextVNode("文字配置",-1)])]),_:1}),e.createVNode(B,{label:"内容"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.text,"onUpdate:modelValue":l[32]||(l[32]=r=>e.unref(n).props.text=r),type:"textarea",rows:3,placeholder:"输入文字内容"},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="link"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:10},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[85]||(l[85]=[e.createTextVNode("链接配置",-1)])]),_:1}),e.createVNode(B,{label:"文本"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.linkText,"onUpdate:modelValue":l[33]||(l[33]=r=>e.unref(n).props.linkText=r),placeholder:"显示文本(可为空)"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"地址(href)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.linkUrl,"onUpdate:modelValue":l[34]||(l[34]=r=>e.unref(n).props.linkUrl=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"打开方式"},{default:e.withCtx(()=>[e.createVNode(ye,{modelValue:e.unref(n).props.linkTarget,"onUpdate:modelValue":l[35]||(l[35]=r=>e.unref(n).props.linkTarget=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"新窗口打开",value:"_blank"}),e.createVNode(j,{label:"当前窗口打开",value:"_self"}),e.createVNode(j,{label:"父窗口打开",value:"_parent"}),e.createVNode(j,{label:"顶层窗口打开",value:"_top"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(B,{label:"下划线","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.linkUnderline,"onUpdate:modelValue":l[36]||(l[36]=r=>e.unref(n).props.linkUnderline=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["input","textarea","select","pca","date","time","datetime","cascader"].includes(e.unref(n).type)?(e.openBlock(),e.createBlock(B,{key:11,label:"占位提示"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.placeholder,"onUpdate:modelValue":l[37]||(l[37]=r=>e.unref(n).props.placeholder=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="pca"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:12},[e.createVNode(B,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(ye,{modelValue:e.unref(n).props.pcaType,"onUpdate:modelValue":l[38]||(l[38]=r=>e.unref(n).props.pcaType=r),onChange:I},{default:e.withCtx(()=>[e.createVNode(j,{label:"省会",value:"province"}),e.createVNode(j,{label:"省会/城市",value:"province-city"}),e.createVNode(j,{label:"省会/城市/区域",value:"province-city-area"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(B,{label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[39]||(l[39]=r=>e.unref(n).props.multiple=r),onChange:ae},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="signature"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:13},[e.createVNode(B,{label:"画布高度"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.signatureHeight,"onUpdate:modelValue":l[40]||(l[40]=r=>e.unref(n).props.signatureHeight=r),min:80},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"笔触粗细"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.signatureLineWidth,"onUpdate:modelValue":l[41]||(l[41]=r=>e.unref(n).props.signatureLineWidth=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"笔触颜色"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.signaturePenColor,"onUpdate:modelValue":l[42]||(l[42]=r=>e.unref(n).props.signaturePenColor=r),placeholder:"#000000"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"背景颜色"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.signatureBackgroundColor,"onUpdate:modelValue":l[43]||(l[43]=r=>e.unref(n).props.signatureBackgroundColor=r),placeholder:"#ffffff"},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),e.unref(n).type==="textarea"?(e.openBlock(),e.createBlock(B,{key:14,label:"行数"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.rows,"onUpdate:modelValue":l[44]||(l[44]=r=>e.unref(n).props.rows=r),min:1},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(n).type==="rate"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:15},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[86]||(l[86]=[e.createTextVNode("评分配置",-1)])]),_:1}),e.createVNode(B,{label:"最大分值"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.max,"onUpdate:modelValue":l[45]||(l[45]=r=>e.unref(n).props.max=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"允许半选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.allowHalf,"onUpdate:modelValue":l[46]||(l[46]=r=>e.unref(n).props.allowHalf=r)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["input","select","pca","date","time","datetime","cascader","signature","rate"].includes(e.unref(n).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:16},[e.unref(n).type!=="signature"?(e.openBlock(),e.createBlock(B,{key:0,label:"显示清除按钮","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.clearable,"onUpdate:modelValue":l[47]||(l[47]=r=>e.unref(n).props.clearable=r)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),["group","text"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:17,label:"是否禁用","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.disabled,"onUpdate:modelValue":l[48]||(l[48]=r=>e.unref(n).props.disabled=r)},null,8,["modelValue"])]),_:1})),e.unref(n).type==="upload"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:18},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[87]||(l[87]=[e.createTextVNode("上传配置",-1)])]),_:1}),e.createVNode(B,{label:"上传地址"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.action,"onUpdate:modelValue":l[49]||(l[49]=r=>e.unref(n).props.action=r),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.name,"onUpdate:modelValue":l[50]||(l[50]=r=>e.unref(n).props.name=r),placeholder:"file"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"文件类型"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.accept,"onUpdate:modelValue":l[51]||(l[51]=r=>e.unref(n).props.accept=r),placeholder:".png,.jpg"},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"是否多选","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.multiple,"onUpdate:modelValue":l[52]||(l[52]=r=>e.unref(n).props.multiple=r),onChange:ce},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"最大数量"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(n).props.limit,"onUpdate:modelValue":l[53]||(l[53]=r=>e.unref(n).props.limit=r),min:1},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"列表样式"},{default:e.withCtx(()=>[e.createVNode(ye,{modelValue:e.unref(n).props.listType,"onUpdate:modelValue":l[54]||(l[54]=r=>e.unref(n).props.listType=r)},{default:e.withCtx(()=>[e.createVNode(j,{label:"文本列表",value:"text"}),e.createVNode(j,{label:"缩略图列表",value:"picture"}),e.createVNode(j,{label:"照片墙",value:"picture-card"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(B,{label:"自动上传","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.autoUpload,"onUpdate:modelValue":l[55]||(l[55]=r=>e.unref(n).props.autoUpload=r)},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"显示文件列表","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.showFileList,"onUpdate:modelValue":l[56]||(l[56]=r=>e.unref(n).props.showFileList=r)},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"携带 Cookie","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.withCredentials,"onUpdate:modelValue":l[57]||(l[57]=r=>e.unref(n).props.withCredentials=r)},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"请求头(JSON)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.uploadHeadersJson,"onUpdate:modelValue":l[58]||(l[58]=r=>e.unref(n).props.uploadHeadersJson=r),type:"textarea",rows:3,placeholder:'{"Authorization":"Bearer ..."}'},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"额外参数(JSON)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:e.unref(n).props.uploadDataJson,"onUpdate:modelValue":l[59]||(l[59]=r=>e.unref(n).props.uploadDataJson=r),type:"textarea",rows:3,placeholder:'{"bizId":123}'},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(B,{key:19,label:"是否必填","label-position":"left"},{default:e.withCtx(()=>[e.createVNode(L,{modelValue:e.unref(n).props.required,"onUpdate:modelValue":l[60]||(l[60]=r=>e.unref(n).props.required=r)},null,8,["modelValue"])]),_:1})),["grid","grid-col","group","text","link"].includes(e.unref(n).type)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:20},[e.createVNode(ue,null,{default:e.withCtx(()=>[...l[88]||(l[88]=[e.createTextVNode("验证规则",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).props.rules,(r,De)=>(e.openBlock(),e.createElementBlock("div",{key:De,class:"rule-item"},[e.createElementVNode("div",Tl,[e.createElementVNode("span",null,"规则 "+e.toDisplayString(De+1),1),e.createVNode(Qe,{type:"danger",link:"",onClick:Ae=>M(De)},{default:e.withCtx(()=>[...l[89]||(l[89]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])]),e.createVNode(B,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(ye,{modelValue:r.type,"onUpdate:modelValue":Ae=>r.type=Ae},{default:e.withCtx(()=>[e.createVNode(j,{label:"邮箱",value:"email"}),e.createVNode(j,{label:"手机号",value:"phone"}),e.createVNode(j,{label:"URL",value:"url"}),e.createVNode(j,{label:"IP地址",value:"ip"}),e.createVNode(j,{label:"正则表达式",value:"regexp"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(B,{label:"错误提示"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:r.message,"onUpdate:modelValue":Ae=>r.message=Ae},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),r.type==="regexp"?(e.openBlock(),e.createBlock(B,{key:0,label:"正则模式"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:r.pattern,"onUpdate:modelValue":Ae=>r.pattern=Ae},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):e.createCommentVNode("",!0)]))),128)),e.createVNode(Qe,{style:{width:"100%"},onClick:S},{default:e.withCtx(()=>[...l[90]||(l[90]=[e.createTextVNode("添加验证规则",-1)])]),_:1})],64))]),_:1})])):(e.openBlock(),e.createElementBlock("div",Dl,[e.createVNode(hn,{description:"请选择一个字段"})]))]),_:1}),e.createVNode(Vo,{label:"表单属性",name:"form"},{default:e.withCtx(()=>[e.createElementVNode("div",Ol,[e.createVNode(Wo,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(B,{label:"标签对齐方式"},{default:e.withCtx(()=>[e.createVNode(Bo,{modelValue:e.unref(t).labelPosition,"onUpdate:modelValue":l[61]||(l[61]=r=>e.unref(t).labelPosition=r)},{default:e.withCtx(()=>[e.createVNode(Xe,{value:"left"},{default:e.withCtx(()=>[...l[91]||(l[91]=[e.createTextVNode("左",-1)])]),_:1}),e.createVNode(Xe,{value:"right"},{default:e.withCtx(()=>[...l[92]||(l[92]=[e.createTextVNode("右",-1)])]),_:1}),e.createVNode(Xe,{value:"top"},{default:e.withCtx(()=>[...l[93]||(l[93]=[e.createTextVNode("顶部",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(B,{label:"标签宽度"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:e.unref(t).labelWidth,"onUpdate:modelValue":l[62]||(l[62]=r=>e.unref(t).labelWidth=r)},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"组件尺寸"},{default:e.withCtx(()=>[e.createVNode(Bo,{modelValue:e.unref(t).size,"onUpdate:modelValue":l[63]||(l[63]=r=>e.unref(t).size=r)},{default:e.withCtx(()=>[e.createVNode(Xe,{value:"large"},{default:e.withCtx(()=>[...l[94]||(l[94]=[e.createTextVNode("大",-1)])]),_:1}),e.createVNode(Xe,{value:"default"},{default:e.withCtx(()=>[...l[95]||(l[95]=[e.createTextVNode("中",-1)])]),_:1}),e.createVNode(Xe,{value:"small"},{default:e.withCtx(()=>[...l[96]||(l[96]=[e.createTextVNode("小",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(ue,null,{default:e.withCtx(()=>[...l[97]||(l[97]=[e.createTextVNode("字段显隐规则",-1)])]),_:1}),e.createVNode(B,{label:"配置"},{default:e.withCtx(()=>[e.createVNode(Qe,{type:"primary",plain:"",style:{width:"100%"},onClick:de},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.value),1)]),_:1})]),_:1})]),_:1})])]),_:1})]),_:1},8,["modelValue"])]),e.createVNode(Jn,{modelValue:oe.value,"onUpdate:modelValue":l[72]||(l[72]=r=>oe.value=r),title:"远程接口测试",width:"760px","destroy-on-close":""},{footer:e.withCtx(()=>[e.createVNode(Qe,{disabled:he.value,onClick:l[71]||(l[71]=r=>oe.value=!1)},{default:e.withCtx(()=>[...l[100]||(l[100]=[e.createTextVNode("关闭",-1)])]),_:1},8,["disabled"])]),default:e.withCtx(()=>[e.createVNode(Wo,{"label-position":"top",size:"small"},{default:e.withCtx(()=>[e.createVNode(B,{label:"测试上下文:表单值(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:te.value,"onUpdate:modelValue":l[65]||(l[65]=r=>te.value=r),type:"textarea",rows:4,placeholder:'{"userId": 1}'},null,8,["modelValue"])]),_:1}),e.createVNode(B,{label:"测试上下文:全局变量(JSON,可选)"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:le.value,"onUpdate:modelValue":l[66]||(l[66]=r=>le.value=r),type:"textarea",rows:3,placeholder:'{"app": {"tenantId": "t1"}}'},null,8,["modelValue"])]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(Qe,{type:"primary",loading:he.value,onClick:Y},{default:e.withCtx(()=>[...l[98]||(l[98]=[e.createTextVNode("执行测试",-1)])]),_:1},8,["loading"]),e.createVNode(Qe,{disabled:he.value,onClick:_},{default:e.withCtx(()=>[...l[99]||(l[99]=[e.createTextVNode("清空结果",-1)])]),_:1},8,["disabled"])]),_:1}),Oe.value?(e.openBlock(),e.createBlock(gn,{key:0,type:"error",closable:!1,title:Oe.value},null,8,["title"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(yn,{modelValue:v.value,"onUpdate:modelValue":l[70]||(l[70]=r=>v.value=r),class:"remote-test-tabs"},{default:e.withCtx(()=>[e.createVNode(Vo,{label:"请求",name:"request"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:pn.value,"onUpdate:modelValue":l[67]||(l[67]=r=>pn.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示请求快照"},null,8,["modelValue"])]),_:1}),e.createVNode(Vo,{label:"响应",name:"response"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:un.value,"onUpdate:modelValue":l[68]||(l[68]=r=>un.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示响应内容"},null,8,["modelValue"])]),_:1}),e.createVNode(Vo,{label:"映射结果",name:"options"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:fn.value,"onUpdate:modelValue":l[69]||(l[69]=r=>fn.value=r),type:"textarea",rows:12,readonly:"",placeholder:"点击执行测试后显示 dataPath 提取与映射结果"},null,8,["modelValue"])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(Nl,{modelValue:W.value,"onUpdate:modelValue":l[73]||(l[73]=r=>W.value=r),rules:e.unref(t).visibilityRules??[],"field-options":ke.value,onSave:Ee},null,8,["modelValue","rules","field-options"])],64)}}}),[["__scopeId","data-v-b9a04fc9"]]),Ul={key:0,class:"ff-signature-actions"},Fl=bo(e.defineComponent({name:"SignaturePad",__name:"SignaturePad",props:{modelValue:{},height:{default:160},width:{default:"100%"},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},lineWidth:{default:2},penColor:{default:"#000000"},backgroundColor:{default:"#ffffff"},outputType:{default:"png"},quality:{default:.92}},emits:["update:modelValue"],setup(o,{emit:a}){const n=o,t=a,c=e.ref(null),i=e.ref(null),m=e.computed(()=>typeof n.height=="number"&&n.height>0?n.height:160),f=e.computed(()=>n.disabled===!0),p=e.computed(()=>n.clearable===!0),g=e.computed(()=>n.width||"100%"),u=e.ref(!1),b=e.ref(null),E=e.ref(null),x=()=>{const h=c.value;return h?h.getContext("2d"):null},T=()=>{const h=i.value;if(!h)return 0;const C=h.getBoundingClientRect();return Math.max(0,Math.floor(C.width))},D=()=>{const h=c.value,C=x();if(!h||!C)return;const y=T();if(y<=0)return;C.save(),C.setTransform(1,0,0,1,0,0);const F=window.devicePixelRatio||1;C.scale(F,F),C.fillStyle=n.backgroundColor,C.fillRect(0,0,y,m.value),C.restore()},H=async h=>{const C=c.value,y=x();!C||!y||await new Promise(F=>{const $=new Image;$.onload=()=>{const P=T();if(P<=0){F();return}D(),y.drawImage($,0,0,P,m.value),F()},$.onerror=()=>F(),$.src=h})},R=async()=>{const h=c.value,C=x();if(!h||!C)return;const y=T();if(y<=0)return;const F=window.devicePixelRatio||1;h.width=Math.floor(y*F),h.height=Math.floor(m.value*F),h.style.width=`${y}px`,h.style.height=`${m.value}px`,C.setTransform(1,0,0,1,0,0),C.scale(F,F),C.lineCap="round",C.lineJoin="round",D(),typeof n.modelValue=="string"&&n.modelValue.trim()&&await H(n.modelValue)},q=()=>{const h=c.value;if(!h)return null;const C=n.outputType==="jpeg"?"image/jpeg":"image/png";if(C==="image/jpeg"){const y=typeof n.quality=="number"&&n.quality>=0&&n.quality<=1?n.quality:.92;return h.toDataURL(C,y)}return h.toDataURL(C)},ee=async()=>{await e.nextTick(),D(),t("update:modelValue",null)},pe=h=>{const C=c.value;if(!C)return null;const y=C.getBoundingClientRect();return{x:h.clientX-y.left,y:h.clientY-y.top}},ie=h=>{const C=x();C&&(C.strokeStyle=n.penColor,C.lineWidth=typeof n.lineWidth=="number"&&n.lineWidth>0?n.lineWidth:2,C.beginPath(),C.moveTo(h.x,h.y),E.value=h)},ne=h=>{const C=x();if(!C)return;if(!E.value){ie(h);return}C.lineTo(h.x,h.y),C.stroke(),E.value=h},Z=()=>{const h=x();if(!h)return;h.closePath(),E.value=null;const C=q();t("update:modelValue",C)},Ce=h=>{if(f.value)return;const C=c.value;if(!C||b.value!==null)return;const y=pe(h);y&&(u.value=!0,b.value=h.pointerId,C.setPointerCapture(h.pointerId),ie(y))},se=h=>{if(f.value||!u.value||b.value!==h.pointerId)return;const C=pe(h);C&&ne(C)},O=h=>{f.value||u.value&&b.value===h.pointerId&&(u.value=!1,b.value=null,Z())};let V=null;return e.onMounted(async()=>{await e.nextTick(),await R(),i.value&&(V=new ResizeObserver(()=>{R()}),V.observe(i.value))}),e.onBeforeUnmount(()=>{V&&i.value&&V.unobserve(i.value),V=null}),e.watch(()=>[n.modelValue,n.height,n.backgroundColor],async()=>{await e.nextTick(),await R()}),(h,C)=>{const y=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{ref_key:"wrapRef",ref:i,class:"ff-signature-pad",style:e.normalizeStyle({width:g.value})},[e.createElementVNode("div",{class:"ff-signature-canvas-wrap",style:e.normalizeStyle({height:`${m.value}px`})},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:c,class:e.normalizeClass(["ff-signature-canvas",{disabled:f.value}]),onPointerdown:Ce,onPointermove:se,onPointerup:O,onPointercancel:O,onPointerleave:O},null,34)],4),p.value&&!f.value?(e.openBlock(),e.createElementBlock("div",Ul,[e.createVNode(y,{size:"small",onClick:ee},{default:e.withCtx(()=>[...C[0]||(C[0]=[e.createTextVNode("清空",-1)])]),_:1})])):e.createCommentVNode("",!0)],4)}}}),[["__scopeId","data-v-a1a825f6"]]),Ml={key:0},Rl={key:1},Pl={class:"ff-group-header"},Il={class:"ff-group-title"},$l={class:"ff-group-body"},Jl={key:3,class:"ff-form-item sub-form-container"},Ll={class:"ff-label-inline"},zl={class:"ff-label-text"},jl={key:0,class:"sub-form-content"},Hl={class:"sub-form-table-wrap"},Yl={class:"row-index-wrapper"},ql={class:"index-number"},Wl={key:0,class:"index-actions"},Gl={key:0,class:"sub-form-actions"},Kl={key:1,class:"no-sub-form"},Xl={key:4,class:"ff-form-item"},Ql={class:"ff-label-inline"},Zl={class:"ff-label-text"},vl=["src"],ed={key:1,class:"ff-signature-placeholder"},od={key:0,class:"ff-signature-actions"},nd={class:"thumbnail-area"},td=["src"],ad={key:1,class:"file-icon-thumbnail"},ld={class:"el-upload-list__item-actions"},dd=["onClick"],cd=["onClick"],rd=["title"],id=["onClick"],md=["onClick"],sd=["title"],pd=["onClick"],ud=["src"],fd=bo(e.defineComponent({name:"FormRendererNode",__name:"FormRendererNode",props:{element:{},model:{},hideLabel:{type:Boolean,default:!1},formDisabled:{type:Boolean,default:!1},visibleMap:{}},emits:["update-field"],setup(o,{emit:a}){const n=o,t=a,c=e.computed(()=>{const s=n.element.props.field;return typeof s=="string"&&s.trim()?s.trim():n.element.id}),i=s=>{const k=n.visibleMap?.[s];return k===void 0?!0:k},m=s=>{const k=s.props.field;return typeof k=="string"&&k.trim()?k.trim():s.id},f=s=>s.type==="grid"?(s.children||[]).filter(W=>W.type==="grid-col").some(W=>f(W)):s.type==="grid-col"?(s.children||[]).some(k=>f(k)):s.type==="group"?(s.children||[]).some(k=>f(k)):s.type==="text"||s.type==="link"?!0:i(m(s)),p=e.computed(()=>f(n.element)),g=e.computed(()=>{if(!(n.element.type==="text"||n.element.type==="link"))return c.value}),u=e.computed(()=>n.formDisabled===!0||n.element.props.disabled===!0),b=e.computed(()=>n.model[c.value]),E=e.computed(()=>{const s=n.element.props.linkUrl;if(typeof s!="string")return;const k=s.trim();return k||void 0}),x=e.computed(()=>{const s=n.element.props.linkText;if(typeof s=="string"&&s.trim())return s;const k=n.element.props.linkUrl;return typeof k=="string"&&k.trim()?k.trim():"链接"}),T=s=>{if(typeof s=="number"&&Number.isFinite(s)&&!(s<=0))return`${s}px`},D=e.computed(()=>T(n.element.props.labelWidth)),H=e.computed(()=>n.element.props.width??"100%"),R=e.ref([]),q=e.ref(!1),ee=e.computed(()=>{const s=n.element.props.pcaType;return s==="province"||s==="province-city"||s==="province-city-area"?s:"province-city-area"}),pe=e.ref([]),ie=e.ref([]),ne=async s=>{n.element.type==="pca"&&(s==="province"?pe.value=await xo(1):s==="province-city"?ie.value=await xo(2):ie.value=await xo(3))};e.watch(ee,ne,{immediate:!0});const Z=e.computed(()=>({multiple:n.element.props.multiple===!0})),Ce=s=>s==="radio"||s==="checkbox"||s==="select"||s==="cascader";(()=>{const s=e.computed(()=>{if(!Ce(n.element.type))return[];if((n.element.props.optionsSource??"static")==="static")return[];const d=n.element.props.remoteOptions;if(!d)return[];const l=[...jn(d.paramsJson),...jn(d.headersJson)];return l.length===0&&(Hn(d.paramsJson)||Hn(d.headersJson))?"all":Array.from(new Set(l)).sort()}),k=e.ref(void 0),W=e.ref(null),de=()=>{W.value&&(W.value.abort(),W.value=null)},Ee=ke=>{const d=s.value;if(d==="all")return JSON.stringify(ke);const l={};for(const w of d)l[w]=ke[w];return JSON.stringify(l)},Ne=ke=>{de();const d=new AbortController;W.value=d;const l={url:ke.url,method:ke.method||"GET",paramsJson:ke.paramsJson,headersJson:ke.headersJson,dataPath:ke.dataPath,labelKey:ke.labelKey||"label",valueKey:ke.valueKey||"value",childrenKey:ke.childrenKey};q.value=!0,Wn(l,d.signal,{formModel:n.model}).then(w=>{d.signal.aborted||(R.value=w)}).catch(w=>{w instanceof DOMException&&w.name==="AbortError"||(R.value=[])}).finally(()=>{d.signal.aborted||(q.value=!1)})};e.watch(()=>n.model,ke=>{if(!Ce(n.element.type)){de(),R.value=[],q.value=!1,k.value=void 0;return}if((n.element.props.optionsSource??"static")==="static"){de(),R.value=Array.isArray(n.element.props.options)?n.element.props.options:[],q.value=!1,k.value=void 0;return}const l=n.element.props.remoteOptions;if(!l||!l.url){de(),R.value=[],q.value=!1,k.value=void 0;return}const w=Ee(ke);!(k.value===void 0)&&w===k.value||(k.value=w,Ne(l))},{immediate:!0,deep:!0}),e.watch(()=>n.element.props.remoteOptions,()=>{de(),R.value=[],q.value=!1,k.value=void 0},{deep:!0}),e.onBeforeUnmount(()=>de())})();const O=s=>{t("update-field",{element:n.element,key:c.value,value:s})},V=e.computed({get:()=>{const s=b.value;return typeof s=="string"?s:typeof s=="number"?String(s):""},set:s=>O(s)}),h=e.computed({get:()=>{const s=b.value;return typeof s=="string"&&s.trim()?s:null},set:s=>{if(typeof s=="string"&&s.trim()){O(s);return}O(void 0)}}),C=e.computed({get:()=>{const s=b.value;return typeof s=="string"&&s.trim()?s:null},set:s=>{if(typeof s=="string"&&s.trim()){O(s);return}O(void 0)}}),y=e.ref(!1),F=e.ref(null),$=()=>{u.value||(F.value=C.value,y.value=!0)},P=()=>{y.value=!1},ce=()=>{C.value=F.value,y.value=!1},U=()=>{C.value=null},I=e.computed({get:()=>{const s=b.value;return typeof s=="string"||typeof s=="number"?s:void 0},set:s=>O(s)}),ae=e.computed({get:()=>{const s=b.value;if(typeof s=="number")return s;if(typeof s=="string"){const k=s.trim();if(k==="")return;const W=Number(k);return Number.isFinite(W)?W:void 0}},set:s=>O(s)}),Fe=e.computed({get:()=>{const s=b.value;return typeof s=="number"?s:0},set:s=>{if(typeof s!="number"){O(void 0);return}if(s<=0){O(void 0);return}O(s)}}),Le=e.computed({get:()=>b.value===!0,set:s=>O(s)}),_e=e.computed({get:()=>{const s=b.value;return Array.isArray(s)?s.every(k=>typeof k=="string"||typeof k=="number")?s:[]:[]},set:s=>O(s)}),xe=s=>Array.isArray(s)&&s.every(k=>typeof k=="string"||typeof k=="number"),Pe=s=>Array.isArray(s)&&s.every(k=>xe(k)),Ie=e.computed({get:()=>{const s=b.value;return n.element.props.multiple===!0?xe(s)?s:[]:typeof s=="string"||typeof s=="number"?s:void 0},set:s=>{if(n.element.props.multiple===!0){O(xe(s)?s:[]);return}O(typeof s=="string"||typeof s=="number"?s:void 0)}}),io=e.computed({get:()=>{const s=b.value;return n.element.props.multiple===!0?Pe(s)?s:[]:xe(s)?s:[]},set:s=>{if(n.element.props.multiple===!0){O(Pe(s)?s:[]);return}O(xe(s)?s:[])}}),ko=e.computed(()=>({multiple:n.element.props.multiple===!0,checkStrictly:n.element.props.checkStrictly===!0})),mo=e.computed({get:()=>{const s=b.value;return n.element.props.multiple===!0?xe(s)?s:[]:typeof s=="string"||typeof s=="number"?s:void 0},set:s=>{if(n.element.props.multiple===!0){O(xe(s)?s:[]);return}O(typeof s=="string"||typeof s=="number"?s:void 0)}}),so=e.computed({get:()=>{const s=b.value;return n.element.props.multiple===!0?Pe(s)?s:[]:xe(s)?s:[]},set:s=>{if(n.element.props.multiple===!0){O(Pe(s)?s:[]);return}O(xe(s)?s:[])}}),eo=s=>{if(!s||!s.trim())return{};try{const k=JSON.parse(s);if(!Me(k))return{};const W=Uo(k,{formModel:n.model});return Me(W)?W:{}}catch{return{}}},N=e.computed(()=>{const s=eo(n.element.props.uploadHeadersJson),k={};for(const[W,de]of Object.entries(s))(typeof de=="string"||typeof de=="number"||typeof de=="boolean")&&(k[W]=String(de));return k}),S=e.computed(()=>{const s=eo(n.element.props.uploadDataJson),k={};for(const[W,de]of Object.entries(s))if(de!=null)if(typeof de=="object")try{k[W]=JSON.stringify(de)}catch{k[W]=""}else k[W]=String(de);return k}),M=e.computed({get:()=>Array.isArray(b.value)?b.value:[],set:s=>O(s)}),oe=e.ref(!1),v=e.ref(""),te=s=>{if(u.value)return;const k=M.value.filter(W=>W.uid!==s.uid);M.value=k},le=s=>{let k=s.url,W=!1;if(!k&&s.raw&&(k=URL.createObjectURL(s.raw),W=!0),!k)return;if(s.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(s.name))v.value=k,oe.value=!0;else{const Ee=document.createElement("a");Ee.href=k,Ee.download=s.name||"download",document.body.appendChild(Ee),Ee.click(),document.body.removeChild(Ee),W&&URL.revokeObjectURL(k)}},he=(s,k)=>{$e.ElMessage.error(`文件 "${k.name}" 上传失败,请重试`)},Oe=(s,k)=>{$e.ElMessage.error(`文件数量超出限制,最多可上传 ${n.element.props.limit||5} 个文件`)},We=s=>{if(u.value)return!1;const k=n.element.props.accept;if(k){const W=k.split(",").map(d=>d.trim()),de=s.name.toLowerCase(),Ee=de.lastIndexOf(".")>0?de.slice(de.lastIndexOf(".")):"",Ne=s.type;if(!W.some(d=>{const l=d.toLowerCase();if(l.startsWith("."))return Ee===l;if(l.includes("*")){const[w]=l.split("/"),[B]=Ne.split("/");return w===B}else return Ne===l}))return $e.ElMessage.error(`文件类型不允许,只支持 ${k} 类型的文件`),!1}return!0},po=(s,k)=>{if(!u.value&&s.status==="ready"){const W=n.element.props.accept;if(W){const de=W.split(",").map(l=>l.trim()),Ee=s.name.toLowerCase(),Ne=Ee.lastIndexOf(".")>0?Ee.slice(Ee.lastIndexOf(".")):"",ke=s.raw?.type||"";de.some(l=>{const w=l.toLowerCase();if(w.startsWith("."))return Ne===w;if(w.includes("*")){const[B]=w.split("/"),[j]=ke.split("/");return B===j}else return ke===w})||($e.ElMessage.error(`文件类型不允许,只支持 ${W} 类型的文件`),M.value=M.value.filter(l=>l.uid!==s.uid))}}},_=s=>{t("update-field",s)},be=s=>{const k=s.props.field;return typeof k=="string"&&k.trim()?k.trim():s.id},we=s=>{const k=s.props.defaultValue;if(k!==void 0)return k;if(s.type==="checkbox")return[];if(s.type==="select"&&s.props.multiple===!0)return[];if(s.type==="cascader")return[];if(s.type==="upload")return[];if(s.type==="switch")return!1},Ke=()=>{const s={},k=Array.isArray(n.element.children)?n.element.children:[];for(const W of k){const de=be(W);s[de]=we(W)}return s},J=e.computed({get:()=>{const s=b.value;return Array.isArray(s)?s.filter(k=>Me(k)):[]},set:s=>O(s)}),Y=()=>{if(u.value)return;const s=[...J.value,Ke()];J.value=s},qo=s=>{if(u.value)return;const k=[...J.value],W=k[s];if(!Me(W))return;const de=JSON.parse(JSON.stringify(W));k.splice(s+1,0,de),J.value=k},pn=s=>{if(u.value)return;const k=[...J.value];k.splice(s,1),J.value=k},un=(s,k,W)=>{const de=[...J.value],Ee=de[k],Ne=Me(Ee)?{...Ee}:{};Ne[W.key]=W.value,de[k]=Ne,J.value=de},fn=e.computed(()=>n.element.type!=="grid"?[]:(n.element.children||[]).filter(s=>s.type==="grid-col"));return(s,k)=>{const W=e.resolveComponent("FormRendererNode",!0),de=e.resolveComponent("el-col"),Ee=e.resolveComponent("el-row"),Ne=e.resolveComponent("el-icon"),ke=e.resolveComponent("el-tooltip"),d=e.resolveComponent("el-table-column"),l=e.resolveComponent("el-table"),w=e.resolveComponent("el-button"),B=e.resolveComponent("el-form-item"),j=e.resolveComponent("el-link"),ye=e.resolveComponent("el-input"),z=e.resolveComponent("el-input-number"),L=e.resolveComponent("el-rate"),Te=e.resolveComponent("el-radio"),to=e.resolveComponent("el-radio-group"),ao=e.resolveComponent("el-checkbox"),ue=e.resolveComponent("el-checkbox-group"),Xe=e.resolveComponent("el-select-v2"),Bo=e.resolveComponent("el-option"),Qe=e.resolveComponent("el-select"),Wo=e.resolveComponent("el-switch"),hn=e.resolveComponent("el-cascader"),Vo=e.resolveComponent("el-date-picker"),yn=e.resolveComponent("el-time-picker"),gn=e.resolveComponent("el-dialog"),Jn=e.resolveComponent("el-upload");return o.element.type==="grid"&&p.value?(e.openBlock(),e.createElementBlock("div",Ml,[e.createVNode(Ee,{gutter:o.element.props.gutter??20},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(fn.value,(r,De)=>(e.openBlock(),e.createBlock(de,{key:r.id||De,span:r.props.span??12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children||[],Ae=>(e.openBlock(),e.createBlock(W,{key:Ae.id,element:Ae,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:_},null,8,["element","model","form-disabled","visible-map"]))),128))]),_:2},1032,["span"]))),128))]),_:1},8,["gutter"])])):o.element.type==="grid-col"&&p.value?(e.openBlock(),e.createElementBlock("div",Rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(W,{key:r.id,element:r,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:_},null,8,["element","model","form-disabled","visible-map"]))),128))])):o.element.type==="group"&&p.value?(e.openBlock(),e.createElementBlock("div",{key:2,class:"ff-group",style:e.normalizeStyle({width:H.value})},[e.createElementVNode("div",Pl,[e.createElementVNode("span",Il,e.toDisplayString(o.element.props.label),1)]),e.createElementVNode("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(W,{key:r.id,element:r,model:o.model,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:_},null,8,["element","model","form-disabled","visible-map"]))),128))])],4)):o.element.type==="sub-form"&&p.value?(e.openBlock(),e.createElementBlock("div",Jl,[e.createVNode(B,{prop:c.value,label:o.element.props.label,"label-width":D.value,class:e.normalizeClass({"ff-label-wrap":o.element.props.labelWrap===!0})},{label:e.withCtx(()=>[e.createElementVNode("span",Ll,[e.createElementVNode("span",zl,e.toDisplayString(o.element.props.label),1),o.element.props.description?(e.openBlock(),e.createBlock(ke,{key:0,content:o.element.props.description},{default:e.withCtx(()=>[e.createVNode(Ne,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[o.element.children&&o.element.children.length!==0?(e.openBlock(),e.createElementBlock("div",jl,[e.createElementVNode("div",Hl,[e.createVNode(l,{data:J.value,border:"",fit:!1,"table-layout":"auto",class:"sub-form-table"},{default:e.withCtx(()=>[o.element.props.showIndex?(e.openBlock(),e.createBlock(d,{key:0,label:"#",width:"60",align:"center",fixed:"left"},{default:e.withCtx(({$index:r})=>[e.createElementVNode("div",Yl,[e.createElementVNode("span",ql,e.toDisplayString(r+1),1),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Wl,[e.createVNode(Ne,{class:"action-icon copy-icon",title:"复制",onClick:e.withModifiers(De=>qo(r),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.CopyDocument))]),_:1},8,["onClick"]),e.createVNode(Ne,{class:"action-icon delete-icon",title:"删除",onClick:e.withModifiers(De=>pn(r),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Delete))]),_:1},8,["onClick"])]))])]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.element.children||[],r=>(e.openBlock(),e.createBlock(d,{key:r.id,label:r.props.label,"min-width":220},{default:e.withCtx(({row:De,$index:Ae})=>[e.createVNode(W,{element:r,model:De,"hide-label":!0,"form-disabled":u.value,"visible-map":o.visibleMap,onUpdateField:wd=>un(De,Ae,wd)},null,8,["element","model","form-disabled","visible-map","onUpdateField"])]),_:2},1032,["label"]))),128))]),_:1},8,["data"])]),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Gl,[e.createVNode(w,{type:"primary",plain:"",icon:e.unref(Q.Plus),onClick:Y},{default:e.withCtx(()=>[...k[19]||(k[19]=[e.createTextVNode("添加一行",-1)])]),_:1},8,["icon"])]))])):(e.openBlock(),e.createElementBlock("div",Kl,"暂无可用字段"))]),_:1},8,["prop","label","label-width","class"])])):p.value?(e.openBlock(),e.createElementBlock("div",Xl,[e.createVNode(B,{prop:g.value,label:o.hideLabel?"":o.element.props.label,"label-width":o.hideLabel?"0px":D.value,class:e.normalizeClass(o.hideLabel?"ff-no-label":{"ff-label-wrap":o.element.props.labelWrap===!0})},e.createSlots({default:e.withCtx(()=>[o.element.type==="text"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"ff-text",style:e.normalizeStyle({width:H.value,opacity:u.value?.6:1})},e.toDisplayString(o.element.props.text||""),5)):e.createCommentVNode("",!0),o.element.type==="link"?(e.openBlock(),e.createBlock(j,{key:1,href:E.value,target:o.element.props.linkTarget||"_blank",type:"primary",underline:o.element.props.linkUnderline!==!1?"hover":"never",disabled:u.value||!E.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.value),1)]),_:1},8,["href","target","underline","disabled"])):e.createCommentVNode("",!0),o.element.type==="input"?(e.openBlock(),e.createBlock(ye,{key:2,modelValue:V.value,"onUpdate:modelValue":k[0]||(k[0]=r=>V.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="textarea"?(e.openBlock(),e.createBlock(ye,{key:3,modelValue:V.value,"onUpdate:modelValue":k[1]||(k[1]=r=>V.value=r),type:"textarea",rows:o.element.props.rows,placeholder:o.element.props.placeholder,disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","rows","placeholder","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="input-number"?(e.openBlock(),e.createBlock(z,{key:4,modelValue:ae.value,"onUpdate:modelValue":k[2]||(k[2]=r=>ae.value=r),disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="rate"?(e.openBlock(),e.createElementBlock("div",{key:5,style:e.normalizeStyle({width:H.value})},[e.createVNode(L,{modelValue:Fe.value,"onUpdate:modelValue":k[3]||(k[3]=r=>Fe.value=r),max:o.element.props.max??5,"allow-half":o.element.props.allowHalf===!0,clearable:o.element.props.clearable===!0,disabled:u.value},null,8,["modelValue","max","allow-half","clearable","disabled"])],4)):e.createCommentVNode("",!0),o.element.type==="radio"?(e.openBlock(),e.createBlock(to,{key:6,modelValue:I.value,"onUpdate:modelValue":k[4]||(k[4]=r=>I.value=r),disabled:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,r=>(e.openBlock(),e.createBlock(Te,{key:String(r.value),value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="checkbox"?(e.openBlock(),e.createBlock(ue,{key:7,modelValue:_e.value,"onUpdate:modelValue":k[5]||(k[5]=r=>_e.value=r),disabled:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,r=>(e.openBlock(),e.createBlock(ao,{key:String(r.value),value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="select"&&o.element.props.virtualized===!0?(e.openBlock(),e.createBlock(Xe,{key:8,modelValue:Ie.value,"onUpdate:modelValue":k[6]||(k[6]=r=>Ie.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,filterable:o.element.props.filterable===!0,clearable:o.element.props.clearable,disabled:u.value,options:R.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","multiple","placeholder","filterable","clearable","disabled","options","style"])):o.element.type==="select"?(e.openBlock(),e.createBlock(Qe,{key:9,modelValue:Ie.value,"onUpdate:modelValue":k[7]||(k[7]=r=>Ie.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,filterable:o.element.props.filterable===!0,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,r=>(e.openBlock(),e.createBlock(Bo,{key:String(r.value),label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","multiple","placeholder","filterable","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="switch"?(e.openBlock(),e.createBlock(Wo,{key:10,modelValue:Le.value,"onUpdate:modelValue":k[8]||(k[8]=r=>Le.value=r),disabled:u.value},null,8,["modelValue","disabled"])):e.createCommentVNode("",!0),o.element.type==="pca"&&(o.element.props.pcaType??"province-city-area")==="province"?(e.openBlock(),e.createBlock(Qe,{key:11,modelValue:mo.value,"onUpdate:modelValue":k[9]||(k[9]=r=>mo.value=r),multiple:o.element.props.multiple===!0,placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,r=>(e.openBlock(),e.createBlock(Bo,{key:String(r.value),label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","multiple","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="pca"&&(o.element.props.pcaType??"province-city-area")!=="province"?(e.openBlock(),e.createBlock(hn,{key:12,modelValue:so.value,"onUpdate:modelValue":k[10]||(k[10]=r=>so.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value}),options:ie.value,props:Z.value},null,8,["modelValue","placeholder","clearable","disabled","style","options","props"])):e.createCommentVNode("",!0),o.element.type==="date"?(e.openBlock(),e.createBlock(Vo,{key:13,modelValue:h.value,"onUpdate:modelValue":k[11]||(k[11]=r=>h.value=r),type:"date","value-format":"YYYY-MM-DD",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="time"?(e.openBlock(),e.createBlock(yn,{key:14,modelValue:h.value,"onUpdate:modelValue":k[12]||(k[12]=r=>h.value=r),"value-format":"HH:mm:ss",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="signature"?(e.openBlock(),e.createElementBlock("div",{key:15,class:"ff-signature-field",style:e.normalizeStyle({width:H.value})},[e.createElementVNode("div",{class:e.normalizeClass(["ff-signature-box",{disabled:u.value}]),style:e.normalizeStyle({height:`${o.element.props.signatureHeight??160}px`}),onClick:$},[C.value?(e.openBlock(),e.createElementBlock("img",{key:0,class:"ff-signature-image",src:C.value,alt:"signature"},null,8,vl)):(e.openBlock(),e.createElementBlock("span",ed,"点击签名"))],6),o.element.props.clearable===!0&&!u.value&&C.value?(e.openBlock(),e.createElementBlock("div",od,[e.createVNode(w,{size:"small",onClick:e.withModifiers(U,["stop"])},{default:e.withCtx(()=>[...k[20]||(k[20]=[e.createTextVNode("清空",-1)])]),_:1})])):e.createCommentVNode("",!0),e.createVNode(gn,{modelValue:y.value,"onUpdate:modelValue":k[14]||(k[14]=r=>y.value=r),"append-to-body":"",title:o.element.props.label||"手写签名",width:"680px","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(w,{onClick:P},{default:e.withCtx(()=>[...k[21]||(k[21]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(w,{type:"primary",onClick:ce},{default:e.withCtx(()=>[...k[22]||(k[22]=[e.createTextVNode("确定",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(Fl,{modelValue:F.value,"onUpdate:modelValue":k[13]||(k[13]=r=>F.value=r),height:o.element.props.signatureHeight??160,"line-width":o.element.props.signatureLineWidth??2,"pen-color":o.element.props.signaturePenColor??"#000000","background-color":o.element.props.signatureBackgroundColor??"#ffffff",clearable:o.element.props.clearable===!0,disabled:u.value,width:"100%"},null,8,["modelValue","height","line-width","pen-color","background-color","clearable","disabled"])]),_:1},8,["modelValue","title"])],4)):e.createCommentVNode("",!0),o.element.type==="datetime"?(e.openBlock(),e.createBlock(Vo,{key:16,modelValue:h.value,"onUpdate:modelValue":k[15]||(k[15]=r=>h.value=r),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value})},null,8,["modelValue","placeholder","clearable","disabled","style"])):e.createCommentVNode("",!0),o.element.type==="cascader"?(e.openBlock(),e.createBlock(hn,{key:17,modelValue:io.value,"onUpdate:modelValue":k[16]||(k[16]=r=>io.value=r),placeholder:o.element.props.placeholder,clearable:o.element.props.clearable,disabled:u.value,style:e.normalizeStyle({width:H.value}),options:R.value,props:ko.value},null,8,["modelValue","placeholder","clearable","disabled","style","options","props"])):e.createCommentVNode("",!0),o.element.type==="upload"?(e.openBlock(),e.createBlock(Jn,{key:18,"file-list":M.value,"onUpdate:fileList":k[17]||(k[17]=r=>M.value=r),action:o.element.props.action||"",name:o.element.props.name||"file",headers:N.value,data:S.value,accept:o.element.props.accept,multiple:o.element.props.multiple===!0,limit:o.element.props.limit,"list-type":o.element.props.listType||"text","auto-upload":o.element.props.autoUpload===!0,"show-file-list":o.element.props.showFileList!==!1,"with-credentials":o.element.props.withCredentials===!0,disabled:u.value,onBeforeUpload:We,onExceed:Oe,onError:he,onChange:po},{file:e.withCtx(({file:r})=>[e.createElementVNode("div",{class:e.normalizeClass(["custom-upload-item",[o.element.props.listType==="picture"?"mode-picture":"",o.element.props.listType==="picture-card"?"mode-picture-card":"",!o.element.props.listType||o.element.props.listType==="text"?"mode-text":""]])},[o.element.props.listType==="picture"||o.element.props.listType==="picture-card"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",nd,[r.url&&(r.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(r.name))?(e.openBlock(),e.createElementBlock("img",{key:0,class:"el-upload-list__item-thumbnail",src:r.url,alt:""},null,8,td)):(e.openBlock(),e.createElementBlock("div",ad,[e.createVNode(Ne,{size:24},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Document))]),_:1})])),e.createElementVNode("span",ld,[e.createElementVNode("span",{class:"el-upload-list__item-preview",onClick:De=>le(r)},[e.createVNode(Ne,null,{default:e.withCtx(()=>[r.url&&(r.raw?.type?.startsWith("image/")||/\.(jpeg|jpg|png|gif|webp|svg)$/i.test(r.name))?(e.openBlock(),e.createBlock(e.unref(Q.ZoomIn),{key:0})):(e.openBlock(),e.createBlock(e.unref(Q.Download),{key:1}))]),_:2},1024)],8,dd),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"el-upload-list__item-delete",onClick:e.withModifiers(De=>te(r),["stop"])},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Delete))]),_:1})],8,cd))])]),e.createElementVNode("span",{class:"file-name-display",title:r.name},e.toDisplayString(r.name),9,rd),o.element.props.listType==="picture"&&!u.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"picture-mode-close",onClick:De=>te(r)},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Close))]),_:1})],8,id)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{class:"text-mode-content",onClick:De=>le(r)},[e.createVNode(Ne,{class:"file-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Document))]),_:1}),e.createElementVNode("span",{class:"file-name",title:r.name},e.toDisplayString(r.name),9,sd)],8,md),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-mode-close",onClick:e.withModifiers(De=>te(r),["stop"])},[e.createVNode(Ne,null,{default:e.withCtx(()=>[e.createVNode(e.unref(Q.Close))]),_:1})],8,pd))],64))],2)]),default:e.withCtx(()=>[e.createVNode(w,{type:"primary"},{default:e.withCtx(()=>[...k[23]||(k[23]=[e.createTextVNode("选择文件",-1)])]),_:1})]),_:1},8,["file-list","action","name","headers","data","accept","multiple","limit","list-type","auto-upload","show-file-list","with-credentials","disabled"])):e.createCommentVNode("",!0),e.createVNode(gn,{modelValue:oe.value,"onUpdate:modelValue":k[18]||(k[18]=r=>oe.value=r),"append-to-body":""},{default:e.withCtx(()=>[e.createElementVNode("img",{"w-full":"",src:v.value,alt:"Preview Image",style:{width:"100%"}},null,8,ud)]),_:1},8,["modelValue"])]),_:2},[o.hideLabel?void 0:{name:"label",fn:e.withCtx(()=>[e.createElementVNode("span",Ql,[e.createElementVNode("span",Zl,e.toDisplayString(o.element.props.label),1),o.element.props.description?(e.openBlock(),e.createBlock(ke,{key:0,content:o.element.props.description},{default:e.withCtx(()=>[e.createVNode(Ne,{class:"question-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.QuestionFilled))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)])]),key:"0"}]),1032,["prop","label","label-width","class"])])):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-936c0725"]]),Ft=e.defineComponent({__name:"FormRenderer",props:{schema:{},modelValue:{},disabled:{type:Boolean}},emits:["update:modelValue","change"],setup(o,{expose:a,emit:n}){const t=o,c=n,i=e.ref({}),m=e.ref(),f=V=>{const h=V.props.field;return typeof h=="string"&&h.trim()?h.trim():V.id},p=()=>{c("update:modelValue",{...i.value})},g=V=>{c("change",V,{...i.value})},u=V=>{i.value[V.key]=V.value,p(),g(V.element)},b=e.computed(()=>{const V={},h=C=>{for(const y of C){if(y.type==="grid"){const P=(y.children||[]).filter(ce=>ce.type==="grid-col");for(const ce of P)h(ce.children||[]);continue}if(y.type==="grid-col"){h(y.children||[]);continue}if(y.type==="group"){h(y.children||[]);continue}if(y.type==="text"||y.type==="link")continue;const F=f(y);if(!ee(F))continue;const $=[];y.props.required&&$.push({required:!0,message:`${y.props.label}不能为空`,trigger:"change"}),y.props.rules&&y.props.rules.length>0&&y.props.rules.forEach(P=>{let ce;if(P.type==="regexp"&&P.pattern){const U=new RegExp(P.pattern);ce=((I,ae,Fe)=>{const Le=ae==null?"":String(ae);U.test(Le)?Fe():Fe(new Error(P.message))})}$.push({type:P.type==="regexp"?void 0:P.type,message:P.message,trigger:P.trigger,validator:ce})}),$.length>0&&(V[F]=$)}};return h(t.schema.list),V}),E=V=>V==null?!0:typeof V=="string"?V.trim()==="":Array.isArray(V)?V.length===0:!1,x=V=>{if(typeof V=="number")return Number.isFinite(V)?V:void 0;if(typeof V!="string")return;const h=V.trim();if(!h)return;const C=Number(h);return Number.isFinite(C)?C:void 0},T=V=>{if(typeof V=="boolean")return V;if(typeof V!="string")return;const h=V.trim().toLowerCase();if(h==="true")return!0;if(h==="false")return!1},D=V=>Array.isArray(V)?V.map(h=>String(h)).map(h=>h.trim()).filter(Boolean):typeof V=="string"?V.split(",").map(h=>h.trim()).filter(Boolean):typeof V=="number"||typeof V=="boolean"?[String(V)]:[],H=(V,h)=>{const C=h[V.field],y=V.operator,F=V.value;if(y==="is_empty")return E(C);if(y==="not_empty")return!E(C);if(y==="in"||y==="not_in"){const $=D(F),P=Array.isArray(C)?C.map(ce=>String(ce)).some(ce=>$.includes(ce)):typeof C=="string"||typeof C=="number"||typeof C=="boolean"?$.includes(String(C)):!1;return y==="in"?P:!P}if(y==="contains"||y==="not_contains"){const $=F==null?"":String(F),P=typeof C=="string"?C.includes($):Array.isArray(C)?C.map(ce=>String(ce)).includes($):!1;return y==="contains"?P:!P}if(y==="eq"||y==="neq"){if(C==null){const P=F==null||F==="";return y==="eq"?P:!P}if(typeof C=="number"){const P=x(F),ce=P!==void 0&&C===P;return y==="eq"?ce:!ce}if(typeof C=="boolean"){const P=T(F),ce=P!==void 0&&C===P;return y==="eq"?ce:!ce}if(typeof C=="string"){const P=C===String(F??"");return y==="eq"?P:!P}const $=String(C)===String(F??"");return y==="eq"?$:!$}if(y==="gt"||y==="gte"||y==="lt"||y==="lte"){const $=x(C),P=x(F);return $===void 0||P===void 0?!1:y==="gt"?$>P:y==="gte"?$>=P:y==="lt"?$<P:$<=P}return!1},R=(V,h)=>{const C=V.conditions||[];return C.length===0?!1:V.logic==="all"?C.every(y=>H(y,h)):C.some(y=>H(y,h))},q=e.computed(()=>{const V=t.schema.config.visibilityRules||[],h={},C=new Set;for(const y of V)for(const F of y.actions||[])F.field&&F.action==="show"&&C.add(F.field);for(const y of C)h[y]=!1;for(const y of V)if(R(y,i.value))for(const $ of y.actions||[])h[$.field]=$.action==="show";return h}),ee=V=>{const h=q.value[V];return h===void 0?!0:h},pe=e.computed(()=>{const V=[],h=C=>{for(const y of C){if(y.type==="grid"){const F=(y.children||[]).filter($=>$.type==="grid-col");for(const $ of F)h($.children||[]);continue}if(y.type==="grid-col"){h(y.children||[]);continue}if(y.type==="group"){h(y.children||[]);continue}y.type==="text"||y.type==="link"||V.push(f(y))}};return h(t.schema.list),V}),ie=e.computed(()=>pe.value.filter(V=>!ee(V))),ne=e.ref(new Set);e.watch(()=>ie.value,V=>{const h=new Set(V);for(const C of h)ne.value.has(C)||m.value?.clearValidate(C);ne.value=h},{immediate:!0});const Z=V=>Array.isArray(V)&&V.every(h=>typeof h=="string"||typeof h=="number"),Ce=V=>Array.isArray(V)&&V.every(h=>Z(h)),se=(V,h)=>{if(h!==void 0){if(V.type==="checkbox"||V.type==="select"&&V.props.multiple===!0)return Z(h)?h:void 0;if(V.type==="cascader")return V.props.multiple===!0?Ce(h)?h:void 0:Z(h)?h:void 0;if(V.type==="upload")return Array.isArray(h)?h:void 0;if(V.type==="sub-form")return Array.isArray(h)?h:[];if(V.type==="switch")return typeof h=="boolean"?h:void 0;if(V.type==="input-number"||V.type==="rate")return typeof h=="number"?h:void 0;if(typeof h=="string"||typeof h=="number"||typeof h=="boolean"||h===null)return h}},O=()=>{const V={...t.modelValue||{}},h=C=>{for(const y of C){if(y.type==="grid"){const $=(y.children||[]).filter(P=>P.type==="grid-col");for(const P of $)h(P.children||[]);continue}if(y.type==="grid-col"){h(y.children||[]);continue}if(y.type==="group"){h(y.children||[]);continue}if(y.type==="text"||y.type==="link")continue;const F=f(y);if(V[F]===void 0){const $=se(y,y.props.defaultValue);if($!==void 0){V[F]=$;continue}y.type==="checkbox"?V[F]=[]:y.type==="select"&&y.props.multiple===!0?V[F]=[]:y.type==="cascader"?V[F]=[]:y.type==="sub-form"?V[F]=[]:y.type==="upload"?V[F]=[]:y.type==="switch"?V[F]=!1:V[F]=void 0}}};h(t.schema.list),i.value=V,p()};return e.watch(()=>t.schema,O,{immediate:!0,deep:!0}),e.watch(()=>t.modelValue,V=>{V&&(i.value={...V})},{deep:!0}),a({validate:()=>m.value?.validate(),resetFields:()=>m.value?.resetFields()}),(V,h)=>{const C=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(C,{ref_key:"formRef",ref:m,class:"ff-form-renderer",model:i.value,rules:b.value,"label-position":o.schema.config.labelPosition,"label-width":o.schema.config.labelWidth+"px",size:o.schema.config.size,disabled:o.disabled===!0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.schema.list,y=>(e.openBlock(),e.createBlock(fd,{key:y.id,element:y,model:i.value,"form-disabled":o.disabled===!0,"visible-map":q.value,onUpdateField:u},null,8,["element","model","form-disabled","visible-map"]))),128))]),_:1},8,["model","rules","label-position","label-width","size","disabled"])}}}),hd={class:"fast-form-designer"},yd={class:"designer-container"},gd={class:"left-container"},bd={class:"center-container"},kd={class:"actions"},Vd={class:"right-container"},Mt=bo(e.defineComponent({__name:"FastFormDesigner",props:{componentGroups:{},toolbarActions:{}},setup(o){const a=o,{formList:n,formConfig:t,clearCanvas:c}=Ht(),i=e.ref(!1),m=e.ref(!1),f=e.ref(""),p=e.computed(()=>({config:t,list:n})),g=()=>{i.value=!0},u=()=>{const R=JSON.stringify(p.value,null,2);navigator.clipboard.writeText(R).then(()=>{$e.ElMessage.success("JSON已复制到剪贴板")}).catch(()=>{$e.ElMessage.error("复制失败")}),console.log(R)},b=()=>{f.value="",m.value=!0},E=()=>{try{const R=JSON.parse(f.value);R.config&&Object.assign(t,R.config),R.list&&(n.length=0,n.push(...R.list)),m.value=!1,$e.ElMessage.success("导入成功")}catch{$e.ElMessage.error("JSON格式错误")}},x=()=>({schema:p.value,formList:n,formConfig:t,openPreview:g,openImport:b,exportJson:u,clearCanvas:c}),T=[{key:"preview",label:"预览",type:"primary",link:!0,onClick:R=>R.openPreview()},{key:"export-json",label:"导出JSON",type:"primary",link:!0,onClick:R=>R.exportJson()},{key:"import-json",label:"导入JSON",type:"primary",link:!0,onClick:R=>R.openImport()},{key:"clear",label:"清空",type:"danger",link:!0,onClick:R=>R.clearCanvas()}],D=e.computed(()=>(a.toolbarActions?.length?a.toolbarActions:T).filter(q=>q.visible!==!1)),H=R=>{R.onClick&&R.onClick(x())};return(R,q)=>{const ee=e.resolveComponent("el-button"),pe=e.resolveComponent("el-dialog"),ie=e.resolveComponent("el-input");return e.openBlock(),e.createElementBlock("div",hd,[e.createElementVNode("div",yd,[e.createElementVNode("div",gd,[e.createVNode(La,{"component-groups":a.componentGroups},null,8,["component-groups"])]),e.createElementVNode("div",bd,[e.createElementVNode("div",kd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,ne=>(e.openBlock(),e.createBlock(ee,{key:ne.key,type:ne.type,link:ne.link!==!1,disabled:ne.disabled===!0,onClick:Z=>H(ne)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ne.label),1)]),_:2},1032,["type","link","disabled","onClick"]))),128))]),e.createVNode(yl)]),e.createElementVNode("div",Vd,[e.createVNode(Al)])]),e.createVNode(pe,{modelValue:i.value,"onUpdate:modelValue":q[1]||(q[1]=ne=>i.value=ne),title:"表单预览",width:"60%","destroy-on-close":""},{footer:e.withCtx(()=>[e.createVNode(ee,{onClick:q[0]||(q[0]=ne=>i.value=!1)},{default:e.withCtx(()=>[...q[5]||(q[5]=[e.createTextVNode("关闭",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(Ft,{schema:p.value},null,8,["schema"])]),_:1},8,["modelValue"]),e.createVNode(pe,{modelValue:m.value,"onUpdate:modelValue":q[4]||(q[4]=ne=>m.value=ne),title:"导入JSON",width:"50%"},{footer:e.withCtx(()=>[e.createVNode(ee,{onClick:q[3]||(q[3]=ne=>m.value=!1)},{default:e.withCtx(()=>[...q[6]||(q[6]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(ee,{type:"primary",onClick:E},{default:e.withCtx(()=>[...q[7]||(q[7]=[e.createTextVNode("确定",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(ie,{modelValue:f.value,"onUpdate:modelValue":q[2]||(q[2]=ne=>f.value=ne),type:"textarea",rows:10,placeholder:"请输入JSON配置"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-2da758c0"]]),Cd=Object.freeze(Object.defineProperty({__proto__:null,default:JSON.parse('[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130171","name":"石家庄高新技术产业开发区"},{"code":"130172","name":"石家庄循环化工园区"},{"code":"130181","name":"辛集市"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130271","name":"河北唐山芦台经济开发区"},{"code":"130272","name":"唐山市汉沽管理区"},{"code":"130273","name":"唐山高新技术产业开发区"},{"code":"130274","name":"河北唐山海港经济开发区"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"},{"code":"130284","name":"滦州市"}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"},{"code":"130371","name":"秦皇岛市经济技术开发区"},{"code":"130372","name":"北戴河新区"}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130407","name":"肥乡区"},{"code":"130408","name":"永年区"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130471","name":"邯郸经济技术开发区"},{"code":"130473","name":"邯郸冀南新区"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"襄都区"},{"code":"130503","name":"信都区"},{"code":"130505","name":"任泽区"},{"code":"130506","name":"南和区"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130571","name":"河北邢台经济开发区"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130671","name":"保定高新技术产业开发区"},{"code":"130672","name":"保定白沟新城"},{"code":"130681","name":"涿州市"},{"code":"130682","name":"定州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"},{"code":"130771","name":"张家口经济开发区"},{"code":"130772","name":"张家口市察北管理区"},{"code":"130773","name":"张家口市塞北管理区"}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"},{"code":"130871","name":"承德高新技术产业开发区"},{"code":"130881","name":"平泉市"}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130971","name":"河北沧州经济开发区"},{"code":"130972","name":"沧州高新技术产业开发区"},{"code":"130973","name":"沧州渤海新区"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131071","name":"廊坊经济技术开发区"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131171","name":"河北衡水高新技术产业开发区"},{"code":"131172","name":"衡水滨湖新区"},{"code":"131182","name":"深州市"}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140171","name":"山西转型综合改革示范区"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","children":[{"code":"140212","name":"新荣区"},{"code":"140213","name":"平城区"},{"code":"140214","name":"云冈区"},{"code":"140215","name":"云州区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140271","name":"山西大同经济开发区"}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"}]},{"code":"1404","name":"长治市","children":[{"code":"140403","name":"潞州区"},{"code":"140404","name":"上党区"},{"code":"140405","name":"屯留区"},{"code":"140406","name":"潞城区"},{"code":"140423","name":"襄垣县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140671","name":"山西朔州经济开发区"},{"code":"140681","name":"怀仁市"}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区"},{"code":"140703","name":"太谷区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140971","name":"五台山风景名胜区"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"},{"code":"150172","name":"呼和浩特经济技术开发区"}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"},{"code":"150271","name":"包头稀土高新技术产业开发区"}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150571","name":"通辽经济技术开发区"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"},{"code":"152571","name":"乌拉盖管理区管委会"}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"},{"code":"152971","name":"内蒙古阿拉善高新技术产业开发区"}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220171","name":"长春经济技术开发区"},{"code":"220172","name":"长春净月高新技术产业开发区"},{"code":"220173","name":"长春高新技术产业开发区"},{"code":"220174","name":"长春汽车经济技术开发区"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"},{"code":"220184","name":"公主岭市"}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220271","name":"吉林经济开发区"},{"code":"220272","name":"吉林高新技术产业开发区"},{"code":"220273","name":"吉林中国新加坡食品区"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220771","name":"吉林松原经济开发区"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220871","name":"吉林白城经济开发区"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"},{"code":"230671","name":"大庆高新技术产业开发区"}]},{"code":"2307","name":"伊春市","children":[{"code":"230717","name":"伊美区"},{"code":"230718","name":"乌翠区"},{"code":"230719","name":"友好区"},{"code":"230722","name":"嘉荫县"},{"code":"230723","name":"汤旺县"},{"code":"230724","name":"丰林县"},{"code":"230725","name":"大箐山县"},{"code":"230726","name":"南岔县"},{"code":"230751","name":"金林区"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"},{"code":"231183","name":"嫩江市"}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"漠河市"},{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232761","name":"加格达奇区"},{"code":"232762","name":"松岭区"},{"code":"232763","name":"新林区"},{"code":"232764","name":"呼中区"}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320371","name":"徐州经济技术开发区"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320576","name":"苏州工业园区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","children":[{"code":"320612","name":"通州区"},{"code":"320613","name":"崇川区"},{"code":"320614","name":"海门区"},{"code":"320623","name":"如东县"},{"code":"320671","name":"南通经济技术开发区"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320685","name":"海安市"}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"},{"code":"320771","name":"连云港经济技术开发区"}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"},{"code":"320871","name":"淮安经济技术开发区"}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320971","name":"盐城经济技术开发区"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321071","name":"扬州经济技术开发区"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321171","name":"镇江新区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"},{"code":"321371","name":"宿迁经济技术开发区"}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330112","name":"临安区"},{"code":"330113","name":"临平区"},{"code":"330114","name":"钱塘区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330213","name":"奉化区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"},{"code":"330383","name":"龙港市"}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"},{"code":"331083","name":"玉环市"}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340176","name":"合肥高新技术产业开发区"},{"code":"340177","name":"合肥经济技术开发区"},{"code":"340178","name":"合肥新站高新技术产业开发区"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区"},{"code":"340207","name":"鸠江区"},{"code":"340209","name":"弋江区"},{"code":"340210","name":"湾沚区"},{"code":"340212","name":"繁昌区"},{"code":"340223","name":"南陵县"},{"code":"340271","name":"芜湖经济技术开发区"},{"code":"340272","name":"安徽芜湖三山经济开发区"},{"code":"340281","name":"无为市"}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"},{"code":"340371","name":"蚌埠市高新技术开发区"},{"code":"340372","name":"蚌埠市经济开发区"}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340871","name":"安徽安庆经济开发区"},{"code":"340881","name":"桐城市"},{"code":"340882","name":"潜山市"}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341171","name":"中新苏滁高新技术产业开发区"},{"code":"341172","name":"滁州经济技术开发区"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341271","name":"阜阳合肥现代产业园区"},{"code":"341272","name":"阜阳经济技术开发区"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"},{"code":"341371","name":"宿州马鞍山现代产业园区"},{"code":"341372","name":"宿州经济技术开发区"}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341871","name":"宣城市经济开发区"},{"code":"341881","name":"宁国市"},{"code":"341882","name":"广德市"}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350112","name":"长乐区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","children":[{"code":"350404","name":"三元区"},{"code":"350405","name":"沙县区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350604","name":"龙海区"},{"code":"350605","name":"长泰区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360113","name":"红谷滩区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360404","name":"柴桑区"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区"},{"code":"360603","name":"余江区"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360704","name":"赣县区"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"},{"code":"360783","name":"龙南市"}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区"},{"code":"361003","name":"东乡区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361104","name":"广信区"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370114","name":"章丘区"},{"code":"370115","name":"济阳区"},{"code":"370116","name":"莱芜区"},{"code":"370117","name":"钢城区"},{"code":"370124","name":"平阴县"},{"code":"370126","name":"商河县"},{"code":"370176","name":"济南高新技术产业开发区"}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370215","name":"即墨区"},{"code":"370281","name":"胶州市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"},{"code":"370571","name":"东营经济技术开发区"},{"code":"370572","name":"东营港经济开发区"}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370614","name":"蓬莱区"},{"code":"370671","name":"烟台高新技术产业开发区"},{"code":"370676","name":"烟台经济技术开发区"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370772","name":"潍坊滨海经济技术开发区"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370871","name":"济宁高新技术产业开发区"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371071","name":"威海火炬高技术产业开发区"},{"code":"371072","name":"威海经济技术开发区"},{"code":"371073","name":"威海临港经济技术开发区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"},{"code":"371171","name":"日照经济技术开发区"}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"},{"code":"371371","name":"临沂高新技术产业开发区"}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371471","name":"德州天衢新区"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区"},{"code":"371503","name":"茌平区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371681","name":"邹平市"}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"},{"code":"371771","name":"菏泽经济技术开发区"},{"code":"371772","name":"菏泽高新技术开发区"}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410171","name":"郑州经济技术开发区"},{"code":"410172","name":"郑州高新技术产业开发区"},{"code":"410173","name":"郑州航空港经济综合实验区"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410307","name":"偃师区"},{"code":"410308","name":"孟津区"},{"code":"410311","name":"洛龙区"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410371","name":"洛阳高新技术产业开发区"}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410471","name":"平顶山高新技术产业开发区"},{"code":"410472","name":"平顶山市城乡一体化示范区"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410571","name":"安阳高新技术产业开发区"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"},{"code":"410671","name":"鹤壁经济技术开发区"}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410771","name":"新乡高新技术产业开发区"},{"code":"410772","name":"新乡经济技术开发区"},{"code":"410773","name":"新乡市平原城乡一体化示范区"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"},{"code":"410783","name":"长垣市"}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410871","name":"焦作城乡一体化示范区"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"},{"code":"410971","name":"河南濮阳工业园区"},{"code":"410972","name":"濮阳经济技术开发区"}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区"},{"code":"411003","name":"建安区"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411071","name":"许昌经济技术开发区"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"},{"code":"411171","name":"漯河经济技术开发区"}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411271","name":"河南三门峡经济开发区"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411371","name":"南阳高新技术产业开发区"},{"code":"411372","name":"南阳市城乡一体化示范区"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411471","name":"豫东综合物流产业聚集区"},{"code":"411472","name":"河南商丘经济开发区"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"},{"code":"411571","name":"信阳高新技术产业开发区"}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区"},{"code":"411603","name":"淮阳区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411671","name":"周口临港开发区"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"},{"code":"411771","name":"河南驻马店经济开发区"}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"},{"code":"420882","name":"京山市"}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421024","name":"江陵县"},{"code":"421071","name":"荆州经济技术开发区"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"},{"code":"421088","name":"监利市"}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421171","name":"龙感湖管理区"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430181","name":"浏阳市"},{"code":"430182","name":"宁乡市"}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430212","name":"渌口区"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430371","name":"湖南湘潭高新技术产业园区"},{"code":"430372","name":"湘潭昭山示范区"},{"code":"430373","name":"湘潭九华示范区"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430473","name":"湖南衡阳松木经济开发区"},{"code":"430476","name":"湖南衡阳高新技术产业园区"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"},{"code":"430582","name":"邵东市"}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430671","name":"岳阳市屈原管理区"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430771","name":"常德市西洞庭管理区"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430971","name":"益阳市大通湖管理区"},{"code":"430972","name":"湖南益阳高新技术产业园区"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"},{"code":"431171","name":"永州经济技术开发区"},{"code":"431173","name":"永州市回龙圩管理区"},{"code":"431181","name":"祁阳市"}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431271","name":"怀化市洪江管理区"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"},{"code":"440309","name":"龙华区"},{"code":"440310","name":"坪山区"},{"code":"440311","name":"光明区"}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"4419","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"},{"code":"441900404","name":"东莞滨海湾新区"}]},{"code":"4420","name":"中山市","children":[{"code":"442000001","name":"石岐街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"中山港街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000007","name":"民众街道"},{"code":"442000008","name":"南朗街道"},{"code":"442000101","name":"黄圃镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"},{"code":"442000118","name":"小榄镇"}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450181","name":"横州市"}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450332","name":"恭城瑶族自治县"},{"code":"450381","name":"荔浦市"}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区"},{"code":"451003","name":"田阳区"},{"code":"451022","name":"田东县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"},{"code":"451082","name":"平果市"}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区"},{"code":"451203","name":"宜州区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"4604","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510117","name":"郫都区"},{"code":"510118","name":"新津区"},{"code":"510121","name":"金堂县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区"},{"code":"510604","name":"罗江区"},{"code":"510623","name":"中江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510923","name":"大英县"},{"code":"510981","name":"射洪市"}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511083","name":"隆昌市"}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511504","name":"叙州区"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市"},{"code":"513402","name":"会理市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520204","name":"水城区"},{"code":"520281","name":"盘州市"}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"},{"code":"520581","name":"黔西市"}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市"},{"code":"522302","name":"兴仁市"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530115","name":"晋宁区"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530304","name":"马龙区"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"},{"code":"530481","name":"澄江市"}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530681","name":"水富市"}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市"},{"code":"532302","name":"禄丰市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540104","name":"达孜区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540127","name":"墨竹工卡县"},{"code":"540171","name":"格尔木藏青工业园区"},{"code":"540172","name":"拉萨经济技术开发区"},{"code":"540173","name":"西藏文化旅游创意园区"},{"code":"540174","name":"达孜工业园区"}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"},{"code":"540481","name":"米林市"}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540531","name":"浪卡子县"},{"code":"540581","name":"错那市"}]},{"code":"5406","name":"那曲市","children":[{"code":"540602","name":"色尼区"},{"code":"540621","name":"嘉黎县"},{"code":"540622","name":"比如县"},{"code":"540623","name":"聂荣县"},{"code":"540624","name":"安多县"},{"code":"540625","name":"申扎县"},{"code":"540626","name":"索县"},{"code":"540627","name":"班戈县"},{"code":"540628","name":"巴青县"},{"code":"540629","name":"尼玛县"},{"code":"540630","name":"双湖县"}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610118","name":"鄠邑区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610305","name":"凤翔区"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"},{"code":"610482","name":"彬州市"}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"},{"code":"610681","name":"子长市"}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区"},{"code":"610703","name":"南郑区"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"},{"code":"610881","name":"神木市"}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610929","name":"白河县"},{"code":"610981","name":"旬阳市"}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"},{"code":"620171","name":"兰州新区"}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201001","name":"雄关街道"},{"code":"620201002","name":"钢城街道"},{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"},{"code":"620881","name":"华亭市"}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630106","name":"湟中区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632301","name":"同仁市"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632803","name":"茫崖市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"},{"code":"632857","name":"大柴旦行政委员会"}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市"},{"code":"652902","name":"库车市"},{"code":"652922","name":"温宿县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654203","name":"沙湾市"},{"code":"654221","name":"额敏县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659005","name":"北屯市"},{"code":"659006","name":"铁门关市"},{"code":"659007","name":"双河市"},{"code":"659008","name":"可克达拉市"},{"code":"659009","name":"昆玉市"},{"code":"659010","name":"胡杨河市"},{"code":"659011","name":"新星市"},{"code":"659012","name":"白杨市"}]}]}]')},Symbol.toStringTag,{value:"Module"}));ze.FastFormDesigner=Mt,ze.FormRenderer=Ft,ze.default=Mt,ze.getPcaOptions=xo,ze.loadPcaData=At,ze.setPcaData=xl,Object.defineProperties(ze,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|