@dhccmobile/vue3-lo-form 2.0.1 → 2.0.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://vue3-lo-form/webpack/universalModuleDefinition","webpack://vue3-lo-form/webpack/bootstrap","webpack://vue3-lo-form/external \"vue-property-decorator\"","webpack://vue3-lo-form/./src/components/form/DvForm.vue?89a6","webpack://vue3-lo-form/external \"core-js/modules/esnext.json.parse.js\"","webpack://vue3-lo-form/./src/constants/enum/dynamic-option-type.enum.ts","webpack://vue3-lo-form/external \"core-js/modules/es.array.push.js\"","webpack://vue3-lo-form/./src/constants/enum/validate-status.enum.ts","webpack://vue3-lo-form/external \"dayjs/locale/zh-cn\"","webpack://vue3-lo-form/external \"ant-design-vue\"","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.find.js\"","webpack://vue3-lo-form/./src/constants/enum/option-type.enum.ts","webpack://vue3-lo-form/./node_modules/vue-loader-v16/dist/exportHelper.js","webpack://vue3-lo-form/external \"dayjs\"","webpack://vue3-lo-form/external \"vue\"","webpack://vue3-lo-form/external \"@ant-design/icons-vue\"","webpack://vue3-lo-form/./src/constants/enum/cache-type.enum.ts","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.constructor.js\"","webpack://vue3-lo-form/./src/constants/enum/form-field-class.enum.ts","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.for-each.js\"","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue?93a4","webpack://vue3-lo-form/external \"core-js/modules/es.json.stringify.js\"","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.map.js\"","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.filter.js\"","webpack://vue3-lo-form/external \"mathjs\"","webpack://vue3-lo-form/external \"ant-design-vue/es/date-picker/locale/zh_CN\"","webpack://vue3-lo-form/external \"localforage\"","webpack://vue3-lo-form/external \"moment\"","webpack://vue3-lo-form/./src/constants/enum/switch.enum.ts","webpack://vue3-lo-form/./src/constants/enum/form-field-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/builtIn-label.enum.ts","webpack://vue3-lo-form/./src/constants/enum/control-format-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/form-bus-attr.enum.ts","webpack://vue3-lo-form/./src/constants/enum/form-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/lateral-arrangement.enum.ts","webpack://vue3-lo-form/./src/constants/enum/money-unit.enum.ts","webpack://vue3-lo-form/./src/constants/enum/submitted-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/support-upload-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/upload-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/validate-rules.enum.ts","webpack://vue3-lo-form/./src/constants/enum/vertical-arrangement.enum.ts","webpack://vue3-lo-form/external \"core-js/modules/es.iterator.some.js\"","webpack://vue3-lo-form/external \"tslib\"","webpack://vue3-lo-form/external \"core-js/modules/es.error.cause.js\"","webpack://vue3-lo-form/./src/components/form/StretchText.vue?7438","webpack://vue3-lo-form/./src/services/validate-generator.service.ts","webpack://vue3-lo-form/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue3-lo-form/./src/components/form/DvForm.vue?6ea6","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue?bb1f","webpack://vue3-lo-form/./src/constants/config/form-template.config.ts","webpack://vue3-lo-form/./src/constants/encode-assets/svg.ts","webpack://vue3-lo-form/./src/filtres/generate-grid-template-columns.filter.ts","webpack://vue3-lo-form/./src/filtres/generate-grid-column-end.filter.ts","webpack://vue3-lo-form/./src/services/api.service.ts","webpack://vue3-lo-form/./src/constants/config/storage.config.ts","webpack://vue3-lo-form/./src/services/clean-local-forage.service.ts","webpack://vue3-lo-form/./src/services/dict-local-forage.service.ts","webpack://vue3-lo-form/./src/services/form-bean-utils.service.ts","webpack://vue3-lo-form/./src/services/form-local-forage.service.ts","webpack://vue3-lo-form/./src/domain/DesForm.ts","webpack://vue3-lo-form/./src/domain/DesFormLayout.ts","webpack://vue3-lo-form/./src/services/form-tree-node-convert.service.ts","webpack://vue3-lo-form/./src/store/form.store.ts","webpack://vue3-lo-form/./src/store/dict.store.ts","webpack://vue3-lo-form/./src/constants/config/form.config.ts","webpack://vue3-lo-form/./src/services/router.service.ts","webpack://vue3-lo-form/./src/services/form-validate.service.ts","webpack://vue3-lo-form/./src/services/form-tools.service.ts","webpack://vue3-lo-form/./src/filtres/amount-capitalization.filter.ts","webpack://vue3-lo-form/./src/domain/DesFormControl.ts","webpack://vue3-lo-form/./src/domain/AbstractControl.ts","webpack://vue3-lo-form/./src/domain/FormControl.ts","webpack://vue3-lo-form/./src/domain/FormGroup.ts","webpack://vue3-lo-form/./src/filtres/extract-options.filter.ts","webpack://vue3-lo-form/./src/filtres/zoom-multiple.filter.ts","webpack://vue3-lo-form/./src/filtres/switch-enum-convert.filter.ts","webpack://vue3-lo-form/./src/components/form/StretchText.vue?2f7e","webpack://vue3-lo-form/./src/components/form/StretchText.vue","webpack://vue3-lo-form/./src/components/form/StretchText.vue?c6be","webpack://vue3-lo-form/./public/js/pinyin.ts","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue?f9e6","webpack://vue3-lo-form/./src/services/date-format.service.ts","webpack://vue3-lo-form/./src/core/FormApi.ts","webpack://vue3-lo-form/./src/components/form/DvForm.vue","webpack://vue3-lo-form/./src/components/form/DvForm.vue?7a07","webpack://vue3-lo-form/./src/index.ts","webpack://vue3-lo-form/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://vue3-lo-form/./src/constants/enum/zoom-type.ts"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","require","DynamicOptionType","GeneralDictionary","code","TreeDictionary","ValidateStatus","Success","Warning","Error","Validating","OptionType","Fixed","Dynamic","default","sfc","props","target","__vccOpts","val","CacheType","FORM","TABLE","DICT","FormFieldClass","Layout","icon","Base","Senior","Switch","Disable","Enable","FormFieldType","Input","type","Textarea","InputNumber","Select","Radio","Checkbox","TimePicker","DatePicker","Slider","Rate","Upload","Editor","Cascader","TreeSelect","Custom","Empty","Grid","BuiltLabel","ORDERED_LIST","ControlFormatType","GENERAL","AMOUNT_OF_MONEY","BANK_CARD_NUMBER","CELL_PHONE_NUMBER","LANDLINE_NUMBER","FormBusAttr","SUBMITTED_TYPE","IS_SUPPLEMENT","IS_KEY_ELEMENTS","IS_TRACK","FormType","Pc","Mobile","LateralArrangement","AlignLeft","RightAlignment","Center","BothSidesAreEquallySpaced","AlignBothEnds","MoneyUnit","Yuan","TenThousandYuan","HundredMillionYuan","SubmittedType","EAST","CITIC","TOTAL_ELEMENTS","PBC_CAPITAL_DECLARATION","ENTERPRISE_CREDIT_REFERENCE","OTOHAF_SUBMISSION","EAST_F","PERSONAL_CREDIT","BS_09","BS_10","BS_11","BS_12","BS_13","BS_14","BS_15","BS_16","BS_17","BS_18","BS_19","BS_20","BS_21","BS_22","BS_23","BS_24","BS_25","BS_26","BS_27","BS_28","SupportUploadType","Arbitrarily","UploadType","Jpeg","Png","Gif","Bmp","Doc","html","Mp3","Mp4","Pdf","Ppt","Xls","Xml","Zip","Wps","ValidateRules","SameValue","hasContent","hasDescribe","MailBox","RegEx","MinTextLength","MaxTextLength","MinValue","MaxValue","SpecifiedValue","SpecifiedDigitsNumber","DateNotEarlierThan","DateNoLaterThan","SpecifiedRangeNumber","PhoneNumber","Required","LineUnique","LetterSpace","AlphanumericUnderline","Alphanumeric","JsMethodVerification","BackEndVerification","LandlineNumber","VerticalArrangement","AlignRight","textAlign","AlignTop","ValidateGeneratorService","fillCheckRule","formControl","controlAttr","verificationRules","length","validates","forEach","item","validate","getBuiltInValidationRules","push","addValidate","ruleType","genSameValue","genMailBox","genRegEx","genMinTextLength","genMaxTextLength","genMinValue","genMaxValue","genSpecifiedValue","genSpecifiedDigitsNumber","genDateNotEarlierThan","genDateNoLaterThan","genSpecifiedRangeNumber","genPhoneNumber","genRequired","controlType","genLineUnique","genLetterSpace","genAlphanumericUnderline","genAlphanumeric","genJsMethodVerification","genBackEndVerification","genLandlineNumber","validateFunc","ruleContent","validateStatus","errorMsg","emreg","test","eval","describe","String","Number","undefined","countDecimals","Math","floor","toString","split","roundNumber","number","decimals","newString","round","numString","lastIndexOf","cutoff","d1","substring","d2","isNaN","roundedNum","decs","toDate","moment","e","indexOf","arr","reg","trim","Array","isArray","msg","func","Function","validateGeneratorService","window","currentScript","document","src","match","render","_ctx","_cache","$props","$setup","$data","$options","_ctx$desForm","_component_dv_form_layout","_resolveComponent","desForm","controls","_openBlock","_createElementBlock","ref","class","_normalizeClass","edit","styleMode","loFormTheme","_Fragment","_renderList","_createBlock","control","customFormats","linkList","onLinkClick","linkClick","index","onChange","$event","onFocus","onBlur","onClick","onAddonBefore","onAddonBeforeHandler","onAddonAfter","onAddonAfterHandler","onAddItem","selectAddItem","_createSlots","_","keys","$slots","propName","fn","_withCtx","slotProps","_renderSlot","content","_createCommentVNode","_typeof","iterator","constructor","toPrimitive","TypeError","toPropertyKey","_defineProperty","configurable","writable","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_component_a_tooltip","_component_question_circle_outlined","_component_clock_circle_outlined","_component_a_timeline_item","_component_a_timeline","_component_a_popconfirm","_component_search_outlined","_component_a_textarea","_component_a_input_number","_component_a_menu_item","_component_a_menu","_component_down_outlined","_component_a_button","_component_a_dropdown","_component_a_popover","_component_v_nodes","_component_a_divider","_component_plus_outlined","_component_a_select_option","_component_a_select","_component_a_radio","_component_a_radio_group","_component_a_checkbox","_component_a_col","_component_a_row","_component_a_checkbox_group","_component_a_switch","_component_a_time_picker","_component_a_month_picker","_component_a_date_picker","_component_a_slider","_component_a_cascader","_component_a_tree_select","_component_a_rate","_component_upload_outlined","_component_a_upload","_component_stretch_text","_component_a_form_item","_component_a_form","formFieldClass","isHideControl","formFieldType","layoutName","layout","style","_normalizeStyle","emptyLayoutContainerStyle","subControls","parentControl","onFixFormLayout","onHideControl","scopedPropName","generalLayoutContainerStyle","width","divWidthCompatibleToIe","_createElementVNode","_createVNode","labelCol","labelSpanWidth","wrapperCol","controlSpanMaxWidth","controlSpanWidth","colon","labelAlign","required","validateResult","help","provideInjectData","boundProperty","label","isHideTitle","isBoldTitle","color","titleColor","_toDisplayString","formFieldDescribe","submittedType","placement","title","submittedTypeStr","overlayClassName","submittedSvg","tips","history","dot","time","before","_createTextVNode","after","author","historySvg","_resolveDynamicComponent","inputShape","bindingPrefix","builtInFrontLabel","bindingSuffix","builtInPostLabel","placeholder","disabled","isNotEdit","autoCompleteOptions","onInput","rows","textareaRows","showCount","maxCharacterCount","maxlength","zoomType","automatic","moneyUnits","moneyUnitsIndentScale","tabindex","trigger","getPopupContainer","triggerNode","parentNode","body","step","min","minValue","max","maxValue","formatter","numberFormatter","parser","numberParser","precision","decimalPlaces","onInputNumberFocus","onInputNumberBlur","unit","overlay","handleMoneyUnitMenuClick","defaultMoneyUnit","numberPopoverVisible","amountCapitalization","zoomMultiple","isMultipleChoice","dropdownClassName","hiddenDropdown","showArrow","filterOption","dropdownRender","menuNode","menu","vnodes","canAddEntry","onMousedown","preventDefault","options","checkboxStyle","checked","onOpeningText","whenClosedText","locale","is12Hours","useMonthPicker","format","dateFormat","isShowHoliday","showTime","showPickerTime","dateRender","current","date","isRest","isWeekday","isRadingDay","renderExtraFooter","changeOnSelect","cascaderFilter","cascaderOptions","treeNodeFilterProp","maxHeight","overflow","treeSelectOptions","treeDefaultExpandAll","isTreeOpen","accept","uploadType","multiple","onRemove","handleRemove","beforeUpload","handleUploadChange","customFieldName","formatData","textFold","fieldKey","href","formTemplate","formId","appId","domainClassId","objectId","formType","formName","formAlias","formDescribe","useState","desDomainClass","desFormLayouts","layoutId","parentLayoutId","layoutType","gridSpace","gridColumnConfig","gridLateralArrangement","gridVerticalArrangement","layoutOrder","labelSpan","controlSpan","subDesFormLayout","desFormControls","desBusObject","SUBMITTED_SVG_XML","HISTORY_SVG_XML","FORM_ERROR_MODAL_SVG_XML","DROP_DOWN_LIST_SVG_XML","transform","configs","sort","a","b","order","join","generateGridTemplateColumns","generateGridColumnEnd","ApiService","createBasicHeaders","Accept","createAuthHeaders","accessToken","jti","Authorization","fetch","path","query","method","header","urlQueryConvert","headers","then","response","status","statusText","url","json","error","message","connectiveSymbol","idx","apiService","NAME","STORE_NAME","DICT_STORE_NAME","CleanLocalForageService","$app","config","globalProperties","$qlForm","init","formConfig","driver","sourceLocalForage","version","storeName","description","localForage","setItem","getItem","dropInstance","cleanLocalForageService","DictLocalForageService","dictLocalForageService","FormBeanUtilsService","copy","obj","JSON","parse","stringify","str","formBeanUtilsService","FormLocalForageService","formLocalForageService","DesForm","formGroup","DesFormLayout","FormTreeNodeConvertService","arrayConvertToTreeNode","data","nodeContrast","parentId","nds","filter","children","id","treeNodeConvertToNzTreeNode","nzNodeContrast","isDisabledLeaf","nodes","node","isLeaf","selected","selectable","disableCheckbox","expanded","arrayConvertToNzTreeNode","treeNode","treeNodeConvertToCascaderOption","nzCascaderOptionContrast","loading","parent","nzTreeNodeConvertToMap","mapNodeOptions","arrayConvertToCascaderOption","treeNodeConvertToArray","childName","formTreeNodeConvertService","FormStore","setForms","FORMS","getForms","setVersion","VERSION","getVersion","formStore","DictStore","setDicts","nzTreeNodeOptions","DICTS","getDicts","setTreeDicts","TREE_DICTS","getTreeDicts","setMapDicts","MAP_DICTS","getMapDicts","setMapTreeDicts","MAP_TREE_DICTS","getMapTreeDicts","dictStore","DEFAULT_FORM_FILE_NAME","DEFAULT_DICT_FILE_NAME","DEFAULT_DICT_URL","RouterService","subapp","pushState","getPathFromUrl","getParamsFromUrl","parameter","urlParameterToParams","params","array","kv","decodeURIComponent","getParameterOfUrl","mark","routerService","FormValidateService","validateTips","formApis","scrollView","actualFormApis","allError","errMessage","formApi","errors","validateReport","concat","err","console","log","Modal","confirm","h","innerHTML","onOk","showErrorModal","okText","cancelText","_formApis$","_allError$","errorEl","getControlEl","getElementById","scrollTo","top","offsetTop","behavior","running","event","scrollTop","documentElement","calculationError","removeEventListener","showErrInput","addEventListener","el","count","interval","setInterval","opacity","clearInterval","formValidateService","FormToolsService","setSupHoliday","bool","supHoliday","setFormDisabledColor","setProperty","checkFirstLoadAndInitDesign","IS_FIRST_LOADED","Promise","resolve","res","all","initDesign","initDict","selectHolidays","designRes","dictRes","contextPath","localStorage","traddayList","weekdayList","workdayList","LOAD_SUCCESS","forms","formVersion","loadMode","desForms","loadDesign","cacheType","desCacheVersion","cacheVersionNumber","formUrl","storageAddress","resEx","LOAD_FAIL","urls","mergeUrlByType","mergeUrlByCacheId","downloadUrl","appIds","resp","_resp$data","_query$appIds","address","cacheVersionMap","_item$desCacheVersion","_query$appIds2","_resp$data2","_query$appIds3","_item$desCacheVersion2","cacheVersionId","mergeFetchDesign","newDesForms","newDesForm","formatDesForm","onlySimpleLoadConfig","createFileDownloadAuthorizationHeader","fetches","dicts","treeDicts","mapDicts","mapTreeDicts","dictVersion","dictUrl","sysDictDetailOptions","sysDictTreeDetailOptions","mapSysDictDetailOptions","mapSysDictTreeDetailOptions","loadDict","url1","dictRestLoadOnlyBody","dictRestLoadMode","toLocaleUpperCase","dictRestLoadBody","dictRestLoadHeaders","distUrl","mergeFetchDict","sysDictInfos","dictionaryFormatCollection","inidDictOptions","fetchDicts","dictInfos","newDictInfos","empObj","filterDist","dictId","sysDictInfo","dictCd","dictNm","dictTp","comDictKeyValues","it","dictDetailsContrast","nzDictDetailsContrastContrast","treeDictKeyValues","suprDicPk","dictTreeDetailsContrast","nzDictTreeDetailsContrastContrast","mapTreeNodeOptions","sourceDesForm","recursionFormatForm","sortControls","formFieldId","desFormControl","values","find","active","isPasswordBox","enableAutoComplete","isFixedRowHeight","thousandthPercentileFormat","isShowCapitalization","isLineFeedDisplay","optionConfig","generalDictionaryOptions","treeShapeOptions","isSupportMultiple","customUploadType","isSearchable","isClearButton","desFormLayout","layoutControl","controlA","controlB","x","y","tableFieldOrder","loadResource","simple","responseType","formToolsService","currencyDigits","MAXIMUM_NUMBER","CN_ZERO","CN_ONE","CN_TWO","CN_THREE","CN_FOUR","CN_FIVE","CN_SIX","CN_SEVEN","CN_EIGHT","CN_NINE","CN_TEN","CN_HUNDRED","CN_THOUSAND","CN_TEN_THOUSAND","CN_HUNDRED_MILLION","CN_SYMBOL","CN_DOLLAR","DROP","CN_TEN_CENT","CN_CENT","CN_INTEGER","integral","decimal","outputCharacters","zeroCount","quotient","modulus","parts","digits","radices","bigRadices","prefix","substr","replace","divisor","num","DesFormControl","extendBoundPropertyOne","extendBoundPropertyTwo","fieldDefaultValue","titleWidth","controlWidth","initRowHeight","formatType","moneyUnit","defineOptionalUnits","defineOptionalUnitsDefault","isOptionType","dynamicOptionType","generalDictionary","treeShape","disableNonLeafNodes","timeFormat","maxUploadNumber","limitSize","supportUploadType","extendUploadType","attachmentExtendProperties","onOpeningValue","whenClosedValue","busAttr","itemWidth","AbstractControl","FormControl","formState","super","setValue","findIndex","removeValidate","splice","getValidate","result","text","textNoticeCallback","FormGroup","addControl","removeControl","transformReverse","extractOptions","args","storageOptions","encode","_getCurrentInstance","proxy","getCurrentInstance","mathjs","$mathjs","ZoomType","enlarge","evaluate","notation","narrow","switchEnumFiled","attribute","defaultVal","switchEnum","switchEnumConvert","unfold","ifOver","StretchText","Vue","mounted","onContentHandle","$emit","spanBox","offsetHeight","textBox","__decorate","Prop","Ref","Watch","Options","__exports__","char_dict","full_dict","polyphone","checkPolyphone","charcase","pinYin","getFullChars","RegExp","len","ch","unicode","charCodeAt","_getFullChar","toLocaleLowerCase","getCamelChars","chars","charAt","_getChar","_getResult","_capitalize","first","toUpperCase","spare","strlen","j","swap1","slice","swap2","k","DvFormLayout","onDefaultMoneyUnitHandler","newVal","onValidationFeedbackHandle","onFormValidateStateResetMarkHandle","$nextTick","initFormControlData","_this$control","_this$parentControl","verificationRule","controlFormatType","replaceUnit","parentControlAttr","toLowerCase","items","cascaderRecursion","treeSelectRecursion","hasFeedback","metaRefresh","context","option","dayjs","cascaderContextRecursion","treeSelectContextRecursion","customFormat","display","inputValue","some","currentIndex","cascaderOption","currentText","subText","subTitle","widthCompatibleMode","ActiveXObject","isIe","configIndex","proportion","total","ratio","_this$control2","gridTemplateColumns","_this$parentControl2","_this$control3","gridColumnEnd","Date","attrSubmittedType","map","submittedTypeCheckedNode","clearNoNum","parseFloat","validateNumBeyondLimit","pureNumber","file","newFileList","fileList","_event$formControl","calDate","DateTime","$d","year","getFullYear","month","getMonth","strDate","getDate","Inject","immediate","filters","components","PlusOutlined","Form","FormItem","AutoComplete","Option","displayName","OptGroup","RadioGroup","CheckboxGroup","Tooltip","InputPassword","Popover","Popconfirm","Timeline","TimelineItem","Dropdown","Menu","Item","Button","Divider","MonthPicker","Row","Col","VNodes","attrs","QuestionCircleOutlined","ClockCircleOutlined","DownOutlined","UploadOutlined","SearchOutlined","DateFormatService","formatDateTime","dayMap","day","getDay","week","hours","getHours","minutes","getMinutes","seconds","getSeconds","dateSizeCompare","startTime","endTime","getTime","Attribute","FormApi","getUuid","dvForm","DvForm","apiMetaRefresh","generateData","oldVal","contrast","jsonToFormData","setFormData","srcData","isDefault","setFormDataInner","setTimeout","getControl","showError","subControl","getValue","decodeData","setControlValue","resetValue","getText","getOptions","setOptions","setControlOptions","getAttribute","setAttribute","setControlAttribute","validateName","removeAllValidates","getValidates","setRequiredValidate","setValidate","isCover","setValidateInner","validateReports","refreshFeedback","refreshCheckFeedbackFlag","refreshValidate","resetFormValidateState","formValidateStateResetMark","setFormatDisplayAndOutput","refreshAndUpdateData","onRefreshArgumentsHandler","els","getElementsByClassName","checkHasUploadControl","abstractControl","judge","formData","FormData","File","append","setFieldChangeHistory","fieldChangeHistory","propertyName","aTime","bTime","hideLayout","nowDateStr","FieldDefaultValue","IsOptionType","OptionConfig","isFinal","output","hexDigits","random","uuid","objectA","objectB","fieldInfoArr","changeLog","handlerFlag","getChangedInfo","oldValue","newValue","fieldInfo","field_cd","field_nm","field_key","newDict","translateDictionaries","field_value","is_change","field_old_key","oldDict","field_old_value","oldName","newName","flag","getFormSubmittedType","form","strArr","list","subControlsList","submittedTypeList","IsHideControl","handleSubmittedData","codeArr","submittedData","getSubmittedType","DyForm","onPropFormValidateStateResetHandler","_provided","onPropHandler","win","themes","formTheme","$loFormTheme","created","initDesForm","onFormIdChanged","onSrcDesFormChanged","isReset","model","analysisBindingObjects","_this$formApi","generateFormGroup","initControlForm","generateFormApi","fixFormLayout","formView","$refs","cons","offsetLeft","clientWidth","con1","con2","models","objectExtraction","objectMerge","findDictOptions","propertys","lastMd","md","defaultValue","securityValue","subTtems","subValue","modelX","modelY","group","subFormGroup","_control$controlAttr","findFormControlByProperty","currentFormGroup","formObject","Boolean","Provide","install","app","installed","component","dictUrls","$formToolsService","mathjsDependencies","formatDependencies","subtractDependencies","multiplyDependencies","evaluateDependencies","addDependencies","divideDependencies","VueLoForm"],"mappings":"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,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS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","file":"vue3-lo-form.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue3-lo-form\"] = factory();\n\telse\n\t\troot[\"vue3-lo-form\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","module.exports = require(\"vue-property-decorator\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DvForm.vue?vue&type=style&index=0&id=1fb7b4f2&lang=scss&scoped=true\"","module.exports = require(\"core-js/modules/esnext.json.parse.js\");","// 动态字典类型\r\nconst DynamicOptionType = {\r\n GeneralDictionary: { code: \"1\", name: \"常规\" },\r\n TreeDictionary: { code: \"2\", name: \"树形\" },\r\n};\r\nexport { DynamicOptionType };\r\n","module.exports = require(\"core-js/modules/es.array.push.js\");","// 校验状态\r\nconst ValidateStatus: any = {\r\n Success: { code: \"success\", name: \"通过\" },\r\n Warning: { code: \"warning\", name: \"警告\" },\r\n Error: { code: \"error\", name: \"未通过\" },\r\n Validating: { code: \"validating\", name: \"校验中\" },\r\n};\r\nexport { ValidateStatus };\r\n","module.exports = require(\"dayjs/locale/zh-cn\");","module.exports = require(\"ant-design-vue\");","module.exports = require(\"core-js/modules/es.iterator.find.js\");","const OptionType = {\r\n Fixed: { code: \"1\", name: \"固定\" },\r\n Dynamic: { code: \"2\", name: \"动态\" },\r\n};\r\nexport { OptionType };\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","module.exports = require(\"dayjs\");","module.exports = require(\"vue\");","module.exports = require(\"@ant-design/icons-vue\");","// 数据缓存类型\r\nconst CacheType = {\r\n FORM: { code: \"1\", name: \"表格\" },\r\n TABLE: { code: \"2\", name: \"表单\" },\r\n DICT: { code: \"3\", name: \"字典\" },\r\n};\r\nexport { CacheType };\r\n","module.exports = require(\"core-js/modules/es.iterator.constructor.js\");","// 字段分类\r\nconst FormFieldClass = {\r\n Layout: { code: \"1\", name: \"布局\", icon: \"profile\" },\r\n Base: { code: \"2\", name: \"基础字段\", icon: \"profile\" },\r\n Senior: { code: \"3\", name: \"高级字段\", icon: \"profile\" },\r\n};\r\nexport { FormFieldClass };\r\n","module.exports = require(\"core-js/modules/es.iterator.for-each.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DvFormLayout.vue?vue&type=style&index=0&id=439fd898&lang=scss&scoped=true\"","module.exports = require(\"core-js/modules/es.json.stringify.js\");","module.exports = require(\"core-js/modules/es.iterator.map.js\");","module.exports = require(\"core-js/modules/es.iterator.filter.js\");","module.exports = require(\"mathjs\");","module.exports = require(\"ant-design-vue/es/date-picker/locale/zh_CN\");","module.exports = require(\"localforage\");","module.exports = require(\"moment\");","const Switch = {\r\n Disable: { code: \"0\", name: \"禁用\" },\r\n Enable: { code: \"1\", name: \"启用\" },\r\n};\r\nexport { Switch };\r\n","import { FormFieldClass } from \"./form-field-class.enum\";\r\n// 控件类型\r\nconst FormFieldType = {\r\n Input: { code: \"1\", name: \"输入框\", icon: \"icondanhangwenben\", type: FormFieldClass.Base.code },\r\n Textarea: { code: \"2\", name: \"多行文本\", icon: \"iconduohangwenben\", type: FormFieldClass.Base.code },\r\n InputNumber: { code: \"3\", name: \"数字输入框\", icon: \"iconjishuqi\", type: FormFieldClass.Base.code },\r\n Select: { code: \"4\", name: \"选择器\", icon: \"iconxialaxuanzekuang\", type: FormFieldClass.Base.code },\r\n Radio: { code: \"5\", name: \"单选框\", icon: \"icondanxuankuangzu\", type: FormFieldClass.Base.code },\r\n Checkbox: { code: \"6\", name: \"多选框\", icon: \"iconduoxuankuangzu\", type: FormFieldClass.Base.code },\r\n Switch: { code: \"7\", name: \"开关\", icon: \"iconkaiguan\", type: FormFieldClass.Base.code },\r\n TimePicker: { code: \"8\", name: \"时间选择框\", icon: \"iconshijianxuanzeqi\", type: FormFieldClass.Base.code },\r\n DatePicker: { code: \"9\", name: \"日期选择框\", icon: \"iconriqixuanzeqi\", type: FormFieldClass.Base.code },\r\n Slider: { code: \"10\", name: \"滑动输入条\", icon: \"iconhuakuai\", type: FormFieldClass.Base.code },\r\n Rate: { code: \"11\", name: \"评分\", icon: \"iconpingfen\", type: FormFieldClass.Base.code },\r\n\r\n Upload: { code: \"50\", name: \"上传\", icon: \"iconwenjian\", type: FormFieldClass.Senior.code },\r\n Editor: { code: \"51\", name: \"编辑器\", icon: \"iconbianjiqi\", type: FormFieldClass.Senior.code },\r\n Cascader: { code: \"52\", name: \"级联选择\", icon: \"iconjilianxuanzeqi\", type: FormFieldClass.Senior.code },\r\n TreeSelect: { code: \"53\", name: \"树选择\", icon: \"iconxialaxuanzekuang\", type: FormFieldClass.Senior.code },\r\n Custom: { code: \"54\", name: \"自定义组件\", icon: \"iconzidingyizujian\", type: FormFieldClass.Senior.code },\r\n\r\n Empty: { code: \"101\", name: \"根布局\", icon: \"iconzhagebuju\", type: FormFieldClass.Layout.code },\r\n Grid: { code: \"102\", name: \"栅格\", icon: \"iconzhagebuju\", type: FormFieldClass.Layout.code },\r\n};\r\nexport { FormFieldType };\r\n","// 内置前/后置标签\r\nconst BuiltLabel = {\r\n ORDERED_LIST: { code: \"1\", name: \"ordered-list\" },\r\n};\r\nexport { BuiltLabel };\r\n","// 控件格式化类型\r\nconst ControlFormatType = {\r\n GENERAL: { code: \"1\", name: \"常规数字\" },\r\n AMOUNT_OF_MONEY: { code: \"2\", name: \"金额\" },\r\n BANK_CARD_NUMBER: { code: \"3\", name: \"银行卡号\" },\r\n CELL_PHONE_NUMBER: { code: \"4\", name: \"手机号\" },\r\n LANDLINE_NUMBER: { code: \"5\", name: \"座机号\" },\r\n};\r\nexport { ControlFormatType };\r\n","// 动态字典类型\r\nconst FormBusAttr = {\r\n SUBMITTED_TYPE: { code: \"submittedType\", name: \"报送类型\" },\r\n IS_SUPPLEMENT: { code: \"isSupplement\", name: \"是否补录\" },\r\n IS_KEY_ELEMENTS: { code: \"isKeyElements\", name: \"是否关键要素\" },\r\n IS_TRACK: { code: \"isTrack\", name: \"是否追踪\" },\r\n};\r\nexport { FormBusAttr };\r\n","const FormType = {\r\n Pc: { code: \"1\", name: \"PC端\" },\r\n Mobile: { code: \"2\", name: \"移动端\" },\r\n};\r\nexport { FormType };\r\n","// 横向排列\r\nconst LateralArrangement = {\r\n AlignLeft: { code: \"1\", name: \"左对齐\" },\r\n RightAlignment: { code: \"2\", name: \"右对齐\" },\r\n Center: { code: \"3\", name: \"居中\" },\r\n BothSidesAreEquallySpaced: { code: \"4\", name: \"两侧间隔相等\" },\r\n AlignBothEnds: { code: \"5\", name: \"两端对齐\" },\r\n};\r\nexport { LateralArrangement };\r\n","const MoneyUnit = {\r\n Yuan: { code: \"1\", name: \"元\" },\r\n TenThousandYuan: { code: \"2\", name: \"万元\" },\r\n HundredMillionYuan: { code: \"3\", name: \"亿元\" },\r\n};\r\nexport { MoneyUnit };\r\n","// 报送信息类型\r\nconst SubmittedType = {\r\n EAST: { code: \"1\", name: \"EAST\" },\r\n CITIC: { code: \"2\", name: \"中信登\" },\r\n TOTAL_ELEMENTS: { code: \"3\", name: \"全要素\" },\r\n PBC_CAPITAL_DECLARATION: { code: \"4\", name: \"人行资金申报\" },\r\n ENTERPRISE_CREDIT_REFERENCE: { code: \"5\", name: \"企业征信\" },\r\n OTOHAF_SUBMISSION: { code: \"6\", name: \"1104报送\" },\r\n EAST_F: { code: \"7\", name: \"EAST4.0\" },\r\n PERSONAL_CREDIT: { code: \"8\", name: \"个人征信\" },\r\n BS_09: { code: \"9\", name: \"非现场监管报表\" },\r\n BS_10: { code: \"10\", name: \"银监其他\" },\r\n BS_11: { code: \"11\", name: \"人行资管产品统计逐产品采集\" },\r\n BS_12: { code: \"12\", name: \"人行其他\" },\r\n BS_13: { code: \"13\", name: \"其他报表\" },\r\n BS_14: { code: \"14\", name: \"反洗钱\" },\r\n BS_15: { code: \"15\", name: \"关联交易\" },\r\n BS_16: { code: \"16\", name: \"事前报告\" },\r\n BS_17: { code: \"17\", name: \"银监风险项目要素表\" },\r\n BS_18: { code: \"18\", name: \"金控重点监测项目数据报送\" },\r\n BS_19: { code: \"19\", name: \"中央企业金融风险事项统计表\" },\r\n BS_20: { code: \"20\", name: \"主动管理项目清单\" },\r\n BS_21: { code: \"21\", name: \"风险项目要素表(重大预警及关注不良)\" },\r\n BS_22: { code: \"22\", name: \"人行金融基础数据报送\" },\r\n BS_23: { code: \"23\", name: \"人行利率报备\" },\r\n BS_24: { code: \"24\", name: \"EAST5.0\" },\r\n BS_25: { code: \"25\", name: \"新中信登\" },\r\n BS_26: { code: \"26\", name: \"集团司库资金系统投融资数据报送\" },\r\n BS_27: { code: \"27\", name: \"金控客户协同\" },\r\n BS_28: { code: \"28\", name: \"金控大额交易\" },\r\n};\r\nexport { SubmittedType };\r\n","const SupportUploadType = {\r\n Arbitrarily: { code: \"1\", name: \"任意类型\" },\r\n Custom: { code: \"2\", name: \"自定义类型\" },\r\n};\r\nexport { SupportUploadType };\r\n","const UploadType = {\r\n Jpeg: { code: \"image/jpeg\", name: \"jpeg/jpg/jpe\" },\r\n Png: { code: \"image/png\", name: \"png\" },\r\n Gif: { code: \"image/gif\", name: \"gif\" },\r\n Bmp: { code: \"image/bmp\", name: \"bmp\" },\r\n Doc: { code: \"application/msword\", name: \"doc\" },\r\n html: { code: \"text/html\", name: \"html\" },\r\n Mp3: { code: \"audio/mpeg\", name: \"mp3\" },\r\n Mp4: { code: \"audio/mp4\", name: \"mp4\" },\r\n Pdf: { code: \"application/pdf\", name: \"pdf\" },\r\n Ppt: { code: \"application/vnd.ms-powerpoint\", name: \"ppt\" },\r\n Xls: { code: \"application/vnd.ms-excel\", name: \"xls\" },\r\n Xml: { code: \"application/xml\", name: \"xml\" },\r\n Zip: { code: \"aplication/zip\", name: \"zip\" },\r\n Wps: { code: \"application/vnd.ms-works\", name: \"wps\" },\r\n};\r\nexport { UploadType };\r\n","// 校验规则\r\nconst ValidateRules: any = {\r\n SameValue: { code: \"1\", name: \"相同的值\", hasContent: true, hasDescribe: false },\r\n MailBox: { code: \"2\", name: \"电子邮箱\", hasContent: false, hasDescribe: false },\r\n RegEx: { code: \"3\", name: \"正则表达式\", hasContent: true, hasDescribe: true },\r\n MinTextLength: { code: \"4\", name: \"最小文本长度\", hasContent: true, hasDescribe: false },\r\n MaxTextLength: { code: \"5\", name: \"最大文本长度\", hasContent: true, hasDescribe: false },\r\n MinValue: { code: \"6\", name: \"最小数值\", hasContent: true, hasDescribe: false },\r\n MaxValue: { code: \"7\", name: \"最大数值\", hasContent: true, hasDescribe: false },\r\n SpecifiedValue: { code: \"8\", name: \"指定的值\", hasContent: true, hasDescribe: false },\r\n SpecifiedDigitsNumber: { code: \"9\", name: \"指定位数的数字\", hasContent: true, hasDescribe: false },\r\n DateNotEarlierThan: { code: \"10\", name: \"日期不早于\", hasContent: true, hasDescribe: false },\r\n DateNoLaterThan: { code: \"11\", name: \"日期不晚于\", hasContent: true, hasDescribe: false },\r\n SpecifiedRangeNumber: { code: \"12\", name: \"指定范围的数字(包含最小/大值)\", hasContent: true, hasDescribe: false },\r\n PhoneNumber: { code: \"13\", name: \"手机号码\", hasContent: false, hasDescribe: false },\r\n Required: { code: \"14\", name: \"必填\", hasContent: false, hasDescribe: false },\r\n LineUnique: { code: \"15\", name: \"行唯一\", hasContent: false, hasDescribe: false },\r\n LetterSpace: { code: \"16\", name: \"字母空格\", hasContent: false, hasDescribe: false },\r\n AlphanumericUnderline: { code: \"17\", name: \"字母数字横线下划线\", hasContent: false, hasDescribe: false },\r\n Alphanumeric: { code: \"18\", name: \"字母数字\", hasContent: false, hasDescribe: false },\r\n JsMethodVerification: { code: \"19\", name: \"JS方法校验\", hasContent: true, hasDescribe: true },\r\n BackEndVerification: { code: \"20\", name: \"后端校验\", hasContent: false, hasDescribe: false },\r\n LandlineNumber: { code: \"21\", name: \"座机校验\", hasContent: false, hasDescribe: false },\r\n};\r\nexport { ValidateRules };\r\n","// 标签对齐方式\r\nconst VerticalArrangement = {\r\n AlignRight: { code: \"1\", name: \"右对齐\", value: \"horizontal\", textAlign: \"right\" },\r\n AlignTop: { code: \"2\", name: \"顶部对齐\", value: \"vertical\", textAlign: \"left\" },\r\n AlignLeft: { code: \"3\", name: \"左对齐\", value: \"horizontal\", textAlign: \"left\" },\r\n};\r\nexport { VerticalArrangement };\r\n","module.exports = require(\"core-js/modules/es.iterator.some.js\");","module.exports = require(\"tslib\");","module.exports = require(\"core-js/modules/es.error.cause.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StretchText.vue?vue&type=style&index=0&id=12085cfe&lang=scss&scoped=true\"","import { DesFormControl, FormControl, Validate } from \"../domain\";\r\nimport { FormFieldType, ValidateRules, ValidateStatus } from \"../constants/enum\";\r\nimport moment from \"moment\";\r\n\r\ninterface Rule {\r\n ruleType?: any;\r\n ruleContent?: any;\r\n describe?: any;\r\n}\r\n\r\nclass ValidateGeneratorService {\r\n /**\r\n * @description: 填充校验规则\r\n * @author ChenRui\r\n * @date 2021/1/27 15:07\r\n */\r\n fillCheckRule(formControl: FormControl, controlAttr: DesFormControl): void {\r\n if (controlAttr.verificationRules && controlAttr.verificationRules.length > 0) {\r\n const validates: Validate[] = [];\r\n controlAttr.verificationRules.forEach((item: Rule) => {\r\n const validate: Validate | undefined = this.getBuiltInValidationRules(item, controlAttr);\r\n if (validate) {\r\n validates.push(validate);\r\n }\r\n });\r\n formControl.addValidate(validates);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验规则\r\n * @author ChenRui\r\n * @date 2021/7/19 17:55\r\n */\r\n getBuiltInValidationRules(item: Rule, controlAttr: DesFormControl): Validate | undefined {\r\n let validate: Validate | undefined;\r\n switch (item.ruleType) {\r\n case ValidateRules.SameValue.code:\r\n validate = this.genSameValue(item);\r\n break;\r\n case ValidateRules.MailBox.code:\r\n validate = this.genMailBox(item);\r\n break;\r\n case ValidateRules.RegEx.code:\r\n validate = this.genRegEx(item);\r\n break;\r\n case ValidateRules.MinTextLength.code:\r\n validate = this.genMinTextLength(item);\r\n break;\r\n case ValidateRules.MaxTextLength.code:\r\n validate = this.genMaxTextLength(item);\r\n break;\r\n case ValidateRules.MinValue.code:\r\n validate = this.genMinValue(item);\r\n break;\r\n case ValidateRules.MaxValue.code:\r\n validate = this.genMaxValue(item);\r\n break;\r\n case ValidateRules.SpecifiedValue.code:\r\n validate = this.genSpecifiedValue(item);\r\n break;\r\n case ValidateRules.SpecifiedDigitsNumber.code:\r\n validate = this.genSpecifiedDigitsNumber(item);\r\n break;\r\n case ValidateRules.DateNotEarlierThan.code:\r\n validate = this.genDateNotEarlierThan(item);\r\n break;\r\n case ValidateRules.DateNoLaterThan.code:\r\n validate = this.genDateNoLaterThan(item);\r\n break;\r\n case ValidateRules.SpecifiedRangeNumber.code:\r\n validate = this.genSpecifiedRangeNumber(item);\r\n break;\r\n case ValidateRules.PhoneNumber.code:\r\n validate = this.genPhoneNumber(item);\r\n break;\r\n case ValidateRules.Required.code:\r\n validate = this.genRequired(item, controlAttr.controlType);\r\n break;\r\n case ValidateRules.LineUnique.code:\r\n validate = this.genLineUnique(item);\r\n break;\r\n case ValidateRules.LetterSpace.code:\r\n validate = this.genLetterSpace(item);\r\n break;\r\n case ValidateRules.AlphanumericUnderline.code:\r\n validate = this.genAlphanumericUnderline(item);\r\n break;\r\n case ValidateRules.Alphanumeric.code:\r\n validate = this.genAlphanumeric(item);\r\n break;\r\n case ValidateRules.JsMethodVerification.code:\r\n validate = this.genJsMethodVerification(item);\r\n break;\r\n case ValidateRules.BackEndVerification.code:\r\n validate = this.genBackEndVerification(item);\r\n break;\r\n case ValidateRules.LandlineNumber.code:\r\n validate = this.genLandlineNumber(item);\r\n break;\r\n }\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 相同的值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:12\r\n */\r\n genSameValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val != item.ruleContent) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `与预期值(${item.ruleContent})不符`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 电子邮箱\r\n * @author ChenRui\r\n * @date 2021/1/27 15:15\r\n */\r\n genMailBox(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const emreg = /^\\w{3,}(\\.\\w+)*@[A-z0-9]+(\\.[A-z]{2,5}){1,2}$/;\r\n if (!emreg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"电子邮件格式不正确\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 正则匹配\r\n * @author ChenRui\r\n * @date 2021/1/27 15:17\r\n */\r\n genRegEx(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && !eval(item.ruleContent).test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.describe ? item.describe : `'不满足正则校验'${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最小文本长度\r\n * @author ChenRui\r\n * @date 2021/1/27 15:18\r\n */\r\n genMinTextLength(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val && String(val).length < Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `内容不少于${item.ruleContent}个字`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最大文本长度\r\n * @author ChenRui\r\n * @date 2021/1/27 15:21\r\n */\r\n genMaxTextLength(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val && String(val).length > Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `内容不超过${item.ruleContent}个字`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最小值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:24\r\n */\r\n genMinValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent != null && val != null && val !== \"\" && Number(val) < Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值不能小于${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最大值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:25\r\n */\r\n genMaxValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent != null && val != null && val !== \"\" && Number(val) > Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值不能大于${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定的值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:27\r\n */\r\n genSpecifiedValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val != item.ruleContent) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `与预期值(${item.ruleContent})不符`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定位数数字\r\n * @author ChenRui\r\n * @date 2021/1/27 15:31\r\n */\r\n genSpecifiedDigitsNumber(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n let countDecimals = 0;\r\n if (Math.floor(val).toString() !== val.toString()) {\r\n countDecimals = val.toString().split(\".\")[1].length || 0;\r\n }\r\n if (countDecimals != Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.ruleContent === \"0\" || item.ruleContent === 0 ? `请输入整数` : `请保留${item.ruleContent}位小数`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 自动补位\r\n * @author ChenRui\r\n * @date 2021/1/27 15:59\r\n */\r\n roundNumber(number: any, decimals: any): any {\r\n let newString; // The new rounded number\r\n decimals = Number(decimals);\r\n if (decimals < 1) {\r\n newString = Math.round(number).toString();\r\n } else {\r\n let numString = number.toString();\r\n if (numString.lastIndexOf(\".\") == -1) {\r\n // If there is no decimal point\r\n numString += \".\"; // give it one at the end\r\n }\r\n let cutoff = numString.lastIndexOf(\".\") + decimals; // The point at which to truncate the number\r\n let d1: any = Number(numString.substring(cutoff, cutoff + 1)); // The value of the last decimal place that we'll end up with\r\n const d2 = Number(numString.substring(cutoff + 1, cutoff + 2)); // The next decimal, after the last one we want\r\n if (d2 >= 5) {\r\n // Do we need to round up at all? If not, the string will just be truncated\r\n if (d1 == 9 && cutoff > 0) {\r\n // If the last digit is 9, find a new cutoff point\r\n while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {\r\n if (d1 != \".\") {\r\n cutoff -= 1;\r\n d1 = Number(numString.substring(cutoff, cutoff + 1));\r\n } else {\r\n cutoff -= 1;\r\n }\r\n }\r\n }\r\n d1 += 1;\r\n }\r\n if (d1 == 10) {\r\n numString = numString.substring(0, numString.lastIndexOf(\".\"));\r\n const roundedNum = Number(numString) + 1;\r\n newString = roundedNum.toString() + \".\";\r\n } else {\r\n newString = numString.substring(0, cutoff) + d1.toString();\r\n }\r\n }\r\n if (newString.lastIndexOf(\".\") == -1) {\r\n // Do this again, to the new string\r\n newString += \".\";\r\n }\r\n const decs = newString.substring(newString.lastIndexOf(\".\") + 1).length;\r\n for (let i = 0; i < decimals - decs; i++) newString += \"0\";\r\n return newString;\r\n }\r\n\r\n /**\r\n * @description: 日期不早于\r\n * @author ChenRui\r\n * @date 2021/1/27 16:06\r\n */\r\n genDateNotEarlierThan(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n try {\r\n if (val.toDate() > moment(item.ruleContent).toDate()) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `日期不早于${item.ruleContent}`,\r\n };\r\n }\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `最大值日期(${item.ruleContent})格式有误!`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 日期不晚于\r\n * @author ChenRui\r\n * @date 2021/1/27 16:08\r\n */\r\n genDateNoLaterThan(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n try {\r\n if (val.toDate() < moment(item.ruleContent).toDate()) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `日期不晚于${item.ruleContent}`,\r\n };\r\n }\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `最小值日期(${item.ruleContent})格式有误!`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定范围的数字\r\n * @author ChenRui\r\n * @date 2021/1/27 16:35\r\n */\r\n genSpecifiedRangeNumber(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent != null && val && item.ruleContent.indexOf(\"/\") > -1) {\r\n const arr: any[] = item.ruleContent.split(\"/\");\r\n if (arr && arr.length > 1) {\r\n if (val < Number(arr[0]) || val > Number(arr[1])) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值大小应在${arr[0]}~${arr[1]}之间`,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 手机号\r\n * @author ChenRui\r\n * @date 2021/1/27 16:55\r\n */\r\n genPhoneNumber(item: Rule): Validate {\r\n const reg = /^0?1[3|4|5|6|7|8|9][0-9]\\d{8}$/;\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"手机号不合法\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 必填\r\n * @author ChenRui\r\n * @date 2021/1/27 15:28\r\n */\r\n genRequired(item: Rule, controlType: string): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val == null || (typeof val == \"string\" && val.trim() === \"\") || (Array.isArray(val) && val.length === 0)) {\r\n let msg = \"为必输项\";\r\n if (controlType === FormFieldType.Select.code || controlType === FormFieldType.Radio.code || controlType === FormFieldType.Checkbox.code) {\r\n msg += \",请选择\";\r\n } else {\r\n msg += \",请输入\";\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: msg,\r\n };\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 唯一行\r\n * @author ChenRui\r\n * @date 2021/1/27 17:16\r\n */\r\n genLineUnique(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: () => {\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 仅包含字母空格\r\n * @author ChenRui\r\n * @date 2021/1/27 17:21\r\n */\r\n genLetterSpace(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^(?!_)([A-Za-z ]+)$/;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含字母空格\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 数字字母下划线\r\n * @author ChenRui\r\n * @date 2021/1/27 17:28\r\n */\r\n genAlphanumericUnderline(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^[a-zA-Z0-9_]{1,}$/;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含数字字母下划线\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 字母数字\r\n * @author ChenRui\r\n * @date 2021/1/27 17:32\r\n */\r\n genAlphanumeric(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^[0-9a-zA-Z]*$/g;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含数字字母\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: JS方法校验\r\n * @author ChenRui\r\n * @date 2021/1/27 17:42\r\n */\r\n genJsMethodVerification(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && item.ruleContent) {\r\n try {\r\n const func = new Function(item.ruleContent);\r\n return func(val);\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.describe ? item.describe : `'JS校验函数不合法`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 后端校验\r\n * @author ChenRui\r\n * @date 2021/1/27 17:43\r\n */\r\n genBackEndVerification(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: () => {\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 座机号校验\r\n * @author ChenRui\r\n * @date 2021/4/14 11:40\r\n */\r\n genLandlineNumber(item: Rule): Validate {\r\n const reg = /^0\\d{2,3}-?\\d{7,8}$/;\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"座机号不合法\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n}\r\nconst validateGeneratorService = new ValidateGeneratorService();\r\nexport { Rule, validateGeneratorService };\r\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, createSlots as _createSlots, createBlock as _createBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_dv_form_layout = _resolveComponent(\"dv-form-layout\")!\n\n return (_ctx.desForm?.controls?.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n ref: \"formView\",\n class: _normalizeClass('lo-form-container ' + ('lo-' + (_ctx.edit ? 'enable' : 'disable') + '-edit') + ' lo-class-style-' + _ctx.styleMode + ' lo-form-theme-' + _ctx.loFormTheme)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.desForm.controls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n control: item,\n customFormats: _ctx.customFormats,\n linkList: _ctx.linkList,\n onLinkClick: _ctx.linkClick,\n index: i,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onChange($event))),\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onBlur($event))),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onClick($event))),\n onAddonBefore: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[6] || (_cache[6] = ($event: any) => (_ctx.selectAddItem($event)))\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(this.$slots), (propName) => {\n return {\n name: propName,\n fn: _withCtx((slotProps) => [\n _renderSlot(_ctx.$slots, propName, {\n content: slotProps.content,\n control: slotProps.control,\n onChange: slotProps.onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"control\", \"customFormats\", \"linkList\", \"onLinkClick\", \"index\"]))\n }), 128))\n ], 2))\n : _createCommentVNode(\"\", true)\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, renderSlot as _renderSlot, resolveDynamicComponent as _resolveDynamicComponent, createSlots as _createSlots } from \"vue\"\n\nconst _hoisted_1 = { class: \"lo-control-box\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"lo-history-context\" }\nconst _hoisted_5 = { class: \"lo-important lo-mx-10\" }\nconst _hoisted_6 = { class: \"lo-important lo-mx-10\" }\nconst _hoisted_7 = { class: \"lo-important lo-ml-10\" }\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = { class: \"number-format-show\" }\nconst _hoisted_10 = { class: \"addon-inner\" }\nconst _hoisted_11 = { class: \"ant-picker-cell-inner calendar-control-style\" }\nconst _hoisted_12 = { class: \"date-control-style\" }\nconst _hoisted_13 = { class: \"date-style\" }\nconst _hoisted_14 = { class: \"eest-day-style\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"holidays-style\"\n}\nconst _hoisted_16 = {\n key: 1,\n class: \"weekday-style\"\n}\nconst _hoisted_17 = { class: \"date-type-style\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"trading-day-style\"\n}\nconst _hoisted_19 = { class: \"lo-input-content\" }\nconst _hoisted_20 = [\"title\"]\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = {\n key: 0,\n class: \"addon-readonly\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_question_circle_outlined = _resolveComponent(\"question-circle-outlined\")!\n const _component_clock_circle_outlined = _resolveComponent(\"clock-circle-outlined\")!\n const _component_a_timeline_item = _resolveComponent(\"a-timeline-item\")!\n const _component_a_timeline = _resolveComponent(\"a-timeline\")!\n const _component_a_popconfirm = _resolveComponent(\"a-popconfirm\")!\n const _component_search_outlined = _resolveComponent(\"search-outlined\")!\n const _component_a_textarea = _resolveComponent(\"a-textarea\")!\n const _component_a_input_number = _resolveComponent(\"a-input-number\")!\n const _component_a_menu_item = _resolveComponent(\"a-menu-item\")!\n const _component_a_menu = _resolveComponent(\"a-menu\")!\n const _component_down_outlined = _resolveComponent(\"down-outlined\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_dropdown = _resolveComponent(\"a-dropdown\")!\n const _component_a_popover = _resolveComponent(\"a-popover\")!\n const _component_v_nodes = _resolveComponent(\"v-nodes\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_plus_outlined = _resolveComponent(\"plus-outlined\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_col = _resolveComponent(\"a-col\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_a_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n const _component_a_switch = _resolveComponent(\"a-switch\")!\n const _component_a_time_picker = _resolveComponent(\"a-time-picker\")!\n const _component_a_month_picker = _resolveComponent(\"a-month-picker\")!\n const _component_a_date_picker = _resolveComponent(\"a-date-picker\")!\n const _component_a_slider = _resolveComponent(\"a-slider\")!\n const _component_a_cascader = _resolveComponent(\"a-cascader\")!\n const _component_a_tree_select = _resolveComponent(\"a-tree-select\")!\n const _component_a_rate = _resolveComponent(\"a-rate\")!\n const _component_upload_outlined = _resolveComponent(\"upload-outlined\")!\n const _component_a_upload = _resolveComponent(\"a-upload\")!\n const _component_stretch_text = _resolveComponent(\"stretch-text\")!\n const _component_a_form_item = _resolveComponent(\"a-form-item\")!\n const _component_dv_form_layout = _resolveComponent(\"dv-form-layout\", true)!\n const _component_a_form = _resolveComponent(\"a-form\")!\n\n return ((_ctx.control.type === _ctx.formFieldClass.Base.code || _ctx.control.type === _ctx.formFieldClass.Senior.code) && !_ctx.controlAttr.isHideControl)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"lo-control-container\",\n style: _normalizeStyle({ width: _ctx.divWidthCompatibleToIe })\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_form_item, {\n labelCol: {\r\n style: 'min-width: ' + _ctx.labelSpanWidth + ';width:' + _ctx.labelSpanWidth,\r\n },\n wrapperCol: {\r\n style: 'max-width: ' + _ctx.controlSpanMaxWidth + ';width: ' + _ctx.controlSpanWidth,\r\n },\n colon: _ctx.colon,\n labelAlign: _ctx.labelAlign,\n required: _ctx.required,\n \"validate-status\": _ctx.validateResult.validateStatus,\n help: _ctx.provideInjectData.edit ? _ctx.validateResult.errorMsg : null,\n class: _normalizeClass({\r\n ['form-model-item-' + _ctx.controlAttr.boundProperty]: true,\r\n ['form-model-item-' + _ctx.control.code]: true,\r\n 'lo-form-model-item-textarea-box': _ctx.control.code === _ctx.formFieldType.Textarea.code,\r\n })\n }, {\n label: _withCtx(() => [\n (!_ctx.controlAttr.isHideTitle)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ 'lo-fw': _ctx.controlAttr.isBoldTitle }),\n style: _normalizeStyle({ color: _ctx.controlAttr.titleColor })\n }, _toDisplayString(_ctx.controlAttr.formFieldDescribe), 7),\n (_ctx.submittedType.length > 0)\n ? (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 0,\n class: \"lo-label-sub-type-icon\",\n placement: \"right\",\n title: _ctx.submittedTypeStr,\n overlayClassName: \"lo-form-item-tooltip\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", { src: _ctx.submittedSvg }, null, 8, _hoisted_3)\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.controlAttr.tips)\n ? (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 1,\n class: \"lo-label-tips-icon\",\n placement: \"right\",\n title: _ctx.controlAttr.tips,\n overlayClassName: \"lo-form-item-tooltip\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_question_circle_outlined, { style: {\"font-size\":\"13px\"} })\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.formControl.history && _ctx.formControl.history.length)\n ? (_openBlock(), _createBlock(_component_a_popconfirm, {\n key: 2,\n overlayClassName: \"lo-label-history-popconfirm\",\n placement: \"right\",\n \"ok-text\": \"确定\"\n }, {\n title: _withCtx(() => [\n _cache[73] || (_cache[73] = _createElementVNode(\"div\", { class: \"lo-history-popconfirm-title\" }, \"历史修改\", -1)),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_timeline, { class: \"lo-history-timeline\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.formControl.history, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_timeline_item, { key: index }, {\n dot: _withCtx(() => [\n _createVNode(_component_clock_circle_outlined, { style: {\"font-size\":\"13px\"} })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, _toDisplayString(item.time), 1),\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(item.before), 1),\n _cache[71] || (_cache[71] = _createTextVNode(\" 改为 \", -1)),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(item.after), 1),\n _cache[72] || (_cache[72] = _createTextVNode(\" 修改人 \", -1)),\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(item.author), 1)\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"lo-label-history-icon\",\n src: _ctx.historySvg\n }, null, 8, _hoisted_8)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (_ctx.provideInjectData.edit)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_ctx.control.code === _ctx.formFieldType.Input.code)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_ctx.provideInjectData.edit)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.inputShape), {\n key: 0,\n class: _normalizeClass({\r\n 'addon-before': _ctx.$slots['input:addonBefore:' + _ctx.formControl.key] || _ctx.controlAttr.bindingPrefix || _ctx.controlAttr.builtInFrontLabel,\r\n 'addon-after': _ctx.$slots['input:addonAfter:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix || _ctx.controlAttr.builtInPostLabel,\r\n }),\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.formControl.value) = $event)),\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n \"data-source\": _ctx.controlAttr.autoCompleteOptions,\n onFocus: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onFocus(_ctx.control))),\n onBlur: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onBlur(_ctx.control))),\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, _createSlots({ _: 2 }, [\n (_ctx.$slots['input:prefix:' + _ctx.formControl.key])\n ? {\n name: \"prefix\",\n fn: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'input:prefix:' + _ctx.formControl.key, {}, undefined, true)\n ]),\n key: \"0\"\n }\n : undefined,\n (_ctx.$slots['input:suffix:' + _ctx.formControl.key])\n ? {\n name: \"suffix\",\n fn: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'input:suffix:' + _ctx.formControl.key, {}, undefined, true)\n ]),\n key: \"1\"\n }\n : undefined,\n (_ctx.$slots['input:addonBefore:' + _ctx.formControl.key] || _ctx.controlAttr.bindingPrefix || _ctx.controlAttr.builtInFrontLabel)\n ? {\n name: \"addonBefore\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: \"addon-inner\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onAddonBeforeHandler(_ctx.control)))\n }, [\n (_ctx.$slots['input:addonBefore:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'input:addonBefore:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_ctx.controlAttr.bindingPrefix)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingPrefix), 1)\n ], 64))\n : (_ctx.controlAttr.builtInFrontLabel)\n ? (_openBlock(), _createBlock(_component_search_outlined, {\n key: 2,\n class: \"addon-icon\"\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n key: \"2\"\n }\n : undefined,\n (_ctx.$slots['input:addonAfter:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix || _ctx.controlAttr.builtInPostLabel)\n ? {\n name: \"addonAfter\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: \"addon-inner\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onAddonAfterHandler(_ctx.control)))\n }, [\n (_ctx.$slots['input:addonAfter:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'input:addonAfter:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_ctx.controlAttr.bindingSuffix)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingSuffix), 1)\n ], 64))\n : (_ctx.controlAttr.builtInPostLabel)\n ? (_openBlock(), _createBlock(_component_search_outlined, {\n key: 2,\n class: \"addon-icon\"\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n key: \"3\"\n }\n : undefined\n ]), 1064, [\"class\", \"value\", \"placeholder\", \"disabled\", \"data-source\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_ctx.control.code === _ctx.formFieldType.Textarea.code)\n ? (_openBlock(), _createBlock(_component_a_textarea, {\n key: 1,\n value: _ctx.control.formControl.value,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.control.formControl.value) = $event)),\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n rows: _ctx.controlAttr.textareaRows || 3,\n showCount: !!_ctx.maxCharacterCount,\n maxlength: _ctx.maxCharacterCount,\n onInput: _cache[8] || (_cache[8] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onFocus: _cache[9] || (_cache[9] = ($event: any) => (_ctx.onFocus(_ctx.control))),\n onBlur: _cache[10] || (_cache[10] = ($event: any) => (_ctx.onBlur(_ctx.control))),\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"value\", \"placeholder\", \"disabled\", \"rows\", \"showCount\", \"maxlength\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.InputNumber.code)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass([\"lo-input-number-box\", {\r\n 'lo-with-unit': _ctx.controlAttr.zoomType === _ctx.zoomType.automatic.code && _ctx.moneyUnits.length > 0,\r\n ['lo-unit-' + _ctx.moneyUnitsIndentScale]: true,\r\n }]),\n tabindex: \"1\"\n }, [\n _createVNode(_component_a_popover, {\n placement: \"topLeft\",\n trigger: \"focus\",\n getPopupContainer: \r\n (triggerNode) => {\r\n return triggerNode.parentNode || _ctx.document.body;\r\n }\r\n \n }, _createSlots({\n default: _withCtx(() => [\n _createVNode(_component_a_input_number, {\n step: _ctx.controlAttr.step || 1,\n min: _ctx.controlAttr.minValue != null ? _ctx.controlAttr.minValue : undefined,\n max: _ctx.controlAttr.maxValue != null ? _ctx.controlAttr.maxValue : undefined,\n formatter: _ctx.numberFormatter,\n parser: _ctx.numberParser,\n precision: _ctx.controlAttr.decimalPlaces,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[13] || (_cache[13] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[14] || (_cache[14] = ($event: any) => (_ctx.onClick(_ctx.control))),\n onFocus: _cache[15] || (_cache[15] = ($event: any) => (_ctx.onInputNumberFocus(_ctx.control))),\n onBlur: _cache[16] || (_cache[16] = ($event: any) => (_ctx.onInputNumberBlur(_ctx.control)))\n }, _createSlots({ _: 2 }, [\n (_ctx.controlAttr.unit)\n ? {\n name: \"addonAfter\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.controlAttr.unit), 1)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"step\", \"min\", \"max\", \"formatter\", \"parser\", \"precision\", \"placeholder\", \"disabled\", \"value\"]),\n (_ctx.controlAttr.zoomType === _ctx.zoomType.automatic.code && _ctx.moneyUnits.length > 0)\n ? (_openBlock(), _createBlock(_component_a_dropdown, { key: 0 }, {\n overlay: _withCtx(() => [\n _createVNode(_component_a_menu, { onClick: _ctx.handleMoneyUnitMenuClick }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.moneyUnits, (unit) => {\n return (_openBlock(), _createBlock(_component_a_menu_item, {\n key: unit.code\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(unit.name), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_button, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.defaultMoneyUnit.name) + \" \", 1),\n (_ctx.moneyUnits.length > 1)\n ? (_openBlock(), _createBlock(_component_down_outlined, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, [\n (_ctx.numberPopoverVisible)\n ? {\n name: \"content\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.amountCapitalization(_ctx.zoomMultiple(_ctx.formControl.value, _ctx.formControl))), 1)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"getPopupContainer\"])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Select.code)\n ? (_openBlock(), _createBlock(_component_a_select, {\n key: 3,\n class: _normalizeClass([\"lo-select\", {\r\n 'lo-select-multiple-suffix-icon': _ctx.controlAttr.isMultipleChoice && (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix),\r\n }]),\n dropdownClassName: _ctx.controlAttr.hiddenDropdown ? 'lo-select-hide-drop-down-content' : '',\n showArrow: \"\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"allow-clear\": true,\n \"show-search\": \"\",\n mode: _ctx.controlAttr.isMultipleChoice ? 'multiple' : '',\n disabled: _ctx.controlAttr.isNotEdit,\n placeholder: _ctx.controlAttr.placeholder,\n onChange: _cache[20] || (_cache[20] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[21] || (_cache[21] = ($event: any) => (_ctx.onClick(_ctx.control))),\n \"get-popup-container\": _ctx.getPopupContainer,\n \"filter-option\": _ctx.filterOption\n }, _createSlots({\n dropdownRender: _withCtx(({ menuNode: menu }) => [\n _createVNode(_component_v_nodes, { vnodes: menu }, null, 8, [\"vnodes\"]),\n (_ctx.controlAttr.canAddEntry)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createVNode(_component_a_divider, { style: {\"margin\":\"4px 0\"} }),\n _createElementVNode(\"div\", {\n style: {\"padding\":\"4px 8px 6px 8px\",\"cursor\":\"pointer\"},\n onMousedown: _cache[17] || (_cache[17] = (e) => e.preventDefault()),\n onClick: _cache[18] || (_cache[18] = ($event: any) => (_ctx.selectAddItem(_ctx.control)))\n }, [\n _createVNode(_component_plus_outlined),\n _cache[74] || (_cache[74] = _createTextVNode(\"新增\", -1))\n ], 32)\n ], 64))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n key: item.value,\n title: item.title,\n disabled: item.disabled ? item.disabled : false\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\", \"disabled\"]))\n }), 128))\n ]),\n _: 2\n }, [\n (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix)\n ? {\n name: \"suffixIcon\",\n fn: _withCtx(() => [\n (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'select:suffixIcon:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingSuffix), 1)\n ], 64))\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"dropdownClassName\", \"class\", \"value\", \"mode\", \"disabled\", \"placeholder\", \"get-popup-container\", \"filter-option\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Radio.code)\n ? (_openBlock(), _createBlock(_component_a_radio_group, {\n key: 4,\n class: \"w-100\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[22] || (_cache[22] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[23] || (_cache[23] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[24] || (_cache[24] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item.value,\n value: item.value\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Checkbox.code)\n ? (_openBlock(), _createBlock(_component_a_checkbox_group, {\n key: 5,\n class: \"w-100\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[25] || (_cache[25] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[26] || (_cache[26] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[27] || (_cache[27] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, null, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_checkbox, {\n key: item.value,\n value: item.value,\n class: \"ml-0 mr-5\",\n style: _normalizeStyle({ width: _ctx.controlAttr.checkboxStyle ? 'auto' : '10rem' })\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tooltip, null, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(item.title), 1)\n ]),\n default: _withCtx(() => [\n _createTextVNode(\" \" + _toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"value\", \"style\"]))\n }), 128))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Switch.code)\n ? (_openBlock(), _createBlock(_component_a_switch, {\n key: 6,\n checked: _ctx.formControl.value,\n \"onUpdate:checked\": _cache[28] || (_cache[28] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"checked-children\": _ctx.controlAttr.onOpeningText,\n \"un-checked-children\": _ctx.controlAttr.whenClosedText,\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[29] || (_cache[29] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[30] || (_cache[30] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"checked\", \"checked-children\", \"un-checked-children\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.TimePicker.code)\n ? (_openBlock(), _createBlock(_component_a_time_picker, {\n key: 7,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n \"use12-hours\": _ctx.is12Hours,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[31] || (_cache[31] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[32] || (_cache[32] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[33] || (_cache[33] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"use12-hours\", \"placeholder\", \"disabled\", \"value\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.DatePicker.code)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 8 }, [\n (_ctx.useMonthPicker)\n ? (_openBlock(), _createBlock(_component_a_month_picker, {\n key: 0,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[34] || (_cache[34] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[35] || (_cache[35] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[36] || (_cache[36] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n : (_ctx.controlAttr.isShowHoliday)\n ? (_openBlock(), _createBlock(_component_a_date_picker, {\n key: 1,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n showTime: _ctx.showPickerTime(_ctx.controlAttr.dateFormat),\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[37] || (_cache[37] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[38] || (_cache[38] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[39] || (_cache[39] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n dateRender: _withCtx(({ current }) => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _cache[75] || (_cache[75] = _createElementVNode(\"div\", { class: \"eest-day-style\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(current.date()), 1),\n _createElementVNode(\"div\", _hoisted_14, [\n (_ctx.isRest(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, \"休\"))\n : (_ctx.isWeekday(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, \"班\"))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n (_ctx.isRadingDay(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n renderExtraFooter: _withCtx(() => [...(_cache[76] || (_cache[76] = [\n _createElementVNode(\"div\", { class: \"legend\" }, [\n _createElementVNode(\"div\", { class: \"day-explain-style\" }, [\n _createElementVNode(\"div\", { class: \"trading-day-icon\" }),\n _createElementVNode(\"div\", { class: \"day-explain\" }, \"交易日\")\n ])\n ], -1)\n ]))]),\n _: 1\n }, 8, [\"get-popup-container\", \"locale\", \"showTime\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n : (_openBlock(), _createBlock(_component_a_date_picker, {\n key: 2,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n showTime: _ctx.showPickerTime(_ctx.controlAttr.dateFormat),\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[40] || (_cache[40] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[41] || (_cache[41] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[42] || (_cache[42] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"showTime\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Slider.code)\n ? (_openBlock(), _createBlock(_component_a_slider, {\n key: 9,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[43] || (_cache[43] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[44] || (_cache[44] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[45] || (_cache[45] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Cascader.code)\n ? (_openBlock(), _createBlock(_component_a_cascader, {\n key: 10,\n \"get-popup-container\": _ctx.getPopupContainer,\n changeOnSelect: _ctx.controlAttr.changeOnSelect,\n placeholder: _ctx.controlAttr.placeholder,\n \"show-search\": { cascaderFilter: _ctx.cascaderFilter },\n disabled: _ctx.controlAttr.isNotEdit,\n options: _ctx.cascaderOptions,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[46] || (_cache[46] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[47] || (_cache[47] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[48] || (_cache[48] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"changeOnSelect\", \"placeholder\", \"show-search\", \"disabled\", \"options\", \"value\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.TreeSelect.code)\n ? (_openBlock(), _createBlock(_component_a_tree_select, {\n key: 11,\n \"get-popup-container\": _ctx.getPopupContainer,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[49] || (_cache[49] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"show-search\": true,\n treeNodeFilterProp: 'title',\n disabled: _ctx.controlAttr.isNotEdit,\n placeholder: _ctx.controlAttr.placeholder,\n \"dropdown-style\": { maxHeight: '250px', overflow: 'auto' },\n \"tree-data\": _ctx.treeSelectOptions,\n onChange: _cache[50] || (_cache[50] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[51] || (_cache[51] = ($event: any) => (_ctx.onClick(_ctx.control))),\n treeDefaultExpandAll: _ctx.controlAttr.isTreeOpen\n }, null, 8, [\"get-popup-container\", \"value\", \"disabled\", \"placeholder\", \"tree-data\", \"treeDefaultExpandAll\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Rate.code)\n ? (_openBlock(), _createBlock(_component_a_rate, {\n key: 12,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[52] || (_cache[52] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[53] || (_cache[53] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[54] || (_cache[54] = ($event: any) => (_ctx.onClick(_ctx.control))),\n \"allow-half\": \"\"\n }, null, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Upload.code)\n ? (_openBlock(), _createBlock(_component_a_upload, {\n key: 13,\n \"file-list\": _ctx.formControl.value,\n accept: _ctx.uploadType,\n multiple: _ctx.controlAttr.isMultipleChoice,\n onRemove: _ctx.handleRemove,\n \"before-upload\": _ctx.beforeUpload,\n onChange: _ctx.handleUploadChange\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_button, null, {\n default: _withCtx(() => [\n _createVNode(_component_upload_outlined),\n _cache[77] || (_cache[77] = _createTextVNode(\" 选择文件 \", -1))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"file-list\", \"accept\", \"multiple\", \"onRemove\", \"before-upload\", \"onChange\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Custom.code && _ctx.controlAttr.customFieldName)\n ? _renderSlot(_ctx.$slots, _ctx.controlAttr.customFieldName, {\n key: 14,\n control: _ctx.control,\n onChange: _ctx.onChange\n }, undefined, true)\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"div\", _hoisted_19, [\n _renderSlot(_ctx.$slots, 'read:' + _ctx.control.formControl.key, { content: _ctx.formatData }, () => [\n (_ctx.controlAttr.textFold)\n ? (_openBlock(), _createBlock(_component_stretch_text, {\n key: 0,\n content: _ctx.formatData,\n linkList: _ctx.linkList,\n fieldKey: _ctx.control.formControl.key,\n onLinkClick: _cache[55] || (_cache[55] = ($event: any) => (_ctx.linkClick({ key: _ctx.formControl.key, value: _ctx.formatData })))\n }, null, 8, [\"content\", \"linkList\", \"fieldKey\"]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"lo-control-text\",\n title: _ctx.formatData\n }, [\n (_ctx.linkList.indexOf(_ctx.control.formControl.key) > -1)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"#\",\n onClick: _cache[56] || (_cache[56] = ($event: any) => (_ctx.linkClick({ key: _ctx.formControl.key, value: _ctx.formatData })))\n }, _toDisplayString(_ctx.formatData), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_21, _toDisplayString(_ctx.formatData), 1))\n ], 8, _hoisted_20))\n ], true)\n ]),\n _cache[78] || (_cache[78] = _createElementVNode(\"div\", { class: \"flex-grow-1\" }, null, -1)),\n (_ctx.controlAttr.unit)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, _toDisplayString(_ctx.controlAttr.unit), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n ]),\n _: 3\n }, 8, [\"labelCol\", \"wrapperCol\", \"colon\", \"labelAlign\", \"required\", \"validate-status\", \"help\", \"class\"])\n ])\n ], 4))\n : (_ctx.control.type === _ctx.formFieldClass.Layout.code && _ctx.control.code === _ctx.formFieldType.Empty.code)\n ? (_openBlock(), _createBlock(_component_a_form, {\n key: 1,\n class: _normalizeClass('w-100 lo-empty-layout-container' + (_ctx.controlAttr.layoutName ? ' lo-form-layout-' + _ctx.controlAttr.layoutName : '')),\n layout: _ctx.layout,\n style: _normalizeStyle(_ctx.emptyLayoutContainerStyle)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.control.subControls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n index: i,\n customFormats: _ctx.customFormats,\n control: item,\n parentControl: _ctx.control,\n linkList: _ctx.linkList,\n onLinkClick: _ctx.linkClick,\n onChange: _cache[57] || (_cache[57] = ($event: any) => (_ctx.onChange($event))),\n onClick: _cache[58] || (_cache[58] = ($event: any) => (_ctx.onClick($event))),\n onFocus: _cache[59] || (_cache[59] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[60] || (_cache[60] = ($event: any) => (_ctx.onBlur($event))),\n onAddonBefore: _cache[61] || (_cache[61] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[62] || (_cache[62] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[63] || (_cache[63] = ($event: any) => (_ctx.selectAddItem($event))),\n onFixFormLayout: _ctx.onHideControl\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(_ctx.$slots), (scopedPropName) => {\n return {\n name: scopedPropName,\n fn: _withCtx(({ content, control, onChange }) => [\n _renderSlot(_ctx.$slots, scopedPropName, {\n content: content,\n control: control,\n onChange: onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"index\", \"customFormats\", \"control\", \"parentControl\", \"linkList\", \"onLinkClick\", \"onFixFormLayout\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\", \"layout\", \"style\"]))\n : (_ctx.control.type === _ctx.formFieldClass.Layout.code && _ctx.control.code !== _ctx.formFieldType.Empty.code)\n ? (_openBlock(), _createBlock(_component_a_form, {\n key: 2,\n class: _normalizeClass('w-100 lo-general-layout-container' + (_ctx.controlAttr.layoutName ? ' lo-form-layout-' + _ctx.controlAttr.layoutName : '')),\n layout: _ctx.layout,\n style: _normalizeStyle(_ctx.generalLayoutContainerStyle)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.control.subControls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n index: i,\n customFormats: _ctx.customFormats,\n control: item,\n parentControl: _ctx.control,\n class: _normalizeClass(_ctx.controlAttr.layoutName ? 'lo-form-layout-' + _ctx.controlAttr.layoutName : ''),\n onChange: _cache[64] || (_cache[64] = ($event: any) => (_ctx.onChange($event))),\n onClick: _cache[65] || (_cache[65] = ($event: any) => (_ctx.onClick($event))),\n onFocus: _cache[66] || (_cache[66] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[67] || (_cache[67] = ($event: any) => (_ctx.onBlur($event))),\n onAddonBefore: _cache[68] || (_cache[68] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[69] || (_cache[69] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[70] || (_cache[70] = ($event: any) => (_ctx.selectAddItem($event)))\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(_ctx.$slots), (scopedPropName) => {\n return {\n name: scopedPropName,\n fn: _withCtx(({ content, control, onChange }) => [\n _renderSlot(_ctx.$slots, scopedPropName, {\n content: content,\n control: control,\n onChange: onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"index\", \"customFormats\", \"control\", \"parentControl\", \"class\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\", \"layout\", \"style\"]))\n : _createCommentVNode(\"\", true)\n}","const formTemplate = {\r\n formId: \"1\",\r\n appId: \"1\",\r\n domainClassId: \"\",\r\n objectId: \"1\",\r\n formType: \"1\",\r\n formName: \"test\",\r\n formAlias: \"test\",\r\n formDescribe: \"\",\r\n useState: \"1\",\r\n desDomainClass: null,\r\n desFormLayouts: [\r\n {\r\n layoutId: \"1\",\r\n formId: \"1\",\r\n parentLayoutId: \"\",\r\n layoutName: \"\",\r\n layoutType: \"101\",\r\n gridSpace: 1,\r\n gridColumnConfig: '[{\"value\":12,\"order\":1},{\"value\":12,\"order\":2}]',\r\n gridLateralArrangement: \"1\",\r\n gridVerticalArrangement: \"1\",\r\n layoutOrder: 1,\r\n labelSpan: \"\",\r\n controlSpan: \"\",\r\n subDesFormLayout: null,\r\n desFormControls: [],\r\n },\r\n ],\r\n desBusObject: null,\r\n};\r\nexport { formTemplate };\r\n","const SUBMITTED_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB0PSIxNjEyMTY2MTU4NzYxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjkxMjY3IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ij4NCiAgICAgIDxkZWZzPjwvZGVmcz4NCiAgICAgIDxwYXRoDQogICAgICAgIGQ9Ik01MTEuNSA5NjBDMjY0LjIgOTYwIDYzIDc1OC44IDYzIDUxMS41UzI2NC4yIDYzIDUxMS41IDYzIDk2MCAyNjQuMiA5NjAgNTExLjUgNzU4LjggOTYwIDUxMS41IDk2MHogbTAtODU5LjIzMmMtMjI2LjQ3OCAwLTQxMC43MzIgMTg0LjI1NC00MTAuNzMyIDQxMC43MzJTMjg1LjAyMiA5MjIuMjMyIDUxMS41IDkyMi4yMzIgOTIyLjIzMiA3MzcuOTc4IDkyMi4yMzIgNTExLjUgNzM3Ljk3OCAxMDAuNzY4IDUxMS41IDEwMC43Njh6IG0tOTQuOTA2IDI4NS45ODhsMi40MTgtMS44MTNjOC45NzMtNi43MzQgMTMuNTIyLTE0LjE3NSAxMy41MjQtMjIuMTEycy00LjU0OS0xNS4zOC0xMy41MjQtMjIuMTE3bC0yLjQxOC0xLjgxNGgtNjMuMzQxVjIyNmwtMS44MTQtMi40MTljLTYuNzM2LTguOTc1LTE0LjE3OC0xMy41MjQtMjIuMTE1LTEzLjUyNHMtMTUuMzc5IDQuNTQ5LTIyLjExNSAxMy41MjRMMzA1LjM5NCAyMjZ2MTEyLjloLTczLjk4MWwtMi42NTQgMi42NTNjLTkuNjc5IDkuNjc5LTEzLjcxMyAxOC40OTQtMTIuMzMgMjYuOTQ5IDEuMTgyIDcuMjIzIDYuMTI5IDEzLjA0OCAxNC43IDE3LjMwOGwxLjkwNiAwLjk0Nmg3Mi4zNTV2MTU0LjEyOWMtMjEuOSAxMi4wNTgtNDkuODY5IDI0LjMtODMuMjM2IDM2LjQzNWwtMi4zODggMC44Ny0xLjU4OCAxLjk4MmMtOS4wMzMgMTEuMjc3LTExLjg3OSAyMC44LTguNyAyOS4xMDcgMy4wNCA3Ljk0NSAxMS4xODIgMTMuMDY5IDI0LjIgMTUuMjNsMi4yMTggMC4zNjkgMi4xMzMtMC43MWE0NzEuOTg5IDQ3MS45ODkgMCAwIDAgNjcuMzYyLTI4LjA1djE0My4zNDRjMCA3LjkyOS0yLjc4IDkuNy0zLjY5NCAxMC4yODQtMy42NSAyLjMyLTE2LjU4MSA1LjY2MS01Ny43NDctMTMuNTQybC0yLjY5MS0xLjI1NS0yLjkxMSAwLjU3OGMtMTAuNzI4IDIuMTQtMTcuOCA2Ljg5NC0yMS4wMDYgMTQuMTM5LTMuNTQxIDcuOTkxLTEuODczIDE3LjUyNiA1LjA5NCAyOS4xNDdsMS41NDkgMi41ODUgMi43OTEgMS4xNDNjMjguNDEgMTEuNjIxIDUxLjggMTcuNDE1IDcwLjU3NSAxNy40MTUgMTIuODI2IDAgMjMuNS0yLjcgMzIuMTQ4LTguMSAxNC4yNTctOC44OTIgMjIuMjQxLTI0LjY1IDIzLjczLTQ2LjgzNWwwLjAyMS0xNzMuNzE0YzI4LjI1OS0xNi4xMjcgNTIuMzUzLTM0LjA3NCA3MS42OC01My40bDEuNTE3LTEuNTE4IDAuNjc2LTIuMDM1YzQuNDc0LTEzLjQ3MiAzLjg0NS0yMy4zLTEuOTIzLTMwLjA0NC01LjU1MS02LjUtMTQuOTY2LTguNjkzLTI3Ljk4My02LjUyOWwtMy41OSAwLjU5My0yLjE3OSAyLjkxNGMtNy4zOTQgOS44NzYtMjAuMjEyIDIxLjA1MS0zOC4yIDMzLjMxNVYzODYuNzU2aDYzLjM0MXogbTM5MS4yODggMzY3Ljg2MmwtMS42NzgtMi43OTQtMy4wNzMtMS4wODVjLTUxLjY4Ni0xOC4yMzktOTYuNzMzLTQzLjk1My0xMzQuMDM3LTc2LjUgNDYuOTM4LTU1LjA1NSA3Ny4zLTExNC4wNzcgOTAuMy0xNzUuNTc0IDUuMTE4LTIwLjYgMi45NC0zNy4xNi02LjQ3MS00OS4yMTRDNzQxLjcgNDM1LjA4NiA3MjEuNDc5IDQyOC4xIDY5MS4wOSA0MjguMUg0OTIuMDEzVjMwOC4zMThjMC0yMS40MzggOS4xNDUtMzAuNTg1IDMwLjU4NC0zMC41ODVoMTM4Ljc1OWM0NC43MjkgMCA0NS40MzkgMjEuNTIxIDQ1LjQ0OSAzMC4xNzZsLTQuOTE3IDU0LjEtMC4wMzkgMC44MmMwIDQuOTI3LTEuODU1IDcuMDI3LTMuNDcgOC4zMDUtNS4xNTEgNC4wNzktMjEuMDQzIDkuMjA2LTY5LjYzMi0yLjI1OWwtMi43OS0wLjY1OC0yLjY2IDEuMDY3Yy0xMS4wNCA0LjQyMy0xNy40NjEgMTAuNjkzLTE5LjA4NSAxOC42NDQtMS42NzQgOC4xODUgMi4wNjIgMTYuOSAxMS4xIDI1LjkybDEuODggMS44NzIgMi41OTIgMC41NjZjNTQuODYgMTEuOTM0IDkxLjQ2NSAxMC40NTYgMTExLjkwNy00LjUzMSAxMC42MjYtNy43ODggMTYuNjc2LTE4Ljk3IDE4LTMzLjQ5M2w0Ljk0Mi03OS4xMDVjMS42MjYtMTkuNTc2LTIuOTY3LTM1LjM5LTEzLjY1My00Ny0xMy44LTE0Ljk5My0zNi42LTIyLjI4LTY5LjcxMi0yMi4yOEg1MTIuNjg0Yy00NC44MzMgMC02OC41MyAyMy43LTY4LjUzIDY4LjUyOVY3OTdsMS44MTUgMi40MTljNi43MzcgOC45NzUgMTQuMTc4IDEzLjUyNCAyMi4xMTYgMTMuNTI0czE1LjM3Ny00LjU0OSAyMi4xMTMtMTMuNTI0bDEuODE1LTIuNDE5di0wLjk4M2M1LjUxOSAyLjgyMSAxMi45MzUgMy40NzkgMjIuMTU3IDEuOTQybDEuNDg4LTAuMjQ2IDEuMzI2LTAuNzE2YzQxLjI5MS0yMi4yNjIgODEuNTYxLTUwLjg4MyAxMTkuOC04NS4xNDJhNDg5LjYgNDg5LjYgMCAwIDAgMTUwLjQgODUuNzExbDIuMzU3IDAuODMzIDIuNDUtMC41YzEwLjcyNy0yLjE2NCAxNy43ODgtNi45NCAyMC45ODgtMTQuMiAzLjUyOS03Ljk5IDEuODYtMTcuNDk5LTUuMDk3LTI5LjA4MXogbS05NS40NzMtMjY2LjNsLTAuMzI5IDAuODIxLTAuMTYzIDAuODdjLTkuMTE4IDQ4LjY0OS0zNi4xODkgOTkuNjIyLTgwLjUwOSAxNTEuNjI0LTQ1LjA4Ni00OS43NzQtNzcuNTM2LTEwNS40MTktOTYuNjItMTY1LjY3M2gxNDYuMzljMjYuMDU4IDAgMzEuMDQ2IDUuNDE1IDMxLjc4MiA2LjUgMC45MjkgMS4zNyAwLjIxMiAzLjk0LTAuNTUxIDUuODU3eiBtLTIyMC40IDUuMTE1YzI1LjQ1OCA3My4yMTkgNjEuNDI2IDEzNS43NDYgMTA3LjE1MyAxODYuMjM5LTMwLjEzNSAyOC44LTY2LjEyNyA1My45NDgtMTA3LjE1MyA3NC44NDhWNDkzLjQzMnoiDQogICAgICAgIGZpbGw9IiMwMDlERTUiDQogICAgICAgIHAtaWQ9IjkxMjY4Ig0KICAgICAgPjwvcGF0aD4NCiAgICA8L3N2Zz4=\";\r\n// const HISTORY_SVG_XML =\r\n// \"data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmMTcxNzt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPuWbvuaghzExPC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS40MSw1aDBsMC0uMDlBOCw4LDAsMSwwLC42NCwxMS4xMmE3Ljg2LDcuODYsMCwwLDAsMS42MiwyLjQ1QTgsOCwwLDAsMCwxNS40MSw1Wm0tMi4yNSw4LjE3QTcuMyw3LjMsMCwwLDEsOCwxNS4yOUg4QTcuMzEsNy4zMSwwLDAsMSwuNzEsOCw3LjI5LDcuMjksMCwwLDEsOCwuNzFIOGE3LjI5LDcuMjksMCwwLDEsNS4xNiwxMi40NFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02LjY0LDEwYy0uOTMuNTItMS44NCwxLTIuNzIsMS40MVY3Ljc4SDUuNzl2LjU5aC44NVYzLjU0SDIuODZWNC4zSDUuNzlWN0gzLjA3djQuMTZhMS4yNywxLjI3LDAsMCwxLS4zOCwxbC41OC43NWE1LjkzLDUuOTMsMCwwLDEsLjY0LS41MWMxLS41NiwyLTEuMDcsMi45LTEuNTVBOC41NSw4LjU1LDAsMCwxLDYuNjQsMTBaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAuMjksMTAuNTdhMTAsMTAsMCwwLDAsMS41OC01LjIzaDEuMjh2LS44SDguNzVjLjIxLS41NC40Mi0xLjEuNjItMS42OGwtLjg2LS4yNUEyMy41MiwyMy41MiwwLDAsMSw2LjY2LDcuMTlhNy4yMyw3LjIzLDAsMCwxLC41NS42OWMuMTktLjM1LjM3LS43MS41Ni0xLjA5YTguODEsOC44MSwwLDAsMCwxLjM4LDMuNzUsMTAuMywxMC4zLDAsMCwxLTMuMzksMi4wNyw1LjMxLDUuMzEsMCwwLDEsLjY0Ljc4LDExLjMzLDExLjMzLDAsMCwwLDMuMzMtMi4xNiw5LjQyLDkuNDIsMCwwLDAsMi45LDIsNS41Nyw1LjU3LDAsMCwxLC42OS0uODVBNy4yMiw3LjIyLDAsMCwxLDEwLjI5LDEwLjU3Wm0tLjU3LS43MmExMCwxMCwwLDAsMS0xLjQtNC4yN2wuMS0uMjRIMTFBOS42OCw5LjY4LDAsMCwxLDkuNzIsOS44NVoiLz48L3N2Zz4=\";\r\nconst HISTORY_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBtYXJnaW4tYm90dG9tOiAtMi41cHgiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE1cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC03MzYgLTIyNyApIj4NCiAgICAgICAgPHBhdGgNCiAgICAgICAgICBkPSJNIDE0LjQgNy4xOTI5ODI0NTA2NTc4OSAgQyAxNC40IDcuNjczNjg0MjEwNTI2MzIgIDE0LjM1MDkzMzMzMzMzMzMgOC4xNDMxNTc4OTQ3MzY4NCAgMTQuMjU3Nzc3NzgzMzMzMyA4LjU5NjQ5MTIzMzU1MjYzICBMIDEyLjc5ODU3Nzc4MzMzMzMgOC41OTY0OTEyMzM1NTI2MyAgQyAxMi45MTgzMzI3ODU5NTUyIDguMTM4Mzk0ODc0Mjk4NjEgIDEyLjk3ODkzMDcxNzExODMgNy42NjcxOTc0MTQyNTIwMyAgMTIuOTc4OTMwNzE3MTE4MyA3LjE5NDEwMjY5MTg5MzEyICBDIDEyLjk3ODkzMDcxNzExODMgNC4wOTM1NTY3MzA5NTg2NCAgMTAuNDMxOTI4NDA3NTMxOSAxLjU4MDA2NzYwOTY1NjI4ICA3LjI5MDA0MTgzMzc4NDk3IDEuNTgwMDY3NjA5NjU2MjggIEMgNC4xNDgxNTUyNjAwMzgwNCAxLjU4MDA2NzYwOTY1NjI4ICAxLjYwMTE1Mjk1MDQ1MTY0IDQuMDkzNTU2NzMwOTU4NjQgIDEuNjAxMTUyOTUwNDUxNjQgNy4xOTQxMDI2OTE4OTMxMiAgQyAxLjYwMTE1Mjk1MDQ1MTY0IDEwLjI5NDY0ODY1MjgyNzYgIDQuMTQ4MTU1MjYwMDM4MDQgMTIuODA4MTM3Nzc0MTMgIDcuMjkwMDQxODMzNzg0OTcgMTIuODA4MTM3Nzc0MTMgIEMgNy44MDE3MTU4NDYxMjU2OCAxMi44MDgxMzc3NzQxMyAgOC4zMTEwNTEwNTk5ODkxMyAxMi43NDAwMTU0NzY1MDk1ICA4LjgwNDI2NjY2NjY2NjY3IDEyLjYwNTYxNDAyOTYwNTMgIEMgOC44ODY3NTU1NSAxMi44MTk2NDkxMTE4NDIxICA5LjAyMTE1NTU1IDEzLjAwOTEyMjc5NjA1MjYgIDkuMTkyNTMzMzMzMzMzMzMgMTMuMTU3ODk0NzM2ODQyMSAgQyA4LjkyMzU4OTU2OTY3MTU0IDEzLjM5MTU1NDE5MjUzODIgIDguNzU0MTUwMzc0NjM0NzggMTMuNzE2OTQ4ODM3NTM4MyAgOC43MTgyMjIyMTY2NjY2NyAxNC4wNjg3NzE5MjQzNDIxICBDIDguMjU2IDE0LjE2MTQwMzUwMzI4OTUgIDcuNzc4MTMzMzMzMzMzMzMgMTQuMjEwNTI2MzE1Nzg5NSAgNy4yODg4ODg4ODMzMzMzMyAxNC4yMTA1MjYzMTU3ODk1ICBDIDMuMzYxNDIyMjE2NjY2NjcgMTQuMjEwNTI2MzE1Nzg5NSAgMC4xNzc3Nzc3NjY2NjY2NjcgMTEuMDY4NzcxOTI0MzQyMSAgMC4xNzc3Nzc3ODMzMzMzMzQgNy4xOTI5ODI0NTA2NTc4OSAgQyAwLjE3Nzc3NzggMy4zMTcxOTI5NzY5NzM2OCAgMy4zNjE0MjIyMTY2NjY2NyAwLjE3NTQzODYwMTk3MzY4NCAgNy4yODg4ODg4ODMzMzMzMyAwLjE3NTQzODYwMTk3MzY4NCAgQyAxMS4yMTYzNTU1NSAwLjE3NTQzODYwMTk3MzY4NCAgMTQuNCAzLjMxNzE5Mjk5MzQyMTA1ICAxNC40IDcuMTkyOTgyNDUwNjU3ODkgIFogTSA3LjY0NDQ0NDQ1IDMuNjg0MjEwNTI2MzE1NzkgIEwgNy42NDQ0NDQ0NSA3LjE5Mjk4MjQ1MDY1Nzg5ICBMIDkuNzc3Nzc3NzgzMzMzMzMgNy4xOTI5ODI0NTA2NTc4OSAgQyAxMC4xNzA1MTM2MDg1MDM1IDcuMTkyOTgyNDUwNjU3ODkgIDEwLjQ4ODg4ODkgNy41MDcxNjg1OTM1ODIwOSAgMTAuNDg4ODg4OSA3Ljg5NDczNjg0MjEwNTI2ICBDIDEwLjQ4ODg4ODkgOC4yODIzMDUwOTA2Mjg0MyAgMTAuMTcwNTEzNjA4NTAzNSA4LjU5NjQ5MTIzMzU1MjYzICA5Ljc3Nzc3Nzc4MzMzMzMzIDguNTk2NDkxMjMzNTUyNjMgIEwgNi45MzMzMzMzMzMzMzMzMyA4LjU5NjQ5MTIzMzU1MjYzICBDIDYuNDU5MjU5MjU1NTU1NTUgOC41OTY0OTEyMzM1NTI2MyAgNy40MDc0MDc0MTExMTExMSA4LjU5NjQ5MTIzMzU1MjYzICA2LjkzMzMzMzMzMzMzMzMzIDguNTk2NDkxMjMzNTUyNjMgIEMgNi41NDA1OTc1MDgxNjMxOSA4LjU5NjQ5MTIzMzU1MjYzICA2LjIyMjIyMjIxNjY2NjY3IDguMjgyMzA1MDkwNjI4NDMgIDYuMjIyMjIyMjE2NjY2NjcgNy44OTQ3MzY4NDIxMDUyNiAgTCA2LjIyMjIyMjIxNjY2NjY3IDMuNjg0MjEwNTI2MzE1NzkgIEMgNi4yMjIyMjIyMTY2NjY2NyAzLjI5NjY0MjI3Nzc5MjYyICA2LjU0MDU5NzUwODE2MzE5IDIuOTgyNDU2MTM0ODY4NDIgIDYuOTMzMzMzMzMzMzMzMzMgMi45ODI0NTYxMzQ4Njg0MiAgQyA3LjMyNjA2OTE1ODUwMzQ4IDIuOTgyNDU2MTM0ODY4NDIgIDcuNjQ0NDQ0NDUgMy4yOTY2NDIyNzc3OTI2MiAgNy42NDQ0NDQ0NSAzLjY4NDIxMDUyNjMxNTc5ICBaIE0gMTAuODQ0NDQ0NDUgOS4yOTgyNDU2MDg1NTI2MyAgTCAxNS4xMTExMTExMTY2NjY3IDkuMjk4MjQ1NjA4NTUyNjMgIEMgMTUuNTAzODQ2OTQxODM2OCA5LjI5ODI0NTYwODU1MjYzICAxNS44MjIyMjIyMzMzMzMzIDkuNjEyNDMxNzUxNDc2ODMgIDE1LjgyMjIyMjIzMzMzMzMgMTAgIEMgMTUuODIyMjIyMjMzMzMzMyAxMC4zODc1NjgyNDg1MjMyICAxNS41MDM4NDY5NDE4MzY4IDEwLjcwMTc1NDM5MTQ0NzQgIDE1LjExMTExMTExNjY2NjcgMTAuNzAxNzU0MzkxNDQ3NCAgTCAxMC44NDQ0NDQ0NSAxMC43MDE3NTQzOTE0NDc0ICBDIDEwLjQ1MTcwODYyNDgyOTkgMTAuNzAxNzU0MzkxNDQ3NCAgMTAuMTMzMzMzMzMzMzMzMyAxMC4zODc1NjgyNDg1MjMyICAxMC4xMzMzMzMzMzMzMzMzIDEwICBDIDEwLjEzMzMzMzMzMzMzMzMgOS42MTI0MzE3NTE0NzY4MyAgMTAuNDUxNzA4NjI0ODI5OSA5LjI5ODI0NTYwODU1MjYzICAxMC44NDQ0NDQ0NSA5LjI5ODI0NTYwODU1MjYzICBaIE0gMTAuODQ0NDQ0NDUgMTEuNDAzNTA4NzY2NDQ3NCAgTCAxNS4xMTExMTExMTY2NjY3IDExLjQwMzUwODc2NjQ0NzQgIEMgMTUuNTAzODQ2OTQxODM2OCAxMS40MDM1MDg3NjY0NDc0ICAxNS44MjIyMjIyMzMzMzMzIDExLjcxNzY5NDkwOTM3MTYgIDE1LjgyMjIyMjIzMzMzMzMgMTIuMTA1MjYzMTU3ODk0NyAgQyAxNS44MjIyMjIyMzMzMzMzIDEyLjQ5MjgzMTQwNjQxNzkgIDE1LjUwMzg0Njk0MTgzNjggMTIuODA3MDE3NTQ5MzQyMSAgMTUuMTExMTExMTE2NjY2NyAxMi44MDcwMTc1NDkzNDIxICBMIDEwLjg0NDQ0NDQ1IDEyLjgwNzAxNzU0OTM0MjEgIEMgMTAuNDUxNzA4NjI0ODI5OSAxMi44MDcwMTc1NDkzNDIxICAxMC4xMzMzMzMzMzMzMzMzIDEyLjQ5MjgzMTQwNjQxNzkgIDEwLjEzMzMzMzMzMzMzMzMgMTIuMTA1MjYzMTU3ODk0NyAgQyAxMC4xMzMzMzMzMzMzMzMzIDExLjcxNzY5NDkwOTM3MTYgIDEwLjQ1MTcwODYyNDgyOTkgMTEuNDAzNTA4NzY2NDQ3NCAgMTAuODQ0NDQ0NDUgMTEuNDAzNTA4NzY2NDQ3NCAgWiBNIDEwLjg0NDQ0NDQ1IDEzLjUwODc3MTkyNDM0MjEgIEwgMTUuMTExMTExMTE2NjY2NyAxMy41MDg3NzE5MjQzNDIxICBDIDE1LjUwMzg0Njk0MTgzNjggMTMuNTA4NzcxOTI0MzQyMSAgMTUuODIyMjIyMjMzMzMzMyAxMy44MjI5NTgwNjcyNjYzICAxNS44MjIyMjIyMzMzMzMzIDE0LjIxMDUyNjMxNTc4OTUgIEMgMTUuODIyMjIyMjMzMzMzMyAxNC41OTgwOTQ1NjQzMTI2ICAxNS41MDM4NDY5NDE4MzY4IDE0LjkxMjI4MDcwNzIzNjggIDE1LjExMTExMTExNjY2NjcgMTQuOTEyMjgwNzA3MjM2OCAgTCAxMC44NDQ0NDQ0NSAxNC45MTIyODA3MDcyMzY4ICBDIDEwLjQ1MTcwODYyNDgyOTkgMTQuOTEyMjgwNzA3MjM2OCAgMTAuMTMzMzMzMzMzMzMzMyAxNC41OTgwOTQ1NjQzMTI2ICAxMC4xMzMzMzMzMzMzMzMzIDE0LjIxMDUyNjMxNTc4OTUgIEMgMTAuMTMzMzMzMzMzMzMzMyAxMy44MjI5NTgwNjcyNjYzICAxMC40NTE3MDg2MjQ4Mjk5IDEzLjUwODc3MTkyNDM0MjEgIDEwLjg0NDQ0NDQ1IDEzLjUwODc3MTkyNDM0MjEgIFogIg0KICAgICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyINCiAgICAgICAgICBmaWxsPSIjZmZhMTE2Ig0KICAgICAgICAgIHN0cm9rZT0ibm9uZSINCiAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDczNiAyMjcgKSINCiAgICAgICAgLz4NCiAgICAgIDwvZz4NCiAgICA8L3N2Zz4=\";\r\nconst FORM_ERROR_MODAL_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB0PSIxNjI5Mjg0MTUzNjk3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIxODIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiAwQzIzMC40IDAgMCAyMjcuMiAwIDUxMmMwIDI4MS42IDIzMC40IDUxMiA1MTIgNTEyIDI4NC44IDAgNTEyLTIyNy4yIDUxMi01MTJTNzk2LjggMCA1MTIgMHogbTAgODE5LjJjLTI4LjggMC01MS4yLTIyLjQtNTEuMi01MS4yczIyLjQtNTEuMiA1MS4yLTUxLjJjMjguOCAwIDUxLjIgMjIuNCA1MS4yIDUxLjIgMy4yIDI4LjgtMjIuNCA1MS4yLTUxLjIgNTEuMnogbTU0LjQtMjIwLjhjMCAyOC44LTIyLjQgNTEuMi01MS4yIDUxLjItMjguOCAwLTUxLjItMjIuNC01MS4yLTUxLjJWMjU2YzAtMjguOCAyMi40LTUxLjIgNTEuMi01MS4yIDI4LjggMCA1MS4yIDIyLjQgNTEuMiA1MS4ydjM0Mi40eiIgcC1pZD0iMjE4MyIgZmlsbD0iI0YxQjkxNiI+PC9wYXRoPjwvc3ZnPg==\";\r\nconst DROP_DOWN_LIST_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTRweCIgaGVpZ2h0PSIxMXB4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC01MTYgLTQ2ICkiPg0KICAgIDxwYXRoIGQ9Ik0gMCA0Ljc0OTk5NDE0MDYyNTAxICBMIDAgNi4yNTAwMDU4NTkzNzQ5OSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDYuMjUwMDA1ODU5Mzc0OTkgIEwgMS41NTU1NDk0NzkxNjY2NCA0Ljc0OTk5NDE0MDYyNTAxICBMIDAgNC43NDk5OTQxNDA2MjUwMSAgWiBNIDAgOC43NSAgTCAwIDEwLjI0OTk5NDE0MDYyNSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDEwLjI0OTk5NDE0MDYyNSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDguNzUgIEwgMCA4Ljc1ICBaIE0gMCAwLjc1MDAwNTg1OTM3NDk5NCAgTCAwIDIuMjUgIEwgMS41NTU1NDk0NzkxNjY2NCAyLjI1ICBMIDEuNTU1NTQ5NDc5MTY2NjQgMC43NTAwMDU4NTkzNzQ5OTQgIEwgMCAwLjc1MDAwNTg1OTM3NDk5NCAgWiBNIDMuMTExMTE3MTg3NDk5OTkgNC43NDk5OTQxNDA2MjUwMSAgTCAzLjExMTExNzE4NzQ5OTk5IDYuMjUwMDA1ODU5Mzc0OTkgIEwgMTQgNi4yNTAwMDU4NTkzNzQ5OSAgTCAxNCA0Ljc0OTk5NDE0MDYyNTAxICBMIDMuMTExMTE3MTg3NDk5OTkgNC43NDk5OTQxNDA2MjUwMSAgWiBNIDMuMTExMTE3MTg3NDk5OTkgOC43NSAgTCAzLjExMTExNzE4NzQ5OTk5IDEwLjI0OTk5NDE0MDYyNSAgTCAxNCAxMC4yNDk5OTQxNDA2MjUgIEwgMTQgOC43NSAgTCAzLjExMTExNzE4NzQ5OTk5IDguNzUgIFogTSAxNCAwLjc1MDAwNTg1OTM3NDk5NCAgTCAzLjExMTExNzE4NzQ5OTk5IDAuNzUwMDA1ODU5Mzc0OTk0ICBMIDMuMTExMTE3MTg3NDk5OTkgMi4yNSAgTCAxNCAyLjI1ICBMIDE0IDAuNzUwMDA1ODU5Mzc0OTk0ICBaICIgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSIjYmZiY2NjIiBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNTE2IDQ2ICkiIC8+DQogIDwvZz4NCjwvc3ZnPg==\";\r\nexport { SUBMITTED_SVG_XML, HISTORY_SVG_XML, FORM_ERROR_MODAL_SVG_XML, DROP_DOWN_LIST_SVG_XML };\r\n","interface Config {\r\n value: number;\r\n order: number;\r\n}\r\n\r\nfunction transform(configs: Config[]): unknown {\r\n if (configs != null && configs.length > 0) {\r\n const arr: string[] = [];\r\n configs.sort((a: Config, b: Config) => a.order - b.order).forEach((item) => arr.push(item.value + \"fr\"));\r\n return arr.join(\" \");\r\n } else {\r\n return `1fr`;\r\n }\r\n}\r\n/**\r\n * @description: 网格布局比例分配\r\n * @author ChenRui\r\n * @date 2020/12/1 19:32\r\n */\r\nconst generateGridTemplateColumns = (configs: Config[]) => {\r\n return transform(configs);\r\n};\r\n\r\nexport default generateGridTemplateColumns;\r\n","interface Config {\r\n value: number;\r\n order: number;\r\n}\r\n\r\nfunction transform(configs: Config[]): unknown {\r\n if (configs != null && configs.length > 0) {\r\n return configs.length + 1;\r\n } else {\r\n return 2;\r\n }\r\n}\r\n/**\r\n * @description: 跨列计算\r\n * @author ChenRui\r\n * @date 2020/12/1 19:34\r\n */\r\nconst generateGridColumnEnd = (configs: Config[]) => {\r\n return transform(configs);\r\n};\r\n\r\nexport default generateGridColumnEnd;\r\n","class ApiService {\r\n createBasicHeaders() {\r\n return {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n }\r\n\r\n createAuthHeaders(accessToken: string, jti: string) {\r\n return {\r\n Authorization: \"bearer \" + accessToken,\r\n \"user-identity\": jti,\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n }\r\n\r\n fetch(path: string, query: { [key: string]: any }, body: any, method: string, header: any) {\r\n path = query != null ? this.urlQueryConvert(path, query) : path;\r\n return fetch(path, {\r\n method: method ? method : \"GET\",\r\n headers: header,\r\n body: body,\r\n }).then(\r\n function (response) {\r\n response.status; //=> number 100–599\r\n response.statusText; //=> String\r\n response.headers; //=> Headers\r\n response.url; //=> String\r\n\r\n return response.json();\r\n },\r\n function (error) {\r\n error.message; //=> String\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description: url请求参数组装\r\n * @author ChenRui\r\n * @date 2020/8/28 15:21\r\n */\r\n urlQueryConvert(url: string, query: { [key: string]: any }) {\r\n let connectiveSymbol = \"\";\r\n if (url.indexOf(\"?\") !== -1) {\r\n connectiveSymbol = \"&\";\r\n } else {\r\n connectiveSymbol = \"?\";\r\n }\r\n if (query) {\r\n Object.keys(query).forEach((key, idx) => {\r\n const val = query[key];\r\n if (idx === 0) {\r\n if (val != null && val !== \"null\" && val !== \"undefined\") {\r\n url += connectiveSymbol + key + \"=\" + val;\r\n } else {\r\n url += connectiveSymbol + key + \"=\";\r\n }\r\n } else {\r\n if (val != null && val !== \"null\" && val !== \"undefined\") {\r\n url += \"&\" + key + \"=\" + val;\r\n } else {\r\n url += \"&\" + key + \"=\";\r\n }\r\n }\r\n });\r\n }\r\n return url;\r\n }\r\n}\r\nconst apiService = new ApiService();\r\nexport { apiService };\r\n","const NAME = \"vue-lo\";\r\nconst STORE_NAME = \"form:\";\r\nconst DICT_STORE_NAME = \"dict:\";\r\nexport { NAME, STORE_NAME, DICT_STORE_NAME };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { NAME } from \"../constants/config/storage.config\";\r\nclass CleanLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: \"clean:\" + appId, // Should be alphanumeric, with underscores.\r\n description: \"用于清理实例的缓存对象\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst cleanLocalForageService: CleanLocalForageService = new CleanLocalForageService();\r\nexport { CleanLocalForageService, cleanLocalForageService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { DICT_STORE_NAME, NAME } from \"../constants/config/storage.config\";\r\nclass DictLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: DICT_STORE_NAME + appId, // Should be alphanumeric, with underscores.\r\n description: \"PC端表单数据库\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst dictLocalForageService: DictLocalForageService = new DictLocalForageService();\r\nexport { DictLocalForageService, dictLocalForageService };\r\n","class FormBeanUtilsService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 对象拷贝\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n copy(obj: any): any {\r\n if (obj != null) {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 字符串转对象\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n parse(str: string | null): any {\r\n if (str != null && str !== \"\") {\r\n return JSON.parse(str);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 对象转字符串\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n stringify(obj: any): string {\r\n if (obj != null) {\r\n return JSON.stringify(obj);\r\n }\r\n return \"\";\r\n }\r\n}\r\nconst formBeanUtilsService = new FormBeanUtilsService();\r\nexport { formBeanUtilsService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { NAME, STORE_NAME } from \"../constants/config/storage.config\";\r\n\r\nclass FormLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: STORE_NAME + appId, // Should be alphanumeric, with underscores.\r\n description: \"PC端表单数据库\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst formLocalForageService: FormLocalForageService = new FormLocalForageService();\r\nexport { FormLocalForageService, formLocalForageService };\r\n","import { DesFormLayout } from \"./DesFormLayout\";\r\nimport { Control } from \"./Control\";\r\nimport { FormGroup } from \"./FormGroup\";\r\n\r\nexport class DesForm {\r\n formId: string;\r\n appId: string;\r\n domainClassId: string;\r\n objectId: string;\r\n formType: string;\r\n formName: string;\r\n formAlias: string;\r\n formDescribe: string;\r\n useState: string;\r\n desFormLayouts: DesFormLayout[];\r\n controls: Control[];\r\n formGroup: FormGroup | undefined;\r\n [key: string]: any;\r\n constructor(\r\n options: {\r\n formId?: string;\r\n appId?: string;\r\n domainClassId?: string;\r\n objectId?: string;\r\n formType?: string;\r\n formName?: string;\r\n formAlias?: string;\r\n formDescribe?: string;\r\n useState?: string;\r\n controls?: Control[];\r\n formGroup?: FormGroup;\r\n desFormLayouts?: DesFormLayout[];\r\n } = {}\r\n ) {\r\n this.formId = options.formId || \"\";\r\n this.appId = options.appId || \"\";\r\n this.domainClassId = options.domainClassId || \"\";\r\n this.objectId = options.objectId || \"\";\r\n this.formType = options.formType || \"\";\r\n this.formName = options.formName || \"\";\r\n this.formAlias = options.formAlias || \"\";\r\n this.formDescribe = options.formDescribe || \"\";\r\n this.useState = options.useState || \"\";\r\n this.controls = options.controls || [];\r\n this.formGroup = options.formGroup;\r\n this.desFormLayouts = options.desFormLayouts || [];\r\n }\r\n}\r\n","import { DesFormControl } from \"./DesFormControl\";\r\n\r\nexport class DesFormLayout {\r\n layoutId: string;\r\n formId: string;\r\n parentLayoutId: string;\r\n layoutName: string;\r\n layoutType: string;\r\n gridSpace: number | undefined;\r\n gridColumnConfig: any;\r\n gridLateralArrangement: string;\r\n gridVerticalArrangement: string;\r\n layoutOrder: number | undefined;\r\n labelSpan: string;\r\n controlSpan: string;\r\n desFormControls: DesFormControl[];\r\n subDesFormLayout: DesFormLayout[];\r\n constructor(\r\n options: {\r\n layoutId?: string;\r\n formId?: string;\r\n parentLayoutId?: string;\r\n layoutName?: string;\r\n layoutType?: string;\r\n gridSpace?: number;\r\n gridColumnConfig?: any;\r\n gridLateralArrangement?: string;\r\n gridVerticalArrangement?: string;\r\n layoutOrder?: number;\r\n labelSpan?: string;\r\n controlSpan?: string;\r\n desFormControls?: DesFormControl[];\r\n subDesFormLayout?: DesFormLayout[];\r\n } = {}\r\n ) {\r\n this.layoutId = options.layoutId || \"\";\r\n this.formId = options.formId || \"\";\r\n this.parentLayoutId = options.parentLayoutId || \"\";\r\n this.layoutName = options.layoutName || \"\";\r\n this.layoutType = options.layoutType || \"\";\r\n this.gridSpace = options.gridSpace;\r\n this.gridColumnConfig = options.gridColumnConfig;\r\n this.gridLateralArrangement = options.gridLateralArrangement || \"\";\r\n this.gridVerticalArrangement = options.gridVerticalArrangement || \"\";\r\n this.layoutOrder = options.layoutOrder;\r\n this.labelSpan = options.labelSpan || \"\";\r\n this.controlSpan = options.controlSpan || \"\";\r\n this.desFormControls = options.desFormControls || [];\r\n this.subDesFormLayout = options.subDesFormLayout || [];\r\n }\r\n}\r\n","import { formBeanUtilsService } from \"./form-bean-utils.service\";\r\n\r\ninterface NodeContrast {\r\n id: string;\r\n parentId: string;\r\n children: string;\r\n}\r\n\r\ninterface NzNodeContrast {\r\n title: string;\r\n key: string;\r\n icon?: string;\r\n isLeaf?: string;\r\n checked?: string;\r\n selected?: string;\r\n selectable?: string;\r\n disabled?: string;\r\n disableCheckbox?: string;\r\n expanded?: string;\r\n children: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface NzCascaderOptionContrast {\r\n value: string;\r\n label: string;\r\n title?: string;\r\n disabled?: string;\r\n loading?: string;\r\n isLeaf?: string;\r\n parent?: string;\r\n children: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface NzTreeNodeOptions {\r\n title: string;\r\n key: string;\r\n icon?: string;\r\n isLeaf?: boolean;\r\n checked?: boolean;\r\n selected?: boolean;\r\n selectable?: boolean;\r\n disabled?: boolean;\r\n disableCheckbox?: boolean;\r\n expanded?: boolean;\r\n children?: NzTreeNodeOptions[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface MapNodeItem {\r\n key?: string;\r\n title?: string;\r\n value?: string;\r\n children?: MapNodeOptions;\r\n}\r\n\r\ninterface MapNodeOptions {\r\n [key: string]: MapNodeItem;\r\n}\r\n\r\nclass FormTreeNodeConvertService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 数组转换为树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:18\r\n */\r\n arrayConvertToTreeNode(data: any[], nodeContrast: NodeContrast, parentId?: string): any[] {\r\n if (data != null && data.length > 0) {\r\n let nds: any[] = data.filter((item) => (item[nodeContrast.parentId] || \"\") === (parentId || \"\"));\r\n if (nds != null && nds.length > 0) {\r\n nds = formBeanUtilsService.copy(nds);\r\n nds.forEach((item) => {\r\n const children = this.arrayConvertToTreeNode(data, nodeContrast, item[nodeContrast.id]);\r\n if (children != null && children.length > 0) {\r\n item[nodeContrast.children] = [...children];\r\n }\r\n });\r\n return nds;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 树形结构转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:21\r\n */\r\n treeNodeConvertToNzTreeNode(data: any[], nzNodeContrast: NzNodeContrast, isDisabledLeaf = false): any[] {\r\n const nodes: any[] = [];\r\n if (data != null && data.length > 0) {\r\n data.forEach((item) => {\r\n const node: any = {\r\n title: \"\",\r\n key: \"\",\r\n icon: \"\",\r\n isLeaf: true,\r\n checked: false,\r\n selected: false,\r\n selectable: true,\r\n disabled: isDisabledLeaf,\r\n disableCheckbox: false,\r\n expanded: true,\r\n children: [],\r\n };\r\n for (const propName of Object.keys(nzNodeContrast)) {\r\n if (nzNodeContrast[propName] != null && nzNodeContrast[propName] !== \"\") {\r\n node[propName] = item[nzNodeContrast[propName]];\r\n }\r\n }\r\n node.children = [];\r\n if (item[nzNodeContrast.children] != null && item[nzNodeContrast.children].length > 0) {\r\n const children = this.treeNodeConvertToNzTreeNode(item[nzNodeContrast.children], nzNodeContrast, isDisabledLeaf);\r\n node.disabled = false;\r\n node.isLeaf = false;\r\n node.children = children;\r\n }\r\n nodes.push(node);\r\n });\r\n }\r\n return nodes;\r\n }\r\n\r\n /**\r\n * @description: 数组转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:41\r\n */\r\n arrayConvertToNzTreeNode(data: any[], nodeContrast: NodeContrast, nzNodeContrast: NzNodeContrast, isDisabledLeaf = false): any[] {\r\n const treeNode = this.arrayConvertToTreeNode(data, nodeContrast);\r\n if (treeNode != null && treeNode.length > 0) {\r\n return this.treeNodeConvertToNzTreeNode(treeNode, nzNodeContrast, isDisabledLeaf);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 树形结构转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:21\r\n */\r\n treeNodeConvertToCascaderOption(data: any[], nzCascaderOptionContrast: NzCascaderOptionContrast, isDisabledLeaf = false): any[] {\r\n const nodes: any[] = [];\r\n if (data != null && data.length > 0) {\r\n data.forEach((item) => {\r\n const node: any = {\r\n value: \"\",\r\n label: \"\",\r\n title: \"\",\r\n disabled: isDisabledLeaf,\r\n loading: \"\",\r\n isLeaf: true,\r\n parent: \"\",\r\n children: \"\",\r\n };\r\n for (const propName of Object.keys(nzCascaderOptionContrast)) {\r\n if (nzCascaderOptionContrast[propName] != null && nzCascaderOptionContrast[propName] !== \"\") {\r\n node[propName] = item[nzCascaderOptionContrast[propName]];\r\n }\r\n }\r\n node.children = [];\r\n if (item[nzCascaderOptionContrast.children] != null && item[nzCascaderOptionContrast.children].length > 0) {\r\n const children = this.treeNodeConvertToCascaderOption(item[nzCascaderOptionContrast.children], nzCascaderOptionContrast, isDisabledLeaf);\r\n node.disabled = false;\r\n node.isLeaf = false;\r\n node.children = children;\r\n }\r\n nodes.push(node);\r\n });\r\n }\r\n return nodes;\r\n }\r\n\r\n /**\r\n * @description: 插件树结构转map\r\n * @author ChenRui\r\n * @date 2022/1/18 19:19\r\n */\r\n nzTreeNodeConvertToMap(data: NzTreeNodeOptions[]): MapNodeOptions | undefined {\r\n if (data != null && data.length > 0) {\r\n const mapNodeOptions: MapNodeOptions = {};\r\n data.forEach((item) => {\r\n if (item.value) {\r\n mapNodeOptions[item.value] = {\r\n key: item.key,\r\n title: item.title,\r\n value: item.value,\r\n };\r\n if (item.children && item.children.length > 0) {\r\n mapNodeOptions[item.value].children = this.nzTreeNodeConvertToMap(item.children) || undefined;\r\n }\r\n }\r\n });\r\n return mapNodeOptions;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 数组转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:41\r\n */\r\n arrayConvertToCascaderOption(data: any[], nodeContrast: NodeContrast, nzCascaderOptionContrast: NzCascaderOptionContrast, isDisabledLeaf = false): any[] {\r\n const treeNode = this.arrayConvertToTreeNode(data, nodeContrast);\r\n if (treeNode != null && treeNode.length > 0) {\r\n return this.treeNodeConvertToCascaderOption(treeNode, nzCascaderOptionContrast, isDisabledLeaf);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @Description: 树形数据转为数组\r\n * @author LiuBo\r\n * @date 2021/11/5\r\n * @time 16:59\r\n * @param treeNode 树形数据\r\n * @param data 数组 传入空数组即可[]\r\n * @param childName 子节点名称\r\n */\r\n treeNodeConvertToArray(treeNode: any[], data: any[], childName: string): any[] {\r\n data = data || [];\r\n treeNode = JSON.parse(JSON.stringify(treeNode));\r\n treeNode.forEach((val: any) => {\r\n data.push(val);\r\n if (val[childName] && val[childName].length) {\r\n formTreeNodeConvertService.treeNodeConvertToArray(val[childName], data, childName);\r\n }\r\n });\r\n data.forEach((val: any) => {\r\n delete val[childName];\r\n });\r\n return data;\r\n }\r\n}\r\nconst formTreeNodeConvertService: FormTreeNodeConvertService = new FormTreeNodeConvertService();\r\nexport { NodeContrast, NzNodeContrast, NzCascaderOptionContrast, NzTreeNodeOptions, MapNodeItem, MapNodeOptions, formTreeNodeConvertService };\r\n","import { DesForm } from \"../domain/DesForm\";\r\nimport { formLocalForageService } from \"../services/form-local-forage.service\";\r\n\r\n/**\r\n * @description: 表单存储服务\r\n * @author ChenRui\r\n * @date 2020/12/30 11:17\r\n */\r\nclass FormStore {\r\n private static readonly FORMS = \"forms_data\";\r\n private static readonly VERSION = \"forms_version\";\r\n\r\n constructor() {}\r\n\r\n public setForms(desForm: DesForm[]) {\r\n formLocalForageService.setItem(FormStore.FORMS, desForm);\r\n }\r\n\r\n public getForms(): Promise<DesForm[]> {\r\n return formLocalForageService.getItem(FormStore.FORMS);\r\n }\r\n\r\n public setVersion(value: string) {\r\n formLocalForageService.setItem(FormStore.VERSION, value);\r\n }\r\n\r\n public getVersion(): Promise<any> {\r\n return formLocalForageService.getItem(FormStore.VERSION);\r\n }\r\n}\r\nconst formStore = new FormStore();\r\nexport { formStore };\r\n","import { dictLocalForageService } from \"../services/dict-local-forage.service\";\r\n\r\n/**\r\n * @description: 表单版本管理\r\n * @author ChenRui\r\n * @date 2020/12/30 11:17\r\n */\r\nclass DictStore {\r\n private static readonly DICTS = \"dicts_data\";\r\n private static readonly TREE_DICTS = \"treeDicts_data\";\r\n private static readonly MAP_DICTS = \"map_dicts_data\";\r\n private static readonly MAP_TREE_DICTS = \"map_treeDicts_data\";\r\n private static readonly VERSION = \"dict_version\";\r\n\r\n constructor() {}\r\n\r\n /**常规字典存储*/\r\n public setDicts(nzTreeNodeOptions: any[]) {\r\n dictLocalForageService.setItem(DictStore.DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getDicts(): Promise<any[]> {\r\n return dictLocalForageService.getItem(DictStore.DICTS);\r\n }\r\n\r\n /**树形字典存储*/\r\n public setTreeDicts(nzTreeNodeOptions: any[]) {\r\n dictLocalForageService.setItem(DictStore.TREE_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getTreeDicts(): Promise<any[]> {\r\n return dictLocalForageService.getItem(DictStore.TREE_DICTS);\r\n }\r\n\r\n /**map型常规字典存储*/\r\n public setMapDicts(nzTreeNodeOptions: any) {\r\n dictLocalForageService.setItem(DictStore.MAP_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getMapDicts(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.MAP_DICTS);\r\n }\r\n\r\n /**map型树形字典存储*/\r\n public setMapTreeDicts(nzTreeNodeOptions: any) {\r\n dictLocalForageService.setItem(DictStore.MAP_TREE_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getMapTreeDicts(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.MAP_TREE_DICTS);\r\n }\r\n\r\n /*字典版本存储*/\r\n public setVersion(value: string) {\r\n dictLocalForageService.setItem(DictStore.VERSION, value);\r\n }\r\n\r\n public getVersion(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.VERSION);\r\n }\r\n}\r\nconst dictStore = new DictStore();\r\nexport { dictStore };\r\n","const DEFAULT_FORM_FILE_NAME = \"form-design.json\";\r\nconst DEFAULT_DICT_FILE_NAME = \"dict.json\";\r\nconst DEFAULT_DICT_URL = \"./resources/json/\" + DEFAULT_DICT_FILE_NAME;\r\nexport { DEFAULT_FORM_FILE_NAME, DEFAULT_DICT_FILE_NAME, DEFAULT_DICT_URL };\r\n","interface Params {\r\n [key: string]: any;\r\n}\r\nexport class RouterService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 跨应用跳转\r\n * @author ChenRui\r\n * @date 2020/9/28 14:23\r\n */\r\n push(subapp: string): void {\r\n history.pushState(null, subapp, subapp);\r\n }\r\n\r\n /**\r\n * @description: 获取纯路劲\r\n * @author ChenRui\r\n * @date 2020/10/12 21:06\r\n */\r\n getPathFromUrl(url: string): string {\r\n let path = url;\r\n if (url.indexOf(\"?\") !== -1) {\r\n path = url.split(\"?\")[0];\r\n }\r\n return path;\r\n }\r\n\r\n /**\r\n * @description: 获取请求参数\r\n * @author ChenRui\r\n * @date 2020/10/12 21:06\r\n */\r\n getParamsFromUrl(url: string): Params | undefined {\r\n let parameter: Params | undefined;\r\n if (url.indexOf(\"?\") !== -1) {\r\n parameter = this.urlParameterToParams(url.split(\"?\")[1]);\r\n }\r\n return parameter;\r\n }\r\n\r\n /**\r\n * @description: url地址参数转换成路由参数对象\r\n * @author ChenRui\r\n * @date 2020/10/12 21:07\r\n */\r\n urlParameterToParams(parameter: string): Params | undefined {\r\n const params: Params = {};\r\n const arr: string[] = parameter.split(\"&\");\r\n arr.forEach((val, idx, array) => {\r\n const kv: string[] = val.split(\"=\");\r\n if (kv.length > 1) {\r\n params[kv[0]] = decodeURIComponent(kv[1]);\r\n } else {\r\n params[kv[0]] = \"\";\r\n }\r\n });\r\n return params;\r\n }\r\n\r\n /**\r\n * @description: 地址参数拼接\r\n * @author ChenRui\r\n * @date 2021/2/19 11:40\r\n */\r\n getParameterOfUrl(url: string, parameter?: { [key: string]: any }): string {\r\n let connectiveSymbol = \"\";\r\n if (url.indexOf(\"?\") !== -1) {\r\n connectiveSymbol = \"&\";\r\n } else {\r\n connectiveSymbol = \"?\";\r\n }\r\n if (parameter && Object.keys(parameter).length > 0) {\r\n let mark = 0;\r\n Object.keys(parameter).forEach((item) => {\r\n if (mark === 0) {\r\n if (parameter[item] != null && parameter[item] !== \"null\" && parameter[item] !== \"undefined\") {\r\n url += connectiveSymbol + item + \"=\" + parameter[item];\r\n } else {\r\n url += connectiveSymbol + item + \"=\";\r\n }\r\n } else {\r\n if (parameter[item] != null && parameter[item] !== \"null\" && parameter[item] !== \"undefined\") {\r\n url += \"&\" + item + \"=\" + parameter[item];\r\n } else {\r\n url += \"&\" + item + \"=\";\r\n }\r\n }\r\n mark++;\r\n });\r\n }\r\n return url;\r\n }\r\n}\r\nconst routerService: RouterService = new RouterService();\r\nexport { routerService, Params };\r\n","import { FormApi } from \"../core/FormApi\";\r\nimport { ValidateReport } from \"../domain/FormControl\";\r\nimport { Modal } from \"ant-design-vue\";\r\nimport { FORM_ERROR_MODAL_SVG_XML } from \"../constants/encode-assets/svg\";\r\nimport { h, createVNode } from \"vue\";\r\n/**\r\n * @description: 表单校验窗口提示\r\n * @author ChenRui\r\n * @date 2021/8/19 12:58\r\n */\r\nclass FormValidateService {\r\n /**\r\n * @description: 校验并进行窗口提示\r\n * @author ChenRui\r\n * @date 2021/8/19 12:58\r\n */\r\n validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {\r\n if (formApis != null) {\r\n if (!Array.isArray(formApis)) {\r\n formApis = [formApis];\r\n }\r\n const actualFormApis: FormApi[] = [];\r\n let allError: ValidateReport[] = [];\r\n let errMessage = \"\";\r\n formApis.forEach((formApi) => {\r\n const errors: ValidateReport[] = formApi.validateReport(); // 获取校验报告\r\n if (errors && errors.length > 0) {\r\n actualFormApis.push(formApi);\r\n allError = allError.concat(errors);\r\n }\r\n });\r\n if (allError && allError.length > 0) {\r\n // 显示错误的输入框\r\n allError.forEach((err) => {\r\n console.log(err);\r\n errMessage += `<div class=\"lo-error-item d-flex\"><div class=\"lo-error-describe\">${err.name}</div>&nbsp;${err.errorMsg};</div>`;\r\n });\r\n\r\n Modal.confirm({\r\n width: 380,\r\n title: h(\"div\", { class: \"d-flex\", innerHTML: `<img src=\"${FORM_ERROR_MODAL_SVG_XML}\" /><div style=\"font-size: 18px\">校验提示</div>` }),\r\n content: h(\"div\", { innerHTML: errMessage }),\r\n onOk: () => {\r\n this.showErrorModal(actualFormApis as any, allError, scrollView);\r\n },\r\n okText: \"确认\",\r\n cancelText: \"取消\",\r\n class: \"lo-form-error-modal\",\r\n });\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @Description: 滚动到错误位置-闪烁提示\r\n * @author LiuBo\r\n * @date 2021/2/25\r\n * @time 21:35\r\n */\r\n public showErrorModal(formApis: FormApi[], allError: ValidateReport[], scrollView?: any) {\r\n const errorEl: any = formApis[0]?.getControlEl(allError[0]?.key);\r\n if (errorEl != null) {\r\n if (scrollView && typeof scrollView === \"string\") {\r\n scrollView = document.getElementById(scrollView);\r\n }\r\n if (scrollView) {\r\n scrollView.scrollTo({ top: errorEl.offsetTop, behavior: \"smooth\" });\r\n const running = (event: any) => {\r\n const scrollTop = scrollView.window != null && scrollView.window === scrollView.window.window ? document.documentElement.scrollTop || document.body.scrollTop : scrollView.scrollTop;\r\n const calculationError = errorEl.offsetTop - scrollTop;\r\n if (calculationError > -20 && calculationError < 20) {\r\n scrollView.removeEventListener(\"scroll\", running);\r\n this.showErrInput(errorEl);\r\n }\r\n };\r\n scrollView.addEventListener(\"scroll\", running, false);\r\n } else {\r\n this.showErrInput(errorEl);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @Description: 闪烁显示校验不通过的输入框\r\n * @author LiuBo\r\n * @date 2019/6/3\r\n * @time 22:01\r\n * @param el 出错的输入框html对象\r\n */\r\n private showErrInput(el: any) {\r\n let count = 0;\r\n const interval = setInterval(() => {\r\n el.style.opacity = count++ % 2 === 0 ? \".3\" : \"1\";\r\n if (count > 5) {\r\n clearInterval(interval);\r\n }\r\n }, 400);\r\n }\r\n}\r\nconst formValidateService = new FormValidateService();\r\nexport { formValidateService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport { FormRestfulResponse } from \"../domain/FormRestfulResponse\";\r\nimport { DesForm } from \"../domain/DesForm\";\r\nimport { DesFormControl } from \"../domain/DesFormControl\";\r\nimport { DesFormLayout } from \"../domain/DesFormLayout\";\r\nimport { FormFieldClass } from \"../constants/enum/form-field-class.enum\";\r\nimport { Control } from \"../domain/Control\";\r\nimport { FormFieldType } from \"../constants/enum/form-field-type.enum\";\r\nimport { Switch } from \"../constants/enum/switch.enum\";\r\nimport { formTreeNodeConvertService, MapNodeOptions, NodeContrast, NzNodeContrast, NzTreeNodeOptions } from \"./form-tree-node-convert.service\";\r\nimport { formBeanUtilsService } from \"./form-bean-utils.service\";\r\nimport { apiService } from \"./api.service\";\r\nimport { formStore } from \"../store/form.store\";\r\nimport { DynamicOptionType } from \"../constants/enum/dynamic-option-type.enum\";\r\nimport { dictStore } from \"../store\";\r\nimport { SysDictInfo } from \"../domain/SysDictInfo\";\r\nimport { DEFAULT_DICT_URL, DEFAULT_FORM_FILE_NAME } from \"../constants/config/form.config\";\r\nimport { CacheType } from \"../constants/enum/cache-type.enum\";\r\nimport { routerService } from \"./router.service\";\r\nimport { FormApi } from \"../core/FormApi\";\r\nimport { formValidateService } from \"./form-validate.service\";\r\n\r\ninterface DictionaryFormatCollection {\r\n sysDictDetailOptions?: NzTreeNodeOptions[];\r\n sysDictTreeDetailOptions?: NzTreeNodeOptions[];\r\n mapSysDictDetailOptions?: MapNodeOptions;\r\n mapSysDictTreeDetailOptions?: MapNodeOptions;\r\n}\r\n\r\nclass FormToolsService {\r\n private static readonly LOAD_SUCCESS = { code: 1, msg: \"加载成功\" }; // 操作成功提示\r\n private static readonly LOAD_FAIL = { code: 1, msg: \"加载失败\" }; // 操作失败提示\r\n private static IS_FIRST_LOADED = false; // 是否经过首次初始化\r\n private nodeContrast: NodeContrast = { id: \"layoutId\", parentId: \"parentLayoutId\", children: \"subDesFormLayout\" };\r\n private dictDetailsContrast: NodeContrast = { id: \"dicEntryPk\", parentId: \"suprDicPk\", children: \"children\" };\r\n private nzDictDetailsContrastContrast: NzNodeContrast = { key: \"dicEntryPk\", title: \"dicValue\", children: \"children\", value: \"dicKey\" };\r\n private dictTreeDetailsContrast: NodeContrast = { id: \"dicEntryPk\", parentId: \"suprDicPk\", children: \"children\" };\r\n private nzDictTreeDetailsContrastContrast: NzNodeContrast = { key: \"dicEntryPk\", title: \"dicValue\", children: \"children\", value: \"dicKey\" };\r\n private desForms: DesForm[] = []; // 表单配置缓存\r\n\r\n sysDictDetailOptions: NzTreeNodeOptions[] = [];\r\n sysDictTreeDetailOptions: NzTreeNodeOptions[] = [];\r\n mapSysDictDetailOptions: MapNodeOptions | undefined;\r\n mapSysDictTreeDetailOptions: MapNodeOptions | undefined;\r\n\r\n supHoliday?: boolean = false; // 节假日支持\r\n\r\n constructor() {}\r\n\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm != null) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n setSupHoliday(bool: boolean) {\r\n this.supHoliday = bool;\r\n }\r\n\r\n setFormDisabledColor(color = \"#f0f0f0\") {\r\n document.body.style.setProperty(\"--lo-form-disabled\", color);\r\n }\r\n\r\n /**\r\n * @description: 检查是否经过首次初始化并初始化\r\n * @author ChenRui\r\n * @date 2021/1/5 23:04\r\n */\r\n checkFirstLoadAndInitDesign(): Promise<FormRestfulResponse> {\r\n if (FormToolsService.IS_FIRST_LOADED) {\r\n return Promise.resolve({\r\n code: 1,\r\n msg: \"检查到已经过首次加载,不在执行加载逻辑\",\r\n });\r\n } else {\r\n return this.init().then((res: FormRestfulResponse) => {\r\n FormToolsService.IS_FIRST_LOADED = true;\r\n return res;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化\r\n * @author ChenRui\r\n * @date 2021/3/12 11:02\r\n */\r\n init(): Promise<FormRestfulResponse> {\r\n return Promise.all([this.initDesign(), this.initDict(), this.selectHolidays()]).then(([designRes, dictRes]: any) => {\r\n const code = designRes.code === 1 && dictRes.code === 1 ? 1 : 0;\r\n return { code, msg: designRes.msg + \"; \" + dictRes.msg };\r\n });\r\n }\r\n\r\n /**\r\n * @Description 初始化节假日数据\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 04:11\r\n */\r\n selectHolidays(): Promise<FormRestfulResponse> {\r\n if (this.formConfig.url && this.supHoliday) {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/basic-form-weekday/query-all-by-year\";\r\n return this.fetch(url, {}, undefined, \"POST\").then((res: FormRestfulResponse) => {\r\n if (res != null && (res.code === 1 || String(res.code) === String(200))) {\r\n if (res.data != null) {\r\n localStorage.setItem(\"traddayList\", JSON.stringify(res.data.traddayList)); // 交易日集合\r\n localStorage.setItem(\"weekdayList\", JSON.stringify(res.data.weekdayList)); // 节假日集合\r\n localStorage.setItem(\"workdayList\", JSON.stringify(res.data.workdayList)); // 工作日集合\r\n }\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n }\r\n\r\n /**\r\n * @description: 初始化表单设计\r\n * @author ChenRui\r\n * @date 2020/11/20 10:55\r\n */\r\n initDesign(): Promise<FormRestfulResponse> {\r\n return Promise.all([formStore.getForms(), formStore.getVersion()]).then(([forms, formVersion]: any[]) => {\r\n if (this.formConfig.loadMode === \"static\") {\r\n if (forms != null) {\r\n this.desForms = forms;\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return this.loadDesign([this.formConfig.url || DEFAULT_FORM_FILE_NAME]);\r\n }\r\n } else if (this.formConfig.loadMode === \"dynamic\") {\r\n if (this.formConfig.appId != null && this.formConfig.appId !== \"\") {\r\n const query = {\r\n appId: this.formConfig.appId,\r\n cacheType: CacheType.FORM.code,\r\n };\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype\";\r\n return this.fetch(url!, query).then((res: FormRestfulResponse) => {\r\n if (res != null && res.code === 1) {\r\n if (res.data != null && res.data.desCacheVersion != null) {\r\n if (String(formVersion) !== String(res.data.desCacheVersion.cacheVersionNumber)) {\r\n const formUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + res.data.desCacheVersion.storageAddress;\r\n return this.loadDesign([formUrl]).then((resEx: FormRestfulResponse) => {\r\n if (resEx.code === 1) {\r\n formStore.setVersion(res.data.desCacheVersion.cacheVersionNumber);\r\n }\r\n return resEx;\r\n });\r\n } else {\r\n if (forms != null) {\r\n this.desForms = forms;\r\n }\r\n console.log(this.desForms);\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n }\r\n } else {\r\n return Promise.resolve({ code: 1, msg: \"暂无版本数据\" });\r\n }\r\n } else {\r\n return Promise.resolve(FormToolsService.LOAD_FAIL);\r\n }\r\n });\r\n } else {\r\n return Promise.resolve({\r\n code: 0,\r\n msg: \"动态加载需指定当前系统编号(appId)\",\r\n });\r\n }\r\n } else if (this.formConfig.loadMode === \"merge\") {\r\n if (this.formConfig.urls) {\r\n return new Promise((resolve) => {\r\n this.loadDesign(this.formConfig.urls || []).then(() => {\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n } else {\r\n return this.mergeUrlByType(CacheType.FORM.code).then((response: any) => {\r\n if (formVersion === response.cacheVersionNumber) {\r\n if (forms) {\r\n this.desForms = forms;\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDesign(response.storageAddress).then(() => {\r\n formStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n } else if (this.formConfig.loadMode === \"merge_cacheId\") {\r\n // 按照缓存编号查询表单数据,2024年8月15日14:03:24\r\n return this.mergeUrlByCacheId(CacheType.FORM.code).then((response: any) => {\r\n if (formVersion === response.cacheVersionNumber) {\r\n if (forms) {\r\n this.desForms = forms;\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDesign(response.storageAddress).then(() => {\r\n formStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_FAIL);\r\n });\r\n }\r\n\r\n /**\r\n * @description: 获取表单或字典数据地址\r\n * @author ZPFly\r\n * @date 2022/10/18 20:43\r\n */\r\n private mergeUrlByType(type: string): Promise<any> {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-batch-appids-cachetype\";\r\n const downloadUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\";\r\n const query = {\r\n appIds: this.formConfig.appId,\r\n cacheType: type,\r\n };\r\n return this.fetch(url!, query).then((resp: any) => {\r\n const response: any = {};\r\n const address: string[] = [];\r\n const cacheVersionNumber: any[] = [];\r\n const cacheVersionMap: any = {};\r\n resp?.data?.forEach((item: any) => {\r\n // 数据下载地址\r\n if (item.cacheType == type && item.desCacheVersion?.storageAddress && query.appIds && query.appIds.indexOf(item.appId) > -1) {\r\n cacheVersionMap[item.appId] = item.desCacheVersion.cacheVersionNumber;\r\n address.push(downloadUrl + item.desCacheVersion.storageAddress);\r\n }\r\n });\r\n query.appIds?.split(\",\").forEach((appId) => {\r\n cacheVersionNumber.push(cacheVersionMap[appId]);\r\n });\r\n response.cacheVersionNumber = cacheVersionNumber.join(\",\");\r\n response.storageAddress = address;\r\n return response;\r\n });\r\n }\r\n /**\r\n * @description: 获取表单或字典数据地址-按照缓存版本号查询字典/表单\r\n * @author ZPFly\r\n * @date 2022/10/18 20:43\r\n */\r\n private mergeUrlByCacheId(type: string): Promise<any> {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-batch-appids-cachetype\";\r\n const downloadUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/downloadById?cacheVersionId=\";\r\n const query = {\r\n appIds: this.formConfig.appId,\r\n cacheType: type,\r\n };\r\n const appIds: string[] = query.appIds?.split(\",\") || [];\r\n return this.fetch(url!, query).then((resp: any) => {\r\n const response: any = {};\r\n const address: string[] = [];\r\n const cacheVersionNumber: any[] = [];\r\n const cacheVersionMap: any = {};\r\n resp?.data?.forEach((item: any) => {\r\n // 数据下载地址\r\n if (item.cacheType == type && item.desCacheVersion?.cacheVersionId && query.appIds && appIds.indexOf(item.appId) > -1) {\r\n cacheVersionMap[item.appId] = item.desCacheVersion.cacheVersionNumber;\r\n address.push(downloadUrl + item.desCacheVersion.cacheVersionId + \"&appId=\" + item.appId + \"&cacheType=\" + type);\r\n }\r\n });\r\n query.appIds?.split(\",\").forEach((appId) => {\r\n cacheVersionNumber.push(cacheVersionMap[appId]);\r\n });\r\n response.cacheVersionNumber = cacheVersionNumber.join(\",\");\r\n response.storageAddress = address;\r\n return response;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载远程表单配置\r\n * @author ChenRui\r\n * @date 2020/11/20 17:30\r\n */\r\n private loadDesign(urls: string[]): Promise<FormRestfulResponse> {\r\n return this.mergeFetchDesign(urls).then((desForms: DesForm[]) => {\r\n const newDesForms: DesForm[] = [];\r\n if (desForms != null && desForms.length > 0) {\r\n desForms\r\n .filter((item) => item.desFormLayouts != null && item.desFormLayouts.length > 0)\r\n .forEach((item) => {\r\n const newDesForm: DesForm | undefined = this.formatDesForm(item);\r\n if (newDesForm != null) {\r\n newDesForms.push(newDesForm);\r\n }\r\n });\r\n }\r\n this.desForms = newDesForms;\r\n formStore.setForms(this.desForms);\r\n return FormToolsService.LOAD_SUCCESS;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 合并多个应用表单\r\n * @author ZPFly\r\n * @date 2022/10/17 15:39\r\n */\r\n private mergeFetchDesign(urls: string[]) {\r\n const onlySimpleLoadConfig = !!this.formConfig.onlySimpleLoadConfig;\r\n const headers = this.createFileDownloadAuthorizationHeader();\r\n const fetches: any = [];\r\n urls.forEach((url: string) => {\r\n fetches.push(this.fetch(url, {}, undefined, \"GET\", headers, onlySimpleLoadConfig));\r\n });\r\n return Promise.all(fetches).then((desForms: DesForm[]) => {\r\n let newDesForms: DesForm[] = [];\r\n desForms?.forEach((desForm: any) => {\r\n newDesForms = newDesForms.concat(desForm);\r\n });\r\n return newDesForms;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 初始化字典\r\n * @author ChenRui\r\n * @date 2021/3/11 14:32\r\n */\r\n initDict(): Promise<FormRestfulResponse> {\r\n return Promise.all([dictStore.getDicts(), dictStore.getTreeDicts(), dictStore.getMapDicts(), dictStore.getMapTreeDicts(), dictStore.getVersion()]).then(([dicts, treeDicts, mapDicts, mapTreeDicts, dictVersion]: any[]) => {\r\n if (this.formConfig.loadMode === \"static\") {\r\n const url = this.formConfig.dictUrl ? this.formConfig.dictUrl : DEFAULT_DICT_URL;\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return this.loadDict([url]);\r\n }\r\n } else if (this.formConfig.loadMode === \"dynamic\") {\r\n if (this.formConfig.appId) {\r\n const url1 = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype\";\r\n const url: string = this.formConfig.dictUrl ? this.formConfig.dictUrl : url1 || \"\";\r\n const path: string = routerService.getPathFromUrl(url);\r\n let query: any = routerService.getParamsFromUrl(url) || {};\r\n query.appId = query.appId ? query.appId : this.formConfig.appId;\r\n query.cacheType = query.cacheType ? query.cacheType : CacheType.DICT.code;\r\n query = this.formConfig.dictRestLoadOnlyBody ? {} : query;\r\n const body: any = (this.formConfig.dictRestLoadMode || \"GET\").toLocaleUpperCase() === \"GET\" ? undefined : this.formConfig.dictRestLoadBody;\r\n let headers: any = this.formConfig.dictRestLoadHeaders;\r\n if (headers != null && typeof headers === \"function\") {\r\n headers = (headers as any)();\r\n }\r\n return this.fetch(path, query, body, this.formConfig.dictRestLoadMode, headers).then((res: FormRestfulResponse) => {\r\n if (res != null && (res.code === 1 || String(res.code) === String(200))) {\r\n if (res.data != null) {\r\n let desCacheVersion: any = res.data.desCacheVersion;\r\n if (res.data && res.data instanceof Array && res.data.length > 0) {\r\n desCacheVersion = res.data[0].desCacheVersion;\r\n }\r\n const distUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + desCacheVersion.storageAddress;\r\n if (String(dictVersion) !== String(desCacheVersion.cacheVersionNumber)) {\r\n return this.loadDict([distUrl]).then((resEx: FormRestfulResponse) => {\r\n if (resEx.code === 1) {\r\n dictStore.setVersion(desCacheVersion.cacheVersionNumber);\r\n }\r\n return resEx;\r\n });\r\n } else {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n }\r\n } else {\r\n return { code: 1, msg: \"暂无版本数据\" };\r\n }\r\n } else {\r\n return FormToolsService.LOAD_FAIL;\r\n }\r\n });\r\n } else {\r\n return { code: 0, msg: \"动态加载需指定当前系统编号(appId)\" };\r\n }\r\n } else if (this.formConfig.loadMode === \"merge\") {\r\n return this.mergeUrlByType(CacheType.DICT.code).then((response: any) => {\r\n if (dictVersion === response.cacheVersionNumber) {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDict(response.storageAddress).then(() => {\r\n dictStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n } else if (this.formConfig.loadMode === \"merge_cacheId\") {\r\n // 按照缓存编号查询表单数据,2024年8月15日14:03:24\r\n return this.mergeUrlByCacheId(CacheType.DICT.code).then((response: any) => {\r\n if (dictVersion === response.cacheVersionNumber) {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDict(response.storageAddress).then(() => {\r\n dictStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n return FormToolsService.LOAD_FAIL;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载远程字典配置\r\n * @author ChenRui\r\n * @date 2020/11/20 17:30\r\n */\r\n private loadDict(urls: string[]): Promise<FormRestfulResponse> {\r\n return this.mergeFetchDict(urls).then((sysDictInfos: any) => {\r\n if (sysDictInfos != null) {\r\n // 数据格式化\r\n const dictionaryFormatCollection: DictionaryFormatCollection = this.inidDictOptions(sysDictInfos);\r\n this.sysDictDetailOptions = dictionaryFormatCollection.sysDictDetailOptions || [];\r\n this.sysDictTreeDetailOptions = dictionaryFormatCollection.sysDictTreeDetailOptions || [];\r\n this.mapSysDictDetailOptions = dictionaryFormatCollection.mapSysDictDetailOptions;\r\n this.mapSysDictTreeDetailOptions = dictionaryFormatCollection.mapSysDictTreeDetailOptions;\r\n // 字典本地存储\r\n if (dictionaryFormatCollection.sysDictDetailOptions && dictionaryFormatCollection.sysDictDetailOptions.length > 0) {\r\n dictStore.setDicts(dictionaryFormatCollection.sysDictDetailOptions);\r\n }\r\n if (dictionaryFormatCollection.sysDictTreeDetailOptions && dictionaryFormatCollection.sysDictTreeDetailOptions.length > 0) {\r\n dictStore.setTreeDicts(dictionaryFormatCollection.sysDictTreeDetailOptions);\r\n }\r\n dictStore.setMapDicts(dictionaryFormatCollection.mapSysDictDetailOptions || null);\r\n dictStore.setMapTreeDicts(dictionaryFormatCollection.mapSysDictTreeDetailOptions || null);\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n });\r\n // const onlySimpleLoadConfig = !!this.formConfig.onlySimpleLoadConfig;\r\n // let sysDictInfos: SysDictInfo[] = [];\r\n // if (loadMode === \"dynamic\") {\r\n // const headers = this.createFileDownloadAuthorizationHeader();\r\n // url = this.formConfig.url + \"/ms-loong/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + url;\r\n // return this.fetch(url, {}, undefined, \"GET\", headers, onlySimpleLoadConfig).then((res: any) => {\r\n // sysDictInfos = res;\r\n // if (sysDictInfos != null && sysDictInfos.length > 0) {\r\n // // 数据格式化\r\n // const dictionaryFormatCollection: DictionaryFormatCollection = this.inidDictOptions(sysDictInfos);\r\n // this.sysDictDetailOptions = dictionaryFormatCollection.sysDictDetailOptions || [];\r\n // this.sysDictTreeDetailOptions = dictionaryFormatCollection.sysDictTreeDetailOptions || [];\r\n // this.mapSysDictDetailOptions = dictionaryFormatCollection.mapSysDictDetailOptions;\r\n // this.mapSysDictTreeDetailOptions = dictionaryFormatCollection.mapSysDictTreeDetailOptions;\r\n // // 字典本地存储\r\n // if (dictionaryFormatCollection.sysDictDetailOptions && dictionaryFormatCollection.sysDictDetailOptions.length > 0) {\r\n // dictStore.setDicts(dictionaryFormatCollection.sysDictDetailOptions);\r\n // }\r\n // if (dictionaryFormatCollection.sysDictTreeDetailOptions && dictionaryFormatCollection.sysDictTreeDetailOptions.length > 0) {\r\n // dictStore.setTreeDicts(dictionaryFormatCollection.sysDictTreeDetailOptions);\r\n // }\r\n // dictStore.setMapDicts(dictionaryFormatCollection.mapSysDictDetailOptions || null);\r\n // dictStore.setMapTreeDicts(dictionaryFormatCollection.mapSysDictTreeDetailOptions || null);\r\n // }\r\n // return FormToolsService.LOAD_SUCCESS;\r\n // });\r\n // }\r\n }\r\n\r\n /**\r\n * @description: 合并多个应用字典\r\n * @author ZPFly\r\n * @date 2022/10/17 15:39\r\n */\r\n private mergeFetchDict(dictUrl: string[]) {\r\n const fetchDicts: any = [];\r\n dictUrl.forEach((url: string) => {\r\n fetchDicts.push(this.fetch(url, {}, undefined, \"GET\", undefined, !!this.formConfig.onlySimpleLoadConfig));\r\n });\r\n return Promise.all(fetchDicts).then((dictInfos: SysDictInfo[]) => {\r\n let newDictInfos: SysDictInfo[] = [];\r\n const empObj: any = {};\r\n const filterDist: SysDictInfo[] = [];\r\n dictInfos?.forEach((desForm: any) => {\r\n newDictInfos = newDictInfos.concat(desForm);\r\n });\r\n // 去除重复字典\r\n newDictInfos.forEach((item: SysDictInfo) => {\r\n if (!empObj[item.dictId]) {\r\n filterDist.push(item);\r\n empObj[item.dictId] = true;\r\n }\r\n });\r\n return filterDist;\r\n });\r\n }\r\n /**\r\n * @description: 初始化字典可选项\r\n * @author ChenRui\r\n * @date 2020/11/10 20:38\r\n */\r\n public inidDictOptions(sysDictInfos: SysDictInfo[]): DictionaryFormatCollection {\r\n const sysDictDetailOptions: NzTreeNodeOptions[] = [];\r\n const sysDictTreeDetailOptions: NzTreeNodeOptions[] = [];\r\n sysDictInfos.forEach((sysDictInfo) => {\r\n const node: NzTreeNodeOptions = {\r\n key: sysDictInfo.dictId,\r\n value: sysDictInfo.dictCd,\r\n title: sysDictInfo.dictNm,\r\n isLeaf: true,\r\n expanded: false,\r\n children: [],\r\n };\r\n if (sysDictInfo.dictTp === DynamicOptionType.GeneralDictionary.code) {\r\n node.isLeaf = false;\r\n node.children = formTreeNodeConvertService.arrayConvertToNzTreeNode(\r\n sysDictInfo.comDictKeyValues.filter((it) => !!it.dictId),\r\n this.dictDetailsContrast,\r\n this.nzDictDetailsContrastContrast,\r\n true\r\n );\r\n sysDictDetailOptions.push(node);\r\n } else if (sysDictInfo.dictTp === DynamicOptionType.TreeDictionary.code) {\r\n if (sysDictInfo.treeDictKeyValues != null && sysDictInfo.treeDictKeyValues.length > 0) {\r\n node.isLeaf = false;\r\n sysDictInfo.treeDictKeyValues.forEach((item) => {\r\n if (item.suprDicPk === \"0\") {\r\n item.suprDicPk = \"\";\r\n }\r\n });\r\n node.children = formTreeNodeConvertService.arrayConvertToNzTreeNode(\r\n sysDictInfo.treeDictKeyValues.filter((it) => !!it.dictId),\r\n this.dictTreeDetailsContrast,\r\n this.nzDictTreeDetailsContrastContrast,\r\n true\r\n );\r\n }\r\n sysDictTreeDetailOptions.push(node);\r\n }\r\n });\r\n const mapNodeOptions: MapNodeOptions | undefined = formTreeNodeConvertService.nzTreeNodeConvertToMap(sysDictDetailOptions);\r\n const mapTreeNodeOptions: MapNodeOptions | undefined = formTreeNodeConvertService.nzTreeNodeConvertToMap(sysDictTreeDetailOptions);\r\n return {\r\n sysDictDetailOptions: sysDictDetailOptions,\r\n sysDictTreeDetailOptions: sysDictTreeDetailOptions,\r\n mapSysDictDetailOptions: mapNodeOptions,\r\n mapSysDictTreeDetailOptions: mapTreeNodeOptions,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 格式化表单\r\n * @author ChenRui\r\n * @date 2020/11/30 15:48\r\n */\r\n formatDesForm(sourceDesForm: DesForm): DesForm | undefined {\r\n if (sourceDesForm != null) {\r\n const newDesForm: DesForm = new DesForm(sourceDesForm);\r\n const desFormLayouts: DesFormLayout[] = formTreeNodeConvertService.arrayConvertToTreeNode(sourceDesForm.desFormLayouts, this.nodeContrast);\r\n const controls = this.recursionFormatForm([], desFormLayouts);\r\n this.sortControls(controls);\r\n newDesForm.desFormLayouts = [];\r\n newDesForm.controls = controls;\r\n return newDesForm;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 递归格式化\r\n * @author ChenRui\r\n * @date 2020/11/17 10:16\r\n */\r\n private recursionFormatForm(desFormControls: DesFormControl[], desFormLayouts: DesFormLayout[]): Control[] {\r\n const controls: Control[] = [];\r\n if (desFormControls != null && desFormControls.length > 0) {\r\n desFormControls\r\n .filter((item) => !!item.formFieldId)\r\n .forEach((desFormControl) => {\r\n const control: Control = {\r\n code: desFormControl.controlType,\r\n name: (Object.values(FormFieldType).find((item) => item.code === desFormControl.controlType) || {}).name || \"\",\r\n type: Number(desFormControl.controlType) < 50 ? FormFieldClass.Base.code : FormFieldClass.Senior.code,\r\n active: false,\r\n subControls: undefined,\r\n controlAttr: desFormControl,\r\n };\r\n const controlAttr = control.controlAttr as DesFormControl;\r\n controlAttr.isBoldTitle = desFormControl.isBoldTitle === Switch.Enable.code;\r\n controlAttr.isHideTitle = desFormControl.isHideTitle === Switch.Enable.code;\r\n controlAttr.isNotEdit = desFormControl.isNotEdit === Switch.Enable.code;\r\n controlAttr.isShowHoliday = desFormControl.isShowHoliday === Switch.Enable.code;\r\n controlAttr.isHideControl = desFormControl.isHideControl === Switch.Enable.code;\r\n controlAttr.isPasswordBox = desFormControl.isPasswordBox === Switch.Enable.code;\r\n controlAttr.enableAutoComplete = desFormControl.enableAutoComplete === Switch.Enable.code;\r\n controlAttr.isFixedRowHeight = desFormControl.isFixedRowHeight === Switch.Enable.code;\r\n controlAttr.thousandthPercentileFormat = desFormControl.thousandthPercentileFormat === Switch.Enable.code;\r\n controlAttr.isShowCapitalization = desFormControl.isShowCapitalization === Switch.Enable.code;\r\n controlAttr.isLineFeedDisplay = desFormControl.isLineFeedDisplay === Switch.Enable.code;\r\n controlAttr.optionConfig = formBeanUtilsService.parse(desFormControl.optionConfig);\r\n controlAttr.generalDictionaryOptions = formBeanUtilsService.parse(desFormControl.generalDictionaryOptions);\r\n controlAttr.treeShapeOptions = formBeanUtilsService.parse(desFormControl.treeShapeOptions);\r\n controlAttr.isSupportMultiple = desFormControl.isSupportMultiple === Switch.Enable.code;\r\n if (Array.isArray(desFormControl.customUploadType) && desFormControl.customUploadType.length > 0) {\r\n controlAttr.customUploadType = desFormControl.customUploadType.join(\",\");\r\n }\r\n controlAttr.isMultipleChoice = desFormControl.isMultipleChoice === Switch.Enable.code;\r\n controlAttr.isSearchable = desFormControl.isSearchable === Switch.Enable.code;\r\n controlAttr.canAddEntry = desFormControl.canAddEntry === Switch.Enable.code;\r\n controlAttr.isClearButton = desFormControl.isClearButton === Switch.Enable.code;\r\n controlAttr.hiddenDropdown = desFormControl.hiddenDropdown === Switch.Enable.code;\r\n controlAttr.textFold = desFormControl.textFold === Switch.Enable.code;\r\n controlAttr.verificationRules = formBeanUtilsService.parse(desFormControl.verificationRules);\r\n controls.push(control);\r\n });\r\n }\r\n if (desFormLayouts != null && desFormLayouts.length > 0) {\r\n desFormLayouts\r\n .filter((item) => !!item.layoutId)\r\n .forEach((desFormLayout) => {\r\n const layoutControl: Control = {\r\n code: desFormLayout.layoutType,\r\n name: (Object.values(FormFieldType).find((item) => item.code === desFormLayout.layoutType) || {}).name || \"\",\r\n type: FormFieldClass.Layout.code,\r\n active: false,\r\n subControls: [],\r\n controlAttr: new DesFormLayout(desFormLayout),\r\n };\r\n const controlAttr = layoutControl.controlAttr as DesFormLayout;\r\n controlAttr.gridColumnConfig = formBeanUtilsService.parse(desFormLayout.gridColumnConfig);\r\n controlAttr.desFormControls = [];\r\n controlAttr.subDesFormLayout = [];\r\n if ((desFormLayout.subDesFormLayout != null && desFormLayout.subDesFormLayout.length > 0) || (desFormLayout.desFormControls != null && desFormLayout.desFormControls.length > 0)) {\r\n layoutControl.subControls = this.recursionFormatForm(desFormLayout.desFormControls, desFormLayout.subDesFormLayout);\r\n }\r\n controls.push(layoutControl);\r\n });\r\n }\r\n return controls;\r\n }\r\n\r\n /**\r\n * @description: 控件排序\r\n * @author ChenRui\r\n * @date 2020/11/17 11:59\r\n */\r\n private sortControls(controls: Control[]): void {\r\n controls.sort((controlA, controlB) => {\r\n let x = 0;\r\n let y = 0;\r\n if (controlA.type === FormFieldClass.Layout.code) {\r\n x = Number((controlA.controlAttr as DesFormLayout).layoutOrder);\r\n } else {\r\n x = Number((controlA.controlAttr as DesFormControl).tableFieldOrder);\r\n }\r\n if (controlB.type === FormFieldClass.Layout.code) {\r\n y = Number((controlB.controlAttr as DesFormLayout).layoutOrder);\r\n } else {\r\n y = Number((controlB.controlAttr as DesFormControl).tableFieldOrder);\r\n }\r\n return x - y;\r\n });\r\n controls.forEach((item) => {\r\n if (item.subControls != null && item.subControls.length > 0) {\r\n this.sortControls(item.subControls);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载资源\r\n * @author ChenRui\r\n * @date 2020/11/23 11:00\r\n */\r\n loadResource(formId: string): DesForm {\r\n const desForm: DesForm | undefined = this.desForms.find((item) => item.formId === formId);\r\n if (desForm != null) {\r\n return formBeanUtilsService.copy(desForm);\r\n } else {\r\n return new DesForm({ formId: formId });\r\n }\r\n }\r\n\r\n /**\r\n * @description: rest客户端\r\n * @author ChenRui\r\n * @date 2020/11/19 21:02\r\n */\r\n private fetch(path: string, params: { [key: string]: any }, body?: any, method = \"GET\", headers?: any, simple = false): Promise<any> {\r\n headers = headers ? headers : apiService.createBasicHeaders();\r\n return simple ? fetch(path).then((response) => response.json()) : apiService.fetch(path, params, body, method, headers);\r\n }\r\n\r\n /**\r\n * @description: 校验提示\r\n * @author ChenRui\r\n * @date 2021/8/18 17:14\r\n */\r\n validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {\r\n return formValidateService.validateTips(formApis, scrollView);\r\n }\r\n\r\n /**\r\n * @description: 创建认证下载消息头\r\n * @author ChenRui\r\n * @date 2020/8/28 15:18\r\n */\r\n createFileDownloadAuthorizationHeader() {\r\n return {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n responseType: \"blob\",\r\n };\r\n }\r\n}\r\nconst formToolsService: FormToolsService = new FormToolsService();\r\nexport { formToolsService, FormToolsService, DictionaryFormatCollection };\r\n","function transform(currencyDigits: any): any {\r\n // Constants:\r\n const MAXIMUM_NUMBER = 999999999999.99;\r\n // Predefine the radix characters and currency symbols for output:\r\n const CN_ZERO = \"零\";\r\n const CN_ONE = \"壹\";\r\n const CN_TWO = \"贰\";\r\n const CN_THREE = \"叁\";\r\n const CN_FOUR = \"肆\";\r\n const CN_FIVE = \"伍\";\r\n const CN_SIX = \"陆\";\r\n const CN_SEVEN = \"柒\";\r\n const CN_EIGHT = \"捌\";\r\n const CN_NINE = \"玖\";\r\n const CN_TEN = \"拾\";\r\n const CN_HUNDRED = \"佰\";\r\n const CN_THOUSAND = \"仟\";\r\n const CN_TEN_THOUSAND = \"万\";\r\n const CN_HUNDRED_MILLION = \"亿\";\r\n // 满足数字大写转换需求\r\n const CN_SYMBOL = \"\"; // 不带前缀【金额:】\r\n const CN_DOLLAR = \"\"; // 元\r\n const DROP = \"点\"; // 点 2023年8月31日10:51:25\r\n const CN_TEN_CENT = \"\"; // 角\r\n const CN_CENT = \"\"; // 分\r\n const CN_INTEGER = \"\"; // 整\r\n\r\n // constiables:\r\n let integral; // Represent integral part of digit number.\r\n let decimal; // Represent decimal part of digit number.\r\n let outputCharacters; // The output result.\r\n let parts = [];\r\n let digits = [],\r\n radices = [],\r\n bigRadices = [],\r\n decimals = [];\r\n let zeroCount;\r\n let i, p, d;\r\n let quotient, modulus;\r\n\r\n // Validate input string:\r\n currencyDigits = currencyDigits != undefined ? currencyDigits.toString() : \"\";\r\n\r\n let prefix = \"\";\r\n if (currencyDigits != null && currencyDigits.indexOf(\"-\") === 0) {\r\n prefix = \"负\";\r\n currencyDigits = currencyDigits.substr(1);\r\n }\r\n if (currencyDigits === \"\") {\r\n return \"空\"; // 默认提示\r\n }\r\n if (currencyDigits.match(/[^,.\\d]/) != null) {\r\n return \"您的输入含有无效字符\";\r\n }\r\n if (currencyDigits.match(/^((\\d{1,3}(,\\d{3})*(.((\\d{3},)*\\d{1,3}))?)|(\\d+(.\\d+)?))$/) == null) {\r\n return \"您的输入的数字格式不正确\";\r\n }\r\n\r\n // Normalize the format of input digits:\r\n currencyDigits = currencyDigits.replace(/,/g, \"\"); // Remove comma delimiters.\r\n currencyDigits = currencyDigits.replace(/^0+/, \"\"); // Trim zeros at the beginning.\r\n // Assert the number is not greater than the maximum number.\r\n if (Number(currencyDigits) > MAXIMUM_NUMBER) {\r\n let divisor = 1000000000000;\r\n if (currencyDigits.indexOf(\".\") > -1) {\r\n const num = currencyDigits.split(\".\")[1].length;\r\n for (let i = 0; i < num; i++) {\r\n divisor = divisor * 10;\r\n }\r\n currencyDigits = currencyDigits.replace(\".\", \"\");\r\n }\r\n return Number(currencyDigits) / Number(divisor) + \"万亿元\";\r\n }\r\n\r\n // Process the coversion from currency digits to characters:\r\n // Separate integral and decimal parts before processing coversion:\r\n parts = currencyDigits.split(\".\");\r\n if (parts.length > 1) {\r\n integral = parts[0];\r\n decimal = parts[1];\r\n // Cut down redundant decimal digits that are after the second.\r\n decimal = decimal.substr(0, 2);\r\n } else {\r\n integral = parts[0];\r\n decimal = \"\";\r\n }\r\n // Prepare the characters corresponding to the digits:\r\n digits = [CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE];\r\n radices = [\"\", CN_TEN, CN_HUNDRED, CN_THOUSAND];\r\n bigRadices = [\"\", CN_TEN_THOUSAND, CN_HUNDRED_MILLION];\r\n decimals = [CN_TEN_CENT, CN_CENT];\r\n // Start processing:\r\n outputCharacters = \"\";\r\n // Process integral part if it is larger than 0:\r\n if (Number(integral) > 0) {\r\n zeroCount = 0;\r\n for (i = 0; i < integral.length; i++) {\r\n p = integral.length - i - 1;\r\n d = integral.substr(i, 1);\r\n quotient = p / 4;\r\n modulus = p % 4;\r\n if (d === \"0\") {\r\n zeroCount++;\r\n } else {\r\n if (zeroCount > 0) {\r\n outputCharacters += digits[0];\r\n }\r\n zeroCount = 0;\r\n outputCharacters += digits[Number(d)] + radices[modulus];\r\n }\r\n if (modulus === 0 && zeroCount < 4) {\r\n outputCharacters += bigRadices[quotient];\r\n zeroCount = 0;\r\n }\r\n }\r\n // outputCharacters += CN_DOLLAR; // 原来的【元】\r\n } else {\r\n //整数位为'零'\r\n outputCharacters = digits[Number(integral)];\r\n }\r\n // Process decimal part if there is:\r\n //校验小数位是否有值\r\n if (decimal !== \"\" && decimal !== \"0\" && decimal !== \"00\") {\r\n outputCharacters += DROP; // new 2023年8月31日10:52:54\r\n for (i = 0; i < decimal.length; i++) {\r\n d = decimal.substr(i, 1);\r\n if (d !== \"0\") {\r\n outputCharacters += digits[Number(d)] + decimals[i];\r\n } else if (i === 0) {\r\n //处理金额十分位数值为0时的大写转换\r\n outputCharacters += digits[Number(d)];\r\n }\r\n }\r\n }\r\n // Confirm and return the final output string:\r\n if (outputCharacters === \"\") {\r\n outputCharacters = CN_ZERO + CN_DOLLAR;\r\n }\r\n if (decimal === \"\") {\r\n outputCharacters += CN_INTEGER;\r\n }\r\n outputCharacters = CN_SYMBOL + prefix + outputCharacters;\r\n return outputCharacters;\r\n}\r\n/**\r\n * @description: 跨列计算\r\n * @author ChenRui\r\n * @date 2020/12/1 19:34\r\n */\r\nconst amountCapitalization = (data: any) => {\r\n return transform(data);\r\n};\r\n\r\nexport default amountCapitalization;\r\n","export class DesFormControl {\r\n formFieldId: string;\r\n formId: string;\r\n layoutId: string;\r\n boundProperty: string;\r\n extendBoundPropertyOne: string;\r\n extendBoundPropertyTwo: string;\r\n formFieldDescribe: string;\r\n controlType: string;\r\n tableFieldOrder: number | undefined;\r\n fieldDefaultValue: any;\r\n titleWidth: string;\r\n isBoldTitle: string | boolean;\r\n isHideTitle: string | boolean;\r\n titleColor: string;\r\n placeholder: string;\r\n tips: string;\r\n isNotEdit: string | boolean;\r\n bindingPrefix: string;\r\n bindingSuffix: string;\r\n builtInFrontLabel: string;\r\n builtInPostLabel: string;\r\n isHideControl: string | boolean;\r\n isShowHoliday: string | boolean;\r\n controlWidth: string;\r\n isPasswordBox: string | boolean;\r\n initRowHeight: number | undefined;\r\n isFixedRowHeight: string | boolean;\r\n formatType: string;\r\n minValue: number | undefined;\r\n maxValue: number | undefined;\r\n step: number | undefined;\r\n decimalPlaces: number | undefined;\r\n thousandthPercentileFormat: string | boolean;\r\n unit: string;\r\n moneyUnit: string;\r\n defineOptionalUnits: string;\r\n defineOptionalUnitsDefault: string;\r\n zoomType: string;\r\n zoomMultiple: number | undefined;\r\n isShowCapitalization: string | boolean;\r\n isLineFeedDisplay: string | boolean;\r\n isOptionType: string | boolean;\r\n optionConfig: any;\r\n dynamicOptionType: string;\r\n generalDictionary: string;\r\n generalDictionaryOptions: any;\r\n treeShape: string;\r\n treeShapeOptions: any;\r\n disableNonLeafNodes: string | boolean;\r\n dateFormat: string;\r\n timeFormat: string;\r\n isSupportMultiple: string | boolean;\r\n maxUploadNumber: number | undefined;\r\n limitSize: number | undefined;\r\n supportUploadType: string;\r\n customUploadType: any;\r\n extendUploadType: string;\r\n attachmentExtendProperties: string;\r\n isMultipleChoice: string | boolean;\r\n isSearchable: string | boolean;\r\n canAddEntry: string | boolean;\r\n isClearButton: string | boolean;\r\n hiddenDropdown: string | boolean; // new by 2021-11-9\r\n onOpeningValue: string;\r\n whenClosedValue: string;\r\n onOpeningText: string;\r\n whenClosedText: string;\r\n customFieldName: string; // new by 2021-11-9\r\n textFold: string | boolean;\r\n enableAutoComplete: string | boolean; // new by 2022-05-07\r\n autoCompleteOptions: any[]; // new by 2022-05-07\r\n verificationRules: any;\r\n busAttr: any;\r\n checkboxStyle: string | boolean; // 多选框选项标签样式\r\n itemWidth: string | boolean; // 多选框选项标签样式\r\n isTreeOpen: string | boolean; // 树形选择框是否展开\r\n changeOnSelect: string | boolean; // 是否允许级联选择框只选中父级选项\r\n textareaRows: number | undefined; // 设置textarea组件默认展示行数\r\n constructor(\r\n options: {\r\n formFieldId?: string;\r\n formId?: string;\r\n layoutId?: string;\r\n boundProperty?: string;\r\n extendBoundPropertyOne?: string;\r\n extendBoundPropertyTwo?: string;\r\n formFieldDescribe?: string;\r\n controlType?: string;\r\n tableFieldOrder?: number;\r\n fieldDefaultValue?: any;\r\n titleWidth?: string;\r\n isBoldTitle?: string;\r\n isHideTitle?: string;\r\n titleColor?: string;\r\n placeholder?: string;\r\n tips?: string;\r\n isNotEdit?: string;\r\n bindingPrefix?: string;\r\n bindingSuffix?: string;\r\n builtInFrontLabel?: string;\r\n builtInPostLabel?: string;\r\n isHideControl?: string;\r\n isShowHoliday?: string;\r\n controlWidth?: string;\r\n isPasswordBox?: string;\r\n initRowHeight?: number;\r\n isFixedRowHeight?: string;\r\n formatType?: string;\r\n minValue?: number;\r\n maxValue?: number;\r\n step?: number;\r\n decimalPlaces?: number;\r\n thousandthPercentileFormat?: string;\r\n unit?: string;\r\n moneyUnit?: string;\r\n defineOptionalUnits?: string;\r\n defineOptionalUnitsDefault?: string;\r\n zoomType?: string;\r\n zoomMultiple?: number;\r\n isShowCapitalization?: string;\r\n isLineFeedDisplay?: string;\r\n isOptionType?: string;\r\n optionConfig?: any;\r\n dynamicOptionType?: string;\r\n generalDictionary?: string;\r\n generalDictionaryOptions?: any;\r\n treeShape?: string;\r\n treeShapeOptions?: any;\r\n disableNonLeafNodes?: string | boolean;\r\n dateFormat?: string;\r\n timeFormat?: string;\r\n isSupportMultiple?: string;\r\n maxUploadNumber?: number;\r\n limitSize?: number;\r\n supportUploadType?: string;\r\n customUploadType?: any;\r\n extendUploadType?: string;\r\n attachmentExtendProperties?: string;\r\n isMultipleChoice?: string;\r\n isSearchable?: string;\r\n canAddEntry?: string;\r\n isClearButton?: string;\r\n hiddenDropdown?: string;\r\n onOpeningValue?: string;\r\n whenClosedValue?: string;\r\n onOpeningText?: string;\r\n whenClosedText?: string;\r\n customFieldName?: string;\r\n textFold?: string;\r\n enableAutoComplete?: string;\r\n autoCompleteOptions?: any[];\r\n verificationRules?: any;\r\n busAttr?: any;\r\n checkboxStyle?: string | boolean;\r\n isTreeOpen?: string | boolean;\r\n itemWidth?: string | boolean;\r\n changeOnSelect?: string | boolean;\r\n textareaRows?: number | undefined;\r\n } = {}\r\n ) {\r\n this.formFieldId = options.formFieldId || \"\";\r\n this.formId = options.formId || \"\";\r\n this.layoutId = options.layoutId || \"\";\r\n this.boundProperty = options.boundProperty || \"\";\r\n this.extendBoundPropertyOne = options.extendBoundPropertyOne || \"\";\r\n this.extendBoundPropertyTwo = options.extendBoundPropertyTwo || \"\";\r\n this.formFieldDescribe = options.formFieldDescribe || \"\";\r\n this.controlType = options.controlType || \"\";\r\n this.tableFieldOrder = options.tableFieldOrder || undefined;\r\n this.fieldDefaultValue = options.fieldDefaultValue || \"\";\r\n this.titleWidth = options.titleWidth || \"\";\r\n this.isBoldTitle = options.isBoldTitle || \"\";\r\n this.isHideTitle = options.isHideTitle || \"\";\r\n this.titleColor = options.titleColor || \"\";\r\n this.placeholder = options.placeholder || \"\";\r\n this.tips = options.tips || \"\";\r\n this.isNotEdit = options.isNotEdit || \"\";\r\n this.bindingPrefix = options.bindingPrefix || \"\";\r\n this.bindingSuffix = options.bindingSuffix || \"\";\r\n this.builtInFrontLabel = options.builtInFrontLabel || \"\";\r\n this.builtInPostLabel = options.builtInPostLabel || \"\";\r\n this.isHideControl = options.isHideControl || \"\";\r\n this.isShowHoliday = options.isShowHoliday || \"\";\r\n this.controlWidth = options.controlWidth || \"\";\r\n this.isPasswordBox = options.isPasswordBox || \"\";\r\n this.initRowHeight = options.initRowHeight || undefined;\r\n this.isFixedRowHeight = options.isFixedRowHeight || \"\";\r\n this.formatType = options.formatType || \"\";\r\n this.minValue = options.minValue || undefined;\r\n this.maxValue = options.maxValue || undefined;\r\n this.step = options.step || undefined;\r\n this.decimalPlaces = options.decimalPlaces || undefined;\r\n this.thousandthPercentileFormat = options.thousandthPercentileFormat || \"\";\r\n this.unit = options.unit || \"\";\r\n this.moneyUnit = options.moneyUnit || \"\";\r\n this.defineOptionalUnits = options.defineOptionalUnits || \"\";\r\n this.defineOptionalUnitsDefault = options.defineOptionalUnitsDefault || \"\";\r\n this.zoomType = options.zoomType || \"\";\r\n this.zoomMultiple = options.zoomMultiple || undefined;\r\n this.isShowCapitalization = options.isShowCapitalization || \"\";\r\n this.isLineFeedDisplay = options.isLineFeedDisplay || \"\";\r\n this.isOptionType = options.isOptionType || \"\";\r\n this.optionConfig = options.optionConfig || \"\";\r\n this.dynamicOptionType = options.dynamicOptionType || \"\";\r\n this.generalDictionary = options.generalDictionary || \"\";\r\n this.generalDictionaryOptions = options.generalDictionaryOptions || \"\";\r\n this.treeShape = options.treeShape || \"\";\r\n this.treeShapeOptions = options.treeShapeOptions || \"\";\r\n this.disableNonLeafNodes = options.disableNonLeafNodes || \"\";\r\n this.dateFormat = options.dateFormat || \"\";\r\n this.timeFormat = options.timeFormat || \"\";\r\n this.isSupportMultiple = options.isSupportMultiple || \"\";\r\n this.maxUploadNumber = options.maxUploadNumber || undefined;\r\n this.limitSize = options.limitSize || undefined;\r\n this.supportUploadType = options.supportUploadType || \"\";\r\n this.customUploadType = options.customUploadType;\r\n this.extendUploadType = options.extendUploadType || \"\";\r\n this.attachmentExtendProperties = options.attachmentExtendProperties || \"\";\r\n this.isMultipleChoice = options.isMultipleChoice || \"\";\r\n this.isSearchable = options.isSearchable || \"\";\r\n this.canAddEntry = options.canAddEntry || \"\";\r\n this.isClearButton = options.isClearButton || \"\";\r\n this.hiddenDropdown = options.hiddenDropdown || \"\";\r\n this.onOpeningValue = options.onOpeningValue || \"\";\r\n this.whenClosedValue = options.whenClosedValue || \"\";\r\n this.onOpeningText = options.onOpeningText || \"\";\r\n this.whenClosedText = options.whenClosedText || \"\";\r\n this.customFieldName = options.customFieldName || \"\";\r\n this.textFold = options.textFold || \"\";\r\n this.enableAutoComplete = options.enableAutoComplete || \"\";\r\n this.autoCompleteOptions = options.autoCompleteOptions || [];\r\n this.verificationRules = options.verificationRules;\r\n this.busAttr = options.busAttr;\r\n this.checkboxStyle = options.checkboxStyle || \"\";\r\n this.isTreeOpen = options.isTreeOpen || \"\";\r\n this.itemWidth = options.itemWidth || \"\";\r\n this.changeOnSelect = options.changeOnSelect || \"\";\r\n this.textareaRows = options.textareaRows || 3;\r\n }\r\n}\r\n","export abstract class AbstractControl {\r\n value: any;\r\n [key: string]: any;\r\n\r\n abstract get(path: Array<string | number> | string): AbstractControl | null;\r\n}\r\n","import { AbstractControl } from \"./AbstractControl\";\r\nimport { ValidateStatus } from \"../constants/enum/validate-status.enum\";\r\n\r\nexport interface ValidateResult {\r\n validateStatus?: string;\r\n errorMsg?: any;\r\n}\r\nexport interface ValidateReport {\r\n key: string;\r\n name: string;\r\n errorMsg: any;\r\n controlType: string;\r\n}\r\nexport type ValidateFunc = (val: any) => ValidateResult;\r\nexport interface Validate {\r\n name: string;\r\n validateFunc: ValidateFunc;\r\n}\r\nexport type TextNoticeCallback = (val?: any) => string;\r\n\r\n/**\r\n * @description: 控件对象\r\n * @author ChenRui\r\n * @date 2020/12/1 15:06\r\n */\r\nexport class FormControl extends AbstractControl {\r\n history: any[] = []; // 字段历史\r\n validates: Validate[] = []; // 校验规则\r\n textNoticeCallback: TextNoticeCallback | undefined; // 获取文本内容回调\r\n\r\n constructor(formState?: any) {\r\n super();\r\n this.setValue(formState);\r\n }\r\n\r\n setValue(value: any) {\r\n this.value = value || undefined;\r\n }\r\n\r\n get(path: Array<string | number> | string): AbstractControl | null {\r\n return this;\r\n }\r\n\r\n /**\r\n * @description: 添加校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:05\r\n */\r\n addValidate(validate: Validate | Validate[]): void {\r\n let validates: Validate[] = [];\r\n if (!(validate instanceof Array)) {\r\n validates.push(validate);\r\n } else {\r\n validates = validate;\r\n }\r\n if (validates && validates.length > 0) {\r\n for (let i = 0; i < validates.length; i++) {\r\n if (validates[i].name) {\r\n const index = this.validates.findIndex((item) => item.name === validates[i].name);\r\n if (index > -1) {\r\n this.validates[index].validateFunc = validates[i].validateFunc;\r\n } else {\r\n this.validates.push(validates[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:06\r\n */\r\n removeValidate(name: string): void {\r\n if (name) {\r\n const index = this.validates.findIndex((item) => item.name === name);\r\n if (index > -1) {\r\n this.validates.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:47\r\n */\r\n getValidate(name: string): Validate | any {\r\n if (name) {\r\n return this.validates.find((item) => item.name === name);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:08\r\n */\r\n validate(val: any = this.value): ValidateResult {\r\n for (let i = 0; i < this.validates.length; i++) {\r\n const result: ValidateResult = this.validates[i].validateFunc(val);\r\n if (result && result.validateStatus !== ValidateStatus.Success.code) {\r\n return result;\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n errorMsg: null,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 获取文本内容\r\n * @author ChenRui\r\n * @date 2021/1/29 15:56\r\n */\r\n text(): string {\r\n if (this.textNoticeCallback) {\r\n return this.textNoticeCallback();\r\n }\r\n return \"\";\r\n }\r\n}\r\n","import { AbstractControl } from \"./AbstractControl\";\r\n\r\n/**\r\n * @description: 表单对象\r\n * @author ChenRui\r\n * @date 2020/12/1 15:06\r\n */\r\nexport class FormGroup extends AbstractControl {\r\n controls: { [key: string]: AbstractControl };\r\n\r\n constructor(controls: { [key: string]: AbstractControl } = {}) {\r\n super();\r\n this.controls = controls;\r\n }\r\n\r\n /**\r\n * @description: 添加控件\r\n * @author ChenRui\r\n * @date 2020/12/1 14:47\r\n */\r\n addControl(name: string, control: AbstractControl): void {\r\n this.controls[name] = control;\r\n }\r\n\r\n /**\r\n * @description: 移除控件\r\n * @author ChenRui\r\n * @date 2020/12/1 14:47\r\n */\r\n removeControl(name: string): void {\r\n if (this.controls[name] != null) {\r\n delete this.controls[name];\r\n }\r\n }\r\n\r\n get(path: Array<string | number> | string): AbstractControl | null {\r\n if (typeof path === \"string\") {\r\n return this.controls[path];\r\n }\r\n return null;\r\n }\r\n}\r\n","import { OptionType } from \"../constants/enum/option-type.enum\";\r\nimport { DynamicOptionType } from \"../constants/enum/dynamic-option-type.enum\";\r\n\r\nfunction transformReverse(controlAttr: any, data: any[]): void {\r\n if (data == null) {\r\n data = [];\r\n }\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n controlAttr.optionConfig = data;\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n controlAttr.generalDictionaryOptions = data;\r\n } else if (controlAttr.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n controlAttr.treeShapeOptions = data;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction transform(controlAttr: any): any[] {\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n return controlAttr.optionConfig || [];\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n return controlAttr.generalDictionaryOptions || [];\r\n } else if (controlAttr.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n return controlAttr.treeShapeOptions || [];\r\n }\r\n }\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * @description: 根据字典类型获取可选项\r\n * @author ChenRui\r\n * @date 2020/12/30 11:18\r\n */\r\nconst extractOptions = (controlAttr: any, ...args: any[]): any[] => {\r\n return transform(controlAttr);\r\n};\r\n\r\n/**\r\n * @description: 保存可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:17\r\n */\r\nconst storageOptions = (controlAttr: any, data: any[]): void => {\r\n return transformReverse(controlAttr, data);\r\n};\r\nexport { storageOptions, extractOptions };\r\n","import { ZoomType } from \"@/constants/enum/zoom-type\";\r\nimport { FormControl } from \"@/domain/FormControl\";\r\nimport { MathJsStatic } from \"mathjs\";\r\nimport { getCurrentInstance } from \"vue\";\r\n\r\n/**\r\n * @description: 通用字典转换\r\n * @author ChenRui\r\n * @date 2020/7/29 18:43\r\n */\r\nfunction encode(data: any, formControl: FormControl) {\r\n const proxy: any = getCurrentInstance()?.proxy;\r\n const mathjs: MathJsStatic = proxy?.$mathjs as MathJsStatic;\r\n if (data && formControl.controlAttr.zoomMultiple) {\r\n if (formControl.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.narrow.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} / ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.automatic.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (String(formControl.value) === \"0\") {\r\n data = 0;\r\n }\r\n return data;\r\n}\r\nconst zoomMultiple = (code: any, formControl: FormControl) => {\r\n return encode(code, formControl);\r\n};\r\n\r\nexport default zoomMultiple;\r\n","/**\r\n * @description: 通用字典转换\r\n * @author ChenRui\r\n * @date 2020/7/29 18:43\r\n */\r\nfunction encode(code: string, switchEnumFiled: any, attribute?: string, defaultVal?: any) {\r\n if (switchEnumFiled != null && Object.values(switchEnumFiled).length > 0) {\r\n for (const switchEnum of Object.values(switchEnumFiled) as any) {\r\n return switchEnum[attribute || \"name\"] || defaultVal;\r\n }\r\n }\r\n return defaultVal || \"\";\r\n}\r\nconst switchEnumConvert = (code: string, switchEnumFiled: any, attribute?: string, defaultVal?: any) => {\r\n return encode(code, switchEnumFiled, attribute, defaultVal);\r\n};\r\n\r\nexport default switchEnumConvert;\r\n","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\nconst _hoisted_2 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"lo-text-container\", [{ 'lo-text-column': !_ctx.unfold }, { 'lo-text-row': _ctx.unfold }]])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['lo-text-box', { 'lo-over': !_ctx.ifOver }, { 'lo-over-hidden': !_ctx.unfold }, { 'lo-unfold': _ctx.ifOver && !_ctx.unfold }]),\n ref: \"textBox\"\n }, [\n _createElementVNode(\"span\", {\n class: \"lo-text\",\n ref: \"spanBox\",\n title: _ctx.content\n }, [\n (_ctx.linkList.indexOf(_ctx.fieldKey) > -1)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"#\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.linkClick(_ctx.content)))\n }, _toDisplayString(_ctx.content), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.content), 1))\n ], 8, _hoisted_1)\n ], 2),\n (_ctx.ifOver)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"lo-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.unfold = !_ctx.unfold))\n }, _toDisplayString(_ctx.unfold ? \"收起\" : \"展开\"), 1))\n : _createCommentVNode(\"\", true)\n ], 2))\n}","\r\nimport { Prop, Ref, Watch } from \"vue-property-decorator\";\r\nimport { Options, Vue } from \"vue-property-decorator\";\r\n\r\n@Options({\r\n name: \"StretchText\",\r\n})\r\nexport default class StretchText extends Vue {\r\n ifOver = false; // 文本是否超出三行,默认否\r\n unfold = false; // 文本是否是展开状态 默认为收起\r\n @Prop({ default: false }) enableStretchText!: boolean;\r\n @Prop({ default: \"\" }) content!: string;\r\n @Prop({ default: \"\" }) fieldKey!: string; // 元素码值key\r\n @Prop({ type: Array, default: () => [] }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n @Ref() readonly spanBox: any;\r\n @Ref() readonly textBox: any;\r\n\r\n mounted(): void {\r\n this.onContentHandle();\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:string 元素值value)\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:24\r\n */\r\n linkClick(data: any): void {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n @Watch(\"content\")\r\n onContentHandle(): void {\r\n // 判断是否显示展开收起按钮\r\n this.ifOver = this.spanBox.offsetHeight > this.textBox.offsetHeight;\r\n }\r\n}\r\n","import { render } from \"./StretchText.vue?vue&type=template&id=12085cfe&scoped=true&ts=true\"\nimport script from \"./StretchText.vue?vue&type=script&lang=ts\"\nexport * from \"./StretchText.vue?vue&type=script&lang=ts\"\n\nimport \"./StretchText.vue?vue&type=style&index=0&id=12085cfe&lang=scss&scoped=true\"\n\nimport exportComponent from \"E:\\\\base-frontend\\\\vue3-lo-form-251124\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-12085cfe\"]])\n\nexport default __exports__","/*eslint-disable*/\r\nconst char_dict: any = \"YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY\"\r\nconst full_dict: any = { \"a\": \"\\u554a\\u963f\\u9515\", \"ai\": \"\\u57c3\\u6328\\u54ce\\u5509\\u54c0\\u7691\\u764c\\u853c\\u77ee\\u827e\\u788d\\u7231\\u9698\\u8bf6\\u6371\\u55f3\\u55cc\\u5ad2\\u7477\\u66a7\\u7839\\u953f\\u972d\", \"an\": \"\\u978d\\u6c28\\u5b89\\u4ffa\\u6309\\u6697\\u5cb8\\u80fa\\u6848\\u8c19\\u57ef\\u63de\\u72b4\\u5eb5\\u6849\\u94f5\\u9e4c\\u9878\\u9eef\", \"ang\": \"\\u80ae\\u6602\\u76ce\", \"ao\": \"\\u51f9\\u6556\\u71ac\\u7ff1\\u8884\\u50b2\\u5965\\u61ca\\u6fb3\\u5773\\u62d7\\u55f7\\u5662\\u5c99\\u5ed2\\u9068\\u5aaa\\u9a9c\\u8071\\u87af\\u93ca\\u9ccc\\u93d6\", \"ba\": \"\\u82ad\\u634c\\u6252\\u53ed\\u5427\\u7b06\\u516b\\u75a4\\u5df4\\u62d4\\u8dcb\\u9776\\u628a\\u8019\\u575d\\u9738\\u7f62\\u7238\\u8307\\u83dd\\u8406\\u636d\\u5c9c\\u705e\\u6777\\u94af\\u7c91\\u9c85\\u9b43\", \"bai\": \"\\u767d\\u67cf\\u767e\\u6446\\u4f70\\u8d25\\u62dc\\u7a17\\u859c\\u63b0\\u97b4\", \"ban\": \"\\u6591\\u73ed\\u642c\\u6273\\u822c\\u9881\\u677f\\u7248\\u626e\\u62cc\\u4f34\\u74e3\\u534a\\u529e\\u7eca\\u962a\\u5742\\u8c73\\u94a3\\u7622\\u764d\\u8228\", \"bang\": \"\\u90a6\\u5e2e\\u6886\\u699c\\u8180\\u7ed1\\u68d2\\u78c5\\u868c\\u9551\\u508d\\u8c24\\u84a1\\u8783\", \"bao\": \"\\u82de\\u80de\\u5305\\u8912\\u96f9\\u4fdd\\u5821\\u9971\\u5b9d\\u62b1\\u62a5\\u66b4\\u8c79\\u9c8d\\u7206\\u52f9\\u8446\\u5b80\\u5b62\\u7172\\u9e28\\u8913\\u8db5\\u9f85\", \"bo\": \"\\u5265\\u8584\\u73bb\\u83e0\\u64ad\\u62e8\\u94b5\\u6ce2\\u535a\\u52c3\\u640f\\u94c2\\u7b94\\u4f2f\\u5e1b\\u8236\\u8116\\u818a\\u6e24\\u6cca\\u9a73\\u4eb3\\u8543\\u5575\\u997d\\u6a97\\u64d8\\u7934\\u94b9\\u9e41\\u7c38\\u8ddb\", \"bei\": \"\\u676f\\u7891\\u60b2\\u5351\\u5317\\u8f88\\u80cc\\u8d1d\\u94a1\\u500d\\u72c8\\u5907\\u60eb\\u7119\\u88ab\\u5b5b\\u9642\\u90b6\\u57e4\\u84d3\\u5457\\u602b\\u6096\\u789a\\u9e4e\\u8919\\u943e\", \"ben\": \"\\u5954\\u82ef\\u672c\\u7b28\\u755a\\u574c\\u951b\", \"beng\": \"\\u5d29\\u7ef7\\u752d\\u6cf5\\u8e66\\u8ff8\\u552a\\u5623\\u750f\", \"bi\": \"\\u903c\\u9f3b\\u6bd4\\u9119\\u7b14\\u5f7c\\u78a7\\u84d6\\u853d\\u6bd5\\u6bd9\\u6bd6\\u5e01\\u5e87\\u75f9\\u95ed\\u655d\\u5f0a\\u5fc5\\u8f9f\\u58c1\\u81c2\\u907f\\u965b\\u5315\\u4ef3\\u4ffe\\u8298\\u835c\\u8378\\u5421\\u54d4\\u72f4\\u5eb3\\u610e\\u6ed7\\u6fde\\u5f3c\\u59a3\\u5a62\\u5b16\\u74a7\\u8d32\\u7540\\u94cb\\u79d5\\u88e8\\u7b5a\\u7b85\\u7be6\\u822d\\u895e\\u8df8\\u9ac0\", \"bian\": \"\\u97ad\\u8fb9\\u7f16\\u8d2c\\u6241\\u4fbf\\u53d8\\u535e\\u8fa8\\u8fa9\\u8fab\\u904d\\u533e\\u5f01\\u82c4\\u5fed\\u6c74\\u7f0f\\u7178\\u782d\\u78a5\\u7a39\\u7a86\\u8759\\u7b3e\\u9cca\", \"biao\": \"\\u6807\\u5f6a\\u8198\\u8868\\u5a4a\\u9aa0\\u98d1\\u98d9\\u98da\\u706c\\u9556\\u9573\\u762d\\u88f1\\u9cd4\", \"bie\": \"\\u9cd6\\u618b\\u522b\\u762a\\u8e69\\u9cd8\", \"bin\": \"\\u5f6c\\u658c\\u6fd2\\u6ee8\\u5bbe\\u6448\\u50a7\\u6d5c\\u7f24\\u73a2\\u6ba1\\u8191\\u9554\\u9acc\\u9b13\", \"bing\": \"\\u5175\\u51b0\\u67c4\\u4e19\\u79c9\\u997c\\u70b3\\u75c5\\u5e76\\u7980\\u90b4\\u6452\\u7ee0\\u678b\\u69df\\u71f9\", \"bu\": \"\\u6355\\u535c\\u54fa\\u8865\\u57e0\\u4e0d\\u5e03\\u6b65\\u7c3f\\u90e8\\u6016\\u62ca\\u535f\\u900b\\u74ff\\u6661\\u949a\\u91ad\", \"ca\": \"\\u64e6\\u5693\\u7924\", \"cai\": \"\\u731c\\u88c1\\u6750\\u624d\\u8d22\\u776c\\u8e29\\u91c7\\u5f69\\u83dc\\u8521\", \"can\": \"\\u9910\\u53c2\\u8695\\u6b8b\\u60ed\\u60e8\\u707f\\u9a96\\u74a8\\u7cb2\\u9eea\", \"cang\": \"\\u82cd\\u8231\\u4ed3\\u6ca7\\u85cf\\u4f27\", \"cao\": \"\\u64cd\\u7cd9\\u69fd\\u66f9\\u8349\\u8279\\u5608\\u6f15\\u87ac\\u825a\", \"ce\": \"\\u5395\\u7b56\\u4fa7\\u518c\\u6d4b\\u5202\\u5e3b\\u607b\", \"ceng\": \"\\u5c42\\u8e6d\\u564c\", \"cha\": \"\\u63d2\\u53c9\\u832c\\u8336\\u67e5\\u78b4\\u643d\\u5bdf\\u5c94\\u5dee\\u8be7\\u7339\\u9987\\u6c4a\\u59f9\\u6748\\u6942\\u69ce\\u6aab\\u9497\\u9538\\u9572\\u8869\", \"chai\": \"\\u62c6\\u67f4\\u8c7a\\u4faa\\u8308\\u7625\\u867f\\u9f87\", \"chan\": \"\\u6400\\u63ba\\u8749\\u998b\\u8c17\\u7f20\\u94f2\\u4ea7\\u9610\\u98a4\\u5181\\u8c04\\u8c36\\u8487\\u5edb\\u5fcf\\u6f7a\\u6fb6\\u5b71\\u7fbc\\u5a75\\u5b17\\u9aa3\\u89c7\\u7985\\u9561\\u88e3\\u87fe\\u8e94\", \"chang\": \"\\u660c\\u7316\\u573a\\u5c1d\\u5e38\\u957f\\u507f\\u80a0\\u5382\\u655e\\u7545\\u5531\\u5021\\u4f25\\u9b2f\\u82cc\\u83d6\\u5f9c\\u6005\\u60dd\\u960a\\u5a3c\\u5ae6\\u6636\\u6c05\\u9cb3\", \"chao\": \"\\u8d85\\u6284\\u949e\\u671d\\u5632\\u6f6e\\u5de2\\u5435\\u7092\\u600a\\u7ec9\\u6641\\u8016\", \"che\": \"\\u8f66\\u626f\\u64a4\\u63a3\\u5f7b\\u6f88\\u577c\\u5c6e\\u7817\", \"chen\": \"\\u90f4\\u81e3\\u8fb0\\u5c18\\u6668\\u5ff1\\u6c89\\u9648\\u8d81\\u886c\\u79f0\\u8c0c\\u62bb\\u55d4\\u5bb8\\u741b\\u6987\\u809c\\u80c2\\u789c\\u9f80\", \"cheng\": \"\\u6491\\u57ce\\u6a59\\u6210\\u5448\\u4e58\\u7a0b\\u60e9\\u6f84\\u8bda\\u627f\\u901e\\u9a8b\\u79e4\\u57d5\\u5d4a\\u5fb5\\u6d48\\u67a8\\u67fd\\u6a18\\u665f\\u584d\\u77a0\\u94d6\\u88ce\\u86cf\\u9172\", \"chi\": \"\\u5403\\u75f4\\u6301\\u5319\\u6c60\\u8fdf\\u5f1b\\u9a70\\u803b\\u9f7f\\u4f88\\u5c3a\\u8d64\\u7fc5\\u65a5\\u70bd\\u50ba\\u5880\\u82aa\\u830c\\u640b\\u53f1\\u54e7\\u557b\\u55e4\\u5f73\\u996c\\u6cb2\\u5ab8\\u6555\\u80dd\\u7719\\u7735\\u9e31\\u761b\\u892b\\u86a9\\u87ad\\u7b1e\\u7bea\\u8c49\\u8e05\\u8e1f\\u9b51\", \"chong\": \"\\u5145\\u51b2\\u866b\\u5d07\\u5ba0\\u833a\\u5fe1\\u61a7\\u94f3\\u825f\", \"chou\": \"\\u62bd\\u916c\\u7574\\u8e0c\\u7a20\\u6101\\u7b79\\u4ec7\\u7ef8\\u7785\\u4e11\\u4fe6\\u5733\\u5e31\\u60c6\\u6eb4\\u59af\\u7633\\u96e0\\u9c8b\", \"chu\": \"\\u81ed\\u521d\\u51fa\\u6a71\\u53a8\\u8e87\\u9504\\u96cf\\u6ec1\\u9664\\u695a\\u7840\\u50a8\\u77d7\\u6410\\u89e6\\u5904\\u4e8d\\u520d\\u61b7\\u7ecc\\u6775\\u696e\\u6a17\\u870d\\u8e70\\u9edc\", \"chuan\": \"\\u63e3\\u5ddd\\u7a7f\\u693d\\u4f20\\u8239\\u5598\\u4e32\\u63be\\u821b\\u60f4\\u9044\\u5ddb\\u6c1a\\u948f\\u9569\\u8221\", \"chuang\": \"\\u75ae\\u7a97\\u5e62\\u5e8a\\u95ef\\u521b\\u6006\", \"chui\": \"\\u5439\\u708a\\u6376\\u9524\\u5782\\u9672\\u68f0\\u69cc\", \"chun\": \"\\u6625\\u693f\\u9187\\u5507\\u6df3\\u7eaf\\u8822\\u4fc3\\u83bc\\u6c8c\\u80ab\\u6710\\u9e51\\u877d\", \"chuo\": \"\\u6233\\u7ef0\\u851f\\u8fb6\\u8f8d\\u955e\\u8e14\\u9f8a\", \"ci\": \"\\u75b5\\u8328\\u78c1\\u96cc\\u8f9e\\u6148\\u74f7\\u8bcd\\u6b64\\u523a\\u8d50\\u6b21\\u8360\\u5472\\u5d6f\\u9e5a\\u8785\\u7ccd\\u8d91\", \"cong\": \"\\u806a\\u8471\\u56f1\\u5306\\u4ece\\u4e1b\\u506c\\u82c1\\u6dd9\\u9aa2\\u742e\\u7481\\u679e\", \"cu\": \"\\u51d1\\u7c97\\u918b\\u7c07\\u731d\\u6b82\\u8e59\", \"cuan\": \"\\u8e7f\\u7be1\\u7a9c\\u6c46\\u64ba\\u6615\\u7228\", \"cui\": \"\\u6467\\u5d14\\u50ac\\u8106\\u7601\\u7cb9\\u6dec\\u7fe0\\u8403\\u60b4\\u7480\\u69b1\\u96b9\", \"cun\": \"\\u6751\\u5b58\\u5bf8\\u78cb\\u5fd6\\u76b4\", \"cuo\": \"\\u64ae\\u6413\\u63aa\\u632b\\u9519\\u539d\\u811e\\u9509\\u77ec\\u75e4\\u9e7e\\u8e49\\u8e9c\", \"da\": \"\\u642d\\u8fbe\\u7b54\\u7629\\u6253\\u5927\\u8037\\u54d2\\u55d2\\u601b\\u59b2\\u75b8\\u8921\\u7b2a\\u977c\\u9791\", \"dai\": \"\\u5446\\u6b79\\u50a3\\u6234\\u5e26\\u6b86\\u4ee3\\u8d37\\u888b\\u5f85\\u902e\\u6020\\u57ed\\u7519\\u5454\\u5cb1\\u8fe8\\u902f\\u9a80\\u7ed0\\u73b3\\u9edb\", \"dan\": \"\\u803d\\u62c5\\u4e39\\u5355\\u90f8\\u63b8\\u80c6\\u65e6\\u6c2e\\u4f46\\u60ee\\u6de1\\u8bde\\u5f39\\u86cb\\u4ebb\\u510b\\u5369\\u840f\\u5556\\u6fb9\\u6a90\\u6b9a\\u8d55\\u7708\\u7605\\u8043\\u7baa\", \"dang\": \"\\u5f53\\u6321\\u515a\\u8361\\u6863\\u8c20\\u51fc\\u83ea\\u5b95\\u7800\\u94db\\u88c6\", \"dao\": \"\\u5200\\u6363\\u8e48\\u5012\\u5c9b\\u7977\\u5bfc\\u5230\\u7a3b\\u60bc\\u9053\\u76d7\\u53e8\\u5541\\u5fc9\\u6d2e\\u6c18\\u7118\\u5fd1\\u7e9b\", \"de\": \"\\u5fb7\\u5f97\\u7684\\u951d\", \"deng\": \"\\u8e6c\\u706f\\u767b\\u7b49\\u77aa\\u51f3\\u9093\\u5654\\u5d9d\\u6225\\u78f4\\u956b\\u7c26\", \"di\": \"\\u5824\\u4f4e\\u6ef4\\u8fea\\u654c\\u7b1b\\u72c4\\u6da4\\u7fdf\\u5ae1\\u62b5\\u5e95\\u5730\\u8482\\u7b2c\\u5e1d\\u5f1f\\u9012\\u7f14\\u6c10\\u7c74\\u8bcb\\u8c1b\\u90b8\\u577b\\u839c\\u837b\\u5600\\u5a23\\u67e2\\u68e3\\u89cc\\u7825\\u78b2\\u7747\\u955d\\u7f9d\\u9ab6\", \"dian\": \"\\u98a0\\u6382\\u6ec7\\u7898\\u70b9\\u5178\\u975b\\u57ab\\u7535\\u4f43\\u7538\\u5e97\\u60e6\\u5960\\u6dc0\\u6bbf\\u4e36\\u963d\\u576b\\u57dd\\u5dc5\\u73b7\\u765c\\u766b\\u7c1f\\u8e2e\", \"diao\": \"\\u7889\\u53fc\\u96d5\\u51cb\\u5201\\u6389\\u540a\\u9493\\u8c03\\u8f7a\\u94de\\u8729\\u7c9c\\u8c82\", \"die\": \"\\u8dcc\\u7239\\u789f\\u8776\\u8fed\\u8c0d\\u53e0\\u4f5a\\u57a4\\u581e\\u63f2\\u558b\\u6e2b\\u8f76\\u7252\\u74de\\u8936\\u800b\\u8e40\\u9cbd\\u9cce\", \"ding\": \"\\u4e01\\u76ef\\u53ee\\u9489\\u9876\\u9f0e\\u952d\\u5b9a\\u8ba2\\u4e22\\u4ec3\\u5576\\u738e\\u815a\\u7887\\u753a\\u94e4\\u7594\\u8035\\u914a\", \"dong\": \"\\u4e1c\\u51ac\\u8463\\u61c2\\u52a8\\u680b\\u4f97\\u606b\\u51bb\\u6d1e\\u578c\\u549a\\u5cbd\\u5cd2\\u5902\\u6c21\\u80e8\\u80f4\\u7850\\u9e2b\", \"dou\": \"\\u515c\\u6296\\u6597\\u9661\\u8c46\\u9017\\u75d8\\u8538\\u94ad\\u7aa6\\u7aac\\u86aa\\u7bfc\\u9161\", \"du\": \"\\u90fd\\u7763\\u6bd2\\u728a\\u72ec\\u8bfb\\u5835\\u7779\\u8d4c\\u675c\\u9540\\u809a\\u5ea6\\u6e21\\u5992\\u828f\\u561f\\u6e0e\\u691f\\u6a50\\u724d\\u8839\\u7b03\\u9ad1\\u9ee9\", \"duan\": \"\\u7aef\\u77ed\\u953b\\u6bb5\\u65ad\\u7f0e\\u5f56\\u6934\\u7145\\u7c16\", \"dui\": \"\\u5806\\u5151\\u961f\\u5bf9\\u603c\\u619d\\u7893\", \"dun\": \"\\u58a9\\u5428\\u8e72\\u6566\\u987f\\u56e4\\u949d\\u76fe\\u9041\\u7096\\u7818\\u7905\\u76f9\\u9566\\u8db8\", \"duo\": \"\\u6387\\u54c6\\u591a\\u593a\\u579b\\u8eb2\\u6735\\u8dfa\\u8235\\u5241\\u60f0\\u5815\\u5484\\u54da\\u7f0d\\u67c1\\u94ce\\u88f0\\u8e31\", \"e\": \"\\u86fe\\u5ce8\\u9e45\\u4fc4\\u989d\\u8bb9\\u5a25\\u6076\\u5384\\u627c\\u904f\\u9102\\u997f\\u5669\\u8c14\\u57a9\\u57ad\\u82ca\\u83aa\\u843c\\u5443\\u6115\\u5c59\\u5a40\\u8f6d\\u66f7\\u816d\\u786a\\u9507\\u9537\\u9e57\\u989a\\u9cc4\", \"en\": \"\\u6069\\u84bd\\u6441\\u5514\\u55ef\", \"er\": \"\\u800c\\u513f\\u8033\\u5c14\\u9975\\u6d31\\u4e8c\\u8d30\\u8fe9\\u73e5\\u94d2\\u9e38\\u9c95\", \"fa\": \"\\u53d1\\u7f5a\\u7b4f\\u4f10\\u4e4f\\u9600\\u6cd5\\u73d0\\u57a1\\u781d\", \"fan\": \"\\u85e9\\u5e06\\u756a\\u7ffb\\u6a0a\\u77fe\\u9492\\u7e41\\u51e1\\u70e6\\u53cd\\u8fd4\\u8303\\u8d29\\u72af\\u996d\\u6cdb\\u8629\\u5e61\\u72ad\\u68b5\\u6535\\u71d4\\u7548\\u8e6f\", \"fang\": \"\\u574a\\u82b3\\u65b9\\u80aa\\u623f\\u9632\\u59a8\\u4eff\\u8bbf\\u7eba\\u653e\\u531a\\u90a1\\u5f77\\u94ab\\u822b\\u9c82\", \"fei\": \"\\u83f2\\u975e\\u5561\\u98de\\u80a5\\u532a\\u8bfd\\u5420\\u80ba\\u5e9f\\u6cb8\\u8d39\\u82be\\u72d2\\u60b1\\u6ddd\\u5983\\u7ecb\\u7eef\\u69a7\\u8153\\u6590\\u6249\\u7953\\u7829\\u9544\\u75f1\\u871a\\u7bda\\u7fe1\\u970f\\u9cb1\", \"fen\": \"\\u82ac\\u915a\\u5429\\u6c1b\\u5206\\u7eb7\\u575f\\u711a\\u6c7e\\u7c89\\u594b\\u4efd\\u5fff\\u6124\\u7caa\\u507e\\u7035\\u68fc\\u610d\\u9cbc\\u9f22\", \"feng\": \"\\u4e30\\u5c01\\u67ab\\u8702\\u5cf0\\u950b\\u98ce\\u75af\\u70fd\\u9022\\u51af\\u7f1d\\u8bbd\\u5949\\u51e4\\u4ff8\\u9146\\u8451\\u6ca3\\u781c\", \"fu\": \"\\u4f5b\\u5426\\u592b\\u6577\\u80a4\\u5b75\\u6276\\u62c2\\u8f90\\u5e45\\u6c1f\\u7b26\\u4f0f\\u4fd8\\u670d\\u6d6e\\u6daa\\u798f\\u88b1\\u5f17\\u752b\\u629a\\u8f85\\u4fef\\u91dc\\u65a7\\u812f\\u8151\\u5e9c\\u8150\\u8d74\\u526f\\u8986\\u8d4b\\u590d\\u5085\\u4ed8\\u961c\\u7236\\u8179\\u8d1f\\u5bcc\\u8ba3\\u9644\\u5987\\u7f1a\\u5490\\u5310\\u51eb\\u90db\\u8299\\u82fb\\u832f\\u83a9\\u83d4\\u544b\\u5e5e\\u6ecf\\u8274\\u5b5a\\u9a78\\u7ec2\\u6874\\u8d59\\u9efb\\u9efc\\u7f58\\u7a03\\u99a5\\u864d\\u86a8\\u8709\\u8760\\u876e\\u9eb8\\u8dba\\u8dd7\\u9cc6\", \"ga\": \"\\u5676\\u560e\\u86e4\\u5c2c\\u5477\\u5c15\\u5c1c\\u65ee\\u9486\", \"gai\": \"\\u8be5\\u6539\\u6982\\u9499\\u76d6\\u6e89\\u4e10\\u9654\\u5793\\u6224\\u8d45\\u80f2\", \"gan\": \"\\u5e72\\u7518\\u6746\\u67d1\\u7aff\\u809d\\u8d76\\u611f\\u79c6\\u6562\\u8d63\\u5769\\u82f7\\u5c34\\u64c0\\u6cd4\\u6de6\\u6f89\\u7ec0\\u6a44\\u65f0\\u77f8\\u75b3\\u9150\", \"gang\": \"\\u5188\\u521a\\u94a2\\u7f38\\u809b\\u7eb2\\u5c97\\u6e2f\\u6206\\u7f61\\u9883\\u7b7b\", \"gong\": \"\\u6760\\u5de5\\u653b\\u529f\\u606d\\u9f9a\\u4f9b\\u8eac\\u516c\\u5bab\\u5f13\\u5de9\\u6c5e\\u62f1\\u8d21\\u5171\\u857b\\u5efe\\u54a3\\u73d9\\u80b1\\u86a3\\u86e9\\u89e5\", \"gao\": \"\\u7bd9\\u768b\\u9ad8\\u818f\\u7f94\\u7cd5\\u641e\\u9550\\u7a3f\\u544a\\u777e\\u8bf0\\u90dc\\u84bf\\u85c1\\u7f1f\\u69d4\\u69c1\\u6772\\u9506\", \"ge\": \"\\u54e5\\u6b4c\\u6401\\u6208\\u9e3d\\u80f3\\u7599\\u5272\\u9769\\u845b\\u683c\\u9601\\u9694\\u94ec\\u4e2a\\u5404\\u9b32\\u4ee1\\u54ff\\u5865\\u55dd\\u7ea5\\u643f\\u8188\\u784c\\u94ea\\u9549\\u88bc\\u988c\\u867c\\u8238\\u9abc\\u9ac2\", \"gei\": \"\\u7ed9\", \"gen\": \"\\u6839\\u8ddf\\u4e98\\u831b\\u54cf\\u826e\", \"geng\": \"\\u8015\\u66f4\\u5e9a\\u7fb9\\u57c2\\u803f\\u6897\\u54fd\\u8d53\\u9ca0\", \"gou\": \"\\u94a9\\u52fe\\u6c9f\\u82df\\u72d7\\u57a2\\u6784\\u8d2d\\u591f\\u4f5d\\u8bdf\\u5ca3\\u9058\\u5abe\\u7f11\\u89cf\\u5f40\\u9e32\\u7b31\\u7bdd\\u97b2\", \"gu\": \"\\u8f9c\\u83c7\\u5495\\u7b8d\\u4f30\\u6cbd\\u5b64\\u59d1\\u9f13\\u53e4\\u86ca\\u9aa8\\u8c37\\u80a1\\u6545\\u987e\\u56fa\\u96c7\\u560f\\u8bc2\\u83f0\\u54cc\\u5d2e\\u6c69\\u688f\\u8f71\\u726f\\u727f\\u80cd\\u81cc\\u6bc2\\u77bd\\u7f5f\\u94b4\\u9522\\u74e0\\u9e2a\\u9e44\\u75fc\\u86c4\\u9164\\u89da\\u9cb4\\u9ab0\\u9e58\", \"gua\": \"\\u522e\\u74dc\\u5250\\u5be1\\u6302\\u8902\\u5366\\u8bd6\\u5471\\u681d\\u9e39\", \"guai\": \"\\u4e56\\u62d0\\u602a\\u54d9\", \"guan\": \"\\u68fa\\u5173\\u5b98\\u51a0\\u89c2\\u7ba1\\u9986\\u7f50\\u60ef\\u704c\\u8d2f\\u500c\\u839e\\u63bc\\u6dab\\u76e5\\u9e73\\u9ccf\", \"guang\": \"\\u5149\\u5e7f\\u901b\\u72b7\\u6844\\u80f1\\u7592\", \"gui\": \"\\u7470\\u89c4\\u572d\\u7845\\u5f52\\u9f9f\\u95fa\\u8f68\\u9b3c\\u8be1\\u7678\\u6842\\u67dc\\u8dea\\u8d35\\u523d\\u5326\\u523f\\u5e8b\\u5b84\\u59ab\\u6867\\u7085\\u6677\\u7688\\u7c0b\\u9c91\\u9cdc\", \"gun\": \"\\u8f8a\\u6eda\\u68cd\\u4e28\\u886e\\u7ef2\\u78d9\\u9ca7\", \"guo\": \"\\u9505\\u90ed\\u56fd\\u679c\\u88f9\\u8fc7\\u9998\\u8803\\u57da\\u63b4\\u5459\\u56d7\\u5e3c\\u5d1e\\u7313\\u6901\\u8662\\u951e\\u8052\\u872e\\u873e\\u8748\", \"ha\": \"\\u54c8\", \"hai\": \"\\u9ab8\\u5b69\\u6d77\\u6c26\\u4ea5\\u5bb3\\u9a87\\u54b4\\u55e8\\u988f\\u91a2\", \"han\": \"\\u9163\\u61a8\\u90af\\u97e9\\u542b\\u6db5\\u5bd2\\u51fd\\u558a\\u7f55\\u7ff0\\u64bc\\u634d\\u65f1\\u61be\\u608d\\u710a\\u6c57\\u6c49\\u9097\\u83e1\\u6496\\u961a\\u701a\\u6657\\u7113\\u9894\\u86b6\\u9f3e\", \"hen\": \"\\u592f\\u75d5\\u5f88\\u72e0\\u6068\", \"hang\": \"\\u676d\\u822a\\u6c86\\u7ed7\\u73e9\\u6841\", \"hao\": \"\\u58d5\\u568e\\u8c6a\\u6beb\\u90dd\\u597d\\u8017\\u53f7\\u6d69\\u8585\\u55e5\\u5686\\u6fe0\\u704f\\u660a\\u7693\\u98a2\\u869d\", \"he\": \"\\u5475\\u559d\\u8377\\u83cf\\u6838\\u79be\\u548c\\u4f55\\u5408\\u76d2\\u8c89\\u9602\\u6cb3\\u6db8\\u8d6b\\u8910\\u9e64\\u8d3a\\u8bc3\\u52be\\u58d1\\u85ff\\u55d1\\u55ec\\u9616\\u76cd\\u86b5\\u7fee\", \"hei\": \"\\u563f\\u9ed1\", \"heng\": \"\\u54fc\\u4ea8\\u6a2a\\u8861\\u6052\\u8a07\\u8605\", \"hong\": \"\\u8f70\\u54c4\\u70d8\\u8679\\u9e3f\\u6d2a\\u5b8f\\u5f18\\u7ea2\\u9ec9\\u8ba7\\u836d\\u85a8\\u95f3\\u6cd3\", \"hou\": \"\\u5589\\u4faf\\u7334\\u543c\\u539a\\u5019\\u540e\\u5820\\u5f8c\\u9005\\u760a\\u7bcc\\u7cc7\\u9c8e\\u9aba\", \"hu\": \"\\u547c\\u4e4e\\u5ffd\\u745a\\u58f6\\u846b\\u80e1\\u8774\\u72d0\\u7cca\\u6e56\\u5f27\\u864e\\u552c\\u62a4\\u4e92\\u6caa\\u6237\\u51b1\\u553f\\u56eb\\u5cb5\\u7322\\u6019\\u60da\\u6d52\\u6ef9\\u7425\\u69f2\\u8f77\\u89f3\\u70c0\\u7173\\u623d\\u6248\\u795c\\u9e55\\u9e71\\u7b0f\\u9190\\u659b\", \"hua\": \"\\u82b1\\u54d7\\u534e\\u733e\\u6ed1\\u753b\\u5212\\u5316\\u8bdd\\u5290\\u6d4d\\u9a85\\u6866\\u94e7\\u7a1e\", \"huai\": \"\\u69d0\\u5f8a\\u6000\\u6dee\\u574f\\u8fd8\\u8e1d\", \"huan\": \"\\u6b22\\u73af\\u6853\\u7f13\\u6362\\u60a3\\u5524\\u75ea\\u8c62\\u7115\\u6da3\\u5ba6\\u5e7b\\u90c7\\u5942\\u57b8\\u64d0\\u571c\\u6d39\\u6d63\\u6f36\\u5bf0\\u902d\\u7f33\\u953e\\u9ca9\\u9b1f\", \"huang\": \"\\u8352\\u614c\\u9ec4\\u78fa\\u8757\\u7c27\\u7687\\u51f0\\u60f6\\u714c\\u6643\\u5e4c\\u604d\\u8c0e\\u968d\\u5fa8\\u6e5f\\u6f62\\u9051\\u749c\\u8093\\u7640\\u87e5\\u7bc1\\u9cc7\", \"hui\": \"\\u7070\\u6325\\u8f89\\u5fbd\\u6062\\u86d4\\u56de\\u6bc1\\u6094\\u6167\\u5349\\u60e0\\u6666\\u8d3f\\u79fd\\u4f1a\\u70e9\\u6c47\\u8bb3\\u8bf2\\u7ed8\\u8bd9\\u8334\\u835f\\u8559\\u54d5\\u5599\\u96b3\\u6d04\\u5f57\\u7f0b\\u73f2\\u6656\\u605a\\u867a\\u87ea\\u9ebe\", \"hun\": \"\\u8364\\u660f\\u5a5a\\u9b42\\u6d51\\u6df7\\u8be8\\u9984\\u960d\\u6eb7\\u7f17\", \"huo\": \"\\u8c41\\u6d3b\\u4f19\\u706b\\u83b7\\u6216\\u60d1\\u970d\\u8d27\\u7978\\u6509\\u56af\\u5925\\u94ac\\u952a\\u956c\\u8020\\u8816\", \"ji\": \"\\u51fb\\u573e\\u57fa\\u673a\\u7578\\u7a3d\\u79ef\\u7b95\\u808c\\u9965\\u8ff9\\u6fc0\\u8ba5\\u9e21\\u59ec\\u7ee9\\u7f09\\u5409\\u6781\\u68d8\\u8f91\\u7c4d\\u96c6\\u53ca\\u6025\\u75be\\u6c72\\u5373\\u5ac9\\u7ea7\\u6324\\u51e0\\u810a\\u5df1\\u84df\\u6280\\u5180\\u5b63\\u4f0e\\u796d\\u5242\\u60b8\\u6d4e\\u5bc4\\u5bc2\\u8ba1\\u8bb0\\u65e2\\u5fcc\\u9645\\u5993\\u7ee7\\u7eaa\\u5c45\\u4e0c\\u4e69\\u525e\\u4f76\\u4f74\\u8114\\u58bc\\u82a8\\u82b0\\u8401\\u84ba\\u857a\\u638e\\u53fd\\u54ad\\u54dc\\u5527\\u5c8c\\u5d74\\u6d0e\\u5f50\\u5c50\\u9aa5\\u757f\\u7391\\u696b\\u6b9b\\u621f\\u6222\\u8d4d\\u89ca\\u7284\\u9f51\\u77f6\\u7f81\\u5d47\\u7a37\\u7620\\u7635\\u866e\\u7b08\\u7b04\\u66a8\\u8dfb\\u8dfd\\u9701\\u9c9a\\u9cab\\u9afb\\u9e82\", \"jia\": \"\\u5609\\u67b7\\u5939\\u4f73\\u5bb6\\u52a0\\u835a\\u988a\\u8d3e\\u7532\\u94be\\u5047\\u7a3c\\u4ef7\\u67b6\\u9a7e\\u5ac1\\u4f3d\\u90cf\\u62ee\\u5cac\\u6d43\\u8fe6\\u73c8\\u621b\\u80db\\u605d\\u94d7\\u9553\\u75c2\\u86f1\\u7b33\\u8888\\u8dcf\", \"jian\": \"\\u6b7c\\u76d1\\u575a\\u5c16\\u7b3a\\u95f4\\u714e\\u517c\\u80a9\\u8270\\u5978\\u7f04\\u8327\\u68c0\\u67ec\\u78b1\\u7877\\u62e3\\u6361\\u7b80\\u4fed\\u526a\\u51cf\\u8350\\u69db\\u9274\\u8df5\\u8d31\\u89c1\\u952e\\u7bad\\u4ef6\\u5065\\u8230\\u5251\\u996f\\u6e10\\u6e85\\u6da7\\u5efa\\u50ed\\u8c0f\\u8c2b\\u83c5\\u84b9\\u641b\\u56dd\\u6e54\\u8e47\\u8b07\\u7f23\\u67a7\\u67d9\\u6957\\u620b\\u622c\\u726e\\u728d\\u6bfd\\u8171\\u7751\\u950f\\u9e63\\u88e5\\u7b15\\u7bb4\\u7fe6\\u8dbc\\u8e3a\\u9ca3\\u97af\", \"jiang\": \"\\u50f5\\u59dc\\u5c06\\u6d46\\u6c5f\\u7586\\u848b\\u6868\\u5956\\u8bb2\\u5320\\u9171\\u964d\\u8333\\u6d1a\\u7edb\\u7f30\\u729f\\u7913\\u8029\\u7ce8\\u8c47\", \"jiao\": \"\\u8549\\u6912\\u7901\\u7126\\u80f6\\u4ea4\\u90ca\\u6d47\\u9a84\\u5a07\\u56bc\\u6405\\u94f0\\u77eb\\u4fa5\\u811a\\u72e1\\u89d2\\u997a\\u7f34\\u7ede\\u527f\\u6559\\u9175\\u8f7f\\u8f83\\u53eb\\u4f7c\\u50ec\\u832d\\u6322\\u564d\\u5ce4\\u5fbc\\u59e3\\u7e9f\\u656b\\u768e\\u9e6a\\u86df\\u91ae\\u8de4\\u9c9b\", \"jie\": \"\\u7a96\\u63ed\\u63a5\\u7686\\u79f8\\u8857\\u9636\\u622a\\u52ab\\u8282\\u6854\\u6770\\u6377\\u776b\\u7aed\\u6d01\\u7ed3\\u89e3\\u59d0\\u6212\\u85c9\\u82a5\\u754c\\u501f\\u4ecb\\u75a5\\u8beb\\u5c4a\\u5048\\u8ba6\\u8bd8\\u5588\\u55df\\u736c\\u5a55\\u5b51\\u6840\\u7352\\u78a3\\u9534\\u7596\\u88b7\\u9889\\u86a7\\u7faf\\u9c92\\u9ab1\\u9aeb\", \"jin\": \"\\u5dfe\\u7b4b\\u65a4\\u91d1\\u4eca\\u6d25\\u895f\\u7d27\\u9526\\u4ec5\\u8c28\\u8fdb\\u9773\\u664b\\u7981\\u8fd1\\u70ec\\u6d78\\u5c3d\\u537a\\u8369\\u5807\\u5664\\u9991\\u5ed1\\u5997\\u7f19\\u747e\\u69ff\\u8d46\\u89d0\\u9485\\u9513\\u887f\\u77dc\", \"jing\": \"\\u52b2\\u8346\\u5162\\u830e\\u775b\\u6676\\u9cb8\\u4eac\\u60ca\\u7cbe\\u7cb3\\u7ecf\\u4e95\\u8b66\\u666f\\u9888\\u9759\\u5883\\u656c\\u955c\\u5f84\\u75c9\\u9756\\u7adf\\u7ade\\u51c0\\u522d\\u5106\\u9631\\u83c1\\u734d\\u61ac\\u6cfe\\u8ff3\\u5f2a\\u5a67\\u80bc\\u80eb\\u8148\\u65cc\", \"jiong\": \"\\u70af\\u7a98\\u5182\\u8fe5\\u6243\", \"jiu\": \"\\u63ea\\u7a76\\u7ea0\\u7396\\u97ed\\u4e45\\u7078\\u4e5d\\u9152\\u53a9\\u6551\\u65e7\\u81fc\\u8205\\u548e\\u5c31\\u759a\\u50e6\\u557e\\u9604\\u67e9\\u6855\\u9e6b\\u8d73\\u9b0f\", \"ju\": \"\\u97a0\\u62d8\\u72d9\\u75bd\\u9a79\\u83ca\\u5c40\\u5480\\u77e9\\u4e3e\\u6cae\\u805a\\u62d2\\u636e\\u5de8\\u5177\\u8ddd\\u8e1e\\u952f\\u4ff1\\u53e5\\u60e7\\u70ac\\u5267\\u5028\\u8bb5\\u82e3\\u82f4\\u8392\\u63ac\\u907d\\u5c66\\u741a\\u67b8\\u6910\\u6998\\u6989\\u6a58\\u728b\\u98d3\\u949c\\u9514\\u7aad\\u88fe\\u8d84\\u91b5\\u8e3d\\u9f83\\u96ce\\u97ab\", \"juan\": \"\\u6350\\u9e43\\u5a1f\\u5026\\u7737\\u5377\\u7ee2\\u9104\\u72f7\\u6d93\\u684a\\u8832\\u9529\\u954c\\u96bd\", \"jue\": \"\\u6485\\u652b\\u6289\\u6398\\u5014\\u7235\\u89c9\\u51b3\\u8bc0\\u7edd\\u53a5\\u5282\\u8c32\\u77cd\\u8568\\u5658\\u5d1b\\u7357\\u5b53\\u73cf\\u6877\\u6a5b\\u721d\\u9562\\u8e76\\u89d6\", \"jun\": \"\\u5747\\u83cc\\u94a7\\u519b\\u541b\\u5cfb\\u4fca\\u7ae3\\u6d5a\\u90e1\\u9a8f\\u6343\\u72fb\\u76b2\\u7b60\\u9e87\", \"ka\": \"\\u5580\\u5496\\u5361\\u4f67\\u5494\\u80e9\", \"ke\": \"\\u54af\\u5777\\u82db\\u67ef\\u68f5\\u78d5\\u9897\\u79d1\\u58f3\\u54b3\\u53ef\\u6e34\\u514b\\u523b\\u5ba2\\u8bfe\\u5ca2\\u606a\\u6e98\\u9a92\\u7f02\\u73c2\\u8f72\\u6c2a\\u778c\\u94b6\\u75b4\\u7aa0\\u874c\\u9ac1\", \"kai\": \"\\u5f00\\u63e9\\u6977\\u51ef\\u6168\\u5240\\u57b2\\u8488\\u5ffe\\u607a\\u94e0\\u950e\", \"kan\": \"\\u520a\\u582a\\u52d8\\u574e\\u780d\\u770b\\u4f83\\u51f5\\u83b0\\u83b6\\u6221\\u9f9b\\u77b0\", \"kang\": \"\\u5eb7\\u6177\\u7ce0\\u625b\\u6297\\u4ea2\\u7095\\u5751\\u4f09\\u95f6\\u94aa\", \"kao\": \"\\u8003\\u62f7\\u70e4\\u9760\\u5c3b\\u6832\\u7292\\u94d0\", \"ken\": \"\\u80af\\u5543\\u57a6\\u6073\\u57a0\\u88c9\\u9880\", \"keng\": \"\\u542d\\u5fd0\\u94ff\", \"kong\": \"\\u7a7a\\u6050\\u5b54\\u63a7\\u5025\\u5d06\\u7b9c\", \"kou\": \"\\u62a0\\u53e3\\u6263\\u5bc7\\u82a4\\u853b\\u53e9\\u770d\\u7b58\", \"ku\": \"\\u67af\\u54ed\\u7a9f\\u82e6\\u9177\\u5e93\\u88e4\\u5233\\u5800\\u55be\\u7ed4\\u9ab7\", \"kua\": \"\\u5938\\u57ae\\u630e\\u8de8\\u80ef\\u4f89\", \"kuai\": \"\\u5757\\u7b77\\u4fa9\\u5feb\\u84af\\u90d0\\u8489\\u72ef\\u810d\", \"kuan\": \"\\u5bbd\\u6b3e\\u9acb\", \"kuang\": \"\\u5321\\u7b50\\u72c2\\u6846\\u77ff\\u7736\\u65f7\\u51b5\\u8bd3\\u8bf3\\u909d\\u5739\\u593c\\u54d0\\u7ea9\\u8d36\", \"kui\": \"\\u4e8f\\u76d4\\u5cbf\\u7aa5\\u8475\\u594e\\u9b41\\u5080\\u9988\\u6127\\u6e83\\u9997\\u532e\\u5914\\u9697\\u63c6\\u55b9\\u559f\\u609d\\u6126\\u9615\\u9035\\u668c\\u777d\\u8069\\u8770\\u7bd1\\u81fe\\u8dec\", \"kun\": \"\\u5764\\u6606\\u6346\\u56f0\\u6083\\u9603\\u7428\\u951f\\u918c\\u9cb2\\u9ae1\", \"kuo\": \"\\u62ec\\u6269\\u5ed3\\u9614\\u86de\", \"la\": \"\\u5783\\u62c9\\u5587\\u8721\\u814a\\u8fa3\\u5566\\u524c\\u647a\\u908b\\u65ef\\u782c\\u760c\", \"lai\": \"\\u83b1\\u6765\\u8d56\\u5d03\\u5f95\\u6d9e\\u6fd1\\u8d49\\u7750\\u94fc\\u765e\\u7c41\", \"lan\": \"\\u84dd\\u5a6a\\u680f\\u62e6\\u7bee\\u9611\\u5170\\u6f9c\\u8c30\\u63fd\\u89c8\\u61d2\\u7f06\\u70c2\\u6ee5\\u5549\\u5c9a\\u61d4\\u6f24\\u6984\\u6593\\u7f71\\u9567\\u8934\", \"lang\": \"\\u7405\\u6994\\u72fc\\u5eca\\u90ce\\u6717\\u6d6a\\u83a8\\u8497\\u5577\\u9606\\u9512\\u7a02\\u8782\", \"lao\": \"\\u635e\\u52b3\\u7262\\u8001\\u4f6c\\u59e5\\u916a\\u70d9\\u6d9d\\u5520\\u5d02\\u6833\\u94d1\\u94f9\\u75e8\\u91aa\", \"le\": \"\\u52d2\\u4e50\\u808b\\u4ec2\\u53fb\\u561e\\u6cd0\\u9cd3\", \"lei\": \"\\u96f7\\u956d\\u857e\\u78ca\\u7d2f\\u5121\\u5792\\u64c2\\u7c7b\\u6cea\\u7fb8\\u8bd4\\u837d\\u54a7\\u6f2f\\u5ad8\\u7f27\\u6a91\\u8012\\u9179\", \"ling\": \"\\u68f1\\u51b7\\u62ce\\u73b2\\u83f1\\u96f6\\u9f84\\u94c3\\u4f36\\u7f9a\\u51cc\\u7075\\u9675\\u5cad\\u9886\\u53e6\\u4ee4\\u9143\\u5844\\u82d3\\u5464\\u56f9\\u6ce0\\u7eeb\\u67c3\\u68c2\\u74f4\\u8046\\u86c9\\u7fce\\u9cae\", \"leng\": \"\\u695e\\u6123\", \"li\": \"\\u5398\\u68a8\\u7281\\u9ece\\u7bf1\\u72f8\\u79bb\\u6f13\\u7406\\u674e\\u91cc\\u9ca4\\u793c\\u8389\\u8354\\u540f\\u6817\\u4e3d\\u5389\\u52b1\\u783e\\u5386\\u5229\\u5088\\u4f8b\\u4fd0\\u75e2\\u7acb\\u7c92\\u6ca5\\u96b6\\u529b\\u7483\\u54e9\\u4fea\\u4fda\\u90e6\\u575c\\u82c8\\u8385\\u84e0\\u85dc\\u6369\\u5456\\u5533\\u55b1\\u7301\\u6ea7\\u6fa7\\u9026\\u5a0c\\u5ae0\\u9a8a\\u7f21\\u73de\\u67a5\\u680e\\u8f79\\u623e\\u783a\\u8a48\\u7f79\\u9502\\u9e42\\u75a0\\u75ac\\u86ce\\u870a\\u8821\\u7b20\\u7be5\\u7c9d\\u91b4\\u8dde\\u96f3\\u9ca1\\u9ce2\\u9ee7\", \"lian\": \"\\u4fe9\\u8054\\u83b2\\u8fde\\u9570\\u5ec9\\u601c\\u6d9f\\u5e18\\u655b\\u8138\\u94fe\\u604b\\u70bc\\u7ec3\\u631b\\u8539\\u5941\\u6f4b\\u6fc2\\u5a08\\u740f\\u695d\\u6b93\\u81c1\\u81a6\\u88e2\\u880a\\u9ca2\", \"liang\": \"\\u7cae\\u51c9\\u6881\\u7cb1\\u826f\\u4e24\\u8f86\\u91cf\\u667e\\u4eae\\u8c05\\u589a\\u690b\\u8e09\\u9753\\u9b49\", \"liao\": \"\\u64a9\\u804a\\u50da\\u7597\\u71ce\\u5be5\\u8fbd\\u6f66\\u4e86\\u6482\\u9563\\u5ed6\\u6599\\u84fc\\u5c25\\u5639\\u7360\\u5bee\\u7f2d\\u948c\\u9e69\\u8022\", \"lie\": \"\\u5217\\u88c2\\u70c8\\u52a3\\u730e\\u51bd\\u57d2\\u6d0c\\u8d94\\u8e90\\u9b23\", \"lin\": \"\\u7433\\u6797\\u78f7\\u9716\\u4e34\\u90bb\\u9cde\\u6dcb\\u51db\\u8d41\\u541d\\u853a\\u5d99\\u5eea\\u9074\\u6aa9\\u8f9a\\u77b5\\u7cbc\\u8e8f\\u9e9f\", \"liu\": \"\\u6e9c\\u7409\\u69b4\\u786b\\u998f\\u7559\\u5218\\u7624\\u6d41\\u67f3\\u516d\\u62a1\\u507b\\u848c\\u6cd6\\u6d4f\\u905b\\u9a9d\\u7efa\\u65d2\\u7198\\u950d\\u954f\\u9e68\\u938f\", \"long\": \"\\u9f99\\u804b\\u5499\\u7b3c\\u7abf\\u9686\\u5784\\u62e2\\u9647\\u5f04\\u5785\\u830f\\u6cf7\\u73d1\\u680a\\u80e7\\u783b\\u7643\", \"lou\": \"\\u697c\\u5a04\\u6402\\u7bd3\\u6f0f\\u964b\\u55bd\\u5d5d\\u9542\\u7618\\u8027\\u877c\\u9ac5\", \"lu\": \"\\u82a6\\u5362\\u9885\\u5e90\\u7089\\u63b3\\u5364\\u864f\\u9c81\\u9e93\\u788c\\u9732\\u8def\\u8d42\\u9e7f\\u6f5e\\u7984\\u5f55\\u9646\\u622e\\u5786\\u6445\\u64b8\\u565c\\u6cf8\\u6e0c\\u6f09\\u7490\\u680c\\u6a79\\u8f73\\u8f82\\u8f98\\u6c07\\u80ea\\u9565\\u9e2c\\u9e6d\\u7c0f\\u823b\\u9c88\", \"lv\": \"\\u9a74\\u5415\\u94dd\\u4fa3\\u65c5\\u5c65\\u5c61\\u7f15\\u8651\\u6c2f\\u5f8b\\u7387\\u6ee4\\u7eff\\u634b\\u95fe\\u6988\\u8182\\u7a06\\u891b\", \"luan\": \"\\u5ce6\\u5b6a\\u6ee6\\u5375\\u4e71\\u683e\\u9e3e\\u92ae\", \"lue\": \"\\u63a0\\u7565\\u950a\", \"lun\": \"\\u8f6e\\u4f26\\u4ed1\\u6ca6\\u7eb6\\u8bba\\u56f5\", \"luo\": \"\\u841d\\u87ba\\u7f57\\u903b\\u9523\\u7ba9\\u9aa1\\u88f8\\u843d\\u6d1b\\u9a86\\u7edc\\u502e\\u8366\\u645e\\u7321\\u6cfa\\u6924\\u8136\\u9559\\u7630\\u96d2\", \"ma\": \"\\u5988\\u9ebb\\u739b\\u7801\\u8682\\u9a6c\\u9a82\\u561b\\u5417\\u551b\\u72b8\\u5b37\\u6769\\u9ebd\", \"mai\": \"\\u57cb\\u4e70\\u9ea6\\u5356\\u8fc8\\u8109\\u52a2\\u836c\\u54aa\\u973e\", \"man\": \"\\u7792\\u9992\\u86ee\\u6ee1\\u8513\\u66fc\\u6162\\u6f2b\\u8c29\\u5881\\u5e54\\u7f26\\u71b3\\u9558\\u989f\\u87a8\\u9cd7\\u9794\", \"mang\": \"\\u8292\\u832b\\u76f2\\u5fd9\\u83bd\\u9099\\u6f2d\\u6726\\u786d\\u87d2\", \"meng\": \"\\u6c13\\u840c\\u8499\\u6aac\\u76df\\u9530\\u731b\\u68a6\\u5b5f\\u52d0\\u750d\\u77a2\\u61f5\\u791e\\u867b\\u8722\\u8813\\u824b\\u8268\\u9efe\", \"miao\": \"\\u732b\\u82d7\\u63cf\\u7784\\u85d0\\u79d2\\u6e3a\\u5e99\\u5999\\u55b5\\u9088\\u7f08\\u7f2a\\u676a\\u6dfc\\u7707\\u9e4b\\u8731\", \"mao\": \"\\u8305\\u951a\\u6bdb\\u77db\\u94c6\\u536f\\u8302\\u5192\\u5e3d\\u8c8c\\u8d38\\u4f94\\u88a4\\u52d6\\u8306\\u5cc1\\u7441\\u6634\\u7266\\u8004\\u65c4\\u61cb\\u7780\\u86d1\\u8765\\u87ca\\u9ae6\", \"me\": \"\\u4e48\", \"mei\": \"\\u73ab\\u679a\\u6885\\u9176\\u9709\\u7164\\u6ca1\\u7709\\u5a92\\u9541\\u6bcf\\u7f8e\\u6627\\u5bd0\\u59b9\\u5a9a\\u5776\\u8393\\u5d4b\\u7338\\u6d7c\\u6e44\\u6963\\u9545\\u9e5b\\u8882\\u9b45\", \"men\": \"\\u95e8\\u95f7\\u4eec\\u626a\\u739f\\u7116\\u61d1\\u9494\", \"mi\": \"\\u772f\\u919a\\u9761\\u7cdc\\u8ff7\\u8c1c\\u5f25\\u7c73\\u79d8\\u89c5\\u6ccc\\u871c\\u5bc6\\u5e42\\u8288\\u5196\\u8c27\\u863c\\u5627\\u7315\\u736f\\u6c68\\u5b93\\u5f2d\\u8112\\u6549\\u7cf8\\u7e3b\\u9e8b\", \"mian\": \"\\u68c9\\u7720\\u7ef5\\u5195\\u514d\\u52c9\\u5a29\\u7f05\\u9762\\u6c94\\u6e4e\\u817c\\u7704\", \"mie\": \"\\u8511\\u706d\\u54a9\\u881b\\u7bfe\", \"min\": \"\\u6c11\\u62bf\\u76bf\\u654f\\u60af\\u95fd\\u82e0\\u5cb7\\u95f5\\u6cef\\u73c9\", \"ming\": \"\\u660e\\u879f\\u9e23\\u94ed\\u540d\\u547d\\u51a5\\u8317\\u6e9f\\u669d\\u7791\\u9169\", \"miu\": \"\\u8c2c\", \"mo\": \"\\u6478\\u6479\\u8611\\u6a21\\u819c\\u78e8\\u6469\\u9b54\\u62b9\\u672b\\u83ab\\u58a8\\u9ed8\\u6cab\\u6f20\\u5bde\\u964c\\u8c1f\\u8309\\u84e6\\u998d\\u5aeb\\u9546\\u79e3\\u763c\\u8031\\u87c6\\u8c8a\\u8c98\", \"mou\": \"\\u8c0b\\u725f\\u67d0\\u53b6\\u54de\\u5a7a\\u7738\\u936a\", \"mu\": \"\\u62c7\\u7261\\u4ea9\\u59c6\\u6bcd\\u5893\\u66ae\\u5e55\\u52df\\u6155\\u6728\\u76ee\\u7766\\u7267\\u7a46\\u4eeb\\u82dc\\u5452\\u6c90\\u6bea\\u94bc\", \"na\": \"\\u62ff\\u54ea\\u5450\\u94a0\\u90a3\\u5a1c\\u7eb3\\u5185\\u637a\\u80ad\\u954e\\u8872\\u7bac\", \"nai\": \"\\u6c16\\u4e43\\u5976\\u8010\\u5948\\u9f10\\u827f\\u8418\\u67f0\", \"nan\": \"\\u5357\\u7537\\u96be\\u56ca\\u5583\\u56e1\\u6960\\u8169\\u877b\\u8d67\", \"nao\": \"\\u6320\\u8111\\u607c\\u95f9\\u5b6c\\u57b4\\u7331\\u7459\\u7847\\u94d9\\u86f2\", \"ne\": \"\\u6dd6\\u5462\\u8bb7\", \"nei\": \"\\u9981\", \"nen\": \"\\u5ae9\\u80fd\\u6798\\u6041\", \"ni\": \"\\u59ae\\u9713\\u502a\\u6ce5\\u5c3c\\u62df\\u4f60\\u533f\\u817b\\u9006\\u6eba\\u4f32\\u576d\\u730a\\u6029\\u6ee0\\u6635\\u65ce\\u7962\\u615d\\u7768\\u94cc\\u9cb5\", \"nian\": \"\\u852b\\u62c8\\u5e74\\u78be\\u64b5\\u637b\\u5ff5\\u5eff\\u8f87\\u9ecf\\u9c87\\u9cb6\", \"niang\": \"\\u5a18\\u917f\", \"niao\": \"\\u9e1f\\u5c3f\\u8311\\u5b32\\u8132\\u8885\", \"nie\": \"\\u634f\\u8042\\u5b7d\\u556e\\u954a\\u954d\\u6d85\\u4e5c\\u9667\\u8616\\u55eb\\u8080\\u989e\\u81ec\\u8e51\", \"nin\": \"\\u60a8\\u67e0\", \"ning\": \"\\u72de\\u51dd\\u5b81\\u62e7\\u6cde\\u4f5e\\u84e5\\u549b\\u752f\\u804d\", \"niu\": \"\\u725b\\u626d\\u94ae\\u7ebd\\u72c3\\u5ff8\\u599e\\u86b4\", \"nong\": \"\\u8113\\u6d53\\u519c\\u4fac\", \"nu\": \"\\u5974\\u52aa\\u6012\\u5476\\u5e11\\u5f29\\u80ec\\u5b65\\u9a7d\", \"nv\": \"\\u5973\\u6067\\u9495\\u8844\", \"nuan\": \"\\u6696\", \"nuenue\": \"\\u8650\", \"nue\": \"\\u759f\\u8c11\", \"nuo\": \"\\u632a\\u61e6\\u7cef\\u8bfa\\u50a9\\u6426\\u558f\\u9518\", \"ou\": \"\\u54e6\\u6b27\\u9e25\\u6bb4\\u85d5\\u5455\\u5076\\u6ca4\\u6004\\u74ef\\u8026\", \"pa\": \"\\u556a\\u8db4\\u722c\\u5e15\\u6015\\u7436\\u8469\\u7b62\", \"pai\": \"\\u62cd\\u6392\\u724c\\u5f98\\u6e43\\u6d3e\\u4ff3\\u848e\", \"pan\": \"\\u6500\\u6f58\\u76d8\\u78d0\\u76fc\\u7554\\u5224\\u53db\\u723f\\u6cee\\u88a2\\u897b\\u87e0\\u8e52\", \"pang\": \"\\u4e53\\u5e9e\\u65c1\\u802a\\u80d6\\u6ec2\\u9004\", \"pao\": \"\\u629b\\u5486\\u5228\\u70ae\\u888d\\u8dd1\\u6ce1\\u530f\\u72cd\\u5e96\\u812c\\u75b1\", \"pei\": \"\\u5478\\u80da\\u57f9\\u88f4\\u8d54\\u966a\\u914d\\u4f69\\u6c9b\\u638a\\u8f94\\u5e14\\u6de0\\u65c6\\u952b\\u9185\\u9708\", \"pen\": \"\\u55b7\\u76c6\\u6e53\", \"peng\": \"\\u7830\\u62a8\\u70f9\\u6f8e\\u5f6d\\u84ec\\u68da\\u787c\\u7bf7\\u81a8\\u670b\\u9e4f\\u6367\\u78b0\\u576f\\u580b\\u562d\\u6026\\u87db\", \"pi\": \"\\u7812\\u9739\\u6279\\u62ab\\u5288\\u7435\\u6bd7\\u5564\\u813e\\u75b2\\u76ae\\u5339\\u75de\\u50fb\\u5c41\\u8b6c\\u4e15\\u9674\\u90b3\\u90eb\\u572e\\u9f19\\u64d7\\u567c\\u5e80\\u5ab2\\u7eb0\\u6787\\u7513\\u7765\\u7f74\\u94cd\\u75e6\\u7656\\u758b\\u868d\\u8c94\", \"pian\": \"\\u7bc7\\u504f\\u7247\\u9a97\\u8c1d\\u9a88\\u728f\\u80fc\\u890a\\u7fe9\\u8e41\", \"piao\": \"\\u98d8\\u6f02\\u74e2\\u7968\\u527d\\u560c\\u5ad6\\u7f25\\u6b8d\\u779f\\u87b5\", \"pie\": \"\\u6487\\u77a5\\u4e3f\\u82e4\\u6c15\", \"pin\": \"\\u62fc\\u9891\\u8d2b\\u54c1\\u8058\\u62da\\u59d8\\u5ad4\\u6980\\u725d\\u98a6\", \"ping\": \"\\u4e52\\u576a\\u82f9\\u840d\\u5e73\\u51ed\\u74f6\\u8bc4\\u5c4f\\u4fdc\\u5a09\\u67b0\\u9c86\", \"po\": \"\\u5761\\u6cfc\\u9887\\u5a46\\u7834\\u9b44\\u8feb\\u7c95\\u53f5\\u9131\\u6ea5\\u73c0\\u948b\\u94b7\\u76a4\\u7b38\", \"pou\": \"\\u5256\\u88d2\\u8e23\", \"pu\": \"\\u6251\\u94fa\\u4ec6\\u8386\\u8461\\u83e9\\u84b2\\u57d4\\u6734\\u5703\\u666e\\u6d66\\u8c31\\u66dd\\u7011\\u530d\\u5657\\u6fee\\u749e\\u6c06\\u9564\\u9568\\u8e7c\", \"qi\": \"\\u671f\\u6b3a\\u6816\\u621a\\u59bb\\u4e03\\u51c4\\u6f06\\u67d2\\u6c8f\\u5176\\u68cb\\u5947\\u6b67\\u7566\\u5d0e\\u8110\\u9f50\\u65d7\\u7948\\u7941\\u9a91\\u8d77\\u5c82\\u4e5e\\u4f01\\u542f\\u5951\\u780c\\u5668\\u6c14\\u8fc4\\u5f03\\u6c7d\\u6ce3\\u8bab\\u4e9f\\u4e93\\u573b\\u8291\\u840b\\u847a\\u5601\\u5c7a\\u5c90\\u6c54\\u6dc7\\u9a90\\u7eee\\u742a\\u7426\\u675e\\u6864\\u69ed\\u6b39\\u797a\\u61a9\\u789b\\u86f4\\u871e\\u7da6\\u7dae\\u8dbf\\u8e4a\\u9ccd\\u9e92\", \"qia\": \"\\u6390\\u6070\\u6d3d\\u845c\", \"qian\": \"\\u7275\\u6266\\u948e\\u94c5\\u5343\\u8fc1\\u7b7e\\u4edf\\u8c26\\u4e7e\\u9ed4\\u94b1\\u94b3\\u524d\\u6f5c\\u9063\\u6d45\\u8c34\\u5811\\u5d4c\\u6b20\\u6b49\\u4f65\\u9621\\u828a\\u82a1\\u8368\\u63ae\\u5c8d\\u60ad\\u614a\\u9a9e\\u6434\\u8930\\u7f31\\u6920\\u80b7\\u6106\\u94a4\\u8654\\u7b9d\", \"qiang\": \"\\u67aa\\u545b\\u8154\\u7f8c\\u5899\\u8537\\u5f3a\\u62a2\\u5af1\\u6a2f\\u6217\\u709d\\u9516\\u9535\\u956a\\u8941\\u8723\\u7f9f\\u8deb\\u8dc4\", \"qiao\": \"\\u6a47\\u9539\\u6572\\u6084\\u6865\\u77a7\\u4e54\\u4fa8\\u5de7\\u9798\\u64ac\\u7fd8\\u5ced\\u4fcf\\u7a8d\\u5281\\u8bee\\u8c2f\\u835e\\u6100\\u6194\\u7f32\\u6a35\\u6bf3\\u7857\\u8df7\\u9792\", \"qie\": \"\\u5207\\u8304\\u4e14\\u602f\\u7a83\\u90c4\\u553c\\u60ec\\u59be\\u6308\\u9532\\u7ba7\", \"qin\": \"\\u94a6\\u4fb5\\u4eb2\\u79e6\\u7434\\u52e4\\u82b9\\u64d2\\u79bd\\u5bdd\\u6c81\\u82a9\\u84c1\\u8572\\u63ff\\u5423\\u55ea\\u5659\\u6eb1\\u6a8e\\u8793\\u887e\", \"qing\": \"\\u9752\\u8f7b\\u6c22\\u503e\\u537f\\u6e05\\u64ce\\u6674\\u6c30\\u60c5\\u9877\\u8bf7\\u5e86\\u5029\\u82d8\\u570a\\u6aa0\\u78ec\\u873b\\u7f44\\u7b90\\u8b26\\u9cad\\u9ee5\", \"qiong\": \"\\u743c\\u7a77\\u909b\\u8315\\u7a79\\u7b47\\u928e\", \"qiu\": \"\\u79cb\\u4e18\\u90b1\\u7403\\u6c42\\u56da\\u914b\\u6cc5\\u4fc5\\u6c3d\\u5def\\u827d\\u72b0\\u6e6b\\u9011\\u9052\\u6978\\u8d47\\u9e20\\u866c\\u86af\\u8764\\u88d8\\u7cd7\\u9cc5\\u9f3d\", \"qu\": \"\\u8d8b\\u533a\\u86c6\\u66f2\\u8eaf\\u5c48\\u9a71\\u6e20\\u53d6\\u5a36\\u9f8b\\u8da3\\u53bb\\u8bce\\u52ac\\u8556\\u8627\\u5c96\\u8862\\u9612\\u74a9\\u89d1\\u6c0d\\u795b\\u78f2\\u766f\\u86d0\\u883c\\u9eb4\\u77bf\\u9ee2\", \"quan\": \"\\u5708\\u98a7\\u6743\\u919b\\u6cc9\\u5168\\u75ca\\u62f3\\u72ac\\u5238\\u529d\\u8be0\\u8343\\u737e\\u609b\\u7efb\\u8f81\\u754e\\u94e8\\u8737\\u7b4c\\u9b08\", \"que\": \"\\u7f3a\\u7094\\u7638\\u5374\\u9e4a\\u69b7\\u786e\\u96c0\\u9619\\u60ab\", \"qun\": \"\\u88d9\\u7fa4\\u9021\", \"ran\": \"\\u7136\\u71c3\\u5189\\u67d3\\u82d2\\u9aef\", \"rang\": \"\\u74e4\\u58e4\\u6518\\u56b7\\u8ba9\\u79b3\\u7a70\", \"rao\": \"\\u9976\\u6270\\u7ed5\\u835b\\u5a06\\u6861\", \"ruo\": \"\\u60f9\\u82e5\\u5f31\", \"re\": \"\\u70ed\\u504c\", \"ren\": \"\\u58ec\\u4ec1\\u4eba\\u5fcd\\u97e7\\u4efb\\u8ba4\\u5203\\u598a\\u7eab\\u4ede\\u834f\\u845a\\u996a\\u8f6b\\u7a14\\u887d\", \"reng\": \"\\u6254\\u4ecd\", \"ri\": \"\\u65e5\", \"rong\": \"\\u620e\\u8338\\u84c9\\u8363\\u878d\\u7194\\u6eb6\\u5bb9\\u7ed2\\u5197\\u5d58\\u72e8\\u7f1b\\u6995\\u877e\", \"rou\": \"\\u63c9\\u67d4\\u8089\\u7cc5\\u8e42\\u97a3\", \"ru\": \"\\u8339\\u8815\\u5112\\u5b7a\\u5982\\u8fb1\\u4e73\\u6c5d\\u5165\\u8925\\u84d0\\u85b7\\u5685\\u6d33\\u6ebd\\u6fe1\\u94f7\\u8966\\u98a5\", \"ruan\": \"\\u8f6f\\u962e\\u670a\", \"rui\": \"\\u854a\\u745e\\u9510\\u82ae\\u8564\\u777f\\u868b\", \"run\": \"\\u95f0\\u6da6\", \"sa\": \"\\u6492\\u6d12\\u8428\\u5345\\u4ee8\\u6332\\u98d2\", \"sai\": \"\\u816e\\u9cc3\\u585e\\u8d5b\\u567b\", \"san\": \"\\u4e09\\u53c1\\u4f1e\\u6563\\u5f61\\u9993\\u6c35\\u6bf5\\u7cc1\\u9730\", \"sang\": \"\\u6851\\u55d3\\u4e27\\u6421\\u78c9\\u98a1\", \"sao\": \"\\u6414\\u9a9a\\u626b\\u5ac2\\u57fd\\u81ca\\u7619\\u9ccb\", \"se\": \"\\u745f\\u8272\\u6da9\\u556c\\u94e9\\u94ef\\u7a51\", \"sen\": \"\\u68ee\", \"seng\": \"\\u50e7\", \"sha\": \"\\u838e\\u7802\\u6740\\u5239\\u6c99\\u7eb1\\u50bb\\u5565\\u715e\\u810e\\u6b43\\u75e7\\u88df\\u970e\\u9ca8\", \"shai\": \"\\u7b5b\\u6652\\u917e\", \"shan\": \"\\u73ca\\u82eb\\u6749\\u5c71\\u5220\\u717d\\u886b\\u95ea\\u9655\\u64c5\\u8d61\\u81b3\\u5584\\u6c55\\u6247\\u7f2e\\u5261\\u8baa\\u912f\\u57cf\\u829f\\u6f78\\u59d7\\u9a9f\\u81bb\\u9490\\u759d\\u87ee\\u8222\\u8dda\\u9cdd\", \"shang\": \"\\u5892\\u4f24\\u5546\\u8d4f\\u664c\\u4e0a\\u5c1a\\u88f3\\u57a7\\u7ef1\\u6b87\\u71b5\\u89de\", \"shao\": \"\\u68a2\\u634e\\u7a0d\\u70e7\\u828d\\u52fa\\u97f6\\u5c11\\u54e8\\u90b5\\u7ecd\\u52ad\\u82d5\\u6f72\\u86f8\\u7b24\\u7b72\\u8244\", \"she\": \"\\u5962\\u8d4a\\u86c7\\u820c\\u820d\\u8d66\\u6444\\u5c04\\u6151\\u6d89\\u793e\\u8bbe\\u538d\\u4f58\\u731e\\u7572\\u9e9d\", \"shen\": \"\\u7837\\u7533\\u547b\\u4f38\\u8eab\\u6df1\\u5a20\\u7ec5\\u795e\\u6c88\\u5ba1\\u5a76\\u751a\\u80be\\u614e\\u6e17\\u8bdc\\u8c02\\u5432\\u54c2\\u6e16\\u6939\\u77e7\\u8703\", \"sheng\": \"\\u58f0\\u751f\\u7525\\u7272\\u5347\\u7ef3\\u7701\\u76db\\u5269\\u80dc\\u5723\\u4e1e\\u6e11\\u5ab5\\u771a\\u7b19\", \"shi\": \"\\u5e08\\u5931\\u72ee\\u65bd\\u6e7f\\u8bd7\\u5c38\\u8671\\u5341\\u77f3\\u62fe\\u65f6\\u4ec0\\u98df\\u8680\\u5b9e\\u8bc6\\u53f2\\u77e2\\u4f7f\\u5c4e\\u9a76\\u59cb\\u5f0f\\u793a\\u58eb\\u4e16\\u67ff\\u4e8b\\u62ed\\u8a93\\u901d\\u52bf\\u662f\\u55dc\\u566c\\u9002\\u4ed5\\u4f8d\\u91ca\\u9970\\u6c0f\\u5e02\\u6043\\u5ba4\\u89c6\\u8bd5\\u8c25\\u57d8\\u83b3\\u84cd\\u5f11\\u5511\\u9963\\u8f7c\\u8006\\u8d33\\u70bb\\u793b\\u94c8\\u94ca\\u87ab\\u8210\\u7b6e\\u8c55\\u9ca5\\u9cba\", \"shou\": \"\\u6536\\u624b\\u9996\\u5b88\\u5bff\\u6388\\u552e\\u53d7\\u7626\\u517d\\u624c\\u72e9\\u7ef6\\u824f\", \"shu\": \"\\u852c\\u67a2\\u68b3\\u6b8a\\u6292\\u8f93\\u53d4\\u8212\\u6dd1\\u758f\\u4e66\\u8d4e\\u5b70\\u719f\\u85af\\u6691\\u66d9\\u7f72\\u8700\\u9ecd\\u9f20\\u5c5e\\u672f\\u8ff0\\u6811\\u675f\\u620d\\u7ad6\\u5885\\u5eb6\\u6570\\u6f31\\u6055\\u500f\\u587e\\u83fd\\u5fc4\\u6cad\\u6d91\\u6f8d\\u59dd\\u7ebe\\u6bf9\\u8167\\u6bb3\\u956f\\u79eb\\u9e6c\", \"shua\": \"\\u5237\\u800d\\u5530\\u6dae\", \"shuai\": \"\\u6454\\u8870\\u7529\\u5e05\\u87c0\", \"shuan\": \"\\u6813\\u62f4\\u95e9\", \"shuang\": \"\\u971c\\u53cc\\u723d\\u5b40\", \"shui\": \"\\u8c01\\u6c34\\u7761\\u7a0e\", \"shun\": \"\\u542e\\u77ac\\u987a\\u821c\\u6042\", \"shuo\": \"\\u8bf4\\u7855\\u6714\\u70c1\\u84b4\\u6420\\u55cd\\u6fef\\u5981\\u69ca\\u94c4\", \"si\": \"\\u65af\\u6495\\u5636\\u601d\\u79c1\\u53f8\\u4e1d\\u6b7b\\u8086\\u5bfa\\u55e3\\u56db\\u4f3a\\u4f3c\\u9972\\u5df3\\u53ae\\u4fdf\\u5155\\u83e5\\u549d\\u6c5c\\u6cd7\\u6f8c\\u59d2\\u9a77\\u7f0c\\u7940\\u7960\\u9536\\u9e36\\u801c\\u86f3\\u7b25\", \"song\": \"\\u677e\\u8038\\u6002\\u9882\\u9001\\u5b8b\\u8bbc\\u8bf5\\u51c7\\u83d8\\u5d27\\u5d69\\u5fea\\u609a\\u6dde\\u7ae6\", \"sou\": \"\\u641c\\u8258\\u64de\\u55fd\\u53df\\u55d6\\u55fe\\u998a\\u6eb2\\u98d5\\u778d\\u953c\\u878b\", \"su\": \"\\u82cf\\u9165\\u4fd7\\u7d20\\u901f\\u7c9f\\u50f3\\u5851\\u6eaf\\u5bbf\\u8bc9\\u8083\\u5919\\u8c21\\u850c\\u55c9\\u612b\\u7c0c\\u89eb\\u7a23\", \"suan\": \"\\u9178\\u849c\\u7b97\", \"sui\": \"\\u867d\\u968b\\u968f\\u7ee5\\u9ad3\\u788e\\u5c81\\u7a57\\u9042\\u96a7\\u795f\\u84d1\\u51ab\\u8c07\\u6fc9\\u9083\\u71e7\\u772d\\u7762\", \"sun\": \"\\u5b59\\u635f\\u7b0b\\u836a\\u72f2\\u98e7\\u69ab\\u8de3\\u96bc\", \"suo\": \"\\u68ad\\u5506\\u7f29\\u7410\\u7d22\\u9501\\u6240\\u5522\\u55e6\\u5a11\\u686b\\u7743\\u7fa7\", \"ta\": \"\\u584c\\u4ed6\\u5b83\\u5979\\u5854\\u736d\\u631e\\u8e4b\\u8e0f\\u95fc\\u6ebb\\u9062\\u69bb\\u6c93\", \"tai\": \"\\u80ce\\u82d4\\u62ac\\u53f0\\u6cf0\\u915e\\u592a\\u6001\\u6c70\\u90b0\\u85b9\\u80bd\\u70b1\\u949b\\u8dc6\\u9c90\", \"tan\": \"\\u574d\\u644a\\u8d2a\\u762b\\u6ee9\\u575b\\u6a80\\u75f0\\u6f6d\\u8c2d\\u8c08\\u5766\\u6bef\\u8892\\u78b3\\u63a2\\u53f9\\u70ad\\u90ef\\u8548\\u6619\\u94bd\\u952c\\u8983\", \"tang\": \"\\u6c64\\u5858\\u642a\\u5802\\u68e0\\u819b\\u5510\\u7cd6\\u50a5\\u9967\\u6e8f\\u746d\\u94f4\\u9557\\u8025\\u8797\\u87b3\\u7fb0\\u91a3\", \"thang\": \"\\u5018\\u8eba\\u6dcc\", \"theng\": \"\\u8d9f\\u70eb\", \"tao\": \"\\u638f\\u6d9b\\u6ed4\\u7ee6\\u8404\\u6843\\u9003\\u6dd8\\u9676\\u8ba8\\u5957\\u6311\\u9f17\\u5555\\u97ec\\u9955\", \"te\": \"\\u7279\", \"teng\": \"\\u85e4\\u817e\\u75bc\\u8a8a\\u6ed5\", \"ti\": \"\\u68af\\u5254\\u8e22\\u9511\\u63d0\\u9898\\u8e44\\u557c\\u4f53\\u66ff\\u568f\\u60d5\\u6d95\\u5243\\u5c49\\u8351\\u608c\\u9016\\u7ee8\\u7f07\\u9e48\\u88fc\\u918d\", \"tian\": \"\\u5929\\u6dfb\\u586b\\u7530\\u751c\\u606c\\u8214\\u8146\\u63ad\\u5fdd\\u9617\\u6b84\\u754b\\u94bf\\u86ba\", \"tiao\": \"\\u6761\\u8fe2\\u773a\\u8df3\\u4f7b\\u7967\\u94eb\\u7a95\\u9f86\\u9ca6\", \"tie\": \"\\u8d34\\u94c1\\u5e16\\u841c\\u992e\", \"ting\": \"\\u5385\\u542c\\u70c3\\u6c40\\u5ef7\\u505c\\u4ead\\u5ead\\u633a\\u8247\\u839b\\u8476\\u5a77\\u6883\\u8713\\u9706\", \"tong\": \"\\u901a\\u6850\\u916e\\u77b3\\u540c\\u94dc\\u5f64\\u7ae5\\u6876\\u6345\\u7b52\\u7edf\\u75db\\u4f5f\\u50ee\\u4edd\\u833c\\u55f5\\u6078\\u6f7c\\u783c\", \"tou\": \"\\u5077\\u6295\\u5934\\u900f\\u4ea0\", \"tu\": \"\\u51f8\\u79c3\\u7a81\\u56fe\\u5f92\\u9014\\u6d82\\u5c60\\u571f\\u5410\\u5154\\u580d\\u837c\\u83df\\u948d\\u9174\", \"tuan\": \"\\u6e4d\\u56e2\\u7583\", \"tui\": \"\\u63a8\\u9893\\u817f\\u8715\\u892a\\u9000\\u5fd2\\u717a\", \"tun\": \"\\u541e\\u5c6f\\u81c0\\u9968\\u66be\\u8c5a\\u7a80\", \"tuo\": \"\\u62d6\\u6258\\u8131\\u9e35\\u9640\\u9a6e\\u9a7c\\u692d\\u59a5\\u62d3\\u553e\\u4e47\\u4f57\\u5768\\u5eb9\\u6cb1\\u67dd\\u7823\\u7ba8\\u8204\\u8dce\\u9f0d\", \"wa\": \"\\u6316\\u54c7\\u86d9\\u6d3c\\u5a03\\u74e6\\u889c\\u4f64\\u5a32\\u817d\", \"wai\": \"\\u6b6a\\u5916\", \"wan\": \"\\u8c4c\\u5f2f\\u6e7e\\u73a9\\u987d\\u4e38\\u70f7\\u5b8c\\u7897\\u633d\\u665a\\u7696\\u60cb\\u5b9b\\u5a49\\u4e07\\u8155\\u525c\\u8284\\u82cb\\u83c0\\u7ea8\\u7efe\\u742c\\u8118\\u7579\\u873f\\u7ba2\", \"wang\": \"\\u6c6a\\u738b\\u4ea1\\u6789\\u7f51\\u5f80\\u65fa\\u671b\\u5fd8\\u5984\\u7f54\\u5c22\\u60d8\\u8f8b\\u9b4d\", \"wei\": \"\\u5a01\\u5dcd\\u5fae\\u5371\\u97e6\\u8fdd\\u6845\\u56f4\\u552f\\u60df\\u4e3a\\u6f4d\\u7ef4\\u82c7\\u840e\\u59d4\\u4f1f\\u4f2a\\u5c3e\\u7eac\\u672a\\u851a\\u5473\\u754f\\u80c3\\u5582\\u9b4f\\u4f4d\\u6e2d\\u8c13\\u5c09\\u6170\\u536b\\u502d\\u504e\\u8bff\\u9688\\u8473\\u8587\\u5e0f\\u5e37\\u5d34\\u5d6c\\u7325\\u732c\\u95f1\\u6ca9\\u6d27\\u6da0\\u9036\\u5a13\\u73ae\\u97ea\\u8ece\\u709c\\u7168\\u71a8\\u75ff\\u8249\\u9c94\", \"wen\": \"\\u761f\\u6e29\\u868a\\u6587\\u95fb\\u7eb9\\u543b\\u7a33\\u7d0a\\u95ee\\u520e\\u6120\\u960c\\u6c76\\u74ba\\u97eb\\u6b81\\u96ef\", \"weng\": \"\\u55e1\\u7fc1\\u74ee\\u84ca\\u8579\", \"wo\": \"\\u631d\\u8717\\u6da1\\u7a9d\\u6211\\u65a1\\u5367\\u63e1\\u6c83\\u83b4\\u5e44\\u6e25\\u674c\\u809f\\u9f8c\", \"wu\": \"\\u5deb\\u545c\\u94a8\\u4e4c\\u6c61\\u8bec\\u5c4b\\u65e0\\u829c\\u68a7\\u543e\\u5434\\u6bcb\\u6b66\\u4e94\\u6342\\u5348\\u821e\\u4f0d\\u4fae\\u575e\\u620a\\u96fe\\u6664\\u7269\\u52ff\\u52a1\\u609f\\u8bef\\u5140\\u4ef5\\u9622\\u90ac\\u572c\\u82b4\\u5e91\\u6003\\u5fe4\\u6d6f\\u5be4\\u8fd5\\u59a9\\u9a9b\\u727e\\u7110\\u9e49\\u9e5c\\u8708\\u92c8\\u9f2f\", \"xi\": \"\\u6614\\u7199\\u6790\\u897f\\u7852\\u77fd\\u6670\\u563b\\u5438\\u9521\\u727a\\u7a00\\u606f\\u5e0c\\u6089\\u819d\\u5915\\u60dc\\u7184\\u70ef\\u6eaa\\u6c50\\u7280\\u6a84\\u88ad\\u5e2d\\u4e60\\u5ab3\\u559c\\u94e3\\u6d17\\u7cfb\\u9699\\u620f\\u7ec6\\u50d6\\u516e\\u96b0\\u90d7\\u831c\\u8478\\u84f0\\u595a\\u550f\\u5f99\\u9969\\u960b\\u6d60\\u6dc5\\u5c63\\u5b09\\u73ba\\u6a28\\u66e6\\u89cb\\u6b37\\u71b9\\u798a\\u79a7\\u94b8\\u7699\\u7a78\\u8725\\u87cb\\u823e\\u7fb2\\u7c9e\\u7fd5\\u91af\\u9f37\", \"xia\": \"\\u778e\\u867e\\u5323\\u971e\\u8f96\\u6687\\u5ce1\\u4fa0\\u72ed\\u4e0b\\u53a6\\u590f\\u5413\\u6380\\u846d\\u55c4\\u72ce\\u9050\\u7455\\u7856\\u7615\\u7f45\\u9ee0\", \"xian\": \"\\u9528\\u5148\\u4ed9\\u9c9c\\u7ea4\\u54b8\\u8d24\\u8854\\u8237\\u95f2\\u6d8e\\u5f26\\u5acc\\u663e\\u9669\\u73b0\\u732e\\u53bf\\u817a\\u9985\\u7fa1\\u5baa\\u9677\\u9650\\u7ebf\\u51bc\\u85d3\\u5c98\\u7303\\u66b9\\u5a34\\u6c19\\u7946\\u9e47\\u75eb\\u86ac\\u7b45\\u7c7c\\u9170\\u8df9\", \"xiang\": \"\\u76f8\\u53a2\\u9576\\u9999\\u7bb1\\u8944\\u6e58\\u4e61\\u7fd4\\u7965\\u8be6\\u60f3\\u54cd\\u4eab\\u9879\\u5df7\\u6a61\\u50cf\\u5411\\u8c61\\u8297\\u8459\\u9977\\u5ea0\\u9aa7\\u7f03\\u87d3\\u9c9e\\u98e8\", \"xiao\": \"\\u8427\\u785d\\u9704\\u524a\\u54ee\\u56a3\\u9500\\u6d88\\u5bb5\\u6dc6\\u6653\\u5c0f\\u5b5d\\u6821\\u8096\\u5578\\u7b11\\u6548\\u54d3\\u54bb\\u5d24\\u6f47\\u900d\\u9a81\\u7ee1\\u67ad\\u67b5\\u7b71\\u7bab\\u9b48\", \"xie\": \"\\u6954\\u4e9b\\u6b47\\u874e\\u978b\\u534f\\u631f\\u643a\\u90aa\\u659c\\u80c1\\u8c10\\u5199\\u68b0\\u5378\\u87f9\\u61c8\\u6cc4\\u6cfb\\u8c22\\u5c51\\u5055\\u4eb5\\u52f0\\u71ee\\u85a4\\u64b7\\u5ee8\\u7023\\u9082\\u7ec1\\u7f2c\\u69ad\\u698d\\u6b59\\u8e9e\", \"xin\": \"\\u85aa\\u82af\\u950c\\u6b23\\u8f9b\\u65b0\\u5ffb\\u5fc3\\u4fe1\\u8845\\u56df\\u99a8\\u8398\\u6b46\\u94fd\\u946b\", \"xing\": \"\\u661f\\u8165\\u7329\\u60fa\\u5174\\u5211\\u578b\\u5f62\\u90a2\\u884c\\u9192\\u5e78\\u674f\\u6027\\u59d3\\u9649\\u8347\\u8365\\u64e4\\u60bb\\u784e\", \"xiong\": \"\\u5144\\u51f6\\u80f8\\u5308\\u6c79\\u96c4\\u718a\\u828e\", \"xiu\": \"\\u4f11\\u4fee\\u7f9e\\u673d\\u55c5\\u9508\\u79c0\\u8896\\u7ee3\\u83a0\\u5cab\\u9990\\u5ea5\\u9e3a\\u8c85\\u9af9\", \"xu\": \"\\u589f\\u620c\\u9700\\u865a\\u5618\\u987b\\u5f90\\u8bb8\\u84c4\\u9157\\u53d9\\u65ed\\u5e8f\\u755c\\u6064\\u7d6e\\u5a7f\\u7eea\\u7eed\\u8bb4\\u8be9\\u5729\\u84ff\\u6035\\u6d2b\\u6e86\\u987c\\u6829\\u7166\\u7809\\u76f1\\u80e5\\u7cc8\\u9191\", \"xuan\": \"\\u8f69\\u55a7\\u5ba3\\u60ac\\u65cb\\u7384\\u9009\\u7663\\u7729\\u7eda\\u5107\\u8c16\\u8431\\u63ce\\u9994\\u6ceb\\u6d35\\u6e32\\u6f29\\u7487\\u6966\\u6684\\u70ab\\u714a\\u78b9\\u94c9\\u955f\\u75c3\", \"xue\": \"\\u9774\\u859b\\u5b66\\u7a74\\u96ea\\u8840\\u5671\\u6cf6\\u9cd5\", \"xun\": \"\\u52cb\\u718f\\u5faa\\u65ec\\u8be2\\u5bfb\\u9a6f\\u5de1\\u6b89\\u6c5b\\u8bad\\u8baf\\u900a\\u8fc5\\u5dfd\\u57d9\\u8340\\u85b0\\u5ccb\\u5f87\\u6d54\\u66db\\u7aa8\\u91ba\\u9c9f\", \"ya\": \"\\u538b\\u62bc\\u9e26\\u9e2d\\u5440\\u4e2b\\u82bd\\u7259\\u869c\\u5d16\\u8859\\u6daf\\u96c5\\u54d1\\u4e9a\\u8bb6\\u4f22\\u63e0\\u5416\\u5c88\\u8fd3\\u5a05\\u740a\\u6860\\u6c29\\u7811\\u775a\\u75d6\", \"yan\": \"\\u7109\\u54bd\\u9609\\u70df\\u6df9\\u76d0\\u4e25\\u7814\\u8712\\u5ca9\\u5ef6\\u8a00\\u989c\\u960e\\u708e\\u6cbf\\u5944\\u63a9\\u773c\\u884d\\u6f14\\u8273\\u5830\\u71d5\\u538c\\u781a\\u96c1\\u5501\\u5f66\\u7130\\u5bb4\\u8c1a\\u9a8c\\u53a3\\u9765\\u8d5d\\u4fe8\\u5043\\u5156\\u8ba0\\u8c33\\u90fe\\u9122\\u82ab\\u83f8\\u5d26\\u6079\\u95eb\\u960f\\u6d07\\u6e6e\\u6edf\\u598d\\u5ae3\\u7430\\u664f\\u80ed\\u814c\\u7131\\u7f68\\u7b75\\u917d\\u9b47\\u990d\\u9f39\", \"yang\": \"\\u6b83\\u592e\\u9e2f\\u79e7\\u6768\\u626c\\u4f6f\\u75a1\\u7f8a\\u6d0b\\u9633\\u6c27\\u4ef0\\u75d2\\u517b\\u6837\\u6f3e\\u5f89\\u600f\\u6cf1\\u7080\\u70ca\\u6059\\u86d8\\u9785\", \"yao\": \"\\u9080\\u8170\\u5996\\u7476\\u6447\\u5c27\\u9065\\u7a91\\u8c23\\u59da\\u54ac\\u8200\\u836f\\u8981\\u8000\\u592d\\u723b\\u5406\\u5d3e\\u5fad\\u7039\\u5e7a\\u73e7\\u6773\\u66dc\\u80b4\\u9e5e\\u7a88\\u7e47\\u9cd0\", \"ye\": \"\\u6930\\u564e\\u8036\\u7237\\u91ce\\u51b6\\u4e5f\\u9875\\u6396\\u4e1a\\u53f6\\u66f3\\u814b\\u591c\\u6db2\\u8c12\\u90ba\\u63f6\\u9980\\u6654\\u70e8\\u94d8\", \"yi\": \"\\u4e00\\u58f9\\u533b\\u63d6\\u94f1\\u4f9d\\u4f0a\\u8863\\u9890\\u5937\\u9057\\u79fb\\u4eea\\u80f0\\u7591\\u6c82\\u5b9c\\u59e8\\u5f5d\\u6905\\u8681\\u501a\\u5df2\\u4e59\\u77e3\\u4ee5\\u827a\\u6291\\u6613\\u9091\\u5c79\\u4ebf\\u5f79\\u81c6\\u9038\\u8084\\u75ab\\u4ea6\\u88d4\\u610f\\u6bc5\\u5fc6\\u4e49\\u76ca\\u6ea2\\u8be3\\u8bae\\u8c0a\\u8bd1\\u5f02\\u7ffc\\u7fcc\\u7ece\\u5208\\u5293\\u4f7e\\u8bd2\\u572a\\u572f\\u57f8\\u61ff\\u82e1\\u858f\\u5f08\\u5955\\u6339\\u5f0b\\u5453\\u54a6\\u54bf\\u566b\\u5cc4\\u5db7\\u7317\\u9974\\u603f\\u6021\\u6092\\u6f2a\\u8fe4\\u9a7f\\u7f22\\u6baa\\u8d3b\\u65d6\\u71a0\\u9487\\u9552\\u9571\\u75cd\\u7617\\u7654\\u7fca\\u8864\\u8734\\u8223\\u7fbf\\u7ff3\\u914f\\u9edf\", \"yin\": \"\\u8335\\u836b\\u56e0\\u6bb7\\u97f3\\u9634\\u59fb\\u541f\\u94f6\\u6deb\\u5bc5\\u996e\\u5c39\\u5f15\\u9690\\u5370\\u80e4\\u911e\\u5819\\u831a\\u5591\\u72fa\\u5924\\u6c24\\u94df\\u763e\\u8693\\u972a\\u9f88\", \"ying\": \"\\u82f1\\u6a31\\u5a74\\u9e70\\u5e94\\u7f28\\u83b9\\u8424\\u8425\\u8367\\u8747\\u8fce\\u8d62\\u76c8\\u5f71\\u9896\\u786c\\u6620\\u5b34\\u90e2\\u8314\\u83ba\\u8426\\u6484\\u5624\\u81ba\\u6ee2\\u6f46\\u701b\\u745b\\u748e\\u6979\\u9e66\\u763f\\u988d\\u7f42\", \"yo\": \"\\u54df\\u5537\", \"yong\": \"\\u62e5\\u4f63\\u81c3\\u75c8\\u5eb8\\u96cd\\u8e0a\\u86f9\\u548f\\u6cf3\\u6d8c\\u6c38\\u607f\\u52c7\\u7528\\u4fd1\\u58c5\\u5889\\u6175\\u9095\\u955b\\u752c\\u9cd9\\u9954\", \"you\": \"\\u5e7d\\u4f18\\u60a0\\u5fe7\\u5c24\\u7531\\u90ae\\u94c0\\u72b9\\u6cb9\\u6e38\\u9149\\u6709\\u53cb\\u53f3\\u4f51\\u91c9\\u8bf1\\u53c8\\u5e7c\\u5363\\u6538\\u4f91\\u83b8\\u5466\\u56ff\\u5ba5\\u67da\\u7337\\u7256\\u94d5\\u75a3\\u8763\\u9c7f\\u9edd\\u9f2c\", \"yu\": \"\\u8fc2\\u6de4\\u4e8e\\u76c2\\u6986\\u865e\\u611a\\u8206\\u4f59\\u4fde\\u903e\\u9c7c\\u6109\\u6e1d\\u6e14\\u9685\\u4e88\\u5a31\\u96e8\\u4e0e\\u5c7f\\u79b9\\u5b87\\u8bed\\u7fbd\\u7389\\u57df\\u828b\\u90c1\\u5401\\u9047\\u55bb\\u5cea\\u5fa1\\u6108\\u6b32\\u72f1\\u80b2\\u8a89\\u6d74\\u5bd3\\u88d5\\u9884\\u8c6b\\u9a6d\\u79ba\\u6bd3\\u4f1b\\u4fe3\\u8c00\\u8c15\\u8438\\u84e3\\u63c4\\u5581\\u5704\\u5709\\u5d5b\\u72f3\\u996b\\u5ebe\\u9608\\u59aa\\u59a4\\u7ea1\\u745c\\u6631\\u89ce\\u8174\\u6b24\\u65bc\\u715c\\u71e0\\u807f\\u94b0\\u9e46\\u7610\\u7600\\u7ab3\\u8753\\u7afd\\u8201\\u96e9\\u9f89\", \"yuan\": \"\\u9e33\\u6e0a\\u51a4\\u5143\\u57a3\\u8881\\u539f\\u63f4\\u8f95\\u56ed\\u5458\\u5706\\u733f\\u6e90\\u7f18\\u8fdc\\u82d1\\u613f\\u6028\\u9662\\u586c\\u6c85\\u5a9b\\u7457\\u6a7c\\u7230\\u7722\\u9e22\\u8788\\u9f0b\", \"yue\": \"\\u66f0\\u7ea6\\u8d8a\\u8dc3\\u94a5\\u5cb3\\u7ca4\\u6708\\u60a6\\u9605\\u9fa0\\u6a3e\\u5216\\u94ba\", \"yun\": \"\\u8018\\u4e91\\u90e7\\u5300\\u9668\\u5141\\u8fd0\\u8574\\u915d\\u6655\\u97f5\\u5b55\\u90d3\\u82b8\\u72c1\\u607d\\u7ead\\u6b92\\u6600\\u6c32\", \"za\": \"\\u531d\\u7838\\u6742\\u62f6\\u5482\", \"zai\": \"\\u683d\\u54c9\\u707e\\u5bb0\\u8f7d\\u518d\\u5728\\u54b1\\u5d3d\\u753e\", \"zan\": \"\\u6512\\u6682\\u8d5e\\u74d2\\u661d\\u7c2a\\u7ccc\\u8db1\\u933e\", \"zang\": \"\\u8d43\\u810f\\u846c\\u5958\\u6215\\u81e7\", \"zao\": \"\\u906d\\u7cdf\\u51ff\\u85fb\\u67a3\\u65e9\\u6fa1\\u86a4\\u8e81\\u566a\\u9020\\u7682\\u7076\\u71e5\\u5523\\u7f2b\", \"ze\": \"\\u8d23\\u62e9\\u5219\\u6cfd\\u4ec4\\u8d5c\\u5567\\u8fee\\u6603\\u7b2e\\u7ba6\\u8234\", \"zei\": \"\\u8d3c\", \"zen\": \"\\u600e\\u8c2e\", \"zeng\": \"\\u589e\\u618e\\u66fe\\u8d60\\u7f2f\\u7511\\u7f7e\\u9503\", \"zha\": \"\\u624e\\u55b3\\u6e23\\u672d\\u8f67\\u94e1\\u95f8\\u7728\\u6805\\u69a8\\u548b\\u4e4d\\u70b8\\u8bc8\\u63f8\\u5412\\u54a4\\u54f3\\u600d\\u781f\\u75c4\\u86b1\\u9f44\", \"zhai\": \"\\u6458\\u658b\\u5b85\\u7a84\\u503a\\u5be8\\u7826\", \"zhan\": \"\\u77bb\\u6be1\\u8a79\\u7c98\\u6cbe\\u76cf\\u65a9\\u8f97\\u5d2d\\u5c55\\u8638\\u6808\\u5360\\u6218\\u7ad9\\u6e5b\\u7efd\\u8c35\\u640c\\u65c3\", \"zhang\": \"\\u6a1f\\u7ae0\\u5f70\\u6f33\\u5f20\\u638c\\u6da8\\u6756\\u4e08\\u5e10\\u8d26\\u4ed7\\u80c0\\u7634\\u969c\\u4ec9\\u9123\\u5e5b\\u5d82\\u7350\\u5adc\\u748b\\u87d1\", \"zhao\": \"\\u62db\\u662d\\u627e\\u6cbc\\u8d75\\u7167\\u7f69\\u5146\\u8087\\u53ec\\u722a\\u8bcf\\u68f9\\u948a\\u7b0a\", \"zhe\": \"\\u906e\\u6298\\u54f2\\u86f0\\u8f99\\u8005\\u9517\\u8517\\u8fd9\\u6d59\\u8c2a\\u966c\\u67d8\\u8f84\\u78d4\\u9e67\\u891a\\u8707\\u8d6d\", \"zhen\": \"\\u73cd\\u659f\\u771f\\u7504\\u7827\\u81fb\\u8d1e\\u9488\\u4fa6\\u6795\\u75b9\\u8bca\\u9707\\u632f\\u9547\\u9635\\u7f1c\\u6862\\u699b\\u8f78\\u8d48\\u80d7\\u6715\\u796f\\u755b\\u9e29\", \"zheng\": \"\\u84b8\\u6323\\u7741\\u5f81\\u72f0\\u4e89\\u6014\\u6574\\u62ef\\u6b63\\u653f\\u5e27\\u75c7\\u90d1\\u8bc1\\u8be4\\u5ce5\\u94b2\\u94ee\\u7b5d\", \"zhi\": \"\\u829d\\u679d\\u652f\\u5431\\u8718\\u77e5\\u80a2\\u8102\\u6c41\\u4e4b\\u7ec7\\u804c\\u76f4\\u690d\\u6b96\\u6267\\u503c\\u4f84\\u5740\\u6307\\u6b62\\u8dbe\\u53ea\\u65e8\\u7eb8\\u5fd7\\u631a\\u63b7\\u81f3\\u81f4\\u7f6e\\u5e1c\\u5cd9\\u5236\\u667a\\u79e9\\u7a1a\\u8d28\\u7099\\u75d4\\u6ede\\u6cbb\\u7a92\\u536e\\u965f\\u90c5\\u57f4\\u82b7\\u646d\\u5e19\\u5fee\\u5f58\\u54ab\\u9a98\\u6809\\u67b3\\u6800\\u684e\\u8f75\\u8f7e\\u6534\\u8d3d\\u81a3\\u7949\\u7957\\u9ef9\\u96c9\\u9e37\\u75e3\\u86ed\\u7d77\\u916f\\u8dd6\\u8e2c\\u8e2f\\u8c78\\u89ef\", \"zhong\": \"\\u4e2d\\u76c5\\u5fe0\\u949f\\u8877\\u7ec8\\u79cd\\u80bf\\u91cd\\u4ef2\\u4f17\\u51a2\\u953a\\u87bd\\u8202\\u822f\\u8e35\", \"zhou\": \"\\u821f\\u5468\\u5dde\\u6d32\\u8bcc\\u7ca5\\u8f74\\u8098\\u5e1a\\u5492\\u76b1\\u5b99\\u663c\\u9aa4\\u5544\\u7740\\u501c\\u8bf9\\u836e\\u9b3b\\u7ea3\\u80c4\\u78a1\\u7c40\\u8233\\u914e\\u9cb7\", \"zhu\": \"\\u73e0\\u682a\\u86db\\u6731\\u732a\\u8bf8\\u8bdb\\u9010\\u7af9\\u70db\\u716e\\u62c4\\u77a9\\u5631\\u4e3b\\u8457\\u67f1\\u52a9\\u86c0\\u8d2e\\u94f8\\u7b51\\u4f4f\\u6ce8\\u795d\\u9a7b\\u4f2b\\u4f8f\\u90be\\u82ce\\u8331\\u6d19\\u6e1a\\u6f74\\u9a7a\\u677c\\u69e0\\u6a65\\u70b7\\u94e2\\u75b0\\u7603\\u86b0\\u7afa\\u7bb8\\u7fe5\\u8e85\\u9e88\", \"zhua\": \"\\u6293\", \"zhuai\": \"\\u62fd\", \"zhuan\": \"\\u4e13\\u7816\\u8f6c\\u64b0\\u8d5a\\u7bc6\\u629f\\u556d\\u989b\", \"zhuang\": \"\\u6869\\u5e84\\u88c5\\u5986\\u649e\\u58ee\\u72b6\\u4e2c\", \"zhui\": \"\\u690e\\u9525\\u8ffd\\u8d58\\u5760\\u7f00\\u8411\\u9a93\\u7f12\", \"zhun\": \"\\u8c06\\u51c6\", \"zhuo\": \"\\u6349\\u62d9\\u5353\\u684c\\u7422\\u8301\\u914c\\u707c\\u6d4a\\u502c\\u8bfc\\u5ef4\\u855e\\u64e2\\u555c\\u6d5e\\u6dbf\\u6753\\u712f\\u799a\\u65ab\", \"zi\": \"\\u5179\\u54a8\\u8d44\\u59ff\\u6ecb\\u6dc4\\u5b5c\\u7d2b\\u4ed4\\u7c7d\\u6ed3\\u5b50\\u81ea\\u6e0d\\u5b57\\u8c18\\u5d6b\\u59ca\\u5b73\\u7f01\\u6893\\u8f8e\\u8d40\\u6063\\u7726\\u9531\\u79ed\\u8014\\u7b2b\\u7ca2\\u89dc\\u8a3e\\u9cbb\\u9aed\", \"zong\": \"\\u9b03\\u68d5\\u8e2a\\u5b97\\u7efc\\u603b\\u7eb5\\u8159\\u7cbd\", \"zou\": \"\\u90b9\\u8d70\\u594f\\u63cd\\u9139\\u9cb0\", \"zu\": \"\\u79df\\u8db3\\u5352\\u65cf\\u7956\\u8bc5\\u963b\\u7ec4\\u4fce\\u83f9\\u5550\\u5f82\\u9a75\\u8e74\", \"zuan\": \"\\u94bb\\u7e82\\u6525\\u7f35\", \"zui\": \"\\u5634\\u9189\\u6700\\u7f6a\", \"zun\": \"\\u5c0a\\u9075\\u6499\\u6a3d\\u9cdf\", \"zuo\": \"\\u6628\\u5de6\\u4f50\\u67de\\u505a\\u4f5c\\u5750\\u5ea7\\u961d\\u963c\\u80d9\\u795a\\u9162\", \"cou\": \"\\u85ae\\u6971\\u8f8f\\u8160\", \"nang\": \"\\u652e\\u54dd\\u56d4\\u9995\\u66e9\", \"o\": \"\\u5594\", \"dia\": \"\\u55f2\", \"chuai\": \"\\u562c\\u81aa\\u8e39\", \"cen\": \"\\u5c91\\u6d94\", \"diu\": \"\\u94e5\", \"nou\": \"\\u8028\", \"fou\": \"\\u7f36\", \"bia\": \"\\u9adf\" };\r\nconst polyphone: any = { \"19969\": \"DZ\", \"19975\": \"WM\", \"19988\": \"QJ\", \"20048\": \"YL\", \"20056\": \"SC\", \"20060\": \"NM\", \"20094\": \"QG\", \"20127\": \"QJ\", \"20167\": \"QC\", \"20193\": \"YG\", \"20250\": \"KH\", \"20256\": \"ZC\", \"20282\": \"SC\", \"20285\": \"QJG\", \"20291\": \"TD\", \"20314\": \"YD\", \"20340\": \"NE\", \"20375\": \"TD\", \"20389\": \"YJ\", \"20391\": \"CZ\", \"20415\": \"PB\", \"20446\": \"YS\", \"20447\": \"SQ\", \"20504\": \"TC\", \"20608\": \"KG\", \"20854\": \"QJ\", \"20857\": \"ZC\", \"20911\": \"PF\", \"20985\": \"AW\", \"21032\": \"PB\", \"21048\": \"XQ\", \"21049\": \"SC\", \"21089\": \"YS\", \"21119\": \"JC\", \"21242\": \"SB\", \"21273\": \"SC\", \"21305\": \"YP\", \"21306\": \"QO\", \"21330\": \"ZC\", \"21333\": \"SDC\", \"21345\": \"QK\", \"21378\": \"CA\", \"21397\": \"SC\", \"21414\": \"XS\", \"21442\": \"SC\", \"21477\": \"JG\", \"21480\": \"TD\", \"21484\": \"ZS\", \"21494\": \"YX\", \"21505\": \"YX\", \"21512\": \"HG\", \"21523\": \"XH\", \"21537\": \"PB\", \"21542\": \"PF\", \"21549\": \"KH\", \"21571\": \"E\", \"21574\": \"DA\", \"21588\": \"TD\", \"21589\": \"O\", \"21618\": \"ZC\", \"21621\": \"KHA\", \"21632\": \"ZJ\", \"21654\": \"KG\", \"21679\": \"LKG\", \"21683\": \"KH\", \"21710\": \"A\", \"21719\": \"YH\", \"21734\": \"WOE\", \"21769\": \"A\", \"21780\": \"WN\", \"21804\": \"XH\", \"21834\": \"A\", \"21899\": \"ZD\", \"21903\": \"RN\", \"21908\": \"WO\", \"21939\": \"ZC\", \"21956\": \"SA\", \"21964\": \"YA\", \"21970\": \"TD\", \"22003\": \"A\", \"22031\": \"JG\", \"22040\": \"XS\", \"22060\": \"ZC\", \"22066\": \"ZC\", \"22079\": \"MH\", \"22129\": \"XJ\", \"22179\": \"XA\", \"22237\": \"NJ\", \"22244\": \"TD\", \"22280\": \"JQ\", \"22300\": \"YH\", \"22313\": \"XW\", \"22331\": \"YQ\", \"22343\": \"YJ\", \"22351\": \"PH\", \"22395\": \"DC\", \"22412\": \"TD\", \"22484\": \"PB\", \"22500\": \"PB\", \"22534\": \"ZD\", \"22549\": \"DH\", \"22561\": \"PB\", \"22612\": \"TD\", \"22771\": \"KQ\", \"22831\": \"HB\", \"22841\": \"JG\", \"22855\": \"QJ\", \"22865\": \"XQ\", \"23013\": \"ML\", \"23081\": \"WM\", \"23487\": \"SX\", \"23558\": \"QJ\", \"23561\": \"YW\", \"23586\": \"YW\", \"23614\": \"YW\", \"23615\": \"SN\", \"23631\": \"PB\", \"23646\": \"ZS\", \"23663\": \"ZT\", \"23673\": \"YG\", \"23762\": \"TD\", \"23769\": \"ZS\", \"23780\": \"QJ\", \"23884\": \"QK\", \"24055\": \"XH\", \"24113\": \"DC\", \"24162\": \"ZC\", \"24191\": \"GA\", \"24273\": \"QJ\", \"24324\": \"NL\", \"24377\": \"TD\", \"24378\": \"QJ\", \"24439\": \"PF\", \"24554\": \"ZS\", \"24683\": \"TD\", \"24694\": \"WE\", \"24733\": \"LK\", \"24925\": \"TN\", \"25094\": \"ZG\", \"25100\": \"XQ\", \"25103\": \"XH\", \"25153\": \"PB\", \"25170\": \"PB\", \"25179\": \"KG\", \"25203\": \"PB\", \"25240\": \"ZS\", \"25282\": \"FB\", \"25303\": \"NA\", \"25324\": \"KG\", \"25341\": \"ZY\", \"25373\": \"WZ\", \"25375\": \"XJ\", \"25384\": \"A\", \"25457\": \"A\", \"25528\": \"SD\", \"25530\": \"SC\", \"25552\": \"TD\", \"25774\": \"ZC\", \"25874\": \"ZC\", \"26044\": \"YW\", \"26080\": \"WM\", \"26292\": \"PB\", \"26333\": \"PB\", \"26355\": \"ZY\", \"26366\": \"CZ\", \"26397\": \"ZC\", \"26399\": \"QJ\", \"26415\": \"ZS\", \"26451\": \"SB\", \"26526\": \"ZC\", \"26552\": \"JG\", \"26561\": \"TD\", \"26588\": \"JG\", \"26597\": \"CZ\", \"26629\": \"ZS\", \"26638\": \"YL\", \"26646\": \"XQ\", \"26653\": \"KG\", \"26657\": \"XJ\", \"26727\": \"HG\", \"26894\": \"ZC\", \"26937\": \"ZS\", \"26946\": \"ZC\", \"26999\": \"KJ\", \"27099\": \"KJ\", \"27449\": \"YQ\", \"27481\": \"XS\", \"27542\": \"ZS\", \"27663\": \"ZS\", \"27748\": \"TS\", \"27784\": \"SC\", \"27788\": \"ZD\", \"27795\": \"TD\", \"27812\": \"O\", \"27850\": \"PB\", \"27852\": \"MB\", \"27895\": \"SL\", \"27898\": \"PL\", \"27973\": \"QJ\", \"27981\": \"KH\", \"27986\": \"HX\", \"27994\": \"XJ\", \"28044\": \"YC\", \"28065\": \"WG\", \"28177\": \"SM\", \"28267\": \"QJ\", \"28291\": \"KH\", \"28337\": \"ZQ\", \"28463\": \"TL\", \"28548\": \"DC\", \"28601\": \"TD\", \"28689\": \"PB\", \"28805\": \"JG\", \"28820\": \"QG\", \"28846\": \"PB\", \"28952\": \"TD\", \"28975\": \"ZC\", \"29100\": \"A\", \"29325\": \"QJ\", \"29575\": \"SL\", \"29602\": \"FB\", \"30010\": \"TD\", \"30044\": \"CX\", \"30058\": \"PF\", \"30091\": \"YSP\", \"30111\": \"YN\", \"30229\": \"XJ\", \"30427\": \"SC\", \"30465\": \"SX\", \"30631\": \"YQ\", \"30655\": \"QJ\", \"30684\": \"QJG\", \"30707\": \"SD\", \"30729\": \"XH\", \"30796\": \"LG\", \"30917\": \"PB\", \"31074\": \"NM\", \"31085\": \"JZ\", \"31109\": \"SC\", \"31181\": \"ZC\", \"31192\": \"MLB\", \"31293\": \"JQ\", \"31400\": \"YX\", \"31584\": \"YJ\", \"31896\": \"ZN\", \"31909\": \"ZY\", \"31995\": \"XJ\", \"32321\": \"PF\", \"32327\": \"ZY\", \"32418\": \"HG\", \"32420\": \"XQ\", \"32421\": \"HG\", \"32438\": \"LG\", \"32473\": \"GJ\", \"32488\": \"TD\", \"32521\": \"QJ\", \"32527\": \"PB\", \"32562\": \"ZSQ\", \"32564\": \"JZ\", \"32735\": \"ZD\", \"32793\": \"PB\", \"33071\": \"PF\", \"33098\": \"XL\", \"33100\": \"YA\", \"33152\": \"PB\", \"33261\": \"CX\", \"33324\": \"BP\", \"33333\": \"TD\", \"33406\": \"YA\", \"33426\": \"WM\", \"33432\": \"PB\", \"33445\": \"JG\", \"33486\": \"ZN\", \"33493\": \"TS\", \"33507\": \"QJ\", \"33540\": \"QJ\", \"33544\": \"ZC\", \"33564\": \"XQ\", \"33617\": \"YT\", \"33632\": \"QJ\", \"33636\": \"XH\", \"33637\": \"YX\", \"33694\": \"WG\", \"33705\": \"PF\", \"33728\": \"YW\", \"33882\": \"SR\", \"34067\": \"WM\", \"34074\": \"YW\", \"34121\": \"QJ\", \"34255\": \"ZC\", \"34259\": \"XL\", \"34425\": \"JH\", \"34430\": \"XH\", \"34485\": \"KH\", \"34503\": \"YS\", \"34532\": \"HG\", \"34552\": \"XS\", \"34558\": \"YE\", \"34593\": \"ZL\", \"34660\": \"YQ\", \"34892\": \"XH\", \"34928\": \"SC\", \"34999\": \"QJ\", \"35048\": \"PB\", \"35059\": \"SC\", \"35098\": \"ZC\", \"35203\": \"TQ\", \"35265\": \"JX\", \"35299\": \"JX\", \"35782\": \"SZ\", \"35828\": \"YS\", \"35830\": \"E\", \"35843\": \"TD\", \"35895\": \"YG\", \"35977\": \"MH\", \"36158\": \"JG\", \"36228\": \"QJ\", \"36426\": \"XQ\", \"36466\": \"DC\", \"36710\": \"JC\", \"36711\": \"ZYG\", \"36767\": \"PB\", \"36866\": \"SK\", \"36951\": \"YW\", \"37034\": \"YX\", \"37063\": \"XH\", \"37218\": \"ZC\", \"37325\": \"ZC\", \"38063\": \"PB\", \"38079\": \"TD\", \"38085\": \"QY\", \"38107\": \"DC\", \"38116\": \"TD\", \"38123\": \"YD\", \"38224\": \"HG\", \"38241\": \"XTC\", \"38271\": \"ZC\", \"38415\": \"YE\", \"38426\": \"KH\", \"38461\": \"YD\", \"38463\": \"AE\", \"38466\": \"PB\", \"38477\": \"XJ\", \"38518\": \"YT\", \"38551\": \"WK\", \"38585\": \"ZC\", \"38704\": \"XS\", \"38739\": \"LJ\", \"38761\": \"GJ\", \"38808\": \"SQ\", \"39048\": \"JG\", \"39049\": \"XJ\", \"39052\": \"HG\", \"39076\": \"CZ\", \"39271\": \"XT\", \"39534\": \"TD\", \"39552\": \"TD\", \"39584\": \"PB\", \"39647\": \"SB\", \"39730\": \"LG\", \"39748\": \"TPB\", \"40109\": \"ZQ\", \"40479\": \"ND\", \"40516\": \"HG\", \"40536\": \"HG\", \"40583\": \"QJ\", \"40765\": \"YQ\", \"40784\": \"QJ\", \"40840\": \"YK\", \"40863\": \"QJG\" };\r\nconst options: any = {\r\n checkPolyphone: false,\r\n charcase: \"default\",\r\n};\r\nconst pinYin = {\r\n // 提取拼音, 返回首字母大写形式\r\n getFullChars: (str: any) => {\r\n let result = \"\",\r\n name;\r\n if (!str) {\r\n return result;\r\n }\r\n const reg = new RegExp(\"[a-zA-Z0-9- ]\");\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n const ch = str.substr(i, 1),\r\n unicode = ch.charCodeAt(0);\r\n if (unicode > 40869 || unicode < 19968) {\r\n result += ch;\r\n } else {\r\n name = pinYin._getFullChar(ch);\r\n if (name !== false) {\r\n result += name;\r\n }\r\n }\r\n }\r\n return result.toLocaleLowerCase();\r\n },\r\n // 提取首字母,返回大写形式\r\n getCamelChars: (str: any) => {\r\n if (typeof str !== \"string\") {\r\n return \"Z\";\r\n }\r\n const chars = []; //保存中间结果的数组\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n //获得unicode码\r\n const ch = str.charAt(i);\r\n //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理\r\n chars.push(pinYin._getChar(ch));\r\n }\r\n //处理arrResult,返回所有可能的拼音首字母串数组\r\n return pinYin._getResult(chars).toLocaleLowerCase();\r\n },\r\n // 提取拼音\r\n _getFullChar: (str: any) => {\r\n for (const key in full_dict) {\r\n if (-1 !== full_dict[key].indexOf(str)) {\r\n return pinYin._capitalize(key);\r\n break;\r\n }\r\n }\r\n return false;\r\n },\r\n // 首字母大写\r\n _capitalize: (str: any) => {\r\n if (str.length > 0) {\r\n const first = str.substr(0, 1).toUpperCase();\r\n const spare = str.substr(1, str.length);\r\n return first + spare;\r\n }\r\n },\r\n _getChar: (ch: any) => {\r\n const unicode = ch.charCodeAt(0);\r\n //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数\r\n if (unicode > 40869 || unicode < 19968) return ch; //dealWithOthers(ch);\r\n //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母\r\n if (!options.checkPolyphone) return char_dict.charAt(unicode - 19968);\r\n return polyphone[unicode] ? polyphone[unicode] : char_dict.charAt(unicode - 19968);\r\n },\r\n _getResult: (chars: any) => {\r\n if (!options.checkPolyphone) return chars.join(\"\");\r\n let result = [\"\"];\r\n for (let i = 0, len = chars.length; i < len; i++) {\r\n const str = chars[i],\r\n strlen = str.length;\r\n if (strlen === 1) {\r\n for (let j = 0; j < result.length; j++) {\r\n result[j] += str;\r\n }\r\n } else {\r\n const swap1 = result.slice(0);\r\n result = [];\r\n for (let j = 0; j < strlen; j++) {\r\n //复制一个相同的arrRslt\r\n const swap2 = swap1.slice(0);\r\n //把当前字符str[k]添加到每个元素末尾\r\n for (let k = 0; k < swap2.length; k++) {\r\n swap2[k] += str.charAt(j);\r\n }\r\n //把复制并修改后的数组连接到arrRslt上\r\n result = result.concat(swap2);\r\n }\r\n }\r\n }\r\n return result;\r\n },\r\n};\r\nexport default pinYin;\r\n","\r\nimport { Options, Inject, Prop, Watch, Vue } from \"vue-property-decorator\";\r\nimport { Control } from \"@/domain\";\r\nimport { FormEnum } from \"@/domain\";\r\nimport { FormFieldClass } from \"@/constants\";\r\nimport { FormFieldType } from \"@/constants\";\r\nimport generateGridTemplateColumns from \"../../filtres/generate-grid-template-columns.filter\";\r\nimport generateGridColumnEnd from \"../../filtres/generate-grid-column-end.filter\";\r\nimport { DesFormLayout } from \"@/domain\";\r\nimport { DesFormControl } from \"@/domain\";\r\n\r\nimport { AutoComplete, Cascader, Checkbox, DatePicker, Form, Input, InputNumber, Radio, Select, Switch, TimePicker, TreeSelect, Slider, Tooltip, Popover, Divider, Rate, Dropdown, Button, Menu, Upload, Popconfirm, Timeline, FormItem, RadioGroup, Textarea, CheckboxGroup, InputPassword, TimelineItem, Row, Col } from \"ant-design-vue\";\r\nimport { VerticalArrangement } from \"@/constants\";\r\nimport { formBeanUtilsService } from \"@/services\";\r\nimport { ProvideInjectData } from \"@/domain/ProvideInjectData\";\r\n\r\nimport amountCapitalization from \"../../filtres/amount-capitalization.filter\";\r\nimport { FormControl, ValidateResult, CustomFormat } from \"../../domain\";\r\nimport { FormBusAttr, SubmittedType, MoneyUnit, ControlFormatType, BuiltLabel, SupportUploadType } from \"../../constants/enum\";\r\nimport { ValidateRules } from \"@/constants\";\r\nimport { ZoomType } from \"@/constants\";\r\nimport { extractOptions } from \"@/filtres/extract-options.filter\";\r\nimport zoomMultiple from \"../../filtres/zoom-multiple.filter\";\r\nimport switchEnumConvert from \"../../filtres/switch-enum-convert.filter\";\r\nimport StretchText from \"./StretchText.vue\";\r\nimport { SUBMITTED_SVG_XML, HISTORY_SVG_XML } from \"../../constants/encode-assets/svg\";\r\nimport { SearchOutlined, PlusOutlined, QuestionCircleOutlined, ClockCircleOutlined, DownOutlined, UploadOutlined } from \"@ant-design/icons-vue\";\r\n\r\nimport dayjs from \"dayjs\";\r\nimport locale from \"ant-design-vue/es/date-picker/locale/zh_CN\";\r\nimport pinYin from \"../../../public/js/pinyin\";\r\n\r\n@Options({\r\n name: \"DvFormLayout\",\r\n filters: {\r\n amountCapitalization: amountCapitalization,\r\n switchEnumConvert: switchEnumConvert,\r\n zoomMultiple: zoomMultiple,\r\n },\r\n components: {\r\n StretchText,\r\n PlusOutlined,\r\n [Form.name]: Form,\r\n [FormItem.name]: FormItem,\r\n [Input.name]: Input,\r\n [Textarea.name]: Textarea,\r\n [AutoComplete.name]: AutoComplete,\r\n [InputNumber.name]: InputNumber,\r\n [Select.name]: Select,\r\n [Select.Option.displayName + \"\"]: Select.Option,\r\n [Select.OptGroup.displayName + \"\"]: Select.OptGroup,\r\n [Radio.name]: Radio,\r\n [RadioGroup.name]: RadioGroup,\r\n [Checkbox.name]: Checkbox,\r\n [CheckboxGroup.name]: CheckboxGroup,\r\n [Switch.name]: Switch,\r\n [TimePicker.name]: TimePicker,\r\n [DatePicker.name]: DatePicker,\r\n [Slider.name]: Slider,\r\n [AutoComplete.name]: AutoComplete,\r\n [Cascader.name]: Cascader,\r\n [TreeSelect.name]: TreeSelect,\r\n [Tooltip.name]: Tooltip,\r\n [InputPassword.name]: InputPassword,\r\n [Popover.name]: Popover,\r\n [Popconfirm.name]: Popconfirm,\r\n [Timeline.name]: Timeline,\r\n [TimelineItem.name]: TimelineItem,\r\n [Rate.name]: Rate,\r\n [Dropdown.name]: Dropdown,\r\n [Menu.name]: Menu,\r\n [Menu.Item.name]: Menu.Item,\r\n [Upload.name]: Upload,\r\n [Button.name]: Button,\r\n [Divider.name]: Divider,\r\n [DatePicker.MonthPicker.name]: DatePicker.MonthPicker,\r\n [StretchText.name]: StretchText,\r\n [Row.name]: Row,\r\n [Col.name]: Col,\r\n VNodes: (_, { attrs }) => {\r\n return attrs.vnodes;\r\n },\r\n QuestionCircleOutlined,\r\n ClockCircleOutlined,\r\n DownOutlined,\r\n UploadOutlined,\r\n SearchOutlined,\r\n },\r\n})\r\nexport default class DvFormLayout extends Vue {\r\n locale = locale; // 国际化\r\n submittedSvg = SUBMITTED_SVG_XML; // 上报图标\r\n historySvg = HISTORY_SVG_XML; // 历史记录图标\r\n\r\n numberPopoverVisible = false; // 是否开启数字气泡弹窗\r\n validateResult: ValidateResult = {}; // 校验规则\r\n metaRefresh: any; // 刷新标识\r\n defaultMoneyUnit: any = {}; // 默认单位\r\n zoomType = ZoomType; // 缩放类型\r\n builtLabel = BuiltLabel; // 内置前/后置标签\r\n traddayList: any = localStorage.getItem(\"traddayList\") || JSON.stringify([]); // 交易日集合\r\n weekdayList: any = localStorage.getItem(\"weekdayList\") || JSON.stringify([]); // 节假日集合\r\n workdayList: any = localStorage.getItem(\"workdayList\") || JSON.stringify([]); // 工作日集合\r\n amountCapitalization = amountCapitalization; // 大写转换\r\n zoomMultiple = zoomMultiple; // 缩放\r\n filterOption(value: any, item: any) {\r\n if (!item.title) {\r\n return false;\r\n }\r\n return item.title.indexOf(value) > -1 || pinYin.getCamelChars(item.title).indexOf(value) > -1 || pinYin.getFullChars(item.title).indexOf(value) > -1;\r\n }\r\n\r\n @Prop() index: number | undefined;\r\n @Prop() control: Control | undefined;\r\n @Prop() parentControl: Control | undefined;\r\n @Prop({ type: Object, default: () => ({}) }) customFormats: { [key: string]: CustomFormat } | undefined;\r\n @Prop({ type: Array, default: () => [] }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n @Inject() provideInjectData: ProvideInjectData | any;\r\n readonly formFieldClass: FormEnum = FormFieldClass; // 表单字段分类\r\n readonly formFieldType: FormEnum = FormFieldType; // 表单字段类型\r\n\r\n @Watch(\"defaultMoneyUnit\", { immediate: true })\r\n onDefaultMoneyUnitHandler(newVal: any): void {\r\n if (newVal.code != null) {\r\n switch (newVal.code) {\r\n case MoneyUnit.Yuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 1;\r\n break;\r\n case MoneyUnit.TenThousandYuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 10000;\r\n break;\r\n case MoneyUnit.HundredMillionYuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 100000000;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 校验反馈\r\n * @author ChenRui\r\n * @date 2021/2/26 14:24\r\n */\r\n @Watch(\"provideInjectData.refreshCheckFeedbackFlag\")\r\n @Watch(\"control.formControl.refreshValidate\")\r\n onValidationFeedbackHandle(): void {\r\n this.validateResult = this.formControl.validate();\r\n }\r\n\r\n /**\r\n * @description: 表单校验\r\n * @author ChenRui\r\n * @date 2022/4/6 14:12\r\n */\r\n @Watch(\"provideInjectData.formValidateStateResetMark\")\r\n onFormValidateStateResetMarkHandle(): void {\r\n this.validateResult = {};\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:Object { key: 元素码值, value: 元素值 })\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:22\r\n */\r\n linkClick(data: any): void {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n @Watch(\"control.controlAttr.isHideControl\")\r\n onHideControl() {\r\n this.$nextTick(() => {\r\n this.$emit(\"fixFormLayout\");\r\n });\r\n }\r\n /**\r\n * @description: 输入框形态\r\n * @author ChenRui\r\n * @date 2022/5/7 17:48\r\n */\r\n get inputShape(): string {\r\n if ((this.controlAttr as DesFormControl).isPasswordBox) {\r\n return \"a-input-password\";\r\n } else if ((this.controlAttr as DesFormControl).enableAutoComplete) {\r\n return \"a-auto-complete\";\r\n } else {\r\n return \"a-input\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取控件对象\r\n * @author ChenRui\r\n * @date 2021/1/27 11:07\r\n */\r\n get formControl(): FormControl {\r\n if (this.control && this.control.formControl) {\r\n // 初始化部分数据\r\n this.initFormControlData();\r\n return this.control.formControl;\r\n }\r\n return new FormControl();\r\n }\r\n\r\n /**\r\n * @description: 获取控件配置参数\r\n * @author ChenRui\r\n * @date 2021/1/5 11:26\r\n */\r\n get controlAttr(): DesFormControl | DesFormLayout {\r\n return this.control?.controlAttr as any;\r\n }\r\n\r\n /**\r\n * @description: 获取控件配置参数\r\n * @author ChenRui\r\n * @date 2021/1/5 11:26\r\n */\r\n get parentControlAttr(): DesFormLayout {\r\n return this.parentControl?.controlAttr as DesFormLayout;\r\n }\r\n\r\n /**\r\n * @description: 获取布局方式\r\n * @author ChenRui\r\n * @date 2020/12/30 18:19\r\n */\r\n get layout(): string {\r\n for (const propName of Object.keys(VerticalArrangement)) {\r\n if ((VerticalArrangement as any)[propName][\"code\"] === (this.controlAttr as DesFormLayout).gridVerticalArrangement) {\r\n return (VerticalArrangement as any)[propName][\"value\"];\r\n }\r\n }\r\n return VerticalArrangement.AlignRight.value;\r\n }\r\n\r\n /**\r\n * @description: 当前输入的字符长度\r\n * @author ChenRui\r\n * @date 2021/4/20 15:55\r\n */\r\n get currentCharacterCount(): any {\r\n return this.control!.formControl && this.control!.formControl.value ? this.control!.formControl.value.length : 0;\r\n }\r\n\r\n /**\r\n * @description: 最大字数限制\r\n * @author ChenRui\r\n * @date 2021/4/20 15:38\r\n */\r\n get maxCharacterCount(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.verificationRules && controlAttr.verificationRules.length > 0) {\r\n const verificationRule: any = controlAttr.verificationRules.find((item: any) => item.ruleType === ValidateRules.MaxTextLength.code);\r\n if (verificationRule != null && verificationRule.ruleContent) {\r\n return Number(verificationRule.ruleContent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 数字格式化\r\n * @author ChenRui\r\n * @date 2021/1/14 16:30\r\n */\r\n get numberFormatter(): any {\r\n const controlAttr: any = this.controlAttr as DesFormControl;\r\n const controlFormatType: string = controlAttr.formatType ? controlAttr.formatType : ControlFormatType.GENERAL.code;\r\n return (value: any) => {\r\n let val: any = value != undefined ? String(value) : \"\";\r\n switch (controlFormatType) {\r\n case ControlFormatType.GENERAL.code:\r\n case ControlFormatType.AMOUNT_OF_MONEY.code:\r\n if (controlFormatType === ControlFormatType.AMOUNT_OF_MONEY.code && val != null && controlAttr.thousandthPercentileFormat) {\r\n // 校验小数位不做千分位格式化处理\r\n if (val.indexOf(\".\") > -1) {\r\n val = `${val}`.split(\".\")[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \".\" + `${val}`.split(\".\")[1];\r\n } else {\r\n val = `${val}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && val != null && val != \"\" && controlAttr.unit) {\r\n // val = `${val}${controlAttr.unit}`;\r\n val = `${val}`;\r\n }\r\n return val;\r\n case ControlFormatType.BANK_CARD_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/[\\s]/g, \"\").replace(/(\\d{4})(?=\\d)/g, \"$1 \");\r\n }\r\n return val;\r\n case ControlFormatType.CELL_PHONE_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/\\D/g, \"\").substr(0, 11); // 不允许输入非数字字符,超过11位数字截取前11位\r\n const len = val.length;\r\n if (len > 3 && len < 8) {\r\n val = val.replace(/^(\\d{3})/g, \"$1 \");\r\n } else if (len >= 8) {\r\n val = val.replace(/^(\\d{3})(\\d{4})/g, \"$1 $2 \");\r\n }\r\n }\r\n return val;\r\n case ControlFormatType.LANDLINE_NUMBER.code:\r\n return val;\r\n default: {\r\n return value;\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @description: 数字反格式化\r\n * @author ChenRui\r\n * @date 2021/1/14 16:31\r\n */\r\n get numberParser(): any {\r\n const controlAttr: any = this.controlAttr as DesFormControl;\r\n const zoomType: string = controlAttr.formatType ? controlAttr.formatType : ControlFormatType.GENERAL.code;\r\n return (value: any) => {\r\n let val: any = value;\r\n switch (zoomType) {\r\n case ControlFormatType.GENERAL.code:\r\n case ControlFormatType.AMOUNT_OF_MONEY.code:\r\n if (zoomType === ControlFormatType.AMOUNT_OF_MONEY.code && val != null && controlAttr.thousandthPercentileFormat) {\r\n val = val.replace(/\\$\\s?|(,*)/g, \"\");\r\n }\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && val != null && val != \"\" && controlAttr.unit) {\r\n const replaceUnit: string[] = controlAttr.unit.split(\"\");\r\n replaceUnit.forEach((item) => {\r\n val = val.replace(item, \"\");\r\n });\r\n }\r\n return val;\r\n case ControlFormatType.BANK_CARD_NUMBER.code:\r\n case ControlFormatType.CELL_PHONE_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/\\s/g, \"\");\r\n }\r\n return val;\r\n case ControlFormatType.LANDLINE_NUMBER.code:\r\n return val;\r\n default: {\r\n return val;\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @description: label 宽度\r\n * @author ChenRui\r\n * @date 2021/1/5 11:59\r\n */\r\n get labelSpanWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.titleWidth) {\r\n return controlAttr.titleWidth;\r\n } else if (parentControlAttr.labelSpan) {\r\n return parentControlAttr.labelSpan;\r\n } else {\r\n return this.provideInjectData.labelSpan;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 标签后是否显示冒号\r\n * @author ZPFly\r\n * @date 2022/7/15 10:54\r\n */\r\n get colon(): boolean {\r\n return this.provideInjectData.colon;\r\n }\r\n\r\n /**\r\n * @description: 最大宽度设置\r\n * @author ChenRui\r\n * @date 2021/7/8 16:39\r\n */\r\n get controlSpanMaxWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.controlWidth) {\r\n return controlAttr.controlWidth;\r\n } else if (parentControlAttr.controlSpan) {\r\n return parentControlAttr.controlSpan;\r\n } else if (this.provideInjectData.controlSpan) {\r\n return this.provideInjectData.controlSpan;\r\n } else {\r\n return \"none\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 控件宽度\r\n * @author ChenRui\r\n * @date 2021/1/5 15:11\r\n */\r\n get controlSpanWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.controlWidth) {\r\n return controlAttr.controlWidth;\r\n } else if (parentControlAttr.controlSpan) {\r\n return parentControlAttr.controlSpan;\r\n } else if (this.provideInjectData.controlSpan) {\r\n return this.provideInjectData.controlSpan;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * @description: label 标签的文本对齐方式\r\n * @author ChenRui\r\n * @date 2021/1/5 11:59\r\n */\r\n get labelAlign(): string {\r\n for (const propName of Object.keys(VerticalArrangement)) {\r\n if ((VerticalArrangement as any)[propName][\"code\"] === (this.controlAttr as DesFormLayout).gridVerticalArrangement) {\r\n return (VerticalArrangement as any)[propName][\"textAlign\"];\r\n }\r\n }\r\n return VerticalArrangement.AlignRight.textAlign;\r\n }\r\n\r\n /**\r\n * @description: 获取金额转换单位\r\n * @author ChenRui\r\n * @date 2021/2/20 17:43\r\n */\r\n get moneyUnits(): any[] {\r\n const moneyUnits: any[] = [];\r\n const moneyUnit: any[] = formBeanUtilsService.parse((this.controlAttr as DesFormControl).moneyUnit);\r\n if ((this.controlAttr as DesFormControl).moneyUnit) {\r\n Object.values(MoneyUnit).forEach((item) => {\r\n if (moneyUnit.findIndex((it) => it === item.code) !== -1) {\r\n moneyUnits.push(item);\r\n }\r\n });\r\n }\r\n\r\n if (moneyUnits && moneyUnits.length > 0) {\r\n this.defaultMoneyUnit = moneyUnits[0];\r\n }\r\n return moneyUnits;\r\n }\r\n\r\n /**\r\n * @description: 单位缩放比例\r\n * @author ChenRui\r\n * @date 2022/5/7 10:31\r\n */\r\n get moneyUnitsIndentScale(): number {\r\n const moneyUnit: any = this.defaultMoneyUnit;\r\n if (moneyUnit != null && moneyUnit.code) {\r\n return Number(moneyUnit.code);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * @description: 获取select、checkbox、radio可选项\r\n * @author ChenRui\r\n * @date 2020/12/2 14:36\r\n */\r\n get options(): any[] {\r\n return extractOptions(this.controlAttr);\r\n }\r\n\r\n /**\r\n * @description: 使用月份组件\r\n * @author ChenRui\r\n * @date 2021/5/19 16:12\r\n */\r\n get useMonthPicker(): boolean {\r\n const dateFormat: any = (this.controlAttr as DesFormControl).dateFormat;\r\n if (dateFormat && dateFormat.toLowerCase() === \"yyyy-mm\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 级联选择框\r\n * @author ChenRui\r\n * @date 2021/1/5 16:31\r\n */\r\n get cascaderOptions(): any[] {\r\n const value: any[] = this.options;\r\n let options: any[] = [];\r\n if (value && value.length > 0) {\r\n const items = formBeanUtilsService.copy(value);\r\n options = this.cascaderRecursion(items);\r\n }\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 树形下拉选项\r\n * @author ChenRui\r\n * @date 2021/1/5 16:44\r\n */\r\n get treeSelectOptions(): any[] {\r\n const value: any[] = this.options;\r\n console.log(value);\r\n if (value && value.length > 0) {\r\n const items = formBeanUtilsService.copy(value);\r\n this.treeSelectRecursion(items);\r\n return items;\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 是否12小时制\r\n * @author ChenRui\r\n * @date 2021/1/18 10:54\r\n */\r\n get is12Hours(): boolean {\r\n return !!(this.controlAttr as DesFormControl).timeFormat && (this.controlAttr as DesFormControl).timeFormat.indexOf(\":ss\") < 0;\r\n }\r\n\r\n /**\r\n * @description: 是否添加反馈\r\n * @author ChenRui\r\n * @date 2021/1/21 10:43\r\n */\r\n get hasFeedback(): boolean {\r\n return this.control!.formControl != null && this.control!.formControl!.validates && this.control!.formControl!.validates.length > 0;\r\n }\r\n\r\n /**\r\n * @description: 是否必填,仅影响样式\r\n * @author ChenRui\r\n * @date 2021/1/21 10:50\r\n */\r\n get required(): boolean {\r\n if (this.hasFeedback && this.control!.formControl!.validates.findIndex((item: any) => String(item.name) === String(ValidateRules.Required.code)) !== -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 格式化数据\r\n * @author ChenRui\r\n * @date 2021/1/8 11:30\r\n */\r\n get formatData(): string {\r\n this.metaRefresh = this.provideInjectData.metaRefresh; // 刷新标识\r\n let val = \"\";\r\n let data: any = this.control!.formControl!.value;\r\n let options: any[];\r\n let context: any[];\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n switch (this.control!.code) {\r\n case FormFieldType.Input.code:\r\n if (controlAttr.bindingPrefix) {\r\n val += controlAttr.bindingPrefix;\r\n }\r\n val += data || \"\";\r\n if (controlAttr.bindingSuffix) {\r\n val += controlAttr.bindingSuffix;\r\n }\r\n data = val;\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n if (this.numberFormatter) {\r\n data = this.numberFormatter(data);\r\n }\r\n // 自动补0\r\n if (data && controlAttr.decimalPlaces != undefined && (controlAttr.decimalPlaces as any) !== \"\") {\r\n let index;\r\n if (data.indexOf(\".\") == -1) {\r\n index = controlAttr.decimalPlaces;\r\n data += \".\";\r\n } else {\r\n index = controlAttr.decimalPlaces - (data.length - 1 - data.indexOf(\".\"));\r\n }\r\n for (let i = 0; i < index; i++) {\r\n data += \"0\";\r\n }\r\n }\r\n // 金额后缀不依赖于是否设置了小数位\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && data != null && data != \"\" && controlAttr.unit) {\r\n data = data.replace(controlAttr.unit, \"\");\r\n // data = `${data}${controlAttr.unit}`; // 后缀在后面统一展示 2023年9月22日15:49:08\r\n }\r\n return data;\r\n case FormFieldType.Select.code:\r\n case FormFieldType.Radio.code:\r\n if (data != null && Array.isArray(data)) {\r\n const context: string[] = [];\r\n this.options.find((item) => {\r\n for (let i = 0; i < data.length; i++) {\r\n if (item.value === data[i]) {\r\n context.push(item.title);\r\n }\r\n }\r\n });\r\n return context.join(\",\");\r\n } else {\r\n const option = this.options.find((item) => item.value === data);\r\n return option ? option.title : \"\";\r\n }\r\n case FormFieldType.Checkbox.code:\r\n options = data || [];\r\n context = [];\r\n options.forEach((it) => {\r\n this.options.find((item) => {\r\n if (item.value === it) {\r\n context.push(item.title);\r\n }\r\n });\r\n });\r\n return context.join(\" , \");\r\n case FormFieldType.Switch.code:\r\n if (data !== undefined) {\r\n if (data === true && controlAttr.onOpeningValue != undefined && controlAttr.onOpeningValue !== \"\") {\r\n return controlAttr.onOpeningValue;\r\n } else if (data === false && controlAttr.whenClosedValue != undefined && controlAttr.whenClosedValue !== \"\") {\r\n return controlAttr.whenClosedValue;\r\n } else {\r\n return data ? \"是\" : \"否\";\r\n }\r\n }\r\n return \"\";\r\n case FormFieldType.TimePicker.code:\r\n if (data != null) {\r\n return dayjs(data).format(controlAttr.timeFormat || \"HH:mm:ss\");\r\n }\r\n return \"\";\r\n case FormFieldType.DatePicker.code:\r\n if (data != null) {\r\n return dayjs(data).format(controlAttr.dateFormat || \"YYYY-MM-dd\");\r\n }\r\n return \"\";\r\n case FormFieldType.Cascader.code:\r\n if (data != null) {\r\n return this.cascaderContextRecursion(data, this.cascaderOptions);\r\n }\r\n return \"\";\r\n case FormFieldType.TreeSelect.code:\r\n if (data != null) {\r\n return this.treeSelectContextRecursion(data, this.treeSelectOptions);\r\n }\r\n return \"\";\r\n case FormFieldType.Custom.code:\r\n if (this.customFormats && this.customFormats[controlAttr.customFieldName]) {\r\n const customFormat: CustomFormat = this.customFormats[controlAttr.customFieldName];\r\n if (customFormat && customFormat.display) {\r\n return customFormat.display(data, controlAttr);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * @description: 支持的上传类型\r\n * @author ChenRui\r\n * @date 2021/4/25 11:50\r\n */\r\n get uploadType(): any {\r\n const controlAttr = this.controlAttr as DesFormControl;\r\n if (controlAttr.supportUploadType === SupportUploadType.Arbitrarily.code) {\r\n return undefined;\r\n } else if (controlAttr.supportUploadType === SupportUploadType.Custom.code) {\r\n return controlAttr.customUploadType;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 下拉选项新增\r\n * @author ChenRui\r\n * @date 2021/1/14 20:05\r\n */\r\n selectAddItem(event: any): void {\r\n this.$emit(\"add-item\", event);\r\n /*const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n console.log(controlAttr.optionConfig);\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n console.log(controlAttr.generalDictionaryOptions);\r\n }\r\n }\r\n }*/\r\n }\r\n\r\n /**\r\n * @description: 级联搜索\r\n * @author ChenRui\r\n * @date 2021/5/19 17:23\r\n */\r\n cascaderFilter(inputValue: any, path: any): any {\r\n return path.some((option: any) => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);\r\n }\r\n\r\n /**\r\n * @description: 递归生成树形下拉选项\r\n * @author ChenRui\r\n * @date 2021/1/5 16:44\r\n */\r\n treeSelectRecursion(items: any[]): any[] {\r\n const options: any[] = [];\r\n items.forEach((item) => {\r\n item.disabled = false;\r\n item.key = item.value;\r\n if (item.children && item.children.length > 0) {\r\n if ((this.controlAttr as any).disableNonLeafNodes !== \"0\") {\r\n item.disabled = true; // LiuBo 2023年11月7日11:33:41 禁用非叶子节点\r\n }\r\n this.treeSelectRecursion(item.children);\r\n }\r\n });\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 级联递归\r\n * @author ChenRui\r\n * @date 2021/1/5 16:35\r\n */\r\n cascaderRecursion(items: any[]): any[] {\r\n const options: any[] = [];\r\n items.forEach((item) => {\r\n const option: any = {\r\n value: item.value,\r\n label: item.title,\r\n isLeaf: false,\r\n };\r\n options.push(option);\r\n if (item.children && item.children.length > 0) {\r\n option.children = this.cascaderRecursion(item.children);\r\n } else {\r\n option.isLeaf = true;\r\n }\r\n });\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 递归获取级联选项对应的文本\r\n * @author ChenRui\r\n * @date 2021/1/8 14:45\r\n */\r\n cascaderContextRecursion(val: any[], cascaderOptions: any[], index = 0): string {\r\n if (val && val.length > 0 && cascaderOptions && cascaderOptions.length > 0) {\r\n if (val.length > index) {\r\n const currentIndex = val[index];\r\n const cascaderOption = cascaderOptions.find((item) => item.value === currentIndex);\r\n if (cascaderOption != null) {\r\n let currentText = cascaderOption.label;\r\n if (val.length > index + 1) {\r\n const subText = this.cascaderContextRecursion(val, cascaderOption.children, index + 1);\r\n currentText += \" / \" + subText;\r\n }\r\n return currentText;\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description:\r\n * @author ChenRui\r\n * @date 2021/1/8 15:05\r\n */\r\n\r\n treeSelectContextRecursion(val: string, treeSelectOptions: any[]): string {\r\n if (val && treeSelectOptions && treeSelectOptions.length > 0) {\r\n for (let i = 0; i < treeSelectOptions.length; i++) {\r\n if (treeSelectOptions[i].value === val) {\r\n return treeSelectOptions[i].title;\r\n } else if (treeSelectOptions[i].children && treeSelectOptions[i].children.length > 0) {\r\n const subTitle: string = this.treeSelectContextRecursion(val, treeSelectOptions[i].children);\r\n if (subTitle) {\r\n return subTitle;\r\n }\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 是否为ie\r\n * @author ChenRui\r\n * @date 2021/3/25 14:44\r\n */\r\n get isIe(): boolean {\r\n return !!this.provideInjectData.widthCompatibleMode || !!window.ActiveXObject || \"ActiveXObject\" in window;\r\n }\r\n\r\n /**\r\n * @description: ie 兼容性宽度布局\r\n * @author ChenRui\r\n * @date 2021/3/25 12:53\r\n */\r\n get divWidthCompatibleToIe(): any {\r\n if (this.isIe) {\r\n const desFormLayout: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n const configIndex: number = this.index! % desFormLayout.gridColumnConfig.length; // 索引位置\r\n const proportion: number = desFormLayout.gridColumnConfig[configIndex].value; // 比重\r\n let total = 0; // 总值\r\n desFormLayout.gridColumnConfig.forEach((item: any) => {\r\n total += Number(item.value);\r\n });\r\n const ratio = proportion / total; // 比值\r\n const val = Number(ratio) * 100;\r\n return `calc( ${val}% - 1px)`;\r\n } else {\r\n return \"100%\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 根节点容器布局样式\r\n * @author ChenRui\r\n * @date 2021/3/25 14:52\r\n */\r\n get emptyLayoutContainerStyle(): any {\r\n let style: any = {};\r\n if (this.isIe) {\r\n style = { display: \"flex\", \"flex-wrap\": \"wrap\" };\r\n } else {\r\n const gridTemplateColumns: any = generateGridTemplateColumns((this.control?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n style = { \"grid-template-columns\": gridTemplateColumns };\r\n }\r\n return style;\r\n }\r\n\r\n /**\r\n * @description: 常规布局容器样式\r\n * @author ChenRui\r\n * @date 2021/3/25 14:42\r\n */\r\n get generalLayoutContainerStyle(): any {\r\n let style: any = {};\r\n if (this.isIe) {\r\n style = { display: \"flex\", \"flex-wrap\": \"wrap\" };\r\n } else {\r\n const gridColumnEnd: any = generateGridColumnEnd((this.parentControl?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n const gridTemplateColumns: any = generateGridTemplateColumns((this.control?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n style = {\r\n \"grid-column-end\": gridColumnEnd,\r\n \"grid-template-columns\": gridTemplateColumns,\r\n };\r\n }\r\n return style;\r\n }\r\n\r\n /**\r\n * @description: 初始化部分数据\r\n * @author ChenRui\r\n * @date 2021/1/29 15:28\r\n */\r\n initFormControlData(): void {\r\n if (this.control && this.control.formControl) {\r\n if (this.control!.code === FormFieldType.DatePicker.code || this.control!.code === FormFieldType.TimePicker.code) {\r\n if (this.control.formControl.value) {\r\n if (typeof this.control.formControl.value === \"string\") {\r\n this.control.formControl.value = dayjs(new Date(this.control.formControl.value));\r\n } else if (this.control.formControl.value instanceof Date) {\r\n this.control.formControl.value = dayjs(this.control.formControl.value);\r\n }\r\n }\r\n }\r\n if (this.control.formControl.textNoticeCallback == null) {\r\n this.control.formControl.textNoticeCallback = () => {\r\n return this.formatData;\r\n };\r\n }\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.maxValue == null || (controlAttr.maxValue as any) === \"\") {\r\n const maxValue = \"9999999999999999\";\r\n if (controlAttr.decimalPlaces != undefined && (controlAttr.decimalPlaces as any) !== \"\" && controlAttr.decimalPlaces > 0) {\r\n if (controlAttr.decimalPlaces > 16) {\r\n controlAttr.decimalPlaces = 16;\r\n }\r\n controlAttr.maxValue = Number(maxValue.slice(0, maxValue.length - controlAttr.decimalPlaces) + \".\" + maxValue.slice(maxValue.length - controlAttr.decimalPlaces, maxValue.length));\r\n } else {\r\n controlAttr.maxValue = Number(maxValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 业务属性\r\n * @author ChenRui\r\n * @date 2021/2/1 14:38\r\n */\r\n get busAttr(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n let busAttr: any;\r\n let attrSubmittedType: any[] = [];\r\n if (controlAttr.busAttr) {\r\n busAttr = formBeanUtilsService.parse(controlAttr.busAttr);\r\n if (busAttr[FormBusAttr.SUBMITTED_TYPE.code]) {\r\n attrSubmittedType = busAttr[FormBusAttr.SUBMITTED_TYPE.code].split(\",\").filter((item: any) => !!item);\r\n }\r\n }\r\n const submittedType: any[] = Object.values(SubmittedType).map((val: any) => ({ label: val.name, value: val.code }));\r\n const submittedTypeCheckedNode: any[] = [];\r\n submittedType.forEach((item) => {\r\n if (attrSubmittedType.findIndex((it) => it === item.value) > -1) {\r\n submittedTypeCheckedNode.push(item);\r\n }\r\n });\r\n return {\r\n [FormBusAttr.SUBMITTED_TYPE.code]: submittedTypeCheckedNode,\r\n [FormBusAttr.IS_SUPPLEMENT.code]: busAttr ? busAttr[FormBusAttr.IS_SUPPLEMENT.code] : false,\r\n [FormBusAttr.IS_KEY_ELEMENTS.code]: busAttr ? busAttr[FormBusAttr.IS_KEY_ELEMENTS.code] : false,\r\n [FormBusAttr.IS_TRACK.code]: busAttr ? busAttr[FormBusAttr.IS_TRACK.code] : false,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 报送类型\r\n * @author ChenRui\r\n * @date 2021/2/1 15:05\r\n */\r\n get submittedType(): any[] {\r\n if (this.busAttr && this.busAttr[FormBusAttr.SUBMITTED_TYPE.code].length > 0) {\r\n return this.busAttr[FormBusAttr.SUBMITTED_TYPE.code];\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 报送类型字符串\r\n * @author ChenRui\r\n * @date 2021/2/1 15:08\r\n */\r\n get submittedTypeStr(): string {\r\n return this.submittedType.map((item) => item.label).join(\"、\");\r\n }\r\n\r\n /**\r\n * 根据日期时间格式决定是否显示时间选择功能\r\n * @param format\r\n */\r\n showPickerTime(format?: string): any {\r\n // format 包含时间格式\r\n if (format && format.indexOf(\"HH:mm\") > -1) {\r\n return format;\r\n }\r\n return false;\r\n }\r\n /**\r\n * @description: 清除特殊字符\r\n * @author ChenRui\r\n * @date 2021/6/22 15:41\r\n */\r\n private clearNoNum(value: any) {\r\n if (value) {\r\n value = value.replace(/[^\\d.]/g, \"\"); //清除“数字”和“.”以外的字符\r\n value = value.replace(/\\.{2,}/g, \".\"); //只保留第一个. 清除多余的\r\n value = value.replace(\".\", \"$#$\").replace(/\\./g, \"\").replace(\"$#$\", \".\");\r\n // eslint-disable-next-line no-useless-escape\r\n value = value.replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, \"$1$2.$3\"); //只能输入两个小数\r\n if (value.indexOf(\".\") < 0 && value != \"\") {\r\n //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额\r\n value = parseFloat(value);\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n /**\r\n * @description: 校验数字是否超过16位纯编码\r\n * @author ChenRui\r\n * @date 2021/6/22 14:58\r\n */\r\n private validateNumBeyondLimit(value: any): boolean {\r\n if (value) {\r\n const pureNumber: string = value.replace(/[^0-9]/gi, \"\");\r\n return pureNumber.length > 16;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 删除文件\r\n * @author ChenRui\r\n * @date 2021/4/25 11:35\r\n */\r\n handleRemove(file: any): void {\r\n const index = this.formControl.value.indexOf(file);\r\n const newFileList = this.formControl.value.slice();\r\n newFileList.splice(index, 1);\r\n this.formControl.value = newFileList;\r\n }\r\n\r\n /**\r\n * @description: 文件上传前回调函数\r\n * @author ChenRui\r\n * @date 2021/4/25 11:23\r\n */\r\n beforeUpload(file: any): boolean {\r\n const fileList: any[] = [...this.formControl.value, file];\r\n this.formControl.value = fileList;\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 文件上传变更\r\n * @author ChenRui\r\n * @date 2021/4/25 11:29\r\n */\r\n handleUploadChange(event: any): any {\r\n let fileList: any[] = [...this.formControl.value];\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.maxUploadNumber && controlAttr.maxUploadNumber > 0) {\r\n fileList = fileList.slice(0 - Number(controlAttr.maxUploadNumber));\r\n }\r\n fileList = fileList.map((file) => {\r\n if (file.response) {\r\n file.url = file.response.url;\r\n }\r\n return file;\r\n });\r\n this.formControl.value = fileList;\r\n if (event && event.file && (event.file.status === undefined || event.file.status === \"removed\")) {\r\n this.onChange(this.control!);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 金额菜单单机事件\r\n * @author ChenRui\r\n * @date 2021/2/20 17:21\r\n */\r\n handleMoneyUnitMenuClick(e: any): void {\r\n this.defaultMoneyUnit = this.moneyUnits.find((item) => item.code === e.key);\r\n }\r\n\r\n /**\r\n * @description: 将下拉弹层渲染节点固定在触发器的父元素中\r\n * @author ZPFly\r\n * @date 2022/8/31 11:30\r\n */\r\n getPopupContainer(triggerNode: any) {\r\n return triggerNode.parentNode;\r\n }\r\n\r\n /**\r\n * @description: 输入事件处理\r\n * @author ChenRui\r\n * @date 2020/12/2 14:37\r\n */\r\n onChange(event: Control): void {\r\n if (this.control && (this.control.type === FormFieldClass.Base.code || this.control.type === FormFieldClass.Senior.code)) {\r\n this.validateResult = this.formControl.validate(event.formControl?.value);\r\n }\r\n this.$emit(\"change\", event);\r\n }\r\n\r\n /**\r\n * @description: 点击事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:37\r\n */\r\n onClick(event: Control): void {\r\n this.$emit(\"click\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置前置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:42\r\n */\r\n onAddonBeforeHandler(event: any): void {\r\n this.$emit(\"addon-before\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置后置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:43\r\n */\r\n onAddonAfterHandler(event: any): void {\r\n this.$emit(\"addon-after\", event);\r\n }\r\n\r\n /**\r\n * @description: 数字框失焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:51\r\n */\r\n onInputNumberFocus(event: Control): void {\r\n this.onFocus(event);\r\n if ((this.controlAttr as DesFormControl).isShowCapitalization) {\r\n this.numberPopoverVisible = true;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 数字输入框失焦\r\n * @author ChenRui\r\n * @date 2021/3/4 11:43\r\n */\r\n onInputNumberBlur(event: Control): void {\r\n this.onBlur(event);\r\n if ((this.controlAttr as DesFormControl).isShowCapitalization) {\r\n this.numberPopoverVisible = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:46\r\n */\r\n onFocus(event: Control): void {\r\n this.$emit(\"focus\", event);\r\n }\r\n\r\n /**\r\n * @description: 失焦事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:38\r\n */\r\n onBlur(event: Control): void {\r\n this.$emit(\"blur\", event);\r\n }\r\n\r\n /**\r\n * @Description 是否节假日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isRest(current: any): boolean {\r\n if (JSON.parse(this.weekdayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 是否工作日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isWeekday(current: any): boolean {\r\n if (JSON.parse(this.workdayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 是否交易日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isRadingDay(current: any): boolean {\r\n if (JSON.parse(this.traddayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 日期格式转换\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n DateTime(date: any): string {\r\n const year: any = date.getFullYear();\r\n let month: any = date.getMonth() + 1;\r\n let strDate: any = date.getDate();\r\n\r\n if (month < 10) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate < 10) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return \"\" + year + month + strDate;\r\n }\r\n}\r\n","import { render } from \"./DvFormLayout.vue?vue&type=template&id=439fd898&scoped=true&ts=true\"\nimport script from \"./DvFormLayout.vue?vue&type=script&lang=ts\"\nexport * from \"./DvFormLayout.vue?vue&type=script&lang=ts\"\n\nimport \"./DvFormLayout.vue?vue&type=style&index=0&id=439fd898&lang=scss&scoped=true\"\n\nimport exportComponent from \"E:\\\\base-frontend\\\\vue3-lo-form-251124\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-439fd898\"]])\n\nexport default __exports__","/* eslint-disable */\r\nclass DateFormatService {\r\n /**\r\n * 日期时间格式自定义\r\n * @param {number|string} value 日期时间值时间戳或时间格式\r\n * @param {string} format 输出的时间格式\r\n * @returns {string} 定义好的时间格式\r\n */\r\n formatDateTime(value: any, format = 'YYYY-MM-dd HH:mm:ss'): string {\r\n const reg = /(YY|YYYY|MM|dd|HH|mm|ss|ww|WW)/g;\r\n if (!value) {\r\n return ''\r\n }\r\n if (!reg.test(format)) {\r\n throw new Error(`The defined format ${format} is incorrect,Please enter 'YYYY or YY' for year,MM for month, dd for day,ww or WW for week,HH for hours,mm for minutes,ss for seconds.`)\r\n }\r\n if (typeof value === 'string' && value.length === 8) {\r\n value = [value.substr(0, 4), value.substr(4, 2), value.substr(6, 2)].join('/')\r\n } else if (!isNaN(Number(value))) {\r\n value = Number(value);\r\n }\r\n const time = new Date(value);\r\n if (String(time) === 'Invalid Date') {\r\n throw new Error(`Time format unrecognized by ${value}, Please enter time stamp or legal time format.`);\r\n }\r\n const dayMap = ['日', '一', '二', '三', '四', '五', '六'];\r\n const year = String(time.getFullYear());\r\n const month = time.getMonth() + 1 > 9 ? String(time.getMonth() + 1) : `0${String(time.getMonth() + 1)}`;\r\n const date = time.getDate() > 9 ? String(time.getDate()) : `0${String(time.getDate())}`;\r\n const day = time.getDay();\r\n const week: any = day !== 0 ? day : '日';\r\n const hours = time.getHours() > 9 ? String(time.getHours()) : `0${String(time.getHours())}`;\r\n const minutes = time.getMinutes() > 9 ? String(time.getMinutes()) : `0${time.getMinutes()}`;\r\n const seconds = time.getSeconds() > 9 ? String(time.getSeconds()) : `0${String(time.getSeconds())}`;\r\n let str = '';\r\n if (/YYYY|YY/g.test(format)) {\r\n format.replace(/YYYY|YY/g, (reg, index, value) => {\r\n if (reg === 'YY') {\r\n str = value.replace('YY', year.slice(2))\r\n }\r\n if (reg === 'YYYY') {\r\n str = value.replace('YYYY', year)\r\n }\r\n return str\r\n })\r\n } else {\r\n str = format\r\n }\r\n str = str.replace(/MM/g, month);\r\n str = str.replace(/dd/g, date);\r\n str = str.replace(/HH/g, hours);\r\n str = str.replace(/mm/g, minutes);\r\n str = str.replace(/ss/g, seconds);\r\n str = str.replace(/ww/g, week);\r\n str = str.replace(/WW/g, dayMap[day]);\r\n return str\r\n }\r\n\r\n /**\r\n * @Description:两个日期大小比较(开始时间 > 结束时间,返回true)\r\n * @author LiuBo\r\n * @date 2022/7/15\r\n * @time 10:43\r\n * @param startTime 开始时间 (YYYY-MM-DD)\r\n * @param endTime 结束时间 (YYYY-MM-DD)\r\n * @modifyLog\r\n */\r\n dateSizeCompare(startTime: string,endTime: string): boolean {\r\n return new Date(Date.parse(startTime.replace(/-/g,\"/\"))).getTime() >\r\n new Date(Date.parse(endTime.replace(/-/g,\"/\"))).getTime();\r\n }\r\n}\r\nconst dateFormat: DateFormatService = new DateFormatService();\r\nexport { dateFormat };\r\n","import { FormGroup } from \"@/domain\";\r\nimport { AbstractControl } from \"@/domain/AbstractControl\";\r\nimport { FormControl, Validate, ValidateReport, ValidateResult } from \"../domain/FormControl\";\r\nimport DvForm from \"../components/form/DvForm.vue\";\r\nimport { FormFieldType, OptionType, SubmittedType, ValidateRules, ValidateStatus } from \"../constants/enum\";\r\n// import moment from \"moment\";\r\nimport { ZoomType } from \"@/constants\";\r\nimport { extractOptions, storageOptions } from \"@/filtres/extract-options.filter\";\r\nimport { CustomFormat, FieldChangeHistory } from \"../domain\";\r\nimport { Rule, validateGeneratorService } from \"../services/validate-generator.service\";\r\nimport { formToolsService, formTreeNodeConvertService, formValidateService } from \"@/services\";\r\nimport { MathJsStatic } from \"mathjs\";\r\nimport { Vue } from \"vue-property-decorator\";\r\nimport dayjs from \"dayjs\";\r\nimport { dateFormat } from \"@/services/date-format.service\";\r\nexport type FormatType = \"default\" | \"ebtrust\";\r\n\r\nexport enum Attribute {\r\n IsHideControl = \"isHideControl\", // 隐藏控件\r\n IsRequiredValidate = \"isRequiredValidate\", // 是否必填\r\n FormFieldDescribe = \"formFieldDescribe\", // 字段别名\r\n FieldDefaultValue = \"fieldDefaultValue\", // 默认值\r\n TitleWidth = \"titleWidth\", // 标题宽度\r\n IsBoldTitle = \"isBoldTitle\", // 加粗标题\r\n IsHideTitle = \"isHideTitle\", // 隐藏标题\r\n TitleColor = \"titleColor\", // 标题颜色\r\n Placeholder = \"placeholder\", // 预期值的提示信息\r\n Tips = \"tips\", // 提示信息\r\n IsNotEdit = \"isNotEdit\", // 不可编辑\r\n BindingPrefix = \"bindingPrefix\", // 绑定前缀\r\n BindingSuffix = \"bindingSuffix\", // 绑定后缀\r\n BuiltInFrontLabel = \"builtInFrontLabel\", // 内置前置标签\r\n BuiltInPostLabel = \"builtInPostLabel\", // 内置后置标签\r\n ControlWidth = \"controlWidth\", // 控件宽度\r\n IsPasswordBox = \"isPasswordBox\", // 是否密码框\r\n InitRowHeight = \"initRowHeight\", // 初始行高\r\n IsFixedRowHeight = \"isFixedRowHeight\", // 是否固定行高\r\n FormatType = \"formatType\", // 格式化类型\r\n MinValue = \"minValue\", // 最小值\r\n MaxValue = \"maxValue\", // 最大值\r\n Step = \"step\", // 步长\r\n DecimalPlaces = \"decimalPlaces\", // 小数位\r\n ThousandthPercentileFormat = \"thousandthPercentileFormat\", // 千分位格式化\r\n Unit = \"unit\", // 单位\r\n ZoomType = \"zoomType\", // 缩放类型\r\n ZoomMultiple = \"zoomMultiple\", // 缩放倍数\r\n IsShowCapitalization = \"isShowCapitalization\", // 展示大写\r\n IsLineFeedDisplay = \"isLineFeedDisplay\", // 换行显示\r\n IsOptionType = \"isOptionType\", // 类型选项\r\n OptionConfig = \"optionConfig\", // 自定义字典项\r\n DateFormat = \"dateFormat\", // 日期格式\r\n TimeFormat = \"timeFormat\", // 时间格式\r\n IsSupportMultiple = \"isSupportMultiple\", // 是否支持多选\r\n MaxUploadNumber = \"maxUploadNumber\", // 最多上传个数\"\r\n LimitSize = \"limitSize\", // 上传大小限制\r\n SupportUploadType = \"supportUploadType\", // 扩展类型\r\n CustomUploadType = \"customUploadType\", // 自定义类型\r\n ExtendUploadType = \"extendUploadType\", // 扩展类型\r\n AttachmentExtendProperties = \"attachmentExtendProperties\", // 附件扩展属性\r\n IsMultipleChoice = \"isMultipleChoice\", // 是否可多选\r\n IsSearchable = \"isSearchable\", // 是否可搜索\r\n CanAddEntry = \"canAddEntry\", // 是否可新增条目\r\n IsClearButton = \"isClearButton\", // 显示清除按钮\r\n OnOpeningValue = \"onOpeningValue\", // 打开时的值\r\n WhenClosedValue = \"whenClosedValue\", // 关闭时的值\r\n OnOpeningText = \"onOpeningText\", // 打开时的文字描述\r\n WhenClosedText = \"whenClosedText\", // 关闭时的文字描述\r\n CustomFieldName = \"customFieldName\", // 自定义字段名\r\n TextFold = \"textFold\", // 文本折叠\r\n HiddenDropdown = \"hiddenDropdown\", // 隐藏下拉面板\r\n BusAttr = \"busAttr\", // 业务属性\r\n EnableAutoComplete = \"enableAutoComplete\", // 开启自动完成功能\r\n AutoCompleteOptions = \"autoCompleteOptions\", // 自动完成列表数据\r\n IsTreeOpen = \"isTreeOpen\", // 树形选择框是否展开\r\n CheckboxStyle = \"checkboxStyle\", // 多选器选项标签样式\r\n ItemWidth = \"itemWidth\",\r\n ChangeOnSelect = \"changeOnSelect\", // 是否允许级联选择框只选中父级选项\r\n TextareaRows = \"textareaRows\", // 设置textarea组件默认展示行数\r\n IsShowHoliday = \"isShowHoliday\", // 是否展示节假日\r\n}\r\n\r\n/**\r\n * @description: 表单基础类,聚合常用api\r\n * @author ChenRui\r\n * @date 2020/11/28 23:27\r\n */\r\nexport class FormApi {\r\n id?: any; // api编号\r\n dvForm: Vue | any; // form组件实例\r\n edit: boolean | undefined; // 编辑状态\r\n formatType: FormatType; // 数据格式化模式\r\n apiMetaRefresh: any; // api内部刷新标识\r\n [key: string]: any; // 任一扩展属性\r\n oldVal: any; //修改前数据\r\n\r\n /**\r\n * @description: 获取表单对象\r\n * @author ChenRui\r\n * @date 2020/11/28 23:29\r\n */\r\n constructor(\r\n options: {\r\n id?: any;\r\n dvForm?: Vue;\r\n edit?: boolean;\r\n formatType?: FormatType;\r\n } = {}\r\n ) {\r\n this.id = options.id || this.getUuid();\r\n this.dvForm = options.dvForm || new Vue(DvForm);\r\n this.edit = options.edit;\r\n this.formatType = options.formatType || \"default\";\r\n }\r\n\r\n get mathjs(): MathJsStatic {\r\n if ((window as any).$app.config.globalProperties.$mathjs) {\r\n return (window as any).$app.config.globalProperties.$mathjs;\r\n }\r\n return {} as MathJsStatic;\r\n }\r\n\r\n /**\r\n * @description: 获取表单值\r\n * @author ChenRui\r\n * @date 2021/2/4 10:36\r\n */\r\n get formData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n let obj: any = this.generateData(this.dvForm.desForm.formGroup);\r\n if (this.oldVal) {\r\n obj = this.contrast(this.oldVal, obj);\r\n if (!Object.keys(obj).length) {\r\n obj = null;\r\n }\r\n }\r\n return obj;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @Description 获取表单全部值\r\n * @Author JiangTao\r\n * @Date 2023-12-22 下午 02:50\r\n */\r\n get formAllData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n const obj: any = this.generateData(this.dvForm.desForm.formGroup);\r\n return obj;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 编码表单对象\r\n * @author ChenRui\r\n * @date 2021/4/25 16:41\r\n */\r\n get encodedFormData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n const data = this.generateData(this.dvForm.desForm.formGroup);\r\n return this.jsonToFormData(data);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 设置表单值\r\n * @author ChenRui\r\n * @date 2021/2/4 10:37\r\n */\r\n setFormData(srcData: any, isDefault = false, validate = false, oldVal?: any): void {\r\n if (this.dvForm.desForm.formGroup) {\r\n this.setFormDataInner(srcData, isDefault, validate);\r\n } else {\r\n setTimeout(() => {\r\n this.setFormDataInner(srcData, isDefault, validate);\r\n });\r\n }\r\n if (oldVal) this.oldVal = oldVal;\r\n }\r\n\r\n /**\r\n * @description: 获取控件对象\r\n * @author ChenRui\r\n * @date 2021/1/29 10:08\r\n */\r\n getControl(key: string, control?: AbstractControl, showError = true): AbstractControl | any {\r\n if (key) {\r\n if (control == null) {\r\n if (this.dvForm.desForm.formGroup) {\r\n control = this.dvForm.desForm.formGroup.controls;\r\n } else if (showError) {\r\n console.log(\"表单对象尚未初始化完成...\");\r\n }\r\n }\r\n if (control && Object.keys(control).length > 0) {\r\n for (const propName of Object.keys(control)) {\r\n if (propName === key) {\r\n return control[propName];\r\n }\r\n if (control[propName].controls && Object.keys(control[propName].controls).length > 0) {\r\n const subControl: AbstractControl = this.getControl(key, control[propName].controls);\r\n if (subControl != null) {\r\n return subControl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 获取值\r\n * @author ChenRui\r\n * @date 2021/1/29 14:57\r\n */\r\n getValue(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n // && control instanceof FormControl\r\n return this.decodeData(control as FormControl, false);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 设置值\r\n * @author ChenRui\r\n * @date 2021/1/29 16:23\r\n */\r\n setValue(key: string, val: any, isDefault = false, validate = true): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlValue(control, key, val, isDefault, validate);\r\n });\r\n } else {\r\n this.setControlValue(control, key, val, isDefault, validate);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 重置表单\r\n * @author ChenRui\r\n * @date 2021/2/22 17:40\r\n */\r\n resetValue(): void {\r\n this.dvForm.formatDesForm(true);\r\n }\r\n\r\n /**\r\n * @description: 获取文本内容\r\n * @author ChenRui\r\n * @date 2021/1/29 15:03\r\n */\r\n getText(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.text();\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 获取可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:11\r\n */\r\n getOptions(key: string): any[] {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr\r\n return extractOptions(control.controlAttr);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 设置可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:15\r\n */\r\n setOptions(key: string, data: any[], defaultVal?: any): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlOptions(control, key, data, defaultVal);\r\n });\r\n } else {\r\n this.setControlOptions(control, key, data, defaultVal);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取常规属性\r\n * @author ChenRui\r\n * @date 2021/1/29 17:21\r\n */\r\n getAttribute(key: string, attribute: Attribute): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr\r\n return control.controlAttr[attribute];\r\n }\r\n }\r\n /**\r\n * @description: 设置常规属性\r\n * @author ChenRui\r\n * @date 2021/1/29 17:21\r\n */\r\n setAttribute(key: string, attribute: Attribute, data: any): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlAttribute(control, attribute, data);\r\n });\r\n } else {\r\n this.setControlAttribute(control, attribute, data);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 根据name获取校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:46\r\n */\r\n getValidate(key: string, name: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.getValidate(name);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除校验\r\n * @author ChenRui\r\n * @date 2021/4/1 21:30\r\n */\r\n removeValidate(key: string, validateName: string): void {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const validates: Validate[] = control.validates;\r\n if (validates && validates.length > 0) {\r\n const index = validates.findIndex((item) => item.name === validateName);\r\n if (index !== -1) {\r\n validates.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除所有校验\r\n * @author ChenRui\r\n * @date 2021/4/1 21:48\r\n */\r\n removeAllValidates(key: string): void {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n control.validates = [];\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验集合\r\n * @author ChenRui\r\n * @date 2021/1/30 11:40\r\n */\r\n getValidates(key: string): Validate[] {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.validates;\r\n }\r\n return [];\r\n }\r\n /**\r\n * @Description: 设置必输校验\r\n * @author GuoXuHui\r\n * @date 2022-05-25\r\n * @time 10:09\r\n */\r\n setRequiredValidate(key: string, data: boolean) {\r\n if (data) {\r\n this.setValidate(key, { ruleType: ValidateRules.Required.code });\r\n } else {\r\n this.removeValidate(key, ValidateRules.Required.code); // 清除必填校验\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:54\r\n */\r\n setValidate(key: string, validate: Validate | Validate[] | Rule, isCover = false): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n this.setValidateInner(control, validate, isCover);\r\n }\r\n });\r\n } else {\r\n this.setValidateInner(control, validate, isCover);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 校验提示\r\n * @author ChenRui\r\n * @date 2021/8/18 17:40\r\n */\r\n validateTips(scrollView?: any): boolean {\r\n return formValidateService.validateTips(this, scrollView);\r\n }\r\n\r\n /**\r\n * @description: 全局校验报告\r\n * @author ChenRui\r\n * @date 2021/2/5 11:48\r\n */\r\n validateReport(formGroup?: AbstractControl, validateReports?: ValidateReport[], refreshFeedback = true): ValidateReport[] {\r\n if (validateReports == null) {\r\n validateReports = [];\r\n }\r\n if (formGroup == null) {\r\n formGroup = this.dvForm.desForm.formGroup;\r\n if (refreshFeedback) {\r\n this.dvForm.refreshCheckFeedbackFlag = new Date().getTime();\r\n }\r\n }\r\n if (formGroup != null) {\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n this.validateReport(formGroup.controls[propName], validateReports);\r\n } else if (formGroup.controls[propName] instanceof FormControl && !formGroup.controls[propName].controlAttr.isHideControl) {\r\n const validateResult: ValidateResult = formGroup.controls[propName].validate();\r\n if (validateResult.validateStatus === ValidateStatus.Error.code) {\r\n validateReports.push({\r\n key: formGroup.controls[propName].key,\r\n name: formGroup.controls[propName].controlAttr.formFieldDescribe,\r\n errorMsg: validateResult.errorMsg,\r\n controlType: formGroup.controls[propName].controlAttr.controlType,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return validateReports;\r\n }\r\n\r\n /**\r\n * @description: 表单全局校验\r\n * @author ChenRui\r\n * @date 2021/2/5 14:11\r\n */\r\n validate(refreshFeedback = true): boolean {\r\n const validateReports: ValidateReport[] = this.validateReport(undefined, undefined, refreshFeedback);\r\n return !(validateReports.length > 0);\r\n }\r\n\r\n /**\r\n * @description: 刷新校验\r\n * @author ChenRui\r\n * @date 2021/6/4 19:32\r\n */\r\n refreshValidate(key: string): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n });\r\n } else {\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 重置表单校验\r\n * @author ChenRui\r\n * @date 2022/4/6 11:51\r\n */\r\n resetFormValidateState(): void {\r\n this.dvForm.formValidateStateResetMark = new Date().getTime();\r\n }\r\n\r\n /**\r\n * @description: 设置格式化显示和输出函数\r\n * @author ChenRui\r\n * @date 2021/2/4 19:44\r\n */\r\n setFormatDisplayAndOutput(key: string, customFormat: CustomFormat): void {\r\n if (key) {\r\n this.dvForm.customFormats[key] = customFormat;\r\n }\r\n this.refreshAndUpdateData();\r\n }\r\n\r\n /**\r\n * @description: 刷新数据\r\n * @author ChenRui\r\n * @date 2021/2/4 20:22\r\n */\r\n refreshAndUpdateData(): void {\r\n this.dvForm.onRefreshArgumentsHandler(new Date().getTime());\r\n }\r\n\r\n /**\r\n * @description: 获取控件dom对象\r\n * @author ChenRui\r\n * @date 2021/2/26 17:12\r\n */\r\n getControlEl(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control != null && control.controlAttr) {\r\n const els: HTMLCollectionOf<any> = document.getElementsByClassName(\"form-model-item-\" + control.controlAttr.boundProperty);\r\n if (els != null && els.length > 0) {\r\n return els[0];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 检查是否包含上传控件\r\n * @author ChenRui\r\n * @date 2021/4/23 11:30\r\n */\r\n checkHasUploadControl(abstractControl: AbstractControl): boolean {\r\n if (abstractControl instanceof FormGroup) {\r\n const formGroup: FormGroup = abstractControl as FormGroup;\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n const judge = this.checkHasUploadControl(formGroup.controls[propName]);\r\n if (judge) {\r\n return judge;\r\n }\r\n } else if (formGroup.controls[propName] instanceof FormControl) {\r\n if (formGroup.controls[propName].code === FormFieldType.Upload.code) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: json格式转表单格式\r\n * @author ChenRui\r\n * @date 2020/8/28 15:20\r\n */\r\n jsonToFormData(params: any): FormData {\r\n const formData = new FormData();\r\n if (params != null) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key] != null && params[key] instanceof Array && params[key].length > 0 && params[key][0] instanceof File) {\r\n params[key].forEach((item: any) => {\r\n formData.append(key, item);\r\n });\r\n } else {\r\n formData.append(key, params[key]);\r\n }\r\n });\r\n return formData;\r\n }\r\n return formData;\r\n }\r\n\r\n /**\r\n * @description: 设置变更历史记录\r\n * @author ChenRui\r\n * @date 2021/4/25 15:55\r\n */\r\n setFieldChangeHistory(fieldChangeHistory: FieldChangeHistory): void {\r\n fieldChangeHistory = fieldChangeHistory || {};\r\n for (const propertyName of Object.keys(fieldChangeHistory)) {\r\n let control: AbstractControl = this.getControl(propertyName, undefined, false);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(propertyName, undefined, false);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const history = (fieldChangeHistory[propertyName] || []).sort((a, b) => {\r\n const aTime = new Date(a.time).getTime();\r\n const bTime = new Date(b.time).getTime();\r\n return bTime - aTime;\r\n });\r\n control.history = history;\r\n }\r\n });\r\n } else {\r\n control = this.getControl(propertyName, undefined, false);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const history = (fieldChangeHistory[propertyName] || []).sort((a, b) => {\r\n const aTime = new Date(a.time).getTime();\r\n const bTime = new Date(b.time).getTime();\r\n return bTime - aTime;\r\n });\r\n control.history = history;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 隐藏布局\r\n * @author ChenRui\r\n * @date 2021/11/16 0:01\r\n */\r\n hideLayout(layoutName: string, mark = true): void {\r\n if (layoutName) {\r\n const nodes: any = document.getElementsByClassName(\"lo-form-layout-\" + layoutName);\r\n if (nodes && nodes.length > 0) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n nodes[i].style.display = mark ? \"none\" : \"grid\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置表单值\r\n * @author ChenRui\r\n * @date 2021/8/16 9:29\r\n */\r\n private setFormDataInner(srcData: any, isDefault: boolean, validate: boolean): void {\r\n if (srcData) {\r\n for (const propName of Object.keys(srcData)) {\r\n if (typeof srcData[propName] === \"string\" || typeof srcData[propName] === \"number\") {\r\n this.setValue(propName, srcData[propName], isDefault, false);\r\n } else {\r\n this.setFormData(srcData[propName], isDefault, validate);\r\n }\r\n }\r\n }\r\n if (validate) {\r\n this.validate();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件值\r\n * @author ChenRui\r\n * @date 2021/4/13 12:50\r\n */\r\n private setControlValue(control: AbstractControl, key: string, val: any, isDefault?: boolean, validate = true): void {\r\n if (control) {\r\n // && control instanceof FormControl\r\n switch (control.code) {\r\n case FormFieldType.InputNumber.code:\r\n if (val && control.controlAttr.zoomMultiple) {\r\n if (control.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n val = this.mathjs.format(this.mathjs.evaluate(`${val} / ${control.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (control.controlAttr.zoomType === ZoomType.narrow.code) {\r\n val = this.mathjs.format(this.mathjs.evaluate(`${val} * ${control.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (val != undefined) {\r\n control.value = val;\r\n } else {\r\n control.value = \"\";\r\n }\r\n break;\r\n case FormFieldType.Select.code:\r\n if (control.controlAttr.isMultipleChoice) {\r\n if (!val) {\r\n val = [];\r\n } else if (typeof val === \"string\") {\r\n val = val.split(\",\");\r\n }\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n case FormFieldType.Cascader.code:\r\n if (val) {\r\n val = val.split(\",\");\r\n } else {\r\n val = [];\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.Switch.code:\r\n if (control.controlAttr.onOpeningValue) {\r\n val = val === true || val === control.controlAttr.onOpeningValue;\r\n } else if (control.controlAttr.whenClosedValue) {\r\n val = !(val === false || val === control.controlAttr.whenClosedValue);\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (val) {\r\n if (typeof val === \"string\") {\r\n val = dayjs(new Date(this.nowDateStr() + \" \" + val));\r\n } else if (val instanceof Date) {\r\n val = dayjs(val);\r\n }\r\n control.value = val;\r\n } else {\r\n control.value = null;\r\n }\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n if (val) {\r\n if (typeof val === \"string\") {\r\n val = dayjs(val, control.dateFormat);\r\n } else if (val instanceof Date) {\r\n val = dayjs(val);\r\n }\r\n control.value = val;\r\n } else {\r\n control.value = null;\r\n }\r\n break;\r\n default: {\r\n control.value = val;\r\n }\r\n }\r\n if (isDefault) {\r\n this.setAttribute(key, Attribute.FieldDefaultValue, JSON.stringify(control.value));\r\n }\r\n if (validate) {\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件可选项\r\n * @author ChenRui\r\n * @date 2021/4/13 15:09\r\n */\r\n private setControlOptions(control: AbstractControl, key: string, data: any[], defaultVal?: any): void {\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr)\r\n storageOptions(control.controlAttr, data);\r\n this.setAttribute(key, Attribute.IsOptionType, OptionType.Fixed.code);\r\n this.setAttribute(key, Attribute.OptionConfig, data);\r\n }\r\n if (defaultVal) {\r\n this.setValue(key, defaultVal, true);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件常规属性\r\n * @author ChenRui\r\n * @date 2021/4/13 15:11\r\n */\r\n private setControlAttribute(control: AbstractControl, attribute: Attribute, data: any): void {\r\n if (control && attribute) {\r\n //control && control instanceof FormControl && attribute\r\n control.controlAttr[attribute] = data;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置校验内部函数\r\n * @author ChenRui\r\n * @date 2021/7/19 17:51\r\n */\r\n private setValidateInner(control: AbstractControl, validate: Validate | Validate[] | Rule, isCover = false): void {\r\n if (validate != null && (validate as Rule).ruleType) {\r\n validate = validateGeneratorService.getBuiltInValidationRules(validate as Rule, control.controlAttr) as any;\r\n }\r\n if (validate != null) {\r\n if (isCover) {\r\n control.validates = [];\r\n }\r\n control.addValidate(validate);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 生成数据信息\r\n * @author ChenRui\r\n * @date 2021/1/29 10:06\r\n */\r\n private generateData(abstractControl: AbstractControl, obj: any = {}): any {\r\n if (abstractControl instanceof FormGroup) {\r\n const formGroup: FormGroup = abstractControl as FormGroup;\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n obj[propName] = this.generateData(formGroup.controls[propName], obj[propName]);\r\n } else if (formGroup.controls[propName] instanceof FormControl) {\r\n obj[propName] = this.decodeData(formGroup.controls[propName] as FormControl);\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n /**\r\n * @description: 数据解码输出\r\n * @author ChenRui\r\n * @date 2021/5/29 23:03\r\n */\r\n private decodeData(formControl: FormControl, isFinal = true): any {\r\n let data = formControl.value || \"\";\r\n switch (formControl.code) {\r\n case FormFieldType.InputNumber.code:\r\n if (data && formControl.controlAttr.zoomMultiple) {\r\n if (formControl.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.narrow.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} / ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.automatic.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (formControl.value === 0) {\r\n data = 0;\r\n }\r\n break;\r\n case FormFieldType.Select.code:\r\n if (formControl.controlAttr.isMultipleChoice && data && Array.isArray(data)) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n if (data && isFinal) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (data) {\r\n data = dayjs(data).format(formControl.controlAttr.timeFormat || \"LTS\");\r\n }\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n if (data) {\r\n data = dayjs(data).format(formControl.controlAttr.dateFormat || \"YYYY-MM-DD\");\r\n }\r\n break;\r\n case FormFieldType.Cascader.code:\r\n if (data) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.Switch.code:\r\n data = !!data;\r\n if (formControl.controlAttr) {\r\n if (data === true && formControl.controlAttr.onOpeningValue != undefined && formControl.controlAttr.onOpeningValue !== \"\") {\r\n data = formControl.controlAttr.onOpeningValue;\r\n } else if (data === false && formControl.controlAttr.whenClosedValue != undefined && formControl.controlAttr.whenClosedValue !== \"\") {\r\n data = formControl.controlAttr.whenClosedValue;\r\n }\r\n }\r\n break;\r\n case FormFieldType.Custom.code:\r\n if (formControl.controlAttr && formControl.controlAttr.customFieldName) {\r\n const customFormat: CustomFormat = this.dvForm.customFormats[formControl.controlAttr.customFieldName];\r\n if (customFormat && customFormat.output) {\r\n data = customFormat.output(data, formControl.controlAttr);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * @description: 获取当前日期字符串\r\n * @author ChenRui\r\n * @date 2021/2/4 11:43\r\n */\r\n private nowDateStr(): string {\r\n const time = new Date();\r\n const day = (\"0\" + time.getDate()).slice(-2);\r\n const month = (\"0\" + (time.getMonth() + 1)).slice(-2);\r\n return time.getFullYear() + \"/\" + month + \"/\" + day;\r\n }\r\n\r\n /**\r\n * @description: uuid生成器\r\n * @author ChenRui\r\n * @date 2021/7/20 11:14\r\n */\r\n private getUuid(): string {\r\n const s: any[] = [];\r\n const hexDigits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n for (let i = 0; i < 36; i++) {\r\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n }\r\n s[14] = \"4\";\r\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\r\n s[8] = s[13] = s[18] = s[23] = \"-\";\r\n const uuid = s.join(\"\");\r\n return uuid;\r\n }\r\n\r\n /**\r\n * @Description: 对比新旧表单值\r\n * @author lzs\r\n * @date 2022/9/3\r\n * @time 21:49\r\n */\r\n private contrast(objectA: any, objectB: any): any {\r\n const object: any = {};\r\n const data: any = {};\r\n const fieldInfoArr: any = [];\r\n if (!objectB || !objectA) {\r\n object.changeLog = \"必传参数不存在\";\r\n return object;\r\n }\r\n const handlerFlag = objectA.handlerFlag;\r\n // console.log(\"======\", this.dvForm.desForm.formGroup.controls);\r\n for (const key in this.dvForm.desForm.formGroup.controls) {\r\n if (!objectA[key] && !objectB[key]) {\r\n continue;\r\n }\r\n const control: AbstractControl = this.getControl(key);\r\n if (!control) {\r\n continue;\r\n }\r\n if (this.getChangedInfo(control, objectA[key], objectB[key])) {\r\n let oldValue = objectA[key]; // 记录新值\r\n const newValue = objectB[key]; // 记录旧值\r\n const fieldInfo: any = {}; //日志信息\r\n if (control.code !== FormFieldType.Custom.code) {\r\n fieldInfo.field_cd = key; //字段英文\r\n const name = control.controlAttr.formFieldDescribe;\r\n fieldInfo.field_nm = name; //字段中文\r\n fieldInfo.field_key = newValue; //当前值\r\n\r\n const newDict = this.translateDictionaries(control, key, newValue); // 新值描述\r\n fieldInfo.field_value = newDict; //当前值描述\r\n\r\n fieldInfo.is_change = \"1\"; //是否变动\r\n\r\n fieldInfo.field_old_key = oldValue; //旧值\r\n const oldDict = this.translateDictionaries(control, key, oldValue); //旧值描述\r\n fieldInfo.field_old_value = oldDict; //field_old_value\r\n object[key] = newValue;\r\n\r\n fieldInfoArr.push(fieldInfo);\r\n if (oldValue === \"null\" || oldValue === \"undefined\") {\r\n oldValue = \"\";\r\n }\r\n const oldName = oldValue ? oldDict : \"空\";\r\n const newName = newValue ? newDict : \"空\";\r\n //除自定义组件均记录日志\r\n object.changeLog = object.changeLog ? object.changeLog + \",\" : \"\";\r\n if (handlerFlag === \"add\") {\r\n object.changeLog = object.changeLog + \"新增【\" + name + \"】\" + \"为“\" + newName + \"”\";\r\n } else {\r\n object.changeLog = object.changeLog + \"修改【\" + name + \"】\" + \"由“\" + oldName + \"”修改为“\" + newName + \"”\";\r\n }\r\n } else {\r\n object[key] = newValue;\r\n }\r\n }\r\n }\r\n object.fieldInfoArr = fieldInfoArr;\r\n return object;\r\n }\r\n /**\r\n * @Description: 获取表单值更改信息\r\n * @author lzs\r\n * @date 2022/10/11\r\n * @time 09:53\r\n */\r\n getChangedInfo(control: any, oldValue: any, newValue: any): boolean {\r\n oldValue = oldValue + \"\";\r\n newValue = newValue + \"\";\r\n if (oldValue === \"null\" || oldValue === \"undefined\") {\r\n return true;\r\n }\r\n let flag = true;\r\n switch (control.code) {\r\n case FormFieldType.Input.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Textarea.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Slider.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Rate.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Select.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Radio.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n oldValue = dateFormat.formatDateTime(oldValue, \"YYYY-MM-dd\");\r\n newValue = dateFormat.formatDateTime(newValue, \"YYYY-MM-dd\");\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Cascader.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.TreeSelect.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Switch.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Custom.code:\r\n break;\r\n }\r\n return flag;\r\n }\r\n /**\r\n * @Description: 翻译字典项\r\n * @author lzs\r\n * @date 2022/9/6\r\n * @time 11:54\r\n */\r\n translateDictionaries(control: any, key: any, value: any): string {\r\n let str = value;\r\n switch (control.code) {\r\n case FormFieldType.Input.code:\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n break;\r\n case FormFieldType.Textarea.code:\r\n break;\r\n case FormFieldType.Slider.code:\r\n break;\r\n case FormFieldType.Rate.code:\r\n break;\r\n case FormFieldType.Select.code:\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n }\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n str = \"\";\r\n if (value) {\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n }\r\n str = str.substring(0, str.length - 1);\r\n }\r\n break;\r\n case FormFieldType.Radio.code:\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n }\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n str = dateFormat.formatDateTime(value, \"YYYY-MM-dd\");\r\n break;\r\n case FormFieldType.Cascader.code:\r\n str = \"\";\r\n if (value) {\r\n formTreeNodeConvertService.treeNodeConvertToArray(control.controlAttr.treeShapeOptions, [], \"children\").forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n str = str.substring(0, str.length - 1);\r\n } else {\r\n str = \"\";\r\n }\r\n break;\r\n case FormFieldType.TreeSelect.code:\r\n str = \"\";\r\n formTreeNodeConvertService.treeNodeConvertToArray(control.controlAttr.treeShapeOptions, [], \"children\").forEach((item: any) => {\r\n if (item.value === value) {\r\n str = str + item.title;\r\n }\r\n });\r\n break;\r\n case FormFieldType.Switch.code:\r\n str = value ? \"开\" : \"关\";\r\n break;\r\n case FormFieldType.Custom.code:\r\n break;\r\n default:\r\n str = value;\r\n break;\r\n }\r\n return str;\r\n }\r\n\r\n /**\r\n * @Description 根据报送类型返回需要隐藏的表单字段\r\n * @Author JiangTao\r\n * @Date 2024-01-30 上午 09:33\r\n */\r\n getFormSubmittedType(form: any, code: any) {\r\n const strArr = code && code.length > 0 ? code : [];\r\n const list: any = this.dvForm.desForm.controls[0].subControls;\r\n const subControlsList: any = formToolsService.loadResource(this.dvForm.desForm.formId).controls[0].subControls;\r\n const submittedTypeList: any = [];\r\n if (strArr.length > 0) {\r\n // 遍历组件实例\r\n list.forEach((item: any, index: any) => {\r\n if (item.formControl) {\r\n // 校验当前字段是否已隐藏,已隐藏的字段不做处理\r\n if (!form.getAttribute(item.formControl.key, Attribute.IsHideControl)) {\r\n // 处理普通表单控件\r\n submittedTypeList.push(item.formControl.key);\r\n // 初始化字段是否隐藏属性\r\n form.setAttribute(item.formControl.key, Attribute.IsHideControl, subControlsList[index].controlAttr.isHideControl);\r\n // 筛选报送类型字段数据处理\r\n this.handleSubmittedData(submittedTypeList, strArr, item);\r\n }\r\n } else if (item.subControls) {\r\n // 处理栅格中表单控件\r\n // 遍历栅格中控件\r\n item.subControls.forEach((control: any, num: any) => {\r\n // 校验当前字段是否已隐藏,已隐藏的字段不做处理\r\n if (!form.getAttribute(control.formControl.key, Attribute.IsHideControl)) {\r\n submittedTypeList.push(control.formControl.key);\r\n // 初始化字段是否隐藏属性\r\n form.setAttribute(control.formControl.key, Attribute.IsHideControl, subControlsList[index].subControls[num].controlAttr.isHideControl);\r\n // 筛选报送类型字段数据处理\r\n this.handleSubmittedData(submittedTypeList, strArr, control);\r\n }\r\n });\r\n }\r\n });\r\n // 隐藏无需展示的表单字段\r\n submittedTypeList.forEach((item: any) => {\r\n form.setAttribute(item, Attribute.IsHideControl, true);\r\n });\r\n } else {\r\n // 默认展示全部字段\r\n list.forEach((item: any, index: any) => {\r\n if (item.formControl) {\r\n form.setAttribute(item.formControl.key, Attribute.IsHideControl, subControlsList[index].controlAttr.isHideControl);\r\n } else if (item.subControls) {\r\n item.subControls.forEach((control: any, num: any) => {\r\n form.setAttribute(control.formControl.key, Attribute.IsHideControl, subControlsList[index].subControls[num].controlAttr.isHideControl);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @Description 筛选报送类型字段数据处理\r\n * @Author JiangTao\r\n * @Date 2024-01-30 下午 08:50\r\n */\r\n private handleSubmittedData(submittedTypeList: any, codeArr: any, submittedData: any): void {\r\n let submittedType: any = [];\r\n if (JSON.parse(submittedData.formControl.controlAttr.busAttr).submittedType !== \"\") {\r\n // 获取字段报送类型\r\n submittedType = JSON.parse(submittedData.formControl.controlAttr.busAttr).submittedType.split(\",\");\r\n // 遍历查询报送类型\r\n for (let i = 0; i < codeArr.length; i++) {\r\n // 判断是否为查询的报送类型字段\r\n if (submittedType.filter((type: any) => type === codeArr[i]).length > 0 && submittedTypeList.indexOf(submittedData.formControl.key) >= 0) {\r\n submittedTypeList.splice(submittedTypeList.indexOf(submittedData.formControl.key), 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @Description 获取报送类型枚举(数组)\r\n * @Author JiangTao\r\n * @Date 2024-01-30 下午 03:30\r\n */\r\n getSubmittedType() {\r\n const list: any = [];\r\n Object.values(SubmittedType).forEach((item: any) => {\r\n list.push({\r\n value: item.code,\r\n label: item.name,\r\n });\r\n });\r\n return list;\r\n }\r\n}\r\n","\r\nimport DvFormLayout from \"./DvFormLayout.vue\";\r\nimport { Options, Prop, Provide, Watch, Vue } from \"vue-property-decorator\";\r\nimport { DesForm } from \"@/domain\";\r\nimport { FormFieldClass } from \"@/constants\";\r\nimport { formToolsService } from \"@/services\";\r\nimport { Control } from \"@/domain\";\r\nimport { DesFormControl } from \"@/domain\";\r\nimport { FormGroup } from \"@/domain\";\r\nimport { FormControl } from \"@/domain\";\r\nimport { formBeanUtilsService } from \"@/services\";\r\nimport { FormApi } from \"@/core\";\r\nimport { FormFieldType } from \"@/constants\";\r\nimport { ProvideInjectData } from \"@/domain/ProvideInjectData\";\r\nimport { validateGeneratorService } from \"@/services\";\r\nimport { CustomFormat, FieldChangeHistory } from \"../../domain\";\r\nimport { extractOptions } from \"@/filtres/extract-options.filter\";\r\nimport { DynamicOptionType, OptionType } from \"../../constants/enum\";\r\nimport { NzTreeNodeOptions } from \"@/services\";\r\n\r\nexport type NfFormMode = \"manual\" | \"auto\";\r\n\r\nexport type NfStyleMode = \"default\" | \"trust\" | \"credit-rd\";\r\n\r\nexport type NfFormTheme = \"default\" | \"gray\";\r\n/**\r\n * @description: 动态表单\r\n * @author ChenRui\r\n * @date 2020/12/30 11:20\r\n */\r\n@Options({\r\n name: \"DyForm\",\r\n components: {\r\n DvFormLayout: DvFormLayout,\r\n },\r\n})\r\nexport default class DyForm extends Vue {\r\n @Prop() formId: string | undefined;\r\n @Prop() mode: NfFormMode | undefined;\r\n @Prop({ type: String, default: \"default\" }) styleMode!: NfStyleMode;\r\n @Prop() srcDesForm: DesForm | undefined;\r\n @Prop({ default: false, type: Boolean }) edit!: boolean;\r\n @Prop({ default: false, type: Boolean }) colon!: boolean;\r\n @Prop({ default: \"130px\", type: String }) labelSpan!: string;\r\n @Prop({ default: undefined }) controlSpan!: any;\r\n @Prop({ type: Object }) formApi: FormApi | undefined;\r\n @Prop({ type: Array }) history: FieldChangeHistory | undefined;\r\n @Prop({ type: Object, default: () => ({}) }) customFormats!: {\r\n [key: string]: CustomFormat;\r\n };\r\n @Prop() refreshArguments: any; // 刷新自变量\r\n @Prop({ default: false }) widthCompatibleMode!: boolean; // 宽度计算模式\r\n @Prop({ type: String }) formTheme!: NfFormTheme; // 表单主题\r\n @Prop({ type: Array }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n\r\n private metaRefresh: any = new Date().getTime(); // 刷新标识\r\n private refreshCheckFeedbackFlag = new Date().getTime(); // 刷新校验标识\r\n private sysDictDetailOptions: NzTreeNodeOptions[] = []; // 常规字典\r\n private sysDictTreeDetailOptions: NzTreeNodeOptions[] = []; // 树形字典\r\n private formValidateStateResetMark: any = new Date().getTime(); // 重置校验标识\r\n\r\n desForm: DesForm = new DesForm();\r\n\r\n @Provide() provideInjectData: ProvideInjectData = {\r\n edit: (this.$props as any).edit,\r\n labelSpan: (this.$props as any).labelSpan,\r\n controlSpan: (this.$props as any).controlSpan,\r\n colon: (this.$props as any).colon,\r\n metaRefresh: this.metaRefresh,\r\n refreshCheckFeedbackFlag: this.refreshCheckFeedbackFlag,\r\n widthCompatibleMode: (this.$props as any).widthCompatibleMode,\r\n formValidateStateResetMark: this.formValidateStateResetMark,\r\n };\r\n\r\n /**\r\n * @description: 刷新自变量监听处理\r\n * @author ChenRui\r\n * @date 2021/2/5 10:25\r\n */\r\n @Watch(\"refreshArguments\", { immediate: true })\r\n onRefreshArgumentsHandler(newVal: any): void {\r\n this.metaRefresh = newVal;\r\n }\r\n\r\n /**\r\n * @description: 重置表单校验状态监听\r\n * @author ChenRui\r\n * @date 2022/4/6 14:17\r\n */\r\n @Watch(\"formValidateStateResetMark\")\r\n onPropFormValidateStateResetHandler(newVal: any): void {\r\n if ((this as any)._provided) {\r\n ((this as any)._provided as any).provideInjectData.formValidateStateResetMark = this.formValidateStateResetMark;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 值变更处理器\r\n * @author ChenRui\r\n * @date 2021/1/8 11:03\r\n */\r\n @Watch(\"edit\")\r\n @Watch(\"labelSpan\")\r\n @Watch(\"controlSpan\")\r\n @Watch(\"metaRefresh\")\r\n @Watch(\"refreshCheckFeedbackFlag\")\r\n @Watch(\"widthCompatibleMode\")\r\n onPropHandler(newVal: any): void {\r\n if (this) {\r\n this.provideInjectData.edit = this.edit;\r\n this.provideInjectData.labelSpan = this.labelSpan;\r\n this.provideInjectData.controlSpan = this.controlSpan;\r\n this.provideInjectData.metaRefresh = this.metaRefresh;\r\n this.provideInjectData.refreshCheckFeedbackFlag = this.refreshCheckFeedbackFlag;\r\n this.provideInjectData.widthCompatibleMode = this.widthCompatibleMode;\r\n }\r\n }\r\n\r\n get loFormTheme(): string {\r\n const win: any = window;\r\n const themes = [\"default\", \"gray\"];\r\n const formTheme = themes.indexOf(this.formTheme) > -1 ? this.formTheme : win.$loFormTheme;\r\n return themes.indexOf(formTheme) > -1 ? formTheme : themes[0];\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:Object { key: 元素码值, value: 元素值 })\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:16\r\n */\r\n linkClick(data: any) {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n created() {\r\n this.initDict();\r\n }\r\n\r\n mounted() {\r\n if (this.formId) {\r\n this.initDesForm();\r\n } else if (this.desForm) {\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n @Watch(\"formId\")\r\n private onFormIdChanged() {\r\n this.initDesForm();\r\n }\r\n\r\n @Watch(\"srcDesForm\", { immediate: true })\r\n private onSrcDesFormChanged(newVal: DesForm) {\r\n if (newVal != null) {\r\n this.desForm = formBeanUtilsService.copy(newVal);\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化表单\r\n * @author ChenRui\r\n * @date 2020/11/23 11:19\r\n */\r\n private initDesForm(): void {\r\n if (this.formId != null && this.formId !== \"\") {\r\n this.desForm = formToolsService.loadResource(this.formId);\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化字典\r\n * @author ChenRui\r\n * @date 2021/3/12 10:12\r\n */\r\n private initDict(): void {\r\n this.sysDictDetailOptions = formToolsService.sysDictDetailOptions;\r\n this.sysDictTreeDetailOptions = formToolsService.sysDictTreeDetailOptions;\r\n }\r\n\r\n /**\r\n * @description: 格式化表单\r\n * @author ChenRui\r\n * @date 2020/11/30 16:05\r\n */\r\n private formatDesForm(isReset?: boolean): void {\r\n if (this.desForm != null && this.desForm.controls != null && this.desForm.controls.length > 0) {\r\n const model = this.analysisBindingObjects();\r\n this.desForm.formGroup = this.generateFormGroup(model);\r\n this.initControlForm(this.desForm.controls, this.desForm.formGroup);\r\n this.generateFormApi(isReset);\r\n if (this.history != null) {\r\n this.formApi?.setFieldChangeHistory(this.history);\r\n }\r\n this.$emit(\"complete\");\r\n }\r\n }\r\n /**\r\n * @Description: 临时-该方法被取消\r\n * @author LiuBo\r\n * @date 2022/11/6\r\n * @time 17:11\r\n */\r\n private fixFormLayout() {\r\n this.$nextTick(() => {\r\n console.log(\"自动修改表单宽度\");\r\n try {\r\n const formView: any = this.$refs.formView;\r\n const cons = formView.getElementsByClassName(\"lo-control-container\");\r\n const len = cons.length;\r\n for (let i = 0; i < len - 1; i++) {\r\n if (cons[i].offsetLeft === cons[i + 1].offsetLeft && cons[i].clientWidth < cons[i + 1].clientWidth) {\r\n cons[i].style.width = \"200%\";\r\n } else {\r\n cons[i].style.width = \"100%\";\r\n }\r\n }\r\n if (len > 2) {\r\n const con1 = cons[len - 1];\r\n const con2 = cons[len - 2];\r\n if (con1.clientWidth === con2.clientWidth && con1.offsetLeft !== con2.offsetLeft) {\r\n con1.style.width = \"200%\";\r\n } else {\r\n con1.style.width = \"100%\";\r\n }\r\n }\r\n } catch (e) {\r\n console.error(\"自动修改表单宽度错误\" + e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 生成表单对象\r\n * @author ChenRui\r\n * @date 2021/1/7 20:48\r\n */\r\n private generateFormApi(isReset?: boolean): void {\r\n if (isReset) {\r\n const formApi: FormApi = new FormApi(this.formApi);\r\n formApi.dvForm = this;\r\n this.$emit(\"update:formApi\", formApi);\r\n } else {\r\n if (this.formApi) {\r\n this.formApi.dvForm = this;\r\n this.$emit(\"update:formApi\", this.formApi);\r\n } else {\r\n const formApi = new FormApi({ dvForm: this });\r\n this.$emit(\"update:formApi\", formApi);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 解析对象\r\n * @author ChenRui\r\n * @date 2020/11/25 16:25\r\n */\r\n private analysisBindingObjects(): any {\r\n const models: any[] = this.objectExtraction(this.desForm!.controls);\r\n let obj: any = {};\r\n if (models != null && models.length > 0) {\r\n models.forEach((item) => {\r\n if (Object.keys(item).length > 0) {\r\n obj = this.objectMerge(obj, item[Object.keys(item)[0]]);\r\n }\r\n });\r\n }\r\n return obj;\r\n }\r\n\r\n /**\r\n * @description: 对象抽取\r\n * @author ChenRui\r\n * @date 2020/11/25 17:28\r\n */\r\n private objectExtraction(controls: Control[], models: any[] = []): any {\r\n controls.forEach((item) => {\r\n if (item.type === FormFieldClass.Layout.code) {\r\n if (item.subControls != null && item.subControls.length > 0) {\r\n return this.objectExtraction(item.subControls, models);\r\n }\r\n } else {\r\n const desFormControl: DesFormControl = item?.controlAttr as DesFormControl;\r\n const boundProperty: string = desFormControl.boundProperty;\r\n if (boundProperty) {\r\n /* 初始化字典项数据 */\r\n if (desFormControl.generalDictionary || desFormControl.treeShape) {\r\n if (desFormControl.isOptionType === OptionType.Dynamic.code) {\r\n if (desFormControl.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n desFormControl.generalDictionaryOptions = this.findDictOptions(desFormControl.generalDictionary, this.sysDictDetailOptions);\r\n } else if (desFormControl.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n desFormControl.treeShapeOptions = this.findDictOptions(desFormControl.treeShape, this.sysDictTreeDetailOptions);\r\n }\r\n }\r\n }\r\n /*初始化默认值*/\r\n const propertys: string[] = boundProperty.split(\".\");\r\n let lastMd: any = {};\r\n const md = { lastMd };\r\n propertys.forEach((val, idx, array) => {\r\n if (idx < array.length - 1) {\r\n lastMd[val] = {};\r\n lastMd = lastMd[val];\r\n } else {\r\n const defaultValue: any = formBeanUtilsService.parse((item.controlAttr as DesFormControl).fieldDefaultValue) || \"\";\r\n lastMd[val] = this.securityValue(item, defaultValue);\r\n }\r\n });\r\n models.push(md.lastMd);\r\n }\r\n }\r\n });\r\n return models;\r\n }\r\n\r\n /**\r\n * @description: 查询字典\r\n * @author ChenRui\r\n * @date 2021/3/11 17:19\r\n */\r\n private findDictOptions(key: string, nzTreeNodeOptions: NzTreeNodeOptions[]): NzTreeNodeOptions[] {\r\n if (nzTreeNodeOptions != null && nzTreeNodeOptions.length > 0) {\r\n for (const item of nzTreeNodeOptions) {\r\n if (item.key === key) {\r\n (item.children || []).forEach((item) => {\r\n item.disabled = false;\r\n });\r\n return item.children || [];\r\n } else if (item.children && item.children.length > 0) {\r\n const subTtems: NzTreeNodeOptions[] = this.findDictOptions(key, item.children);\r\n if (subTtems != null && subTtems.length > 0) {\r\n return subTtems;\r\n }\r\n }\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 安全值处理\r\n * @author ChenRui\r\n * @date 2021/1/29 17:01\r\n */\r\n securityValue(control: Control, defaultValue: any): any {\r\n if (control.code === FormFieldType.DatePicker.code || control.code === FormFieldType.TimePicker.code) {\r\n if (defaultValue) {\r\n return defaultValue;\r\n } else {\r\n return null;\r\n }\r\n } else if (control.code === FormFieldType.TreeSelect.code) {\r\n const options = extractOptions(control.controlAttr);\r\n if (options && options.length > 0 && defaultValue) {\r\n defaultValue = this.treeSelectRecursion(defaultValue, options);\r\n }\r\n return defaultValue;\r\n } else if (control.code === FormFieldType.Upload.code) {\r\n return defaultValue || [];\r\n } else if (control.code === FormFieldType.Switch.code) {\r\n if (control.controlAttr && (control.controlAttr as DesFormControl).onOpeningValue) {\r\n return defaultValue === true || defaultValue === (control.controlAttr as DesFormControl).onOpeningValue ? true : false;\r\n } else if (control.controlAttr && (control.controlAttr as DesFormControl).whenClosedValue) {\r\n return defaultValue === false || defaultValue === (control.controlAttr as DesFormControl).whenClosedValue ? false : true;\r\n }\r\n return defaultValue;\r\n } else {\r\n return defaultValue;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 树形递归\r\n * @author ChenRui\r\n * @date 2021/1/11 0:23\r\n */\r\n treeSelectRecursion(value: any, items: any[]): any {\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].key === value) {\r\n return items[i].value;\r\n } else if (items[i].children && items[i].children.length > 0) {\r\n const subValue = this.treeSelectRecursion(value, items[i].children);\r\n if (subValue) {\r\n return subValue;\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 对象合并\r\n * @author ChenRui\r\n * @date 2020/11/25 17:49\r\n */\r\n private objectMerge(modelX: any, modelY: any): any {\r\n let key;\r\n for (key in modelY) {\r\n if (modelX[key] && modelX[key].toString() === \"[object Object]\" && modelY[key] && modelY[key].toString() === \"[object Object]\") {\r\n modelX[key] = this.objectMerge(modelX[key], modelY[key]);\r\n } else {\r\n modelX[key] = modelX[key] = modelY[key];\r\n }\r\n }\r\n return modelX;\r\n }\r\n\r\n /**\r\n * @description: 生成表单对象\r\n * @author ChenRui\r\n * @date 2020/11/26 11:02\r\n */\r\n private generateFormGroup(model: any): FormGroup {\r\n const group: FormGroup = new FormGroup();\r\n if (model != null) {\r\n Object.keys(model).forEach((key) => {\r\n if (Object.prototype.toString.call(model[key]) === \"[object Object]\") {\r\n const subFormGroup: FormGroup = this.generateFormGroup(model[key]);\r\n subFormGroup.key = key;\r\n group.addControl(key, subFormGroup);\r\n } else {\r\n const formControl: FormControl = new FormControl(model[key]);\r\n formControl.key = key;\r\n group.addControl(key, formControl);\r\n }\r\n });\r\n }\r\n return group;\r\n }\r\n\r\n /**\r\n * @description: 创建表单对象\r\n * @author ChenRui\r\n * @date 2020/11/23 11:19\r\n */\r\n private initControlForm(controls: Control[], formGroup: FormGroup): void {\r\n controls.forEach((control) => {\r\n if (control.type === FormFieldClass.Base.code || control.type === FormFieldClass.Senior.code) {\r\n const boundProperty: string = (control.controlAttr as DesFormControl)?.boundProperty;\r\n if (boundProperty) {\r\n const propertys: string[] = boundProperty.split(\".\");\r\n if (propertys.length > 1 && formGroup != null) {\r\n const formControl: FormControl = this.findFormControlByProperty(propertys.slice(1, propertys.length), formGroup);\r\n formControl.code = control.code;\r\n formControl.controlAttr = control.controlAttr;\r\n validateGeneratorService.fillCheckRule(formControl, control.controlAttr as DesFormControl);\r\n control[\"formControl\"] = formControl;\r\n }\r\n }\r\n } else if (control.type === FormFieldClass.Layout.code && control.subControls != null && control.subControls.length > 0) {\r\n this.initControlForm(control.subControls, formGroup);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 按照节点查询控件\r\n * @author ChenRui\r\n * @date 2020/11/26 15:45\r\n */\r\n private findFormControlByProperty(propertys: string[], formGroup: FormGroup): FormControl | any {\r\n let currentFormGroup = formGroup;\r\n for (let i = 0; i < propertys.length; i++) {\r\n const formObject = currentFormGroup.get(propertys[i]);\r\n if (i < propertys.length - 1 && formObject != null && formObject instanceof FormGroup) {\r\n currentFormGroup = formObject;\r\n } else {\r\n return formObject;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 控件值变化事件处理\r\n * @author ChenRui\r\n * @date 2020/12/2 14:35\r\n */\r\n onChange(event: any): void {\r\n this.$emit(\"change\", event);\r\n }\r\n\r\n /**\r\n * @description: 下拉选项新增\r\n * @author ChenRui\r\n * @date 2021/1/14 20:05\r\n */\r\n selectAddItem(event: any): void {\r\n this.$emit(\"add-item\", event);\r\n }\r\n\r\n /**\r\n * @description: 单击事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:39\r\n */\r\n onClick(event: any): void {\r\n this.$emit(\"click\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置前置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:42\r\n */\r\n onAddonBeforeHandler(event: any): void {\r\n this.$emit(\"addon-before\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置后置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:43\r\n */\r\n onAddonAfterHandler(event: any): void {\r\n this.$emit(\"addon-after\", event);\r\n }\r\n\r\n /**\r\n * @description: 获取焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:46\r\n */\r\n onFocus(event: Control): void {\r\n this.$emit(\"focus\", event);\r\n }\r\n\r\n /**\r\n * @description: 失焦事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:38\r\n */\r\n onBlur(event: Control): void {\r\n this.$emit(\"blur\", event);\r\n }\r\n}\r\n","import { render } from \"./DvForm.vue?vue&type=template&id=1fb7b4f2&scoped=true&ts=true\"\nimport script from \"./DvForm.vue?vue&type=script&lang=ts\"\nexport * from \"./DvForm.vue?vue&type=script&lang=ts\"\n\nimport \"./DvForm.vue?vue&type=style&index=0&id=1fb7b4f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"E:\\\\base-frontend\\\\vue3-lo-form-251124\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1fb7b4f2\"]])\n\nexport default __exports__","import { App } from \"vue\";\r\nimport DyForm from \"./components/form/DvForm.vue\";\r\nimport { formToolsService } from \"@/services\";\r\nimport { DEFAULT_FORM_FILE_NAME } from \"./constants/config/form.config\";\r\nimport { formLocalForageService } from \"@/services\";\r\nimport { dictLocalForageService } from \"@/services\";\r\nimport { create, subtractDependencies, addDependencies, multiplyDependencies, divideDependencies, formatDependencies, evaluateDependencies, MathJsStatic } from \"mathjs\";\r\nimport { cleanLocalForageService } from \"@/services\";\r\n\r\nexport * from \"./components/index\";\r\nexport * from \"./constants/index\";\r\nexport * from \"./core/index\";\r\nexport * from \"./domain/index\";\r\nexport * from \"./services/index\";\r\nexport * from \"./store/index\";\r\nexport * from \"./types/vfForm\";\r\nimport \"./styles/index.scss\";\r\n\r\nimport \"dayjs/locale/zh-cn\";\r\nimport dayjs from \"dayjs\";\r\n\r\nconst components: any = {\r\n DyForm,\r\n};\r\n\r\nconst install: any = function (app: App, options: any) {\r\n if (install.installed) return;\r\n install.installed = true;\r\n // Modal.install(vue);\r\n Object.keys(components).forEach((key) => {\r\n app.component(key, components[key]);\r\n });\r\n dayjs.locale(\"zh-cn\");\r\n\r\n const url: string = options && options.url ? options.url : \"./resources/json/\" + DEFAULT_FORM_FILE_NAME;\r\n app.config.globalProperties.$qlForm = {\r\n url: url,\r\n contextPath: options.contextPath || \"/ms-loong\",\r\n dictUrl: options && options.dictUrl ? options.dictUrl : \"\",\r\n dictRestLoadMode: options && options.dictRestLoadMode ? options.dictRestLoadMode : \"GET\",\r\n dictRestLoadBody: options && options.dictRestLoadBody ? options.dictRestLoadBody : undefined,\r\n dictRestLoadHeaders: options && options.dictRestLoadHeaders ? options.dictRestLoadHeaders : undefined,\r\n dictRestLoadOnlyBody: options && options.dictRestLoadOnlyBody ? options.dictRestLoadOnlyBody : false,\r\n loadMode: options && options.loadMode ? options.loadMode : \"static\",\r\n appId: options && options.appId ? options.appId : \"\",\r\n onlySimpleLoadConfig: options && options.onlySimpleLoadConfig ? options.onlySimpleLoadConfig : false,\r\n urls: options?.urls,\r\n dictUrls: options?.dictUrls,\r\n };\r\n app.config.globalProperties.$formToolsService = formToolsService;\r\n (window as any).$app = app;\r\n cleanLocalForageService.init();\r\n formLocalForageService.init();\r\n dictLocalForageService.init();\r\n\r\n const mathjsDependencies: any = {\r\n formatDependencies,\r\n subtractDependencies,\r\n multiplyDependencies,\r\n evaluateDependencies,\r\n addDependencies,\r\n divideDependencies,\r\n };\r\n const mathjs: Partial<MathJsStatic> = create(mathjsDependencies, {\r\n number: \"BigNumber\",\r\n precision: 20,\r\n });\r\n app.config.globalProperties.$mathjs = mathjs;\r\n};\r\n\r\nconst VueLoForm = {\r\n install,\r\n};\r\nexport default VueLoForm;\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","const ZoomType = {\r\n enlarge: { code: \"1\", name: \"放大\" },\r\n narrow: { code: \"2\", name: \"缩小\" },\r\n automatic: { code: \"3\", name: \"自动\" },\r\n};\r\nexport { ZoomType };\r\n"],"sourceRoot":""}
1
+ {"version":3,"file":"vue3-lo-form.umd.min.js","mappings":"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AO,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,IAAK,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,MAAO,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KAAM,MAAS,KA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","sources":["webpack://vue3-lo-form/webpack/universalModuleDefinition","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.index-of.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.to-string.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.string.iterator.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.constructor.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.define-property.js\"","webpack://vue3-lo-form/./src/constants/enum/form-field-class.enum.ts","webpack://vue3-lo-form/./src/constants/enum/builtIn-label.enum.ts","webpack://vue3-lo-form/./src/constants/enum/control-format-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/form-bus-attr.enum.ts","webpack://vue3-lo-form/./src/constants/enum/form-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/lateral-arrangement.enum.ts","webpack://vue3-lo-form/./src/constants/enum/money-unit.enum.ts","webpack://vue3-lo-form/./src/constants/enum/submitted-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/support-upload-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/upload-type.enum.ts","webpack://vue3-lo-form/./src/constants/enum/validate-rules.enum.ts","webpack://vue3-lo-form/./src/constants/enum/vertical-arrangement.enum.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.error.to-string.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/web.dom-collections.for-each.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.exec.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.last-index-of.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.date.to-string.js\"","webpack://vue3-lo-form/./node_modules/vue-loader/dist/exportHelper.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.string.trim.js\"","webpack://vue3-lo-form/./src/constants/enum/switch.enum.ts","webpack://vue3-lo-form/./src/constants/enum/validate-status.enum.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.test.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.concat.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.for-each.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.error.cause.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.symbol.js\"","webpack://vue3-lo-form/./src/constants/enum/cache-type.enum.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.to-string.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.iterator.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.symbol.description.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.push.js\"","webpack://vue3-lo-form/./src/constants/enum/option-type.enum.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/web.dom-collections.iterator.js\"","webpack://vue3-lo-form/external commonjs \"moment\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.for-each.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.number.constructor.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.symbol.to-primitive.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.date.to-primitive.js\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://vue3-lo-form/./src/constants/enum/form-field-type.enum.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.symbol.iterator.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.is-array.js\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://vue3-lo-form/./src/constants/enum/dynamic-option-type.enum.ts","webpack://vue3-lo-form/./src/services/validate-generator.service.ts","webpack://vue3-lo-form/./src/constants/enum/zoom-type.ts","webpack://vue3-lo-form/webpack/bootstrap","webpack://vue3-lo-form/webpack/runtime/compat get default export","webpack://vue3-lo-form/webpack/runtime/define property getters","webpack://vue3-lo-form/webpack/runtime/hasOwnProperty shorthand","webpack://vue3-lo-form/webpack/runtime/make namespace object","webpack://vue3-lo-form/webpack/runtime/publicPath","webpack://vue3-lo-form/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.keys.js\"","webpack://vue3-lo-form/external commonjs \"vue\"","webpack://vue3-lo-form/./src/components/form/DvForm.vue?1162","webpack://vue3-lo-form/./src/components/form/DvForm.vue","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.from.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.slice.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.function.name.js\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.reflect.construct.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.function.bind.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.get-prototype-of.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.proto.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.set-prototype-of.js\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/callSuper.js","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.create.js\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vue3-lo-form/external commonjs \"tslib\"","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue?c869","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.filter.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.find.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.find-index.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.join.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.map.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.some.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.splice.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.date.to-json.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.filter.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.find.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.map.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.iterator.some.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.json.stringify.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.object.values.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.parse-float.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.string.replace.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.string.substr.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/esnext.json.parse.js\"","webpack://vue3-lo-form/external commonjs \"vue-property-decorator\"","webpack://vue3-lo-form/./src/constants/config/form-template.config.ts","webpack://vue3-lo-form/./src/constants/encode-assets/svg.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.array.sort.js\"","webpack://vue3-lo-form/./src/filtres/generate-grid-template-columns.filter.ts","webpack://vue3-lo-form/./src/filtres/generate-grid-column-end.filter.ts","webpack://vue3-lo-form/external commonjs \"ant-design-vue\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.promise.js\"","webpack://vue3-lo-form/./src/services/api.service.ts","webpack://vue3-lo-form/external commonjs \"localforage\"","webpack://vue3-lo-form/./src/constants/config/storage.config.ts","webpack://vue3-lo-form/./src/services/clean-local-forage.service.ts","webpack://vue3-lo-form/./src/services/dict-local-forage.service.ts","webpack://vue3-lo-form/./src/services/form-bean-utils.service.ts","webpack://vue3-lo-form/./src/services/form-local-forage.service.ts","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://vue3-lo-form/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://vue3-lo-form/./src/domain/DesForm.ts","webpack://vue3-lo-form/./src/domain/DesFormLayout.ts","webpack://vue3-lo-form/./src/services/form-tree-node-convert.service.ts","webpack://vue3-lo-form/./src/store/form.store.ts","webpack://vue3-lo-form/./src/store/dict.store.ts","webpack://vue3-lo-form/./src/constants/config/form.config.ts","webpack://vue3-lo-form/./src/services/router.service.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/web.timers.js\"","webpack://vue3-lo-form/./src/services/form-validate.service.ts","webpack://vue3-lo-form/./src/services/form-tools.service.ts","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.string.match.js\"","webpack://vue3-lo-form/./src/filtres/amount-capitalization.filter.ts","webpack://vue3-lo-form/./src/domain/DesFormControl.ts","webpack://vue3-lo-form/./src/domain/AbstractControl.ts","webpack://vue3-lo-form/./src/domain/FormControl.ts","webpack://vue3-lo-form/./src/domain/FormGroup.ts","webpack://vue3-lo-form/./src/filtres/extract-options.filter.ts","webpack://vue3-lo-form/./src/filtres/zoom-multiple.filter.ts","webpack://vue3-lo-form/./src/filtres/switch-enum-convert.filter.ts","webpack://vue3-lo-form/./src/components/form/StretchText.vue?20e0","webpack://vue3-lo-form/./src/components/form/StretchText.vue","webpack://vue3-lo-form/./src/components/form/StretchText.vue?a5e0","webpack://vue3-lo-form/external commonjs \"@ant-design/icons-vue\"","webpack://vue3-lo-form/external commonjs \"dayjs\"","webpack://vue3-lo-form/external commonjs \"ant-design-vue/es/date-picker/locale/zh_CN\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.constructor.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.dot-all.js\"","webpack://vue3-lo-form/external commonjs \"core-js/modules/es.regexp.sticky.js\"","webpack://vue3-lo-form/./public/js/pinyin.ts","webpack://vue3-lo-form/./src/components/form/DvFormLayout.vue?f5c1","webpack://vue3-lo-form/./src/services/date-format.service.ts","webpack://vue3-lo-form/./src/core/FormApi.ts","webpack://vue3-lo-form/./src/components/form/DvForm.vue?e2c7","webpack://vue3-lo-form/external commonjs \"mathjs\"","webpack://vue3-lo-form/external commonjs \"dayjs/locale/zh-cn\"","webpack://vue3-lo-form/./src/index.ts","webpack://vue3-lo-form/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue3-lo-form\"] = factory();\n\telse\n\t\troot[\"vue3-lo-form\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn ","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","module.exports = require(\"core-js/modules/es.array.index-of.js\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.iterator.constructor.js\");","module.exports = require(\"core-js/modules/es.object.define-property.js\");","// 字段分类\r\nconst FormFieldClass = {\r\n Layout: { code: \"1\", name: \"布局\", icon: \"profile\" },\r\n Base: { code: \"2\", name: \"基础字段\", icon: \"profile\" },\r\n Senior: { code: \"3\", name: \"高级字段\", icon: \"profile\" },\r\n};\r\nexport { FormFieldClass };\r\n","// 内置前/后置标签\r\nconst BuiltLabel = {\r\n ORDERED_LIST: { code: \"1\", name: \"ordered-list\" },\r\n};\r\nexport { BuiltLabel };\r\n","// 控件格式化类型\r\nconst ControlFormatType = {\r\n GENERAL: { code: \"1\", name: \"常规数字\" },\r\n AMOUNT_OF_MONEY: { code: \"2\", name: \"金额\" },\r\n BANK_CARD_NUMBER: { code: \"3\", name: \"银行卡号\" },\r\n CELL_PHONE_NUMBER: { code: \"4\", name: \"手机号\" },\r\n LANDLINE_NUMBER: { code: \"5\", name: \"座机号\" },\r\n};\r\nexport { ControlFormatType };\r\n","// 动态字典类型\r\nconst FormBusAttr = {\r\n SUBMITTED_TYPE: { code: \"submittedType\", name: \"报送类型\" },\r\n IS_SUPPLEMENT: { code: \"isSupplement\", name: \"是否补录\" },\r\n IS_KEY_ELEMENTS: { code: \"isKeyElements\", name: \"是否关键要素\" },\r\n IS_TRACK: { code: \"isTrack\", name: \"是否追踪\" },\r\n};\r\nexport { FormBusAttr };\r\n","const FormType = {\r\n Pc: { code: \"1\", name: \"PC端\" },\r\n Mobile: { code: \"2\", name: \"移动端\" },\r\n};\r\nexport { FormType };\r\n","// 横向排列\r\nconst LateralArrangement = {\r\n AlignLeft: { code: \"1\", name: \"左对齐\" },\r\n RightAlignment: { code: \"2\", name: \"右对齐\" },\r\n Center: { code: \"3\", name: \"居中\" },\r\n BothSidesAreEquallySpaced: { code: \"4\", name: \"两侧间隔相等\" },\r\n AlignBothEnds: { code: \"5\", name: \"两端对齐\" },\r\n};\r\nexport { LateralArrangement };\r\n","const MoneyUnit = {\r\n Yuan: { code: \"1\", name: \"元\" },\r\n TenThousandYuan: { code: \"2\", name: \"万元\" },\r\n HundredMillionYuan: { code: \"3\", name: \"亿元\" },\r\n};\r\nexport { MoneyUnit };\r\n","// 报送信息类型\r\nconst SubmittedType = {\r\n EAST: { code: \"1\", name: \"EAST\" },\r\n CITIC: { code: \"2\", name: \"中信登\" },\r\n TOTAL_ELEMENTS: { code: \"3\", name: \"全要素\" },\r\n PBC_CAPITAL_DECLARATION: { code: \"4\", name: \"人行资金申报\" },\r\n ENTERPRISE_CREDIT_REFERENCE: { code: \"5\", name: \"企业征信\" },\r\n OTOHAF_SUBMISSION: { code: \"6\", name: \"1104报送\" },\r\n EAST_F: { code: \"7\", name: \"EAST4.0\" },\r\n PERSONAL_CREDIT: { code: \"8\", name: \"个人征信\" },\r\n BS_09: { code: \"9\", name: \"非现场监管报表\" },\r\n BS_10: { code: \"10\", name: \"银监其他\" },\r\n BS_11: { code: \"11\", name: \"人行资管产品统计逐产品采集\" },\r\n BS_12: { code: \"12\", name: \"人行其他\" },\r\n BS_13: { code: \"13\", name: \"其他报表\" },\r\n BS_14: { code: \"14\", name: \"反洗钱\" },\r\n BS_15: { code: \"15\", name: \"关联交易\" },\r\n BS_16: { code: \"16\", name: \"事前报告\" },\r\n BS_17: { code: \"17\", name: \"银监风险项目要素表\" },\r\n BS_18: { code: \"18\", name: \"金控重点监测项目数据报送\" },\r\n BS_19: { code: \"19\", name: \"中央企业金融风险事项统计表\" },\r\n BS_20: { code: \"20\", name: \"主动管理项目清单\" },\r\n BS_21: { code: \"21\", name: \"风险项目要素表(重大预警及关注不良)\" },\r\n BS_22: { code: \"22\", name: \"人行金融基础数据报送\" },\r\n BS_23: { code: \"23\", name: \"人行利率报备\" },\r\n BS_24: { code: \"24\", name: \"EAST5.0\" },\r\n BS_25: { code: \"25\", name: \"新中信登\" },\r\n BS_26: { code: \"26\", name: \"集团司库资金系统投融资数据报送\" },\r\n BS_27: { code: \"27\", name: \"金控客户协同\" },\r\n BS_28: { code: \"28\", name: \"金控大额交易\" },\r\n};\r\nexport { SubmittedType };\r\n","const SupportUploadType = {\r\n Arbitrarily: { code: \"1\", name: \"任意类型\" },\r\n Custom: { code: \"2\", name: \"自定义类型\" },\r\n};\r\nexport { SupportUploadType };\r\n","const UploadType = {\r\n Jpeg: { code: \"image/jpeg\", name: \"jpeg/jpg/jpe\" },\r\n Png: { code: \"image/png\", name: \"png\" },\r\n Gif: { code: \"image/gif\", name: \"gif\" },\r\n Bmp: { code: \"image/bmp\", name: \"bmp\" },\r\n Doc: { code: \"application/msword\", name: \"doc\" },\r\n html: { code: \"text/html\", name: \"html\" },\r\n Mp3: { code: \"audio/mpeg\", name: \"mp3\" },\r\n Mp4: { code: \"audio/mp4\", name: \"mp4\" },\r\n Pdf: { code: \"application/pdf\", name: \"pdf\" },\r\n Ppt: { code: \"application/vnd.ms-powerpoint\", name: \"ppt\" },\r\n Xls: { code: \"application/vnd.ms-excel\", name: \"xls\" },\r\n Xml: { code: \"application/xml\", name: \"xml\" },\r\n Zip: { code: \"aplication/zip\", name: \"zip\" },\r\n Wps: { code: \"application/vnd.ms-works\", name: \"wps\" },\r\n};\r\nexport { UploadType };\r\n","// 校验规则\r\nconst ValidateRules: any = {\r\n SameValue: { code: \"1\", name: \"相同的值\", hasContent: true, hasDescribe: false },\r\n MailBox: { code: \"2\", name: \"电子邮箱\", hasContent: false, hasDescribe: false },\r\n RegEx: { code: \"3\", name: \"正则表达式\", hasContent: true, hasDescribe: true },\r\n MinTextLength: { code: \"4\", name: \"最小文本长度\", hasContent: true, hasDescribe: false },\r\n MaxTextLength: { code: \"5\", name: \"最大文本长度\", hasContent: true, hasDescribe: false },\r\n MinValue: { code: \"6\", name: \"最小数值\", hasContent: true, hasDescribe: false },\r\n MaxValue: { code: \"7\", name: \"最大数值\", hasContent: true, hasDescribe: false },\r\n SpecifiedValue: { code: \"8\", name: \"指定的值\", hasContent: true, hasDescribe: false },\r\n SpecifiedDigitsNumber: { code: \"9\", name: \"指定位数的数字\", hasContent: true, hasDescribe: false },\r\n DateNotEarlierThan: { code: \"10\", name: \"日期不早于\", hasContent: true, hasDescribe: false },\r\n DateNoLaterThan: { code: \"11\", name: \"日期不晚于\", hasContent: true, hasDescribe: false },\r\n SpecifiedRangeNumber: { code: \"12\", name: \"指定范围的数字(包含最小/大值)\", hasContent: true, hasDescribe: false },\r\n PhoneNumber: { code: \"13\", name: \"手机号码\", hasContent: false, hasDescribe: false },\r\n Required: { code: \"14\", name: \"必填\", hasContent: false, hasDescribe: false },\r\n LineUnique: { code: \"15\", name: \"行唯一\", hasContent: false, hasDescribe: false },\r\n LetterSpace: { code: \"16\", name: \"字母空格\", hasContent: false, hasDescribe: false },\r\n AlphanumericUnderline: { code: \"17\", name: \"字母数字横线下划线\", hasContent: false, hasDescribe: false },\r\n Alphanumeric: { code: \"18\", name: \"字母数字\", hasContent: false, hasDescribe: false },\r\n JsMethodVerification: { code: \"19\", name: \"JS方法校验\", hasContent: true, hasDescribe: true },\r\n BackEndVerification: { code: \"20\", name: \"后端校验\", hasContent: false, hasDescribe: false },\r\n LandlineNumber: { code: \"21\", name: \"座机校验\", hasContent: false, hasDescribe: false },\r\n};\r\nexport { ValidateRules };\r\n","// 标签对齐方式\r\nconst VerticalArrangement = {\r\n AlignRight: { code: \"1\", name: \"右对齐\", value: \"horizontal\", textAlign: \"right\" },\r\n AlignTop: { code: \"2\", name: \"顶部对齐\", value: \"vertical\", textAlign: \"left\" },\r\n AlignLeft: { code: \"3\", name: \"左对齐\", value: \"horizontal\", textAlign: \"left\" },\r\n};\r\nexport { VerticalArrangement };\r\n","module.exports = require(\"core-js/modules/es.error.to-string.js\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.array.last-index-of.js\");","module.exports = require(\"core-js/modules/es.date.to-string.js\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","module.exports = require(\"core-js/modules/es.string.trim.js\");","const Switch = {\r\n Disable: { code: \"0\", name: \"禁用\" },\r\n Enable: { code: \"1\", name: \"启用\" },\r\n};\r\nexport { Switch };\r\n","// 校验状态\r\nconst ValidateStatus: any = {\r\n Success: { code: \"success\", name: \"通过\" },\r\n Warning: { code: \"warning\", name: \"警告\" },\r\n Error: { code: \"error\", name: \"未通过\" },\r\n Validating: { code: \"validating\", name: \"校验中\" },\r\n};\r\nexport { ValidateStatus };\r\n","module.exports = require(\"core-js/modules/es.regexp.test.js\");","module.exports = require(\"core-js/modules/es.array.concat.js\");","module.exports = require(\"core-js/modules/es.iterator.for-each.js\");","module.exports = require(\"core-js/modules/es.error.cause.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","// 数据缓存类型\r\nconst CacheType = {\r\n FORM: { code: \"1\", name: \"表格\" },\r\n TABLE: { code: \"2\", name: \"表单\" },\r\n DICT: { code: \"3\", name: \"字典\" },\r\n};\r\nexport { CacheType };\r\n","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/es.array.push.js\");","const OptionType = {\r\n Fixed: { code: \"1\", name: \"固定\" },\r\n Dynamic: { code: \"2\", name: \"动态\" },\r\n};\r\nexport { OptionType };\r\n","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"moment\");","module.exports = require(\"core-js/modules/es.array.for-each.js\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.symbol.to-primitive.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.date.to-primitive.js\");","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import { FormFieldClass } from \"./form-field-class.enum\";\r\n// 控件类型\r\nconst FormFieldType = {\r\n Input: { code: \"1\", name: \"输入框\", icon: \"icondanhangwenben\", type: FormFieldClass.Base.code },\r\n Textarea: { code: \"2\", name: \"多行文本\", icon: \"iconduohangwenben\", type: FormFieldClass.Base.code },\r\n InputNumber: { code: \"3\", name: \"数字输入框\", icon: \"iconjishuqi\", type: FormFieldClass.Base.code },\r\n Select: { code: \"4\", name: \"选择器\", icon: \"iconxialaxuanzekuang\", type: FormFieldClass.Base.code },\r\n Radio: { code: \"5\", name: \"单选框\", icon: \"icondanxuankuangzu\", type: FormFieldClass.Base.code },\r\n Checkbox: { code: \"6\", name: \"多选框\", icon: \"iconduoxuankuangzu\", type: FormFieldClass.Base.code },\r\n Switch: { code: \"7\", name: \"开关\", icon: \"iconkaiguan\", type: FormFieldClass.Base.code },\r\n TimePicker: { code: \"8\", name: \"时间选择框\", icon: \"iconshijianxuanzeqi\", type: FormFieldClass.Base.code },\r\n DatePicker: { code: \"9\", name: \"日期选择框\", icon: \"iconriqixuanzeqi\", type: FormFieldClass.Base.code },\r\n Slider: { code: \"10\", name: \"滑动输入条\", icon: \"iconhuakuai\", type: FormFieldClass.Base.code },\r\n Rate: { code: \"11\", name: \"评分\", icon: \"iconpingfen\", type: FormFieldClass.Base.code },\r\n\r\n Upload: { code: \"50\", name: \"上传\", icon: \"iconwenjian\", type: FormFieldClass.Senior.code },\r\n Editor: { code: \"51\", name: \"编辑器\", icon: \"iconbianjiqi\", type: FormFieldClass.Senior.code },\r\n Cascader: { code: \"52\", name: \"级联选择\", icon: \"iconjilianxuanzeqi\", type: FormFieldClass.Senior.code },\r\n TreeSelect: { code: \"53\", name: \"树选择\", icon: \"iconxialaxuanzekuang\", type: FormFieldClass.Senior.code },\r\n Custom: { code: \"54\", name: \"自定义组件\", icon: \"iconzidingyizujian\", type: FormFieldClass.Senior.code },\r\n\r\n Empty: { code: \"101\", name: \"根布局\", icon: \"iconzhagebuju\", type: FormFieldClass.Layout.code },\r\n Grid: { code: \"102\", name: \"栅格\", icon: \"iconzhagebuju\", type: FormFieldClass.Layout.code },\r\n};\r\nexport { FormFieldType };\r\n","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.array.is-array.js\");","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// 动态字典类型\r\nconst DynamicOptionType = {\r\n GeneralDictionary: { code: \"1\", name: \"常规\" },\r\n TreeDictionary: { code: \"2\", name: \"树形\" },\r\n};\r\nexport { DynamicOptionType };\r\n","import { DesFormControl, FormControl, Validate } from \"../domain\";\r\nimport { FormFieldType, ValidateRules, ValidateStatus } from \"../constants/enum\";\r\nimport moment from \"moment\";\r\n\r\ninterface Rule {\r\n ruleType?: any;\r\n ruleContent?: any;\r\n describe?: any;\r\n}\r\n\r\nclass ValidateGeneratorService {\r\n /**\r\n * @description: 填充校验规则\r\n * @author ChenRui\r\n * @date 2021/1/27 15:07\r\n */\r\n fillCheckRule(formControl: FormControl, controlAttr: DesFormControl): void {\r\n if (controlAttr.verificationRules && controlAttr.verificationRules.length > 0) {\r\n const validates: Validate[] = [];\r\n controlAttr.verificationRules.forEach((item: Rule) => {\r\n const validate: Validate | undefined = this.getBuiltInValidationRules(item, controlAttr);\r\n if (validate) {\r\n validates.push(validate);\r\n }\r\n });\r\n formControl.addValidate(validates);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验规则\r\n * @author ChenRui\r\n * @date 2021/7/19 17:55\r\n */\r\n getBuiltInValidationRules(item: Rule, controlAttr: DesFormControl): Validate | undefined {\r\n let validate: Validate | undefined;\r\n switch (item.ruleType) {\r\n case ValidateRules.SameValue.code:\r\n validate = this.genSameValue(item);\r\n break;\r\n case ValidateRules.MailBox.code:\r\n validate = this.genMailBox(item);\r\n break;\r\n case ValidateRules.RegEx.code:\r\n validate = this.genRegEx(item);\r\n break;\r\n case ValidateRules.MinTextLength.code:\r\n validate = this.genMinTextLength(item);\r\n break;\r\n case ValidateRules.MaxTextLength.code:\r\n validate = this.genMaxTextLength(item);\r\n break;\r\n case ValidateRules.MinValue.code:\r\n validate = this.genMinValue(item);\r\n break;\r\n case ValidateRules.MaxValue.code:\r\n validate = this.genMaxValue(item);\r\n break;\r\n case ValidateRules.SpecifiedValue.code:\r\n validate = this.genSpecifiedValue(item);\r\n break;\r\n case ValidateRules.SpecifiedDigitsNumber.code:\r\n validate = this.genSpecifiedDigitsNumber(item);\r\n break;\r\n case ValidateRules.DateNotEarlierThan.code:\r\n validate = this.genDateNotEarlierThan(item);\r\n break;\r\n case ValidateRules.DateNoLaterThan.code:\r\n validate = this.genDateNoLaterThan(item);\r\n break;\r\n case ValidateRules.SpecifiedRangeNumber.code:\r\n validate = this.genSpecifiedRangeNumber(item);\r\n break;\r\n case ValidateRules.PhoneNumber.code:\r\n validate = this.genPhoneNumber(item);\r\n break;\r\n case ValidateRules.Required.code:\r\n validate = this.genRequired(item, controlAttr.controlType);\r\n break;\r\n case ValidateRules.LineUnique.code:\r\n validate = this.genLineUnique(item);\r\n break;\r\n case ValidateRules.LetterSpace.code:\r\n validate = this.genLetterSpace(item);\r\n break;\r\n case ValidateRules.AlphanumericUnderline.code:\r\n validate = this.genAlphanumericUnderline(item);\r\n break;\r\n case ValidateRules.Alphanumeric.code:\r\n validate = this.genAlphanumeric(item);\r\n break;\r\n case ValidateRules.JsMethodVerification.code:\r\n validate = this.genJsMethodVerification(item);\r\n break;\r\n case ValidateRules.BackEndVerification.code:\r\n validate = this.genBackEndVerification(item);\r\n break;\r\n case ValidateRules.LandlineNumber.code:\r\n validate = this.genLandlineNumber(item);\r\n break;\r\n }\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 相同的值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:12\r\n */\r\n genSameValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val != item.ruleContent) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `与预期值(${item.ruleContent})不符`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 电子邮箱\r\n * @author ChenRui\r\n * @date 2021/1/27 15:15\r\n */\r\n genMailBox(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const emreg = /^\\w{3,}(\\.\\w+)*@[A-z0-9]+(\\.[A-z]{2,5}){1,2}$/;\r\n if (!emreg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"电子邮件格式不正确\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 正则匹配\r\n * @author ChenRui\r\n * @date 2021/1/27 15:17\r\n */\r\n genRegEx(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && !eval(item.ruleContent).test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.describe ? item.describe : `'不满足正则校验'${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最小文本长度\r\n * @author ChenRui\r\n * @date 2021/1/27 15:18\r\n */\r\n genMinTextLength(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val && String(val).length < Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `内容不少于${item.ruleContent}个字`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最大文本长度\r\n * @author ChenRui\r\n * @date 2021/1/27 15:21\r\n */\r\n genMaxTextLength(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val && String(val).length > Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `内容不超过${item.ruleContent}个字`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最小值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:24\r\n */\r\n genMinValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent != null && val != null && val !== \"\" && Number(val) < Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值不能小于${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 最大值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:25\r\n */\r\n genMaxValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent != null && val != null && val !== \"\" && Number(val) > Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值不能大于${item.ruleContent}`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定的值\r\n * @author ChenRui\r\n * @date 2021/1/27 15:27\r\n */\r\n genSpecifiedValue(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val != item.ruleContent) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `与预期值(${item.ruleContent})不符`,\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定位数数字\r\n * @author ChenRui\r\n * @date 2021/1/27 15:31\r\n */\r\n genSpecifiedDigitsNumber(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != undefined && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n let countDecimals = 0;\r\n if (Math.floor(val).toString() !== val.toString()) {\r\n countDecimals = val.toString().split(\".\")[1].length || 0;\r\n }\r\n if (countDecimals != Number(item.ruleContent)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.ruleContent === \"0\" || item.ruleContent === 0 ? `请输入整数` : `请保留${item.ruleContent}位小数`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 自动补位\r\n * @author ChenRui\r\n * @date 2021/1/27 15:59\r\n */\r\n roundNumber(number: any, decimals: any): any {\r\n let newString; // The new rounded number\r\n decimals = Number(decimals);\r\n if (decimals < 1) {\r\n newString = Math.round(number).toString();\r\n } else {\r\n let numString = number.toString();\r\n if (numString.lastIndexOf(\".\") == -1) {\r\n // If there is no decimal point\r\n numString += \".\"; // give it one at the end\r\n }\r\n let cutoff = numString.lastIndexOf(\".\") + decimals; // The point at which to truncate the number\r\n let d1: any = Number(numString.substring(cutoff, cutoff + 1)); // The value of the last decimal place that we'll end up with\r\n const d2 = Number(numString.substring(cutoff + 1, cutoff + 2)); // The next decimal, after the last one we want\r\n if (d2 >= 5) {\r\n // Do we need to round up at all? If not, the string will just be truncated\r\n if (d1 == 9 && cutoff > 0) {\r\n // If the last digit is 9, find a new cutoff point\r\n while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {\r\n if (d1 != \".\") {\r\n cutoff -= 1;\r\n d1 = Number(numString.substring(cutoff, cutoff + 1));\r\n } else {\r\n cutoff -= 1;\r\n }\r\n }\r\n }\r\n d1 += 1;\r\n }\r\n if (d1 == 10) {\r\n numString = numString.substring(0, numString.lastIndexOf(\".\"));\r\n const roundedNum = Number(numString) + 1;\r\n newString = roundedNum.toString() + \".\";\r\n } else {\r\n newString = numString.substring(0, cutoff) + d1.toString();\r\n }\r\n }\r\n if (newString.lastIndexOf(\".\") == -1) {\r\n // Do this again, to the new string\r\n newString += \".\";\r\n }\r\n const decs = newString.substring(newString.lastIndexOf(\".\") + 1).length;\r\n for (let i = 0; i < decimals - decs; i++) newString += \"0\";\r\n return newString;\r\n }\r\n\r\n /**\r\n * @description: 日期不早于\r\n * @author ChenRui\r\n * @date 2021/1/27 16:06\r\n */\r\n genDateNotEarlierThan(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n try {\r\n if (val.toDate() > moment(item.ruleContent).toDate()) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `日期不早于${item.ruleContent}`,\r\n };\r\n }\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `最大值日期(${item.ruleContent})格式有误!`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 日期不晚于\r\n * @author ChenRui\r\n * @date 2021/1/27 16:08\r\n */\r\n genDateNoLaterThan(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent && val) {\r\n try {\r\n if (val.toDate() < moment(item.ruleContent).toDate()) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `日期不晚于${item.ruleContent}`,\r\n };\r\n }\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `最小值日期(${item.ruleContent})格式有误!`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 指定范围的数字\r\n * @author ChenRui\r\n * @date 2021/1/27 16:35\r\n */\r\n genSpecifiedRangeNumber(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (item.ruleContent != null && val && item.ruleContent.indexOf(\"/\") > -1) {\r\n const arr: any[] = item.ruleContent.split(\"/\");\r\n if (arr && arr.length > 1) {\r\n if (val < Number(arr[0]) || val > Number(arr[1])) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: `数值大小应在${arr[0]}~${arr[1]}之间`,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 手机号\r\n * @author ChenRui\r\n * @date 2021/1/27 16:55\r\n */\r\n genPhoneNumber(item: Rule): Validate {\r\n const reg = /^0?1[3|4|5|6|7|8|9][0-9]\\d{8}$/;\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"手机号不合法\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 必填\r\n * @author ChenRui\r\n * @date 2021/1/27 15:28\r\n */\r\n genRequired(item: Rule, controlType: string): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val == null || (typeof val == \"string\" && val.trim() === \"\") || (Array.isArray(val) && val.length === 0)) {\r\n let msg = \"为必输项\";\r\n if (controlType === FormFieldType.Select.code || controlType === FormFieldType.Radio.code || controlType === FormFieldType.Checkbox.code) {\r\n msg += \",请选择\";\r\n } else {\r\n msg += \",请输入\";\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: msg,\r\n };\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 唯一行\r\n * @author ChenRui\r\n * @date 2021/1/27 17:16\r\n */\r\n genLineUnique(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: () => {\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 仅包含字母空格\r\n * @author ChenRui\r\n * @date 2021/1/27 17:21\r\n */\r\n genLetterSpace(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^(?!_)([A-Za-z ]+)$/;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含字母空格\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 数字字母下划线\r\n * @author ChenRui\r\n * @date 2021/1/27 17:28\r\n */\r\n genAlphanumericUnderline(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^[a-zA-Z0-9_]{1,}$/;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含数字字母下划线\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 字母数字\r\n * @author ChenRui\r\n * @date 2021/1/27 17:32\r\n */\r\n genAlphanumeric(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n const reg = /^[0-9a-zA-Z]*$/g;\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"仅包含数字字母\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: JS方法校验\r\n * @author ChenRui\r\n * @date 2021/1/27 17:42\r\n */\r\n genJsMethodVerification(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && item.ruleContent) {\r\n try {\r\n const func = new Function(item.ruleContent);\r\n return func(val);\r\n } catch (e) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: item.describe ? item.describe : `'JS校验函数不合法`,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 后端校验\r\n * @author ChenRui\r\n * @date 2021/1/27 17:43\r\n */\r\n genBackEndVerification(item: Rule): Validate {\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: () => {\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n\r\n /**\r\n * @description: 座机号校验\r\n * @author ChenRui\r\n * @date 2021/4/14 11:40\r\n */\r\n genLandlineNumber(item: Rule): Validate {\r\n const reg = /^0\\d{2,3}-?\\d{7,8}$/;\r\n const validate: Validate = {\r\n name: item.ruleType,\r\n validateFunc: (val: any) => {\r\n if (val != null && val !== \"\") {\r\n if (val && !reg.test(val)) {\r\n return {\r\n validateStatus: ValidateStatus.Error.code,\r\n errorMsg: \"座机号不合法\",\r\n };\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n };\r\n },\r\n };\r\n return validate;\r\n }\r\n}\r\nconst validateGeneratorService = new ValidateGeneratorService();\r\nexport { Rule, validateGeneratorService };\r\n","const ZoomType = {\r\n enlarge: { code: \"1\", name: \"放大\" },\r\n narrow: { code: \"2\", name: \"缩小\" },\r\n automatic: { code: \"3\", name: \"自动\" },\r\n};\r\nexport { ZoomType };\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.keys.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"vue\");","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, createSlots as _createSlots, createBlock as _createBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_dv_form_layout = _resolveComponent(\"dv-form-layout\")!\n\n return (_ctx.desForm?.controls?.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n ref: \"formView\",\n class: _normalizeClass('lo-form-container ' + ('lo-' + (_ctx.edit ? 'enable' : 'disable') + '-edit') + ' lo-class-style-' + _ctx.styleMode + ' lo-form-theme-' + _ctx.loFormTheme)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.desForm.controls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n control: item,\n customFormats: _ctx.customFormats,\n linkList: _ctx.linkList,\n onLinkClick: _ctx.linkClick,\n index: i,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onChange($event))),\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onBlur($event))),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onClick($event))),\n onAddonBefore: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[6] || (_cache[6] = ($event: any) => (_ctx.selectAddItem($event)))\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(this.$slots), (propName) => {\n return {\n name: propName,\n fn: _withCtx((slotProps) => [\n _renderSlot(_ctx.$slots, propName, {\n content: slotProps.content,\n control: slotProps.control,\n onChange: slotProps.onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"control\", \"customFormats\", \"linkList\", \"onLinkClick\", \"index\"]))\n }), 128))\n ], 2))\n : _createCommentVNode(\"\", true)\n}","<template>\r\n <div v-if=\"desForm?.controls?.length\" ref=\"formView\" :class=\"'lo-form-container ' + ('lo-' + (edit ? 'enable' : 'disable') + '-edit') + ' lo-class-style-' + styleMode + ' lo-form-theme-' + loFormTheme\">\r\n <dv-form-layout v-for=\"(item, i) in desForm.controls\" :key=\"i\" :control=\"item\" :customFormats=\"customFormats\" :linkList=\"linkList\" @linkClick=\"linkClick\" :index=\"i\" @change=\"onChange($event)\" @focus=\"onFocus($event)\" @blur=\"onBlur($event)\" @click=\"onClick($event)\" @addon-before=\"onAddonBeforeHandler($event)\" @addon-after=\"onAddonAfterHandler($event)\" @add-item=\"selectAddItem($event)\">\r\n <template v-for=\"propName in Object.keys(this.$slots)\" v-slot:[propName]=\"slotProps\">\r\n <slot :name=\"propName\" :content=\"slotProps.content\" :control=\"slotProps.control\" :onChange=\"slotProps.onChange\"></slot>\r\n </template>\r\n </dv-form-layout>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport DvFormLayout from \"./DvFormLayout.vue\";\r\nimport { Options, Prop, Provide, Watch, Vue } from \"vue-property-decorator\";\r\nimport { DesForm } from \"@/domain\";\r\nimport { FormFieldClass } from \"@/constants\";\r\nimport { formToolsService } from \"@/services\";\r\nimport { Control } from \"@/domain\";\r\nimport { DesFormControl } from \"@/domain\";\r\nimport { FormGroup } from \"@/domain\";\r\nimport { FormControl } from \"@/domain\";\r\nimport { formBeanUtilsService } from \"@/services\";\r\nimport { FormApi } from \"@/core\";\r\nimport { FormFieldType } from \"@/constants\";\r\nimport { ProvideInjectData } from \"@/domain/ProvideInjectData\";\r\nimport { validateGeneratorService } from \"@/services\";\r\nimport { CustomFormat, FieldChangeHistory } from \"../../domain\";\r\nimport { extractOptions } from \"@/filtres/extract-options.filter\";\r\nimport { DynamicOptionType, OptionType } from \"../../constants/enum\";\r\nimport { NzTreeNodeOptions } from \"@/services\";\r\n\r\nexport type NfFormMode = \"manual\" | \"auto\";\r\n\r\nexport type NfStyleMode = \"default\" | \"trust\" | \"credit-rd\";\r\n\r\nexport type NfFormTheme = \"default\" | \"gray\";\r\n/**\r\n * @description: 动态表单\r\n * @author ChenRui\r\n * @date 2020/12/30 11:20\r\n */\r\n@Options({\r\n name: \"DyForm\",\r\n components: {\r\n DvFormLayout: DvFormLayout,\r\n },\r\n})\r\nexport default class DyForm extends Vue {\r\n @Prop() formId: string | undefined;\r\n @Prop() mode: NfFormMode | undefined;\r\n @Prop({ type: String, default: \"default\" }) styleMode!: NfStyleMode;\r\n @Prop() srcDesForm: DesForm | undefined;\r\n @Prop({ default: false, type: Boolean }) edit!: boolean;\r\n @Prop({ default: false, type: Boolean }) colon!: boolean;\r\n @Prop({ default: \"130px\", type: String }) labelSpan!: string;\r\n @Prop({ default: undefined }) controlSpan!: any;\r\n @Prop({ type: Object }) formApi: FormApi | undefined;\r\n @Prop({ type: Array }) history: FieldChangeHistory | undefined;\r\n @Prop({ type: Object, default: () => ({}) }) customFormats!: {\r\n [key: string]: CustomFormat;\r\n };\r\n @Prop() refreshArguments: any; // 刷新自变量\r\n @Prop({ default: false }) widthCompatibleMode!: boolean; // 宽度计算模式\r\n @Prop({ type: String }) formTheme!: NfFormTheme; // 表单主题\r\n @Prop({ type: Array }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n\r\n private metaRefresh: any = new Date().getTime(); // 刷新标识\r\n private refreshCheckFeedbackFlag = new Date().getTime(); // 刷新校验标识\r\n private sysDictDetailOptions: NzTreeNodeOptions[] = []; // 常规字典\r\n private sysDictTreeDetailOptions: NzTreeNodeOptions[] = []; // 树形字典\r\n private formValidateStateResetMark: any = new Date().getTime(); // 重置校验标识\r\n\r\n desForm: DesForm = new DesForm();\r\n\r\n @Provide() provideInjectData: ProvideInjectData = {\r\n edit: (this.$props as any).edit,\r\n labelSpan: (this.$props as any).labelSpan,\r\n controlSpan: (this.$props as any).controlSpan,\r\n colon: (this.$props as any).colon,\r\n metaRefresh: this.metaRefresh,\r\n refreshCheckFeedbackFlag: this.refreshCheckFeedbackFlag,\r\n widthCompatibleMode: (this.$props as any).widthCompatibleMode,\r\n formValidateStateResetMark: this.formValidateStateResetMark,\r\n };\r\n\r\n /**\r\n * @description: 刷新自变量监听处理\r\n * @author ChenRui\r\n * @date 2021/2/5 10:25\r\n */\r\n @Watch(\"refreshArguments\", { immediate: true })\r\n onRefreshArgumentsHandler(newVal: any): void {\r\n this.metaRefresh = newVal;\r\n }\r\n\r\n /**\r\n * @description: 重置表单校验状态监听\r\n * @author ChenRui\r\n * @date 2022/4/6 14:17\r\n */\r\n @Watch(\"formValidateStateResetMark\")\r\n onPropFormValidateStateResetHandler(newVal: any): void {\r\n if ((this as any)._provided) {\r\n ((this as any)._provided as any).provideInjectData.formValidateStateResetMark = this.formValidateStateResetMark;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 值变更处理器\r\n * @author ChenRui\r\n * @date 2021/1/8 11:03\r\n */\r\n @Watch(\"edit\")\r\n @Watch(\"labelSpan\")\r\n @Watch(\"controlSpan\")\r\n @Watch(\"metaRefresh\")\r\n @Watch(\"refreshCheckFeedbackFlag\")\r\n @Watch(\"widthCompatibleMode\")\r\n onPropHandler(newVal: any): void {\r\n if (this) {\r\n this.provideInjectData.edit = this.edit;\r\n this.provideInjectData.labelSpan = this.labelSpan;\r\n this.provideInjectData.controlSpan = this.controlSpan;\r\n this.provideInjectData.metaRefresh = this.metaRefresh;\r\n this.provideInjectData.refreshCheckFeedbackFlag = this.refreshCheckFeedbackFlag;\r\n this.provideInjectData.widthCompatibleMode = this.widthCompatibleMode;\r\n }\r\n }\r\n\r\n get loFormTheme(): string {\r\n const win: any = window;\r\n const themes = [\"default\", \"gray\"];\r\n const formTheme = themes.indexOf(this.formTheme) > -1 ? this.formTheme : win.$loFormTheme;\r\n return themes.indexOf(formTheme) > -1 ? formTheme : themes[0];\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:Object { key: 元素码值, value: 元素值 })\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:16\r\n */\r\n linkClick(data: any) {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n created() {\r\n this.initDict();\r\n }\r\n\r\n mounted() {\r\n if (this.formId) {\r\n this.initDesForm();\r\n } else if (this.desForm) {\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n @Watch(\"formId\")\r\n private onFormIdChanged() {\r\n this.initDesForm();\r\n }\r\n\r\n @Watch(\"srcDesForm\", { immediate: true })\r\n private onSrcDesFormChanged(newVal: DesForm) {\r\n if (newVal != null) {\r\n this.desForm = formBeanUtilsService.copy(newVal);\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化表单\r\n * @author ChenRui\r\n * @date 2020/11/23 11:19\r\n */\r\n private initDesForm(): void {\r\n if (this.formId != null && this.formId !== \"\") {\r\n this.desForm = formToolsService.loadResource(this.formId);\r\n this.formatDesForm();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化字典\r\n * @author ChenRui\r\n * @date 2021/3/12 10:12\r\n */\r\n private initDict(): void {\r\n this.sysDictDetailOptions = formToolsService.sysDictDetailOptions;\r\n this.sysDictTreeDetailOptions = formToolsService.sysDictTreeDetailOptions;\r\n }\r\n\r\n /**\r\n * @description: 格式化表单\r\n * @author ChenRui\r\n * @date 2020/11/30 16:05\r\n */\r\n private formatDesForm(isReset?: boolean): void {\r\n if (this.desForm != null && this.desForm.controls != null && this.desForm.controls.length > 0) {\r\n const model = this.analysisBindingObjects();\r\n this.desForm.formGroup = this.generateFormGroup(model);\r\n this.initControlForm(this.desForm.controls, this.desForm.formGroup);\r\n this.generateFormApi(isReset);\r\n if (this.history != null) {\r\n this.formApi?.setFieldChangeHistory(this.history);\r\n }\r\n this.$emit(\"complete\");\r\n }\r\n }\r\n /**\r\n * @Description: 临时-该方法被取消\r\n * @author LiuBo\r\n * @date 2022/11/6\r\n * @time 17:11\r\n */\r\n private fixFormLayout() {\r\n this.$nextTick(() => {\r\n console.log(\"自动修改表单宽度\");\r\n try {\r\n const formView: any = this.$refs.formView;\r\n const cons = formView.getElementsByClassName(\"lo-control-container\");\r\n const len = cons.length;\r\n for (let i = 0; i < len - 1; i++) {\r\n if (cons[i].offsetLeft === cons[i + 1].offsetLeft && cons[i].clientWidth < cons[i + 1].clientWidth) {\r\n cons[i].style.width = \"200%\";\r\n } else {\r\n cons[i].style.width = \"100%\";\r\n }\r\n }\r\n if (len > 2) {\r\n const con1 = cons[len - 1];\r\n const con2 = cons[len - 2];\r\n if (con1.clientWidth === con2.clientWidth && con1.offsetLeft !== con2.offsetLeft) {\r\n con1.style.width = \"200%\";\r\n } else {\r\n con1.style.width = \"100%\";\r\n }\r\n }\r\n } catch (e) {\r\n console.error(\"自动修改表单宽度错误\" + e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 生成表单对象\r\n * @author ChenRui\r\n * @date 2021/1/7 20:48\r\n */\r\n private generateFormApi(isReset?: boolean): void {\r\n if (isReset) {\r\n const formApi: FormApi = new FormApi(this.formApi);\r\n formApi.dvForm = this;\r\n this.$emit(\"update:formApi\", formApi);\r\n } else {\r\n if (this.formApi) {\r\n this.formApi.dvForm = this;\r\n this.$emit(\"update:formApi\", this.formApi);\r\n } else {\r\n const formApi = new FormApi({ dvForm: this });\r\n this.$emit(\"update:formApi\", formApi);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 解析对象\r\n * @author ChenRui\r\n * @date 2020/11/25 16:25\r\n */\r\n private analysisBindingObjects(): any {\r\n const models: any[] = this.objectExtraction(this.desForm!.controls);\r\n let obj: any = {};\r\n if (models != null && models.length > 0) {\r\n models.forEach((item) => {\r\n if (Object.keys(item).length > 0) {\r\n obj = this.objectMerge(obj, item[Object.keys(item)[0]]);\r\n }\r\n });\r\n }\r\n return obj;\r\n }\r\n\r\n /**\r\n * @description: 对象抽取\r\n * @author ChenRui\r\n * @date 2020/11/25 17:28\r\n */\r\n private objectExtraction(controls: Control[], models: any[] = []): any {\r\n controls.forEach((item) => {\r\n if (item.type === FormFieldClass.Layout.code) {\r\n if (item.subControls != null && item.subControls.length > 0) {\r\n return this.objectExtraction(item.subControls, models);\r\n }\r\n } else {\r\n const desFormControl: DesFormControl = item?.controlAttr as DesFormControl;\r\n const boundProperty: string = desFormControl.boundProperty;\r\n if (boundProperty) {\r\n /* 初始化字典项数据 */\r\n if (desFormControl.generalDictionary || desFormControl.treeShape) {\r\n if (desFormControl.isOptionType === OptionType.Dynamic.code) {\r\n if (desFormControl.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n desFormControl.generalDictionaryOptions = this.findDictOptions(desFormControl.generalDictionary, this.sysDictDetailOptions);\r\n } else if (desFormControl.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n desFormControl.treeShapeOptions = this.findDictOptions(desFormControl.treeShape, this.sysDictTreeDetailOptions);\r\n }\r\n }\r\n }\r\n /*初始化默认值*/\r\n const propertys: string[] = boundProperty.split(\".\");\r\n let lastMd: any = {};\r\n const md = { lastMd };\r\n propertys.forEach((val, idx, array) => {\r\n if (idx < array.length - 1) {\r\n lastMd[val] = {};\r\n lastMd = lastMd[val];\r\n } else {\r\n const defaultValue: any = formBeanUtilsService.parse((item.controlAttr as DesFormControl).fieldDefaultValue) || \"\";\r\n lastMd[val] = this.securityValue(item, defaultValue);\r\n }\r\n });\r\n models.push(md.lastMd);\r\n }\r\n }\r\n });\r\n return models;\r\n }\r\n\r\n /**\r\n * @description: 查询字典\r\n * @author ChenRui\r\n * @date 2021/3/11 17:19\r\n */\r\n private findDictOptions(key: string, nzTreeNodeOptions: NzTreeNodeOptions[]): NzTreeNodeOptions[] {\r\n if (nzTreeNodeOptions != null && nzTreeNodeOptions.length > 0) {\r\n for (const item of nzTreeNodeOptions) {\r\n if (item.key === key) {\r\n (item.children || []).forEach((item) => {\r\n item.disabled = false;\r\n });\r\n return item.children || [];\r\n } else if (item.children && item.children.length > 0) {\r\n const subTtems: NzTreeNodeOptions[] = this.findDictOptions(key, item.children);\r\n if (subTtems != null && subTtems.length > 0) {\r\n return subTtems;\r\n }\r\n }\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 安全值处理\r\n * @author ChenRui\r\n * @date 2021/1/29 17:01\r\n */\r\n securityValue(control: Control, defaultValue: any): any {\r\n if (control.code === FormFieldType.DatePicker.code || control.code === FormFieldType.TimePicker.code) {\r\n if (defaultValue) {\r\n return defaultValue;\r\n } else {\r\n return null;\r\n }\r\n } else if (control.code === FormFieldType.TreeSelect.code) {\r\n const options = extractOptions(control.controlAttr);\r\n if (options && options.length > 0 && defaultValue) {\r\n defaultValue = this.treeSelectRecursion(defaultValue, options);\r\n }\r\n return defaultValue;\r\n } else if (control.code === FormFieldType.Upload.code) {\r\n return defaultValue || [];\r\n } else if (control.code === FormFieldType.Switch.code) {\r\n if (control.controlAttr && (control.controlAttr as DesFormControl).onOpeningValue) {\r\n return defaultValue === true || defaultValue === (control.controlAttr as DesFormControl).onOpeningValue ? true : false;\r\n } else if (control.controlAttr && (control.controlAttr as DesFormControl).whenClosedValue) {\r\n return defaultValue === false || defaultValue === (control.controlAttr as DesFormControl).whenClosedValue ? false : true;\r\n }\r\n return defaultValue;\r\n } else {\r\n return defaultValue;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 树形递归\r\n * @author ChenRui\r\n * @date 2021/1/11 0:23\r\n */\r\n treeSelectRecursion(value: any, items: any[]): any {\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].key === value) {\r\n return items[i].value;\r\n } else if (items[i].children && items[i].children.length > 0) {\r\n const subValue = this.treeSelectRecursion(value, items[i].children);\r\n if (subValue) {\r\n return subValue;\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 对象合并\r\n * @author ChenRui\r\n * @date 2020/11/25 17:49\r\n */\r\n private objectMerge(modelX: any, modelY: any): any {\r\n let key;\r\n for (key in modelY) {\r\n if (modelX[key] && modelX[key].toString() === \"[object Object]\" && modelY[key] && modelY[key].toString() === \"[object Object]\") {\r\n modelX[key] = this.objectMerge(modelX[key], modelY[key]);\r\n } else {\r\n modelX[key] = modelX[key] = modelY[key];\r\n }\r\n }\r\n return modelX;\r\n }\r\n\r\n /**\r\n * @description: 生成表单对象\r\n * @author ChenRui\r\n * @date 2020/11/26 11:02\r\n */\r\n private generateFormGroup(model: any): FormGroup {\r\n const group: FormGroup = new FormGroup();\r\n if (model != null) {\r\n Object.keys(model).forEach((key) => {\r\n if (Object.prototype.toString.call(model[key]) === \"[object Object]\") {\r\n const subFormGroup: FormGroup = this.generateFormGroup(model[key]);\r\n subFormGroup.key = key;\r\n group.addControl(key, subFormGroup);\r\n } else {\r\n const formControl: FormControl = new FormControl(model[key]);\r\n formControl.key = key;\r\n group.addControl(key, formControl);\r\n }\r\n });\r\n }\r\n return group;\r\n }\r\n\r\n /**\r\n * @description: 创建表单对象\r\n * @author ChenRui\r\n * @date 2020/11/23 11:19\r\n */\r\n private initControlForm(controls: Control[], formGroup: FormGroup): void {\r\n controls.forEach((control) => {\r\n if (control.type === FormFieldClass.Base.code || control.type === FormFieldClass.Senior.code) {\r\n const boundProperty: string = (control.controlAttr as DesFormControl)?.boundProperty;\r\n if (boundProperty) {\r\n const propertys: string[] = boundProperty.split(\".\");\r\n if (propertys.length > 1 && formGroup != null) {\r\n const formControl: FormControl = this.findFormControlByProperty(propertys.slice(1, propertys.length), formGroup);\r\n formControl.code = control.code;\r\n formControl.controlAttr = control.controlAttr;\r\n validateGeneratorService.fillCheckRule(formControl, control.controlAttr as DesFormControl);\r\n control[\"formControl\"] = formControl;\r\n }\r\n }\r\n } else if (control.type === FormFieldClass.Layout.code && control.subControls != null && control.subControls.length > 0) {\r\n this.initControlForm(control.subControls, formGroup);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 按照节点查询控件\r\n * @author ChenRui\r\n * @date 2020/11/26 15:45\r\n */\r\n private findFormControlByProperty(propertys: string[], formGroup: FormGroup): FormControl | any {\r\n let currentFormGroup = formGroup;\r\n for (let i = 0; i < propertys.length; i++) {\r\n const formObject = currentFormGroup.get(propertys[i]);\r\n if (i < propertys.length - 1 && formObject != null && formObject instanceof FormGroup) {\r\n currentFormGroup = formObject;\r\n } else {\r\n return formObject;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 控件值变化事件处理\r\n * @author ChenRui\r\n * @date 2020/12/2 14:35\r\n */\r\n onChange(event: any): void {\r\n this.$emit(\"change\", event);\r\n }\r\n\r\n /**\r\n * @description: 下拉选项新增\r\n * @author ChenRui\r\n * @date 2021/1/14 20:05\r\n */\r\n selectAddItem(event: any): void {\r\n this.$emit(\"add-item\", event);\r\n }\r\n\r\n /**\r\n * @description: 单击事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:39\r\n */\r\n onClick(event: any): void {\r\n this.$emit(\"click\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置前置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:42\r\n */\r\n onAddonBeforeHandler(event: any): void {\r\n this.$emit(\"addon-before\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置后置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:43\r\n */\r\n onAddonAfterHandler(event: any): void {\r\n this.$emit(\"addon-after\", event);\r\n }\r\n\r\n /**\r\n * @description: 获取焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:46\r\n */\r\n onFocus(event: Control): void {\r\n this.$emit(\"focus\", event);\r\n }\r\n\r\n /**\r\n * @description: 失焦事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:38\r\n */\r\n onBlur(event: Control): void {\r\n this.$emit(\"blur\", event);\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.w-100 {\r\n width: 100%;\r\n}\r\n.lo-form-container {\r\n box-sizing: border-box;\r\n :deep {\r\n .ant-form-horizontal {\r\n .lo-control-container {\r\n .ant-form-item-label {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n }\r\n }\r\n /* START 非编辑模式主题样式 */\r\n &.lo-class-style-credit-rd.lo-disable-edit,\r\n &.lo-class-style-trust.lo-disable-edit {\r\n :deep {\r\n .lo-control-container {\r\n .ant-form-item-label {\r\n padding-left: 12px;\r\n text-align: left;\r\n label {\r\n &::after {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /* END 非编辑模式主题样式 */\r\n /* START 编辑模式主题样式 */\r\n &.lo-class-style-trust.lo-enable-edit {\r\n :deep {\r\n .ant-form-horizontal {\r\n .lo-control-container {\r\n .ant-form-item-label {\r\n label {\r\n &::after {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n &.lo-class-style-credit-rd.lo-enable-edit,\r\n &.lo-class-style-trust.lo-enable-edit {\r\n :deep {\r\n .ant-form-horizontal {\r\n .lo-control-container {\r\n .ant-form-item-label {\r\n label {\r\n padding-left: 10px;\r\n padding-right: 5px;\r\n }\r\n }\r\n }\r\n }\r\n .lo-control-container {\r\n padding-bottom: 10px;\r\n border: 0;\r\n .ant-form-item-label {\r\n background-color: inherit;\r\n border: 0;\r\n label {\r\n color: rgba(0, 0, 0, 0.850980392156863);\r\n }\r\n }\r\n .ant-form-item-control-wrapper {\r\n .ant-form-item-children {\r\n .ant-input,\r\n .ant-select,\r\n .ant-cascader-picker-label,\r\n .ant-select-selection-selected-value,\r\n .ant-time-picker-input,\r\n .ant-radio-wrapper,\r\n .ant-checkbox-wrapper {\r\n color: #000000;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /* END 编辑模式主题样式 */\r\n}\r\n</style>\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.from.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.slice.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.function.name.js\");","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.reflect.construct.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.function.bind.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.get-prototype-of.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.proto.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.set-prototype-of.js\");","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _callSuper(t, o, e) {\n return o = getPrototypeOf(o), possibleConstructorReturn(t, isNativeReflectConstruct() ? Reflect.construct(o, e || [], getPrototypeOf(t).constructor) : o.apply(t, e));\n}\nexport { _callSuper as default };","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.create.js\");","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tslib\");","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, renderSlot as _renderSlot, resolveDynamicComponent as _resolveDynamicComponent, createSlots as _createSlots } from \"vue\"\n\nconst _hoisted_1 = { class: \"lo-control-box\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"lo-history-context\" }\nconst _hoisted_5 = { class: \"lo-important lo-mx-10\" }\nconst _hoisted_6 = { class: \"lo-important lo-mx-10\" }\nconst _hoisted_7 = { class: \"lo-important lo-ml-10\" }\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = { class: \"number-format-show\" }\nconst _hoisted_10 = { class: \"addon-inner\" }\nconst _hoisted_11 = { class: \"ant-picker-cell-inner calendar-control-style\" }\nconst _hoisted_12 = { class: \"date-control-style\" }\nconst _hoisted_13 = { class: \"date-style\" }\nconst _hoisted_14 = { class: \"eest-day-style\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"holidays-style\"\n}\nconst _hoisted_16 = {\n key: 1,\n class: \"weekday-style\"\n}\nconst _hoisted_17 = { class: \"date-type-style\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"trading-day-style\"\n}\nconst _hoisted_19 = { class: \"lo-input-content\" }\nconst _hoisted_20 = [\"title\"]\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = {\n key: 0,\n class: \"addon-readonly\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_tooltip = _resolveComponent(\"a-tooltip\")!\n const _component_question_circle_outlined = _resolveComponent(\"question-circle-outlined\")!\n const _component_clock_circle_outlined = _resolveComponent(\"clock-circle-outlined\")!\n const _component_a_timeline_item = _resolveComponent(\"a-timeline-item\")!\n const _component_a_timeline = _resolveComponent(\"a-timeline\")!\n const _component_a_popconfirm = _resolveComponent(\"a-popconfirm\")!\n const _component_search_outlined = _resolveComponent(\"search-outlined\")!\n const _component_a_textarea = _resolveComponent(\"a-textarea\")!\n const _component_a_input_number = _resolveComponent(\"a-input-number\")!\n const _component_a_menu_item = _resolveComponent(\"a-menu-item\")!\n const _component_a_menu = _resolveComponent(\"a-menu\")!\n const _component_down_outlined = _resolveComponent(\"down-outlined\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_dropdown = _resolveComponent(\"a-dropdown\")!\n const _component_a_popover = _resolveComponent(\"a-popover\")!\n const _component_v_nodes = _resolveComponent(\"v-nodes\")!\n const _component_a_divider = _resolveComponent(\"a-divider\")!\n const _component_plus_outlined = _resolveComponent(\"plus-outlined\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_radio = _resolveComponent(\"a-radio\")!\n const _component_a_radio_group = _resolveComponent(\"a-radio-group\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_col = _resolveComponent(\"a-col\")!\n const _component_a_row = _resolveComponent(\"a-row\")!\n const _component_a_checkbox_group = _resolveComponent(\"a-checkbox-group\")!\n const _component_a_switch = _resolveComponent(\"a-switch\")!\n const _component_a_time_picker = _resolveComponent(\"a-time-picker\")!\n const _component_a_month_picker = _resolveComponent(\"a-month-picker\")!\n const _component_a_date_picker = _resolveComponent(\"a-date-picker\")!\n const _component_a_slider = _resolveComponent(\"a-slider\")!\n const _component_a_cascader = _resolveComponent(\"a-cascader\")!\n const _component_a_tree_select = _resolveComponent(\"a-tree-select\")!\n const _component_a_rate = _resolveComponent(\"a-rate\")!\n const _component_upload_outlined = _resolveComponent(\"upload-outlined\")!\n const _component_a_upload = _resolveComponent(\"a-upload\")!\n const _component_stretch_text = _resolveComponent(\"stretch-text\")!\n const _component_a_form_item = _resolveComponent(\"a-form-item\")!\n const _component_dv_form_layout = _resolveComponent(\"dv-form-layout\", true)!\n const _component_a_form = _resolveComponent(\"a-form\")!\n\n return ((_ctx.control.type === _ctx.formFieldClass.Base.code || _ctx.control.type === _ctx.formFieldClass.Senior.code) && !_ctx.controlAttr.isHideControl)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"lo-control-container\",\n style: _normalizeStyle({ width: _ctx.divWidthCompatibleToIe })\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_form_item, {\n labelCol: {\r\n style: 'min-width: ' + _ctx.labelSpanWidth + ';width:' + _ctx.labelSpanWidth,\r\n },\n wrapperCol: {\r\n style: 'max-width: ' + _ctx.controlSpanMaxWidth + ';width: ' + _ctx.controlSpanWidth,\r\n },\n colon: _ctx.colon,\n labelAlign: _ctx.labelAlign,\n required: _ctx.required,\n \"validate-status\": _ctx.validateResult.validateStatus,\n help: _ctx.provideInjectData.edit ? _ctx.validateResult.errorMsg : null,\n class: _normalizeClass({\r\n ['form-model-item-' + _ctx.controlAttr.boundProperty]: true,\r\n ['form-model-item-' + _ctx.control.code]: true,\r\n 'lo-form-model-item-textarea-box': _ctx.control.code === _ctx.formFieldType.Textarea.code,\r\n })\n }, {\n label: _withCtx(() => [\n (!_ctx.controlAttr.isHideTitle)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ 'lo-fw': _ctx.controlAttr.isBoldTitle }),\n style: _normalizeStyle({ color: _ctx.controlAttr.titleColor })\n }, _toDisplayString(_ctx.controlAttr.formFieldDescribe), 7),\n (_ctx.submittedType.length > 0)\n ? (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 0,\n class: \"lo-label-sub-type-icon\",\n placement: \"right\",\n title: _ctx.submittedTypeStr,\n overlayClassName: \"lo-form-item-tooltip\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", { src: _ctx.submittedSvg }, null, 8, _hoisted_3)\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.controlAttr.tips)\n ? (_openBlock(), _createBlock(_component_a_tooltip, {\n key: 1,\n class: \"lo-label-tips-icon\",\n placement: \"right\",\n title: _ctx.controlAttr.tips,\n overlayClassName: \"lo-form-item-tooltip\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_question_circle_outlined, { style: {\"font-size\":\"13px\"} })\n ]),\n _: 1\n }, 8, [\"title\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.formControl.history && _ctx.formControl.history.length)\n ? (_openBlock(), _createBlock(_component_a_popconfirm, {\n key: 2,\n overlayClassName: \"lo-label-history-popconfirm\",\n placement: \"right\",\n \"ok-text\": \"确定\"\n }, {\n title: _withCtx(() => [\n _cache[73] || (_cache[73] = _createElementVNode(\"div\", { class: \"lo-history-popconfirm-title\" }, \"历史修改\", -1)),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_timeline, { class: \"lo-history-timeline\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.formControl.history, (item, index) => {\n return (_openBlock(), _createBlock(_component_a_timeline_item, { key: index }, {\n dot: _withCtx(() => [\n _createVNode(_component_clock_circle_outlined, { style: {\"font-size\":\"13px\"} })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, _toDisplayString(item.time), 1),\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(item.before), 1),\n _cache[71] || (_cache[71] = _createTextVNode(\" 改为 \", -1)),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(item.after), 1),\n _cache[72] || (_cache[72] = _createTextVNode(\" 修改人 \", -1)),\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(item.author), 1)\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"lo-label-history-icon\",\n src: _ctx.historySvg\n }, null, 8, _hoisted_8)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (_ctx.provideInjectData.edit)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_ctx.control.code === _ctx.formFieldType.Input.code)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_ctx.provideInjectData.edit)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.inputShape), {\n key: 0,\n class: _normalizeClass({\r\n 'addon-before': _ctx.$slots['input:addonBefore:' + _ctx.formControl.key] || _ctx.controlAttr.bindingPrefix || _ctx.controlAttr.builtInFrontLabel,\r\n 'addon-after': _ctx.$slots['input:addonAfter:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix || _ctx.controlAttr.builtInPostLabel,\r\n }),\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.formControl.value) = $event)),\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n \"data-source\": _ctx.controlAttr.autoCompleteOptions,\n onFocus: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onFocus(_ctx.control))),\n onBlur: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onBlur(_ctx.control))),\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, _createSlots({ _: 2 }, [\n (_ctx.$slots['input:prefix:' + _ctx.formControl.key])\n ? {\n name: \"prefix\",\n fn: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'input:prefix:' + _ctx.formControl.key, {}, undefined, true)\n ]),\n key: \"0\"\n }\n : undefined,\n (_ctx.$slots['input:suffix:' + _ctx.formControl.key])\n ? {\n name: \"suffix\",\n fn: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'input:suffix:' + _ctx.formControl.key, {}, undefined, true)\n ]),\n key: \"1\"\n }\n : undefined,\n (_ctx.$slots['input:addonBefore:' + _ctx.formControl.key] || _ctx.controlAttr.bindingPrefix || _ctx.controlAttr.builtInFrontLabel)\n ? {\n name: \"addonBefore\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: \"addon-inner\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onAddonBeforeHandler(_ctx.control)))\n }, [\n (_ctx.$slots['input:addonBefore:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'input:addonBefore:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_ctx.controlAttr.bindingPrefix)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingPrefix), 1)\n ], 64))\n : (_ctx.controlAttr.builtInFrontLabel)\n ? (_openBlock(), _createBlock(_component_search_outlined, {\n key: 2,\n class: \"addon-icon\"\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n key: \"2\"\n }\n : undefined,\n (_ctx.$slots['input:addonAfter:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix || _ctx.controlAttr.builtInPostLabel)\n ? {\n name: \"addonAfter\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: \"addon-inner\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onAddonAfterHandler(_ctx.control)))\n }, [\n (_ctx.$slots['input:addonAfter:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'input:addonAfter:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_ctx.controlAttr.bindingSuffix)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingSuffix), 1)\n ], 64))\n : (_ctx.controlAttr.builtInPostLabel)\n ? (_openBlock(), _createBlock(_component_search_outlined, {\n key: 2,\n class: \"addon-icon\"\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n key: \"3\"\n }\n : undefined\n ]), 1064, [\"class\", \"value\", \"placeholder\", \"disabled\", \"data-source\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_ctx.control.code === _ctx.formFieldType.Textarea.code)\n ? (_openBlock(), _createBlock(_component_a_textarea, {\n key: 1,\n value: _ctx.control.formControl.value,\n \"onUpdate:value\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.control.formControl.value) = $event)),\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n rows: _ctx.controlAttr.textareaRows || 3,\n showCount: !!_ctx.maxCharacterCount,\n maxlength: _ctx.maxCharacterCount,\n onInput: _cache[8] || (_cache[8] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onFocus: _cache[9] || (_cache[9] = ($event: any) => (_ctx.onFocus(_ctx.control))),\n onBlur: _cache[10] || (_cache[10] = ($event: any) => (_ctx.onBlur(_ctx.control))),\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"value\", \"placeholder\", \"disabled\", \"rows\", \"showCount\", \"maxlength\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.InputNumber.code)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass([\"lo-input-number-box\", {\r\n 'lo-with-unit': _ctx.controlAttr.zoomType === _ctx.zoomType.automatic.code && _ctx.moneyUnits.length > 0,\r\n ['lo-unit-' + _ctx.moneyUnitsIndentScale]: true,\r\n }]),\n tabindex: \"1\"\n }, [\n _createVNode(_component_a_popover, {\n placement: \"topLeft\",\n trigger: \"focus\",\n getPopupContainer: \r\n (triggerNode) => {\r\n return triggerNode.parentNode || _ctx.document.body;\r\n }\r\n \n }, _createSlots({\n default: _withCtx(() => [\n _createVNode(_component_a_input_number, {\n step: _ctx.controlAttr.step || 1,\n min: _ctx.controlAttr.minValue != null ? _ctx.controlAttr.minValue : undefined,\n max: _ctx.controlAttr.maxValue != null ? _ctx.controlAttr.maxValue : undefined,\n formatter: _ctx.numberFormatter,\n parser: _ctx.numberParser,\n precision: _ctx.controlAttr.decimalPlaces,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[13] || (_cache[13] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[14] || (_cache[14] = ($event: any) => (_ctx.onClick(_ctx.control))),\n onFocus: _cache[15] || (_cache[15] = ($event: any) => (_ctx.onInputNumberFocus(_ctx.control))),\n onBlur: _cache[16] || (_cache[16] = ($event: any) => (_ctx.onInputNumberBlur(_ctx.control)))\n }, _createSlots({ _: 2 }, [\n (_ctx.controlAttr.unit)\n ? {\n name: \"addonAfter\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.controlAttr.unit), 1)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"step\", \"min\", \"max\", \"formatter\", \"parser\", \"precision\", \"placeholder\", \"disabled\", \"value\"]),\n (_ctx.controlAttr.zoomType === _ctx.zoomType.automatic.code && _ctx.moneyUnits.length > 0)\n ? (_openBlock(), _createBlock(_component_a_dropdown, { key: 0 }, {\n overlay: _withCtx(() => [\n _createVNode(_component_a_menu, { onClick: _ctx.handleMoneyUnitMenuClick }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.moneyUnits, (unit) => {\n return (_openBlock(), _createBlock(_component_a_menu_item, {\n key: unit.code\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(unit.name), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_a_button, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.defaultMoneyUnit.name) + \" \", 1),\n (_ctx.moneyUnits.length > 1)\n ? (_openBlock(), _createBlock(_component_down_outlined, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, [\n (_ctx.numberPopoverVisible)\n ? {\n name: \"content\",\n fn: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.amountCapitalization(_ctx.zoomMultiple(_ctx.formControl.value, _ctx.formControl))), 1)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"getPopupContainer\"])\n ], 2))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Select.code)\n ? (_openBlock(), _createBlock(_component_a_select, {\n key: 3,\n class: _normalizeClass([\"lo-select\", {\r\n 'lo-select-multiple-suffix-icon': _ctx.controlAttr.isMultipleChoice && (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix),\r\n }]),\n dropdownClassName: _ctx.controlAttr.hiddenDropdown ? 'lo-select-hide-drop-down-content' : '',\n showArrow: \"\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"allow-clear\": true,\n \"show-search\": \"\",\n mode: _ctx.controlAttr.isMultipleChoice ? 'multiple' : '',\n disabled: _ctx.controlAttr.isNotEdit,\n placeholder: _ctx.controlAttr.placeholder,\n onChange: _cache[20] || (_cache[20] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[21] || (_cache[21] = ($event: any) => (_ctx.onClick(_ctx.control))),\n \"get-popup-container\": _ctx.getPopupContainer,\n \"filter-option\": _ctx.filterOption\n }, _createSlots({\n dropdownRender: _withCtx(({ menuNode: menu }) => [\n _createVNode(_component_v_nodes, { vnodes: menu }, null, 8, [\"vnodes\"]),\n (_ctx.controlAttr.canAddEntry)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createVNode(_component_a_divider, { style: {\"margin\":\"4px 0\"} }),\n _createElementVNode(\"div\", {\n style: {\"padding\":\"4px 8px 6px 8px\",\"cursor\":\"pointer\"},\n onMousedown: _cache[17] || (_cache[17] = (e) => e.preventDefault()),\n onClick: _cache[18] || (_cache[18] = ($event: any) => (_ctx.selectAddItem(_ctx.control)))\n }, [\n _createVNode(_component_plus_outlined),\n _cache[74] || (_cache[74] = _createTextVNode(\"新增\", -1))\n ], 32)\n ], 64))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: item.value,\n key: item.value,\n title: item.title,\n disabled: item.disabled ? item.disabled : false\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\", \"disabled\"]))\n }), 128))\n ]),\n _: 2\n }, [\n (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key] || _ctx.controlAttr.bindingSuffix)\n ? {\n name: \"suffixIcon\",\n fn: _withCtx(() => [\n (_ctx.$slots['select:suffixIcon:' + _ctx.formControl.key])\n ? _renderSlot(_ctx.$slots, 'select:suffixIcon:' + _ctx.formControl.key, { key: 0 }, undefined, true)\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_ctx.controlAttr.bindingSuffix), 1)\n ], 64))\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"dropdownClassName\", \"class\", \"value\", \"mode\", \"disabled\", \"placeholder\", \"get-popup-container\", \"filter-option\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Radio.code)\n ? (_openBlock(), _createBlock(_component_a_radio_group, {\n key: 4,\n class: \"w-100\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[22] || (_cache[22] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[23] || (_cache[23] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[24] || (_cache[24] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_radio, {\n key: item.value,\n value: item.value\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Checkbox.code)\n ? (_openBlock(), _createBlock(_component_a_checkbox_group, {\n key: 5,\n class: \"w-100\",\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[25] || (_cache[25] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[26] || (_cache[26] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[27] || (_cache[27] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_a_col, null, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (item) => {\n return (_openBlock(), _createBlock(_component_a_checkbox, {\n key: item.value,\n value: item.value,\n class: \"ml-0 mr-5\",\n style: _normalizeStyle({ width: _ctx.controlAttr.checkboxStyle ? 'auto' : '10rem' })\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_tooltip, null, {\n title: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(item.title), 1)\n ]),\n default: _withCtx(() => [\n _createTextVNode(\" \" + _toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"value\", \"style\"]))\n }), 128))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Switch.code)\n ? (_openBlock(), _createBlock(_component_a_switch, {\n key: 6,\n checked: _ctx.formControl.value,\n \"onUpdate:checked\": _cache[28] || (_cache[28] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"checked-children\": _ctx.controlAttr.onOpeningText,\n \"un-checked-children\": _ctx.controlAttr.whenClosedText,\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[29] || (_cache[29] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[30] || (_cache[30] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"checked\", \"checked-children\", \"un-checked-children\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.TimePicker.code)\n ? (_openBlock(), _createBlock(_component_a_time_picker, {\n key: 7,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n \"use12-hours\": _ctx.is12Hours,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[31] || (_cache[31] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[32] || (_cache[32] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[33] || (_cache[33] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"use12-hours\", \"placeholder\", \"disabled\", \"value\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.DatePicker.code)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 8 }, [\n (_ctx.useMonthPicker)\n ? (_openBlock(), _createBlock(_component_a_month_picker, {\n key: 0,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[34] || (_cache[34] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[35] || (_cache[35] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[36] || (_cache[36] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n : (_ctx.controlAttr.isShowHoliday)\n ? (_openBlock(), _createBlock(_component_a_date_picker, {\n key: 1,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n showTime: _ctx.showPickerTime(_ctx.controlAttr.dateFormat),\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[37] || (_cache[37] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[38] || (_cache[38] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[39] || (_cache[39] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, {\n dateRender: _withCtx(({ current }) => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _cache[75] || (_cache[75] = _createElementVNode(\"div\", { class: \"eest-day-style\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(current.date()), 1),\n _createElementVNode(\"div\", _hoisted_14, [\n (_ctx.isRest(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, \"休\"))\n : (_ctx.isWeekday(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, \"班\"))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n (_ctx.isRadingDay(current))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n renderExtraFooter: _withCtx(() => [...(_cache[76] || (_cache[76] = [\n _createElementVNode(\"div\", { class: \"legend\" }, [\n _createElementVNode(\"div\", { class: \"day-explain-style\" }, [\n _createElementVNode(\"div\", { class: \"trading-day-icon\" }),\n _createElementVNode(\"div\", { class: \"day-explain\" }, \"交易日\")\n ])\n ], -1)\n ]))]),\n _: 1\n }, 8, [\"get-popup-container\", \"locale\", \"showTime\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n : (_openBlock(), _createBlock(_component_a_date_picker, {\n key: 2,\n class: \"w-100\",\n \"get-popup-container\": _ctx.getPopupContainer,\n locale: _ctx.locale,\n showTime: _ctx.showPickerTime(_ctx.controlAttr.dateFormat),\n format: _ctx.controlAttr.dateFormat,\n placeholder: _ctx.controlAttr.placeholder,\n disabled: _ctx.controlAttr.isNotEdit,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[40] || (_cache[40] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[41] || (_cache[41] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[42] || (_cache[42] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"locale\", \"showTime\", \"format\", \"placeholder\", \"disabled\", \"value\"]))\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Slider.code)\n ? (_openBlock(), _createBlock(_component_a_slider, {\n key: 9,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[43] || (_cache[43] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[44] || (_cache[44] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[45] || (_cache[45] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Cascader.code)\n ? (_openBlock(), _createBlock(_component_a_cascader, {\n key: 10,\n \"get-popup-container\": _ctx.getPopupContainer,\n changeOnSelect: _ctx.controlAttr.changeOnSelect,\n placeholder: _ctx.controlAttr.placeholder,\n \"show-search\": { cascaderFilter: _ctx.cascaderFilter },\n disabled: _ctx.controlAttr.isNotEdit,\n options: _ctx.cascaderOptions,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[46] || (_cache[46] = ($event: any) => ((_ctx.formControl.value) = $event)),\n onChange: _cache[47] || (_cache[47] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[48] || (_cache[48] = ($event: any) => (_ctx.onClick(_ctx.control)))\n }, null, 8, [\"get-popup-container\", \"changeOnSelect\", \"placeholder\", \"show-search\", \"disabled\", \"options\", \"value\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.TreeSelect.code)\n ? (_openBlock(), _createBlock(_component_a_tree_select, {\n key: 11,\n \"get-popup-container\": _ctx.getPopupContainer,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[49] || (_cache[49] = ($event: any) => ((_ctx.formControl.value) = $event)),\n \"show-search\": true,\n treeNodeFilterProp: 'title',\n disabled: _ctx.controlAttr.isNotEdit,\n placeholder: _ctx.controlAttr.placeholder,\n \"dropdown-style\": { maxHeight: '250px', overflow: 'auto' },\n \"tree-data\": _ctx.treeSelectOptions,\n onChange: _cache[50] || (_cache[50] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[51] || (_cache[51] = ($event: any) => (_ctx.onClick(_ctx.control))),\n treeDefaultExpandAll: _ctx.controlAttr.isTreeOpen\n }, null, 8, [\"get-popup-container\", \"value\", \"disabled\", \"placeholder\", \"tree-data\", \"treeDefaultExpandAll\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Rate.code)\n ? (_openBlock(), _createBlock(_component_a_rate, {\n key: 12,\n value: _ctx.formControl.value,\n \"onUpdate:value\": _cache[52] || (_cache[52] = ($event: any) => ((_ctx.formControl.value) = $event)),\n disabled: _ctx.controlAttr.isNotEdit,\n onChange: _cache[53] || (_cache[53] = ($event: any) => (_ctx.onChange(_ctx.control))),\n onClick: _cache[54] || (_cache[54] = ($event: any) => (_ctx.onClick(_ctx.control))),\n \"allow-half\": \"\"\n }, null, 8, [\"value\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Upload.code)\n ? (_openBlock(), _createBlock(_component_a_upload, {\n key: 13,\n \"file-list\": _ctx.formControl.value,\n accept: _ctx.uploadType,\n multiple: _ctx.controlAttr.isMultipleChoice,\n onRemove: _ctx.handleRemove,\n \"before-upload\": _ctx.beforeUpload,\n onChange: _ctx.handleUploadChange\n }, {\n default: _withCtx(() => [\n _createVNode(_component_a_button, null, {\n default: _withCtx(() => [\n _createVNode(_component_upload_outlined),\n _cache[77] || (_cache[77] = _createTextVNode(\" 选择文件 \", -1))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"file-list\", \"accept\", \"multiple\", \"onRemove\", \"before-upload\", \"onChange\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.control.code === _ctx.formFieldType.Custom.code && _ctx.controlAttr.customFieldName)\n ? _renderSlot(_ctx.$slots, _ctx.controlAttr.customFieldName, {\n key: 14,\n control: _ctx.control,\n onChange: _ctx.onChange\n }, undefined, true)\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"div\", _hoisted_19, [\n _renderSlot(_ctx.$slots, 'read:' + _ctx.control.formControl.key, { content: _ctx.formatData }, () => [\n (_ctx.controlAttr.textFold)\n ? (_openBlock(), _createBlock(_component_stretch_text, {\n key: 0,\n content: _ctx.formatData,\n linkList: _ctx.linkList,\n fieldKey: _ctx.control.formControl.key,\n onLinkClick: _cache[55] || (_cache[55] = ($event: any) => (_ctx.linkClick({ key: _ctx.formControl.key, value: _ctx.formatData })))\n }, null, 8, [\"content\", \"linkList\", \"fieldKey\"]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"lo-control-text\",\n title: _ctx.formatData\n }, [\n (_ctx.linkList.indexOf(_ctx.control.formControl.key) > -1)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"#\",\n onClick: _cache[56] || (_cache[56] = ($event: any) => (_ctx.linkClick({ key: _ctx.formControl.key, value: _ctx.formatData })))\n }, _toDisplayString(_ctx.formatData), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_21, _toDisplayString(_ctx.formatData), 1))\n ], 8, _hoisted_20))\n ], true)\n ]),\n _cache[78] || (_cache[78] = _createElementVNode(\"div\", { class: \"flex-grow-1\" }, null, -1)),\n (_ctx.controlAttr.unit)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, _toDisplayString(_ctx.controlAttr.unit), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n ]),\n _: 3\n }, 8, [\"labelCol\", \"wrapperCol\", \"colon\", \"labelAlign\", \"required\", \"validate-status\", \"help\", \"class\"])\n ])\n ], 4))\n : (_ctx.control.type === _ctx.formFieldClass.Layout.code && _ctx.control.code === _ctx.formFieldType.Empty.code)\n ? (_openBlock(), _createBlock(_component_a_form, {\n key: 1,\n class: _normalizeClass('w-100 lo-empty-layout-container' + (_ctx.controlAttr.layoutName ? ' lo-form-layout-' + _ctx.controlAttr.layoutName : '')),\n layout: _ctx.layout,\n style: _normalizeStyle(_ctx.emptyLayoutContainerStyle)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.control.subControls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n index: i,\n customFormats: _ctx.customFormats,\n control: item,\n parentControl: _ctx.control,\n linkList: _ctx.linkList,\n onLinkClick: _ctx.linkClick,\n onChange: _cache[57] || (_cache[57] = ($event: any) => (_ctx.onChange($event))),\n onClick: _cache[58] || (_cache[58] = ($event: any) => (_ctx.onClick($event))),\n onFocus: _cache[59] || (_cache[59] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[60] || (_cache[60] = ($event: any) => (_ctx.onBlur($event))),\n onAddonBefore: _cache[61] || (_cache[61] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[62] || (_cache[62] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[63] || (_cache[63] = ($event: any) => (_ctx.selectAddItem($event))),\n onFixFormLayout: _ctx.onHideControl\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(_ctx.$slots), (scopedPropName) => {\n return {\n name: scopedPropName,\n fn: _withCtx(({ content, control, onChange }) => [\n _renderSlot(_ctx.$slots, scopedPropName, {\n content: content,\n control: control,\n onChange: onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"index\", \"customFormats\", \"control\", \"parentControl\", \"linkList\", \"onLinkClick\", \"onFixFormLayout\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\", \"layout\", \"style\"]))\n : (_ctx.control.type === _ctx.formFieldClass.Layout.code && _ctx.control.code !== _ctx.formFieldType.Empty.code)\n ? (_openBlock(), _createBlock(_component_a_form, {\n key: 2,\n class: _normalizeClass('w-100 lo-general-layout-container' + (_ctx.controlAttr.layoutName ? ' lo-form-layout-' + _ctx.controlAttr.layoutName : '')),\n layout: _ctx.layout,\n style: _normalizeStyle(_ctx.generalLayoutContainerStyle)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.control.subControls, (item, i) => {\n return (_openBlock(), _createBlock(_component_dv_form_layout, {\n key: i,\n index: i,\n customFormats: _ctx.customFormats,\n control: item,\n parentControl: _ctx.control,\n class: _normalizeClass(_ctx.controlAttr.layoutName ? 'lo-form-layout-' + _ctx.controlAttr.layoutName : ''),\n onChange: _cache[64] || (_cache[64] = ($event: any) => (_ctx.onChange($event))),\n onClick: _cache[65] || (_cache[65] = ($event: any) => (_ctx.onClick($event))),\n onFocus: _cache[66] || (_cache[66] = ($event: any) => (_ctx.onFocus($event))),\n onBlur: _cache[67] || (_cache[67] = ($event: any) => (_ctx.onBlur($event))),\n onAddonBefore: _cache[68] || (_cache[68] = ($event: any) => (_ctx.onAddonBeforeHandler($event))),\n onAddonAfter: _cache[69] || (_cache[69] = ($event: any) => (_ctx.onAddonAfterHandler($event))),\n onAddItem: _cache[70] || (_cache[70] = ($event: any) => (_ctx.selectAddItem($event)))\n }, _createSlots({ _: 2 }, [\n _renderList(Object.keys(_ctx.$slots), (scopedPropName) => {\n return {\n name: scopedPropName,\n fn: _withCtx(({ content, control, onChange }) => [\n _renderSlot(_ctx.$slots, scopedPropName, {\n content: content,\n control: control,\n onChange: onChange\n }, undefined, true)\n ])\n }\n })\n ]), 1032, [\"index\", \"customFormats\", \"control\", \"parentControl\", \"class\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"class\", \"layout\", \"style\"]))\n : _createCommentVNode(\"\", true)\n}","<template>\r\n <div v-if=\"(control.type === formFieldClass.Base.code || control.type === formFieldClass.Senior.code) && !controlAttr.isHideControl\" class=\"lo-control-container\" :style=\"{ width: divWidthCompatibleToIe }\">\r\n <div class=\"lo-control-box\">\r\n <a-form-item\r\n :labelCol=\"{\r\n style: 'min-width: ' + labelSpanWidth + ';width:' + labelSpanWidth,\r\n }\"\r\n :wrapperCol=\"{\r\n style: 'max-width: ' + controlSpanMaxWidth + ';width: ' + controlSpanWidth,\r\n }\"\r\n :colon=\"colon\"\r\n :labelAlign=\"labelAlign\"\r\n :required=\"required\"\r\n :validate-status=\"validateResult.validateStatus\"\r\n :help=\"provideInjectData.edit ? validateResult.errorMsg : null\"\r\n :class=\"{\r\n ['form-model-item-' + controlAttr.boundProperty]: true,\r\n ['form-model-item-' + control.code]: true,\r\n 'lo-form-model-item-textarea-box': control.code === formFieldType.Textarea.code,\r\n }\"\r\n >\r\n <template v-slot:label>\r\n <span v-if=\"!controlAttr.isHideTitle\">\r\n <span :class=\"{ 'lo-fw': controlAttr.isBoldTitle }\" :style=\"{ color: controlAttr.titleColor }\">{{ controlAttr.formFieldDescribe }}</span>\r\n <a-tooltip class=\"lo-label-sub-type-icon\" placement=\"right\" :title=\"submittedTypeStr\" overlayClassName=\"lo-form-item-tooltip\" v-if=\"submittedType.length > 0\">\r\n <img :src=\"submittedSvg\" />\r\n </a-tooltip>\r\n <a-tooltip class=\"lo-label-tips-icon\" placement=\"right\" :title=\"controlAttr.tips\" overlayClassName=\"lo-form-item-tooltip\" v-if=\"controlAttr.tips\">\r\n <question-circle-outlined style=\"font-size: 13px\" />\r\n </a-tooltip>\r\n <a-popconfirm overlayClassName=\"lo-label-history-popconfirm\" placement=\"right\" ok-text=\"确定\" v-if=\"formControl.history && formControl.history.length\">\r\n <template v-slot:title>\r\n <div class=\"lo-history-popconfirm-title\">历史修改</div>\r\n <div>\r\n <a-timeline class=\"lo-history-timeline\">\r\n <a-timeline-item v-for=\"(item, index) of formControl.history\" :key=\"index\">\r\n <template v-slot:dot>\r\n <clock-circle-outlined style=\"font-size: 13px\" />\r\n </template>\r\n <div class=\"lo-history-context\">\r\n <div>{{ item.time }}</div>\r\n <div class=\"lo-important lo-mx-10\">\r\n {{ item.before }}\r\n </div>\r\n 改为\r\n <div class=\"lo-important lo-mx-10\">\r\n {{ item.after }}\r\n </div>\r\n 修改人\r\n <div class=\"lo-important lo-ml-10\">\r\n {{ item.author }}\r\n </div>\r\n </div>\r\n </a-timeline-item>\r\n </a-timeline>\r\n </div>\r\n </template>\r\n <img class=\"lo-label-history-icon\" :src=\"historySvg\" />\r\n </a-popconfirm>\r\n </span>\r\n </template>\r\n <template v-if=\"provideInjectData.edit\">\r\n <template v-if=\"control.code === formFieldType.Input.code\">\r\n <template v-if=\"provideInjectData.edit\">\r\n <component\r\n :is=\"inputShape\"\r\n :class=\"{\r\n 'addon-before': $slots['input:addonBefore:' + formControl.key] || controlAttr.bindingPrefix || controlAttr.builtInFrontLabel,\r\n 'addon-after': $slots['input:addonAfter:' + formControl.key] || controlAttr.bindingSuffix || controlAttr.builtInPostLabel,\r\n }\"\r\n v-model:value=\"formControl.value\"\r\n :placeholder=\"controlAttr.placeholder\"\r\n :disabled=\"controlAttr.isNotEdit\"\r\n :data-source=\"controlAttr.autoCompleteOptions\"\r\n @focus=\"onFocus(control)\"\r\n @blur=\"onBlur(control)\"\r\n @input=\"onChange(control)\"\r\n @click=\"onClick(control)\"\r\n >\r\n <template v-slot:prefix v-if=\"$slots['input:prefix:' + formControl.key]\">\r\n <slot :name=\"'input:prefix:' + formControl.key\"></slot>\r\n </template>\r\n <template v-slot:suffix v-if=\"$slots['input:suffix:' + formControl.key]\">\r\n <slot :name=\"'input:suffix:' + formControl.key\"></slot>\r\n </template>\r\n <template v-slot:addonBefore v-if=\"$slots['input:addonBefore:' + formControl.key] || controlAttr.bindingPrefix || controlAttr.builtInFrontLabel\">\r\n <span class=\"addon-inner\" @click=\"onAddonBeforeHandler(control)\">\r\n <template v-if=\"$slots['input:addonBefore:' + formControl.key]\">\r\n <slot :name=\"'input:addonBefore:' + formControl.key\"> </slot>\r\n </template>\r\n <template v-else-if=\"controlAttr.bindingPrefix\">\r\n {{ controlAttr.bindingPrefix }}\r\n </template>\r\n <template v-else-if=\"controlAttr.builtInFrontLabel\">\r\n <search-outlined class=\"addon-icon\" />\r\n </template>\r\n </span>\r\n </template>\r\n <template v-slot:addonAfter v-if=\"$slots['input:addonAfter:' + formControl.key] || controlAttr.bindingSuffix || controlAttr.builtInPostLabel\">\r\n <span class=\"addon-inner\" @click=\"onAddonAfterHandler(control)\">\r\n <template v-if=\"$slots['input:addonAfter:' + formControl.key]\">\r\n <slot :name=\"'input:addonAfter:' + formControl.key\"></slot>\r\n </template>\r\n <template v-else-if=\"controlAttr.bindingSuffix\">\r\n {{ controlAttr.bindingSuffix }}\r\n </template>\r\n <template v-else-if=\"controlAttr.builtInPostLabel\">\r\n <search-outlined class=\"addon-icon\" />\r\n </template>\r\n </span>\r\n </template>\r\n </component>\r\n </template>\r\n </template>\r\n <template v-else-if=\"control.code === formFieldType.Textarea.code\">\r\n <a-textarea v-model:value=\"control.formControl.value\" :placeholder=\"controlAttr.placeholder\" :disabled=\"controlAttr.isNotEdit\" :rows=\"controlAttr.textareaRows || 3\" :showCount=\"!!maxCharacterCount\" :maxlength=\"maxCharacterCount\" @input=\"onChange(control)\" @focus=\"onFocus(control)\" @blur=\"onBlur(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.InputNumber.code\">\r\n <span\r\n class=\"lo-input-number-box\"\r\n tabindex=\"1\"\r\n :class=\"{\r\n 'lo-with-unit': controlAttr.zoomType === zoomType.automatic.code && moneyUnits.length > 0,\r\n ['lo-unit-' + moneyUnitsIndentScale]: true,\r\n }\"\r\n >\r\n <a-popover\r\n placement=\"topLeft\"\r\n trigger=\"focus\"\r\n :getPopupContainer=\"\r\n (triggerNode) => {\r\n return triggerNode.parentNode || document.body;\r\n }\r\n \"\r\n >\r\n <template v-if=\"numberPopoverVisible\" #content>\r\n <span class=\"number-format-show\">\r\n {{ amountCapitalization(zoomMultiple(formControl.value, formControl)) }}\r\n </span>\r\n </template>\r\n <a-input-number\r\n :step=\"controlAttr.step || 1\"\r\n :min=\"controlAttr.minValue != null ? controlAttr.minValue : undefined\"\r\n :max=\"controlAttr.maxValue != null ? controlAttr.maxValue : undefined\"\r\n :formatter=\"numberFormatter\"\r\n :parser=\"numberParser\"\r\n :precision=\"controlAttr.decimalPlaces\"\r\n :placeholder=\"controlAttr.placeholder\"\r\n :disabled=\"controlAttr.isNotEdit\"\r\n v-model:value=\"formControl.value\"\r\n @change=\"onChange(control)\"\r\n @click=\"onClick(control)\"\r\n @focus=\"onInputNumberFocus(control)\"\r\n @blur=\"onInputNumberBlur(control)\"\r\n >\r\n <template v-slot:addonAfter v-if=\"controlAttr.unit\">\r\n <span class=\"addon-inner\">{{ controlAttr.unit }}</span>\r\n </template>\r\n </a-input-number>\r\n <a-dropdown v-if=\"controlAttr.zoomType === zoomType.automatic.code && moneyUnits.length > 0\">\r\n <template v-slot:overlay>\r\n <a-menu @click=\"handleMoneyUnitMenuClick\">\r\n <a-menu-item v-for=\"unit in moneyUnits\" :key=\"unit.code\">{{ unit.name }}</a-menu-item>\r\n </a-menu>\r\n </template>\r\n <a-button>\r\n {{ defaultMoneyUnit.name }}\r\n <down-outlined v-if=\"moneyUnits.length > 1\" />\r\n </a-button>\r\n </a-dropdown>\r\n </a-popover>\r\n </span>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Select.code\">\r\n <a-select\r\n class=\"lo-select\"\r\n :dropdownClassName=\"controlAttr.hiddenDropdown ? 'lo-select-hide-drop-down-content' : ''\"\r\n :class=\"{\r\n 'lo-select-multiple-suffix-icon': controlAttr.isMultipleChoice && ($slots['select:suffixIcon:' + formControl.key] || controlAttr.bindingSuffix),\r\n }\"\r\n showArrow\r\n v-model:value=\"formControl.value\"\r\n :allow-clear=\"true\"\r\n show-search\r\n :mode=\"controlAttr.isMultipleChoice ? 'multiple' : ''\"\r\n :disabled=\"controlAttr.isNotEdit\"\r\n :placeholder=\"controlAttr.placeholder\"\r\n @change=\"onChange(control)\"\r\n @click=\"onClick(control)\"\r\n :get-popup-container=\"getPopupContainer\"\r\n :filter-option=\"filterOption\"\r\n >\r\n <template #dropdownRender=\"{ menuNode: menu }\">\r\n <v-nodes :vnodes=\"menu\" />\r\n <template v-if=\"controlAttr.canAddEntry\">\r\n <a-divider style=\"margin: 4px 0\" />\r\n <div style=\"padding: 4px 8px 6px 8px; cursor: pointer\" @mousedown=\"(e) => e.preventDefault()\" @click=\"selectAddItem(control)\"><plus-outlined />新增</div>\r\n </template>\r\n </template>\r\n <template #default>\r\n <a-select-option v-for=\"item in options\" :value=\"item.value\" :key=\"item.value\" :title=\"item.title\" :disabled=\"item.disabled ? item.disabled : false\">{{ item.title }}</a-select-option>\r\n </template>\r\n <template #suffixIcon v-if=\"$slots['select:suffixIcon:' + formControl.key] || controlAttr.bindingSuffix\">\r\n <template v-if=\"$slots['select:suffixIcon:' + formControl.key]\">\r\n <slot :name=\"'select:suffixIcon:' + formControl.key\"></slot>\r\n </template>\r\n <template v-else>\r\n {{ controlAttr.bindingSuffix }}\r\n </template>\r\n </template>\r\n </a-select>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Radio.code\">\r\n <a-radio-group class=\"w-100\" v-model:value=\"formControl.value\" :disabled=\"controlAttr.isNotEdit\" @change=\"onChange(control)\" @click=\"onClick(control)\">\r\n <a-radio v-for=\"item in options\" :key=\"item.value\" :value=\"item.value\">{{ item.title }}</a-radio>\r\n </a-radio-group>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Checkbox.code\">\r\n <a-checkbox-group class=\"w-100\" v-model:value=\"formControl.value\" :disabled=\"controlAttr.isNotEdit\" @change=\"onChange(control)\" @click=\"onClick(control)\">\r\n <a-row>\r\n <a-col>\r\n <a-checkbox v-for=\"item in options\" :key=\"item.value\" :value=\"item.value\" class=\"ml-0 mr-5\" :style=\"{ width: controlAttr.checkboxStyle ? 'auto' : '10rem' }\">\r\n <a-tooltip>\r\n <template #title>\r\n <span>{{ item.title }}</span>\r\n </template>\r\n {{ item.title }}\r\n </a-tooltip>\r\n </a-checkbox>\r\n </a-col>\r\n </a-row>\r\n </a-checkbox-group>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Switch.code\">\r\n <a-switch v-model:checked=\"formControl.value\" :checked-children=\"controlAttr.onOpeningText\" :un-checked-children=\"controlAttr.whenClosedText\" :disabled=\"controlAttr.isNotEdit\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.TimePicker.code\">\r\n <a-time-picker class=\"w-100\" :get-popup-container=\"getPopupContainer\" :locale=\"locale\" :use12-hours=\"is12Hours\" :placeholder=\"controlAttr.placeholder\" :disabled=\"controlAttr.isNotEdit\" v-model:value=\"formControl.value\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.DatePicker.code\">\r\n <a-month-picker v-if=\"useMonthPicker\" class=\"w-100\" :get-popup-container=\"getPopupContainer\" :locale=\"locale\" :format=\"controlAttr.dateFormat\" :placeholder=\"controlAttr.placeholder\" :disabled=\"controlAttr.isNotEdit\" v-model:value=\"formControl.value\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n <a-date-picker v-else-if=\"controlAttr.isShowHoliday\" class=\"w-100\" :get-popup-container=\"getPopupContainer\" :locale=\"locale\" :showTime=\"showPickerTime(controlAttr.dateFormat)\" :format=\"controlAttr.dateFormat\" :placeholder=\"controlAttr.placeholder\" :disabled=\"controlAttr.isNotEdit\" v-model:value=\"formControl.value\" @change=\"onChange(control)\" @click=\"onClick(control)\">\r\n <template #dateRender=\"{ current }\">\r\n <div class=\"ant-picker-cell-inner calendar-control-style\">\r\n <div class=\"date-control-style\">\r\n <div class=\"eest-day-style\"></div>\r\n <div class=\"date-style\">{{ current.date() }}</div>\r\n <div class=\"eest-day-style\">\r\n <div class=\"holidays-style\" v-if=\"isRest(current)\">休</div>\r\n <div class=\"weekday-style\" v-else-if=\"isWeekday(current)\">班</div>\r\n </div>\r\n </div>\r\n <div class=\"date-type-style\">\r\n <!-- 交易日 -->\r\n <div class=\"trading-day-style\" v-if=\"isRadingDay(current)\"></div>\r\n </div>\r\n </div>\r\n </template>\r\n <template #renderExtraFooter>\r\n <div class=\"legend\">\r\n <div class=\"day-explain-style\">\r\n <div class=\"trading-day-icon\"></div>\r\n <div class=\"day-explain\">交易日</div>\r\n </div>\r\n </div>\r\n </template>\r\n </a-date-picker>\r\n <a-date-picker v-else class=\"w-100\" :get-popup-container=\"getPopupContainer\" :locale=\"locale\" :showTime=\"showPickerTime(controlAttr.dateFormat)\" :format=\"controlAttr.dateFormat\" :placeholder=\"controlAttr.placeholder\" :disabled=\"controlAttr.isNotEdit\" v-model:value=\"formControl.value\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Slider.code\">\r\n <a-slider v-model:value=\"formControl.value\" :disabled=\"controlAttr.isNotEdit\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Cascader.code\">\r\n <a-cascader :get-popup-container=\"getPopupContainer\" :changeOnSelect=\"controlAttr.changeOnSelect\" :placeholder=\"controlAttr.placeholder\" :show-search=\"{ cascaderFilter }\" :disabled=\"controlAttr.isNotEdit\" :options=\"cascaderOptions\" v-model:value=\"formControl.value\" @change=\"onChange(control)\" @click=\"onClick(control)\" />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.TreeSelect.code\">\r\n <a-tree-select\r\n :get-popup-container=\"getPopupContainer\"\r\n v-model:value=\"formControl.value\"\r\n :show-search=\"true\"\r\n :treeNodeFilterProp=\"'title'\"\r\n :disabled=\"controlAttr.isNotEdit\"\r\n :placeholder=\"controlAttr.placeholder\"\r\n :dropdown-style=\"{ maxHeight: '250px', overflow: 'auto' }\"\r\n :tree-data=\"treeSelectOptions\"\r\n @change=\"onChange(control)\"\r\n @click=\"onClick(control)\"\r\n :treeDefaultExpandAll=\"controlAttr.isTreeOpen\"\r\n >\r\n </a-tree-select>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Rate.code\">\r\n <a-rate v-model:value=\"formControl.value\" :disabled=\"controlAttr.isNotEdit\" @change=\"onChange(control)\" @click=\"onClick(control)\" allow-half />\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Upload.code\">\r\n <a-upload :file-list=\"formControl.value\" :accept=\"uploadType\" :multiple=\"controlAttr.isMultipleChoice\" @remove=\"handleRemove\" :before-upload=\"beforeUpload\" @change=\"handleUploadChange\">\r\n <a-button>\r\n <upload-outlined />\r\n 选择文件\r\n </a-button>\r\n </a-upload>\r\n </template>\r\n <template v-if=\"control.code === formFieldType.Custom.code && controlAttr.customFieldName\">\r\n <slot :control=\"control\" :onChange=\"onChange\" :name=\"controlAttr.customFieldName\"></slot>\r\n </template>\r\n </template>\r\n <template v-else>\r\n <div class=\"lo-input-content\">\r\n <slot :name=\"'read:' + control.formControl.key\" :content=\"formatData\">\r\n <stretch-text v-if=\"controlAttr.textFold\" :content=\"formatData\" :linkList=\"linkList\" :fieldKey=\"control.formControl.key\" @linkClick=\"linkClick({ key: formControl.key, value: formatData })\"></stretch-text>\r\n <div class=\"lo-control-text\" :title=\"formatData\" v-else>\r\n <a v-if=\"linkList.indexOf(control.formControl.key) > -1\" href=\"#\" @click=\"linkClick({ key: formControl.key, value: formatData })\">{{ formatData }}</a>\r\n <span v-else>{{ formatData }}</span>\r\n </div>\r\n </slot>\r\n </div>\r\n <div class=\"flex-grow-1\"></div>\r\n <template v-if=\"controlAttr.unit\">\r\n <span class=\"addon-readonly\">{{ controlAttr.unit }}</span>\r\n </template>\r\n </template>\r\n </a-form-item>\r\n </div>\r\n </div>\r\n <a-form v-else-if=\"control.type === formFieldClass.Layout.code && control.code === formFieldType.Empty.code\" :class=\"'w-100 lo-empty-layout-container' + (controlAttr.layoutName ? ' lo-form-layout-' + controlAttr.layoutName : '')\" :layout=\"layout\" :style=\"emptyLayoutContainerStyle\">\r\n <dv-form-layout\r\n v-for=\"(item, i) in control.subControls\"\r\n :key=\"i\"\r\n :index=\"i\"\r\n :customFormats=\"customFormats\"\r\n :control=\"item\"\r\n :parentControl=\"control\"\r\n :linkList=\"linkList\"\r\n @linkClick=\"linkClick\"\r\n @change=\"onChange($event)\"\r\n @click=\"onClick($event)\"\r\n @focus=\"onFocus($event)\"\r\n @blur=\"onBlur($event)\"\r\n @addon-before=\"onAddonBeforeHandler($event)\"\r\n @addon-after=\"onAddonAfterHandler($event)\"\r\n @add-item=\"selectAddItem($event)\"\r\n @fixFormLayout=\"onHideControl\"\r\n >\r\n <template v-for=\"scopedPropName in Object.keys($slots)\" v-slot:[scopedPropName]=\"{ content, control, onChange }\">\r\n <slot v-bind:content=\"content\" v-bind:control=\"control\" v-bind:onChange=\"onChange\" :name=\"scopedPropName\"></slot>\r\n </template>\r\n </dv-form-layout>\r\n </a-form>\r\n <a-form v-else-if=\"control.type === formFieldClass.Layout.code && control.code !== formFieldType.Empty.code\" :class=\"'w-100 lo-general-layout-container' + (controlAttr.layoutName ? ' lo-form-layout-' + controlAttr.layoutName : '')\" :layout=\"layout\" :style=\"generalLayoutContainerStyle\">\r\n <dv-form-layout\r\n v-for=\"(item, i) in control.subControls\"\r\n :key=\"i\"\r\n :index=\"i\"\r\n :customFormats=\"customFormats\"\r\n :control=\"item\"\r\n :parentControl=\"control\"\r\n :class=\"controlAttr.layoutName ? 'lo-form-layout-' + controlAttr.layoutName : ''\"\r\n @change=\"onChange($event)\"\r\n @click=\"onClick($event)\"\r\n @focus=\"onFocus($event)\"\r\n @blur=\"onBlur($event)\"\r\n @addon-before=\"onAddonBeforeHandler($event)\"\r\n @addon-after=\"onAddonAfterHandler($event)\"\r\n @add-item=\"selectAddItem($event)\"\r\n >\r\n <template v-for=\"scopedPropName in Object.keys($slots)\" v-slot:[scopedPropName]=\"{ content, control, onChange }\">\r\n <slot v-bind:content=\"content\" v-bind:control=\"control\" v-bind:onChange=\"onChange\" :name=\"scopedPropName\"></slot>\r\n </template>\r\n </dv-form-layout>\r\n </a-form>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { Options, Inject, Prop, Watch, Vue } from \"vue-property-decorator\";\r\nimport { Control } from \"@/domain\";\r\nimport { FormEnum } from \"@/domain\";\r\nimport { FormFieldClass } from \"@/constants\";\r\nimport { FormFieldType } from \"@/constants\";\r\nimport generateGridTemplateColumns from \"../../filtres/generate-grid-template-columns.filter\";\r\nimport generateGridColumnEnd from \"../../filtres/generate-grid-column-end.filter\";\r\nimport { DesFormLayout } from \"@/domain\";\r\nimport { DesFormControl } from \"@/domain\";\r\n\r\nimport { AutoComplete, Cascader, Checkbox, DatePicker, Form, Input, InputNumber, Radio, Select, Switch, TimePicker, TreeSelect, Slider, Tooltip, Popover, Divider, Rate, Dropdown, Button, Menu, Upload, Popconfirm, Timeline, FormItem, RadioGroup, Textarea, CheckboxGroup, InputPassword, TimelineItem, Row, Col } from \"ant-design-vue\";\r\nimport { VerticalArrangement } from \"@/constants\";\r\nimport { formBeanUtilsService } from \"@/services\";\r\nimport { ProvideInjectData } from \"@/domain/ProvideInjectData\";\r\n\r\nimport amountCapitalization from \"../../filtres/amount-capitalization.filter\";\r\nimport { FormControl, ValidateResult, CustomFormat } from \"../../domain\";\r\nimport { FormBusAttr, SubmittedType, MoneyUnit, ControlFormatType, BuiltLabel, SupportUploadType } from \"../../constants/enum\";\r\nimport { ValidateRules } from \"@/constants\";\r\nimport { ZoomType } from \"@/constants\";\r\nimport { extractOptions } from \"@/filtres/extract-options.filter\";\r\nimport zoomMultiple from \"../../filtres/zoom-multiple.filter\";\r\nimport switchEnumConvert from \"../../filtres/switch-enum-convert.filter\";\r\nimport StretchText from \"./StretchText.vue\";\r\nimport { SUBMITTED_SVG_XML, HISTORY_SVG_XML } from \"../../constants/encode-assets/svg\";\r\nimport { SearchOutlined, PlusOutlined, QuestionCircleOutlined, ClockCircleOutlined, DownOutlined, UploadOutlined } from \"@ant-design/icons-vue\";\r\n\r\nimport dayjs from \"dayjs\";\r\nimport locale from \"ant-design-vue/es/date-picker/locale/zh_CN\";\r\nimport pinYin from \"../../../public/js/pinyin\";\r\n\r\n@Options({\r\n name: \"DvFormLayout\",\r\n filters: {\r\n amountCapitalization: amountCapitalization,\r\n switchEnumConvert: switchEnumConvert,\r\n zoomMultiple: zoomMultiple,\r\n },\r\n components: {\r\n StretchText,\r\n PlusOutlined,\r\n [Form.name]: Form,\r\n [FormItem.name]: FormItem,\r\n [Input.name]: Input,\r\n [Textarea.name]: Textarea,\r\n [AutoComplete.name]: AutoComplete,\r\n [InputNumber.name]: InputNumber,\r\n [Select.name]: Select,\r\n [Select.Option.displayName + \"\"]: Select.Option,\r\n [Select.OptGroup.displayName + \"\"]: Select.OptGroup,\r\n [Radio.name]: Radio,\r\n [RadioGroup.name]: RadioGroup,\r\n [Checkbox.name]: Checkbox,\r\n [CheckboxGroup.name]: CheckboxGroup,\r\n [Switch.name]: Switch,\r\n [TimePicker.name]: TimePicker,\r\n [DatePicker.name]: DatePicker,\r\n [Slider.name]: Slider,\r\n [AutoComplete.name]: AutoComplete,\r\n [Cascader.name]: Cascader,\r\n [TreeSelect.name]: TreeSelect,\r\n [Tooltip.name]: Tooltip,\r\n [InputPassword.name]: InputPassword,\r\n [Popover.name]: Popover,\r\n [Popconfirm.name]: Popconfirm,\r\n [Timeline.name]: Timeline,\r\n [TimelineItem.name]: TimelineItem,\r\n [Rate.name]: Rate,\r\n [Dropdown.name]: Dropdown,\r\n [Menu.name]: Menu,\r\n [Menu.Item.name]: Menu.Item,\r\n [Upload.name]: Upload,\r\n [Button.name]: Button,\r\n [Divider.name]: Divider,\r\n [DatePicker.MonthPicker.name]: DatePicker.MonthPicker,\r\n [StretchText.name]: StretchText,\r\n [Row.name]: Row,\r\n [Col.name]: Col,\r\n VNodes: (_, { attrs }) => {\r\n return attrs.vnodes;\r\n },\r\n QuestionCircleOutlined,\r\n ClockCircleOutlined,\r\n DownOutlined,\r\n UploadOutlined,\r\n SearchOutlined,\r\n },\r\n})\r\nexport default class DvFormLayout extends Vue {\r\n locale = locale; // 国际化\r\n submittedSvg = SUBMITTED_SVG_XML; // 上报图标\r\n historySvg = HISTORY_SVG_XML; // 历史记录图标\r\n\r\n numberPopoverVisible = false; // 是否开启数字气泡弹窗\r\n validateResult: ValidateResult = {}; // 校验规则\r\n metaRefresh: any; // 刷新标识\r\n defaultMoneyUnit: any = {}; // 默认单位\r\n zoomType = ZoomType; // 缩放类型\r\n builtLabel = BuiltLabel; // 内置前/后置标签\r\n traddayList: any = localStorage.getItem(\"traddayList\") || JSON.stringify([]); // 交易日集合\r\n weekdayList: any = localStorage.getItem(\"weekdayList\") || JSON.stringify([]); // 节假日集合\r\n workdayList: any = localStorage.getItem(\"workdayList\") || JSON.stringify([]); // 工作日集合\r\n amountCapitalization = amountCapitalization; // 大写转换\r\n zoomMultiple = zoomMultiple; // 缩放\r\n filterOption(value: any, item: any) {\r\n if (!item.title) {\r\n return false;\r\n }\r\n return item.title.indexOf(value) > -1 || pinYin.getCamelChars(item.title).indexOf(value) > -1 || pinYin.getFullChars(item.title).indexOf(value) > -1;\r\n }\r\n\r\n @Prop() index: number | undefined;\r\n @Prop() control: Control | undefined;\r\n @Prop() parentControl: Control | undefined;\r\n @Prop({ type: Object, default: () => ({}) }) customFormats: { [key: string]: CustomFormat } | undefined;\r\n @Prop({ type: Array, default: () => [] }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n @Inject() provideInjectData: ProvideInjectData | any;\r\n readonly formFieldClass: FormEnum = FormFieldClass; // 表单字段分类\r\n readonly formFieldType: FormEnum = FormFieldType; // 表单字段类型\r\n\r\n @Watch(\"defaultMoneyUnit\", { immediate: true })\r\n onDefaultMoneyUnitHandler(newVal: any): void {\r\n if (newVal.code != null) {\r\n switch (newVal.code) {\r\n case MoneyUnit.Yuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 1;\r\n break;\r\n case MoneyUnit.TenThousandYuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 10000;\r\n break;\r\n case MoneyUnit.HundredMillionYuan.code:\r\n (this.controlAttr as DesFormControl).zoomMultiple = 100000000;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 校验反馈\r\n * @author ChenRui\r\n * @date 2021/2/26 14:24\r\n */\r\n @Watch(\"provideInjectData.refreshCheckFeedbackFlag\")\r\n @Watch(\"control.formControl.refreshValidate\")\r\n onValidationFeedbackHandle(): void {\r\n this.validateResult = this.formControl.validate();\r\n }\r\n\r\n /**\r\n * @description: 表单校验\r\n * @author ChenRui\r\n * @date 2022/4/6 14:12\r\n */\r\n @Watch(\"provideInjectData.formValidateStateResetMark\")\r\n onFormValidateStateResetMarkHandle(): void {\r\n this.validateResult = {};\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:Object { key: 元素码值, value: 元素值 })\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:22\r\n */\r\n linkClick(data: any): void {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n @Watch(\"control.controlAttr.isHideControl\")\r\n onHideControl() {\r\n this.$nextTick(() => {\r\n this.$emit(\"fixFormLayout\");\r\n });\r\n }\r\n /**\r\n * @description: 输入框形态\r\n * @author ChenRui\r\n * @date 2022/5/7 17:48\r\n */\r\n get inputShape(): string {\r\n if ((this.controlAttr as DesFormControl).isPasswordBox) {\r\n return \"a-input-password\";\r\n } else if ((this.controlAttr as DesFormControl).enableAutoComplete) {\r\n return \"a-auto-complete\";\r\n } else {\r\n return \"a-input\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取控件对象\r\n * @author ChenRui\r\n * @date 2021/1/27 11:07\r\n */\r\n get formControl(): FormControl {\r\n if (this.control && this.control.formControl) {\r\n // 初始化部分数据\r\n this.initFormControlData();\r\n return this.control.formControl;\r\n }\r\n return new FormControl();\r\n }\r\n\r\n /**\r\n * @description: 获取控件配置参数\r\n * @author ChenRui\r\n * @date 2021/1/5 11:26\r\n */\r\n get controlAttr(): DesFormControl | DesFormLayout {\r\n return this.control?.controlAttr as any;\r\n }\r\n\r\n /**\r\n * @description: 获取控件配置参数\r\n * @author ChenRui\r\n * @date 2021/1/5 11:26\r\n */\r\n get parentControlAttr(): DesFormLayout {\r\n return this.parentControl?.controlAttr as DesFormLayout;\r\n }\r\n\r\n /**\r\n * @description: 获取布局方式\r\n * @author ChenRui\r\n * @date 2020/12/30 18:19\r\n */\r\n get layout(): string {\r\n for (const propName of Object.keys(VerticalArrangement)) {\r\n if ((VerticalArrangement as any)[propName][\"code\"] === (this.controlAttr as DesFormLayout).gridVerticalArrangement) {\r\n return (VerticalArrangement as any)[propName][\"value\"];\r\n }\r\n }\r\n return VerticalArrangement.AlignRight.value;\r\n }\r\n\r\n /**\r\n * @description: 当前输入的字符长度\r\n * @author ChenRui\r\n * @date 2021/4/20 15:55\r\n */\r\n get currentCharacterCount(): any {\r\n return this.control!.formControl && this.control!.formControl.value ? this.control!.formControl.value.length : 0;\r\n }\r\n\r\n /**\r\n * @description: 最大字数限制\r\n * @author ChenRui\r\n * @date 2021/4/20 15:38\r\n */\r\n get maxCharacterCount(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.verificationRules && controlAttr.verificationRules.length > 0) {\r\n const verificationRule: any = controlAttr.verificationRules.find((item: any) => item.ruleType === ValidateRules.MaxTextLength.code);\r\n if (verificationRule != null && verificationRule.ruleContent) {\r\n return Number(verificationRule.ruleContent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 数字格式化\r\n * @author ChenRui\r\n * @date 2021/1/14 16:30\r\n */\r\n get numberFormatter(): any {\r\n const controlAttr: any = this.controlAttr as DesFormControl;\r\n const controlFormatType: string = controlAttr.formatType ? controlAttr.formatType : ControlFormatType.GENERAL.code;\r\n return (value: any) => {\r\n let val: any = value != undefined ? String(value) : \"\";\r\n switch (controlFormatType) {\r\n case ControlFormatType.GENERAL.code:\r\n case ControlFormatType.AMOUNT_OF_MONEY.code:\r\n if (controlFormatType === ControlFormatType.AMOUNT_OF_MONEY.code && val != null && controlAttr.thousandthPercentileFormat) {\r\n // 校验小数位不做千分位格式化处理\r\n if (val.indexOf(\".\") > -1) {\r\n val = `${val}`.split(\".\")[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \".\" + `${val}`.split(\".\")[1];\r\n } else {\r\n val = `${val}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && val != null && val != \"\" && controlAttr.unit) {\r\n // val = `${val}${controlAttr.unit}`;\r\n val = `${val}`;\r\n }\r\n return val;\r\n case ControlFormatType.BANK_CARD_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/[\\s]/g, \"\").replace(/(\\d{4})(?=\\d)/g, \"$1 \");\r\n }\r\n return val;\r\n case ControlFormatType.CELL_PHONE_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/\\D/g, \"\").substr(0, 11); // 不允许输入非数字字符,超过11位数字截取前11位\r\n const len = val.length;\r\n if (len > 3 && len < 8) {\r\n val = val.replace(/^(\\d{3})/g, \"$1 \");\r\n } else if (len >= 8) {\r\n val = val.replace(/^(\\d{3})(\\d{4})/g, \"$1 $2 \");\r\n }\r\n }\r\n return val;\r\n case ControlFormatType.LANDLINE_NUMBER.code:\r\n return val;\r\n default: {\r\n return value;\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @description: 数字反格式化\r\n * @author ChenRui\r\n * @date 2021/1/14 16:31\r\n */\r\n get numberParser(): any {\r\n const controlAttr: any = this.controlAttr as DesFormControl;\r\n const zoomType: string = controlAttr.formatType ? controlAttr.formatType : ControlFormatType.GENERAL.code;\r\n return (value: any) => {\r\n let val: any = value;\r\n switch (zoomType) {\r\n case ControlFormatType.GENERAL.code:\r\n case ControlFormatType.AMOUNT_OF_MONEY.code:\r\n if (zoomType === ControlFormatType.AMOUNT_OF_MONEY.code && val != null && controlAttr.thousandthPercentileFormat) {\r\n val = val.replace(/\\$\\s?|(,*)/g, \"\");\r\n }\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && val != null && val != \"\" && controlAttr.unit) {\r\n const replaceUnit: string[] = controlAttr.unit.split(\"\");\r\n replaceUnit.forEach((item) => {\r\n val = val.replace(item, \"\");\r\n });\r\n }\r\n return val;\r\n case ControlFormatType.BANK_CARD_NUMBER.code:\r\n case ControlFormatType.CELL_PHONE_NUMBER.code:\r\n if (val != null) {\r\n val = val.replace(/\\s/g, \"\");\r\n }\r\n return val;\r\n case ControlFormatType.LANDLINE_NUMBER.code:\r\n return val;\r\n default: {\r\n return val;\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @description: label 宽度\r\n * @author ChenRui\r\n * @date 2021/1/5 11:59\r\n */\r\n get labelSpanWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.titleWidth) {\r\n return controlAttr.titleWidth;\r\n } else if (parentControlAttr.labelSpan) {\r\n return parentControlAttr.labelSpan;\r\n } else {\r\n return this.provideInjectData.labelSpan;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 标签后是否显示冒号\r\n * @author ZPFly\r\n * @date 2022/7/15 10:54\r\n */\r\n get colon(): boolean {\r\n return this.provideInjectData.colon;\r\n }\r\n\r\n /**\r\n * @description: 最大宽度设置\r\n * @author ChenRui\r\n * @date 2021/7/8 16:39\r\n */\r\n get controlSpanMaxWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.controlWidth) {\r\n return controlAttr.controlWidth;\r\n } else if (parentControlAttr.controlSpan) {\r\n return parentControlAttr.controlSpan;\r\n } else if (this.provideInjectData.controlSpan) {\r\n return this.provideInjectData.controlSpan;\r\n } else {\r\n return \"none\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 控件宽度\r\n * @author ChenRui\r\n * @date 2021/1/5 15:11\r\n */\r\n get controlSpanWidth(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n const parentControlAttr: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n if (controlAttr.controlWidth) {\r\n return controlAttr.controlWidth;\r\n } else if (parentControlAttr.controlSpan) {\r\n return parentControlAttr.controlSpan;\r\n } else if (this.provideInjectData.controlSpan) {\r\n return this.provideInjectData.controlSpan;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * @description: label 标签的文本对齐方式\r\n * @author ChenRui\r\n * @date 2021/1/5 11:59\r\n */\r\n get labelAlign(): string {\r\n for (const propName of Object.keys(VerticalArrangement)) {\r\n if ((VerticalArrangement as any)[propName][\"code\"] === (this.controlAttr as DesFormLayout).gridVerticalArrangement) {\r\n return (VerticalArrangement as any)[propName][\"textAlign\"];\r\n }\r\n }\r\n return VerticalArrangement.AlignRight.textAlign;\r\n }\r\n\r\n /**\r\n * @description: 获取金额转换单位\r\n * @author ChenRui\r\n * @date 2021/2/20 17:43\r\n */\r\n get moneyUnits(): any[] {\r\n const moneyUnits: any[] = [];\r\n const moneyUnit: any[] = formBeanUtilsService.parse((this.controlAttr as DesFormControl).moneyUnit);\r\n if ((this.controlAttr as DesFormControl).moneyUnit) {\r\n Object.values(MoneyUnit).forEach((item) => {\r\n if (moneyUnit.findIndex((it) => it === item.code) !== -1) {\r\n moneyUnits.push(item);\r\n }\r\n });\r\n }\r\n\r\n if (moneyUnits && moneyUnits.length > 0) {\r\n this.defaultMoneyUnit = moneyUnits[0];\r\n }\r\n return moneyUnits;\r\n }\r\n\r\n /**\r\n * @description: 单位缩放比例\r\n * @author ChenRui\r\n * @date 2022/5/7 10:31\r\n */\r\n get moneyUnitsIndentScale(): number {\r\n const moneyUnit: any = this.defaultMoneyUnit;\r\n if (moneyUnit != null && moneyUnit.code) {\r\n return Number(moneyUnit.code);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * @description: 获取select、checkbox、radio可选项\r\n * @author ChenRui\r\n * @date 2020/12/2 14:36\r\n */\r\n get options(): any[] {\r\n return extractOptions(this.controlAttr);\r\n }\r\n\r\n /**\r\n * @description: 使用月份组件\r\n * @author ChenRui\r\n * @date 2021/5/19 16:12\r\n */\r\n get useMonthPicker(): boolean {\r\n const dateFormat: any = (this.controlAttr as DesFormControl).dateFormat;\r\n if (dateFormat && dateFormat.toLowerCase() === \"yyyy-mm\") {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 级联选择框\r\n * @author ChenRui\r\n * @date 2021/1/5 16:31\r\n */\r\n get cascaderOptions(): any[] {\r\n const value: any[] = this.options;\r\n let options: any[] = [];\r\n if (value && value.length > 0) {\r\n const items = formBeanUtilsService.copy(value);\r\n options = this.cascaderRecursion(items);\r\n }\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 树形下拉选项\r\n * @author ChenRui\r\n * @date 2021/1/5 16:44\r\n */\r\n get treeSelectOptions(): any[] {\r\n const value: any[] = this.options;\r\n console.log(value);\r\n if (value && value.length > 0) {\r\n const items = formBeanUtilsService.copy(value);\r\n this.treeSelectRecursion(items);\r\n return items;\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 是否12小时制\r\n * @author ChenRui\r\n * @date 2021/1/18 10:54\r\n */\r\n get is12Hours(): boolean {\r\n return !!(this.controlAttr as DesFormControl).timeFormat && (this.controlAttr as DesFormControl).timeFormat.indexOf(\":ss\") < 0;\r\n }\r\n\r\n /**\r\n * @description: 是否添加反馈\r\n * @author ChenRui\r\n * @date 2021/1/21 10:43\r\n */\r\n get hasFeedback(): boolean {\r\n return this.control!.formControl != null && this.control!.formControl!.validates && this.control!.formControl!.validates.length > 0;\r\n }\r\n\r\n /**\r\n * @description: 是否必填,仅影响样式\r\n * @author ChenRui\r\n * @date 2021/1/21 10:50\r\n */\r\n get required(): boolean {\r\n if (this.hasFeedback && this.control!.formControl!.validates.findIndex((item: any) => String(item.name) === String(ValidateRules.Required.code)) !== -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 格式化数据\r\n * @author ChenRui\r\n * @date 2021/1/8 11:30\r\n */\r\n get formatData(): string {\r\n this.metaRefresh = this.provideInjectData.metaRefresh; // 刷新标识\r\n let val = \"\";\r\n let data: any = this.control!.formControl!.value;\r\n let options: any[];\r\n let context: any[];\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n switch (this.control!.code) {\r\n case FormFieldType.Input.code:\r\n if (controlAttr.bindingPrefix) {\r\n val += controlAttr.bindingPrefix;\r\n }\r\n val += data || \"\";\r\n if (controlAttr.bindingSuffix) {\r\n val += controlAttr.bindingSuffix;\r\n }\r\n data = val;\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n if (this.numberFormatter) {\r\n data = this.numberFormatter(data);\r\n }\r\n // 自动补0\r\n if (data && controlAttr.decimalPlaces != undefined && (controlAttr.decimalPlaces as any) !== \"\") {\r\n let index;\r\n if (data.indexOf(\".\") == -1) {\r\n index = controlAttr.decimalPlaces;\r\n data += \".\";\r\n } else {\r\n index = controlAttr.decimalPlaces - (data.length - 1 - data.indexOf(\".\"));\r\n }\r\n for (let i = 0; i < index; i++) {\r\n data += \"0\";\r\n }\r\n }\r\n // 金额后缀不依赖于是否设置了小数位\r\n if (controlAttr.zoomType !== ZoomType.automatic.code && data != null && data != \"\" && controlAttr.unit) {\r\n data = data.replace(controlAttr.unit, \"\");\r\n // data = `${data}${controlAttr.unit}`; // 后缀在后面统一展示 2023年9月22日15:49:08\r\n }\r\n return data;\r\n case FormFieldType.Select.code:\r\n case FormFieldType.Radio.code:\r\n if (data != null && Array.isArray(data)) {\r\n const context: string[] = [];\r\n this.options.find((item) => {\r\n for (let i = 0; i < data.length; i++) {\r\n if (item.value === data[i]) {\r\n context.push(item.title);\r\n }\r\n }\r\n });\r\n return context.join(\",\");\r\n } else {\r\n const option = this.options.find((item) => item.value === data);\r\n return option ? option.title : \"\";\r\n }\r\n case FormFieldType.Checkbox.code:\r\n options = data || [];\r\n context = [];\r\n options.forEach((it) => {\r\n this.options.find((item) => {\r\n if (item.value === it) {\r\n context.push(item.title);\r\n }\r\n });\r\n });\r\n return context.join(\" , \");\r\n case FormFieldType.Switch.code:\r\n if (data !== undefined) {\r\n if (data === true && controlAttr.onOpeningValue != undefined && controlAttr.onOpeningValue !== \"\") {\r\n return controlAttr.onOpeningValue;\r\n } else if (data === false && controlAttr.whenClosedValue != undefined && controlAttr.whenClosedValue !== \"\") {\r\n return controlAttr.whenClosedValue;\r\n } else {\r\n return data ? \"是\" : \"否\";\r\n }\r\n }\r\n return \"\";\r\n case FormFieldType.TimePicker.code:\r\n if (data != null) {\r\n return dayjs(data).format(controlAttr.timeFormat || \"HH:mm:ss\");\r\n }\r\n return \"\";\r\n case FormFieldType.DatePicker.code:\r\n if (data != null) {\r\n return dayjs(data).format(controlAttr.dateFormat || \"YYYY-MM-dd\");\r\n }\r\n return \"\";\r\n case FormFieldType.Cascader.code:\r\n if (data != null) {\r\n return this.cascaderContextRecursion(data, this.cascaderOptions);\r\n }\r\n return \"\";\r\n case FormFieldType.TreeSelect.code:\r\n if (data != null) {\r\n return this.treeSelectContextRecursion(data, this.treeSelectOptions);\r\n }\r\n return \"\";\r\n case FormFieldType.Custom.code:\r\n if (this.customFormats && this.customFormats[controlAttr.customFieldName]) {\r\n const customFormat: CustomFormat = this.customFormats[controlAttr.customFieldName];\r\n if (customFormat && customFormat.display) {\r\n return customFormat.display(data, controlAttr);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * @description: 支持的上传类型\r\n * @author ChenRui\r\n * @date 2021/4/25 11:50\r\n */\r\n get uploadType(): any {\r\n const controlAttr = this.controlAttr as DesFormControl;\r\n if (controlAttr.supportUploadType === SupportUploadType.Arbitrarily.code) {\r\n return undefined;\r\n } else if (controlAttr.supportUploadType === SupportUploadType.Custom.code) {\r\n return controlAttr.customUploadType;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 下拉选项新增\r\n * @author ChenRui\r\n * @date 2021/1/14 20:05\r\n */\r\n selectAddItem(event: any): void {\r\n this.$emit(\"add-item\", event);\r\n /*const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n console.log(controlAttr.optionConfig);\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n console.log(controlAttr.generalDictionaryOptions);\r\n }\r\n }\r\n }*/\r\n }\r\n\r\n /**\r\n * @description: 级联搜索\r\n * @author ChenRui\r\n * @date 2021/5/19 17:23\r\n */\r\n cascaderFilter(inputValue: any, path: any): any {\r\n return path.some((option: any) => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);\r\n }\r\n\r\n /**\r\n * @description: 递归生成树形下拉选项\r\n * @author ChenRui\r\n * @date 2021/1/5 16:44\r\n */\r\n treeSelectRecursion(items: any[]): any[] {\r\n const options: any[] = [];\r\n items.forEach((item) => {\r\n item.disabled = false;\r\n item.key = item.value;\r\n if (item.children && item.children.length > 0) {\r\n if ((this.controlAttr as any).disableNonLeafNodes !== \"0\") {\r\n item.disabled = true; // LiuBo 2023年11月7日11:33:41 禁用非叶子节点\r\n }\r\n this.treeSelectRecursion(item.children);\r\n }\r\n });\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 级联递归\r\n * @author ChenRui\r\n * @date 2021/1/5 16:35\r\n */\r\n cascaderRecursion(items: any[]): any[] {\r\n const options: any[] = [];\r\n items.forEach((item) => {\r\n const option: any = {\r\n value: item.value,\r\n label: item.title,\r\n isLeaf: false,\r\n };\r\n options.push(option);\r\n if (item.children && item.children.length > 0) {\r\n option.children = this.cascaderRecursion(item.children);\r\n } else {\r\n option.isLeaf = true;\r\n }\r\n });\r\n return options;\r\n }\r\n\r\n /**\r\n * @description: 递归获取级联选项对应的文本\r\n * @author ChenRui\r\n * @date 2021/1/8 14:45\r\n */\r\n cascaderContextRecursion(val: any[], cascaderOptions: any[], index = 0): string {\r\n if (val && val.length > 0 && cascaderOptions && cascaderOptions.length > 0) {\r\n if (val.length > index) {\r\n const currentIndex = val[index];\r\n const cascaderOption = cascaderOptions.find((item) => item.value === currentIndex);\r\n if (cascaderOption != null) {\r\n let currentText = cascaderOption.label;\r\n if (val.length > index + 1) {\r\n const subText = this.cascaderContextRecursion(val, cascaderOption.children, index + 1);\r\n currentText += \" / \" + subText;\r\n }\r\n return currentText;\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description:\r\n * @author ChenRui\r\n * @date 2021/1/8 15:05\r\n */\r\n\r\n treeSelectContextRecursion(val: string, treeSelectOptions: any[]): string {\r\n if (val && treeSelectOptions && treeSelectOptions.length > 0) {\r\n for (let i = 0; i < treeSelectOptions.length; i++) {\r\n if (treeSelectOptions[i].value === val) {\r\n return treeSelectOptions[i].title;\r\n } else if (treeSelectOptions[i].children && treeSelectOptions[i].children.length > 0) {\r\n const subTitle: string = this.treeSelectContextRecursion(val, treeSelectOptions[i].children);\r\n if (subTitle) {\r\n return subTitle;\r\n }\r\n }\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 是否为ie\r\n * @author ChenRui\r\n * @date 2021/3/25 14:44\r\n */\r\n get isIe(): boolean {\r\n return !!this.provideInjectData.widthCompatibleMode || !!window.ActiveXObject || \"ActiveXObject\" in window;\r\n }\r\n\r\n /**\r\n * @description: ie 兼容性宽度布局\r\n * @author ChenRui\r\n * @date 2021/3/25 12:53\r\n */\r\n get divWidthCompatibleToIe(): any {\r\n if (this.isIe) {\r\n const desFormLayout: DesFormLayout = this.parentControlAttr as DesFormLayout;\r\n const configIndex: number = this.index! % desFormLayout.gridColumnConfig.length; // 索引位置\r\n const proportion: number = desFormLayout.gridColumnConfig[configIndex].value; // 比重\r\n let total = 0; // 总值\r\n desFormLayout.gridColumnConfig.forEach((item: any) => {\r\n total += Number(item.value);\r\n });\r\n const ratio = proportion / total; // 比值\r\n const val = Number(ratio) * 100;\r\n return `calc( ${val}% - 1px)`;\r\n } else {\r\n return \"100%\";\r\n }\r\n }\r\n\r\n /**\r\n * @description: 根节点容器布局样式\r\n * @author ChenRui\r\n * @date 2021/3/25 14:52\r\n */\r\n get emptyLayoutContainerStyle(): any {\r\n let style: any = {};\r\n if (this.isMobileBrowser()) {\r\n return { display: \"flex\", \"flex-direction\": \"column\" };\r\n }\r\n if (this.isIe) {\r\n style = { display: \"flex\", \"flex-wrap\": \"wrap\" };\r\n } else {\r\n const gridTemplateColumns: any = generateGridTemplateColumns((this.control?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n style = { \"grid-template-columns\": gridTemplateColumns };\r\n }\r\n return style;\r\n }\r\n\r\n /**\r\n * @description: 常规布局容器样式\r\n * @author ChenRui\r\n * @date 2021/3/25 14:42\r\n */\r\n get generalLayoutContainerStyle(): any {\r\n let style: any = {};\r\n if (this.isMobileBrowser()) {\r\n return { display: \"flex\", \"flex-direction\": \"column\" };\r\n }\r\n if (this.isIe) {\r\n style = { display: \"flex\", \"flex-wrap\": \"wrap\" };\r\n } else {\r\n const gridColumnEnd: any = generateGridColumnEnd((this.parentControl?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n const gridTemplateColumns: any = generateGridTemplateColumns((this.control?.controlAttr as DesFormLayout)?.gridColumnConfig);\r\n style = {\r\n \"grid-column-end\": gridColumnEnd,\r\n \"grid-template-columns\": gridTemplateColumns,\r\n };\r\n }\r\n return style;\r\n }\r\n /**\r\n * 判断是否为移动端浏览器\r\n * @returns {boolean} true=移动端,false=PC端\r\n */\r\n isMobileBrowser() {\r\n // 匹配常见移动端设备的User-Agent关键词\r\n const mobileRegex = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i;\r\n // 排除平板设备(可选,根据业务需求调整)\r\n const tabletRegex = /iPad|Tablet|Nexus 7|Nexus 10/i;\r\n\r\n const userAgent = navigator.userAgent;\r\n const isMobile = mobileRegex.test(userAgent);\r\n const isTablet = tabletRegex.test(userAgent);\r\n\r\n // 业务逻辑:如果是平板,可根据需求返回true或false\r\n return isMobile && !isTablet;\r\n }\r\n\r\n /**\r\n * @description: 初始化部分数据\r\n * @author ChenRui\r\n * @date 2021/1/29 15:28\r\n */\r\n initFormControlData(): void {\r\n if (this.control && this.control.formControl) {\r\n if (this.control!.code === FormFieldType.DatePicker.code || this.control!.code === FormFieldType.TimePicker.code) {\r\n if (this.control.formControl.value) {\r\n if (typeof this.control.formControl.value === \"string\") {\r\n this.control.formControl.value = dayjs(new Date(this.control.formControl.value));\r\n } else if (this.control.formControl.value instanceof Date) {\r\n this.control.formControl.value = dayjs(this.control.formControl.value);\r\n }\r\n }\r\n }\r\n if (this.control.formControl.textNoticeCallback == null) {\r\n this.control.formControl.textNoticeCallback = () => {\r\n return this.formatData;\r\n };\r\n }\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.maxValue == null || (controlAttr.maxValue as any) === \"\") {\r\n const maxValue = \"9999999999999999\";\r\n if (controlAttr.decimalPlaces != undefined && (controlAttr.decimalPlaces as any) !== \"\" && controlAttr.decimalPlaces > 0) {\r\n if (controlAttr.decimalPlaces > 16) {\r\n controlAttr.decimalPlaces = 16;\r\n }\r\n controlAttr.maxValue = Number(maxValue.slice(0, maxValue.length - controlAttr.decimalPlaces) + \".\" + maxValue.slice(maxValue.length - controlAttr.decimalPlaces, maxValue.length));\r\n } else {\r\n controlAttr.maxValue = Number(maxValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 业务属性\r\n * @author ChenRui\r\n * @date 2021/2/1 14:38\r\n */\r\n get busAttr(): any {\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n let busAttr: any;\r\n let attrSubmittedType: any[] = [];\r\n if (controlAttr.busAttr) {\r\n busAttr = formBeanUtilsService.parse(controlAttr.busAttr);\r\n if (busAttr[FormBusAttr.SUBMITTED_TYPE.code]) {\r\n attrSubmittedType = busAttr[FormBusAttr.SUBMITTED_TYPE.code].split(\",\").filter((item: any) => !!item);\r\n }\r\n }\r\n const submittedType: any[] = Object.values(SubmittedType).map((val: any) => ({ label: val.name, value: val.code }));\r\n const submittedTypeCheckedNode: any[] = [];\r\n submittedType.forEach((item) => {\r\n if (attrSubmittedType.findIndex((it) => it === item.value) > -1) {\r\n submittedTypeCheckedNode.push(item);\r\n }\r\n });\r\n return {\r\n [FormBusAttr.SUBMITTED_TYPE.code]: submittedTypeCheckedNode,\r\n [FormBusAttr.IS_SUPPLEMENT.code]: busAttr ? busAttr[FormBusAttr.IS_SUPPLEMENT.code] : false,\r\n [FormBusAttr.IS_KEY_ELEMENTS.code]: busAttr ? busAttr[FormBusAttr.IS_KEY_ELEMENTS.code] : false,\r\n [FormBusAttr.IS_TRACK.code]: busAttr ? busAttr[FormBusAttr.IS_TRACK.code] : false,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 报送类型\r\n * @author ChenRui\r\n * @date 2021/2/1 15:05\r\n */\r\n get submittedType(): any[] {\r\n if (this.busAttr && this.busAttr[FormBusAttr.SUBMITTED_TYPE.code].length > 0) {\r\n return this.busAttr[FormBusAttr.SUBMITTED_TYPE.code];\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 报送类型字符串\r\n * @author ChenRui\r\n * @date 2021/2/1 15:08\r\n */\r\n get submittedTypeStr(): string {\r\n return this.submittedType.map((item) => item.label).join(\"、\");\r\n }\r\n\r\n /**\r\n * 根据日期时间格式决定是否显示时间选择功能\r\n * @param format\r\n */\r\n showPickerTime(format?: string): any {\r\n // format 包含时间格式\r\n if (format && format.indexOf(\"HH:mm\") > -1) {\r\n return format;\r\n }\r\n return false;\r\n }\r\n /**\r\n * @description: 清除特殊字符\r\n * @author ChenRui\r\n * @date 2021/6/22 15:41\r\n */\r\n private clearNoNum(value: any) {\r\n if (value) {\r\n value = value.replace(/[^\\d.]/g, \"\"); //清除“数字”和“.”以外的字符\r\n value = value.replace(/\\.{2,}/g, \".\"); //只保留第一个. 清除多余的\r\n value = value.replace(\".\", \"$#$\").replace(/\\./g, \"\").replace(\"$#$\", \".\");\r\n // eslint-disable-next-line no-useless-escape\r\n value = value.replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, \"$1$2.$3\"); //只能输入两个小数\r\n if (value.indexOf(\".\") < 0 && value != \"\") {\r\n //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额\r\n value = parseFloat(value);\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n /**\r\n * @description: 校验数字是否超过16位纯编码\r\n * @author ChenRui\r\n * @date 2021/6/22 14:58\r\n */\r\n private validateNumBeyondLimit(value: any): boolean {\r\n if (value) {\r\n const pureNumber: string = value.replace(/[^0-9]/gi, \"\");\r\n return pureNumber.length > 16;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 删除文件\r\n * @author ChenRui\r\n * @date 2021/4/25 11:35\r\n */\r\n handleRemove(file: any): void {\r\n const index = this.formControl.value.indexOf(file);\r\n const newFileList = this.formControl.value.slice();\r\n newFileList.splice(index, 1);\r\n this.formControl.value = newFileList;\r\n }\r\n\r\n /**\r\n * @description: 文件上传前回调函数\r\n * @author ChenRui\r\n * @date 2021/4/25 11:23\r\n */\r\n beforeUpload(file: any): boolean {\r\n const fileList: any[] = [...this.formControl.value, file];\r\n this.formControl.value = fileList;\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: 文件上传变更\r\n * @author ChenRui\r\n * @date 2021/4/25 11:29\r\n */\r\n handleUploadChange(event: any): any {\r\n let fileList: any[] = [...this.formControl.value];\r\n const controlAttr: DesFormControl = this.controlAttr as DesFormControl;\r\n if (controlAttr.maxUploadNumber && controlAttr.maxUploadNumber > 0) {\r\n fileList = fileList.slice(0 - Number(controlAttr.maxUploadNumber));\r\n }\r\n fileList = fileList.map((file) => {\r\n if (file.response) {\r\n file.url = file.response.url;\r\n }\r\n return file;\r\n });\r\n this.formControl.value = fileList;\r\n if (event && event.file && (event.file.status === undefined || event.file.status === \"removed\")) {\r\n this.onChange(this.control!);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 金额菜单单机事件\r\n * @author ChenRui\r\n * @date 2021/2/20 17:21\r\n */\r\n handleMoneyUnitMenuClick(e: any): void {\r\n this.defaultMoneyUnit = this.moneyUnits.find((item) => item.code === e.key);\r\n }\r\n\r\n /**\r\n * @description: 将下拉弹层渲染节点固定在触发器的父元素中\r\n * @author ZPFly\r\n * @date 2022/8/31 11:30\r\n */\r\n getPopupContainer(triggerNode: any) {\r\n return triggerNode.parentNode;\r\n }\r\n\r\n /**\r\n * @description: 输入事件处理\r\n * @author ChenRui\r\n * @date 2020/12/2 14:37\r\n */\r\n onChange(event: Control): void {\r\n if (this.control && (this.control.type === FormFieldClass.Base.code || this.control.type === FormFieldClass.Senior.code)) {\r\n this.validateResult = this.formControl.validate(event.formControl?.value);\r\n }\r\n this.$emit(\"change\", event);\r\n }\r\n\r\n /**\r\n * @description: 点击事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:37\r\n */\r\n onClick(event: Control): void {\r\n this.$emit(\"click\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置前置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:42\r\n */\r\n onAddonBeforeHandler(event: any): void {\r\n this.$emit(\"addon-before\", event);\r\n }\r\n\r\n /**\r\n * @description: 内置后置标签事件\r\n * @author ChenRui\r\n * @date 2021/4/23 9:43\r\n */\r\n onAddonAfterHandler(event: any): void {\r\n this.$emit(\"addon-after\", event);\r\n }\r\n\r\n /**\r\n * @description: 数字框失焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:51\r\n */\r\n onInputNumberFocus(event: Control): void {\r\n this.onFocus(event);\r\n if ((this.controlAttr as DesFormControl).isShowCapitalization) {\r\n this.numberPopoverVisible = true;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 数字输入框失焦\r\n * @author ChenRui\r\n * @date 2021/3/4 11:43\r\n */\r\n onInputNumberBlur(event: Control): void {\r\n this.onBlur(event);\r\n if ((this.controlAttr as DesFormControl).isShowCapitalization) {\r\n this.numberPopoverVisible = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取焦点\r\n * @author ChenRui\r\n * @date 2021/3/4 11:46\r\n */\r\n onFocus(event: Control): void {\r\n this.$emit(\"focus\", event);\r\n }\r\n\r\n /**\r\n * @description: 失焦事件\r\n * @author ChenRui\r\n * @date 2021/3/4 11:38\r\n */\r\n onBlur(event: Control): void {\r\n this.$emit(\"blur\", event);\r\n }\r\n\r\n /**\r\n * @Description 是否节假日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isRest(current: any): boolean {\r\n if (JSON.parse(this.weekdayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 是否工作日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isWeekday(current: any): boolean {\r\n if (JSON.parse(this.workdayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 是否交易日校验\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n isRadingDay(current: any): boolean {\r\n if (JSON.parse(this.traddayList).find((e: any) => e.calDate === this.DateTime(current.$d))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * @Description 日期格式转换\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 02:33\r\n */\r\n DateTime(date: any): string {\r\n const year: any = date.getFullYear();\r\n let month: any = date.getMonth() + 1;\r\n let strDate: any = date.getDate();\r\n\r\n if (month < 10) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate < 10) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return \"\" + year + month + strDate;\r\n }\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import \"../../styles/themes.scss\";\r\n</style>\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.filter.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.find.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.find-index.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.join.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.map.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.some.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.splice.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.date.to-json.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.iterator.filter.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.iterator.find.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.iterator.map.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.iterator.some.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.json.stringify.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.object.values.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.parse-float.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.string.replace.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.string.substr.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/esnext.json.parse.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"vue-property-decorator\");","const formTemplate = {\r\n formId: \"1\",\r\n appId: \"1\",\r\n domainClassId: \"\",\r\n objectId: \"1\",\r\n formType: \"1\",\r\n formName: \"test\",\r\n formAlias: \"test\",\r\n formDescribe: \"\",\r\n useState: \"1\",\r\n desDomainClass: null,\r\n desFormLayouts: [\r\n {\r\n layoutId: \"1\",\r\n formId: \"1\",\r\n parentLayoutId: \"\",\r\n layoutName: \"\",\r\n layoutType: \"101\",\r\n gridSpace: 1,\r\n gridColumnConfig: '[{\"value\":12,\"order\":1},{\"value\":12,\"order\":2}]',\r\n gridLateralArrangement: \"1\",\r\n gridVerticalArrangement: \"1\",\r\n layoutOrder: 1,\r\n labelSpan: \"\",\r\n controlSpan: \"\",\r\n subDesFormLayout: null,\r\n desFormControls: [],\r\n },\r\n ],\r\n desBusObject: null,\r\n};\r\nexport { formTemplate };\r\n","const SUBMITTED_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB0PSIxNjEyMTY2MTU4NzYxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjkxMjY3IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ij4NCiAgICAgIDxkZWZzPjwvZGVmcz4NCiAgICAgIDxwYXRoDQogICAgICAgIGQ9Ik01MTEuNSA5NjBDMjY0LjIgOTYwIDYzIDc1OC44IDYzIDUxMS41UzI2NC4yIDYzIDUxMS41IDYzIDk2MCAyNjQuMiA5NjAgNTExLjUgNzU4LjggOTYwIDUxMS41IDk2MHogbTAtODU5LjIzMmMtMjI2LjQ3OCAwLTQxMC43MzIgMTg0LjI1NC00MTAuNzMyIDQxMC43MzJTMjg1LjAyMiA5MjIuMjMyIDUxMS41IDkyMi4yMzIgOTIyLjIzMiA3MzcuOTc4IDkyMi4yMzIgNTExLjUgNzM3Ljk3OCAxMDAuNzY4IDUxMS41IDEwMC43Njh6IG0tOTQuOTA2IDI4NS45ODhsMi40MTgtMS44MTNjOC45NzMtNi43MzQgMTMuNTIyLTE0LjE3NSAxMy41MjQtMjIuMTEycy00LjU0OS0xNS4zOC0xMy41MjQtMjIuMTE3bC0yLjQxOC0xLjgxNGgtNjMuMzQxVjIyNmwtMS44MTQtMi40MTljLTYuNzM2LTguOTc1LTE0LjE3OC0xMy41MjQtMjIuMTE1LTEzLjUyNHMtMTUuMzc5IDQuNTQ5LTIyLjExNSAxMy41MjRMMzA1LjM5NCAyMjZ2MTEyLjloLTczLjk4MWwtMi42NTQgMi42NTNjLTkuNjc5IDkuNjc5LTEzLjcxMyAxOC40OTQtMTIuMzMgMjYuOTQ5IDEuMTgyIDcuMjIzIDYuMTI5IDEzLjA0OCAxNC43IDE3LjMwOGwxLjkwNiAwLjk0Nmg3Mi4zNTV2MTU0LjEyOWMtMjEuOSAxMi4wNTgtNDkuODY5IDI0LjMtODMuMjM2IDM2LjQzNWwtMi4zODggMC44Ny0xLjU4OCAxLjk4MmMtOS4wMzMgMTEuMjc3LTExLjg3OSAyMC44LTguNyAyOS4xMDcgMy4wNCA3Ljk0NSAxMS4xODIgMTMuMDY5IDI0LjIgMTUuMjNsMi4yMTggMC4zNjkgMi4xMzMtMC43MWE0NzEuOTg5IDQ3MS45ODkgMCAwIDAgNjcuMzYyLTI4LjA1djE0My4zNDRjMCA3LjkyOS0yLjc4IDkuNy0zLjY5NCAxMC4yODQtMy42NSAyLjMyLTE2LjU4MSA1LjY2MS01Ny43NDctMTMuNTQybC0yLjY5MS0xLjI1NS0yLjkxMSAwLjU3OGMtMTAuNzI4IDIuMTQtMTcuOCA2Ljg5NC0yMS4wMDYgMTQuMTM5LTMuNTQxIDcuOTkxLTEuODczIDE3LjUyNiA1LjA5NCAyOS4xNDdsMS41NDkgMi41ODUgMi43OTEgMS4xNDNjMjguNDEgMTEuNjIxIDUxLjggMTcuNDE1IDcwLjU3NSAxNy40MTUgMTIuODI2IDAgMjMuNS0yLjcgMzIuMTQ4LTguMSAxNC4yNTctOC44OTIgMjIuMjQxLTI0LjY1IDIzLjczLTQ2LjgzNWwwLjAyMS0xNzMuNzE0YzI4LjI1OS0xNi4xMjcgNTIuMzUzLTM0LjA3NCA3MS42OC01My40bDEuNTE3LTEuNTE4IDAuNjc2LTIuMDM1YzQuNDc0LTEzLjQ3MiAzLjg0NS0yMy4zLTEuOTIzLTMwLjA0NC01LjU1MS02LjUtMTQuOTY2LTguNjkzLTI3Ljk4My02LjUyOWwtMy41OSAwLjU5My0yLjE3OSAyLjkxNGMtNy4zOTQgOS44NzYtMjAuMjEyIDIxLjA1MS0zOC4yIDMzLjMxNVYzODYuNzU2aDYzLjM0MXogbTM5MS4yODggMzY3Ljg2MmwtMS42NzgtMi43OTQtMy4wNzMtMS4wODVjLTUxLjY4Ni0xOC4yMzktOTYuNzMzLTQzLjk1My0xMzQuMDM3LTc2LjUgNDYuOTM4LTU1LjA1NSA3Ny4zLTExNC4wNzcgOTAuMy0xNzUuNTc0IDUuMTE4LTIwLjYgMi45NC0zNy4xNi02LjQ3MS00OS4yMTRDNzQxLjcgNDM1LjA4NiA3MjEuNDc5IDQyOC4xIDY5MS4wOSA0MjguMUg0OTIuMDEzVjMwOC4zMThjMC0yMS40MzggOS4xNDUtMzAuNTg1IDMwLjU4NC0zMC41ODVoMTM4Ljc1OWM0NC43MjkgMCA0NS40MzkgMjEuNTIxIDQ1LjQ0OSAzMC4xNzZsLTQuOTE3IDU0LjEtMC4wMzkgMC44MmMwIDQuOTI3LTEuODU1IDcuMDI3LTMuNDcgOC4zMDUtNS4xNTEgNC4wNzktMjEuMDQzIDkuMjA2LTY5LjYzMi0yLjI1OWwtMi43OS0wLjY1OC0yLjY2IDEuMDY3Yy0xMS4wNCA0LjQyMy0xNy40NjEgMTAuNjkzLTE5LjA4NSAxOC42NDQtMS42NzQgOC4xODUgMi4wNjIgMTYuOSAxMS4xIDI1LjkybDEuODggMS44NzIgMi41OTIgMC41NjZjNTQuODYgMTEuOTM0IDkxLjQ2NSAxMC40NTYgMTExLjkwNy00LjUzMSAxMC42MjYtNy43ODggMTYuNjc2LTE4Ljk3IDE4LTMzLjQ5M2w0Ljk0Mi03OS4xMDVjMS42MjYtMTkuNTc2LTIuOTY3LTM1LjM5LTEzLjY1My00Ny0xMy44LTE0Ljk5My0zNi42LTIyLjI4LTY5LjcxMi0yMi4yOEg1MTIuNjg0Yy00NC44MzMgMC02OC41MyAyMy43LTY4LjUzIDY4LjUyOVY3OTdsMS44MTUgMi40MTljNi43MzcgOC45NzUgMTQuMTc4IDEzLjUyNCAyMi4xMTYgMTMuNTI0czE1LjM3Ny00LjU0OSAyMi4xMTMtMTMuNTI0bDEuODE1LTIuNDE5di0wLjk4M2M1LjUxOSAyLjgyMSAxMi45MzUgMy40NzkgMjIuMTU3IDEuOTQybDEuNDg4LTAuMjQ2IDEuMzI2LTAuNzE2YzQxLjI5MS0yMi4yNjIgODEuNTYxLTUwLjg4MyAxMTkuOC04NS4xNDJhNDg5LjYgNDg5LjYgMCAwIDAgMTUwLjQgODUuNzExbDIuMzU3IDAuODMzIDIuNDUtMC41YzEwLjcyNy0yLjE2NCAxNy43ODgtNi45NCAyMC45ODgtMTQuMiAzLjUyOS03Ljk5IDEuODYtMTcuNDk5LTUuMDk3LTI5LjA4MXogbS05NS40NzMtMjY2LjNsLTAuMzI5IDAuODIxLTAuMTYzIDAuODdjLTkuMTE4IDQ4LjY0OS0zNi4xODkgOTkuNjIyLTgwLjUwOSAxNTEuNjI0LTQ1LjA4Ni00OS43NzQtNzcuNTM2LTEwNS40MTktOTYuNjItMTY1LjY3M2gxNDYuMzljMjYuMDU4IDAgMzEuMDQ2IDUuNDE1IDMxLjc4MiA2LjUgMC45MjkgMS4zNyAwLjIxMiAzLjk0LTAuNTUxIDUuODU3eiBtLTIyMC40IDUuMTE1YzI1LjQ1OCA3My4yMTkgNjEuNDI2IDEzNS43NDYgMTA3LjE1MyAxODYuMjM5LTMwLjEzNSAyOC44LTY2LjEyNyA1My45NDgtMTA3LjE1MyA3NC44NDhWNDkzLjQzMnoiDQogICAgICAgIGZpbGw9IiMwMDlERTUiDQogICAgICAgIHAtaWQ9IjkxMjY4Ig0KICAgICAgPjwvcGF0aD4NCiAgICA8L3N2Zz4=\";\r\n// const HISTORY_SVG_XML =\r\n// \"data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmMTcxNzt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPuWbvuaghzExPC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS40MSw1aDBsMC0uMDlBOCw4LDAsMSwwLC42NCwxMS4xMmE3Ljg2LDcuODYsMCwwLDAsMS42MiwyLjQ1QTgsOCwwLDAsMCwxNS40MSw1Wm0tMi4yNSw4LjE3QTcuMyw3LjMsMCwwLDEsOCwxNS4yOUg4QTcuMzEsNy4zMSwwLDAsMSwuNzEsOCw3LjI5LDcuMjksMCwwLDEsOCwuNzFIOGE3LjI5LDcuMjksMCwwLDEsNS4xNiwxMi40NFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02LjY0LDEwYy0uOTMuNTItMS44NCwxLTIuNzIsMS40MVY3Ljc4SDUuNzl2LjU5aC44NVYzLjU0SDIuODZWNC4zSDUuNzlWN0gzLjA3djQuMTZhMS4yNywxLjI3LDAsMCwxLS4zOCwxbC41OC43NWE1LjkzLDUuOTMsMCwwLDEsLjY0LS41MWMxLS41NiwyLTEuMDcsMi45LTEuNTVBOC41NSw4LjU1LDAsMCwxLDYuNjQsMTBaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAuMjksMTAuNTdhMTAsMTAsMCwwLDAsMS41OC01LjIzaDEuMjh2LS44SDguNzVjLjIxLS41NC40Mi0xLjEuNjItMS42OGwtLjg2LS4yNUEyMy41MiwyMy41MiwwLDAsMSw2LjY2LDcuMTlhNy4yMyw3LjIzLDAsMCwxLC41NS42OWMuMTktLjM1LjM3LS43MS41Ni0xLjA5YTguODEsOC44MSwwLDAsMCwxLjM4LDMuNzUsMTAuMywxMC4zLDAsMCwxLTMuMzksMi4wNyw1LjMxLDUuMzEsMCwwLDEsLjY0Ljc4LDExLjMzLDExLjMzLDAsMCwwLDMuMzMtMi4xNiw5LjQyLDkuNDIsMCwwLDAsMi45LDIsNS41Nyw1LjU3LDAsMCwxLC42OS0uODVBNy4yMiw3LjIyLDAsMCwxLDEwLjI5LDEwLjU3Wm0tLjU3LS43MmExMCwxMCwwLDAsMS0xLjQtNC4yN2wuMS0uMjRIMTFBOS42OCw5LjY4LDAsMCwxLDkuNzIsOS44NVoiLz48L3N2Zz4=\";\r\nconst HISTORY_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBtYXJnaW4tYm90dG9tOiAtMi41cHgiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE1cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC03MzYgLTIyNyApIj4NCiAgICAgICAgPHBhdGgNCiAgICAgICAgICBkPSJNIDE0LjQgNy4xOTI5ODI0NTA2NTc4OSAgQyAxNC40IDcuNjczNjg0MjEwNTI2MzIgIDE0LjM1MDkzMzMzMzMzMzMgOC4xNDMxNTc4OTQ3MzY4NCAgMTQuMjU3Nzc3NzgzMzMzMyA4LjU5NjQ5MTIzMzU1MjYzICBMIDEyLjc5ODU3Nzc4MzMzMzMgOC41OTY0OTEyMzM1NTI2MyAgQyAxMi45MTgzMzI3ODU5NTUyIDguMTM4Mzk0ODc0Mjk4NjEgIDEyLjk3ODkzMDcxNzExODMgNy42NjcxOTc0MTQyNTIwMyAgMTIuOTc4OTMwNzE3MTE4MyA3LjE5NDEwMjY5MTg5MzEyICBDIDEyLjk3ODkzMDcxNzExODMgNC4wOTM1NTY3MzA5NTg2NCAgMTAuNDMxOTI4NDA3NTMxOSAxLjU4MDA2NzYwOTY1NjI4ICA3LjI5MDA0MTgzMzc4NDk3IDEuNTgwMDY3NjA5NjU2MjggIEMgNC4xNDgxNTUyNjAwMzgwNCAxLjU4MDA2NzYwOTY1NjI4ICAxLjYwMTE1Mjk1MDQ1MTY0IDQuMDkzNTU2NzMwOTU4NjQgIDEuNjAxMTUyOTUwNDUxNjQgNy4xOTQxMDI2OTE4OTMxMiAgQyAxLjYwMTE1Mjk1MDQ1MTY0IDEwLjI5NDY0ODY1MjgyNzYgIDQuMTQ4MTU1MjYwMDM4MDQgMTIuODA4MTM3Nzc0MTMgIDcuMjkwMDQxODMzNzg0OTcgMTIuODA4MTM3Nzc0MTMgIEMgNy44MDE3MTU4NDYxMjU2OCAxMi44MDgxMzc3NzQxMyAgOC4zMTEwNTEwNTk5ODkxMyAxMi43NDAwMTU0NzY1MDk1ICA4LjgwNDI2NjY2NjY2NjY3IDEyLjYwNTYxNDAyOTYwNTMgIEMgOC44ODY3NTU1NSAxMi44MTk2NDkxMTE4NDIxICA5LjAyMTE1NTU1IDEzLjAwOTEyMjc5NjA1MjYgIDkuMTkyNTMzMzMzMzMzMzMgMTMuMTU3ODk0NzM2ODQyMSAgQyA4LjkyMzU4OTU2OTY3MTU0IDEzLjM5MTU1NDE5MjUzODIgIDguNzU0MTUwMzc0NjM0NzggMTMuNzE2OTQ4ODM3NTM4MyAgOC43MTgyMjIyMTY2NjY2NyAxNC4wNjg3NzE5MjQzNDIxICBDIDguMjU2IDE0LjE2MTQwMzUwMzI4OTUgIDcuNzc4MTMzMzMzMzMzMzMgMTQuMjEwNTI2MzE1Nzg5NSAgNy4yODg4ODg4ODMzMzMzMyAxNC4yMTA1MjYzMTU3ODk1ICBDIDMuMzYxNDIyMjE2NjY2NjcgMTQuMjEwNTI2MzE1Nzg5NSAgMC4xNzc3Nzc3NjY2NjY2NjcgMTEuMDY4NzcxOTI0MzQyMSAgMC4xNzc3Nzc3ODMzMzMzMzQgNy4xOTI5ODI0NTA2NTc4OSAgQyAwLjE3Nzc3NzggMy4zMTcxOTI5NzY5NzM2OCAgMy4zNjE0MjIyMTY2NjY2NyAwLjE3NTQzODYwMTk3MzY4NCAgNy4yODg4ODg4ODMzMzMzMyAwLjE3NTQzODYwMTk3MzY4NCAgQyAxMS4yMTYzNTU1NSAwLjE3NTQzODYwMTk3MzY4NCAgMTQuNCAzLjMxNzE5Mjk5MzQyMTA1ICAxNC40IDcuMTkyOTgyNDUwNjU3ODkgIFogTSA3LjY0NDQ0NDQ1IDMuNjg0MjEwNTI2MzE1NzkgIEwgNy42NDQ0NDQ0NSA3LjE5Mjk4MjQ1MDY1Nzg5ICBMIDkuNzc3Nzc3NzgzMzMzMzMgNy4xOTI5ODI0NTA2NTc4OSAgQyAxMC4xNzA1MTM2MDg1MDM1IDcuMTkyOTgyNDUwNjU3ODkgIDEwLjQ4ODg4ODkgNy41MDcxNjg1OTM1ODIwOSAgMTAuNDg4ODg4OSA3Ljg5NDczNjg0MjEwNTI2ICBDIDEwLjQ4ODg4ODkgOC4yODIzMDUwOTA2Mjg0MyAgMTAuMTcwNTEzNjA4NTAzNSA4LjU5NjQ5MTIzMzU1MjYzICA5Ljc3Nzc3Nzc4MzMzMzMzIDguNTk2NDkxMjMzNTUyNjMgIEwgNi45MzMzMzMzMzMzMzMzMyA4LjU5NjQ5MTIzMzU1MjYzICBDIDYuNDU5MjU5MjU1NTU1NTUgOC41OTY0OTEyMzM1NTI2MyAgNy40MDc0MDc0MTExMTExMSA4LjU5NjQ5MTIzMzU1MjYzICA2LjkzMzMzMzMzMzMzMzMzIDguNTk2NDkxMjMzNTUyNjMgIEMgNi41NDA1OTc1MDgxNjMxOSA4LjU5NjQ5MTIzMzU1MjYzICA2LjIyMjIyMjIxNjY2NjY3IDguMjgyMzA1MDkwNjI4NDMgIDYuMjIyMjIyMjE2NjY2NjcgNy44OTQ3MzY4NDIxMDUyNiAgTCA2LjIyMjIyMjIxNjY2NjY3IDMuNjg0MjEwNTI2MzE1NzkgIEMgNi4yMjIyMjIyMTY2NjY2NyAzLjI5NjY0MjI3Nzc5MjYyICA2LjU0MDU5NzUwODE2MzE5IDIuOTgyNDU2MTM0ODY4NDIgIDYuOTMzMzMzMzMzMzMzMzMgMi45ODI0NTYxMzQ4Njg0MiAgQyA3LjMyNjA2OTE1ODUwMzQ4IDIuOTgyNDU2MTM0ODY4NDIgIDcuNjQ0NDQ0NDUgMy4yOTY2NDIyNzc3OTI2MiAgNy42NDQ0NDQ0NSAzLjY4NDIxMDUyNjMxNTc5ICBaIE0gMTAuODQ0NDQ0NDUgOS4yOTgyNDU2MDg1NTI2MyAgTCAxNS4xMTExMTExMTY2NjY3IDkuMjk4MjQ1NjA4NTUyNjMgIEMgMTUuNTAzODQ2OTQxODM2OCA5LjI5ODI0NTYwODU1MjYzICAxNS44MjIyMjIyMzMzMzMzIDkuNjEyNDMxNzUxNDc2ODMgIDE1LjgyMjIyMjIzMzMzMzMgMTAgIEMgMTUuODIyMjIyMjMzMzMzMyAxMC4zODc1NjgyNDg1MjMyICAxNS41MDM4NDY5NDE4MzY4IDEwLjcwMTc1NDM5MTQ0NzQgIDE1LjExMTExMTExNjY2NjcgMTAuNzAxNzU0MzkxNDQ3NCAgTCAxMC44NDQ0NDQ0NSAxMC43MDE3NTQzOTE0NDc0ICBDIDEwLjQ1MTcwODYyNDgyOTkgMTAuNzAxNzU0MzkxNDQ3NCAgMTAuMTMzMzMzMzMzMzMzMyAxMC4zODc1NjgyNDg1MjMyICAxMC4xMzMzMzMzMzMzMzMzIDEwICBDIDEwLjEzMzMzMzMzMzMzMzMgOS42MTI0MzE3NTE0NzY4MyAgMTAuNDUxNzA4NjI0ODI5OSA5LjI5ODI0NTYwODU1MjYzICAxMC44NDQ0NDQ0NSA5LjI5ODI0NTYwODU1MjYzICBaIE0gMTAuODQ0NDQ0NDUgMTEuNDAzNTA4NzY2NDQ3NCAgTCAxNS4xMTExMTExMTY2NjY3IDExLjQwMzUwODc2NjQ0NzQgIEMgMTUuNTAzODQ2OTQxODM2OCAxMS40MDM1MDg3NjY0NDc0ICAxNS44MjIyMjIyMzMzMzMzIDExLjcxNzY5NDkwOTM3MTYgIDE1LjgyMjIyMjIzMzMzMzMgMTIuMTA1MjYzMTU3ODk0NyAgQyAxNS44MjIyMjIyMzMzMzMzIDEyLjQ5MjgzMTQwNjQxNzkgIDE1LjUwMzg0Njk0MTgzNjggMTIuODA3MDE3NTQ5MzQyMSAgMTUuMTExMTExMTE2NjY2NyAxMi44MDcwMTc1NDkzNDIxICBMIDEwLjg0NDQ0NDQ1IDEyLjgwNzAxNzU0OTM0MjEgIEMgMTAuNDUxNzA4NjI0ODI5OSAxMi44MDcwMTc1NDkzNDIxICAxMC4xMzMzMzMzMzMzMzMzIDEyLjQ5MjgzMTQwNjQxNzkgIDEwLjEzMzMzMzMzMzMzMzMgMTIuMTA1MjYzMTU3ODk0NyAgQyAxMC4xMzMzMzMzMzMzMzMzIDExLjcxNzY5NDkwOTM3MTYgIDEwLjQ1MTcwODYyNDgyOTkgMTEuNDAzNTA4NzY2NDQ3NCAgMTAuODQ0NDQ0NDUgMTEuNDAzNTA4NzY2NDQ3NCAgWiBNIDEwLjg0NDQ0NDQ1IDEzLjUwODc3MTkyNDM0MjEgIEwgMTUuMTExMTExMTE2NjY2NyAxMy41MDg3NzE5MjQzNDIxICBDIDE1LjUwMzg0Njk0MTgzNjggMTMuNTA4NzcxOTI0MzQyMSAgMTUuODIyMjIyMjMzMzMzMyAxMy44MjI5NTgwNjcyNjYzICAxNS44MjIyMjIyMzMzMzMzIDE0LjIxMDUyNjMxNTc4OTUgIEMgMTUuODIyMjIyMjMzMzMzMyAxNC41OTgwOTQ1NjQzMTI2ICAxNS41MDM4NDY5NDE4MzY4IDE0LjkxMjI4MDcwNzIzNjggIDE1LjExMTExMTExNjY2NjcgMTQuOTEyMjgwNzA3MjM2OCAgTCAxMC44NDQ0NDQ0NSAxNC45MTIyODA3MDcyMzY4ICBDIDEwLjQ1MTcwODYyNDgyOTkgMTQuOTEyMjgwNzA3MjM2OCAgMTAuMTMzMzMzMzMzMzMzMyAxNC41OTgwOTQ1NjQzMTI2ICAxMC4xMzMzMzMzMzMzMzMzIDE0LjIxMDUyNjMxNTc4OTUgIEMgMTAuMTMzMzMzMzMzMzMzMyAxMy44MjI5NTgwNjcyNjYzICAxMC40NTE3MDg2MjQ4Mjk5IDEzLjUwODc3MTkyNDM0MjEgIDEwLjg0NDQ0NDQ1IDEzLjUwODc3MTkyNDM0MjEgIFogIg0KICAgICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyINCiAgICAgICAgICBmaWxsPSIjZmZhMTE2Ig0KICAgICAgICAgIHN0cm9rZT0ibm9uZSINCiAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDczNiAyMjcgKSINCiAgICAgICAgLz4NCiAgICAgIDwvZz4NCiAgICA8L3N2Zz4=\";\r\nconst FORM_ERROR_MODAL_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB0PSIxNjI5Mjg0MTUzNjk3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIxODIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiAwQzIzMC40IDAgMCAyMjcuMiAwIDUxMmMwIDI4MS42IDIzMC40IDUxMiA1MTIgNTEyIDI4NC44IDAgNTEyLTIyNy4yIDUxMi01MTJTNzk2LjggMCA1MTIgMHogbTAgODE5LjJjLTI4LjggMC01MS4yLTIyLjQtNTEuMi01MS4yczIyLjQtNTEuMiA1MS4yLTUxLjJjMjguOCAwIDUxLjIgMjIuNCA1MS4yIDUxLjIgMy4yIDI4LjgtMjIuNCA1MS4yLTUxLjIgNTEuMnogbTU0LjQtMjIwLjhjMCAyOC44LTIyLjQgNTEuMi01MS4yIDUxLjItMjguOCAwLTUxLjItMjIuNC01MS4yLTUxLjJWMjU2YzAtMjguOCAyMi40LTUxLjIgNTEuMi01MS4yIDI4LjggMCA1MS4yIDIyLjQgNTEuMiA1MS4ydjM0Mi40eiIgcC1pZD0iMjE4MyIgZmlsbD0iI0YxQjkxNiI+PC9wYXRoPjwvc3ZnPg==\";\r\nconst DROP_DOWN_LIST_SVG_XML =\r\n \"data:image/svg+xml;base64, PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTRweCIgaGVpZ2h0PSIxMXB4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIC01MTYgLTQ2ICkiPg0KICAgIDxwYXRoIGQ9Ik0gMCA0Ljc0OTk5NDE0MDYyNTAxICBMIDAgNi4yNTAwMDU4NTkzNzQ5OSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDYuMjUwMDA1ODU5Mzc0OTkgIEwgMS41NTU1NDk0NzkxNjY2NCA0Ljc0OTk5NDE0MDYyNTAxICBMIDAgNC43NDk5OTQxNDA2MjUwMSAgWiBNIDAgOC43NSAgTCAwIDEwLjI0OTk5NDE0MDYyNSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDEwLjI0OTk5NDE0MDYyNSAgTCAxLjU1NTU0OTQ3OTE2NjY0IDguNzUgIEwgMCA4Ljc1ICBaIE0gMCAwLjc1MDAwNTg1OTM3NDk5NCAgTCAwIDIuMjUgIEwgMS41NTU1NDk0NzkxNjY2NCAyLjI1ICBMIDEuNTU1NTQ5NDc5MTY2NjQgMC43NTAwMDU4NTkzNzQ5OTQgIEwgMCAwLjc1MDAwNTg1OTM3NDk5NCAgWiBNIDMuMTExMTE3MTg3NDk5OTkgNC43NDk5OTQxNDA2MjUwMSAgTCAzLjExMTExNzE4NzQ5OTk5IDYuMjUwMDA1ODU5Mzc0OTkgIEwgMTQgNi4yNTAwMDU4NTkzNzQ5OSAgTCAxNCA0Ljc0OTk5NDE0MDYyNTAxICBMIDMuMTExMTE3MTg3NDk5OTkgNC43NDk5OTQxNDA2MjUwMSAgWiBNIDMuMTExMTE3MTg3NDk5OTkgOC43NSAgTCAzLjExMTExNzE4NzQ5OTk5IDEwLjI0OTk5NDE0MDYyNSAgTCAxNCAxMC4yNDk5OTQxNDA2MjUgIEwgMTQgOC43NSAgTCAzLjExMTExNzE4NzQ5OTk5IDguNzUgIFogTSAxNCAwLjc1MDAwNTg1OTM3NDk5NCAgTCAzLjExMTExNzE4NzQ5OTk5IDAuNzUwMDA1ODU5Mzc0OTk0ICBMIDMuMTExMTE3MTg3NDk5OTkgMi4yNSAgTCAxNCAyLjI1ICBMIDE0IDAuNzUwMDA1ODU5Mzc0OTk0ICBaICIgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSIjYmZiY2NjIiBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgNTE2IDQ2ICkiIC8+DQogIDwvZz4NCjwvc3ZnPg==\";\r\nexport { SUBMITTED_SVG_XML, HISTORY_SVG_XML, FORM_ERROR_MODAL_SVG_XML, DROP_DOWN_LIST_SVG_XML };\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.sort.js\");","interface Config {\r\n value: number;\r\n order: number;\r\n}\r\n\r\nfunction transform(configs: Config[]): unknown {\r\n if (configs != null && configs.length > 0) {\r\n const arr: string[] = [];\r\n configs.sort((a: Config, b: Config) => a.order - b.order).forEach((item) => arr.push(item.value + \"fr\"));\r\n return arr.join(\" \");\r\n } else {\r\n return `1fr`;\r\n }\r\n}\r\n/**\r\n * @description: 网格布局比例分配\r\n * @author ChenRui\r\n * @date 2020/12/1 19:32\r\n */\r\nconst generateGridTemplateColumns = (configs: Config[]) => {\r\n return transform(configs);\r\n};\r\n\r\nexport default generateGridTemplateColumns;\r\n","interface Config {\r\n value: number;\r\n order: number;\r\n}\r\n\r\nfunction transform(configs: Config[]): unknown {\r\n if (configs != null && configs.length > 0) {\r\n return configs.length + 1;\r\n } else {\r\n return 2;\r\n }\r\n}\r\n/**\r\n * @description: 跨列计算\r\n * @author ChenRui\r\n * @date 2020/12/1 19:34\r\n */\r\nconst generateGridColumnEnd = (configs: Config[]) => {\r\n return transform(configs);\r\n};\r\n\r\nexport default generateGridColumnEnd;\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"ant-design-vue\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.promise.js\");","class ApiService {\r\n createBasicHeaders() {\r\n return {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n }\r\n\r\n createAuthHeaders(accessToken: string, jti: string) {\r\n return {\r\n Authorization: \"bearer \" + accessToken,\r\n \"user-identity\": jti,\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n }\r\n\r\n fetch(path: string, query: { [key: string]: any }, body: any, method: string, header: any) {\r\n path = query != null ? this.urlQueryConvert(path, query) : path;\r\n return fetch(path, {\r\n method: method ? method : \"GET\",\r\n headers: header,\r\n body: body,\r\n }).then(\r\n function (response) {\r\n response.status; //=> number 100–599\r\n response.statusText; //=> String\r\n response.headers; //=> Headers\r\n response.url; //=> String\r\n\r\n return response.json();\r\n },\r\n function (error) {\r\n error.message; //=> String\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description: url请求参数组装\r\n * @author ChenRui\r\n * @date 2020/8/28 15:21\r\n */\r\n urlQueryConvert(url: string, query: { [key: string]: any }) {\r\n let connectiveSymbol = \"\";\r\n if (url.indexOf(\"?\") !== -1) {\r\n connectiveSymbol = \"&\";\r\n } else {\r\n connectiveSymbol = \"?\";\r\n }\r\n if (query) {\r\n Object.keys(query).forEach((key, idx) => {\r\n const val = query[key];\r\n if (idx === 0) {\r\n if (val != null && val !== \"null\" && val !== \"undefined\") {\r\n url += connectiveSymbol + key + \"=\" + val;\r\n } else {\r\n url += connectiveSymbol + key + \"=\";\r\n }\r\n } else {\r\n if (val != null && val !== \"null\" && val !== \"undefined\") {\r\n url += \"&\" + key + \"=\" + val;\r\n } else {\r\n url += \"&\" + key + \"=\";\r\n }\r\n }\r\n });\r\n }\r\n return url;\r\n }\r\n}\r\nconst apiService = new ApiService();\r\nexport { apiService };\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"localforage\");","const NAME = \"vue-lo\";\r\nconst STORE_NAME = \"form:\";\r\nconst DICT_STORE_NAME = \"dict:\";\r\nexport { NAME, STORE_NAME, DICT_STORE_NAME };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { NAME } from \"../constants/config/storage.config\";\r\nclass CleanLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: \"clean:\" + appId, // Should be alphanumeric, with underscores.\r\n description: \"用于清理实例的缓存对象\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst cleanLocalForageService: CleanLocalForageService = new CleanLocalForageService();\r\nexport { CleanLocalForageService, cleanLocalForageService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { DICT_STORE_NAME, NAME } from \"../constants/config/storage.config\";\r\nclass DictLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: DICT_STORE_NAME + appId, // Should be alphanumeric, with underscores.\r\n description: \"PC端表单数据库\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst dictLocalForageService: DictLocalForageService = new DictLocalForageService();\r\nexport { DictLocalForageService, dictLocalForageService };\r\n","class FormBeanUtilsService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 对象拷贝\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n copy(obj: any): any {\r\n if (obj != null) {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 字符串转对象\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n parse(str: string | null): any {\r\n if (str != null && str !== \"\") {\r\n return JSON.parse(str);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 对象转字符串\r\n * @author ChenRui\r\n * @date 2020/8/29 19:54\r\n */\r\n stringify(obj: any): string {\r\n if (obj != null) {\r\n return JSON.stringify(obj);\r\n }\r\n return \"\";\r\n }\r\n}\r\nconst formBeanUtilsService = new FormBeanUtilsService();\r\nexport { formBeanUtilsService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport * as sourceLocalForage from \"localforage\";\r\nimport { NAME, STORE_NAME } from \"../constants/config/storage.config\";\r\n\r\nclass FormLocalForageService {\r\n localForage: any;\r\n config: any;\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n constructor() {}\r\n\r\n init(): void {\r\n const appId: string = this.formConfig.appId ? this.formConfig.appId : \"\";\r\n this.config = {\r\n driver: sourceLocalForage.INDEXEDDB, // Force WebSQL; same as using setDriver()\r\n name: NAME,\r\n version: 1.0,\r\n storeName: STORE_NAME + appId, // Should be alphanumeric, with underscores.\r\n description: \"PC端表单数据库\",\r\n };\r\n this.localForage = sourceLocalForage.createInstance(this.config);\r\n }\r\n\r\n /**\r\n * @description: 设值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n setItem(key: string, value: any): any {\r\n this.localForage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * @description: 取值\r\n * @author ChenRui\r\n * @date 2021/3/12 16:31\r\n */\r\n getItem(key: string): Promise<any> {\r\n return this.localForage.getItem(key);\r\n }\r\n\r\n /**\r\n * @description: 删除实例\r\n * @author ChenRui\r\n * @date 2021/6/22 11:08\r\n */\r\n dropInstance(): void {\r\n if (this.localForage != null) {\r\n this.localForage.dropInstance().then();\r\n }\r\n }\r\n}\r\nconst formLocalForageService: FormLocalForageService = new FormLocalForageService();\r\nexport { FormLocalForageService, formLocalForageService };\r\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import { DesFormLayout } from \"./DesFormLayout\";\r\nimport { Control } from \"./Control\";\r\nimport { FormGroup } from \"./FormGroup\";\r\n\r\nexport class DesForm {\r\n formId: string;\r\n appId: string;\r\n domainClassId: string;\r\n objectId: string;\r\n formType: string;\r\n formName: string;\r\n formAlias: string;\r\n formDescribe: string;\r\n useState: string;\r\n desFormLayouts: DesFormLayout[];\r\n controls: Control[];\r\n formGroup: FormGroup | undefined;\r\n [key: string]: any;\r\n constructor(\r\n options: {\r\n formId?: string;\r\n appId?: string;\r\n domainClassId?: string;\r\n objectId?: string;\r\n formType?: string;\r\n formName?: string;\r\n formAlias?: string;\r\n formDescribe?: string;\r\n useState?: string;\r\n controls?: Control[];\r\n formGroup?: FormGroup;\r\n desFormLayouts?: DesFormLayout[];\r\n } = {}\r\n ) {\r\n this.formId = options.formId || \"\";\r\n this.appId = options.appId || \"\";\r\n this.domainClassId = options.domainClassId || \"\";\r\n this.objectId = options.objectId || \"\";\r\n this.formType = options.formType || \"\";\r\n this.formName = options.formName || \"\";\r\n this.formAlias = options.formAlias || \"\";\r\n this.formDescribe = options.formDescribe || \"\";\r\n this.useState = options.useState || \"\";\r\n this.controls = options.controls || [];\r\n this.formGroup = options.formGroup;\r\n this.desFormLayouts = options.desFormLayouts || [];\r\n }\r\n}\r\n","import { DesFormControl } from \"./DesFormControl\";\r\n\r\nexport class DesFormLayout {\r\n layoutId: string;\r\n formId: string;\r\n parentLayoutId: string;\r\n layoutName: string;\r\n layoutType: string;\r\n gridSpace: number | undefined;\r\n gridColumnConfig: any;\r\n gridLateralArrangement: string;\r\n gridVerticalArrangement: string;\r\n layoutOrder: number | undefined;\r\n labelSpan: string;\r\n controlSpan: string;\r\n desFormControls: DesFormControl[];\r\n subDesFormLayout: DesFormLayout[];\r\n constructor(\r\n options: {\r\n layoutId?: string;\r\n formId?: string;\r\n parentLayoutId?: string;\r\n layoutName?: string;\r\n layoutType?: string;\r\n gridSpace?: number;\r\n gridColumnConfig?: any;\r\n gridLateralArrangement?: string;\r\n gridVerticalArrangement?: string;\r\n layoutOrder?: number;\r\n labelSpan?: string;\r\n controlSpan?: string;\r\n desFormControls?: DesFormControl[];\r\n subDesFormLayout?: DesFormLayout[];\r\n } = {}\r\n ) {\r\n this.layoutId = options.layoutId || \"\";\r\n this.formId = options.formId || \"\";\r\n this.parentLayoutId = options.parentLayoutId || \"\";\r\n this.layoutName = options.layoutName || \"\";\r\n this.layoutType = options.layoutType || \"\";\r\n this.gridSpace = options.gridSpace;\r\n this.gridColumnConfig = options.gridColumnConfig;\r\n this.gridLateralArrangement = options.gridLateralArrangement || \"\";\r\n this.gridVerticalArrangement = options.gridVerticalArrangement || \"\";\r\n this.layoutOrder = options.layoutOrder;\r\n this.labelSpan = options.labelSpan || \"\";\r\n this.controlSpan = options.controlSpan || \"\";\r\n this.desFormControls = options.desFormControls || [];\r\n this.subDesFormLayout = options.subDesFormLayout || [];\r\n }\r\n}\r\n","import { formBeanUtilsService } from \"./form-bean-utils.service\";\r\n\r\ninterface NodeContrast {\r\n id: string;\r\n parentId: string;\r\n children: string;\r\n}\r\n\r\ninterface NzNodeContrast {\r\n title: string;\r\n key: string;\r\n icon?: string;\r\n isLeaf?: string;\r\n checked?: string;\r\n selected?: string;\r\n selectable?: string;\r\n disabled?: string;\r\n disableCheckbox?: string;\r\n expanded?: string;\r\n children: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface NzCascaderOptionContrast {\r\n value: string;\r\n label: string;\r\n title?: string;\r\n disabled?: string;\r\n loading?: string;\r\n isLeaf?: string;\r\n parent?: string;\r\n children: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface NzTreeNodeOptions {\r\n title: string;\r\n key: string;\r\n icon?: string;\r\n isLeaf?: boolean;\r\n checked?: boolean;\r\n selected?: boolean;\r\n selectable?: boolean;\r\n disabled?: boolean;\r\n disableCheckbox?: boolean;\r\n expanded?: boolean;\r\n children?: NzTreeNodeOptions[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface MapNodeItem {\r\n key?: string;\r\n title?: string;\r\n value?: string;\r\n children?: MapNodeOptions;\r\n}\r\n\r\ninterface MapNodeOptions {\r\n [key: string]: MapNodeItem;\r\n}\r\n\r\nclass FormTreeNodeConvertService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 数组转换为树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:18\r\n */\r\n arrayConvertToTreeNode(data: any[], nodeContrast: NodeContrast, parentId?: string): any[] {\r\n if (data != null && data.length > 0) {\r\n let nds: any[] = data.filter((item) => (item[nodeContrast.parentId] || \"\") === (parentId || \"\"));\r\n if (nds != null && nds.length > 0) {\r\n nds = formBeanUtilsService.copy(nds);\r\n nds.forEach((item) => {\r\n const children = this.arrayConvertToTreeNode(data, nodeContrast, item[nodeContrast.id]);\r\n if (children != null && children.length > 0) {\r\n item[nodeContrast.children] = [...children];\r\n }\r\n });\r\n return nds;\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 树形结构转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:21\r\n */\r\n treeNodeConvertToNzTreeNode(data: any[], nzNodeContrast: NzNodeContrast, isDisabledLeaf = false): any[] {\r\n const nodes: any[] = [];\r\n if (data != null && data.length > 0) {\r\n data.forEach((item) => {\r\n const node: any = {\r\n title: \"\",\r\n key: \"\",\r\n icon: \"\",\r\n isLeaf: true,\r\n checked: false,\r\n selected: false,\r\n selectable: true,\r\n disabled: isDisabledLeaf,\r\n disableCheckbox: false,\r\n expanded: true,\r\n children: [],\r\n };\r\n for (const propName of Object.keys(nzNodeContrast)) {\r\n if (nzNodeContrast[propName] != null && nzNodeContrast[propName] !== \"\") {\r\n node[propName] = item[nzNodeContrast[propName]];\r\n }\r\n }\r\n node.children = [];\r\n if (item[nzNodeContrast.children] != null && item[nzNodeContrast.children].length > 0) {\r\n const children = this.treeNodeConvertToNzTreeNode(item[nzNodeContrast.children], nzNodeContrast, isDisabledLeaf);\r\n node.disabled = false;\r\n node.isLeaf = false;\r\n node.children = children;\r\n }\r\n nodes.push(node);\r\n });\r\n }\r\n return nodes;\r\n }\r\n\r\n /**\r\n * @description: 数组转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:41\r\n */\r\n arrayConvertToNzTreeNode(data: any[], nodeContrast: NodeContrast, nzNodeContrast: NzNodeContrast, isDisabledLeaf = false): any[] {\r\n const treeNode = this.arrayConvertToTreeNode(data, nodeContrast);\r\n if (treeNode != null && treeNode.length > 0) {\r\n return this.treeNodeConvertToNzTreeNode(treeNode, nzNodeContrast, isDisabledLeaf);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 树形结构转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:21\r\n */\r\n treeNodeConvertToCascaderOption(data: any[], nzCascaderOptionContrast: NzCascaderOptionContrast, isDisabledLeaf = false): any[] {\r\n const nodes: any[] = [];\r\n if (data != null && data.length > 0) {\r\n data.forEach((item) => {\r\n const node: any = {\r\n value: \"\",\r\n label: \"\",\r\n title: \"\",\r\n disabled: isDisabledLeaf,\r\n loading: \"\",\r\n isLeaf: true,\r\n parent: \"\",\r\n children: \"\",\r\n };\r\n for (const propName of Object.keys(nzCascaderOptionContrast)) {\r\n if (nzCascaderOptionContrast[propName] != null && nzCascaderOptionContrast[propName] !== \"\") {\r\n node[propName] = item[nzCascaderOptionContrast[propName]];\r\n }\r\n }\r\n node.children = [];\r\n if (item[nzCascaderOptionContrast.children] != null && item[nzCascaderOptionContrast.children].length > 0) {\r\n const children = this.treeNodeConvertToCascaderOption(item[nzCascaderOptionContrast.children], nzCascaderOptionContrast, isDisabledLeaf);\r\n node.disabled = false;\r\n node.isLeaf = false;\r\n node.children = children;\r\n }\r\n nodes.push(node);\r\n });\r\n }\r\n return nodes;\r\n }\r\n\r\n /**\r\n * @description: 插件树结构转map\r\n * @author ChenRui\r\n * @date 2022/1/18 19:19\r\n */\r\n nzTreeNodeConvertToMap(data: NzTreeNodeOptions[]): MapNodeOptions | undefined {\r\n if (data != null && data.length > 0) {\r\n const mapNodeOptions: MapNodeOptions = {};\r\n data.forEach((item) => {\r\n if (item.value) {\r\n mapNodeOptions[item.value] = {\r\n key: item.key,\r\n title: item.title,\r\n value: item.value,\r\n };\r\n if (item.children && item.children.length > 0) {\r\n mapNodeOptions[item.value].children = this.nzTreeNodeConvertToMap(item.children) || undefined;\r\n }\r\n }\r\n });\r\n return mapNodeOptions;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @description: 数组转换为Nz树形结构\r\n * @author ChenRui\r\n * @date 2020/10/30 10:41\r\n */\r\n arrayConvertToCascaderOption(data: any[], nodeContrast: NodeContrast, nzCascaderOptionContrast: NzCascaderOptionContrast, isDisabledLeaf = false): any[] {\r\n const treeNode = this.arrayConvertToTreeNode(data, nodeContrast);\r\n if (treeNode != null && treeNode.length > 0) {\r\n return this.treeNodeConvertToCascaderOption(treeNode, nzCascaderOptionContrast, isDisabledLeaf);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @Description: 树形数据转为数组\r\n * @author LiuBo\r\n * @date 2021/11/5\r\n * @time 16:59\r\n * @param treeNode 树形数据\r\n * @param data 数组 传入空数组即可[]\r\n * @param childName 子节点名称\r\n */\r\n treeNodeConvertToArray(treeNode: any[], data: any[], childName: string): any[] {\r\n data = data || [];\r\n treeNode = JSON.parse(JSON.stringify(treeNode));\r\n treeNode.forEach((val: any) => {\r\n data.push(val);\r\n if (val[childName] && val[childName].length) {\r\n formTreeNodeConvertService.treeNodeConvertToArray(val[childName], data, childName);\r\n }\r\n });\r\n data.forEach((val: any) => {\r\n delete val[childName];\r\n });\r\n return data;\r\n }\r\n}\r\nconst formTreeNodeConvertService: FormTreeNodeConvertService = new FormTreeNodeConvertService();\r\nexport { NodeContrast, NzNodeContrast, NzCascaderOptionContrast, NzTreeNodeOptions, MapNodeItem, MapNodeOptions, formTreeNodeConvertService };\r\n","import { DesForm } from \"../domain/DesForm\";\r\nimport { formLocalForageService } from \"../services/form-local-forage.service\";\r\n\r\n/**\r\n * @description: 表单存储服务\r\n * @author ChenRui\r\n * @date 2020/12/30 11:17\r\n */\r\nclass FormStore {\r\n private static readonly FORMS = \"forms_data\";\r\n private static readonly VERSION = \"forms_version\";\r\n\r\n constructor() {}\r\n\r\n public setForms(desForm: DesForm[]) {\r\n formLocalForageService.setItem(FormStore.FORMS, desForm);\r\n }\r\n\r\n public getForms(): Promise<DesForm[]> {\r\n return formLocalForageService.getItem(FormStore.FORMS);\r\n }\r\n\r\n public setVersion(value: string) {\r\n formLocalForageService.setItem(FormStore.VERSION, value);\r\n }\r\n\r\n public getVersion(): Promise<any> {\r\n return formLocalForageService.getItem(FormStore.VERSION);\r\n }\r\n}\r\nconst formStore = new FormStore();\r\nexport { formStore };\r\n","import { dictLocalForageService } from \"../services/dict-local-forage.service\";\r\n\r\n/**\r\n * @description: 表单版本管理\r\n * @author ChenRui\r\n * @date 2020/12/30 11:17\r\n */\r\nclass DictStore {\r\n private static readonly DICTS = \"dicts_data\";\r\n private static readonly TREE_DICTS = \"treeDicts_data\";\r\n private static readonly MAP_DICTS = \"map_dicts_data\";\r\n private static readonly MAP_TREE_DICTS = \"map_treeDicts_data\";\r\n private static readonly VERSION = \"dict_version\";\r\n\r\n constructor() {}\r\n\r\n /**常规字典存储*/\r\n public setDicts(nzTreeNodeOptions: any[]) {\r\n dictLocalForageService.setItem(DictStore.DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getDicts(): Promise<any[]> {\r\n return dictLocalForageService.getItem(DictStore.DICTS);\r\n }\r\n\r\n /**树形字典存储*/\r\n public setTreeDicts(nzTreeNodeOptions: any[]) {\r\n dictLocalForageService.setItem(DictStore.TREE_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getTreeDicts(): Promise<any[]> {\r\n return dictLocalForageService.getItem(DictStore.TREE_DICTS);\r\n }\r\n\r\n /**map型常规字典存储*/\r\n public setMapDicts(nzTreeNodeOptions: any) {\r\n dictLocalForageService.setItem(DictStore.MAP_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getMapDicts(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.MAP_DICTS);\r\n }\r\n\r\n /**map型树形字典存储*/\r\n public setMapTreeDicts(nzTreeNodeOptions: any) {\r\n dictLocalForageService.setItem(DictStore.MAP_TREE_DICTS, nzTreeNodeOptions);\r\n }\r\n\r\n public getMapTreeDicts(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.MAP_TREE_DICTS);\r\n }\r\n\r\n /*字典版本存储*/\r\n public setVersion(value: string) {\r\n dictLocalForageService.setItem(DictStore.VERSION, value);\r\n }\r\n\r\n public getVersion(): Promise<any> {\r\n return dictLocalForageService.getItem(DictStore.VERSION);\r\n }\r\n}\r\nconst dictStore = new DictStore();\r\nexport { dictStore };\r\n","const DEFAULT_FORM_FILE_NAME = \"form-design.json\";\r\nconst DEFAULT_DICT_FILE_NAME = \"dict.json\";\r\nconst DEFAULT_DICT_URL = \"./resources/json/\" + DEFAULT_DICT_FILE_NAME;\r\nexport { DEFAULT_FORM_FILE_NAME, DEFAULT_DICT_FILE_NAME, DEFAULT_DICT_URL };\r\n","interface Params {\r\n [key: string]: any;\r\n}\r\nexport class RouterService {\r\n constructor() {}\r\n\r\n /**\r\n * @description: 跨应用跳转\r\n * @author ChenRui\r\n * @date 2020/9/28 14:23\r\n */\r\n push(subapp: string): void {\r\n history.pushState(null, subapp, subapp);\r\n }\r\n\r\n /**\r\n * @description: 获取纯路劲\r\n * @author ChenRui\r\n * @date 2020/10/12 21:06\r\n */\r\n getPathFromUrl(url: string): string {\r\n let path = url;\r\n if (url.indexOf(\"?\") !== -1) {\r\n path = url.split(\"?\")[0];\r\n }\r\n return path;\r\n }\r\n\r\n /**\r\n * @description: 获取请求参数\r\n * @author ChenRui\r\n * @date 2020/10/12 21:06\r\n */\r\n getParamsFromUrl(url: string): Params | undefined {\r\n let parameter: Params | undefined;\r\n if (url.indexOf(\"?\") !== -1) {\r\n parameter = this.urlParameterToParams(url.split(\"?\")[1]);\r\n }\r\n return parameter;\r\n }\r\n\r\n /**\r\n * @description: url地址参数转换成路由参数对象\r\n * @author ChenRui\r\n * @date 2020/10/12 21:07\r\n */\r\n urlParameterToParams(parameter: string): Params | undefined {\r\n const params: Params = {};\r\n const arr: string[] = parameter.split(\"&\");\r\n arr.forEach((val, idx, array) => {\r\n const kv: string[] = val.split(\"=\");\r\n if (kv.length > 1) {\r\n params[kv[0]] = decodeURIComponent(kv[1]);\r\n } else {\r\n params[kv[0]] = \"\";\r\n }\r\n });\r\n return params;\r\n }\r\n\r\n /**\r\n * @description: 地址参数拼接\r\n * @author ChenRui\r\n * @date 2021/2/19 11:40\r\n */\r\n getParameterOfUrl(url: string, parameter?: { [key: string]: any }): string {\r\n let connectiveSymbol = \"\";\r\n if (url.indexOf(\"?\") !== -1) {\r\n connectiveSymbol = \"&\";\r\n } else {\r\n connectiveSymbol = \"?\";\r\n }\r\n if (parameter && Object.keys(parameter).length > 0) {\r\n let mark = 0;\r\n Object.keys(parameter).forEach((item) => {\r\n if (mark === 0) {\r\n if (parameter[item] != null && parameter[item] !== \"null\" && parameter[item] !== \"undefined\") {\r\n url += connectiveSymbol + item + \"=\" + parameter[item];\r\n } else {\r\n url += connectiveSymbol + item + \"=\";\r\n }\r\n } else {\r\n if (parameter[item] != null && parameter[item] !== \"null\" && parameter[item] !== \"undefined\") {\r\n url += \"&\" + item + \"=\" + parameter[item];\r\n } else {\r\n url += \"&\" + item + \"=\";\r\n }\r\n }\r\n mark++;\r\n });\r\n }\r\n return url;\r\n }\r\n}\r\nconst routerService: RouterService = new RouterService();\r\nexport { routerService, Params };\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/web.timers.js\");","import { FormApi } from \"../core/FormApi\";\r\nimport { ValidateReport } from \"../domain/FormControl\";\r\nimport { Modal } from \"ant-design-vue\";\r\nimport { FORM_ERROR_MODAL_SVG_XML } from \"../constants/encode-assets/svg\";\r\nimport { h, createVNode } from \"vue\";\r\n/**\r\n * @description: 表单校验窗口提示\r\n * @author ChenRui\r\n * @date 2021/8/19 12:58\r\n */\r\nclass FormValidateService {\r\n /**\r\n * @description: 校验并进行窗口提示\r\n * @author ChenRui\r\n * @date 2021/8/19 12:58\r\n */\r\n validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {\r\n if (formApis != null) {\r\n if (!Array.isArray(formApis)) {\r\n formApis = [formApis];\r\n }\r\n const actualFormApis: FormApi[] = [];\r\n let allError: ValidateReport[] = [];\r\n let errMessage = \"\";\r\n formApis.forEach((formApi) => {\r\n const errors: ValidateReport[] = formApi.validateReport(); // 获取校验报告\r\n if (errors && errors.length > 0) {\r\n actualFormApis.push(formApi);\r\n allError = allError.concat(errors);\r\n }\r\n });\r\n if (allError && allError.length > 0) {\r\n // 显示错误的输入框\r\n allError.forEach((err) => {\r\n console.log(err);\r\n errMessage += `<div class=\"lo-error-item d-flex\"><div class=\"lo-error-describe\">${err.name}</div>&nbsp;${err.errorMsg};</div>`;\r\n });\r\n\r\n Modal.confirm({\r\n width: 380,\r\n title: h(\"div\", { class: \"d-flex\", innerHTML: `<img src=\"${FORM_ERROR_MODAL_SVG_XML}\" /><div style=\"font-size: 18px\">校验提示</div>` }),\r\n content: h(\"div\", { innerHTML: errMessage }),\r\n onOk: () => {\r\n this.showErrorModal(actualFormApis as any, allError, scrollView);\r\n },\r\n okText: \"确认\",\r\n cancelText: \"取消\",\r\n class: \"lo-form-error-modal\",\r\n });\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @Description: 滚动到错误位置-闪烁提示\r\n * @author LiuBo\r\n * @date 2021/2/25\r\n * @time 21:35\r\n */\r\n public showErrorModal(formApis: FormApi[], allError: ValidateReport[], scrollView?: any) {\r\n const errorEl: any = formApis[0]?.getControlEl(allError[0]?.key);\r\n if (errorEl != null) {\r\n if (scrollView && typeof scrollView === \"string\") {\r\n scrollView = document.getElementById(scrollView);\r\n }\r\n if (scrollView) {\r\n scrollView.scrollTo({ top: errorEl.offsetTop, behavior: \"smooth\" });\r\n const running = (event: any) => {\r\n const scrollTop = scrollView.window != null && scrollView.window === scrollView.window.window ? document.documentElement.scrollTop || document.body.scrollTop : scrollView.scrollTop;\r\n const calculationError = errorEl.offsetTop - scrollTop;\r\n if (calculationError > -20 && calculationError < 20) {\r\n scrollView.removeEventListener(\"scroll\", running);\r\n this.showErrInput(errorEl);\r\n }\r\n };\r\n scrollView.addEventListener(\"scroll\", running, false);\r\n } else {\r\n this.showErrInput(errorEl);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @Description: 闪烁显示校验不通过的输入框\r\n * @author LiuBo\r\n * @date 2019/6/3\r\n * @time 22:01\r\n * @param el 出错的输入框html对象\r\n */\r\n private showErrInput(el: any) {\r\n let count = 0;\r\n const interval = setInterval(() => {\r\n el.style.opacity = count++ % 2 === 0 ? \".3\" : \"1\";\r\n if (count > 5) {\r\n clearInterval(interval);\r\n }\r\n }, 400);\r\n }\r\n}\r\nconst formValidateService = new FormValidateService();\r\nexport { formValidateService };\r\n","import { FormConfig } from \"../domain/FormConfig\";\r\nimport { FormRestfulResponse } from \"../domain/FormRestfulResponse\";\r\nimport { DesForm } from \"../domain/DesForm\";\r\nimport { DesFormControl } from \"../domain/DesFormControl\";\r\nimport { DesFormLayout } from \"../domain/DesFormLayout\";\r\nimport { FormFieldClass } from \"../constants/enum/form-field-class.enum\";\r\nimport { Control } from \"../domain/Control\";\r\nimport { FormFieldType } from \"../constants/enum/form-field-type.enum\";\r\nimport { Switch } from \"../constants/enum/switch.enum\";\r\nimport { formTreeNodeConvertService, MapNodeOptions, NodeContrast, NzNodeContrast, NzTreeNodeOptions } from \"./form-tree-node-convert.service\";\r\nimport { formBeanUtilsService } from \"./form-bean-utils.service\";\r\nimport { apiService } from \"./api.service\";\r\nimport { formStore } from \"../store/form.store\";\r\nimport { DynamicOptionType } from \"../constants/enum/dynamic-option-type.enum\";\r\nimport { dictStore } from \"../store\";\r\nimport { SysDictInfo } from \"../domain/SysDictInfo\";\r\nimport { DEFAULT_DICT_URL, DEFAULT_FORM_FILE_NAME } from \"../constants/config/form.config\";\r\nimport { CacheType } from \"../constants/enum/cache-type.enum\";\r\nimport { routerService } from \"./router.service\";\r\nimport { FormApi } from \"../core/FormApi\";\r\nimport { formValidateService } from \"./form-validate.service\";\r\n\r\ninterface DictionaryFormatCollection {\r\n sysDictDetailOptions?: NzTreeNodeOptions[];\r\n sysDictTreeDetailOptions?: NzTreeNodeOptions[];\r\n mapSysDictDetailOptions?: MapNodeOptions;\r\n mapSysDictTreeDetailOptions?: MapNodeOptions;\r\n}\r\n\r\nclass FormToolsService {\r\n private static readonly LOAD_SUCCESS = { code: 1, msg: \"加载成功\" }; // 操作成功提示\r\n private static readonly LOAD_FAIL = { code: 1, msg: \"加载失败\" }; // 操作失败提示\r\n private static IS_FIRST_LOADED = false; // 是否经过首次初始化\r\n private nodeContrast: NodeContrast = { id: \"layoutId\", parentId: \"parentLayoutId\", children: \"subDesFormLayout\" };\r\n private dictDetailsContrast: NodeContrast = { id: \"dicEntryPk\", parentId: \"suprDicPk\", children: \"children\" };\r\n private nzDictDetailsContrastContrast: NzNodeContrast = { key: \"dicEntryPk\", title: \"dicValue\", children: \"children\", value: \"dicKey\" };\r\n private dictTreeDetailsContrast: NodeContrast = { id: \"dicEntryPk\", parentId: \"suprDicPk\", children: \"children\" };\r\n private nzDictTreeDetailsContrastContrast: NzNodeContrast = { key: \"dicEntryPk\", title: \"dicValue\", children: \"children\", value: \"dicKey\" };\r\n private desForms: DesForm[] = []; // 表单配置缓存\r\n\r\n sysDictDetailOptions: NzTreeNodeOptions[] = [];\r\n sysDictTreeDetailOptions: NzTreeNodeOptions[] = [];\r\n mapSysDictDetailOptions: MapNodeOptions | undefined;\r\n mapSysDictTreeDetailOptions: MapNodeOptions | undefined;\r\n\r\n supHoliday?: boolean = false; // 节假日支持\r\n\r\n constructor() {}\r\n\r\n get formConfig(): Partial<FormConfig> {\r\n if ((window as any).$app.config.globalProperties.$qlForm != null) {\r\n return (window as any).$app.config.globalProperties.$qlForm;\r\n }\r\n return {};\r\n }\r\n\r\n setSupHoliday(bool: boolean) {\r\n this.supHoliday = bool;\r\n }\r\n\r\n setFormDisabledColor(color = \"#f0f0f0\") {\r\n document.body.style.setProperty(\"--lo-form-disabled\", color);\r\n }\r\n\r\n /**\r\n * @description: 检查是否经过首次初始化并初始化\r\n * @author ChenRui\r\n * @date 2021/1/5 23:04\r\n */\r\n checkFirstLoadAndInitDesign(): Promise<FormRestfulResponse> {\r\n if (FormToolsService.IS_FIRST_LOADED) {\r\n return Promise.resolve({\r\n code: 1,\r\n msg: \"检查到已经过首次加载,不在执行加载逻辑\",\r\n });\r\n } else {\r\n return this.init().then((res: FormRestfulResponse) => {\r\n FormToolsService.IS_FIRST_LOADED = true;\r\n return res;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @description: 初始化\r\n * @author ChenRui\r\n * @date 2021/3/12 11:02\r\n */\r\n init(): Promise<FormRestfulResponse> {\r\n return Promise.all([this.initDesign(), this.initDict(), this.selectHolidays()]).then(([designRes, dictRes]: any) => {\r\n const code = designRes.code === 1 && dictRes.code === 1 ? 1 : 0;\r\n return { code, msg: designRes.msg + \"; \" + dictRes.msg };\r\n });\r\n }\r\n\r\n /**\r\n * @Description 初始化节假日数据\r\n * @Author JiangTao\r\n * @Date 2024-04-16 下午 04:11\r\n */\r\n selectHolidays(): Promise<FormRestfulResponse> {\r\n if (this.formConfig.url && this.supHoliday) {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/basic-form-weekday/query-all-by-year\";\r\n return this.fetch(url, {}, undefined, \"POST\").then((res: FormRestfulResponse) => {\r\n if (res != null && (res.code === 1 || String(res.code) === String(200))) {\r\n if (res.data != null) {\r\n localStorage.setItem(\"traddayList\", JSON.stringify(res.data.traddayList)); // 交易日集合\r\n localStorage.setItem(\"weekdayList\", JSON.stringify(res.data.weekdayList)); // 节假日集合\r\n localStorage.setItem(\"workdayList\", JSON.stringify(res.data.workdayList)); // 工作日集合\r\n }\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n }\r\n\r\n /**\r\n * @description: 初始化表单设计\r\n * @author ChenRui\r\n * @date 2020/11/20 10:55\r\n */\r\n initDesign(): Promise<FormRestfulResponse> {\r\n return Promise.all([formStore.getForms(), formStore.getVersion()]).then(([forms, formVersion]: any[]) => {\r\n if (this.formConfig.loadMode === \"static\") {\r\n if (forms != null) {\r\n this.desForms = forms;\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return this.loadDesign([this.formConfig.url || DEFAULT_FORM_FILE_NAME]);\r\n }\r\n } else if (this.formConfig.loadMode === \"dynamic\") {\r\n if (this.formConfig.appId != null && this.formConfig.appId !== \"\") {\r\n const query = {\r\n appId: this.formConfig.appId,\r\n cacheType: CacheType.FORM.code,\r\n };\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype\";\r\n return this.fetch(url!, query).then((res: FormRestfulResponse) => {\r\n if (res != null && res.code === 1) {\r\n if (res.data != null && res.data.desCacheVersion != null) {\r\n if (String(formVersion) !== String(res.data.desCacheVersion.cacheVersionNumber)) {\r\n const formUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + res.data.desCacheVersion.storageAddress;\r\n return this.loadDesign([formUrl]).then((resEx: FormRestfulResponse) => {\r\n if (resEx.code === 1) {\r\n formStore.setVersion(res.data.desCacheVersion.cacheVersionNumber);\r\n }\r\n return resEx;\r\n });\r\n } else {\r\n if (forms != null) {\r\n this.desForms = forms;\r\n }\r\n console.log(this.desForms);\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n }\r\n } else {\r\n return Promise.resolve({ code: 1, msg: \"暂无版本数据\" });\r\n }\r\n } else {\r\n return Promise.resolve(FormToolsService.LOAD_FAIL);\r\n }\r\n });\r\n } else {\r\n return Promise.resolve({\r\n code: 0,\r\n msg: \"动态加载需指定当前系统编号(appId)\",\r\n });\r\n }\r\n } else if (this.formConfig.loadMode === \"merge\") {\r\n if (this.formConfig.urls) {\r\n return new Promise((resolve) => {\r\n this.loadDesign(this.formConfig.urls || []).then(() => {\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n } else {\r\n return this.mergeUrlByType(CacheType.FORM.code).then((response: any) => {\r\n if (formVersion === response.cacheVersionNumber) {\r\n if (forms) {\r\n this.desForms = forms;\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDesign(response.storageAddress).then(() => {\r\n formStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n } else if (this.formConfig.loadMode === \"merge_cacheId\") {\r\n // 按照缓存编号查询表单数据,2024年8月15日14:03:24\r\n return this.mergeUrlByCacheId(CacheType.FORM.code).then((response: any) => {\r\n if (formVersion === response.cacheVersionNumber) {\r\n if (forms) {\r\n this.desForms = forms;\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_SUCCESS);\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDesign(response.storageAddress).then(() => {\r\n formStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n return Promise.resolve(FormToolsService.LOAD_FAIL);\r\n });\r\n }\r\n\r\n /**\r\n * @description: 获取表单或字典数据地址\r\n * @author ZPFly\r\n * @date 2022/10/18 20:43\r\n */\r\n private mergeUrlByType(type: string): Promise<any> {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-batch-appids-cachetype\";\r\n const downloadUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\";\r\n const query = {\r\n appIds: this.formConfig.appId,\r\n cacheType: type,\r\n };\r\n return this.fetch(url!, query).then((resp: any) => {\r\n const response: any = {};\r\n const address: string[] = [];\r\n const cacheVersionNumber: any[] = [];\r\n const cacheVersionMap: any = {};\r\n resp?.data?.forEach((item: any) => {\r\n // 数据下载地址\r\n if (item.cacheType == type && item.desCacheVersion?.storageAddress && query.appIds && query.appIds.indexOf(item.appId) > -1) {\r\n cacheVersionMap[item.appId] = item.desCacheVersion.cacheVersionNumber;\r\n address.push(downloadUrl + item.desCacheVersion.storageAddress);\r\n }\r\n });\r\n query.appIds?.split(\",\").forEach((appId) => {\r\n cacheVersionNumber.push(cacheVersionMap[appId]);\r\n });\r\n response.cacheVersionNumber = cacheVersionNumber.join(\",\");\r\n response.storageAddress = address;\r\n return response;\r\n });\r\n }\r\n /**\r\n * @description: 获取表单或字典数据地址-按照缓存版本号查询字典/表单\r\n * @author ZPFly\r\n * @date 2022/10/18 20:43\r\n */\r\n private mergeUrlByCacheId(type: string): Promise<any> {\r\n const url = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-batch-appids-cachetype\";\r\n const downloadUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/downloadById?cacheVersionId=\";\r\n const query = {\r\n appIds: this.formConfig.appId,\r\n cacheType: type,\r\n };\r\n const appIds: string[] = query.appIds?.split(\",\") || [];\r\n return this.fetch(url!, query).then((resp: any) => {\r\n const response: any = {};\r\n const address: string[] = [];\r\n const cacheVersionNumber: any[] = [];\r\n const cacheVersionMap: any = {};\r\n resp?.data?.forEach((item: any) => {\r\n // 数据下载地址\r\n if (item.cacheType == type && item.desCacheVersion?.cacheVersionId && query.appIds && appIds.indexOf(item.appId) > -1) {\r\n cacheVersionMap[item.appId] = item.desCacheVersion.cacheVersionNumber;\r\n address.push(downloadUrl + item.desCacheVersion.cacheVersionId + \"&appId=\" + item.appId + \"&cacheType=\" + type);\r\n }\r\n });\r\n query.appIds?.split(\",\").forEach((appId) => {\r\n cacheVersionNumber.push(cacheVersionMap[appId]);\r\n });\r\n response.cacheVersionNumber = cacheVersionNumber.join(\",\");\r\n response.storageAddress = address;\r\n return response;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载远程表单配置\r\n * @author ChenRui\r\n * @date 2020/11/20 17:30\r\n */\r\n private loadDesign(urls: string[]): Promise<FormRestfulResponse> {\r\n return this.mergeFetchDesign(urls).then((desForms: DesForm[]) => {\r\n const newDesForms: DesForm[] = [];\r\n if (desForms != null && desForms.length > 0) {\r\n desForms\r\n .filter((item) => item.desFormLayouts != null && item.desFormLayouts.length > 0)\r\n .forEach((item) => {\r\n const newDesForm: DesForm | undefined = this.formatDesForm(item);\r\n if (newDesForm != null) {\r\n newDesForms.push(newDesForm);\r\n }\r\n });\r\n }\r\n this.desForms = newDesForms;\r\n formStore.setForms(this.desForms);\r\n return FormToolsService.LOAD_SUCCESS;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 合并多个应用表单\r\n * @author ZPFly\r\n * @date 2022/10/17 15:39\r\n */\r\n private mergeFetchDesign(urls: string[]) {\r\n const onlySimpleLoadConfig = !!this.formConfig.onlySimpleLoadConfig;\r\n const headers = this.createFileDownloadAuthorizationHeader();\r\n const fetches: any = [];\r\n urls.forEach((url: string) => {\r\n fetches.push(this.fetch(url, {}, undefined, \"GET\", headers, onlySimpleLoadConfig));\r\n });\r\n return Promise.all(fetches).then((desForms: DesForm[]) => {\r\n let newDesForms: DesForm[] = [];\r\n desForms?.forEach((desForm: any) => {\r\n newDesForms = newDesForms.concat(desForm);\r\n });\r\n return newDesForms;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 初始化字典\r\n * @author ChenRui\r\n * @date 2021/3/11 14:32\r\n */\r\n initDict(): Promise<FormRestfulResponse> {\r\n return Promise.all([dictStore.getDicts(), dictStore.getTreeDicts(), dictStore.getMapDicts(), dictStore.getMapTreeDicts(), dictStore.getVersion()]).then(([dicts, treeDicts, mapDicts, mapTreeDicts, dictVersion]: any[]) => {\r\n if (this.formConfig.loadMode === \"static\") {\r\n const url = this.formConfig.dictUrl ? this.formConfig.dictUrl : DEFAULT_DICT_URL;\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return this.loadDict([url]);\r\n }\r\n } else if (this.formConfig.loadMode === \"dynamic\") {\r\n if (this.formConfig.appId) {\r\n const url1 = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype\";\r\n const url: string = this.formConfig.dictUrl ? this.formConfig.dictUrl : url1 || \"\";\r\n const path: string = routerService.getPathFromUrl(url);\r\n let query: any = routerService.getParamsFromUrl(url) || {};\r\n query.appId = query.appId ? query.appId : this.formConfig.appId;\r\n query.cacheType = query.cacheType ? query.cacheType : CacheType.DICT.code;\r\n query = this.formConfig.dictRestLoadOnlyBody ? {} : query;\r\n const body: any = (this.formConfig.dictRestLoadMode || \"GET\").toLocaleUpperCase() === \"GET\" ? undefined : this.formConfig.dictRestLoadBody;\r\n let headers: any = this.formConfig.dictRestLoadHeaders;\r\n if (headers != null && typeof headers === \"function\") {\r\n headers = (headers as any)();\r\n }\r\n return this.fetch(path, query, body, this.formConfig.dictRestLoadMode, headers).then((res: FormRestfulResponse) => {\r\n if (res != null && (res.code === 1 || String(res.code) === String(200))) {\r\n if (res.data != null) {\r\n let desCacheVersion: any = res.data.desCacheVersion;\r\n if (res.data && res.data instanceof Array && res.data.length > 0) {\r\n desCacheVersion = res.data[0].desCacheVersion;\r\n }\r\n const distUrl = this.formConfig.url + this.formConfig.contextPath + \"/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + desCacheVersion.storageAddress;\r\n if (String(dictVersion) !== String(desCacheVersion.cacheVersionNumber)) {\r\n return this.loadDict([distUrl]).then((resEx: FormRestfulResponse) => {\r\n if (resEx.code === 1) {\r\n dictStore.setVersion(desCacheVersion.cacheVersionNumber);\r\n }\r\n return resEx;\r\n });\r\n } else {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n }\r\n } else {\r\n return { code: 1, msg: \"暂无版本数据\" };\r\n }\r\n } else {\r\n return FormToolsService.LOAD_FAIL;\r\n }\r\n });\r\n } else {\r\n return { code: 0, msg: \"动态加载需指定当前系统编号(appId)\" };\r\n }\r\n } else if (this.formConfig.loadMode === \"merge\") {\r\n return this.mergeUrlByType(CacheType.DICT.code).then((response: any) => {\r\n if (dictVersion === response.cacheVersionNumber) {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDict(response.storageAddress).then(() => {\r\n dictStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n } else if (this.formConfig.loadMode === \"merge_cacheId\") {\r\n // 按照缓存编号查询表单数据,2024年8月15日14:03:24\r\n return this.mergeUrlByCacheId(CacheType.DICT.code).then((response: any) => {\r\n if (dictVersion === response.cacheVersionNumber) {\r\n if (dicts != null || treeDicts != null) {\r\n this.sysDictDetailOptions = dicts;\r\n this.sysDictTreeDetailOptions = treeDicts;\r\n this.mapSysDictDetailOptions = mapDicts;\r\n this.mapSysDictTreeDetailOptions = mapTreeDicts;\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n } else {\r\n return new Promise((resolve) => {\r\n this.loadDict(response.storageAddress).then(() => {\r\n dictStore.setVersion(response.cacheVersionNumber);\r\n resolve(FormToolsService.LOAD_SUCCESS);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n return FormToolsService.LOAD_FAIL;\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载远程字典配置\r\n * @author ChenRui\r\n * @date 2020/11/20 17:30\r\n */\r\n private loadDict(urls: string[]): Promise<FormRestfulResponse> {\r\n return this.mergeFetchDict(urls).then((sysDictInfos: any) => {\r\n if (sysDictInfos != null) {\r\n // 数据格式化\r\n const dictionaryFormatCollection: DictionaryFormatCollection = this.inidDictOptions(sysDictInfos);\r\n this.sysDictDetailOptions = dictionaryFormatCollection.sysDictDetailOptions || [];\r\n this.sysDictTreeDetailOptions = dictionaryFormatCollection.sysDictTreeDetailOptions || [];\r\n this.mapSysDictDetailOptions = dictionaryFormatCollection.mapSysDictDetailOptions;\r\n this.mapSysDictTreeDetailOptions = dictionaryFormatCollection.mapSysDictTreeDetailOptions;\r\n // 字典本地存储\r\n if (dictionaryFormatCollection.sysDictDetailOptions && dictionaryFormatCollection.sysDictDetailOptions.length > 0) {\r\n dictStore.setDicts(dictionaryFormatCollection.sysDictDetailOptions);\r\n }\r\n if (dictionaryFormatCollection.sysDictTreeDetailOptions && dictionaryFormatCollection.sysDictTreeDetailOptions.length > 0) {\r\n dictStore.setTreeDicts(dictionaryFormatCollection.sysDictTreeDetailOptions);\r\n }\r\n dictStore.setMapDicts(dictionaryFormatCollection.mapSysDictDetailOptions || null);\r\n dictStore.setMapTreeDicts(dictionaryFormatCollection.mapSysDictTreeDetailOptions || null);\r\n }\r\n return FormToolsService.LOAD_SUCCESS;\r\n });\r\n // const onlySimpleLoadConfig = !!this.formConfig.onlySimpleLoadConfig;\r\n // let sysDictInfos: SysDictInfo[] = [];\r\n // if (loadMode === \"dynamic\") {\r\n // const headers = this.createFileDownloadAuthorizationHeader();\r\n // url = this.formConfig.url + \"/ms-loong/api/v1/des-cache-info/permit_endpoint/download?storageAddress=\" + url;\r\n // return this.fetch(url, {}, undefined, \"GET\", headers, onlySimpleLoadConfig).then((res: any) => {\r\n // sysDictInfos = res;\r\n // if (sysDictInfos != null && sysDictInfos.length > 0) {\r\n // // 数据格式化\r\n // const dictionaryFormatCollection: DictionaryFormatCollection = this.inidDictOptions(sysDictInfos);\r\n // this.sysDictDetailOptions = dictionaryFormatCollection.sysDictDetailOptions || [];\r\n // this.sysDictTreeDetailOptions = dictionaryFormatCollection.sysDictTreeDetailOptions || [];\r\n // this.mapSysDictDetailOptions = dictionaryFormatCollection.mapSysDictDetailOptions;\r\n // this.mapSysDictTreeDetailOptions = dictionaryFormatCollection.mapSysDictTreeDetailOptions;\r\n // // 字典本地存储\r\n // if (dictionaryFormatCollection.sysDictDetailOptions && dictionaryFormatCollection.sysDictDetailOptions.length > 0) {\r\n // dictStore.setDicts(dictionaryFormatCollection.sysDictDetailOptions);\r\n // }\r\n // if (dictionaryFormatCollection.sysDictTreeDetailOptions && dictionaryFormatCollection.sysDictTreeDetailOptions.length > 0) {\r\n // dictStore.setTreeDicts(dictionaryFormatCollection.sysDictTreeDetailOptions);\r\n // }\r\n // dictStore.setMapDicts(dictionaryFormatCollection.mapSysDictDetailOptions || null);\r\n // dictStore.setMapTreeDicts(dictionaryFormatCollection.mapSysDictTreeDetailOptions || null);\r\n // }\r\n // return FormToolsService.LOAD_SUCCESS;\r\n // });\r\n // }\r\n }\r\n\r\n /**\r\n * @description: 合并多个应用字典\r\n * @author ZPFly\r\n * @date 2022/10/17 15:39\r\n */\r\n private mergeFetchDict(dictUrl: string[]) {\r\n const fetchDicts: any = [];\r\n dictUrl.forEach((url: string) => {\r\n fetchDicts.push(this.fetch(url, {}, undefined, \"GET\", undefined, !!this.formConfig.onlySimpleLoadConfig));\r\n });\r\n return Promise.all(fetchDicts).then((dictInfos: SysDictInfo[]) => {\r\n let newDictInfos: SysDictInfo[] = [];\r\n const empObj: any = {};\r\n const filterDist: SysDictInfo[] = [];\r\n dictInfos?.forEach((desForm: any) => {\r\n newDictInfos = newDictInfos.concat(desForm);\r\n });\r\n // 去除重复字典\r\n newDictInfos.forEach((item: SysDictInfo) => {\r\n if (!empObj[item.dictId]) {\r\n filterDist.push(item);\r\n empObj[item.dictId] = true;\r\n }\r\n });\r\n return filterDist;\r\n });\r\n }\r\n /**\r\n * @description: 初始化字典可选项\r\n * @author ChenRui\r\n * @date 2020/11/10 20:38\r\n */\r\n public inidDictOptions(sysDictInfos: SysDictInfo[]): DictionaryFormatCollection {\r\n const sysDictDetailOptions: NzTreeNodeOptions[] = [];\r\n const sysDictTreeDetailOptions: NzTreeNodeOptions[] = [];\r\n sysDictInfos.forEach((sysDictInfo) => {\r\n const node: NzTreeNodeOptions = {\r\n key: sysDictInfo.dictId,\r\n value: sysDictInfo.dictCd,\r\n title: sysDictInfo.dictNm,\r\n isLeaf: true,\r\n expanded: false,\r\n children: [],\r\n };\r\n if (sysDictInfo.dictTp === DynamicOptionType.GeneralDictionary.code) {\r\n node.isLeaf = false;\r\n node.children = formTreeNodeConvertService.arrayConvertToNzTreeNode(\r\n sysDictInfo.comDictKeyValues.filter((it) => !!it.dictId),\r\n this.dictDetailsContrast,\r\n this.nzDictDetailsContrastContrast,\r\n true\r\n );\r\n sysDictDetailOptions.push(node);\r\n } else if (sysDictInfo.dictTp === DynamicOptionType.TreeDictionary.code) {\r\n if (sysDictInfo.treeDictKeyValues != null && sysDictInfo.treeDictKeyValues.length > 0) {\r\n node.isLeaf = false;\r\n sysDictInfo.treeDictKeyValues.forEach((item) => {\r\n if (item.suprDicPk === \"0\") {\r\n item.suprDicPk = \"\";\r\n }\r\n });\r\n node.children = formTreeNodeConvertService.arrayConvertToNzTreeNode(\r\n sysDictInfo.treeDictKeyValues.filter((it) => !!it.dictId),\r\n this.dictTreeDetailsContrast,\r\n this.nzDictTreeDetailsContrastContrast,\r\n true\r\n );\r\n }\r\n sysDictTreeDetailOptions.push(node);\r\n }\r\n });\r\n const mapNodeOptions: MapNodeOptions | undefined = formTreeNodeConvertService.nzTreeNodeConvertToMap(sysDictDetailOptions);\r\n const mapTreeNodeOptions: MapNodeOptions | undefined = formTreeNodeConvertService.nzTreeNodeConvertToMap(sysDictTreeDetailOptions);\r\n return {\r\n sysDictDetailOptions: sysDictDetailOptions,\r\n sysDictTreeDetailOptions: sysDictTreeDetailOptions,\r\n mapSysDictDetailOptions: mapNodeOptions,\r\n mapSysDictTreeDetailOptions: mapTreeNodeOptions,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 格式化表单\r\n * @author ChenRui\r\n * @date 2020/11/30 15:48\r\n */\r\n formatDesForm(sourceDesForm: DesForm): DesForm | undefined {\r\n if (sourceDesForm != null) {\r\n const newDesForm: DesForm = new DesForm(sourceDesForm);\r\n const desFormLayouts: DesFormLayout[] = formTreeNodeConvertService.arrayConvertToTreeNode(sourceDesForm.desFormLayouts, this.nodeContrast);\r\n const controls = this.recursionFormatForm([], desFormLayouts);\r\n this.sortControls(controls);\r\n newDesForm.desFormLayouts = [];\r\n newDesForm.controls = controls;\r\n return newDesForm;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 递归格式化\r\n * @author ChenRui\r\n * @date 2020/11/17 10:16\r\n */\r\n private recursionFormatForm(desFormControls: DesFormControl[], desFormLayouts: DesFormLayout[]): Control[] {\r\n const controls: Control[] = [];\r\n if (desFormControls != null && desFormControls.length > 0) {\r\n desFormControls\r\n .filter((item) => !!item.formFieldId)\r\n .forEach((desFormControl) => {\r\n const control: Control = {\r\n code: desFormControl.controlType,\r\n name: (Object.values(FormFieldType).find((item) => item.code === desFormControl.controlType) || {}).name || \"\",\r\n type: Number(desFormControl.controlType) < 50 ? FormFieldClass.Base.code : FormFieldClass.Senior.code,\r\n active: false,\r\n subControls: undefined,\r\n controlAttr: desFormControl,\r\n };\r\n const controlAttr = control.controlAttr as DesFormControl;\r\n controlAttr.isBoldTitle = desFormControl.isBoldTitle === Switch.Enable.code;\r\n controlAttr.isHideTitle = desFormControl.isHideTitle === Switch.Enable.code;\r\n controlAttr.isNotEdit = desFormControl.isNotEdit === Switch.Enable.code;\r\n controlAttr.isShowHoliday = desFormControl.isShowHoliday === Switch.Enable.code;\r\n controlAttr.isHideControl = desFormControl.isHideControl === Switch.Enable.code;\r\n controlAttr.isPasswordBox = desFormControl.isPasswordBox === Switch.Enable.code;\r\n controlAttr.enableAutoComplete = desFormControl.enableAutoComplete === Switch.Enable.code;\r\n controlAttr.isFixedRowHeight = desFormControl.isFixedRowHeight === Switch.Enable.code;\r\n controlAttr.thousandthPercentileFormat = desFormControl.thousandthPercentileFormat === Switch.Enable.code;\r\n controlAttr.isShowCapitalization = desFormControl.isShowCapitalization === Switch.Enable.code;\r\n controlAttr.isLineFeedDisplay = desFormControl.isLineFeedDisplay === Switch.Enable.code;\r\n controlAttr.optionConfig = formBeanUtilsService.parse(desFormControl.optionConfig);\r\n controlAttr.generalDictionaryOptions = formBeanUtilsService.parse(desFormControl.generalDictionaryOptions);\r\n controlAttr.treeShapeOptions = formBeanUtilsService.parse(desFormControl.treeShapeOptions);\r\n controlAttr.isSupportMultiple = desFormControl.isSupportMultiple === Switch.Enable.code;\r\n if (Array.isArray(desFormControl.customUploadType) && desFormControl.customUploadType.length > 0) {\r\n controlAttr.customUploadType = desFormControl.customUploadType.join(\",\");\r\n }\r\n controlAttr.isMultipleChoice = desFormControl.isMultipleChoice === Switch.Enable.code;\r\n controlAttr.isSearchable = desFormControl.isSearchable === Switch.Enable.code;\r\n controlAttr.canAddEntry = desFormControl.canAddEntry === Switch.Enable.code;\r\n controlAttr.isClearButton = desFormControl.isClearButton === Switch.Enable.code;\r\n controlAttr.hiddenDropdown = desFormControl.hiddenDropdown === Switch.Enable.code;\r\n controlAttr.textFold = desFormControl.textFold === Switch.Enable.code;\r\n controlAttr.verificationRules = formBeanUtilsService.parse(desFormControl.verificationRules);\r\n controls.push(control);\r\n });\r\n }\r\n if (desFormLayouts != null && desFormLayouts.length > 0) {\r\n desFormLayouts\r\n .filter((item) => !!item.layoutId)\r\n .forEach((desFormLayout) => {\r\n const layoutControl: Control = {\r\n code: desFormLayout.layoutType,\r\n name: (Object.values(FormFieldType).find((item) => item.code === desFormLayout.layoutType) || {}).name || \"\",\r\n type: FormFieldClass.Layout.code,\r\n active: false,\r\n subControls: [],\r\n controlAttr: new DesFormLayout(desFormLayout),\r\n };\r\n const controlAttr = layoutControl.controlAttr as DesFormLayout;\r\n controlAttr.gridColumnConfig = formBeanUtilsService.parse(desFormLayout.gridColumnConfig);\r\n controlAttr.desFormControls = [];\r\n controlAttr.subDesFormLayout = [];\r\n if ((desFormLayout.subDesFormLayout != null && desFormLayout.subDesFormLayout.length > 0) || (desFormLayout.desFormControls != null && desFormLayout.desFormControls.length > 0)) {\r\n layoutControl.subControls = this.recursionFormatForm(desFormLayout.desFormControls, desFormLayout.subDesFormLayout);\r\n }\r\n controls.push(layoutControl);\r\n });\r\n }\r\n return controls;\r\n }\r\n\r\n /**\r\n * @description: 控件排序\r\n * @author ChenRui\r\n * @date 2020/11/17 11:59\r\n */\r\n private sortControls(controls: Control[]): void {\r\n controls.sort((controlA, controlB) => {\r\n let x = 0;\r\n let y = 0;\r\n if (controlA.type === FormFieldClass.Layout.code) {\r\n x = Number((controlA.controlAttr as DesFormLayout).layoutOrder);\r\n } else {\r\n x = Number((controlA.controlAttr as DesFormControl).tableFieldOrder);\r\n }\r\n if (controlB.type === FormFieldClass.Layout.code) {\r\n y = Number((controlB.controlAttr as DesFormLayout).layoutOrder);\r\n } else {\r\n y = Number((controlB.controlAttr as DesFormControl).tableFieldOrder);\r\n }\r\n return x - y;\r\n });\r\n controls.forEach((item) => {\r\n if (item.subControls != null && item.subControls.length > 0) {\r\n this.sortControls(item.subControls);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description: 加载资源\r\n * @author ChenRui\r\n * @date 2020/11/23 11:00\r\n */\r\n loadResource(formId: string): DesForm {\r\n const desForm: DesForm | undefined = this.desForms.find((item) => item.formId === formId);\r\n if (desForm != null) {\r\n return formBeanUtilsService.copy(desForm);\r\n } else {\r\n return new DesForm({ formId: formId });\r\n }\r\n }\r\n\r\n /**\r\n * @description: rest客户端\r\n * @author ChenRui\r\n * @date 2020/11/19 21:02\r\n */\r\n private fetch(path: string, params: { [key: string]: any }, body?: any, method = \"GET\", headers?: any, simple = false): Promise<any> {\r\n headers = headers ? headers : apiService.createBasicHeaders();\r\n return simple ? fetch(path).then((response) => response.json()) : apiService.fetch(path, params, body, method, headers);\r\n }\r\n\r\n /**\r\n * @description: 校验提示\r\n * @author ChenRui\r\n * @date 2021/8/18 17:14\r\n */\r\n validateTips(formApis: FormApi | FormApi[], scrollView?: any): boolean {\r\n return formValidateService.validateTips(formApis, scrollView);\r\n }\r\n\r\n /**\r\n * @description: 创建认证下载消息头\r\n * @author ChenRui\r\n * @date 2020/8/28 15:18\r\n */\r\n createFileDownloadAuthorizationHeader() {\r\n return {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n responseType: \"blob\",\r\n };\r\n }\r\n}\r\nconst formToolsService: FormToolsService = new FormToolsService();\r\nexport { formToolsService, FormToolsService, DictionaryFormatCollection };\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.string.match.js\");","function transform(currencyDigits: any): any {\r\n // Constants:\r\n const MAXIMUM_NUMBER = 999999999999.99;\r\n // Predefine the radix characters and currency symbols for output:\r\n const CN_ZERO = \"零\";\r\n const CN_ONE = \"壹\";\r\n const CN_TWO = \"贰\";\r\n const CN_THREE = \"叁\";\r\n const CN_FOUR = \"肆\";\r\n const CN_FIVE = \"伍\";\r\n const CN_SIX = \"陆\";\r\n const CN_SEVEN = \"柒\";\r\n const CN_EIGHT = \"捌\";\r\n const CN_NINE = \"玖\";\r\n const CN_TEN = \"拾\";\r\n const CN_HUNDRED = \"佰\";\r\n const CN_THOUSAND = \"仟\";\r\n const CN_TEN_THOUSAND = \"万\";\r\n const CN_HUNDRED_MILLION = \"亿\";\r\n // 满足数字大写转换需求\r\n const CN_SYMBOL = \"\"; // 不带前缀【金额:】\r\n const CN_DOLLAR = \"\"; // 元\r\n const DROP = \"点\"; // 点 2023年8月31日10:51:25\r\n const CN_TEN_CENT = \"\"; // 角\r\n const CN_CENT = \"\"; // 分\r\n const CN_INTEGER = \"\"; // 整\r\n\r\n // constiables:\r\n let integral; // Represent integral part of digit number.\r\n let decimal; // Represent decimal part of digit number.\r\n let outputCharacters; // The output result.\r\n let parts = [];\r\n let digits = [],\r\n radices = [],\r\n bigRadices = [],\r\n decimals = [];\r\n let zeroCount;\r\n let i, p, d;\r\n let quotient, modulus;\r\n\r\n // Validate input string:\r\n currencyDigits = currencyDigits != undefined ? currencyDigits.toString() : \"\";\r\n\r\n let prefix = \"\";\r\n if (currencyDigits != null && currencyDigits.indexOf(\"-\") === 0) {\r\n prefix = \"负\";\r\n currencyDigits = currencyDigits.substr(1);\r\n }\r\n if (currencyDigits === \"\") {\r\n return \"空\"; // 默认提示\r\n }\r\n if (currencyDigits.match(/[^,.\\d]/) != null) {\r\n return \"您的输入含有无效字符\";\r\n }\r\n if (currencyDigits.match(/^((\\d{1,3}(,\\d{3})*(.((\\d{3},)*\\d{1,3}))?)|(\\d+(.\\d+)?))$/) == null) {\r\n return \"您的输入的数字格式不正确\";\r\n }\r\n\r\n // Normalize the format of input digits:\r\n currencyDigits = currencyDigits.replace(/,/g, \"\"); // Remove comma delimiters.\r\n currencyDigits = currencyDigits.replace(/^0+/, \"\"); // Trim zeros at the beginning.\r\n // Assert the number is not greater than the maximum number.\r\n if (Number(currencyDigits) > MAXIMUM_NUMBER) {\r\n let divisor = 1000000000000;\r\n if (currencyDigits.indexOf(\".\") > -1) {\r\n const num = currencyDigits.split(\".\")[1].length;\r\n for (let i = 0; i < num; i++) {\r\n divisor = divisor * 10;\r\n }\r\n currencyDigits = currencyDigits.replace(\".\", \"\");\r\n }\r\n return Number(currencyDigits) / Number(divisor) + \"万亿元\";\r\n }\r\n\r\n // Process the coversion from currency digits to characters:\r\n // Separate integral and decimal parts before processing coversion:\r\n parts = currencyDigits.split(\".\");\r\n if (parts.length > 1) {\r\n integral = parts[0];\r\n decimal = parts[1];\r\n // Cut down redundant decimal digits that are after the second.\r\n decimal = decimal.substr(0, 2);\r\n } else {\r\n integral = parts[0];\r\n decimal = \"\";\r\n }\r\n // Prepare the characters corresponding to the digits:\r\n digits = [CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE];\r\n radices = [\"\", CN_TEN, CN_HUNDRED, CN_THOUSAND];\r\n bigRadices = [\"\", CN_TEN_THOUSAND, CN_HUNDRED_MILLION];\r\n decimals = [CN_TEN_CENT, CN_CENT];\r\n // Start processing:\r\n outputCharacters = \"\";\r\n // Process integral part if it is larger than 0:\r\n if (Number(integral) > 0) {\r\n zeroCount = 0;\r\n for (i = 0; i < integral.length; i++) {\r\n p = integral.length - i - 1;\r\n d = integral.substr(i, 1);\r\n quotient = p / 4;\r\n modulus = p % 4;\r\n if (d === \"0\") {\r\n zeroCount++;\r\n } else {\r\n if (zeroCount > 0) {\r\n outputCharacters += digits[0];\r\n }\r\n zeroCount = 0;\r\n outputCharacters += digits[Number(d)] + radices[modulus];\r\n }\r\n if (modulus === 0 && zeroCount < 4) {\r\n outputCharacters += bigRadices[quotient];\r\n zeroCount = 0;\r\n }\r\n }\r\n // outputCharacters += CN_DOLLAR; // 原来的【元】\r\n } else {\r\n //整数位为'零'\r\n outputCharacters = digits[Number(integral)];\r\n }\r\n // Process decimal part if there is:\r\n //校验小数位是否有值\r\n if (decimal !== \"\" && decimal !== \"0\" && decimal !== \"00\") {\r\n outputCharacters += DROP; // new 2023年8月31日10:52:54\r\n for (i = 0; i < decimal.length; i++) {\r\n d = decimal.substr(i, 1);\r\n if (d !== \"0\") {\r\n outputCharacters += digits[Number(d)] + decimals[i];\r\n } else if (i === 0) {\r\n //处理金额十分位数值为0时的大写转换\r\n outputCharacters += digits[Number(d)];\r\n }\r\n }\r\n }\r\n // Confirm and return the final output string:\r\n if (outputCharacters === \"\") {\r\n outputCharacters = CN_ZERO + CN_DOLLAR;\r\n }\r\n if (decimal === \"\") {\r\n outputCharacters += CN_INTEGER;\r\n }\r\n outputCharacters = CN_SYMBOL + prefix + outputCharacters;\r\n return outputCharacters;\r\n}\r\n/**\r\n * @description: 跨列计算\r\n * @author ChenRui\r\n * @date 2020/12/1 19:34\r\n */\r\nconst amountCapitalization = (data: any) => {\r\n return transform(data);\r\n};\r\n\r\nexport default amountCapitalization;\r\n","export class DesFormControl {\r\n formFieldId: string;\r\n formId: string;\r\n layoutId: string;\r\n boundProperty: string;\r\n extendBoundPropertyOne: string;\r\n extendBoundPropertyTwo: string;\r\n formFieldDescribe: string;\r\n controlType: string;\r\n tableFieldOrder: number | undefined;\r\n fieldDefaultValue: any;\r\n titleWidth: string;\r\n isBoldTitle: string | boolean;\r\n isHideTitle: string | boolean;\r\n titleColor: string;\r\n placeholder: string;\r\n tips: string;\r\n isNotEdit: string | boolean;\r\n bindingPrefix: string;\r\n bindingSuffix: string;\r\n builtInFrontLabel: string;\r\n builtInPostLabel: string;\r\n isHideControl: string | boolean;\r\n isShowHoliday: string | boolean;\r\n controlWidth: string;\r\n isPasswordBox: string | boolean;\r\n initRowHeight: number | undefined;\r\n isFixedRowHeight: string | boolean;\r\n formatType: string;\r\n minValue: number | undefined;\r\n maxValue: number | undefined;\r\n step: number | undefined;\r\n decimalPlaces: number | undefined;\r\n thousandthPercentileFormat: string | boolean;\r\n unit: string;\r\n moneyUnit: string;\r\n defineOptionalUnits: string;\r\n defineOptionalUnitsDefault: string;\r\n zoomType: string;\r\n zoomMultiple: number | undefined;\r\n isShowCapitalization: string | boolean;\r\n isLineFeedDisplay: string | boolean;\r\n isOptionType: string | boolean;\r\n optionConfig: any;\r\n dynamicOptionType: string;\r\n generalDictionary: string;\r\n generalDictionaryOptions: any;\r\n treeShape: string;\r\n treeShapeOptions: any;\r\n disableNonLeafNodes: string | boolean;\r\n dateFormat: string;\r\n timeFormat: string;\r\n isSupportMultiple: string | boolean;\r\n maxUploadNumber: number | undefined;\r\n limitSize: number | undefined;\r\n supportUploadType: string;\r\n customUploadType: any;\r\n extendUploadType: string;\r\n attachmentExtendProperties: string;\r\n isMultipleChoice: string | boolean;\r\n isSearchable: string | boolean;\r\n canAddEntry: string | boolean;\r\n isClearButton: string | boolean;\r\n hiddenDropdown: string | boolean; // new by 2021-11-9\r\n onOpeningValue: string;\r\n whenClosedValue: string;\r\n onOpeningText: string;\r\n whenClosedText: string;\r\n customFieldName: string; // new by 2021-11-9\r\n textFold: string | boolean;\r\n enableAutoComplete: string | boolean; // new by 2022-05-07\r\n autoCompleteOptions: any[]; // new by 2022-05-07\r\n verificationRules: any;\r\n busAttr: any;\r\n checkboxStyle: string | boolean; // 多选框选项标签样式\r\n itemWidth: string | boolean; // 多选框选项标签样式\r\n isTreeOpen: string | boolean; // 树形选择框是否展开\r\n changeOnSelect: string | boolean; // 是否允许级联选择框只选中父级选项\r\n textareaRows: number | undefined; // 设置textarea组件默认展示行数\r\n constructor(\r\n options: {\r\n formFieldId?: string;\r\n formId?: string;\r\n layoutId?: string;\r\n boundProperty?: string;\r\n extendBoundPropertyOne?: string;\r\n extendBoundPropertyTwo?: string;\r\n formFieldDescribe?: string;\r\n controlType?: string;\r\n tableFieldOrder?: number;\r\n fieldDefaultValue?: any;\r\n titleWidth?: string;\r\n isBoldTitle?: string;\r\n isHideTitle?: string;\r\n titleColor?: string;\r\n placeholder?: string;\r\n tips?: string;\r\n isNotEdit?: string;\r\n bindingPrefix?: string;\r\n bindingSuffix?: string;\r\n builtInFrontLabel?: string;\r\n builtInPostLabel?: string;\r\n isHideControl?: string;\r\n isShowHoliday?: string;\r\n controlWidth?: string;\r\n isPasswordBox?: string;\r\n initRowHeight?: number;\r\n isFixedRowHeight?: string;\r\n formatType?: string;\r\n minValue?: number;\r\n maxValue?: number;\r\n step?: number;\r\n decimalPlaces?: number;\r\n thousandthPercentileFormat?: string;\r\n unit?: string;\r\n moneyUnit?: string;\r\n defineOptionalUnits?: string;\r\n defineOptionalUnitsDefault?: string;\r\n zoomType?: string;\r\n zoomMultiple?: number;\r\n isShowCapitalization?: string;\r\n isLineFeedDisplay?: string;\r\n isOptionType?: string;\r\n optionConfig?: any;\r\n dynamicOptionType?: string;\r\n generalDictionary?: string;\r\n generalDictionaryOptions?: any;\r\n treeShape?: string;\r\n treeShapeOptions?: any;\r\n disableNonLeafNodes?: string | boolean;\r\n dateFormat?: string;\r\n timeFormat?: string;\r\n isSupportMultiple?: string;\r\n maxUploadNumber?: number;\r\n limitSize?: number;\r\n supportUploadType?: string;\r\n customUploadType?: any;\r\n extendUploadType?: string;\r\n attachmentExtendProperties?: string;\r\n isMultipleChoice?: string;\r\n isSearchable?: string;\r\n canAddEntry?: string;\r\n isClearButton?: string;\r\n hiddenDropdown?: string;\r\n onOpeningValue?: string;\r\n whenClosedValue?: string;\r\n onOpeningText?: string;\r\n whenClosedText?: string;\r\n customFieldName?: string;\r\n textFold?: string;\r\n enableAutoComplete?: string;\r\n autoCompleteOptions?: any[];\r\n verificationRules?: any;\r\n busAttr?: any;\r\n checkboxStyle?: string | boolean;\r\n isTreeOpen?: string | boolean;\r\n itemWidth?: string | boolean;\r\n changeOnSelect?: string | boolean;\r\n textareaRows?: number | undefined;\r\n } = {}\r\n ) {\r\n this.formFieldId = options.formFieldId || \"\";\r\n this.formId = options.formId || \"\";\r\n this.layoutId = options.layoutId || \"\";\r\n this.boundProperty = options.boundProperty || \"\";\r\n this.extendBoundPropertyOne = options.extendBoundPropertyOne || \"\";\r\n this.extendBoundPropertyTwo = options.extendBoundPropertyTwo || \"\";\r\n this.formFieldDescribe = options.formFieldDescribe || \"\";\r\n this.controlType = options.controlType || \"\";\r\n this.tableFieldOrder = options.tableFieldOrder || undefined;\r\n this.fieldDefaultValue = options.fieldDefaultValue || \"\";\r\n this.titleWidth = options.titleWidth || \"\";\r\n this.isBoldTitle = options.isBoldTitle || \"\";\r\n this.isHideTitle = options.isHideTitle || \"\";\r\n this.titleColor = options.titleColor || \"\";\r\n this.placeholder = options.placeholder || \"\";\r\n this.tips = options.tips || \"\";\r\n this.isNotEdit = options.isNotEdit || \"\";\r\n this.bindingPrefix = options.bindingPrefix || \"\";\r\n this.bindingSuffix = options.bindingSuffix || \"\";\r\n this.builtInFrontLabel = options.builtInFrontLabel || \"\";\r\n this.builtInPostLabel = options.builtInPostLabel || \"\";\r\n this.isHideControl = options.isHideControl || \"\";\r\n this.isShowHoliday = options.isShowHoliday || \"\";\r\n this.controlWidth = options.controlWidth || \"\";\r\n this.isPasswordBox = options.isPasswordBox || \"\";\r\n this.initRowHeight = options.initRowHeight || undefined;\r\n this.isFixedRowHeight = options.isFixedRowHeight || \"\";\r\n this.formatType = options.formatType || \"\";\r\n this.minValue = options.minValue || undefined;\r\n this.maxValue = options.maxValue || undefined;\r\n this.step = options.step || undefined;\r\n this.decimalPlaces = options.decimalPlaces || undefined;\r\n this.thousandthPercentileFormat = options.thousandthPercentileFormat || \"\";\r\n this.unit = options.unit || \"\";\r\n this.moneyUnit = options.moneyUnit || \"\";\r\n this.defineOptionalUnits = options.defineOptionalUnits || \"\";\r\n this.defineOptionalUnitsDefault = options.defineOptionalUnitsDefault || \"\";\r\n this.zoomType = options.zoomType || \"\";\r\n this.zoomMultiple = options.zoomMultiple || undefined;\r\n this.isShowCapitalization = options.isShowCapitalization || \"\";\r\n this.isLineFeedDisplay = options.isLineFeedDisplay || \"\";\r\n this.isOptionType = options.isOptionType || \"\";\r\n this.optionConfig = options.optionConfig || \"\";\r\n this.dynamicOptionType = options.dynamicOptionType || \"\";\r\n this.generalDictionary = options.generalDictionary || \"\";\r\n this.generalDictionaryOptions = options.generalDictionaryOptions || \"\";\r\n this.treeShape = options.treeShape || \"\";\r\n this.treeShapeOptions = options.treeShapeOptions || \"\";\r\n this.disableNonLeafNodes = options.disableNonLeafNodes || \"\";\r\n this.dateFormat = options.dateFormat || \"\";\r\n this.timeFormat = options.timeFormat || \"\";\r\n this.isSupportMultiple = options.isSupportMultiple || \"\";\r\n this.maxUploadNumber = options.maxUploadNumber || undefined;\r\n this.limitSize = options.limitSize || undefined;\r\n this.supportUploadType = options.supportUploadType || \"\";\r\n this.customUploadType = options.customUploadType;\r\n this.extendUploadType = options.extendUploadType || \"\";\r\n this.attachmentExtendProperties = options.attachmentExtendProperties || \"\";\r\n this.isMultipleChoice = options.isMultipleChoice || \"\";\r\n this.isSearchable = options.isSearchable || \"\";\r\n this.canAddEntry = options.canAddEntry || \"\";\r\n this.isClearButton = options.isClearButton || \"\";\r\n this.hiddenDropdown = options.hiddenDropdown || \"\";\r\n this.onOpeningValue = options.onOpeningValue || \"\";\r\n this.whenClosedValue = options.whenClosedValue || \"\";\r\n this.onOpeningText = options.onOpeningText || \"\";\r\n this.whenClosedText = options.whenClosedText || \"\";\r\n this.customFieldName = options.customFieldName || \"\";\r\n this.textFold = options.textFold || \"\";\r\n this.enableAutoComplete = options.enableAutoComplete || \"\";\r\n this.autoCompleteOptions = options.autoCompleteOptions || [];\r\n this.verificationRules = options.verificationRules;\r\n this.busAttr = options.busAttr;\r\n this.checkboxStyle = options.checkboxStyle || \"\";\r\n this.isTreeOpen = options.isTreeOpen || \"\";\r\n this.itemWidth = options.itemWidth || \"\";\r\n this.changeOnSelect = options.changeOnSelect || \"\";\r\n this.textareaRows = options.textareaRows || 3;\r\n }\r\n}\r\n","export abstract class AbstractControl {\r\n value: any;\r\n [key: string]: any;\r\n\r\n abstract get(path: Array<string | number> | string): AbstractControl | null;\r\n}\r\n","import { AbstractControl } from \"./AbstractControl\";\r\nimport { ValidateStatus } from \"../constants/enum/validate-status.enum\";\r\n\r\nexport interface ValidateResult {\r\n validateStatus?: string;\r\n errorMsg?: any;\r\n}\r\nexport interface ValidateReport {\r\n key: string;\r\n name: string;\r\n errorMsg: any;\r\n controlType: string;\r\n}\r\nexport type ValidateFunc = (val: any) => ValidateResult;\r\nexport interface Validate {\r\n name: string;\r\n validateFunc: ValidateFunc;\r\n}\r\nexport type TextNoticeCallback = (val?: any) => string;\r\n\r\n/**\r\n * @description: 控件对象\r\n * @author ChenRui\r\n * @date 2020/12/1 15:06\r\n */\r\nexport class FormControl extends AbstractControl {\r\n history: any[] = []; // 字段历史\r\n validates: Validate[] = []; // 校验规则\r\n textNoticeCallback: TextNoticeCallback | undefined; // 获取文本内容回调\r\n\r\n constructor(formState?: any) {\r\n super();\r\n this.setValue(formState);\r\n }\r\n\r\n setValue(value: any) {\r\n this.value = value || undefined;\r\n }\r\n\r\n get(path: Array<string | number> | string): AbstractControl | null {\r\n return this;\r\n }\r\n\r\n /**\r\n * @description: 添加校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:05\r\n */\r\n addValidate(validate: Validate | Validate[]): void {\r\n let validates: Validate[] = [];\r\n if (!(validate instanceof Array)) {\r\n validates.push(validate);\r\n } else {\r\n validates = validate;\r\n }\r\n if (validates && validates.length > 0) {\r\n for (let i = 0; i < validates.length; i++) {\r\n if (validates[i].name) {\r\n const index = this.validates.findIndex((item) => item.name === validates[i].name);\r\n if (index > -1) {\r\n this.validates[index].validateFunc = validates[i].validateFunc;\r\n } else {\r\n this.validates.push(validates[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:06\r\n */\r\n removeValidate(name: string): void {\r\n if (name) {\r\n const index = this.validates.findIndex((item) => item.name === name);\r\n if (index > -1) {\r\n this.validates.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:47\r\n */\r\n getValidate(name: string): Validate | any {\r\n if (name) {\r\n return this.validates.find((item) => item.name === name);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 校验\r\n * @author ChenRui\r\n * @date 2021/1/26 21:08\r\n */\r\n validate(val: any = this.value): ValidateResult {\r\n for (let i = 0; i < this.validates.length; i++) {\r\n const result: ValidateResult = this.validates[i].validateFunc(val);\r\n if (result && result.validateStatus !== ValidateStatus.Success.code) {\r\n return result;\r\n }\r\n }\r\n return {\r\n validateStatus: ValidateStatus.Success.code,\r\n errorMsg: null,\r\n };\r\n }\r\n\r\n /**\r\n * @description: 获取文本内容\r\n * @author ChenRui\r\n * @date 2021/1/29 15:56\r\n */\r\n text(): string {\r\n if (this.textNoticeCallback) {\r\n return this.textNoticeCallback();\r\n }\r\n return \"\";\r\n }\r\n}\r\n","import { AbstractControl } from \"./AbstractControl\";\r\n\r\n/**\r\n * @description: 表单对象\r\n * @author ChenRui\r\n * @date 2020/12/1 15:06\r\n */\r\nexport class FormGroup extends AbstractControl {\r\n controls: { [key: string]: AbstractControl };\r\n\r\n constructor(controls: { [key: string]: AbstractControl } = {}) {\r\n super();\r\n this.controls = controls;\r\n }\r\n\r\n /**\r\n * @description: 添加控件\r\n * @author ChenRui\r\n * @date 2020/12/1 14:47\r\n */\r\n addControl(name: string, control: AbstractControl): void {\r\n this.controls[name] = control;\r\n }\r\n\r\n /**\r\n * @description: 移除控件\r\n * @author ChenRui\r\n * @date 2020/12/1 14:47\r\n */\r\n removeControl(name: string): void {\r\n if (this.controls[name] != null) {\r\n delete this.controls[name];\r\n }\r\n }\r\n\r\n get(path: Array<string | number> | string): AbstractControl | null {\r\n if (typeof path === \"string\") {\r\n return this.controls[path];\r\n }\r\n return null;\r\n }\r\n}\r\n","import { OptionType } from \"../constants/enum/option-type.enum\";\r\nimport { DynamicOptionType } from \"../constants/enum/dynamic-option-type.enum\";\r\n\r\nfunction transformReverse(controlAttr: any, data: any[]): void {\r\n if (data == null) {\r\n data = [];\r\n }\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n controlAttr.optionConfig = data;\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n controlAttr.generalDictionaryOptions = data;\r\n } else if (controlAttr.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n controlAttr.treeShapeOptions = data;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction transform(controlAttr: any): any[] {\r\n if (controlAttr != null) {\r\n if (controlAttr.isOptionType === OptionType.Fixed.code) {\r\n return controlAttr.optionConfig || [];\r\n } else if (controlAttr.isOptionType === OptionType.Dynamic.code) {\r\n if (controlAttr.dynamicOptionType === DynamicOptionType.GeneralDictionary.code) {\r\n return controlAttr.generalDictionaryOptions || [];\r\n } else if (controlAttr.dynamicOptionType === DynamicOptionType.TreeDictionary.code) {\r\n return controlAttr.treeShapeOptions || [];\r\n }\r\n }\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * @description: 根据字典类型获取可选项\r\n * @author ChenRui\r\n * @date 2020/12/30 11:18\r\n */\r\nconst extractOptions = (controlAttr: any, ...args: any[]): any[] => {\r\n return transform(controlAttr);\r\n};\r\n\r\n/**\r\n * @description: 保存可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:17\r\n */\r\nconst storageOptions = (controlAttr: any, data: any[]): void => {\r\n return transformReverse(controlAttr, data);\r\n};\r\nexport { storageOptions, extractOptions };\r\n","import { ZoomType } from \"@/constants/enum/zoom-type\";\r\nimport { FormControl } from \"@/domain/FormControl\";\r\nimport { MathJsStatic } from \"mathjs\";\r\nimport { getCurrentInstance } from \"vue\";\r\n\r\n/**\r\n * @description: 通用字典转换\r\n * @author ChenRui\r\n * @date 2020/7/29 18:43\r\n */\r\nfunction encode(data: any, formControl: FormControl) {\r\n const proxy: any = getCurrentInstance()?.proxy;\r\n const mathjs: MathJsStatic = proxy?.$mathjs as MathJsStatic;\r\n if (data && formControl.controlAttr.zoomMultiple) {\r\n if (formControl.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.narrow.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} / ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.automatic.code) {\r\n data = mathjs.format(mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (String(formControl.value) === \"0\") {\r\n data = 0;\r\n }\r\n return data;\r\n}\r\nconst zoomMultiple = (code: any, formControl: FormControl) => {\r\n return encode(code, formControl);\r\n};\r\n\r\nexport default zoomMultiple;\r\n","/**\r\n * @description: 通用字典转换\r\n * @author ChenRui\r\n * @date 2020/7/29 18:43\r\n */\r\nfunction encode(code: string, switchEnumFiled: any, attribute?: string, defaultVal?: any) {\r\n if (switchEnumFiled != null && Object.values(switchEnumFiled).length > 0) {\r\n for (const switchEnum of Object.values(switchEnumFiled) as any) {\r\n return switchEnum[attribute || \"name\"] || defaultVal;\r\n }\r\n }\r\n return defaultVal || \"\";\r\n}\r\nconst switchEnumConvert = (code: string, switchEnumFiled: any, attribute?: string, defaultVal?: any) => {\r\n return encode(code, switchEnumFiled, attribute, defaultVal);\r\n};\r\n\r\nexport default switchEnumConvert;\r\n","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\nconst _hoisted_2 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"lo-text-container\", [{ 'lo-text-column': !_ctx.unfold }, { 'lo-text-row': _ctx.unfold }]])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['lo-text-box', { 'lo-over': !_ctx.ifOver }, { 'lo-over-hidden': !_ctx.unfold }, { 'lo-unfold': _ctx.ifOver && !_ctx.unfold }]),\n ref: \"textBox\"\n }, [\n _createElementVNode(\"span\", {\n class: \"lo-text\",\n ref: \"spanBox\",\n title: _ctx.content\n }, [\n (_ctx.linkList.indexOf(_ctx.fieldKey) > -1)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"#\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.linkClick(_ctx.content)))\n }, _toDisplayString(_ctx.content), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.content), 1))\n ], 8, _hoisted_1)\n ], 2),\n (_ctx.ifOver)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"lo-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.unfold = !_ctx.unfold))\n }, _toDisplayString(_ctx.unfold ? \"收起\" : \"展开\"), 1))\n : _createCommentVNode(\"\", true)\n ], 2))\n}","<template>\r\n <div class=\"lo-text-container\" :class=\"[{ 'lo-text-column': !unfold }, { 'lo-text-row': unfold }]\">\r\n <div :class=\"['lo-text-box', { 'lo-over': !ifOver }, { 'lo-over-hidden': !unfold }, { 'lo-unfold': ifOver && !unfold }]\" ref=\"textBox\">\r\n <span class=\"lo-text\" ref=\"spanBox\" :title=\"content\">\r\n <a v-if=\"linkList.indexOf(fieldKey) > -1\" href=\"#\" @click=\"linkClick(content)\">{{ content }}</a>\r\n <span v-else>{{ content }}</span>\r\n </span>\r\n </div>\r\n <div class=\"lo-btn\" v-if=\"ifOver\" @click=\"unfold = !unfold\">\r\n {{ unfold ? \"收起\" : \"展开\" }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { Prop, Ref, Watch } from \"vue-property-decorator\";\r\nimport { Options, Vue } from \"vue-property-decorator\";\r\n\r\n@Options({\r\n name: \"StretchText\",\r\n})\r\nexport default class StretchText extends Vue {\r\n ifOver = false; // 文本是否超出三行,默认否\r\n unfold = false; // 文本是否是展开状态 默认为收起\r\n @Prop({ default: false }) enableStretchText!: boolean;\r\n @Prop({ default: \"\" }) content!: string;\r\n @Prop({ default: \"\" }) fieldKey!: string; // 元素码值key\r\n @Prop({ type: Array, default: () => [] }) linkList: any | undefined; // 需要添加超链接点击事件数组 例:['cifNo', 'prodBaseNo']\r\n @Ref() readonly spanBox: any;\r\n @Ref() readonly textBox: any;\r\n\r\n mounted(): void {\r\n this.onContentHandle();\r\n }\r\n /**\r\n * @Description 表单数据反显回调(data:string 元素值value)\r\n * @Author JiangTao\r\n * @Date 2023-10-07 下午 05:24\r\n */\r\n linkClick(data: any): void {\r\n this.$emit(\"linkClick\", data);\r\n }\r\n\r\n @Watch(\"content\")\r\n onContentHandle(): void {\r\n // 判断是否显示展开收起按钮\r\n this.ifOver = this.spanBox.offsetHeight > this.textBox.offsetHeight;\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.lo-text-container {\r\n display: flex;\r\n align-items: end;\r\n &.lo-text-column {\r\n flex-direction: row;\r\n .lo-btn {\r\n padding-top: 8px;\r\n }\r\n }\r\n &.lo-text-row {\r\n flex-direction: column;\r\n }\r\n .lo-text-box {\r\n line-height: initial;\r\n }\r\n .lo-unfold,\r\n .lo-over {\r\n line-height: 37px;\r\n }\r\n .lo-over-hidden {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 1;\r\n -webkit-box-orient: vertical;\r\n }\r\n .lo-text {\r\n color: #333333;\r\n font-size: 14px;\r\n }\r\n .lo-btn {\r\n min-width: 31px;\r\n line-height: normal;\r\n cursor: pointer;\r\n color: #429eff;\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./StretchText.vue?vue&type=template&id=12085cfe&scoped=true&ts=true\"\nimport script from \"./StretchText.vue?vue&type=script&lang=ts\"\nexport * from \"./StretchText.vue?vue&type=script&lang=ts\"\n\nimport \"./StretchText.vue?vue&type=style&index=0&id=12085cfe&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-12085cfe\"]])\n\nexport default __exports__","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@ant-design/icons-vue\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"dayjs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"ant-design-vue/es/date-picker/locale/zh_CN\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.constructor.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.dot-all.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.sticky.js\");","/*eslint-disable*/\r\nconst char_dict: any = \"YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY\"\r\nconst full_dict: any = { \"a\": \"\\u554a\\u963f\\u9515\", \"ai\": \"\\u57c3\\u6328\\u54ce\\u5509\\u54c0\\u7691\\u764c\\u853c\\u77ee\\u827e\\u788d\\u7231\\u9698\\u8bf6\\u6371\\u55f3\\u55cc\\u5ad2\\u7477\\u66a7\\u7839\\u953f\\u972d\", \"an\": \"\\u978d\\u6c28\\u5b89\\u4ffa\\u6309\\u6697\\u5cb8\\u80fa\\u6848\\u8c19\\u57ef\\u63de\\u72b4\\u5eb5\\u6849\\u94f5\\u9e4c\\u9878\\u9eef\", \"ang\": \"\\u80ae\\u6602\\u76ce\", \"ao\": \"\\u51f9\\u6556\\u71ac\\u7ff1\\u8884\\u50b2\\u5965\\u61ca\\u6fb3\\u5773\\u62d7\\u55f7\\u5662\\u5c99\\u5ed2\\u9068\\u5aaa\\u9a9c\\u8071\\u87af\\u93ca\\u9ccc\\u93d6\", \"ba\": \"\\u82ad\\u634c\\u6252\\u53ed\\u5427\\u7b06\\u516b\\u75a4\\u5df4\\u62d4\\u8dcb\\u9776\\u628a\\u8019\\u575d\\u9738\\u7f62\\u7238\\u8307\\u83dd\\u8406\\u636d\\u5c9c\\u705e\\u6777\\u94af\\u7c91\\u9c85\\u9b43\", \"bai\": \"\\u767d\\u67cf\\u767e\\u6446\\u4f70\\u8d25\\u62dc\\u7a17\\u859c\\u63b0\\u97b4\", \"ban\": \"\\u6591\\u73ed\\u642c\\u6273\\u822c\\u9881\\u677f\\u7248\\u626e\\u62cc\\u4f34\\u74e3\\u534a\\u529e\\u7eca\\u962a\\u5742\\u8c73\\u94a3\\u7622\\u764d\\u8228\", \"bang\": \"\\u90a6\\u5e2e\\u6886\\u699c\\u8180\\u7ed1\\u68d2\\u78c5\\u868c\\u9551\\u508d\\u8c24\\u84a1\\u8783\", \"bao\": \"\\u82de\\u80de\\u5305\\u8912\\u96f9\\u4fdd\\u5821\\u9971\\u5b9d\\u62b1\\u62a5\\u66b4\\u8c79\\u9c8d\\u7206\\u52f9\\u8446\\u5b80\\u5b62\\u7172\\u9e28\\u8913\\u8db5\\u9f85\", \"bo\": \"\\u5265\\u8584\\u73bb\\u83e0\\u64ad\\u62e8\\u94b5\\u6ce2\\u535a\\u52c3\\u640f\\u94c2\\u7b94\\u4f2f\\u5e1b\\u8236\\u8116\\u818a\\u6e24\\u6cca\\u9a73\\u4eb3\\u8543\\u5575\\u997d\\u6a97\\u64d8\\u7934\\u94b9\\u9e41\\u7c38\\u8ddb\", \"bei\": \"\\u676f\\u7891\\u60b2\\u5351\\u5317\\u8f88\\u80cc\\u8d1d\\u94a1\\u500d\\u72c8\\u5907\\u60eb\\u7119\\u88ab\\u5b5b\\u9642\\u90b6\\u57e4\\u84d3\\u5457\\u602b\\u6096\\u789a\\u9e4e\\u8919\\u943e\", \"ben\": \"\\u5954\\u82ef\\u672c\\u7b28\\u755a\\u574c\\u951b\", \"beng\": \"\\u5d29\\u7ef7\\u752d\\u6cf5\\u8e66\\u8ff8\\u552a\\u5623\\u750f\", \"bi\": \"\\u903c\\u9f3b\\u6bd4\\u9119\\u7b14\\u5f7c\\u78a7\\u84d6\\u853d\\u6bd5\\u6bd9\\u6bd6\\u5e01\\u5e87\\u75f9\\u95ed\\u655d\\u5f0a\\u5fc5\\u8f9f\\u58c1\\u81c2\\u907f\\u965b\\u5315\\u4ef3\\u4ffe\\u8298\\u835c\\u8378\\u5421\\u54d4\\u72f4\\u5eb3\\u610e\\u6ed7\\u6fde\\u5f3c\\u59a3\\u5a62\\u5b16\\u74a7\\u8d32\\u7540\\u94cb\\u79d5\\u88e8\\u7b5a\\u7b85\\u7be6\\u822d\\u895e\\u8df8\\u9ac0\", \"bian\": \"\\u97ad\\u8fb9\\u7f16\\u8d2c\\u6241\\u4fbf\\u53d8\\u535e\\u8fa8\\u8fa9\\u8fab\\u904d\\u533e\\u5f01\\u82c4\\u5fed\\u6c74\\u7f0f\\u7178\\u782d\\u78a5\\u7a39\\u7a86\\u8759\\u7b3e\\u9cca\", \"biao\": \"\\u6807\\u5f6a\\u8198\\u8868\\u5a4a\\u9aa0\\u98d1\\u98d9\\u98da\\u706c\\u9556\\u9573\\u762d\\u88f1\\u9cd4\", \"bie\": \"\\u9cd6\\u618b\\u522b\\u762a\\u8e69\\u9cd8\", \"bin\": \"\\u5f6c\\u658c\\u6fd2\\u6ee8\\u5bbe\\u6448\\u50a7\\u6d5c\\u7f24\\u73a2\\u6ba1\\u8191\\u9554\\u9acc\\u9b13\", \"bing\": \"\\u5175\\u51b0\\u67c4\\u4e19\\u79c9\\u997c\\u70b3\\u75c5\\u5e76\\u7980\\u90b4\\u6452\\u7ee0\\u678b\\u69df\\u71f9\", \"bu\": \"\\u6355\\u535c\\u54fa\\u8865\\u57e0\\u4e0d\\u5e03\\u6b65\\u7c3f\\u90e8\\u6016\\u62ca\\u535f\\u900b\\u74ff\\u6661\\u949a\\u91ad\", \"ca\": \"\\u64e6\\u5693\\u7924\", \"cai\": \"\\u731c\\u88c1\\u6750\\u624d\\u8d22\\u776c\\u8e29\\u91c7\\u5f69\\u83dc\\u8521\", \"can\": \"\\u9910\\u53c2\\u8695\\u6b8b\\u60ed\\u60e8\\u707f\\u9a96\\u74a8\\u7cb2\\u9eea\", \"cang\": \"\\u82cd\\u8231\\u4ed3\\u6ca7\\u85cf\\u4f27\", \"cao\": \"\\u64cd\\u7cd9\\u69fd\\u66f9\\u8349\\u8279\\u5608\\u6f15\\u87ac\\u825a\", \"ce\": \"\\u5395\\u7b56\\u4fa7\\u518c\\u6d4b\\u5202\\u5e3b\\u607b\", \"ceng\": \"\\u5c42\\u8e6d\\u564c\", \"cha\": \"\\u63d2\\u53c9\\u832c\\u8336\\u67e5\\u78b4\\u643d\\u5bdf\\u5c94\\u5dee\\u8be7\\u7339\\u9987\\u6c4a\\u59f9\\u6748\\u6942\\u69ce\\u6aab\\u9497\\u9538\\u9572\\u8869\", \"chai\": \"\\u62c6\\u67f4\\u8c7a\\u4faa\\u8308\\u7625\\u867f\\u9f87\", \"chan\": \"\\u6400\\u63ba\\u8749\\u998b\\u8c17\\u7f20\\u94f2\\u4ea7\\u9610\\u98a4\\u5181\\u8c04\\u8c36\\u8487\\u5edb\\u5fcf\\u6f7a\\u6fb6\\u5b71\\u7fbc\\u5a75\\u5b17\\u9aa3\\u89c7\\u7985\\u9561\\u88e3\\u87fe\\u8e94\", \"chang\": \"\\u660c\\u7316\\u573a\\u5c1d\\u5e38\\u957f\\u507f\\u80a0\\u5382\\u655e\\u7545\\u5531\\u5021\\u4f25\\u9b2f\\u82cc\\u83d6\\u5f9c\\u6005\\u60dd\\u960a\\u5a3c\\u5ae6\\u6636\\u6c05\\u9cb3\", \"chao\": \"\\u8d85\\u6284\\u949e\\u671d\\u5632\\u6f6e\\u5de2\\u5435\\u7092\\u600a\\u7ec9\\u6641\\u8016\", \"che\": \"\\u8f66\\u626f\\u64a4\\u63a3\\u5f7b\\u6f88\\u577c\\u5c6e\\u7817\", \"chen\": \"\\u90f4\\u81e3\\u8fb0\\u5c18\\u6668\\u5ff1\\u6c89\\u9648\\u8d81\\u886c\\u79f0\\u8c0c\\u62bb\\u55d4\\u5bb8\\u741b\\u6987\\u809c\\u80c2\\u789c\\u9f80\", \"cheng\": \"\\u6491\\u57ce\\u6a59\\u6210\\u5448\\u4e58\\u7a0b\\u60e9\\u6f84\\u8bda\\u627f\\u901e\\u9a8b\\u79e4\\u57d5\\u5d4a\\u5fb5\\u6d48\\u67a8\\u67fd\\u6a18\\u665f\\u584d\\u77a0\\u94d6\\u88ce\\u86cf\\u9172\", \"chi\": \"\\u5403\\u75f4\\u6301\\u5319\\u6c60\\u8fdf\\u5f1b\\u9a70\\u803b\\u9f7f\\u4f88\\u5c3a\\u8d64\\u7fc5\\u65a5\\u70bd\\u50ba\\u5880\\u82aa\\u830c\\u640b\\u53f1\\u54e7\\u557b\\u55e4\\u5f73\\u996c\\u6cb2\\u5ab8\\u6555\\u80dd\\u7719\\u7735\\u9e31\\u761b\\u892b\\u86a9\\u87ad\\u7b1e\\u7bea\\u8c49\\u8e05\\u8e1f\\u9b51\", \"chong\": \"\\u5145\\u51b2\\u866b\\u5d07\\u5ba0\\u833a\\u5fe1\\u61a7\\u94f3\\u825f\", \"chou\": \"\\u62bd\\u916c\\u7574\\u8e0c\\u7a20\\u6101\\u7b79\\u4ec7\\u7ef8\\u7785\\u4e11\\u4fe6\\u5733\\u5e31\\u60c6\\u6eb4\\u59af\\u7633\\u96e0\\u9c8b\", \"chu\": \"\\u81ed\\u521d\\u51fa\\u6a71\\u53a8\\u8e87\\u9504\\u96cf\\u6ec1\\u9664\\u695a\\u7840\\u50a8\\u77d7\\u6410\\u89e6\\u5904\\u4e8d\\u520d\\u61b7\\u7ecc\\u6775\\u696e\\u6a17\\u870d\\u8e70\\u9edc\", \"chuan\": \"\\u63e3\\u5ddd\\u7a7f\\u693d\\u4f20\\u8239\\u5598\\u4e32\\u63be\\u821b\\u60f4\\u9044\\u5ddb\\u6c1a\\u948f\\u9569\\u8221\", \"chuang\": \"\\u75ae\\u7a97\\u5e62\\u5e8a\\u95ef\\u521b\\u6006\", \"chui\": \"\\u5439\\u708a\\u6376\\u9524\\u5782\\u9672\\u68f0\\u69cc\", \"chun\": \"\\u6625\\u693f\\u9187\\u5507\\u6df3\\u7eaf\\u8822\\u4fc3\\u83bc\\u6c8c\\u80ab\\u6710\\u9e51\\u877d\", \"chuo\": \"\\u6233\\u7ef0\\u851f\\u8fb6\\u8f8d\\u955e\\u8e14\\u9f8a\", \"ci\": \"\\u75b5\\u8328\\u78c1\\u96cc\\u8f9e\\u6148\\u74f7\\u8bcd\\u6b64\\u523a\\u8d50\\u6b21\\u8360\\u5472\\u5d6f\\u9e5a\\u8785\\u7ccd\\u8d91\", \"cong\": \"\\u806a\\u8471\\u56f1\\u5306\\u4ece\\u4e1b\\u506c\\u82c1\\u6dd9\\u9aa2\\u742e\\u7481\\u679e\", \"cu\": \"\\u51d1\\u7c97\\u918b\\u7c07\\u731d\\u6b82\\u8e59\", \"cuan\": \"\\u8e7f\\u7be1\\u7a9c\\u6c46\\u64ba\\u6615\\u7228\", \"cui\": \"\\u6467\\u5d14\\u50ac\\u8106\\u7601\\u7cb9\\u6dec\\u7fe0\\u8403\\u60b4\\u7480\\u69b1\\u96b9\", \"cun\": \"\\u6751\\u5b58\\u5bf8\\u78cb\\u5fd6\\u76b4\", \"cuo\": \"\\u64ae\\u6413\\u63aa\\u632b\\u9519\\u539d\\u811e\\u9509\\u77ec\\u75e4\\u9e7e\\u8e49\\u8e9c\", \"da\": \"\\u642d\\u8fbe\\u7b54\\u7629\\u6253\\u5927\\u8037\\u54d2\\u55d2\\u601b\\u59b2\\u75b8\\u8921\\u7b2a\\u977c\\u9791\", \"dai\": \"\\u5446\\u6b79\\u50a3\\u6234\\u5e26\\u6b86\\u4ee3\\u8d37\\u888b\\u5f85\\u902e\\u6020\\u57ed\\u7519\\u5454\\u5cb1\\u8fe8\\u902f\\u9a80\\u7ed0\\u73b3\\u9edb\", \"dan\": \"\\u803d\\u62c5\\u4e39\\u5355\\u90f8\\u63b8\\u80c6\\u65e6\\u6c2e\\u4f46\\u60ee\\u6de1\\u8bde\\u5f39\\u86cb\\u4ebb\\u510b\\u5369\\u840f\\u5556\\u6fb9\\u6a90\\u6b9a\\u8d55\\u7708\\u7605\\u8043\\u7baa\", \"dang\": \"\\u5f53\\u6321\\u515a\\u8361\\u6863\\u8c20\\u51fc\\u83ea\\u5b95\\u7800\\u94db\\u88c6\", \"dao\": \"\\u5200\\u6363\\u8e48\\u5012\\u5c9b\\u7977\\u5bfc\\u5230\\u7a3b\\u60bc\\u9053\\u76d7\\u53e8\\u5541\\u5fc9\\u6d2e\\u6c18\\u7118\\u5fd1\\u7e9b\", \"de\": \"\\u5fb7\\u5f97\\u7684\\u951d\", \"deng\": \"\\u8e6c\\u706f\\u767b\\u7b49\\u77aa\\u51f3\\u9093\\u5654\\u5d9d\\u6225\\u78f4\\u956b\\u7c26\", \"di\": \"\\u5824\\u4f4e\\u6ef4\\u8fea\\u654c\\u7b1b\\u72c4\\u6da4\\u7fdf\\u5ae1\\u62b5\\u5e95\\u5730\\u8482\\u7b2c\\u5e1d\\u5f1f\\u9012\\u7f14\\u6c10\\u7c74\\u8bcb\\u8c1b\\u90b8\\u577b\\u839c\\u837b\\u5600\\u5a23\\u67e2\\u68e3\\u89cc\\u7825\\u78b2\\u7747\\u955d\\u7f9d\\u9ab6\", \"dian\": \"\\u98a0\\u6382\\u6ec7\\u7898\\u70b9\\u5178\\u975b\\u57ab\\u7535\\u4f43\\u7538\\u5e97\\u60e6\\u5960\\u6dc0\\u6bbf\\u4e36\\u963d\\u576b\\u57dd\\u5dc5\\u73b7\\u765c\\u766b\\u7c1f\\u8e2e\", \"diao\": \"\\u7889\\u53fc\\u96d5\\u51cb\\u5201\\u6389\\u540a\\u9493\\u8c03\\u8f7a\\u94de\\u8729\\u7c9c\\u8c82\", \"die\": \"\\u8dcc\\u7239\\u789f\\u8776\\u8fed\\u8c0d\\u53e0\\u4f5a\\u57a4\\u581e\\u63f2\\u558b\\u6e2b\\u8f76\\u7252\\u74de\\u8936\\u800b\\u8e40\\u9cbd\\u9cce\", \"ding\": \"\\u4e01\\u76ef\\u53ee\\u9489\\u9876\\u9f0e\\u952d\\u5b9a\\u8ba2\\u4e22\\u4ec3\\u5576\\u738e\\u815a\\u7887\\u753a\\u94e4\\u7594\\u8035\\u914a\", \"dong\": \"\\u4e1c\\u51ac\\u8463\\u61c2\\u52a8\\u680b\\u4f97\\u606b\\u51bb\\u6d1e\\u578c\\u549a\\u5cbd\\u5cd2\\u5902\\u6c21\\u80e8\\u80f4\\u7850\\u9e2b\", \"dou\": \"\\u515c\\u6296\\u6597\\u9661\\u8c46\\u9017\\u75d8\\u8538\\u94ad\\u7aa6\\u7aac\\u86aa\\u7bfc\\u9161\", \"du\": \"\\u90fd\\u7763\\u6bd2\\u728a\\u72ec\\u8bfb\\u5835\\u7779\\u8d4c\\u675c\\u9540\\u809a\\u5ea6\\u6e21\\u5992\\u828f\\u561f\\u6e0e\\u691f\\u6a50\\u724d\\u8839\\u7b03\\u9ad1\\u9ee9\", \"duan\": \"\\u7aef\\u77ed\\u953b\\u6bb5\\u65ad\\u7f0e\\u5f56\\u6934\\u7145\\u7c16\", \"dui\": \"\\u5806\\u5151\\u961f\\u5bf9\\u603c\\u619d\\u7893\", \"dun\": \"\\u58a9\\u5428\\u8e72\\u6566\\u987f\\u56e4\\u949d\\u76fe\\u9041\\u7096\\u7818\\u7905\\u76f9\\u9566\\u8db8\", \"duo\": \"\\u6387\\u54c6\\u591a\\u593a\\u579b\\u8eb2\\u6735\\u8dfa\\u8235\\u5241\\u60f0\\u5815\\u5484\\u54da\\u7f0d\\u67c1\\u94ce\\u88f0\\u8e31\", \"e\": \"\\u86fe\\u5ce8\\u9e45\\u4fc4\\u989d\\u8bb9\\u5a25\\u6076\\u5384\\u627c\\u904f\\u9102\\u997f\\u5669\\u8c14\\u57a9\\u57ad\\u82ca\\u83aa\\u843c\\u5443\\u6115\\u5c59\\u5a40\\u8f6d\\u66f7\\u816d\\u786a\\u9507\\u9537\\u9e57\\u989a\\u9cc4\", \"en\": \"\\u6069\\u84bd\\u6441\\u5514\\u55ef\", \"er\": \"\\u800c\\u513f\\u8033\\u5c14\\u9975\\u6d31\\u4e8c\\u8d30\\u8fe9\\u73e5\\u94d2\\u9e38\\u9c95\", \"fa\": \"\\u53d1\\u7f5a\\u7b4f\\u4f10\\u4e4f\\u9600\\u6cd5\\u73d0\\u57a1\\u781d\", \"fan\": \"\\u85e9\\u5e06\\u756a\\u7ffb\\u6a0a\\u77fe\\u9492\\u7e41\\u51e1\\u70e6\\u53cd\\u8fd4\\u8303\\u8d29\\u72af\\u996d\\u6cdb\\u8629\\u5e61\\u72ad\\u68b5\\u6535\\u71d4\\u7548\\u8e6f\", \"fang\": \"\\u574a\\u82b3\\u65b9\\u80aa\\u623f\\u9632\\u59a8\\u4eff\\u8bbf\\u7eba\\u653e\\u531a\\u90a1\\u5f77\\u94ab\\u822b\\u9c82\", \"fei\": \"\\u83f2\\u975e\\u5561\\u98de\\u80a5\\u532a\\u8bfd\\u5420\\u80ba\\u5e9f\\u6cb8\\u8d39\\u82be\\u72d2\\u60b1\\u6ddd\\u5983\\u7ecb\\u7eef\\u69a7\\u8153\\u6590\\u6249\\u7953\\u7829\\u9544\\u75f1\\u871a\\u7bda\\u7fe1\\u970f\\u9cb1\", \"fen\": \"\\u82ac\\u915a\\u5429\\u6c1b\\u5206\\u7eb7\\u575f\\u711a\\u6c7e\\u7c89\\u594b\\u4efd\\u5fff\\u6124\\u7caa\\u507e\\u7035\\u68fc\\u610d\\u9cbc\\u9f22\", \"feng\": \"\\u4e30\\u5c01\\u67ab\\u8702\\u5cf0\\u950b\\u98ce\\u75af\\u70fd\\u9022\\u51af\\u7f1d\\u8bbd\\u5949\\u51e4\\u4ff8\\u9146\\u8451\\u6ca3\\u781c\", \"fu\": \"\\u4f5b\\u5426\\u592b\\u6577\\u80a4\\u5b75\\u6276\\u62c2\\u8f90\\u5e45\\u6c1f\\u7b26\\u4f0f\\u4fd8\\u670d\\u6d6e\\u6daa\\u798f\\u88b1\\u5f17\\u752b\\u629a\\u8f85\\u4fef\\u91dc\\u65a7\\u812f\\u8151\\u5e9c\\u8150\\u8d74\\u526f\\u8986\\u8d4b\\u590d\\u5085\\u4ed8\\u961c\\u7236\\u8179\\u8d1f\\u5bcc\\u8ba3\\u9644\\u5987\\u7f1a\\u5490\\u5310\\u51eb\\u90db\\u8299\\u82fb\\u832f\\u83a9\\u83d4\\u544b\\u5e5e\\u6ecf\\u8274\\u5b5a\\u9a78\\u7ec2\\u6874\\u8d59\\u9efb\\u9efc\\u7f58\\u7a03\\u99a5\\u864d\\u86a8\\u8709\\u8760\\u876e\\u9eb8\\u8dba\\u8dd7\\u9cc6\", \"ga\": \"\\u5676\\u560e\\u86e4\\u5c2c\\u5477\\u5c15\\u5c1c\\u65ee\\u9486\", \"gai\": \"\\u8be5\\u6539\\u6982\\u9499\\u76d6\\u6e89\\u4e10\\u9654\\u5793\\u6224\\u8d45\\u80f2\", \"gan\": \"\\u5e72\\u7518\\u6746\\u67d1\\u7aff\\u809d\\u8d76\\u611f\\u79c6\\u6562\\u8d63\\u5769\\u82f7\\u5c34\\u64c0\\u6cd4\\u6de6\\u6f89\\u7ec0\\u6a44\\u65f0\\u77f8\\u75b3\\u9150\", \"gang\": \"\\u5188\\u521a\\u94a2\\u7f38\\u809b\\u7eb2\\u5c97\\u6e2f\\u6206\\u7f61\\u9883\\u7b7b\", \"gong\": \"\\u6760\\u5de5\\u653b\\u529f\\u606d\\u9f9a\\u4f9b\\u8eac\\u516c\\u5bab\\u5f13\\u5de9\\u6c5e\\u62f1\\u8d21\\u5171\\u857b\\u5efe\\u54a3\\u73d9\\u80b1\\u86a3\\u86e9\\u89e5\", \"gao\": \"\\u7bd9\\u768b\\u9ad8\\u818f\\u7f94\\u7cd5\\u641e\\u9550\\u7a3f\\u544a\\u777e\\u8bf0\\u90dc\\u84bf\\u85c1\\u7f1f\\u69d4\\u69c1\\u6772\\u9506\", \"ge\": \"\\u54e5\\u6b4c\\u6401\\u6208\\u9e3d\\u80f3\\u7599\\u5272\\u9769\\u845b\\u683c\\u9601\\u9694\\u94ec\\u4e2a\\u5404\\u9b32\\u4ee1\\u54ff\\u5865\\u55dd\\u7ea5\\u643f\\u8188\\u784c\\u94ea\\u9549\\u88bc\\u988c\\u867c\\u8238\\u9abc\\u9ac2\", \"gei\": \"\\u7ed9\", \"gen\": \"\\u6839\\u8ddf\\u4e98\\u831b\\u54cf\\u826e\", \"geng\": \"\\u8015\\u66f4\\u5e9a\\u7fb9\\u57c2\\u803f\\u6897\\u54fd\\u8d53\\u9ca0\", \"gou\": \"\\u94a9\\u52fe\\u6c9f\\u82df\\u72d7\\u57a2\\u6784\\u8d2d\\u591f\\u4f5d\\u8bdf\\u5ca3\\u9058\\u5abe\\u7f11\\u89cf\\u5f40\\u9e32\\u7b31\\u7bdd\\u97b2\", \"gu\": \"\\u8f9c\\u83c7\\u5495\\u7b8d\\u4f30\\u6cbd\\u5b64\\u59d1\\u9f13\\u53e4\\u86ca\\u9aa8\\u8c37\\u80a1\\u6545\\u987e\\u56fa\\u96c7\\u560f\\u8bc2\\u83f0\\u54cc\\u5d2e\\u6c69\\u688f\\u8f71\\u726f\\u727f\\u80cd\\u81cc\\u6bc2\\u77bd\\u7f5f\\u94b4\\u9522\\u74e0\\u9e2a\\u9e44\\u75fc\\u86c4\\u9164\\u89da\\u9cb4\\u9ab0\\u9e58\", \"gua\": \"\\u522e\\u74dc\\u5250\\u5be1\\u6302\\u8902\\u5366\\u8bd6\\u5471\\u681d\\u9e39\", \"guai\": \"\\u4e56\\u62d0\\u602a\\u54d9\", \"guan\": \"\\u68fa\\u5173\\u5b98\\u51a0\\u89c2\\u7ba1\\u9986\\u7f50\\u60ef\\u704c\\u8d2f\\u500c\\u839e\\u63bc\\u6dab\\u76e5\\u9e73\\u9ccf\", \"guang\": \"\\u5149\\u5e7f\\u901b\\u72b7\\u6844\\u80f1\\u7592\", \"gui\": \"\\u7470\\u89c4\\u572d\\u7845\\u5f52\\u9f9f\\u95fa\\u8f68\\u9b3c\\u8be1\\u7678\\u6842\\u67dc\\u8dea\\u8d35\\u523d\\u5326\\u523f\\u5e8b\\u5b84\\u59ab\\u6867\\u7085\\u6677\\u7688\\u7c0b\\u9c91\\u9cdc\", \"gun\": \"\\u8f8a\\u6eda\\u68cd\\u4e28\\u886e\\u7ef2\\u78d9\\u9ca7\", \"guo\": \"\\u9505\\u90ed\\u56fd\\u679c\\u88f9\\u8fc7\\u9998\\u8803\\u57da\\u63b4\\u5459\\u56d7\\u5e3c\\u5d1e\\u7313\\u6901\\u8662\\u951e\\u8052\\u872e\\u873e\\u8748\", \"ha\": \"\\u54c8\", \"hai\": \"\\u9ab8\\u5b69\\u6d77\\u6c26\\u4ea5\\u5bb3\\u9a87\\u54b4\\u55e8\\u988f\\u91a2\", \"han\": \"\\u9163\\u61a8\\u90af\\u97e9\\u542b\\u6db5\\u5bd2\\u51fd\\u558a\\u7f55\\u7ff0\\u64bc\\u634d\\u65f1\\u61be\\u608d\\u710a\\u6c57\\u6c49\\u9097\\u83e1\\u6496\\u961a\\u701a\\u6657\\u7113\\u9894\\u86b6\\u9f3e\", \"hen\": \"\\u592f\\u75d5\\u5f88\\u72e0\\u6068\", \"hang\": \"\\u676d\\u822a\\u6c86\\u7ed7\\u73e9\\u6841\", \"hao\": \"\\u58d5\\u568e\\u8c6a\\u6beb\\u90dd\\u597d\\u8017\\u53f7\\u6d69\\u8585\\u55e5\\u5686\\u6fe0\\u704f\\u660a\\u7693\\u98a2\\u869d\", \"he\": \"\\u5475\\u559d\\u8377\\u83cf\\u6838\\u79be\\u548c\\u4f55\\u5408\\u76d2\\u8c89\\u9602\\u6cb3\\u6db8\\u8d6b\\u8910\\u9e64\\u8d3a\\u8bc3\\u52be\\u58d1\\u85ff\\u55d1\\u55ec\\u9616\\u76cd\\u86b5\\u7fee\", \"hei\": \"\\u563f\\u9ed1\", \"heng\": \"\\u54fc\\u4ea8\\u6a2a\\u8861\\u6052\\u8a07\\u8605\", \"hong\": \"\\u8f70\\u54c4\\u70d8\\u8679\\u9e3f\\u6d2a\\u5b8f\\u5f18\\u7ea2\\u9ec9\\u8ba7\\u836d\\u85a8\\u95f3\\u6cd3\", \"hou\": \"\\u5589\\u4faf\\u7334\\u543c\\u539a\\u5019\\u540e\\u5820\\u5f8c\\u9005\\u760a\\u7bcc\\u7cc7\\u9c8e\\u9aba\", \"hu\": \"\\u547c\\u4e4e\\u5ffd\\u745a\\u58f6\\u846b\\u80e1\\u8774\\u72d0\\u7cca\\u6e56\\u5f27\\u864e\\u552c\\u62a4\\u4e92\\u6caa\\u6237\\u51b1\\u553f\\u56eb\\u5cb5\\u7322\\u6019\\u60da\\u6d52\\u6ef9\\u7425\\u69f2\\u8f77\\u89f3\\u70c0\\u7173\\u623d\\u6248\\u795c\\u9e55\\u9e71\\u7b0f\\u9190\\u659b\", \"hua\": \"\\u82b1\\u54d7\\u534e\\u733e\\u6ed1\\u753b\\u5212\\u5316\\u8bdd\\u5290\\u6d4d\\u9a85\\u6866\\u94e7\\u7a1e\", \"huai\": \"\\u69d0\\u5f8a\\u6000\\u6dee\\u574f\\u8fd8\\u8e1d\", \"huan\": \"\\u6b22\\u73af\\u6853\\u7f13\\u6362\\u60a3\\u5524\\u75ea\\u8c62\\u7115\\u6da3\\u5ba6\\u5e7b\\u90c7\\u5942\\u57b8\\u64d0\\u571c\\u6d39\\u6d63\\u6f36\\u5bf0\\u902d\\u7f33\\u953e\\u9ca9\\u9b1f\", \"huang\": \"\\u8352\\u614c\\u9ec4\\u78fa\\u8757\\u7c27\\u7687\\u51f0\\u60f6\\u714c\\u6643\\u5e4c\\u604d\\u8c0e\\u968d\\u5fa8\\u6e5f\\u6f62\\u9051\\u749c\\u8093\\u7640\\u87e5\\u7bc1\\u9cc7\", \"hui\": \"\\u7070\\u6325\\u8f89\\u5fbd\\u6062\\u86d4\\u56de\\u6bc1\\u6094\\u6167\\u5349\\u60e0\\u6666\\u8d3f\\u79fd\\u4f1a\\u70e9\\u6c47\\u8bb3\\u8bf2\\u7ed8\\u8bd9\\u8334\\u835f\\u8559\\u54d5\\u5599\\u96b3\\u6d04\\u5f57\\u7f0b\\u73f2\\u6656\\u605a\\u867a\\u87ea\\u9ebe\", \"hun\": \"\\u8364\\u660f\\u5a5a\\u9b42\\u6d51\\u6df7\\u8be8\\u9984\\u960d\\u6eb7\\u7f17\", \"huo\": \"\\u8c41\\u6d3b\\u4f19\\u706b\\u83b7\\u6216\\u60d1\\u970d\\u8d27\\u7978\\u6509\\u56af\\u5925\\u94ac\\u952a\\u956c\\u8020\\u8816\", \"ji\": \"\\u51fb\\u573e\\u57fa\\u673a\\u7578\\u7a3d\\u79ef\\u7b95\\u808c\\u9965\\u8ff9\\u6fc0\\u8ba5\\u9e21\\u59ec\\u7ee9\\u7f09\\u5409\\u6781\\u68d8\\u8f91\\u7c4d\\u96c6\\u53ca\\u6025\\u75be\\u6c72\\u5373\\u5ac9\\u7ea7\\u6324\\u51e0\\u810a\\u5df1\\u84df\\u6280\\u5180\\u5b63\\u4f0e\\u796d\\u5242\\u60b8\\u6d4e\\u5bc4\\u5bc2\\u8ba1\\u8bb0\\u65e2\\u5fcc\\u9645\\u5993\\u7ee7\\u7eaa\\u5c45\\u4e0c\\u4e69\\u525e\\u4f76\\u4f74\\u8114\\u58bc\\u82a8\\u82b0\\u8401\\u84ba\\u857a\\u638e\\u53fd\\u54ad\\u54dc\\u5527\\u5c8c\\u5d74\\u6d0e\\u5f50\\u5c50\\u9aa5\\u757f\\u7391\\u696b\\u6b9b\\u621f\\u6222\\u8d4d\\u89ca\\u7284\\u9f51\\u77f6\\u7f81\\u5d47\\u7a37\\u7620\\u7635\\u866e\\u7b08\\u7b04\\u66a8\\u8dfb\\u8dfd\\u9701\\u9c9a\\u9cab\\u9afb\\u9e82\", \"jia\": \"\\u5609\\u67b7\\u5939\\u4f73\\u5bb6\\u52a0\\u835a\\u988a\\u8d3e\\u7532\\u94be\\u5047\\u7a3c\\u4ef7\\u67b6\\u9a7e\\u5ac1\\u4f3d\\u90cf\\u62ee\\u5cac\\u6d43\\u8fe6\\u73c8\\u621b\\u80db\\u605d\\u94d7\\u9553\\u75c2\\u86f1\\u7b33\\u8888\\u8dcf\", \"jian\": \"\\u6b7c\\u76d1\\u575a\\u5c16\\u7b3a\\u95f4\\u714e\\u517c\\u80a9\\u8270\\u5978\\u7f04\\u8327\\u68c0\\u67ec\\u78b1\\u7877\\u62e3\\u6361\\u7b80\\u4fed\\u526a\\u51cf\\u8350\\u69db\\u9274\\u8df5\\u8d31\\u89c1\\u952e\\u7bad\\u4ef6\\u5065\\u8230\\u5251\\u996f\\u6e10\\u6e85\\u6da7\\u5efa\\u50ed\\u8c0f\\u8c2b\\u83c5\\u84b9\\u641b\\u56dd\\u6e54\\u8e47\\u8b07\\u7f23\\u67a7\\u67d9\\u6957\\u620b\\u622c\\u726e\\u728d\\u6bfd\\u8171\\u7751\\u950f\\u9e63\\u88e5\\u7b15\\u7bb4\\u7fe6\\u8dbc\\u8e3a\\u9ca3\\u97af\", \"jiang\": \"\\u50f5\\u59dc\\u5c06\\u6d46\\u6c5f\\u7586\\u848b\\u6868\\u5956\\u8bb2\\u5320\\u9171\\u964d\\u8333\\u6d1a\\u7edb\\u7f30\\u729f\\u7913\\u8029\\u7ce8\\u8c47\", \"jiao\": \"\\u8549\\u6912\\u7901\\u7126\\u80f6\\u4ea4\\u90ca\\u6d47\\u9a84\\u5a07\\u56bc\\u6405\\u94f0\\u77eb\\u4fa5\\u811a\\u72e1\\u89d2\\u997a\\u7f34\\u7ede\\u527f\\u6559\\u9175\\u8f7f\\u8f83\\u53eb\\u4f7c\\u50ec\\u832d\\u6322\\u564d\\u5ce4\\u5fbc\\u59e3\\u7e9f\\u656b\\u768e\\u9e6a\\u86df\\u91ae\\u8de4\\u9c9b\", \"jie\": \"\\u7a96\\u63ed\\u63a5\\u7686\\u79f8\\u8857\\u9636\\u622a\\u52ab\\u8282\\u6854\\u6770\\u6377\\u776b\\u7aed\\u6d01\\u7ed3\\u89e3\\u59d0\\u6212\\u85c9\\u82a5\\u754c\\u501f\\u4ecb\\u75a5\\u8beb\\u5c4a\\u5048\\u8ba6\\u8bd8\\u5588\\u55df\\u736c\\u5a55\\u5b51\\u6840\\u7352\\u78a3\\u9534\\u7596\\u88b7\\u9889\\u86a7\\u7faf\\u9c92\\u9ab1\\u9aeb\", \"jin\": \"\\u5dfe\\u7b4b\\u65a4\\u91d1\\u4eca\\u6d25\\u895f\\u7d27\\u9526\\u4ec5\\u8c28\\u8fdb\\u9773\\u664b\\u7981\\u8fd1\\u70ec\\u6d78\\u5c3d\\u537a\\u8369\\u5807\\u5664\\u9991\\u5ed1\\u5997\\u7f19\\u747e\\u69ff\\u8d46\\u89d0\\u9485\\u9513\\u887f\\u77dc\", \"jing\": \"\\u52b2\\u8346\\u5162\\u830e\\u775b\\u6676\\u9cb8\\u4eac\\u60ca\\u7cbe\\u7cb3\\u7ecf\\u4e95\\u8b66\\u666f\\u9888\\u9759\\u5883\\u656c\\u955c\\u5f84\\u75c9\\u9756\\u7adf\\u7ade\\u51c0\\u522d\\u5106\\u9631\\u83c1\\u734d\\u61ac\\u6cfe\\u8ff3\\u5f2a\\u5a67\\u80bc\\u80eb\\u8148\\u65cc\", \"jiong\": \"\\u70af\\u7a98\\u5182\\u8fe5\\u6243\", \"jiu\": \"\\u63ea\\u7a76\\u7ea0\\u7396\\u97ed\\u4e45\\u7078\\u4e5d\\u9152\\u53a9\\u6551\\u65e7\\u81fc\\u8205\\u548e\\u5c31\\u759a\\u50e6\\u557e\\u9604\\u67e9\\u6855\\u9e6b\\u8d73\\u9b0f\", \"ju\": \"\\u97a0\\u62d8\\u72d9\\u75bd\\u9a79\\u83ca\\u5c40\\u5480\\u77e9\\u4e3e\\u6cae\\u805a\\u62d2\\u636e\\u5de8\\u5177\\u8ddd\\u8e1e\\u952f\\u4ff1\\u53e5\\u60e7\\u70ac\\u5267\\u5028\\u8bb5\\u82e3\\u82f4\\u8392\\u63ac\\u907d\\u5c66\\u741a\\u67b8\\u6910\\u6998\\u6989\\u6a58\\u728b\\u98d3\\u949c\\u9514\\u7aad\\u88fe\\u8d84\\u91b5\\u8e3d\\u9f83\\u96ce\\u97ab\", \"juan\": \"\\u6350\\u9e43\\u5a1f\\u5026\\u7737\\u5377\\u7ee2\\u9104\\u72f7\\u6d93\\u684a\\u8832\\u9529\\u954c\\u96bd\", \"jue\": \"\\u6485\\u652b\\u6289\\u6398\\u5014\\u7235\\u89c9\\u51b3\\u8bc0\\u7edd\\u53a5\\u5282\\u8c32\\u77cd\\u8568\\u5658\\u5d1b\\u7357\\u5b53\\u73cf\\u6877\\u6a5b\\u721d\\u9562\\u8e76\\u89d6\", \"jun\": \"\\u5747\\u83cc\\u94a7\\u519b\\u541b\\u5cfb\\u4fca\\u7ae3\\u6d5a\\u90e1\\u9a8f\\u6343\\u72fb\\u76b2\\u7b60\\u9e87\", \"ka\": \"\\u5580\\u5496\\u5361\\u4f67\\u5494\\u80e9\", \"ke\": \"\\u54af\\u5777\\u82db\\u67ef\\u68f5\\u78d5\\u9897\\u79d1\\u58f3\\u54b3\\u53ef\\u6e34\\u514b\\u523b\\u5ba2\\u8bfe\\u5ca2\\u606a\\u6e98\\u9a92\\u7f02\\u73c2\\u8f72\\u6c2a\\u778c\\u94b6\\u75b4\\u7aa0\\u874c\\u9ac1\", \"kai\": \"\\u5f00\\u63e9\\u6977\\u51ef\\u6168\\u5240\\u57b2\\u8488\\u5ffe\\u607a\\u94e0\\u950e\", \"kan\": \"\\u520a\\u582a\\u52d8\\u574e\\u780d\\u770b\\u4f83\\u51f5\\u83b0\\u83b6\\u6221\\u9f9b\\u77b0\", \"kang\": \"\\u5eb7\\u6177\\u7ce0\\u625b\\u6297\\u4ea2\\u7095\\u5751\\u4f09\\u95f6\\u94aa\", \"kao\": \"\\u8003\\u62f7\\u70e4\\u9760\\u5c3b\\u6832\\u7292\\u94d0\", \"ken\": \"\\u80af\\u5543\\u57a6\\u6073\\u57a0\\u88c9\\u9880\", \"keng\": \"\\u542d\\u5fd0\\u94ff\", \"kong\": \"\\u7a7a\\u6050\\u5b54\\u63a7\\u5025\\u5d06\\u7b9c\", \"kou\": \"\\u62a0\\u53e3\\u6263\\u5bc7\\u82a4\\u853b\\u53e9\\u770d\\u7b58\", \"ku\": \"\\u67af\\u54ed\\u7a9f\\u82e6\\u9177\\u5e93\\u88e4\\u5233\\u5800\\u55be\\u7ed4\\u9ab7\", \"kua\": \"\\u5938\\u57ae\\u630e\\u8de8\\u80ef\\u4f89\", \"kuai\": \"\\u5757\\u7b77\\u4fa9\\u5feb\\u84af\\u90d0\\u8489\\u72ef\\u810d\", \"kuan\": \"\\u5bbd\\u6b3e\\u9acb\", \"kuang\": \"\\u5321\\u7b50\\u72c2\\u6846\\u77ff\\u7736\\u65f7\\u51b5\\u8bd3\\u8bf3\\u909d\\u5739\\u593c\\u54d0\\u7ea9\\u8d36\", \"kui\": \"\\u4e8f\\u76d4\\u5cbf\\u7aa5\\u8475\\u594e\\u9b41\\u5080\\u9988\\u6127\\u6e83\\u9997\\u532e\\u5914\\u9697\\u63c6\\u55b9\\u559f\\u609d\\u6126\\u9615\\u9035\\u668c\\u777d\\u8069\\u8770\\u7bd1\\u81fe\\u8dec\", \"kun\": \"\\u5764\\u6606\\u6346\\u56f0\\u6083\\u9603\\u7428\\u951f\\u918c\\u9cb2\\u9ae1\", \"kuo\": \"\\u62ec\\u6269\\u5ed3\\u9614\\u86de\", \"la\": \"\\u5783\\u62c9\\u5587\\u8721\\u814a\\u8fa3\\u5566\\u524c\\u647a\\u908b\\u65ef\\u782c\\u760c\", \"lai\": \"\\u83b1\\u6765\\u8d56\\u5d03\\u5f95\\u6d9e\\u6fd1\\u8d49\\u7750\\u94fc\\u765e\\u7c41\", \"lan\": \"\\u84dd\\u5a6a\\u680f\\u62e6\\u7bee\\u9611\\u5170\\u6f9c\\u8c30\\u63fd\\u89c8\\u61d2\\u7f06\\u70c2\\u6ee5\\u5549\\u5c9a\\u61d4\\u6f24\\u6984\\u6593\\u7f71\\u9567\\u8934\", \"lang\": \"\\u7405\\u6994\\u72fc\\u5eca\\u90ce\\u6717\\u6d6a\\u83a8\\u8497\\u5577\\u9606\\u9512\\u7a02\\u8782\", \"lao\": \"\\u635e\\u52b3\\u7262\\u8001\\u4f6c\\u59e5\\u916a\\u70d9\\u6d9d\\u5520\\u5d02\\u6833\\u94d1\\u94f9\\u75e8\\u91aa\", \"le\": \"\\u52d2\\u4e50\\u808b\\u4ec2\\u53fb\\u561e\\u6cd0\\u9cd3\", \"lei\": \"\\u96f7\\u956d\\u857e\\u78ca\\u7d2f\\u5121\\u5792\\u64c2\\u7c7b\\u6cea\\u7fb8\\u8bd4\\u837d\\u54a7\\u6f2f\\u5ad8\\u7f27\\u6a91\\u8012\\u9179\", \"ling\": \"\\u68f1\\u51b7\\u62ce\\u73b2\\u83f1\\u96f6\\u9f84\\u94c3\\u4f36\\u7f9a\\u51cc\\u7075\\u9675\\u5cad\\u9886\\u53e6\\u4ee4\\u9143\\u5844\\u82d3\\u5464\\u56f9\\u6ce0\\u7eeb\\u67c3\\u68c2\\u74f4\\u8046\\u86c9\\u7fce\\u9cae\", \"leng\": \"\\u695e\\u6123\", \"li\": \"\\u5398\\u68a8\\u7281\\u9ece\\u7bf1\\u72f8\\u79bb\\u6f13\\u7406\\u674e\\u91cc\\u9ca4\\u793c\\u8389\\u8354\\u540f\\u6817\\u4e3d\\u5389\\u52b1\\u783e\\u5386\\u5229\\u5088\\u4f8b\\u4fd0\\u75e2\\u7acb\\u7c92\\u6ca5\\u96b6\\u529b\\u7483\\u54e9\\u4fea\\u4fda\\u90e6\\u575c\\u82c8\\u8385\\u84e0\\u85dc\\u6369\\u5456\\u5533\\u55b1\\u7301\\u6ea7\\u6fa7\\u9026\\u5a0c\\u5ae0\\u9a8a\\u7f21\\u73de\\u67a5\\u680e\\u8f79\\u623e\\u783a\\u8a48\\u7f79\\u9502\\u9e42\\u75a0\\u75ac\\u86ce\\u870a\\u8821\\u7b20\\u7be5\\u7c9d\\u91b4\\u8dde\\u96f3\\u9ca1\\u9ce2\\u9ee7\", \"lian\": \"\\u4fe9\\u8054\\u83b2\\u8fde\\u9570\\u5ec9\\u601c\\u6d9f\\u5e18\\u655b\\u8138\\u94fe\\u604b\\u70bc\\u7ec3\\u631b\\u8539\\u5941\\u6f4b\\u6fc2\\u5a08\\u740f\\u695d\\u6b93\\u81c1\\u81a6\\u88e2\\u880a\\u9ca2\", \"liang\": \"\\u7cae\\u51c9\\u6881\\u7cb1\\u826f\\u4e24\\u8f86\\u91cf\\u667e\\u4eae\\u8c05\\u589a\\u690b\\u8e09\\u9753\\u9b49\", \"liao\": \"\\u64a9\\u804a\\u50da\\u7597\\u71ce\\u5be5\\u8fbd\\u6f66\\u4e86\\u6482\\u9563\\u5ed6\\u6599\\u84fc\\u5c25\\u5639\\u7360\\u5bee\\u7f2d\\u948c\\u9e69\\u8022\", \"lie\": \"\\u5217\\u88c2\\u70c8\\u52a3\\u730e\\u51bd\\u57d2\\u6d0c\\u8d94\\u8e90\\u9b23\", \"lin\": \"\\u7433\\u6797\\u78f7\\u9716\\u4e34\\u90bb\\u9cde\\u6dcb\\u51db\\u8d41\\u541d\\u853a\\u5d99\\u5eea\\u9074\\u6aa9\\u8f9a\\u77b5\\u7cbc\\u8e8f\\u9e9f\", \"liu\": \"\\u6e9c\\u7409\\u69b4\\u786b\\u998f\\u7559\\u5218\\u7624\\u6d41\\u67f3\\u516d\\u62a1\\u507b\\u848c\\u6cd6\\u6d4f\\u905b\\u9a9d\\u7efa\\u65d2\\u7198\\u950d\\u954f\\u9e68\\u938f\", \"long\": \"\\u9f99\\u804b\\u5499\\u7b3c\\u7abf\\u9686\\u5784\\u62e2\\u9647\\u5f04\\u5785\\u830f\\u6cf7\\u73d1\\u680a\\u80e7\\u783b\\u7643\", \"lou\": \"\\u697c\\u5a04\\u6402\\u7bd3\\u6f0f\\u964b\\u55bd\\u5d5d\\u9542\\u7618\\u8027\\u877c\\u9ac5\", \"lu\": \"\\u82a6\\u5362\\u9885\\u5e90\\u7089\\u63b3\\u5364\\u864f\\u9c81\\u9e93\\u788c\\u9732\\u8def\\u8d42\\u9e7f\\u6f5e\\u7984\\u5f55\\u9646\\u622e\\u5786\\u6445\\u64b8\\u565c\\u6cf8\\u6e0c\\u6f09\\u7490\\u680c\\u6a79\\u8f73\\u8f82\\u8f98\\u6c07\\u80ea\\u9565\\u9e2c\\u9e6d\\u7c0f\\u823b\\u9c88\", \"lv\": \"\\u9a74\\u5415\\u94dd\\u4fa3\\u65c5\\u5c65\\u5c61\\u7f15\\u8651\\u6c2f\\u5f8b\\u7387\\u6ee4\\u7eff\\u634b\\u95fe\\u6988\\u8182\\u7a06\\u891b\", \"luan\": \"\\u5ce6\\u5b6a\\u6ee6\\u5375\\u4e71\\u683e\\u9e3e\\u92ae\", \"lue\": \"\\u63a0\\u7565\\u950a\", \"lun\": \"\\u8f6e\\u4f26\\u4ed1\\u6ca6\\u7eb6\\u8bba\\u56f5\", \"luo\": \"\\u841d\\u87ba\\u7f57\\u903b\\u9523\\u7ba9\\u9aa1\\u88f8\\u843d\\u6d1b\\u9a86\\u7edc\\u502e\\u8366\\u645e\\u7321\\u6cfa\\u6924\\u8136\\u9559\\u7630\\u96d2\", \"ma\": \"\\u5988\\u9ebb\\u739b\\u7801\\u8682\\u9a6c\\u9a82\\u561b\\u5417\\u551b\\u72b8\\u5b37\\u6769\\u9ebd\", \"mai\": \"\\u57cb\\u4e70\\u9ea6\\u5356\\u8fc8\\u8109\\u52a2\\u836c\\u54aa\\u973e\", \"man\": \"\\u7792\\u9992\\u86ee\\u6ee1\\u8513\\u66fc\\u6162\\u6f2b\\u8c29\\u5881\\u5e54\\u7f26\\u71b3\\u9558\\u989f\\u87a8\\u9cd7\\u9794\", \"mang\": \"\\u8292\\u832b\\u76f2\\u5fd9\\u83bd\\u9099\\u6f2d\\u6726\\u786d\\u87d2\", \"meng\": \"\\u6c13\\u840c\\u8499\\u6aac\\u76df\\u9530\\u731b\\u68a6\\u5b5f\\u52d0\\u750d\\u77a2\\u61f5\\u791e\\u867b\\u8722\\u8813\\u824b\\u8268\\u9efe\", \"miao\": \"\\u732b\\u82d7\\u63cf\\u7784\\u85d0\\u79d2\\u6e3a\\u5e99\\u5999\\u55b5\\u9088\\u7f08\\u7f2a\\u676a\\u6dfc\\u7707\\u9e4b\\u8731\", \"mao\": \"\\u8305\\u951a\\u6bdb\\u77db\\u94c6\\u536f\\u8302\\u5192\\u5e3d\\u8c8c\\u8d38\\u4f94\\u88a4\\u52d6\\u8306\\u5cc1\\u7441\\u6634\\u7266\\u8004\\u65c4\\u61cb\\u7780\\u86d1\\u8765\\u87ca\\u9ae6\", \"me\": \"\\u4e48\", \"mei\": \"\\u73ab\\u679a\\u6885\\u9176\\u9709\\u7164\\u6ca1\\u7709\\u5a92\\u9541\\u6bcf\\u7f8e\\u6627\\u5bd0\\u59b9\\u5a9a\\u5776\\u8393\\u5d4b\\u7338\\u6d7c\\u6e44\\u6963\\u9545\\u9e5b\\u8882\\u9b45\", \"men\": \"\\u95e8\\u95f7\\u4eec\\u626a\\u739f\\u7116\\u61d1\\u9494\", \"mi\": \"\\u772f\\u919a\\u9761\\u7cdc\\u8ff7\\u8c1c\\u5f25\\u7c73\\u79d8\\u89c5\\u6ccc\\u871c\\u5bc6\\u5e42\\u8288\\u5196\\u8c27\\u863c\\u5627\\u7315\\u736f\\u6c68\\u5b93\\u5f2d\\u8112\\u6549\\u7cf8\\u7e3b\\u9e8b\", \"mian\": \"\\u68c9\\u7720\\u7ef5\\u5195\\u514d\\u52c9\\u5a29\\u7f05\\u9762\\u6c94\\u6e4e\\u817c\\u7704\", \"mie\": \"\\u8511\\u706d\\u54a9\\u881b\\u7bfe\", \"min\": \"\\u6c11\\u62bf\\u76bf\\u654f\\u60af\\u95fd\\u82e0\\u5cb7\\u95f5\\u6cef\\u73c9\", \"ming\": \"\\u660e\\u879f\\u9e23\\u94ed\\u540d\\u547d\\u51a5\\u8317\\u6e9f\\u669d\\u7791\\u9169\", \"miu\": \"\\u8c2c\", \"mo\": \"\\u6478\\u6479\\u8611\\u6a21\\u819c\\u78e8\\u6469\\u9b54\\u62b9\\u672b\\u83ab\\u58a8\\u9ed8\\u6cab\\u6f20\\u5bde\\u964c\\u8c1f\\u8309\\u84e6\\u998d\\u5aeb\\u9546\\u79e3\\u763c\\u8031\\u87c6\\u8c8a\\u8c98\", \"mou\": \"\\u8c0b\\u725f\\u67d0\\u53b6\\u54de\\u5a7a\\u7738\\u936a\", \"mu\": \"\\u62c7\\u7261\\u4ea9\\u59c6\\u6bcd\\u5893\\u66ae\\u5e55\\u52df\\u6155\\u6728\\u76ee\\u7766\\u7267\\u7a46\\u4eeb\\u82dc\\u5452\\u6c90\\u6bea\\u94bc\", \"na\": \"\\u62ff\\u54ea\\u5450\\u94a0\\u90a3\\u5a1c\\u7eb3\\u5185\\u637a\\u80ad\\u954e\\u8872\\u7bac\", \"nai\": \"\\u6c16\\u4e43\\u5976\\u8010\\u5948\\u9f10\\u827f\\u8418\\u67f0\", \"nan\": \"\\u5357\\u7537\\u96be\\u56ca\\u5583\\u56e1\\u6960\\u8169\\u877b\\u8d67\", \"nao\": \"\\u6320\\u8111\\u607c\\u95f9\\u5b6c\\u57b4\\u7331\\u7459\\u7847\\u94d9\\u86f2\", \"ne\": \"\\u6dd6\\u5462\\u8bb7\", \"nei\": \"\\u9981\", \"nen\": \"\\u5ae9\\u80fd\\u6798\\u6041\", \"ni\": \"\\u59ae\\u9713\\u502a\\u6ce5\\u5c3c\\u62df\\u4f60\\u533f\\u817b\\u9006\\u6eba\\u4f32\\u576d\\u730a\\u6029\\u6ee0\\u6635\\u65ce\\u7962\\u615d\\u7768\\u94cc\\u9cb5\", \"nian\": \"\\u852b\\u62c8\\u5e74\\u78be\\u64b5\\u637b\\u5ff5\\u5eff\\u8f87\\u9ecf\\u9c87\\u9cb6\", \"niang\": \"\\u5a18\\u917f\", \"niao\": \"\\u9e1f\\u5c3f\\u8311\\u5b32\\u8132\\u8885\", \"nie\": \"\\u634f\\u8042\\u5b7d\\u556e\\u954a\\u954d\\u6d85\\u4e5c\\u9667\\u8616\\u55eb\\u8080\\u989e\\u81ec\\u8e51\", \"nin\": \"\\u60a8\\u67e0\", \"ning\": \"\\u72de\\u51dd\\u5b81\\u62e7\\u6cde\\u4f5e\\u84e5\\u549b\\u752f\\u804d\", \"niu\": \"\\u725b\\u626d\\u94ae\\u7ebd\\u72c3\\u5ff8\\u599e\\u86b4\", \"nong\": \"\\u8113\\u6d53\\u519c\\u4fac\", \"nu\": \"\\u5974\\u52aa\\u6012\\u5476\\u5e11\\u5f29\\u80ec\\u5b65\\u9a7d\", \"nv\": \"\\u5973\\u6067\\u9495\\u8844\", \"nuan\": \"\\u6696\", \"nuenue\": \"\\u8650\", \"nue\": \"\\u759f\\u8c11\", \"nuo\": \"\\u632a\\u61e6\\u7cef\\u8bfa\\u50a9\\u6426\\u558f\\u9518\", \"ou\": \"\\u54e6\\u6b27\\u9e25\\u6bb4\\u85d5\\u5455\\u5076\\u6ca4\\u6004\\u74ef\\u8026\", \"pa\": \"\\u556a\\u8db4\\u722c\\u5e15\\u6015\\u7436\\u8469\\u7b62\", \"pai\": \"\\u62cd\\u6392\\u724c\\u5f98\\u6e43\\u6d3e\\u4ff3\\u848e\", \"pan\": \"\\u6500\\u6f58\\u76d8\\u78d0\\u76fc\\u7554\\u5224\\u53db\\u723f\\u6cee\\u88a2\\u897b\\u87e0\\u8e52\", \"pang\": \"\\u4e53\\u5e9e\\u65c1\\u802a\\u80d6\\u6ec2\\u9004\", \"pao\": \"\\u629b\\u5486\\u5228\\u70ae\\u888d\\u8dd1\\u6ce1\\u530f\\u72cd\\u5e96\\u812c\\u75b1\", \"pei\": \"\\u5478\\u80da\\u57f9\\u88f4\\u8d54\\u966a\\u914d\\u4f69\\u6c9b\\u638a\\u8f94\\u5e14\\u6de0\\u65c6\\u952b\\u9185\\u9708\", \"pen\": \"\\u55b7\\u76c6\\u6e53\", \"peng\": \"\\u7830\\u62a8\\u70f9\\u6f8e\\u5f6d\\u84ec\\u68da\\u787c\\u7bf7\\u81a8\\u670b\\u9e4f\\u6367\\u78b0\\u576f\\u580b\\u562d\\u6026\\u87db\", \"pi\": \"\\u7812\\u9739\\u6279\\u62ab\\u5288\\u7435\\u6bd7\\u5564\\u813e\\u75b2\\u76ae\\u5339\\u75de\\u50fb\\u5c41\\u8b6c\\u4e15\\u9674\\u90b3\\u90eb\\u572e\\u9f19\\u64d7\\u567c\\u5e80\\u5ab2\\u7eb0\\u6787\\u7513\\u7765\\u7f74\\u94cd\\u75e6\\u7656\\u758b\\u868d\\u8c94\", \"pian\": \"\\u7bc7\\u504f\\u7247\\u9a97\\u8c1d\\u9a88\\u728f\\u80fc\\u890a\\u7fe9\\u8e41\", \"piao\": \"\\u98d8\\u6f02\\u74e2\\u7968\\u527d\\u560c\\u5ad6\\u7f25\\u6b8d\\u779f\\u87b5\", \"pie\": \"\\u6487\\u77a5\\u4e3f\\u82e4\\u6c15\", \"pin\": \"\\u62fc\\u9891\\u8d2b\\u54c1\\u8058\\u62da\\u59d8\\u5ad4\\u6980\\u725d\\u98a6\", \"ping\": \"\\u4e52\\u576a\\u82f9\\u840d\\u5e73\\u51ed\\u74f6\\u8bc4\\u5c4f\\u4fdc\\u5a09\\u67b0\\u9c86\", \"po\": \"\\u5761\\u6cfc\\u9887\\u5a46\\u7834\\u9b44\\u8feb\\u7c95\\u53f5\\u9131\\u6ea5\\u73c0\\u948b\\u94b7\\u76a4\\u7b38\", \"pou\": \"\\u5256\\u88d2\\u8e23\", \"pu\": \"\\u6251\\u94fa\\u4ec6\\u8386\\u8461\\u83e9\\u84b2\\u57d4\\u6734\\u5703\\u666e\\u6d66\\u8c31\\u66dd\\u7011\\u530d\\u5657\\u6fee\\u749e\\u6c06\\u9564\\u9568\\u8e7c\", \"qi\": \"\\u671f\\u6b3a\\u6816\\u621a\\u59bb\\u4e03\\u51c4\\u6f06\\u67d2\\u6c8f\\u5176\\u68cb\\u5947\\u6b67\\u7566\\u5d0e\\u8110\\u9f50\\u65d7\\u7948\\u7941\\u9a91\\u8d77\\u5c82\\u4e5e\\u4f01\\u542f\\u5951\\u780c\\u5668\\u6c14\\u8fc4\\u5f03\\u6c7d\\u6ce3\\u8bab\\u4e9f\\u4e93\\u573b\\u8291\\u840b\\u847a\\u5601\\u5c7a\\u5c90\\u6c54\\u6dc7\\u9a90\\u7eee\\u742a\\u7426\\u675e\\u6864\\u69ed\\u6b39\\u797a\\u61a9\\u789b\\u86f4\\u871e\\u7da6\\u7dae\\u8dbf\\u8e4a\\u9ccd\\u9e92\", \"qia\": \"\\u6390\\u6070\\u6d3d\\u845c\", \"qian\": \"\\u7275\\u6266\\u948e\\u94c5\\u5343\\u8fc1\\u7b7e\\u4edf\\u8c26\\u4e7e\\u9ed4\\u94b1\\u94b3\\u524d\\u6f5c\\u9063\\u6d45\\u8c34\\u5811\\u5d4c\\u6b20\\u6b49\\u4f65\\u9621\\u828a\\u82a1\\u8368\\u63ae\\u5c8d\\u60ad\\u614a\\u9a9e\\u6434\\u8930\\u7f31\\u6920\\u80b7\\u6106\\u94a4\\u8654\\u7b9d\", \"qiang\": \"\\u67aa\\u545b\\u8154\\u7f8c\\u5899\\u8537\\u5f3a\\u62a2\\u5af1\\u6a2f\\u6217\\u709d\\u9516\\u9535\\u956a\\u8941\\u8723\\u7f9f\\u8deb\\u8dc4\", \"qiao\": \"\\u6a47\\u9539\\u6572\\u6084\\u6865\\u77a7\\u4e54\\u4fa8\\u5de7\\u9798\\u64ac\\u7fd8\\u5ced\\u4fcf\\u7a8d\\u5281\\u8bee\\u8c2f\\u835e\\u6100\\u6194\\u7f32\\u6a35\\u6bf3\\u7857\\u8df7\\u9792\", \"qie\": \"\\u5207\\u8304\\u4e14\\u602f\\u7a83\\u90c4\\u553c\\u60ec\\u59be\\u6308\\u9532\\u7ba7\", \"qin\": \"\\u94a6\\u4fb5\\u4eb2\\u79e6\\u7434\\u52e4\\u82b9\\u64d2\\u79bd\\u5bdd\\u6c81\\u82a9\\u84c1\\u8572\\u63ff\\u5423\\u55ea\\u5659\\u6eb1\\u6a8e\\u8793\\u887e\", \"qing\": \"\\u9752\\u8f7b\\u6c22\\u503e\\u537f\\u6e05\\u64ce\\u6674\\u6c30\\u60c5\\u9877\\u8bf7\\u5e86\\u5029\\u82d8\\u570a\\u6aa0\\u78ec\\u873b\\u7f44\\u7b90\\u8b26\\u9cad\\u9ee5\", \"qiong\": \"\\u743c\\u7a77\\u909b\\u8315\\u7a79\\u7b47\\u928e\", \"qiu\": \"\\u79cb\\u4e18\\u90b1\\u7403\\u6c42\\u56da\\u914b\\u6cc5\\u4fc5\\u6c3d\\u5def\\u827d\\u72b0\\u6e6b\\u9011\\u9052\\u6978\\u8d47\\u9e20\\u866c\\u86af\\u8764\\u88d8\\u7cd7\\u9cc5\\u9f3d\", \"qu\": \"\\u8d8b\\u533a\\u86c6\\u66f2\\u8eaf\\u5c48\\u9a71\\u6e20\\u53d6\\u5a36\\u9f8b\\u8da3\\u53bb\\u8bce\\u52ac\\u8556\\u8627\\u5c96\\u8862\\u9612\\u74a9\\u89d1\\u6c0d\\u795b\\u78f2\\u766f\\u86d0\\u883c\\u9eb4\\u77bf\\u9ee2\", \"quan\": \"\\u5708\\u98a7\\u6743\\u919b\\u6cc9\\u5168\\u75ca\\u62f3\\u72ac\\u5238\\u529d\\u8be0\\u8343\\u737e\\u609b\\u7efb\\u8f81\\u754e\\u94e8\\u8737\\u7b4c\\u9b08\", \"que\": \"\\u7f3a\\u7094\\u7638\\u5374\\u9e4a\\u69b7\\u786e\\u96c0\\u9619\\u60ab\", \"qun\": \"\\u88d9\\u7fa4\\u9021\", \"ran\": \"\\u7136\\u71c3\\u5189\\u67d3\\u82d2\\u9aef\", \"rang\": \"\\u74e4\\u58e4\\u6518\\u56b7\\u8ba9\\u79b3\\u7a70\", \"rao\": \"\\u9976\\u6270\\u7ed5\\u835b\\u5a06\\u6861\", \"ruo\": \"\\u60f9\\u82e5\\u5f31\", \"re\": \"\\u70ed\\u504c\", \"ren\": \"\\u58ec\\u4ec1\\u4eba\\u5fcd\\u97e7\\u4efb\\u8ba4\\u5203\\u598a\\u7eab\\u4ede\\u834f\\u845a\\u996a\\u8f6b\\u7a14\\u887d\", \"reng\": \"\\u6254\\u4ecd\", \"ri\": \"\\u65e5\", \"rong\": \"\\u620e\\u8338\\u84c9\\u8363\\u878d\\u7194\\u6eb6\\u5bb9\\u7ed2\\u5197\\u5d58\\u72e8\\u7f1b\\u6995\\u877e\", \"rou\": \"\\u63c9\\u67d4\\u8089\\u7cc5\\u8e42\\u97a3\", \"ru\": \"\\u8339\\u8815\\u5112\\u5b7a\\u5982\\u8fb1\\u4e73\\u6c5d\\u5165\\u8925\\u84d0\\u85b7\\u5685\\u6d33\\u6ebd\\u6fe1\\u94f7\\u8966\\u98a5\", \"ruan\": \"\\u8f6f\\u962e\\u670a\", \"rui\": \"\\u854a\\u745e\\u9510\\u82ae\\u8564\\u777f\\u868b\", \"run\": \"\\u95f0\\u6da6\", \"sa\": \"\\u6492\\u6d12\\u8428\\u5345\\u4ee8\\u6332\\u98d2\", \"sai\": \"\\u816e\\u9cc3\\u585e\\u8d5b\\u567b\", \"san\": \"\\u4e09\\u53c1\\u4f1e\\u6563\\u5f61\\u9993\\u6c35\\u6bf5\\u7cc1\\u9730\", \"sang\": \"\\u6851\\u55d3\\u4e27\\u6421\\u78c9\\u98a1\", \"sao\": \"\\u6414\\u9a9a\\u626b\\u5ac2\\u57fd\\u81ca\\u7619\\u9ccb\", \"se\": \"\\u745f\\u8272\\u6da9\\u556c\\u94e9\\u94ef\\u7a51\", \"sen\": \"\\u68ee\", \"seng\": \"\\u50e7\", \"sha\": \"\\u838e\\u7802\\u6740\\u5239\\u6c99\\u7eb1\\u50bb\\u5565\\u715e\\u810e\\u6b43\\u75e7\\u88df\\u970e\\u9ca8\", \"shai\": \"\\u7b5b\\u6652\\u917e\", \"shan\": \"\\u73ca\\u82eb\\u6749\\u5c71\\u5220\\u717d\\u886b\\u95ea\\u9655\\u64c5\\u8d61\\u81b3\\u5584\\u6c55\\u6247\\u7f2e\\u5261\\u8baa\\u912f\\u57cf\\u829f\\u6f78\\u59d7\\u9a9f\\u81bb\\u9490\\u759d\\u87ee\\u8222\\u8dda\\u9cdd\", \"shang\": \"\\u5892\\u4f24\\u5546\\u8d4f\\u664c\\u4e0a\\u5c1a\\u88f3\\u57a7\\u7ef1\\u6b87\\u71b5\\u89de\", \"shao\": \"\\u68a2\\u634e\\u7a0d\\u70e7\\u828d\\u52fa\\u97f6\\u5c11\\u54e8\\u90b5\\u7ecd\\u52ad\\u82d5\\u6f72\\u86f8\\u7b24\\u7b72\\u8244\", \"she\": \"\\u5962\\u8d4a\\u86c7\\u820c\\u820d\\u8d66\\u6444\\u5c04\\u6151\\u6d89\\u793e\\u8bbe\\u538d\\u4f58\\u731e\\u7572\\u9e9d\", \"shen\": \"\\u7837\\u7533\\u547b\\u4f38\\u8eab\\u6df1\\u5a20\\u7ec5\\u795e\\u6c88\\u5ba1\\u5a76\\u751a\\u80be\\u614e\\u6e17\\u8bdc\\u8c02\\u5432\\u54c2\\u6e16\\u6939\\u77e7\\u8703\", \"sheng\": \"\\u58f0\\u751f\\u7525\\u7272\\u5347\\u7ef3\\u7701\\u76db\\u5269\\u80dc\\u5723\\u4e1e\\u6e11\\u5ab5\\u771a\\u7b19\", \"shi\": \"\\u5e08\\u5931\\u72ee\\u65bd\\u6e7f\\u8bd7\\u5c38\\u8671\\u5341\\u77f3\\u62fe\\u65f6\\u4ec0\\u98df\\u8680\\u5b9e\\u8bc6\\u53f2\\u77e2\\u4f7f\\u5c4e\\u9a76\\u59cb\\u5f0f\\u793a\\u58eb\\u4e16\\u67ff\\u4e8b\\u62ed\\u8a93\\u901d\\u52bf\\u662f\\u55dc\\u566c\\u9002\\u4ed5\\u4f8d\\u91ca\\u9970\\u6c0f\\u5e02\\u6043\\u5ba4\\u89c6\\u8bd5\\u8c25\\u57d8\\u83b3\\u84cd\\u5f11\\u5511\\u9963\\u8f7c\\u8006\\u8d33\\u70bb\\u793b\\u94c8\\u94ca\\u87ab\\u8210\\u7b6e\\u8c55\\u9ca5\\u9cba\", \"shou\": \"\\u6536\\u624b\\u9996\\u5b88\\u5bff\\u6388\\u552e\\u53d7\\u7626\\u517d\\u624c\\u72e9\\u7ef6\\u824f\", \"shu\": \"\\u852c\\u67a2\\u68b3\\u6b8a\\u6292\\u8f93\\u53d4\\u8212\\u6dd1\\u758f\\u4e66\\u8d4e\\u5b70\\u719f\\u85af\\u6691\\u66d9\\u7f72\\u8700\\u9ecd\\u9f20\\u5c5e\\u672f\\u8ff0\\u6811\\u675f\\u620d\\u7ad6\\u5885\\u5eb6\\u6570\\u6f31\\u6055\\u500f\\u587e\\u83fd\\u5fc4\\u6cad\\u6d91\\u6f8d\\u59dd\\u7ebe\\u6bf9\\u8167\\u6bb3\\u956f\\u79eb\\u9e6c\", \"shua\": \"\\u5237\\u800d\\u5530\\u6dae\", \"shuai\": \"\\u6454\\u8870\\u7529\\u5e05\\u87c0\", \"shuan\": \"\\u6813\\u62f4\\u95e9\", \"shuang\": \"\\u971c\\u53cc\\u723d\\u5b40\", \"shui\": \"\\u8c01\\u6c34\\u7761\\u7a0e\", \"shun\": \"\\u542e\\u77ac\\u987a\\u821c\\u6042\", \"shuo\": \"\\u8bf4\\u7855\\u6714\\u70c1\\u84b4\\u6420\\u55cd\\u6fef\\u5981\\u69ca\\u94c4\", \"si\": \"\\u65af\\u6495\\u5636\\u601d\\u79c1\\u53f8\\u4e1d\\u6b7b\\u8086\\u5bfa\\u55e3\\u56db\\u4f3a\\u4f3c\\u9972\\u5df3\\u53ae\\u4fdf\\u5155\\u83e5\\u549d\\u6c5c\\u6cd7\\u6f8c\\u59d2\\u9a77\\u7f0c\\u7940\\u7960\\u9536\\u9e36\\u801c\\u86f3\\u7b25\", \"song\": \"\\u677e\\u8038\\u6002\\u9882\\u9001\\u5b8b\\u8bbc\\u8bf5\\u51c7\\u83d8\\u5d27\\u5d69\\u5fea\\u609a\\u6dde\\u7ae6\", \"sou\": \"\\u641c\\u8258\\u64de\\u55fd\\u53df\\u55d6\\u55fe\\u998a\\u6eb2\\u98d5\\u778d\\u953c\\u878b\", \"su\": \"\\u82cf\\u9165\\u4fd7\\u7d20\\u901f\\u7c9f\\u50f3\\u5851\\u6eaf\\u5bbf\\u8bc9\\u8083\\u5919\\u8c21\\u850c\\u55c9\\u612b\\u7c0c\\u89eb\\u7a23\", \"suan\": \"\\u9178\\u849c\\u7b97\", \"sui\": \"\\u867d\\u968b\\u968f\\u7ee5\\u9ad3\\u788e\\u5c81\\u7a57\\u9042\\u96a7\\u795f\\u84d1\\u51ab\\u8c07\\u6fc9\\u9083\\u71e7\\u772d\\u7762\", \"sun\": \"\\u5b59\\u635f\\u7b0b\\u836a\\u72f2\\u98e7\\u69ab\\u8de3\\u96bc\", \"suo\": \"\\u68ad\\u5506\\u7f29\\u7410\\u7d22\\u9501\\u6240\\u5522\\u55e6\\u5a11\\u686b\\u7743\\u7fa7\", \"ta\": \"\\u584c\\u4ed6\\u5b83\\u5979\\u5854\\u736d\\u631e\\u8e4b\\u8e0f\\u95fc\\u6ebb\\u9062\\u69bb\\u6c93\", \"tai\": \"\\u80ce\\u82d4\\u62ac\\u53f0\\u6cf0\\u915e\\u592a\\u6001\\u6c70\\u90b0\\u85b9\\u80bd\\u70b1\\u949b\\u8dc6\\u9c90\", \"tan\": \"\\u574d\\u644a\\u8d2a\\u762b\\u6ee9\\u575b\\u6a80\\u75f0\\u6f6d\\u8c2d\\u8c08\\u5766\\u6bef\\u8892\\u78b3\\u63a2\\u53f9\\u70ad\\u90ef\\u8548\\u6619\\u94bd\\u952c\\u8983\", \"tang\": \"\\u6c64\\u5858\\u642a\\u5802\\u68e0\\u819b\\u5510\\u7cd6\\u50a5\\u9967\\u6e8f\\u746d\\u94f4\\u9557\\u8025\\u8797\\u87b3\\u7fb0\\u91a3\", \"thang\": \"\\u5018\\u8eba\\u6dcc\", \"theng\": \"\\u8d9f\\u70eb\", \"tao\": \"\\u638f\\u6d9b\\u6ed4\\u7ee6\\u8404\\u6843\\u9003\\u6dd8\\u9676\\u8ba8\\u5957\\u6311\\u9f17\\u5555\\u97ec\\u9955\", \"te\": \"\\u7279\", \"teng\": \"\\u85e4\\u817e\\u75bc\\u8a8a\\u6ed5\", \"ti\": \"\\u68af\\u5254\\u8e22\\u9511\\u63d0\\u9898\\u8e44\\u557c\\u4f53\\u66ff\\u568f\\u60d5\\u6d95\\u5243\\u5c49\\u8351\\u608c\\u9016\\u7ee8\\u7f07\\u9e48\\u88fc\\u918d\", \"tian\": \"\\u5929\\u6dfb\\u586b\\u7530\\u751c\\u606c\\u8214\\u8146\\u63ad\\u5fdd\\u9617\\u6b84\\u754b\\u94bf\\u86ba\", \"tiao\": \"\\u6761\\u8fe2\\u773a\\u8df3\\u4f7b\\u7967\\u94eb\\u7a95\\u9f86\\u9ca6\", \"tie\": \"\\u8d34\\u94c1\\u5e16\\u841c\\u992e\", \"ting\": \"\\u5385\\u542c\\u70c3\\u6c40\\u5ef7\\u505c\\u4ead\\u5ead\\u633a\\u8247\\u839b\\u8476\\u5a77\\u6883\\u8713\\u9706\", \"tong\": \"\\u901a\\u6850\\u916e\\u77b3\\u540c\\u94dc\\u5f64\\u7ae5\\u6876\\u6345\\u7b52\\u7edf\\u75db\\u4f5f\\u50ee\\u4edd\\u833c\\u55f5\\u6078\\u6f7c\\u783c\", \"tou\": \"\\u5077\\u6295\\u5934\\u900f\\u4ea0\", \"tu\": \"\\u51f8\\u79c3\\u7a81\\u56fe\\u5f92\\u9014\\u6d82\\u5c60\\u571f\\u5410\\u5154\\u580d\\u837c\\u83df\\u948d\\u9174\", \"tuan\": \"\\u6e4d\\u56e2\\u7583\", \"tui\": \"\\u63a8\\u9893\\u817f\\u8715\\u892a\\u9000\\u5fd2\\u717a\", \"tun\": \"\\u541e\\u5c6f\\u81c0\\u9968\\u66be\\u8c5a\\u7a80\", \"tuo\": \"\\u62d6\\u6258\\u8131\\u9e35\\u9640\\u9a6e\\u9a7c\\u692d\\u59a5\\u62d3\\u553e\\u4e47\\u4f57\\u5768\\u5eb9\\u6cb1\\u67dd\\u7823\\u7ba8\\u8204\\u8dce\\u9f0d\", \"wa\": \"\\u6316\\u54c7\\u86d9\\u6d3c\\u5a03\\u74e6\\u889c\\u4f64\\u5a32\\u817d\", \"wai\": \"\\u6b6a\\u5916\", \"wan\": \"\\u8c4c\\u5f2f\\u6e7e\\u73a9\\u987d\\u4e38\\u70f7\\u5b8c\\u7897\\u633d\\u665a\\u7696\\u60cb\\u5b9b\\u5a49\\u4e07\\u8155\\u525c\\u8284\\u82cb\\u83c0\\u7ea8\\u7efe\\u742c\\u8118\\u7579\\u873f\\u7ba2\", \"wang\": \"\\u6c6a\\u738b\\u4ea1\\u6789\\u7f51\\u5f80\\u65fa\\u671b\\u5fd8\\u5984\\u7f54\\u5c22\\u60d8\\u8f8b\\u9b4d\", \"wei\": \"\\u5a01\\u5dcd\\u5fae\\u5371\\u97e6\\u8fdd\\u6845\\u56f4\\u552f\\u60df\\u4e3a\\u6f4d\\u7ef4\\u82c7\\u840e\\u59d4\\u4f1f\\u4f2a\\u5c3e\\u7eac\\u672a\\u851a\\u5473\\u754f\\u80c3\\u5582\\u9b4f\\u4f4d\\u6e2d\\u8c13\\u5c09\\u6170\\u536b\\u502d\\u504e\\u8bff\\u9688\\u8473\\u8587\\u5e0f\\u5e37\\u5d34\\u5d6c\\u7325\\u732c\\u95f1\\u6ca9\\u6d27\\u6da0\\u9036\\u5a13\\u73ae\\u97ea\\u8ece\\u709c\\u7168\\u71a8\\u75ff\\u8249\\u9c94\", \"wen\": \"\\u761f\\u6e29\\u868a\\u6587\\u95fb\\u7eb9\\u543b\\u7a33\\u7d0a\\u95ee\\u520e\\u6120\\u960c\\u6c76\\u74ba\\u97eb\\u6b81\\u96ef\", \"weng\": \"\\u55e1\\u7fc1\\u74ee\\u84ca\\u8579\", \"wo\": \"\\u631d\\u8717\\u6da1\\u7a9d\\u6211\\u65a1\\u5367\\u63e1\\u6c83\\u83b4\\u5e44\\u6e25\\u674c\\u809f\\u9f8c\", \"wu\": \"\\u5deb\\u545c\\u94a8\\u4e4c\\u6c61\\u8bec\\u5c4b\\u65e0\\u829c\\u68a7\\u543e\\u5434\\u6bcb\\u6b66\\u4e94\\u6342\\u5348\\u821e\\u4f0d\\u4fae\\u575e\\u620a\\u96fe\\u6664\\u7269\\u52ff\\u52a1\\u609f\\u8bef\\u5140\\u4ef5\\u9622\\u90ac\\u572c\\u82b4\\u5e91\\u6003\\u5fe4\\u6d6f\\u5be4\\u8fd5\\u59a9\\u9a9b\\u727e\\u7110\\u9e49\\u9e5c\\u8708\\u92c8\\u9f2f\", \"xi\": \"\\u6614\\u7199\\u6790\\u897f\\u7852\\u77fd\\u6670\\u563b\\u5438\\u9521\\u727a\\u7a00\\u606f\\u5e0c\\u6089\\u819d\\u5915\\u60dc\\u7184\\u70ef\\u6eaa\\u6c50\\u7280\\u6a84\\u88ad\\u5e2d\\u4e60\\u5ab3\\u559c\\u94e3\\u6d17\\u7cfb\\u9699\\u620f\\u7ec6\\u50d6\\u516e\\u96b0\\u90d7\\u831c\\u8478\\u84f0\\u595a\\u550f\\u5f99\\u9969\\u960b\\u6d60\\u6dc5\\u5c63\\u5b09\\u73ba\\u6a28\\u66e6\\u89cb\\u6b37\\u71b9\\u798a\\u79a7\\u94b8\\u7699\\u7a78\\u8725\\u87cb\\u823e\\u7fb2\\u7c9e\\u7fd5\\u91af\\u9f37\", \"xia\": \"\\u778e\\u867e\\u5323\\u971e\\u8f96\\u6687\\u5ce1\\u4fa0\\u72ed\\u4e0b\\u53a6\\u590f\\u5413\\u6380\\u846d\\u55c4\\u72ce\\u9050\\u7455\\u7856\\u7615\\u7f45\\u9ee0\", \"xian\": \"\\u9528\\u5148\\u4ed9\\u9c9c\\u7ea4\\u54b8\\u8d24\\u8854\\u8237\\u95f2\\u6d8e\\u5f26\\u5acc\\u663e\\u9669\\u73b0\\u732e\\u53bf\\u817a\\u9985\\u7fa1\\u5baa\\u9677\\u9650\\u7ebf\\u51bc\\u85d3\\u5c98\\u7303\\u66b9\\u5a34\\u6c19\\u7946\\u9e47\\u75eb\\u86ac\\u7b45\\u7c7c\\u9170\\u8df9\", \"xiang\": \"\\u76f8\\u53a2\\u9576\\u9999\\u7bb1\\u8944\\u6e58\\u4e61\\u7fd4\\u7965\\u8be6\\u60f3\\u54cd\\u4eab\\u9879\\u5df7\\u6a61\\u50cf\\u5411\\u8c61\\u8297\\u8459\\u9977\\u5ea0\\u9aa7\\u7f03\\u87d3\\u9c9e\\u98e8\", \"xiao\": \"\\u8427\\u785d\\u9704\\u524a\\u54ee\\u56a3\\u9500\\u6d88\\u5bb5\\u6dc6\\u6653\\u5c0f\\u5b5d\\u6821\\u8096\\u5578\\u7b11\\u6548\\u54d3\\u54bb\\u5d24\\u6f47\\u900d\\u9a81\\u7ee1\\u67ad\\u67b5\\u7b71\\u7bab\\u9b48\", \"xie\": \"\\u6954\\u4e9b\\u6b47\\u874e\\u978b\\u534f\\u631f\\u643a\\u90aa\\u659c\\u80c1\\u8c10\\u5199\\u68b0\\u5378\\u87f9\\u61c8\\u6cc4\\u6cfb\\u8c22\\u5c51\\u5055\\u4eb5\\u52f0\\u71ee\\u85a4\\u64b7\\u5ee8\\u7023\\u9082\\u7ec1\\u7f2c\\u69ad\\u698d\\u6b59\\u8e9e\", \"xin\": \"\\u85aa\\u82af\\u950c\\u6b23\\u8f9b\\u65b0\\u5ffb\\u5fc3\\u4fe1\\u8845\\u56df\\u99a8\\u8398\\u6b46\\u94fd\\u946b\", \"xing\": \"\\u661f\\u8165\\u7329\\u60fa\\u5174\\u5211\\u578b\\u5f62\\u90a2\\u884c\\u9192\\u5e78\\u674f\\u6027\\u59d3\\u9649\\u8347\\u8365\\u64e4\\u60bb\\u784e\", \"xiong\": \"\\u5144\\u51f6\\u80f8\\u5308\\u6c79\\u96c4\\u718a\\u828e\", \"xiu\": \"\\u4f11\\u4fee\\u7f9e\\u673d\\u55c5\\u9508\\u79c0\\u8896\\u7ee3\\u83a0\\u5cab\\u9990\\u5ea5\\u9e3a\\u8c85\\u9af9\", \"xu\": \"\\u589f\\u620c\\u9700\\u865a\\u5618\\u987b\\u5f90\\u8bb8\\u84c4\\u9157\\u53d9\\u65ed\\u5e8f\\u755c\\u6064\\u7d6e\\u5a7f\\u7eea\\u7eed\\u8bb4\\u8be9\\u5729\\u84ff\\u6035\\u6d2b\\u6e86\\u987c\\u6829\\u7166\\u7809\\u76f1\\u80e5\\u7cc8\\u9191\", \"xuan\": \"\\u8f69\\u55a7\\u5ba3\\u60ac\\u65cb\\u7384\\u9009\\u7663\\u7729\\u7eda\\u5107\\u8c16\\u8431\\u63ce\\u9994\\u6ceb\\u6d35\\u6e32\\u6f29\\u7487\\u6966\\u6684\\u70ab\\u714a\\u78b9\\u94c9\\u955f\\u75c3\", \"xue\": \"\\u9774\\u859b\\u5b66\\u7a74\\u96ea\\u8840\\u5671\\u6cf6\\u9cd5\", \"xun\": \"\\u52cb\\u718f\\u5faa\\u65ec\\u8be2\\u5bfb\\u9a6f\\u5de1\\u6b89\\u6c5b\\u8bad\\u8baf\\u900a\\u8fc5\\u5dfd\\u57d9\\u8340\\u85b0\\u5ccb\\u5f87\\u6d54\\u66db\\u7aa8\\u91ba\\u9c9f\", \"ya\": \"\\u538b\\u62bc\\u9e26\\u9e2d\\u5440\\u4e2b\\u82bd\\u7259\\u869c\\u5d16\\u8859\\u6daf\\u96c5\\u54d1\\u4e9a\\u8bb6\\u4f22\\u63e0\\u5416\\u5c88\\u8fd3\\u5a05\\u740a\\u6860\\u6c29\\u7811\\u775a\\u75d6\", \"yan\": \"\\u7109\\u54bd\\u9609\\u70df\\u6df9\\u76d0\\u4e25\\u7814\\u8712\\u5ca9\\u5ef6\\u8a00\\u989c\\u960e\\u708e\\u6cbf\\u5944\\u63a9\\u773c\\u884d\\u6f14\\u8273\\u5830\\u71d5\\u538c\\u781a\\u96c1\\u5501\\u5f66\\u7130\\u5bb4\\u8c1a\\u9a8c\\u53a3\\u9765\\u8d5d\\u4fe8\\u5043\\u5156\\u8ba0\\u8c33\\u90fe\\u9122\\u82ab\\u83f8\\u5d26\\u6079\\u95eb\\u960f\\u6d07\\u6e6e\\u6edf\\u598d\\u5ae3\\u7430\\u664f\\u80ed\\u814c\\u7131\\u7f68\\u7b75\\u917d\\u9b47\\u990d\\u9f39\", \"yang\": \"\\u6b83\\u592e\\u9e2f\\u79e7\\u6768\\u626c\\u4f6f\\u75a1\\u7f8a\\u6d0b\\u9633\\u6c27\\u4ef0\\u75d2\\u517b\\u6837\\u6f3e\\u5f89\\u600f\\u6cf1\\u7080\\u70ca\\u6059\\u86d8\\u9785\", \"yao\": \"\\u9080\\u8170\\u5996\\u7476\\u6447\\u5c27\\u9065\\u7a91\\u8c23\\u59da\\u54ac\\u8200\\u836f\\u8981\\u8000\\u592d\\u723b\\u5406\\u5d3e\\u5fad\\u7039\\u5e7a\\u73e7\\u6773\\u66dc\\u80b4\\u9e5e\\u7a88\\u7e47\\u9cd0\", \"ye\": \"\\u6930\\u564e\\u8036\\u7237\\u91ce\\u51b6\\u4e5f\\u9875\\u6396\\u4e1a\\u53f6\\u66f3\\u814b\\u591c\\u6db2\\u8c12\\u90ba\\u63f6\\u9980\\u6654\\u70e8\\u94d8\", \"yi\": \"\\u4e00\\u58f9\\u533b\\u63d6\\u94f1\\u4f9d\\u4f0a\\u8863\\u9890\\u5937\\u9057\\u79fb\\u4eea\\u80f0\\u7591\\u6c82\\u5b9c\\u59e8\\u5f5d\\u6905\\u8681\\u501a\\u5df2\\u4e59\\u77e3\\u4ee5\\u827a\\u6291\\u6613\\u9091\\u5c79\\u4ebf\\u5f79\\u81c6\\u9038\\u8084\\u75ab\\u4ea6\\u88d4\\u610f\\u6bc5\\u5fc6\\u4e49\\u76ca\\u6ea2\\u8be3\\u8bae\\u8c0a\\u8bd1\\u5f02\\u7ffc\\u7fcc\\u7ece\\u5208\\u5293\\u4f7e\\u8bd2\\u572a\\u572f\\u57f8\\u61ff\\u82e1\\u858f\\u5f08\\u5955\\u6339\\u5f0b\\u5453\\u54a6\\u54bf\\u566b\\u5cc4\\u5db7\\u7317\\u9974\\u603f\\u6021\\u6092\\u6f2a\\u8fe4\\u9a7f\\u7f22\\u6baa\\u8d3b\\u65d6\\u71a0\\u9487\\u9552\\u9571\\u75cd\\u7617\\u7654\\u7fca\\u8864\\u8734\\u8223\\u7fbf\\u7ff3\\u914f\\u9edf\", \"yin\": \"\\u8335\\u836b\\u56e0\\u6bb7\\u97f3\\u9634\\u59fb\\u541f\\u94f6\\u6deb\\u5bc5\\u996e\\u5c39\\u5f15\\u9690\\u5370\\u80e4\\u911e\\u5819\\u831a\\u5591\\u72fa\\u5924\\u6c24\\u94df\\u763e\\u8693\\u972a\\u9f88\", \"ying\": \"\\u82f1\\u6a31\\u5a74\\u9e70\\u5e94\\u7f28\\u83b9\\u8424\\u8425\\u8367\\u8747\\u8fce\\u8d62\\u76c8\\u5f71\\u9896\\u786c\\u6620\\u5b34\\u90e2\\u8314\\u83ba\\u8426\\u6484\\u5624\\u81ba\\u6ee2\\u6f46\\u701b\\u745b\\u748e\\u6979\\u9e66\\u763f\\u988d\\u7f42\", \"yo\": \"\\u54df\\u5537\", \"yong\": \"\\u62e5\\u4f63\\u81c3\\u75c8\\u5eb8\\u96cd\\u8e0a\\u86f9\\u548f\\u6cf3\\u6d8c\\u6c38\\u607f\\u52c7\\u7528\\u4fd1\\u58c5\\u5889\\u6175\\u9095\\u955b\\u752c\\u9cd9\\u9954\", \"you\": \"\\u5e7d\\u4f18\\u60a0\\u5fe7\\u5c24\\u7531\\u90ae\\u94c0\\u72b9\\u6cb9\\u6e38\\u9149\\u6709\\u53cb\\u53f3\\u4f51\\u91c9\\u8bf1\\u53c8\\u5e7c\\u5363\\u6538\\u4f91\\u83b8\\u5466\\u56ff\\u5ba5\\u67da\\u7337\\u7256\\u94d5\\u75a3\\u8763\\u9c7f\\u9edd\\u9f2c\", \"yu\": \"\\u8fc2\\u6de4\\u4e8e\\u76c2\\u6986\\u865e\\u611a\\u8206\\u4f59\\u4fde\\u903e\\u9c7c\\u6109\\u6e1d\\u6e14\\u9685\\u4e88\\u5a31\\u96e8\\u4e0e\\u5c7f\\u79b9\\u5b87\\u8bed\\u7fbd\\u7389\\u57df\\u828b\\u90c1\\u5401\\u9047\\u55bb\\u5cea\\u5fa1\\u6108\\u6b32\\u72f1\\u80b2\\u8a89\\u6d74\\u5bd3\\u88d5\\u9884\\u8c6b\\u9a6d\\u79ba\\u6bd3\\u4f1b\\u4fe3\\u8c00\\u8c15\\u8438\\u84e3\\u63c4\\u5581\\u5704\\u5709\\u5d5b\\u72f3\\u996b\\u5ebe\\u9608\\u59aa\\u59a4\\u7ea1\\u745c\\u6631\\u89ce\\u8174\\u6b24\\u65bc\\u715c\\u71e0\\u807f\\u94b0\\u9e46\\u7610\\u7600\\u7ab3\\u8753\\u7afd\\u8201\\u96e9\\u9f89\", \"yuan\": \"\\u9e33\\u6e0a\\u51a4\\u5143\\u57a3\\u8881\\u539f\\u63f4\\u8f95\\u56ed\\u5458\\u5706\\u733f\\u6e90\\u7f18\\u8fdc\\u82d1\\u613f\\u6028\\u9662\\u586c\\u6c85\\u5a9b\\u7457\\u6a7c\\u7230\\u7722\\u9e22\\u8788\\u9f0b\", \"yue\": \"\\u66f0\\u7ea6\\u8d8a\\u8dc3\\u94a5\\u5cb3\\u7ca4\\u6708\\u60a6\\u9605\\u9fa0\\u6a3e\\u5216\\u94ba\", \"yun\": \"\\u8018\\u4e91\\u90e7\\u5300\\u9668\\u5141\\u8fd0\\u8574\\u915d\\u6655\\u97f5\\u5b55\\u90d3\\u82b8\\u72c1\\u607d\\u7ead\\u6b92\\u6600\\u6c32\", \"za\": \"\\u531d\\u7838\\u6742\\u62f6\\u5482\", \"zai\": \"\\u683d\\u54c9\\u707e\\u5bb0\\u8f7d\\u518d\\u5728\\u54b1\\u5d3d\\u753e\", \"zan\": \"\\u6512\\u6682\\u8d5e\\u74d2\\u661d\\u7c2a\\u7ccc\\u8db1\\u933e\", \"zang\": \"\\u8d43\\u810f\\u846c\\u5958\\u6215\\u81e7\", \"zao\": \"\\u906d\\u7cdf\\u51ff\\u85fb\\u67a3\\u65e9\\u6fa1\\u86a4\\u8e81\\u566a\\u9020\\u7682\\u7076\\u71e5\\u5523\\u7f2b\", \"ze\": \"\\u8d23\\u62e9\\u5219\\u6cfd\\u4ec4\\u8d5c\\u5567\\u8fee\\u6603\\u7b2e\\u7ba6\\u8234\", \"zei\": \"\\u8d3c\", \"zen\": \"\\u600e\\u8c2e\", \"zeng\": \"\\u589e\\u618e\\u66fe\\u8d60\\u7f2f\\u7511\\u7f7e\\u9503\", \"zha\": \"\\u624e\\u55b3\\u6e23\\u672d\\u8f67\\u94e1\\u95f8\\u7728\\u6805\\u69a8\\u548b\\u4e4d\\u70b8\\u8bc8\\u63f8\\u5412\\u54a4\\u54f3\\u600d\\u781f\\u75c4\\u86b1\\u9f44\", \"zhai\": \"\\u6458\\u658b\\u5b85\\u7a84\\u503a\\u5be8\\u7826\", \"zhan\": \"\\u77bb\\u6be1\\u8a79\\u7c98\\u6cbe\\u76cf\\u65a9\\u8f97\\u5d2d\\u5c55\\u8638\\u6808\\u5360\\u6218\\u7ad9\\u6e5b\\u7efd\\u8c35\\u640c\\u65c3\", \"zhang\": \"\\u6a1f\\u7ae0\\u5f70\\u6f33\\u5f20\\u638c\\u6da8\\u6756\\u4e08\\u5e10\\u8d26\\u4ed7\\u80c0\\u7634\\u969c\\u4ec9\\u9123\\u5e5b\\u5d82\\u7350\\u5adc\\u748b\\u87d1\", \"zhao\": \"\\u62db\\u662d\\u627e\\u6cbc\\u8d75\\u7167\\u7f69\\u5146\\u8087\\u53ec\\u722a\\u8bcf\\u68f9\\u948a\\u7b0a\", \"zhe\": \"\\u906e\\u6298\\u54f2\\u86f0\\u8f99\\u8005\\u9517\\u8517\\u8fd9\\u6d59\\u8c2a\\u966c\\u67d8\\u8f84\\u78d4\\u9e67\\u891a\\u8707\\u8d6d\", \"zhen\": \"\\u73cd\\u659f\\u771f\\u7504\\u7827\\u81fb\\u8d1e\\u9488\\u4fa6\\u6795\\u75b9\\u8bca\\u9707\\u632f\\u9547\\u9635\\u7f1c\\u6862\\u699b\\u8f78\\u8d48\\u80d7\\u6715\\u796f\\u755b\\u9e29\", \"zheng\": \"\\u84b8\\u6323\\u7741\\u5f81\\u72f0\\u4e89\\u6014\\u6574\\u62ef\\u6b63\\u653f\\u5e27\\u75c7\\u90d1\\u8bc1\\u8be4\\u5ce5\\u94b2\\u94ee\\u7b5d\", \"zhi\": \"\\u829d\\u679d\\u652f\\u5431\\u8718\\u77e5\\u80a2\\u8102\\u6c41\\u4e4b\\u7ec7\\u804c\\u76f4\\u690d\\u6b96\\u6267\\u503c\\u4f84\\u5740\\u6307\\u6b62\\u8dbe\\u53ea\\u65e8\\u7eb8\\u5fd7\\u631a\\u63b7\\u81f3\\u81f4\\u7f6e\\u5e1c\\u5cd9\\u5236\\u667a\\u79e9\\u7a1a\\u8d28\\u7099\\u75d4\\u6ede\\u6cbb\\u7a92\\u536e\\u965f\\u90c5\\u57f4\\u82b7\\u646d\\u5e19\\u5fee\\u5f58\\u54ab\\u9a98\\u6809\\u67b3\\u6800\\u684e\\u8f75\\u8f7e\\u6534\\u8d3d\\u81a3\\u7949\\u7957\\u9ef9\\u96c9\\u9e37\\u75e3\\u86ed\\u7d77\\u916f\\u8dd6\\u8e2c\\u8e2f\\u8c78\\u89ef\", \"zhong\": \"\\u4e2d\\u76c5\\u5fe0\\u949f\\u8877\\u7ec8\\u79cd\\u80bf\\u91cd\\u4ef2\\u4f17\\u51a2\\u953a\\u87bd\\u8202\\u822f\\u8e35\", \"zhou\": \"\\u821f\\u5468\\u5dde\\u6d32\\u8bcc\\u7ca5\\u8f74\\u8098\\u5e1a\\u5492\\u76b1\\u5b99\\u663c\\u9aa4\\u5544\\u7740\\u501c\\u8bf9\\u836e\\u9b3b\\u7ea3\\u80c4\\u78a1\\u7c40\\u8233\\u914e\\u9cb7\", \"zhu\": \"\\u73e0\\u682a\\u86db\\u6731\\u732a\\u8bf8\\u8bdb\\u9010\\u7af9\\u70db\\u716e\\u62c4\\u77a9\\u5631\\u4e3b\\u8457\\u67f1\\u52a9\\u86c0\\u8d2e\\u94f8\\u7b51\\u4f4f\\u6ce8\\u795d\\u9a7b\\u4f2b\\u4f8f\\u90be\\u82ce\\u8331\\u6d19\\u6e1a\\u6f74\\u9a7a\\u677c\\u69e0\\u6a65\\u70b7\\u94e2\\u75b0\\u7603\\u86b0\\u7afa\\u7bb8\\u7fe5\\u8e85\\u9e88\", \"zhua\": \"\\u6293\", \"zhuai\": \"\\u62fd\", \"zhuan\": \"\\u4e13\\u7816\\u8f6c\\u64b0\\u8d5a\\u7bc6\\u629f\\u556d\\u989b\", \"zhuang\": \"\\u6869\\u5e84\\u88c5\\u5986\\u649e\\u58ee\\u72b6\\u4e2c\", \"zhui\": \"\\u690e\\u9525\\u8ffd\\u8d58\\u5760\\u7f00\\u8411\\u9a93\\u7f12\", \"zhun\": \"\\u8c06\\u51c6\", \"zhuo\": \"\\u6349\\u62d9\\u5353\\u684c\\u7422\\u8301\\u914c\\u707c\\u6d4a\\u502c\\u8bfc\\u5ef4\\u855e\\u64e2\\u555c\\u6d5e\\u6dbf\\u6753\\u712f\\u799a\\u65ab\", \"zi\": \"\\u5179\\u54a8\\u8d44\\u59ff\\u6ecb\\u6dc4\\u5b5c\\u7d2b\\u4ed4\\u7c7d\\u6ed3\\u5b50\\u81ea\\u6e0d\\u5b57\\u8c18\\u5d6b\\u59ca\\u5b73\\u7f01\\u6893\\u8f8e\\u8d40\\u6063\\u7726\\u9531\\u79ed\\u8014\\u7b2b\\u7ca2\\u89dc\\u8a3e\\u9cbb\\u9aed\", \"zong\": \"\\u9b03\\u68d5\\u8e2a\\u5b97\\u7efc\\u603b\\u7eb5\\u8159\\u7cbd\", \"zou\": \"\\u90b9\\u8d70\\u594f\\u63cd\\u9139\\u9cb0\", \"zu\": \"\\u79df\\u8db3\\u5352\\u65cf\\u7956\\u8bc5\\u963b\\u7ec4\\u4fce\\u83f9\\u5550\\u5f82\\u9a75\\u8e74\", \"zuan\": \"\\u94bb\\u7e82\\u6525\\u7f35\", \"zui\": \"\\u5634\\u9189\\u6700\\u7f6a\", \"zun\": \"\\u5c0a\\u9075\\u6499\\u6a3d\\u9cdf\", \"zuo\": \"\\u6628\\u5de6\\u4f50\\u67de\\u505a\\u4f5c\\u5750\\u5ea7\\u961d\\u963c\\u80d9\\u795a\\u9162\", \"cou\": \"\\u85ae\\u6971\\u8f8f\\u8160\", \"nang\": \"\\u652e\\u54dd\\u56d4\\u9995\\u66e9\", \"o\": \"\\u5594\", \"dia\": \"\\u55f2\", \"chuai\": \"\\u562c\\u81aa\\u8e39\", \"cen\": \"\\u5c91\\u6d94\", \"diu\": \"\\u94e5\", \"nou\": \"\\u8028\", \"fou\": \"\\u7f36\", \"bia\": \"\\u9adf\" };\r\nconst polyphone: any = { \"19969\": \"DZ\", \"19975\": \"WM\", \"19988\": \"QJ\", \"20048\": \"YL\", \"20056\": \"SC\", \"20060\": \"NM\", \"20094\": \"QG\", \"20127\": \"QJ\", \"20167\": \"QC\", \"20193\": \"YG\", \"20250\": \"KH\", \"20256\": \"ZC\", \"20282\": \"SC\", \"20285\": \"QJG\", \"20291\": \"TD\", \"20314\": \"YD\", \"20340\": \"NE\", \"20375\": \"TD\", \"20389\": \"YJ\", \"20391\": \"CZ\", \"20415\": \"PB\", \"20446\": \"YS\", \"20447\": \"SQ\", \"20504\": \"TC\", \"20608\": \"KG\", \"20854\": \"QJ\", \"20857\": \"ZC\", \"20911\": \"PF\", \"20985\": \"AW\", \"21032\": \"PB\", \"21048\": \"XQ\", \"21049\": \"SC\", \"21089\": \"YS\", \"21119\": \"JC\", \"21242\": \"SB\", \"21273\": \"SC\", \"21305\": \"YP\", \"21306\": \"QO\", \"21330\": \"ZC\", \"21333\": \"SDC\", \"21345\": \"QK\", \"21378\": \"CA\", \"21397\": \"SC\", \"21414\": \"XS\", \"21442\": \"SC\", \"21477\": \"JG\", \"21480\": \"TD\", \"21484\": \"ZS\", \"21494\": \"YX\", \"21505\": \"YX\", \"21512\": \"HG\", \"21523\": \"XH\", \"21537\": \"PB\", \"21542\": \"PF\", \"21549\": \"KH\", \"21571\": \"E\", \"21574\": \"DA\", \"21588\": \"TD\", \"21589\": \"O\", \"21618\": \"ZC\", \"21621\": \"KHA\", \"21632\": \"ZJ\", \"21654\": \"KG\", \"21679\": \"LKG\", \"21683\": \"KH\", \"21710\": \"A\", \"21719\": \"YH\", \"21734\": \"WOE\", \"21769\": \"A\", \"21780\": \"WN\", \"21804\": \"XH\", \"21834\": \"A\", \"21899\": \"ZD\", \"21903\": \"RN\", \"21908\": \"WO\", \"21939\": \"ZC\", \"21956\": \"SA\", \"21964\": \"YA\", \"21970\": \"TD\", \"22003\": \"A\", \"22031\": \"JG\", \"22040\": \"XS\", \"22060\": \"ZC\", \"22066\": \"ZC\", \"22079\": \"MH\", \"22129\": \"XJ\", \"22179\": \"XA\", \"22237\": \"NJ\", \"22244\": \"TD\", \"22280\": \"JQ\", \"22300\": \"YH\", \"22313\": \"XW\", \"22331\": \"YQ\", \"22343\": \"YJ\", \"22351\": \"PH\", \"22395\": \"DC\", \"22412\": \"TD\", \"22484\": \"PB\", \"22500\": \"PB\", \"22534\": \"ZD\", \"22549\": \"DH\", \"22561\": \"PB\", \"22612\": \"TD\", \"22771\": \"KQ\", \"22831\": \"HB\", \"22841\": \"JG\", \"22855\": \"QJ\", \"22865\": \"XQ\", \"23013\": \"ML\", \"23081\": \"WM\", \"23487\": \"SX\", \"23558\": \"QJ\", \"23561\": \"YW\", \"23586\": \"YW\", \"23614\": \"YW\", \"23615\": \"SN\", \"23631\": \"PB\", \"23646\": \"ZS\", \"23663\": \"ZT\", \"23673\": \"YG\", \"23762\": \"TD\", \"23769\": \"ZS\", \"23780\": \"QJ\", \"23884\": \"QK\", \"24055\": \"XH\", \"24113\": \"DC\", \"24162\": \"ZC\", \"24191\": \"GA\", \"24273\": \"QJ\", \"24324\": \"NL\", \"24377\": \"TD\", \"24378\": \"QJ\", \"24439\": \"PF\", \"24554\": \"ZS\", \"24683\": \"TD\", \"24694\": \"WE\", \"24733\": \"LK\", \"24925\": \"TN\", \"25094\": \"ZG\", \"25100\": \"XQ\", \"25103\": \"XH\", \"25153\": \"PB\", \"25170\": \"PB\", \"25179\": \"KG\", \"25203\": \"PB\", \"25240\": \"ZS\", \"25282\": \"FB\", \"25303\": \"NA\", \"25324\": \"KG\", \"25341\": \"ZY\", \"25373\": \"WZ\", \"25375\": \"XJ\", \"25384\": \"A\", \"25457\": \"A\", \"25528\": \"SD\", \"25530\": \"SC\", \"25552\": \"TD\", \"25774\": \"ZC\", \"25874\": \"ZC\", \"26044\": \"YW\", \"26080\": \"WM\", \"26292\": \"PB\", \"26333\": \"PB\", \"26355\": \"ZY\", \"26366\": \"CZ\", \"26397\": \"ZC\", \"26399\": \"QJ\", \"26415\": \"ZS\", \"26451\": \"SB\", \"26526\": \"ZC\", \"26552\": \"JG\", \"26561\": \"TD\", \"26588\": \"JG\", \"26597\": \"CZ\", \"26629\": \"ZS\", \"26638\": \"YL\", \"26646\": \"XQ\", \"26653\": \"KG\", \"26657\": \"XJ\", \"26727\": \"HG\", \"26894\": \"ZC\", \"26937\": \"ZS\", \"26946\": \"ZC\", \"26999\": \"KJ\", \"27099\": \"KJ\", \"27449\": \"YQ\", \"27481\": \"XS\", \"27542\": \"ZS\", \"27663\": \"ZS\", \"27748\": \"TS\", \"27784\": \"SC\", \"27788\": \"ZD\", \"27795\": \"TD\", \"27812\": \"O\", \"27850\": \"PB\", \"27852\": \"MB\", \"27895\": \"SL\", \"27898\": \"PL\", \"27973\": \"QJ\", \"27981\": \"KH\", \"27986\": \"HX\", \"27994\": \"XJ\", \"28044\": \"YC\", \"28065\": \"WG\", \"28177\": \"SM\", \"28267\": \"QJ\", \"28291\": \"KH\", \"28337\": \"ZQ\", \"28463\": \"TL\", \"28548\": \"DC\", \"28601\": \"TD\", \"28689\": \"PB\", \"28805\": \"JG\", \"28820\": \"QG\", \"28846\": \"PB\", \"28952\": \"TD\", \"28975\": \"ZC\", \"29100\": \"A\", \"29325\": \"QJ\", \"29575\": \"SL\", \"29602\": \"FB\", \"30010\": \"TD\", \"30044\": \"CX\", \"30058\": \"PF\", \"30091\": \"YSP\", \"30111\": \"YN\", \"30229\": \"XJ\", \"30427\": \"SC\", \"30465\": \"SX\", \"30631\": \"YQ\", \"30655\": \"QJ\", \"30684\": \"QJG\", \"30707\": \"SD\", \"30729\": \"XH\", \"30796\": \"LG\", \"30917\": \"PB\", \"31074\": \"NM\", \"31085\": \"JZ\", \"31109\": \"SC\", \"31181\": \"ZC\", \"31192\": \"MLB\", \"31293\": \"JQ\", \"31400\": \"YX\", \"31584\": \"YJ\", \"31896\": \"ZN\", \"31909\": \"ZY\", \"31995\": \"XJ\", \"32321\": \"PF\", \"32327\": \"ZY\", \"32418\": \"HG\", \"32420\": \"XQ\", \"32421\": \"HG\", \"32438\": \"LG\", \"32473\": \"GJ\", \"32488\": \"TD\", \"32521\": \"QJ\", \"32527\": \"PB\", \"32562\": \"ZSQ\", \"32564\": \"JZ\", \"32735\": \"ZD\", \"32793\": \"PB\", \"33071\": \"PF\", \"33098\": \"XL\", \"33100\": \"YA\", \"33152\": \"PB\", \"33261\": \"CX\", \"33324\": \"BP\", \"33333\": \"TD\", \"33406\": \"YA\", \"33426\": \"WM\", \"33432\": \"PB\", \"33445\": \"JG\", \"33486\": \"ZN\", \"33493\": \"TS\", \"33507\": \"QJ\", \"33540\": \"QJ\", \"33544\": \"ZC\", \"33564\": \"XQ\", \"33617\": \"YT\", \"33632\": \"QJ\", \"33636\": \"XH\", \"33637\": \"YX\", \"33694\": \"WG\", \"33705\": \"PF\", \"33728\": \"YW\", \"33882\": \"SR\", \"34067\": \"WM\", \"34074\": \"YW\", \"34121\": \"QJ\", \"34255\": \"ZC\", \"34259\": \"XL\", \"34425\": \"JH\", \"34430\": \"XH\", \"34485\": \"KH\", \"34503\": \"YS\", \"34532\": \"HG\", \"34552\": \"XS\", \"34558\": \"YE\", \"34593\": \"ZL\", \"34660\": \"YQ\", \"34892\": \"XH\", \"34928\": \"SC\", \"34999\": \"QJ\", \"35048\": \"PB\", \"35059\": \"SC\", \"35098\": \"ZC\", \"35203\": \"TQ\", \"35265\": \"JX\", \"35299\": \"JX\", \"35782\": \"SZ\", \"35828\": \"YS\", \"35830\": \"E\", \"35843\": \"TD\", \"35895\": \"YG\", \"35977\": \"MH\", \"36158\": \"JG\", \"36228\": \"QJ\", \"36426\": \"XQ\", \"36466\": \"DC\", \"36710\": \"JC\", \"36711\": \"ZYG\", \"36767\": \"PB\", \"36866\": \"SK\", \"36951\": \"YW\", \"37034\": \"YX\", \"37063\": \"XH\", \"37218\": \"ZC\", \"37325\": \"ZC\", \"38063\": \"PB\", \"38079\": \"TD\", \"38085\": \"QY\", \"38107\": \"DC\", \"38116\": \"TD\", \"38123\": \"YD\", \"38224\": \"HG\", \"38241\": \"XTC\", \"38271\": \"ZC\", \"38415\": \"YE\", \"38426\": \"KH\", \"38461\": \"YD\", \"38463\": \"AE\", \"38466\": \"PB\", \"38477\": \"XJ\", \"38518\": \"YT\", \"38551\": \"WK\", \"38585\": \"ZC\", \"38704\": \"XS\", \"38739\": \"LJ\", \"38761\": \"GJ\", \"38808\": \"SQ\", \"39048\": \"JG\", \"39049\": \"XJ\", \"39052\": \"HG\", \"39076\": \"CZ\", \"39271\": \"XT\", \"39534\": \"TD\", \"39552\": \"TD\", \"39584\": \"PB\", \"39647\": \"SB\", \"39730\": \"LG\", \"39748\": \"TPB\", \"40109\": \"ZQ\", \"40479\": \"ND\", \"40516\": \"HG\", \"40536\": \"HG\", \"40583\": \"QJ\", \"40765\": \"YQ\", \"40784\": \"QJ\", \"40840\": \"YK\", \"40863\": \"QJG\" };\r\nconst options: any = {\r\n checkPolyphone: false,\r\n charcase: \"default\",\r\n};\r\nconst pinYin = {\r\n // 提取拼音, 返回首字母大写形式\r\n getFullChars: (str: any) => {\r\n let result = \"\",\r\n name;\r\n if (!str) {\r\n return result;\r\n }\r\n const reg = new RegExp(\"[a-zA-Z0-9- ]\");\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n const ch = str.substr(i, 1),\r\n unicode = ch.charCodeAt(0);\r\n if (unicode > 40869 || unicode < 19968) {\r\n result += ch;\r\n } else {\r\n name = pinYin._getFullChar(ch);\r\n if (name !== false) {\r\n result += name;\r\n }\r\n }\r\n }\r\n return result.toLocaleLowerCase();\r\n },\r\n // 提取首字母,返回大写形式\r\n getCamelChars: (str: any) => {\r\n if (typeof str !== \"string\") {\r\n return \"Z\";\r\n }\r\n const chars = []; //保存中间结果的数组\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n //获得unicode码\r\n const ch = str.charAt(i);\r\n //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理\r\n chars.push(pinYin._getChar(ch));\r\n }\r\n //处理arrResult,返回所有可能的拼音首字母串数组\r\n return pinYin._getResult(chars).toLocaleLowerCase();\r\n },\r\n // 提取拼音\r\n _getFullChar: (str: any) => {\r\n for (const key in full_dict) {\r\n if (-1 !== full_dict[key].indexOf(str)) {\r\n return pinYin._capitalize(key);\r\n break;\r\n }\r\n }\r\n return false;\r\n },\r\n // 首字母大写\r\n _capitalize: (str: any) => {\r\n if (str.length > 0) {\r\n const first = str.substr(0, 1).toUpperCase();\r\n const spare = str.substr(1, str.length);\r\n return first + spare;\r\n }\r\n },\r\n _getChar: (ch: any) => {\r\n const unicode = ch.charCodeAt(0);\r\n //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数\r\n if (unicode > 40869 || unicode < 19968) return ch; //dealWithOthers(ch);\r\n //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母\r\n if (!options.checkPolyphone) return char_dict.charAt(unicode - 19968);\r\n return polyphone[unicode] ? polyphone[unicode] : char_dict.charAt(unicode - 19968);\r\n },\r\n _getResult: (chars: any) => {\r\n if (!options.checkPolyphone) return chars.join(\"\");\r\n let result = [\"\"];\r\n for (let i = 0, len = chars.length; i < len; i++) {\r\n const str = chars[i],\r\n strlen = str.length;\r\n if (strlen === 1) {\r\n for (let j = 0; j < result.length; j++) {\r\n result[j] += str;\r\n }\r\n } else {\r\n const swap1 = result.slice(0);\r\n result = [];\r\n for (let j = 0; j < strlen; j++) {\r\n //复制一个相同的arrRslt\r\n const swap2 = swap1.slice(0);\r\n //把当前字符str[k]添加到每个元素末尾\r\n for (let k = 0; k < swap2.length; k++) {\r\n swap2[k] += str.charAt(j);\r\n }\r\n //把复制并修改后的数组连接到arrRslt上\r\n result = result.concat(swap2);\r\n }\r\n }\r\n }\r\n return result;\r\n },\r\n};\r\nexport default pinYin;\r\n","import { render } from \"./DvFormLayout.vue?vue&type=template&id=296f673e&scoped=true&ts=true\"\nimport script from \"./DvFormLayout.vue?vue&type=script&lang=ts\"\nexport * from \"./DvFormLayout.vue?vue&type=script&lang=ts\"\n\nimport \"./DvFormLayout.vue?vue&type=style&index=0&id=296f673e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-296f673e\"]])\n\nexport default __exports__","/* eslint-disable */\r\nclass DateFormatService {\r\n /**\r\n * 日期时间格式自定义\r\n * @param {number|string} value 日期时间值时间戳或时间格式\r\n * @param {string} format 输出的时间格式\r\n * @returns {string} 定义好的时间格式\r\n */\r\n formatDateTime(value: any, format = 'YYYY-MM-dd HH:mm:ss'): string {\r\n const reg = /(YY|YYYY|MM|dd|HH|mm|ss|ww|WW)/g;\r\n if (!value) {\r\n return ''\r\n }\r\n if (!reg.test(format)) {\r\n throw new Error(`The defined format ${format} is incorrect,Please enter 'YYYY or YY' for year,MM for month, dd for day,ww or WW for week,HH for hours,mm for minutes,ss for seconds.`)\r\n }\r\n if (typeof value === 'string' && value.length === 8) {\r\n value = [value.substr(0, 4), value.substr(4, 2), value.substr(6, 2)].join('/')\r\n } else if (!isNaN(Number(value))) {\r\n value = Number(value);\r\n }\r\n const time = new Date(value);\r\n if (String(time) === 'Invalid Date') {\r\n throw new Error(`Time format unrecognized by ${value}, Please enter time stamp or legal time format.`);\r\n }\r\n const dayMap = ['日', '一', '二', '三', '四', '五', '六'];\r\n const year = String(time.getFullYear());\r\n const month = time.getMonth() + 1 > 9 ? String(time.getMonth() + 1) : `0${String(time.getMonth() + 1)}`;\r\n const date = time.getDate() > 9 ? String(time.getDate()) : `0${String(time.getDate())}`;\r\n const day = time.getDay();\r\n const week: any = day !== 0 ? day : '日';\r\n const hours = time.getHours() > 9 ? String(time.getHours()) : `0${String(time.getHours())}`;\r\n const minutes = time.getMinutes() > 9 ? String(time.getMinutes()) : `0${time.getMinutes()}`;\r\n const seconds = time.getSeconds() > 9 ? String(time.getSeconds()) : `0${String(time.getSeconds())}`;\r\n let str = '';\r\n if (/YYYY|YY/g.test(format)) {\r\n format.replace(/YYYY|YY/g, (reg, index, value) => {\r\n if (reg === 'YY') {\r\n str = value.replace('YY', year.slice(2))\r\n }\r\n if (reg === 'YYYY') {\r\n str = value.replace('YYYY', year)\r\n }\r\n return str\r\n })\r\n } else {\r\n str = format\r\n }\r\n str = str.replace(/MM/g, month);\r\n str = str.replace(/dd/g, date);\r\n str = str.replace(/HH/g, hours);\r\n str = str.replace(/mm/g, minutes);\r\n str = str.replace(/ss/g, seconds);\r\n str = str.replace(/ww/g, week);\r\n str = str.replace(/WW/g, dayMap[day]);\r\n return str\r\n }\r\n\r\n /**\r\n * @Description:两个日期大小比较(开始时间 > 结束时间,返回true)\r\n * @author LiuBo\r\n * @date 2022/7/15\r\n * @time 10:43\r\n * @param startTime 开始时间 (YYYY-MM-DD)\r\n * @param endTime 结束时间 (YYYY-MM-DD)\r\n * @modifyLog\r\n */\r\n dateSizeCompare(startTime: string,endTime: string): boolean {\r\n return new Date(Date.parse(startTime.replace(/-/g,\"/\"))).getTime() >\r\n new Date(Date.parse(endTime.replace(/-/g,\"/\"))).getTime();\r\n }\r\n}\r\nconst dateFormat: DateFormatService = new DateFormatService();\r\nexport { dateFormat };\r\n","import { FormGroup } from \"@/domain\";\r\nimport { AbstractControl } from \"@/domain/AbstractControl\";\r\nimport { FormControl, Validate, ValidateReport, ValidateResult } from \"../domain/FormControl\";\r\nimport DvForm from \"../components/form/DvForm.vue\";\r\nimport { FormFieldType, OptionType, SubmittedType, ValidateRules, ValidateStatus } from \"../constants/enum\";\r\n// import moment from \"moment\";\r\nimport { ZoomType } from \"@/constants\";\r\nimport { extractOptions, storageOptions } from \"@/filtres/extract-options.filter\";\r\nimport { CustomFormat, FieldChangeHistory } from \"../domain\";\r\nimport { Rule, validateGeneratorService } from \"../services/validate-generator.service\";\r\nimport { formToolsService, formTreeNodeConvertService, formValidateService } from \"@/services\";\r\nimport { MathJsStatic } from \"mathjs\";\r\nimport { Vue } from \"vue-property-decorator\";\r\nimport dayjs from \"dayjs\";\r\nimport { dateFormat } from \"@/services/date-format.service\";\r\nexport type FormatType = \"default\" | \"ebtrust\";\r\n\r\nexport enum Attribute {\r\n IsHideControl = \"isHideControl\", // 隐藏控件\r\n IsRequiredValidate = \"isRequiredValidate\", // 是否必填\r\n FormFieldDescribe = \"formFieldDescribe\", // 字段别名\r\n FieldDefaultValue = \"fieldDefaultValue\", // 默认值\r\n TitleWidth = \"titleWidth\", // 标题宽度\r\n IsBoldTitle = \"isBoldTitle\", // 加粗标题\r\n IsHideTitle = \"isHideTitle\", // 隐藏标题\r\n TitleColor = \"titleColor\", // 标题颜色\r\n Placeholder = \"placeholder\", // 预期值的提示信息\r\n Tips = \"tips\", // 提示信息\r\n IsNotEdit = \"isNotEdit\", // 不可编辑\r\n BindingPrefix = \"bindingPrefix\", // 绑定前缀\r\n BindingSuffix = \"bindingSuffix\", // 绑定后缀\r\n BuiltInFrontLabel = \"builtInFrontLabel\", // 内置前置标签\r\n BuiltInPostLabel = \"builtInPostLabel\", // 内置后置标签\r\n ControlWidth = \"controlWidth\", // 控件宽度\r\n IsPasswordBox = \"isPasswordBox\", // 是否密码框\r\n InitRowHeight = \"initRowHeight\", // 初始行高\r\n IsFixedRowHeight = \"isFixedRowHeight\", // 是否固定行高\r\n FormatType = \"formatType\", // 格式化类型\r\n MinValue = \"minValue\", // 最小值\r\n MaxValue = \"maxValue\", // 最大值\r\n Step = \"step\", // 步长\r\n DecimalPlaces = \"decimalPlaces\", // 小数位\r\n ThousandthPercentileFormat = \"thousandthPercentileFormat\", // 千分位格式化\r\n Unit = \"unit\", // 单位\r\n ZoomType = \"zoomType\", // 缩放类型\r\n ZoomMultiple = \"zoomMultiple\", // 缩放倍数\r\n IsShowCapitalization = \"isShowCapitalization\", // 展示大写\r\n IsLineFeedDisplay = \"isLineFeedDisplay\", // 换行显示\r\n IsOptionType = \"isOptionType\", // 类型选项\r\n OptionConfig = \"optionConfig\", // 自定义字典项\r\n DateFormat = \"dateFormat\", // 日期格式\r\n TimeFormat = \"timeFormat\", // 时间格式\r\n IsSupportMultiple = \"isSupportMultiple\", // 是否支持多选\r\n MaxUploadNumber = \"maxUploadNumber\", // 最多上传个数\"\r\n LimitSize = \"limitSize\", // 上传大小限制\r\n SupportUploadType = \"supportUploadType\", // 扩展类型\r\n CustomUploadType = \"customUploadType\", // 自定义类型\r\n ExtendUploadType = \"extendUploadType\", // 扩展类型\r\n AttachmentExtendProperties = \"attachmentExtendProperties\", // 附件扩展属性\r\n IsMultipleChoice = \"isMultipleChoice\", // 是否可多选\r\n IsSearchable = \"isSearchable\", // 是否可搜索\r\n CanAddEntry = \"canAddEntry\", // 是否可新增条目\r\n IsClearButton = \"isClearButton\", // 显示清除按钮\r\n OnOpeningValue = \"onOpeningValue\", // 打开时的值\r\n WhenClosedValue = \"whenClosedValue\", // 关闭时的值\r\n OnOpeningText = \"onOpeningText\", // 打开时的文字描述\r\n WhenClosedText = \"whenClosedText\", // 关闭时的文字描述\r\n CustomFieldName = \"customFieldName\", // 自定义字段名\r\n TextFold = \"textFold\", // 文本折叠\r\n HiddenDropdown = \"hiddenDropdown\", // 隐藏下拉面板\r\n BusAttr = \"busAttr\", // 业务属性\r\n EnableAutoComplete = \"enableAutoComplete\", // 开启自动完成功能\r\n AutoCompleteOptions = \"autoCompleteOptions\", // 自动完成列表数据\r\n IsTreeOpen = \"isTreeOpen\", // 树形选择框是否展开\r\n CheckboxStyle = \"checkboxStyle\", // 多选器选项标签样式\r\n ItemWidth = \"itemWidth\",\r\n ChangeOnSelect = \"changeOnSelect\", // 是否允许级联选择框只选中父级选项\r\n TextareaRows = \"textareaRows\", // 设置textarea组件默认展示行数\r\n IsShowHoliday = \"isShowHoliday\", // 是否展示节假日\r\n}\r\n\r\n/**\r\n * @description: 表单基础类,聚合常用api\r\n * @author ChenRui\r\n * @date 2020/11/28 23:27\r\n */\r\nexport class FormApi {\r\n id?: any; // api编号\r\n dvForm: Vue | any; // form组件实例\r\n edit: boolean | undefined; // 编辑状态\r\n formatType: FormatType; // 数据格式化模式\r\n apiMetaRefresh: any; // api内部刷新标识\r\n [key: string]: any; // 任一扩展属性\r\n oldVal: any; //修改前数据\r\n\r\n /**\r\n * @description: 获取表单对象\r\n * @author ChenRui\r\n * @date 2020/11/28 23:29\r\n */\r\n constructor(\r\n options: {\r\n id?: any;\r\n dvForm?: Vue;\r\n edit?: boolean;\r\n formatType?: FormatType;\r\n } = {}\r\n ) {\r\n this.id = options.id || this.getUuid();\r\n this.dvForm = options.dvForm || new Vue(DvForm);\r\n this.edit = options.edit;\r\n this.formatType = options.formatType || \"default\";\r\n }\r\n\r\n get mathjs(): MathJsStatic {\r\n if ((window as any).$app.config.globalProperties.$mathjs) {\r\n return (window as any).$app.config.globalProperties.$mathjs;\r\n }\r\n return {} as MathJsStatic;\r\n }\r\n\r\n /**\r\n * @description: 获取表单值\r\n * @author ChenRui\r\n * @date 2021/2/4 10:36\r\n */\r\n get formData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n let obj: any = this.generateData(this.dvForm.desForm.formGroup);\r\n if (this.oldVal) {\r\n obj = this.contrast(this.oldVal, obj);\r\n if (!Object.keys(obj).length) {\r\n obj = null;\r\n }\r\n }\r\n return obj;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @Description 获取表单全部值\r\n * @Author JiangTao\r\n * @Date 2023-12-22 下午 02:50\r\n */\r\n get formAllData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n const obj: any = this.generateData(this.dvForm.desForm.formGroup);\r\n return obj;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 编码表单对象\r\n * @author ChenRui\r\n * @date 2021/4/25 16:41\r\n */\r\n get encodedFormData(): any {\r\n this.apiMetaRefresh = this.dvForm.metaRefresh;\r\n if (this.dvForm.desForm && this.dvForm.desForm.formGroup) {\r\n const data = this.generateData(this.dvForm.desForm.formGroup);\r\n return this.jsonToFormData(data);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 设置表单值\r\n * @author ChenRui\r\n * @date 2021/2/4 10:37\r\n */\r\n setFormData(srcData: any, isDefault = false, validate = false, oldVal?: any): void {\r\n if (this.dvForm.desForm.formGroup) {\r\n this.setFormDataInner(srcData, isDefault, validate);\r\n } else {\r\n setTimeout(() => {\r\n this.setFormDataInner(srcData, isDefault, validate);\r\n });\r\n }\r\n if (oldVal) this.oldVal = oldVal;\r\n }\r\n\r\n /**\r\n * @description: 获取控件对象\r\n * @author ChenRui\r\n * @date 2021/1/29 10:08\r\n */\r\n getControl(key: string, control?: AbstractControl, showError = true): AbstractControl | any {\r\n if (key) {\r\n if (control == null) {\r\n if (this.dvForm.desForm.formGroup) {\r\n control = this.dvForm.desForm.formGroup.controls;\r\n } else if (showError) {\r\n console.log(\"表单对象尚未初始化完成...\");\r\n }\r\n }\r\n if (control && Object.keys(control).length > 0) {\r\n for (const propName of Object.keys(control)) {\r\n if (propName === key) {\r\n return control[propName];\r\n }\r\n if (control[propName].controls && Object.keys(control[propName].controls).length > 0) {\r\n const subControl: AbstractControl = this.getControl(key, control[propName].controls);\r\n if (subControl != null) {\r\n return subControl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 获取值\r\n * @author ChenRui\r\n * @date 2021/1/29 14:57\r\n */\r\n getValue(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n // && control instanceof FormControl\r\n return this.decodeData(control as FormControl, false);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 设置值\r\n * @author ChenRui\r\n * @date 2021/1/29 16:23\r\n */\r\n setValue(key: string, val: any, isDefault = false, validate = true): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlValue(control, key, val, isDefault, validate);\r\n });\r\n } else {\r\n this.setControlValue(control, key, val, isDefault, validate);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 重置表单\r\n * @author ChenRui\r\n * @date 2021/2/22 17:40\r\n */\r\n resetValue(): void {\r\n this.dvForm.formatDesForm(true);\r\n }\r\n\r\n /**\r\n * @description: 获取文本内容\r\n * @author ChenRui\r\n * @date 2021/1/29 15:03\r\n */\r\n getText(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.text();\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * @description: 获取可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:11\r\n */\r\n getOptions(key: string): any[] {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr\r\n return extractOptions(control.controlAttr);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * @description: 设置可选项\r\n * @author ChenRui\r\n * @date 2021/1/29 16:15\r\n */\r\n setOptions(key: string, data: any[], defaultVal?: any): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlOptions(control, key, data, defaultVal);\r\n });\r\n } else {\r\n this.setControlOptions(control, key, data, defaultVal);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取常规属性\r\n * @author ChenRui\r\n * @date 2021/1/29 17:21\r\n */\r\n getAttribute(key: string, attribute: Attribute): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr\r\n return control.controlAttr[attribute];\r\n }\r\n }\r\n /**\r\n * @description: 设置常规属性\r\n * @author ChenRui\r\n * @date 2021/1/29 17:21\r\n */\r\n setAttribute(key: string, attribute: Attribute, data: any): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n this.setControlAttribute(control, attribute, data);\r\n });\r\n } else {\r\n this.setControlAttribute(control, attribute, data);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 根据name获取校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:46\r\n */\r\n getValidate(key: string, name: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.getValidate(name);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除校验\r\n * @author ChenRui\r\n * @date 2021/4/1 21:30\r\n */\r\n removeValidate(key: string, validateName: string): void {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const validates: Validate[] = control.validates;\r\n if (validates && validates.length > 0) {\r\n const index = validates.findIndex((item) => item.name === validateName);\r\n if (index !== -1) {\r\n validates.splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 移除所有校验\r\n * @author ChenRui\r\n * @date 2021/4/1 21:48\r\n */\r\n removeAllValidates(key: string): void {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n control.validates = [];\r\n }\r\n }\r\n\r\n /**\r\n * @description: 获取校验集合\r\n * @author ChenRui\r\n * @date 2021/1/30 11:40\r\n */\r\n getValidates(key: string): Validate[] {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n return control.validates;\r\n }\r\n return [];\r\n }\r\n /**\r\n * @Description: 设置必输校验\r\n * @author GuoXuHui\r\n * @date 2022-05-25\r\n * @time 10:09\r\n */\r\n setRequiredValidate(key: string, data: boolean) {\r\n if (data) {\r\n this.setValidate(key, { ruleType: ValidateRules.Required.code });\r\n } else {\r\n this.removeValidate(key, ValidateRules.Required.code); // 清除必填校验\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置校验\r\n * @author ChenRui\r\n * @date 2021/1/30 11:54\r\n */\r\n setValidate(key: string, validate: Validate | Validate[] | Rule, isCover = false): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n this.setValidateInner(control, validate, isCover);\r\n }\r\n });\r\n } else {\r\n this.setValidateInner(control, validate, isCover);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 校验提示\r\n * @author ChenRui\r\n * @date 2021/8/18 17:40\r\n */\r\n validateTips(scrollView?: any): boolean {\r\n return formValidateService.validateTips(this, scrollView);\r\n }\r\n\r\n /**\r\n * @description: 全局校验报告\r\n * @author ChenRui\r\n * @date 2021/2/5 11:48\r\n */\r\n validateReport(formGroup?: AbstractControl, validateReports?: ValidateReport[], refreshFeedback = true): ValidateReport[] {\r\n if (validateReports == null) {\r\n validateReports = [];\r\n }\r\n if (formGroup == null) {\r\n formGroup = this.dvForm.desForm.formGroup;\r\n if (refreshFeedback) {\r\n this.dvForm.refreshCheckFeedbackFlag = new Date().getTime();\r\n }\r\n }\r\n if (formGroup != null) {\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n this.validateReport(formGroup.controls[propName], validateReports);\r\n } else if (formGroup.controls[propName] instanceof FormControl && !formGroup.controls[propName].controlAttr.isHideControl) {\r\n const validateResult: ValidateResult = formGroup.controls[propName].validate();\r\n if (validateResult.validateStatus === ValidateStatus.Error.code) {\r\n validateReports.push({\r\n key: formGroup.controls[propName].key,\r\n name: formGroup.controls[propName].controlAttr.formFieldDescribe,\r\n errorMsg: validateResult.errorMsg,\r\n controlType: formGroup.controls[propName].controlAttr.controlType,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return validateReports;\r\n }\r\n\r\n /**\r\n * @description: 表单全局校验\r\n * @author ChenRui\r\n * @date 2021/2/5 14:11\r\n */\r\n validate(refreshFeedback = true): boolean {\r\n const validateReports: ValidateReport[] = this.validateReport(undefined, undefined, refreshFeedback);\r\n return !(validateReports.length > 0);\r\n }\r\n\r\n /**\r\n * @description: 刷新校验\r\n * @author ChenRui\r\n * @date 2021/6/4 19:32\r\n */\r\n refreshValidate(key: string): void {\r\n let control: AbstractControl = this.getControl(key);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(key);\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n });\r\n } else {\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 重置表单校验\r\n * @author ChenRui\r\n * @date 2022/4/6 11:51\r\n */\r\n resetFormValidateState(): void {\r\n this.dvForm.formValidateStateResetMark = new Date().getTime();\r\n }\r\n\r\n /**\r\n * @description: 设置格式化显示和输出函数\r\n * @author ChenRui\r\n * @date 2021/2/4 19:44\r\n */\r\n setFormatDisplayAndOutput(key: string, customFormat: CustomFormat): void {\r\n if (key) {\r\n this.dvForm.customFormats[key] = customFormat;\r\n }\r\n this.refreshAndUpdateData();\r\n }\r\n\r\n /**\r\n * @description: 刷新数据\r\n * @author ChenRui\r\n * @date 2021/2/4 20:22\r\n */\r\n refreshAndUpdateData(): void {\r\n this.dvForm.onRefreshArgumentsHandler(new Date().getTime());\r\n }\r\n\r\n /**\r\n * @description: 获取控件dom对象\r\n * @author ChenRui\r\n * @date 2021/2/26 17:12\r\n */\r\n getControlEl(key: string): any {\r\n const control: AbstractControl = this.getControl(key);\r\n if (control != null && control.controlAttr) {\r\n const els: HTMLCollectionOf<any> = document.getElementsByClassName(\"form-model-item-\" + control.controlAttr.boundProperty);\r\n if (els != null && els.length > 0) {\r\n return els[0];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @description: 检查是否包含上传控件\r\n * @author ChenRui\r\n * @date 2021/4/23 11:30\r\n */\r\n checkHasUploadControl(abstractControl: AbstractControl): boolean {\r\n if (abstractControl instanceof FormGroup) {\r\n const formGroup: FormGroup = abstractControl as FormGroup;\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n const judge = this.checkHasUploadControl(formGroup.controls[propName]);\r\n if (judge) {\r\n return judge;\r\n }\r\n } else if (formGroup.controls[propName] instanceof FormControl) {\r\n if (formGroup.controls[propName].code === FormFieldType.Upload.code) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @description: json格式转表单格式\r\n * @author ChenRui\r\n * @date 2020/8/28 15:20\r\n */\r\n jsonToFormData(params: any): FormData {\r\n const formData = new FormData();\r\n if (params != null) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key] != null && params[key] instanceof Array && params[key].length > 0 && params[key][0] instanceof File) {\r\n params[key].forEach((item: any) => {\r\n formData.append(key, item);\r\n });\r\n } else {\r\n formData.append(key, params[key]);\r\n }\r\n });\r\n return formData;\r\n }\r\n return formData;\r\n }\r\n\r\n /**\r\n * @description: 设置变更历史记录\r\n * @author ChenRui\r\n * @date 2021/4/25 15:55\r\n */\r\n setFieldChangeHistory(fieldChangeHistory: FieldChangeHistory): void {\r\n fieldChangeHistory = fieldChangeHistory || {};\r\n for (const propertyName of Object.keys(fieldChangeHistory)) {\r\n let control: AbstractControl = this.getControl(propertyName, undefined, false);\r\n if (control == null) {\r\n setTimeout(() => {\r\n control = this.getControl(propertyName, undefined, false);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const history = (fieldChangeHistory[propertyName] || []).sort((a, b) => {\r\n const aTime = new Date(a.time).getTime();\r\n const bTime = new Date(b.time).getTime();\r\n return bTime - aTime;\r\n });\r\n control.history = history;\r\n }\r\n });\r\n } else {\r\n control = this.getControl(propertyName, undefined, false);\r\n if (control) {\r\n //control && control instanceof FormControl\r\n const history = (fieldChangeHistory[propertyName] || []).sort((a, b) => {\r\n const aTime = new Date(a.time).getTime();\r\n const bTime = new Date(b.time).getTime();\r\n return bTime - aTime;\r\n });\r\n control.history = history;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 隐藏布局\r\n * @author ChenRui\r\n * @date 2021/11/16 0:01\r\n */\r\n hideLayout(layoutName: string, mark = true): void {\r\n if (layoutName) {\r\n const nodes: any = document.getElementsByClassName(\"lo-form-layout-\" + layoutName);\r\n if (nodes && nodes.length > 0) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n nodes[i].style.display = mark ? \"none\" : \"grid\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置表单值\r\n * @author ChenRui\r\n * @date 2021/8/16 9:29\r\n */\r\n private setFormDataInner(srcData: any, isDefault: boolean, validate: boolean): void {\r\n if (srcData) {\r\n for (const propName of Object.keys(srcData)) {\r\n if (typeof srcData[propName] === \"string\" || typeof srcData[propName] === \"number\") {\r\n this.setValue(propName, srcData[propName], isDefault, false);\r\n } else {\r\n this.setFormData(srcData[propName], isDefault, validate);\r\n }\r\n }\r\n }\r\n if (validate) {\r\n this.validate();\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件值\r\n * @author ChenRui\r\n * @date 2021/4/13 12:50\r\n */\r\n private setControlValue(control: AbstractControl, key: string, val: any, isDefault?: boolean, validate = true): void {\r\n if (control) {\r\n // && control instanceof FormControl\r\n switch (control.code) {\r\n case FormFieldType.InputNumber.code:\r\n if (val && control.controlAttr.zoomMultiple) {\r\n if (control.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n val = this.mathjs.format(this.mathjs.evaluate(`${val} / ${control.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (control.controlAttr.zoomType === ZoomType.narrow.code) {\r\n val = this.mathjs.format(this.mathjs.evaluate(`${val} * ${control.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (val != undefined) {\r\n control.value = val;\r\n } else {\r\n control.value = \"\";\r\n }\r\n break;\r\n case FormFieldType.Select.code:\r\n if (control.controlAttr.isMultipleChoice) {\r\n if (!val) {\r\n val = [];\r\n } else if (typeof val === \"string\") {\r\n val = val.split(\",\");\r\n }\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n case FormFieldType.Cascader.code:\r\n if (val) {\r\n val = val.split(\",\");\r\n } else {\r\n val = [];\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.Switch.code:\r\n if (control.controlAttr.onOpeningValue) {\r\n val = val === true || val === control.controlAttr.onOpeningValue;\r\n } else if (control.controlAttr.whenClosedValue) {\r\n val = !(val === false || val === control.controlAttr.whenClosedValue);\r\n }\r\n control.value = val;\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (val) {\r\n if (typeof val === \"string\") {\r\n val = dayjs(new Date(this.nowDateStr() + \" \" + val));\r\n } else if (val instanceof Date) {\r\n val = dayjs(val);\r\n }\r\n control.value = val;\r\n } else {\r\n control.value = null;\r\n }\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n if (val) {\r\n if (typeof val === \"string\") {\r\n val = dayjs(val, control.dateFormat);\r\n } else if (val instanceof Date) {\r\n val = dayjs(val);\r\n }\r\n control.value = val;\r\n } else {\r\n control.value = null;\r\n }\r\n break;\r\n default: {\r\n control.value = val;\r\n }\r\n }\r\n if (isDefault) {\r\n this.setAttribute(key, Attribute.FieldDefaultValue, JSON.stringify(control.value));\r\n }\r\n if (validate) {\r\n control[\"refreshValidate\"] = new Date().getTime();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件可选项\r\n * @author ChenRui\r\n * @date 2021/4/13 15:09\r\n */\r\n private setControlOptions(control: AbstractControl, key: string, data: any[], defaultVal?: any): void {\r\n if (control && control.controlAttr) {\r\n //control && control instanceof FormControl && control.controlAttr)\r\n storageOptions(control.controlAttr, data);\r\n this.setAttribute(key, Attribute.IsOptionType, OptionType.Fixed.code);\r\n this.setAttribute(key, Attribute.OptionConfig, data);\r\n }\r\n if (defaultVal) {\r\n this.setValue(key, defaultVal, true);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置控件常规属性\r\n * @author ChenRui\r\n * @date 2021/4/13 15:11\r\n */\r\n private setControlAttribute(control: AbstractControl, attribute: Attribute, data: any): void {\r\n if (control && attribute) {\r\n //control && control instanceof FormControl && attribute\r\n control.controlAttr[attribute] = data;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 设置校验内部函数\r\n * @author ChenRui\r\n * @date 2021/7/19 17:51\r\n */\r\n private setValidateInner(control: AbstractControl, validate: Validate | Validate[] | Rule, isCover = false): void {\r\n if (validate != null && (validate as Rule).ruleType) {\r\n validate = validateGeneratorService.getBuiltInValidationRules(validate as Rule, control.controlAttr) as any;\r\n }\r\n if (validate != null) {\r\n if (isCover) {\r\n control.validates = [];\r\n }\r\n control.addValidate(validate);\r\n }\r\n }\r\n\r\n /**\r\n * @description: 生成数据信息\r\n * @author ChenRui\r\n * @date 2021/1/29 10:06\r\n */\r\n private generateData(abstractControl: AbstractControl, obj: any = {}): any {\r\n if (abstractControl instanceof FormGroup) {\r\n const formGroup: FormGroup = abstractControl as FormGroup;\r\n for (const propName of Object.keys(formGroup.controls)) {\r\n if (formGroup.controls[propName] instanceof FormGroup) {\r\n obj[propName] = this.generateData(formGroup.controls[propName], obj[propName]);\r\n } else if (formGroup.controls[propName] instanceof FormControl) {\r\n obj[propName] = this.decodeData(formGroup.controls[propName] as FormControl);\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n /**\r\n * @description: 数据解码输出\r\n * @author ChenRui\r\n * @date 2021/5/29 23:03\r\n */\r\n private decodeData(formControl: FormControl, isFinal = true): any {\r\n let data = formControl.value || \"\";\r\n switch (formControl.code) {\r\n case FormFieldType.InputNumber.code:\r\n if (data && formControl.controlAttr.zoomMultiple) {\r\n if (formControl.controlAttr.zoomType === ZoomType.enlarge.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.narrow.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} / ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n } else if (formControl.controlAttr.zoomType === ZoomType.automatic.code) {\r\n data = this.mathjs.format(this.mathjs.evaluate(`${data} * ${formControl.controlAttr.zoomMultiple}`), { notation: \"fixed\" });\r\n }\r\n }\r\n if (formControl.value === 0) {\r\n data = 0;\r\n }\r\n break;\r\n case FormFieldType.Select.code:\r\n if (formControl.controlAttr.isMultipleChoice && data && Array.isArray(data)) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n if (data && isFinal) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (data) {\r\n data = dayjs(data).format(formControl.controlAttr.timeFormat || \"LTS\");\r\n }\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n if (data) {\r\n data = dayjs(data).format(formControl.controlAttr.dateFormat || \"YYYY-MM-DD\");\r\n }\r\n break;\r\n case FormFieldType.Cascader.code:\r\n if (data) {\r\n data = data.join(\",\");\r\n }\r\n break;\r\n case FormFieldType.Switch.code:\r\n data = !!data;\r\n if (formControl.controlAttr) {\r\n if (data === true && formControl.controlAttr.onOpeningValue != undefined && formControl.controlAttr.onOpeningValue !== \"\") {\r\n data = formControl.controlAttr.onOpeningValue;\r\n } else if (data === false && formControl.controlAttr.whenClosedValue != undefined && formControl.controlAttr.whenClosedValue !== \"\") {\r\n data = formControl.controlAttr.whenClosedValue;\r\n }\r\n }\r\n break;\r\n case FormFieldType.Custom.code:\r\n if (formControl.controlAttr && formControl.controlAttr.customFieldName) {\r\n const customFormat: CustomFormat = this.dvForm.customFormats[formControl.controlAttr.customFieldName];\r\n if (customFormat && customFormat.output) {\r\n data = customFormat.output(data, formControl.controlAttr);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * @description: 获取当前日期字符串\r\n * @author ChenRui\r\n * @date 2021/2/4 11:43\r\n */\r\n private nowDateStr(): string {\r\n const time = new Date();\r\n const day = (\"0\" + time.getDate()).slice(-2);\r\n const month = (\"0\" + (time.getMonth() + 1)).slice(-2);\r\n return time.getFullYear() + \"/\" + month + \"/\" + day;\r\n }\r\n\r\n /**\r\n * @description: uuid生成器\r\n * @author ChenRui\r\n * @date 2021/7/20 11:14\r\n */\r\n private getUuid(): string {\r\n const s: any[] = [];\r\n const hexDigits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n for (let i = 0; i < 36; i++) {\r\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n }\r\n s[14] = \"4\";\r\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\r\n s[8] = s[13] = s[18] = s[23] = \"-\";\r\n const uuid = s.join(\"\");\r\n return uuid;\r\n }\r\n\r\n /**\r\n * @Description: 对比新旧表单值\r\n * @author lzs\r\n * @date 2022/9/3\r\n * @time 21:49\r\n */\r\n private contrast(objectA: any, objectB: any): any {\r\n const object: any = {};\r\n const data: any = {};\r\n const fieldInfoArr: any = [];\r\n if (!objectB || !objectA) {\r\n object.changeLog = \"必传参数不存在\";\r\n return object;\r\n }\r\n const handlerFlag = objectA.handlerFlag;\r\n // console.log(\"======\", this.dvForm.desForm.formGroup.controls);\r\n for (const key in this.dvForm.desForm.formGroup.controls) {\r\n if (!objectA[key] && !objectB[key]) {\r\n continue;\r\n }\r\n const control: AbstractControl = this.getControl(key);\r\n if (!control) {\r\n continue;\r\n }\r\n if (this.getChangedInfo(control, objectA[key], objectB[key])) {\r\n let oldValue = objectA[key]; // 记录新值\r\n const newValue = objectB[key]; // 记录旧值\r\n const fieldInfo: any = {}; //日志信息\r\n if (control.code !== FormFieldType.Custom.code) {\r\n fieldInfo.field_cd = key; //字段英文\r\n const name = control.controlAttr.formFieldDescribe;\r\n fieldInfo.field_nm = name; //字段中文\r\n fieldInfo.field_key = newValue; //当前值\r\n\r\n const newDict = this.translateDictionaries(control, key, newValue); // 新值描述\r\n fieldInfo.field_value = newDict; //当前值描述\r\n\r\n fieldInfo.is_change = \"1\"; //是否变动\r\n\r\n fieldInfo.field_old_key = oldValue; //旧值\r\n const oldDict = this.translateDictionaries(control, key, oldValue); //旧值描述\r\n fieldInfo.field_old_value = oldDict; //field_old_value\r\n object[key] = newValue;\r\n\r\n fieldInfoArr.push(fieldInfo);\r\n if (oldValue === \"null\" || oldValue === \"undefined\") {\r\n oldValue = \"\";\r\n }\r\n const oldName = oldValue ? oldDict : \"空\";\r\n const newName = newValue ? newDict : \"空\";\r\n //除自定义组件均记录日志\r\n object.changeLog = object.changeLog ? object.changeLog + \",\" : \"\";\r\n if (handlerFlag === \"add\") {\r\n object.changeLog = object.changeLog + \"新增【\" + name + \"】\" + \"为“\" + newName + \"”\";\r\n } else {\r\n object.changeLog = object.changeLog + \"修改【\" + name + \"】\" + \"由“\" + oldName + \"”修改为“\" + newName + \"”\";\r\n }\r\n } else {\r\n object[key] = newValue;\r\n }\r\n }\r\n }\r\n object.fieldInfoArr = fieldInfoArr;\r\n return object;\r\n }\r\n /**\r\n * @Description: 获取表单值更改信息\r\n * @author lzs\r\n * @date 2022/10/11\r\n * @time 09:53\r\n */\r\n getChangedInfo(control: any, oldValue: any, newValue: any): boolean {\r\n oldValue = oldValue + \"\";\r\n newValue = newValue + \"\";\r\n if (oldValue === \"null\" || oldValue === \"undefined\") {\r\n return true;\r\n }\r\n let flag = true;\r\n switch (control.code) {\r\n case FormFieldType.Input.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Textarea.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Slider.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Rate.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Select.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Radio.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n oldValue = dateFormat.formatDateTime(oldValue, \"YYYY-MM-dd\");\r\n newValue = dateFormat.formatDateTime(newValue, \"YYYY-MM-dd\");\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Cascader.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.TreeSelect.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Switch.code:\r\n if (oldValue === newValue) flag = false;\r\n break;\r\n case FormFieldType.Custom.code:\r\n break;\r\n }\r\n return flag;\r\n }\r\n /**\r\n * @Description: 翻译字典项\r\n * @author lzs\r\n * @date 2022/9/6\r\n * @time 11:54\r\n */\r\n translateDictionaries(control: any, key: any, value: any): string {\r\n let str = value;\r\n switch (control.code) {\r\n case FormFieldType.Input.code:\r\n break;\r\n case FormFieldType.InputNumber.code:\r\n break;\r\n case FormFieldType.Textarea.code:\r\n break;\r\n case FormFieldType.Slider.code:\r\n break;\r\n case FormFieldType.Rate.code:\r\n break;\r\n case FormFieldType.Select.code:\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n }\r\n break;\r\n case FormFieldType.Checkbox.code:\r\n str = \"\";\r\n if (value) {\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n }\r\n str = str.substring(0, str.length - 1);\r\n }\r\n break;\r\n case FormFieldType.Radio.code:\r\n if (control.controlAttr.generalDictionaryOptions) {\r\n control.controlAttr.generalDictionaryOptions.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n } else {\r\n control.controlAttr.optionConfig.forEach((item: any) => {\r\n if (item.value === value) {\r\n str = item.title;\r\n }\r\n });\r\n }\r\n break;\r\n case FormFieldType.TimePicker.code:\r\n break;\r\n case FormFieldType.DatePicker.code:\r\n str = dateFormat.formatDateTime(value, \"YYYY-MM-dd\");\r\n break;\r\n case FormFieldType.Cascader.code:\r\n str = \"\";\r\n if (value) {\r\n formTreeNodeConvertService.treeNodeConvertToArray(control.controlAttr.treeShapeOptions, [], \"children\").forEach((item: any) => {\r\n value.split(\",\").forEach((index: any) => {\r\n if (item.value === index) {\r\n str = str + item.title + \",\";\r\n }\r\n });\r\n });\r\n str = str.substring(0, str.length - 1);\r\n } else {\r\n str = \"\";\r\n }\r\n break;\r\n case FormFieldType.TreeSelect.code:\r\n str = \"\";\r\n formTreeNodeConvertService.treeNodeConvertToArray(control.controlAttr.treeShapeOptions, [], \"children\").forEach((item: any) => {\r\n if (item.value === value) {\r\n str = str + item.title;\r\n }\r\n });\r\n break;\r\n case FormFieldType.Switch.code:\r\n str = value ? \"开\" : \"关\";\r\n break;\r\n case FormFieldType.Custom.code:\r\n break;\r\n default:\r\n str = value;\r\n break;\r\n }\r\n return str;\r\n }\r\n\r\n /**\r\n * @Description 根据报送类型返回需要隐藏的表单字段\r\n * @Author JiangTao\r\n * @Date 2024-01-30 上午 09:33\r\n */\r\n getFormSubmittedType(form: any, code: any) {\r\n const strArr = code && code.length > 0 ? code : [];\r\n const list: any = this.dvForm.desForm.controls[0].subControls;\r\n const subControlsList: any = formToolsService.loadResource(this.dvForm.desForm.formId).controls[0].subControls;\r\n const submittedTypeList: any = [];\r\n if (strArr.length > 0) {\r\n // 遍历组件实例\r\n list.forEach((item: any, index: any) => {\r\n if (item.formControl) {\r\n // 校验当前字段是否已隐藏,已隐藏的字段不做处理\r\n if (!form.getAttribute(item.formControl.key, Attribute.IsHideControl)) {\r\n // 处理普通表单控件\r\n submittedTypeList.push(item.formControl.key);\r\n // 初始化字段是否隐藏属性\r\n form.setAttribute(item.formControl.key, Attribute.IsHideControl, subControlsList[index].controlAttr.isHideControl);\r\n // 筛选报送类型字段数据处理\r\n this.handleSubmittedData(submittedTypeList, strArr, item);\r\n }\r\n } else if (item.subControls) {\r\n // 处理栅格中表单控件\r\n // 遍历栅格中控件\r\n item.subControls.forEach((control: any, num: any) => {\r\n // 校验当前字段是否已隐藏,已隐藏的字段不做处理\r\n if (!form.getAttribute(control.formControl.key, Attribute.IsHideControl)) {\r\n submittedTypeList.push(control.formControl.key);\r\n // 初始化字段是否隐藏属性\r\n form.setAttribute(control.formControl.key, Attribute.IsHideControl, subControlsList[index].subControls[num].controlAttr.isHideControl);\r\n // 筛选报送类型字段数据处理\r\n this.handleSubmittedData(submittedTypeList, strArr, control);\r\n }\r\n });\r\n }\r\n });\r\n // 隐藏无需展示的表单字段\r\n submittedTypeList.forEach((item: any) => {\r\n form.setAttribute(item, Attribute.IsHideControl, true);\r\n });\r\n } else {\r\n // 默认展示全部字段\r\n list.forEach((item: any, index: any) => {\r\n if (item.formControl) {\r\n form.setAttribute(item.formControl.key, Attribute.IsHideControl, subControlsList[index].controlAttr.isHideControl);\r\n } else if (item.subControls) {\r\n item.subControls.forEach((control: any, num: any) => {\r\n form.setAttribute(control.formControl.key, Attribute.IsHideControl, subControlsList[index].subControls[num].controlAttr.isHideControl);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @Description 筛选报送类型字段数据处理\r\n * @Author JiangTao\r\n * @Date 2024-01-30 下午 08:50\r\n */\r\n private handleSubmittedData(submittedTypeList: any, codeArr: any, submittedData: any): void {\r\n let submittedType: any = [];\r\n if (JSON.parse(submittedData.formControl.controlAttr.busAttr).submittedType !== \"\") {\r\n // 获取字段报送类型\r\n submittedType = JSON.parse(submittedData.formControl.controlAttr.busAttr).submittedType.split(\",\");\r\n // 遍历查询报送类型\r\n for (let i = 0; i < codeArr.length; i++) {\r\n // 判断是否为查询的报送类型字段\r\n if (submittedType.filter((type: any) => type === codeArr[i]).length > 0 && submittedTypeList.indexOf(submittedData.formControl.key) >= 0) {\r\n submittedTypeList.splice(submittedTypeList.indexOf(submittedData.formControl.key), 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @Description 获取报送类型枚举(数组)\r\n * @Author JiangTao\r\n * @Date 2024-01-30 下午 03:30\r\n */\r\n getSubmittedType() {\r\n const list: any = [];\r\n Object.values(SubmittedType).forEach((item: any) => {\r\n list.push({\r\n value: item.code,\r\n label: item.name,\r\n });\r\n });\r\n return list;\r\n }\r\n}\r\n","import { render } from \"./DvForm.vue?vue&type=template&id=1fb7b4f2&scoped=true&ts=true\"\nimport script from \"./DvForm.vue?vue&type=script&lang=ts\"\nexport * from \"./DvForm.vue?vue&type=script&lang=ts\"\n\nimport \"./DvForm.vue?vue&type=style&index=0&id=1fb7b4f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1fb7b4f2\"]])\n\nexport default __exports__","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"mathjs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"dayjs/locale/zh-cn\");","import { App } from \"vue\";\r\nimport DyForm from \"./components/form/DvForm.vue\";\r\nimport { formToolsService } from \"@/services\";\r\nimport { DEFAULT_FORM_FILE_NAME } from \"./constants/config/form.config\";\r\nimport { formLocalForageService } from \"@/services\";\r\nimport { dictLocalForageService } from \"@/services\";\r\nimport { create, subtractDependencies, addDependencies, multiplyDependencies, divideDependencies, formatDependencies, evaluateDependencies, MathJsStatic } from \"mathjs\";\r\nimport { cleanLocalForageService } from \"@/services\";\r\n\r\nexport * from \"./components/index\";\r\nexport * from \"./constants/index\";\r\nexport * from \"./core/index\";\r\nexport * from \"./domain/index\";\r\nexport * from \"./services/index\";\r\nexport * from \"./store/index\";\r\nexport * from \"./types/vfForm\";\r\nimport \"./styles/index.scss\";\r\n\r\nimport \"dayjs/locale/zh-cn\";\r\nimport dayjs from \"dayjs\";\r\n\r\nconst components: any = {\r\n DyForm,\r\n};\r\n\r\nconst install: any = function (app: App, options: any) {\r\n if (install.installed) return;\r\n install.installed = true;\r\n // Modal.install(vue);\r\n Object.keys(components).forEach((key) => {\r\n app.component(key, components[key]);\r\n });\r\n dayjs.locale(\"zh-cn\");\r\n\r\n const url: string = options && options.url ? options.url : \"./resources/json/\" + DEFAULT_FORM_FILE_NAME;\r\n app.config.globalProperties.$qlForm = {\r\n url: url,\r\n contextPath: options.contextPath || \"/ms-loong\",\r\n dictUrl: options && options.dictUrl ? options.dictUrl : \"\",\r\n dictRestLoadMode: options && options.dictRestLoadMode ? options.dictRestLoadMode : \"GET\",\r\n dictRestLoadBody: options && options.dictRestLoadBody ? options.dictRestLoadBody : undefined,\r\n dictRestLoadHeaders: options && options.dictRestLoadHeaders ? options.dictRestLoadHeaders : undefined,\r\n dictRestLoadOnlyBody: options && options.dictRestLoadOnlyBody ? options.dictRestLoadOnlyBody : false,\r\n loadMode: options && options.loadMode ? options.loadMode : \"static\",\r\n appId: options && options.appId ? options.appId : \"\",\r\n onlySimpleLoadConfig: options && options.onlySimpleLoadConfig ? options.onlySimpleLoadConfig : false,\r\n urls: options?.urls,\r\n dictUrls: options?.dictUrls,\r\n };\r\n app.config.globalProperties.$formToolsService = formToolsService;\r\n (window as any).$app = app;\r\n cleanLocalForageService.init();\r\n formLocalForageService.init();\r\n dictLocalForageService.init();\r\n\r\n const mathjsDependencies: any = {\r\n formatDependencies,\r\n subtractDependencies,\r\n multiplyDependencies,\r\n evaluateDependencies,\r\n addDependencies,\r\n divideDependencies,\r\n };\r\n const mathjs: Partial<MathJsStatic> = create(mathjsDependencies, {\r\n number: \"BigNumber\",\r\n precision: 20,\r\n });\r\n app.config.globalProperties.$mathjs = mathjs;\r\n};\r\n\r\nconst VueLoForm = {\r\n install,\r\n};\r\nexport default VueLoForm;\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","_classCallCheck","a","n","TypeError","require","FormFieldClass","Layout","code","name","icon","Base","Senior","BuiltLabel","ORDERED_LIST","ControlFormatType","GENERAL","AMOUNT_OF_MONEY","BANK_CARD_NUMBER","CELL_PHONE_NUMBER","LANDLINE_NUMBER","FormBusAttr","SUBMITTED_TYPE","IS_SUPPLEMENT","IS_KEY_ELEMENTS","IS_TRACK","FormType","Pc","Mobile","LateralArrangement","AlignLeft","RightAlignment","Center","BothSidesAreEquallySpaced","AlignBothEnds","MoneyUnit","Yuan","TenThousandYuan","HundredMillionYuan","SubmittedType","EAST","CITIC","TOTAL_ELEMENTS","PBC_CAPITAL_DECLARATION","ENTERPRISE_CREDIT_REFERENCE","OTOHAF_SUBMISSION","EAST_F","PERSONAL_CREDIT","BS_09","BS_10","BS_11","BS_12","BS_13","BS_14","BS_15","BS_16","BS_17","BS_18","BS_19","BS_20","BS_21","BS_22","BS_23","BS_24","BS_25","BS_26","BS_27","BS_28","SupportUploadType","Arbitrarily","Custom","UploadType","Jpeg","Png","Gif","Bmp","Doc","html","Mp3","Mp4","Pdf","Ppt","Xls","Xml","Zip","Wps","ValidateRules","SameValue","hasContent","hasDescribe","MailBox","RegEx","MinTextLength","MaxTextLength","MinValue","MaxValue","SpecifiedValue","SpecifiedDigitsNumber","DateNotEarlierThan","DateNoLaterThan","SpecifiedRangeNumber","PhoneNumber","Required","LineUnique","LetterSpace","AlphanumericUnderline","Alphanumeric","JsMethodVerification","BackEndVerification","LandlineNumber","VerticalArrangement","AlignRight","value","textAlign","AlignTop","sfc","props","target","__vccOpts","key","val","_defineProperties","e","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","toPropertyKey","_createClass","prototype","Switch","Disable","Enable","ValidateStatus","Success","Warning","Error","Validating","CacheType","FORM","TABLE","DICT","OptionType","Fixed","Dynamic","toPrimitive","_typeof","Symbol","i","call","String","Number","FormFieldType","Input","type","Textarea","InputNumber","Select","Radio","Checkbox","TimePicker","DatePicker","Slider","Rate","Upload","Editor","Cascader","TreeSelect","Empty","Grid","iterator","constructor","DynamicOptionType","GeneralDictionary","TreeDictionary","ValidateGeneratorService","formControl","controlAttr","_this","verificationRules","validates","forEach","item","validate","getBuiltInValidationRules","push","addValidate","ruleType","genSameValue","genMailBox","genRegEx","genMinTextLength","genMaxTextLength","genMinValue","genMaxValue","genSpecifiedValue","genSpecifiedDigitsNumber","genDateNotEarlierThan","genDateNoLaterThan","genSpecifiedRangeNumber","genPhoneNumber","genRequired","controlType","genLineUnique","genLetterSpace","genAlphanumericUnderline","genAlphanumeric","genJsMethodVerification","genBackEndVerification","genLandlineNumber","validateFunc","ruleContent","validateStatus","errorMsg","concat","emreg","test","eval","describe","undefined","countDecimals","Math","floor","toString","split","number","decimals","newString","round","numString","lastIndexOf","cutoff","d1","substring","d2","isNaN","roundedNum","decs","toDate","moment","indexOf","arr","reg","trim","Array","isArray","msg","func","Function","validateGeneratorService","ZoomType","enlarge","narrow","automatic","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","get","obj","prop","hasOwnProperty","toStringTag","p","window","currentScript","document","src","match","render","_ctx","_cache","$props","$setup","$data","$options","_ctx$desForm","_component_dv_form_layout","_resolveComponent","desForm","controls","_openBlock","_createElementBlock","ref","class","_normalizeClass","edit","styleMode","loFormTheme","_Fragment","_renderList","_createBlock","control","customFormats","linkList","onLinkClick","linkClick","index","onChange","$event","onFocus","onBlur","onClick","onAddonBefore","onAddonBeforeHandler","onAddonAfter","onAddonAfterHandler","onAddItem","selectAddItem","_createSlots","_","keys","$slots","propName","fn","_withCtx","slotProps","_renderSlot","content","_createCommentVNode","_arrayLikeToArray","_unsupportedIterableToArray","arrayLikeToArray","slice","from","_createForOfIteratorHelper","unsupportedIterableToArray","_n","F","s","done","f","u","next","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","assertThisInitialized","_callSuper","possibleConstructorReturn","isNativeReflectConstruct","apply","_setPrototypeOf","_inherits","create","_defineProperty","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_component_a_tooltip","_component_question_circle_outlined","_component_clock_circle_outlined","_component_a_timeline_item","_component_a_timeline","_component_a_popconfirm","_component_search_outlined","_component_a_textarea","_component_a_input_number","_component_a_menu_item","_component_a_menu","_component_down_outlined","_component_a_button","_component_a_dropdown","_component_a_popover","_component_v_nodes","_component_a_divider","_component_plus_outlined","_component_a_select_option","_component_a_select","_component_a_radio","_component_a_radio_group","_component_a_checkbox","_component_a_col","_component_a_row","_component_a_checkbox_group","_component_a_switch","_component_a_time_picker","_component_a_month_picker","_component_a_date_picker","_component_a_slider","_component_a_cascader","_component_a_tree_select","_component_a_rate","_component_upload_outlined","_component_a_upload","_component_stretch_text","_component_a_form_item","_component_a_form","formFieldClass","isHideControl","formFieldType","layoutName","layout","style","_normalizeStyle","emptyLayoutContainerStyle","default","subControls","parentControl","onFixFormLayout","onHideControl","scopedPropName","_ref4","generalLayoutContainerStyle","_ref5","width","divWidthCompatibleToIe","_createElementVNode","_createVNode","labelCol","labelSpanWidth","wrapperCol","controlSpanMaxWidth","controlSpanWidth","colon","labelAlign","required","validateResult","help","provideInjectData","boundProperty","label","isHideTitle","isBoldTitle","color","titleColor","_toDisplayString","formFieldDescribe","submittedType","placement","title","submittedTypeStr","overlayClassName","submittedSvg","tips","history","dot","time","before","_createTextVNode","after","author","historySvg","_resolveDynamicComponent","inputShape","bindingPrefix","builtInFrontLabel","bindingSuffix","builtInPostLabel","placeholder","disabled","isNotEdit","autoCompleteOptions","onInput","rows","textareaRows","showCount","maxCharacterCount","maxlength","zoomType","moneyUnits","moneyUnitsIndentScale","tabindex","trigger","getPopupContainer","triggerNode","parentNode","body","step","min","minValue","max","maxValue","formatter","numberFormatter","parser","numberParser","precision","decimalPlaces","onInputNumberFocus","onInputNumberBlur","unit","overlay","handleMoneyUnitMenuClick","defaultMoneyUnit","numberPopoverVisible","amountCapitalization","zoomMultiple","isMultipleChoice","dropdownClassName","hiddenDropdown","showArrow","mode","filterOption","dropdownRender","_ref2","menu","menuNode","vnodes","canAddEntry","onMousedown","preventDefault","options","checkboxStyle","checked","onOpeningText","whenClosedText","locale","is12Hours","useMonthPicker","format","dateFormat","isShowHoliday","showTime","showPickerTime","dateRender","_ref3","current","date","isRest","isWeekday","isRadingDay","renderExtraFooter","changeOnSelect","cascaderFilter","cascaderOptions","treeNodeFilterProp","maxHeight","overflow","treeSelectOptions","treeDefaultExpandAll","isTreeOpen","accept","uploadType","multiple","onRemove","handleRemove","beforeUpload","handleUploadChange","customFieldName","formatData","textFold","fieldKey","href","formTemplate","formId","appId","domainClassId","objectId","formType","formName","formAlias","formDescribe","useState","desDomainClass","desFormLayouts","layoutId","parentLayoutId","layoutType","gridSpace","gridColumnConfig","gridLateralArrangement","gridVerticalArrangement","layoutOrder","labelSpan","controlSpan","subDesFormLayout","desFormControls","desBusObject","SUBMITTED_SVG_XML","HISTORY_SVG_XML","FORM_ERROR_MODAL_SVG_XML","DROP_DOWN_LIST_SVG_XML","transform","configs","sort","b","order","join","generateGridTemplateColumns","generateGridColumnEnd","ApiService","Accept","accessToken","jti","Authorization","_fetch","fetch","_x","_x2","_x3","_x4","_x5","arguments","path","query","method","header","urlQueryConvert","headers","then","response","status","statusText","url","json","error","message","connectiveSymbol","idx","apiService","NAME","STORE_NAME","DICT_STORE_NAME","CleanLocalForageService","$app","config","globalProperties","$qlForm","formConfig","driver","sourceLocalForage","version","storeName","description","localForage","setItem","getItem","dropInstance","cleanLocalForageService","DictLocalForageService","dictLocalForageService","FormBeanUtilsService","JSON","parse","stringify","str","formBeanUtilsService","FormLocalForageService","formLocalForageService","_arrayWithHoles","_iterableToArrayLimit","l","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DesForm","formGroup","DesFormLayout","FormTreeNodeConvertService","data","nodeContrast","parentId","nds","filter","copy","children","arrayConvertToTreeNode","id","nzNodeContrast","_this2","isDisabledLeaf","nodes","node","isLeaf","selected","selectable","disableCheckbox","expanded","_i","_Object$keys","treeNodeConvertToNzTreeNode","treeNode","nzCascaderOptionContrast","_this3","loading","parent","_i2","_Object$keys2","treeNodeConvertToCascaderOption","_this4","mapNodeOptions","nzTreeNodeConvertToMap","childName","formTreeNodeConvertService","treeNodeConvertToArray","FormStore","FORMS","VERSION","formStore","DictStore","nzTreeNodeOptions","DICTS","TREE_DICTS","MAP_DICTS","MAP_TREE_DICTS","dictStore","DEFAULT_FORM_FILE_NAME","DEFAULT_DICT_FILE_NAME","DEFAULT_DICT_URL","RouterService","subapp","pushState","parameter","urlParameterToParams","params","array","kv","decodeURIComponent","mark","routerService","FormValidateService","formApis","scrollView","actualFormApis","allError","errMessage","formApi","errors","validateReport","err","console","log","Modal","confirm","h","innerHTML","onOk","showErrorModal","okText","cancelText","_formApis$","_allError$","errorEl","getControlEl","getElementById","scrollTo","top","offsetTop","behavior","running","event","scrollTop","documentElement","calculationError","removeEventListener","showErrInput","addEventListener","el","count","interval","setInterval","opacity","clearInterval","formValidateService","FormToolsService","bool","supHoliday","setProperty","IS_FIRST_LOADED","Promise","resolve","init","res","all","initDesign","initDict","selectHolidays","_ref","designRes","dictRes","contextPath","localStorage","traddayList","weekdayList","workdayList","LOAD_SUCCESS","getForms","getVersion","forms","formVersion","loadMode","desForms","loadDesign","cacheType","desCacheVersion","cacheVersionNumber","formUrl","storageAddress","resEx","setVersion","LOAD_FAIL","urls","mergeUrlByType","mergeUrlByCacheId","downloadUrl","appIds","resp","_resp$data","_query$appIds","address","cacheVersionMap","_item$desCacheVersion","_query$appIds2","_resp$data2","_query$appIds3","_item$desCacheVersion2","cacheVersionId","mergeFetchDesign","newDesForms","newDesForm","formatDesForm","setForms","onlySimpleLoadConfig","createFileDownloadAuthorizationHeader","fetches","getDicts","getTreeDicts","getMapDicts","getMapTreeDicts","_ref6","dicts","treeDicts","mapDicts","mapTreeDicts","dictVersion","dictUrl","sysDictDetailOptions","sysDictTreeDetailOptions","mapSysDictDetailOptions","mapSysDictTreeDetailOptions","loadDict","url1","getPathFromUrl","getParamsFromUrl","dictRestLoadOnlyBody","dictRestLoadMode","toLocaleUpperCase","dictRestLoadBody","dictRestLoadHeaders","distUrl","_this5","mergeFetchDict","sysDictInfos","dictionaryFormatCollection","inidDictOptions","setDicts","setTreeDicts","setMapDicts","setMapTreeDicts","_this6","fetchDicts","dictInfos","newDictInfos","empObj","filterDist","dictId","_this7","sysDictInfo","dictCd","dictNm","dictTp","arrayConvertToNzTreeNode","comDictKeyValues","it","dictDetailsContrast","nzDictDetailsContrastContrast","treeDictKeyValues","suprDicPk","dictTreeDetailsContrast","nzDictTreeDetailsContrastContrast","mapTreeNodeOptions","sourceDesForm","recursionFormatForm","sortControls","_this8","formFieldId","desFormControl","values","find","active","isPasswordBox","enableAutoComplete","isFixedRowHeight","thousandthPercentileFormat","isShowCapitalization","isLineFeedDisplay","optionConfig","generalDictionaryOptions","treeShapeOptions","isSupportMultiple","customUploadType","isSearchable","isClearButton","desFormLayout","layoutControl","_this9","controlA","controlB","x","y","tableFieldOrder","simple","createBasicHeaders","validateTips","responseType","formToolsService","currencyDigits","integral","decimal","outputCharacters","zeroCount","quotient","modulus","MAXIMUM_NUMBER","CN_ZERO","CN_ONE","CN_TWO","CN_THREE","CN_FOUR","CN_FIVE","CN_SIX","CN_SEVEN","CN_EIGHT","CN_NINE","CN_TEN","CN_HUNDRED","CN_THOUSAND","CN_TEN_THOUSAND","CN_HUNDRED_MILLION","CN_SYMBOL","CN_DOLLAR","DROP","CN_TEN_CENT","CN_CENT","CN_INTEGER","parts","digits","radices","bigRadices","prefix","substr","replace","divisor","num","DesFormControl","extendBoundPropertyOne","extendBoundPropertyTwo","fieldDefaultValue","titleWidth","controlWidth","initRowHeight","formatType","moneyUnit","defineOptionalUnits","defineOptionalUnitsDefault","isOptionType","dynamicOptionType","generalDictionary","treeShape","disableNonLeafNodes","timeFormat","maxUploadNumber","limitSize","supportUploadType","extendUploadType","attachmentExtendProperties","onOpeningValue","whenClosedValue","busAttr","itemWidth","AbstractControl","FormControl","_AbstractControl","formState","setValue","_loop","findIndex","splice","result","textNoticeCallback","FormGroup","transformReverse","extractOptions","storageOptions","encode","_getCurrentInstance","proxy","getCurrentInstance","mathjs","$mathjs","evaluate","notation","switchEnumFiled","attribute","defaultVal","_Object$values","switchEnum","switchEnumConvert","unfold","ifOver","StretchText","_Vue","_len","args","_key","onContentHandle","$emit","spanBox","offsetHeight","textBox","Vue","__decorate","Prop","Ref","Watch","Options","__exports__","char_dict","full_dict","polyphone","checkPolyphone","charcase","pinYin","getFullChars","RegExp","len","ch","unicode","charCodeAt","_getFullChar","toLocaleLowerCase","getCamelChars","chars","charAt","_getChar","_getResult","_capitalize","first","toUpperCase","spare","strlen","j","swap1","swap2","k","DvFormLayout","newVal","$nextTick","initFormControlData","_this$control","_this$parentControl","verificationRule","controlFormatType","replaceUnit","parentControlAttr","toLowerCase","items","cascaderRecursion","treeSelectRecursion","hasFeedback","metaRefresh","context","option","dayjs","cascaderContextRecursion","treeSelectContextRecursion","customFormat","display","inputValue","some","currentIndex","cascaderOption","currentText","subText","subTitle","widthCompatibleMode","ActiveXObject","isIe","configIndex","proportion","total","ratio","isMobileBrowser","_this$control2","gridTemplateColumns","_this$parentControl2","_this$control3","gridColumnEnd","mobileRegex","tabletRegex","userAgent","navigator","isMobile","isTablet","Date","attrSubmittedType","map","submittedTypeCheckedNode","parseFloat","pureNumber","file","newFileList","fileList","_event$formControl","calDate","DateTime","$d","year","getFullYear","month","getMonth","strDate","getDate","Inject","immediate","filters","components","_components","PlusOutlined","Form","FormItem","AutoComplete","Option","displayName","OptGroup","RadioGroup","CheckboxGroup","Tooltip","InputPassword","Popover","Popconfirm","Timeline","TimelineItem","Dropdown","Menu","Item","Button","Divider","MonthPicker","Row","Col","attrs","QuestionCircleOutlined","ClockCircleOutlined","DownOutlined","UploadOutlined","SearchOutlined","DateFormatService","dayMap","day","getDay","week","hours","getHours","minutes","getMinutes","seconds","getSeconds","startTime","endTime","getTime","Attribute","FormApi","getUuid","dvForm","DvForm","apiMetaRefresh","generateData","oldVal","contrast","jsonToFormData","srcData","isDefault","setFormDataInner","setTimeout","showError","subControl","getControl","decodeData","setControlValue","text","setControlOptions","setControlAttribute","getValidate","validateName","setValidate","removeValidate","isCover","setValidateInner","validateReports","refreshFeedback","refreshCheckFeedbackFlag","formValidateStateResetMark","refreshAndUpdateData","onRefreshArgumentsHandler","els","getElementsByClassName","abstractControl","_i3","_Object$keys3","judge","checkHasUploadControl","formData","FormData","File","append","fieldChangeHistory","propertyName","_Object$keys4","_i4","aTime","bTime","_i5","_Object$keys5","setFormData","nowDateStr","setAttribute","FieldDefaultValue","IsOptionType","OptionConfig","_i6","_Object$keys6","isFinal","output","hexDigits","random","uuid","objectA","objectB","object","fieldInfoArr","changeLog","handlerFlag","getChangedInfo","oldValue","newValue","fieldInfo","field_cd","field_nm","field_key","newDict","translateDictionaries","field_value","is_change","field_old_key","oldDict","field_old_value","oldName","newName","flag","formatDateTime","form","strArr","list","subControlsList","loadResource","submittedTypeList","getAttribute","IsHideControl","handleSubmittedData","codeArr","submittedData","_loop2","DyForm","_provided","win","themes","formTheme","$loFormTheme","initDesForm","isReset","_this$formApi","model","analysisBindingObjects","generateFormGroup","initControlForm","generateFormApi","setFieldChangeHistory","formView","$refs","cons","offsetLeft","clientWidth","con1","con2","models","objectExtraction","objectMerge","findDictOptions","propertys","lastMd","md","defaultValue","securityValue","_step","_iterator","subTtems","subValue","modelX","modelY","group","subFormGroup","addControl","_control$controlAttr","findFormControlByProperty","fillCheckRule","currentFormGroup","formObject","Provide","install","app","installed","component","dictUrls","$formToolsService","mathjsDependencies","formatDependencies","subtractDependencies","multiplyDependencies","evaluateDependencies","addDependencies","divideDependencies","VueLoForm"],"ignoreList":[],"sourceRoot":""}