{"version":3,"sources":["webpack:///./src/components/page/person/gemodel.vue?98c4","webpack:///./node_modules/dayjs/plugin/isLeapYear.js","webpack:///./node_modules/core-js/internals/delete-property-or-throw.js","webpack:///./node_modules/echarts/lib/model/referHelper.js","webpack:///./node_modules/echarts/lib/chart/helper/createSeriesData.js","webpack:///./node_modules/echarts/lib/coord/axisModelCommonMixin.js","webpack:///./src/util/class/fjbDrug.ts","webpack:///./src/util/class/llDrug.ts","webpack:///./src/util/publicMethod.ts","webpack:///./node_modules/core-js/modules/es.array.unshift.js","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barTitle.vue?415d","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/mostRecordsModel.vue?16de","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/mainAnalysis.vue?d3bd","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/tjModal/tjModal.vue?6f64","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysis.vue?51d3","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varianceanalysisModule.vue?28b2","webpack:///./node_modules/echarts/lib/coord/axisTickLabelBuilder.js","webpack:///./node_modules/echarts/lib/coord/Axis.js","webpack:///./src/util/class/tmpl.ts","webpack:///./node_modules/@element-plus/icons-vue/dist/es/_virtual/plugin-vue_export-helper.mjs","webpack:///./src/components/public/cCheckbox/cCheckbox2.vue?4819","webpack:///./src/components/public/cCheckbox/cCheckbox2.vue?4c2a","webpack:///./src/components/public/cCheckbox/cCheckbox2.vue","webpack:///./node_modules/dayjs/locale/zh-cn.js","webpack:///./node_modules/@element-plus/icons-vue/dist/es/plus.mjs","webpack:///./node_modules/@element-plus/icons-vue/dist/es/check.mjs","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barEchart.vue?72b4","webpack:///./src/components/public/cCheckbox/cCheckbox2.vue?8a41","webpack:///./src/components/public/cSlide/cSlide.vue?e25d","webpack:///./node_modules/echarts/lib/chart/helper/labelHelper.js","webpack:///./src/components/page/person/components/effcoll.vue?089f","webpack:///./node_modules/@element-plus/icons-vue/dist/es/refresh-left.mjs","webpack:///./node_modules/echarts/lib/processor/dataSample.js","webpack:///./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","webpack:///./node_modules/echarts/lib/chart/bar/BarSeries.js","webpack:///./node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","webpack:///./node_modules/echarts/lib/util/shape/sausage.js","webpack:///./node_modules/echarts/lib/coord/CoordinateSystem.js","webpack:///./node_modules/echarts/lib/label/sectorLabel.js","webpack:///./node_modules/echarts/lib/chart/bar/BarView.js","webpack:///./node_modules/echarts/lib/chart/bar/install.js","webpack:///./node_modules/echarts/lib/visual/visualDefault.js","webpack:///./node_modules/echarts/lib/visual/VisualMapping.js","webpack:///./node_modules/echarts/lib/visual/visualSolution.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapModel.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapView.js","webpack:///./node_modules/echarts/lib/component/helper/sliderMove.js","webpack:///./node_modules/echarts/lib/component/visualMap/helper.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousView.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualMapAction.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualEncoding.js","webpack:///./node_modules/echarts/lib/component/visualMap/preprocessor.js","webpack:///./node_modules/echarts/lib/component/visualMap/installCommon.js","webpack:///./node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","webpack:///./node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js","webpack:///./node_modules/echarts/lib/component/visualMap/install.js","webpack:///./node_modules/echarts/lib/coord/cartesian/GridModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/AxisModel.js","webpack:///./node_modules/echarts/lib/coord/axisDefault.js","webpack:///./node_modules/echarts/lib/coord/axisCommonTypes.js","webpack:///./node_modules/echarts/lib/coord/axisModelCreator.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Axis2D.js","webpack:///./node_modules/echarts/lib/coord/axisAlignTicks.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Grid.js","webpack:///./node_modules/echarts/lib/component/axis/axisSplitHelper.js","webpack:///./node_modules/echarts/lib/component/axis/CartesianAxisView.js","webpack:///./node_modules/echarts/lib/component/grid/installSimple.js","webpack:///./node_modules/echarts/lib/component/grid/install.js","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barEchart.vue?b4ed","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barEchart.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barTitle.vue?ab15","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/barTitle.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/mostRecordsModel.vue?8ff1","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/components/mostRecordsModel.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/mainAnalysis.vue?2744","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/mainAnalysis/mainAnalysis.vue","webpack:///./node_modules/@element-plus/icons-vue/dist/es/arrow-up-bold.mjs","webpack:///./node_modules/@element-plus/icons-vue/dist/es/histogram.mjs","webpack:///./src/components/public/cSlide/cSlide.vue?a6a5","webpack:///./src/components/public/cSlide/cSlide.vue","webpack:///./src/components/page/person/gemodel.vue?c54d","webpack:///./src/components/page/person/gemodel.vue?b79e","webpack:///./src/components/page/person/gemodel.vue","webpack:///./src/util/class/variance.ts","webpack:///./node_modules/@element-plus/icons-vue/dist/es/arrow-down.mjs","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/moreCheckSelect/moreCheckSelect.vue?c786","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/moreCheckSelect/moreCheckSelect.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varanceGroupWord/varanceGroupWord.vue?3ee2","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varanceGroupWord/varanceGroupWord.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/tjModal/tjModal.vue?b515","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/tjModal/tjModal.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varianceanalysisModule.vue?1447","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varianceanalysisModule.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysis.vue?62ca","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysis.vue","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/moreCheckSelect/moreCheckSelect.vue?224f","webpack:///./src/views/Cass/Datanalysis/varianceanalysis/varianceanalysisModule/varanceGroupWord/varanceGroupWord.vue?abd3","webpack:///./src/components/page/person/components/effcoll.vue?d085","webpack:///./src/util/class/effcoll.ts","webpack:///./src/components/page/person/components/effcoll.vue?31b3","webpack:///./src/components/page/person/components/effcoll.vue","webpack:///./node_modules/@element-plus/icons-vue/dist/es/delete.mjs","webpack:///./src/util/class/synDiffDrug.ts"],"names":["e","t","module","exports","this","prototype","isLeapYear","$y","tryToString","$TypeError","TypeError","O","P","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","seriesModel","get","result","fetch","fetchers","cartesian2d","xAxisModel","getReferringComponents","models","yAxisModel","set","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","geo","parallel","ecModel","parallelModel","getComponent","dimensions","slice","parallelAxisIndex","axisIndex","index","axisModel","axisDim","getCoordSysDimDefs","coordSysInfo","coordSysDimDefs","registeredCoordSys","CoordinateSystem","dim","dimInfo","name","axisType","type","getDimensionsInfo","injectOrdinalMeta","dimInfoList","createInvertedIndices","hasNameEncode","dimIndex","coordDim","categoryAxisModel","ordinalMeta","getOrdinalMeta","otherDims","itemName","createSeriesData","sourceRaw","opt","source","sourceManager","getSourceManager","isOriginalSource","getSource","sourceFormat","useEncodeDefaulter","encodeDefaulter","createDimensionOptions","coordDimensions","generateCoord","encodeDefine","getEncode","canOmitUnusedDimensions","schema","store","getSharedDataStore","stackCalculationInfo","data","SeriesData","setCalculationInfo","dimValueGetter","isNeedCompleteOrdinalData","itemOpt","dimName","dataIndex","defaultDimValueGetter","hasItemOption","initData","sampleItem","firstDataNotNull","arr","i","length","AxisModelCommonMixin","getNeedCrossZero","option","scale","getCoordSysModel","FjbDrug","LlDrug","constructor","id","qty","unit","llUsage","precautions","remark","factory","articleUpdate","articleTitle","llId","llCode","llName","llAlias","llmainCategory","llSmallCategory","stdLlId","stdLlCode","stdLlName","stdLlAlias","stdLlmainCategory","stdLlSmallCategory","pbFn","dayjs","extend","locale","phone","re","test","synDiffDrug","fjbDrug","drugId","drugName","checkRemind","defaultMethod","direction","fjbDrugId","fjbDrugName","major","number","pharmacology","specs","drugType","drugState","rxType","SynDiffDrug","attention","aliasName","customaryName","llDrug","drugUnit","drugUsage","incompatibility","attentions","stdDrugCode","stdDrugName","category","drugCode","synDiffDrugs","fjbDrugs","j","drug","Object","assign","drugList","temDrug","JSON","parse","stringify","synDiff","flag","msg","synDiffCode","mainPoints","tmpl","dxCode","el","content","weight","tem","curdrugobj","pwjjList","fjDrug","len","taboo","pwjj","pwjjDrug","checkDrugName","indexOf","k","innerDrug","sbf","sbfDrug","sjw","sjwDrug","cdyl","map","item","push","code","list","num","changeNum","getWan","temp","strArr","toString","split","reverse","newNum","keyValue","parseInt","oKeyValue","overWan","Math","floor","noWan","array","hash","key","trim","arr1","arr2","arr3","label","times","date","Date","years","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","seconds","getSeconds","res","formatNumber","join","n","str","r","deg","x","round","sin","y","cos","left","top","start","end","differ","random","m","d","shif","low","high","orderKey","tmp","timestamp","getTime","randomNum","randomNum2","recipeId","String","TreeNode","child","deep","PermutationSequence","treeRoot","solution","dataArray","constrator","makeTree","root","newNode","node","backtrack","sel","pop","Array","getSolution","element","offsetTop","offsetLeft","current","offsetParent","windowWidth","window","innerWidth","document","documentElement","clientWidth","body","$","toObject","lengthOfArrayLike","setArrayLength","deletePropertyOrThrow","doesNotExceedSafeInteger","INCORRECT_RESULT","unshift","SILENT_ON_NON_WRITABLE_LENGTH","defineProperty","writable","error","target","proto","arity","forced","argCount","arguments","to","inner","createAxisLabels","axis","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","ticks","getTicks","tick","value","labelModel","getLabelModel","makeCategoryLabelsActually","isBlank","labels","labelCategoryInterval","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","tickCategoryInterval","ticksCache","optionTickInterval","labelsResult","labelItem","tickValue","labelFormatter","idx","level","formattedLabel","rawLabel","getLabel","prop","cache","autoInterval","calculateCategoryInterval","params","fetchAutoCategoryIntervalCalculationParams","rotation","axisRotate","labelRotate","PI","ordinalScale","ordinalExtent","getExtent","tickCount","count","step","max","unitSpan","dataToCoord","unitW","abs","unitH","maxW","maxH","width","height","rect","font","dw","dh","isNaN","Infinity","interval","min","model","axisExtent","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","isHorizontal","getFont","categoryInterval","onlyTick","startTick","ceil","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","extent","onBand","inverse","_extent","contain","coord","containData","getPixelPrecision","dataExtent","setExtent","clamp","normalize","fixExtentWithBands","coordToData","pointToData","point","getTicksCoords","getTickModel","ticksCoords","tickVal","getRawOrdinalNumber","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","getModel","splitNumber","minorTicks","getMinorTicks","minorTicksCoords","minorTicksGroup","minorTick","getViewLabels","getBandWidth","size","nTick","margin","ticksLen","last","diffSize","crossLen","shift_1","ticksItem","littleThan","shift","a","b","Tmpl","param","age","dxName","icdName","icdCode","systemIcdCode","systemIcdName","alias","dep","sex","illustrate","provenance","isSeminar","author","maxAge","minAge","icdJsonObject","icdJsonObjectSelect","icdJson","_export_sfc","sfc","props","__vccOpts","val","_hoisted_1","class","_hoisted_2","_hoisted_3","render","_ctx","_cache","$props","$setup","$data","$options","_component_check","_resolveComponent","_component_el_icon","_openBlock","_createElementBlock","_withDirectives","_createElementVNode","$event","inputVal","onChange","args","changeHandle","_vModelCheckbox","_createBlock","default","_withCtx","_createVNode","_","_createCommentVNode","_toDisplayString","defineComponent","components","Check","emits","modelValue","Boolean","setup","emit","ref","watch","__exports__","weekdays","weekdaysShort","weekdaysMin","months","monthsShort","ordinal","weekStart","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","l","ll","lll","llll","relativeTime","future","past","s","mm","h","hh","dd","M","MM","yy","meridiem","_sfc_main","viewBox","xmlns","fill","_sfc_render","plus","check","getDefaultLabel","labelDims","mapDimensionsAll","rawVal","vals","getDefaultInterpolatedLabel","interpolatedValue","getDimensionIndex","refreshLeft","samplers","average","frame","sum","NaN","isFinite","nearest","indexSampler","dataSample","seriesType","reset","api","getData","sampling","coordSys","coordinateSystem","baseAxis","getBaseAxis","valueAxis","getOtherAxis","dpr","getDevicePixelRatio","rate","setData","lttbDownSample","mapDimension","sampler","downSample","_super","BaseBarSeriesModel","_this","apply","getInitialData","getMarkerPosition","clampData","pt","dataToPoint","offset","getLayout","offsetIndex","defaultOption","z","legendHoverLink","barMinHeight","barMinAngle","large","largeThreshold","progressive","progressiveChunkMode","Series","registerClass","BaseBarSeries","BarSeriesModel","getProgressive","getProgressiveThreshold","progressiveThreshold","brushSelector","selectors","getItemLayout","dependencies","clip","roundCap","showBackground","backgroundStyle","color","borderColor","borderWidth","borderType","borderRadius","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","opacity","select","itemStyle","realtimeSort","BarSeries","createGridClipPath","cartesian","hasAnimation","done","during","getArea","lineWidth","clipPath","shape","isAxisInversed","duringCb","percent","createPolarClipPath","sectorArea","r0","cx","cy","startAngle","endAngle","clockwise","isRadial","createClipPath","SausageShape","SausagePath","opts","call","getDefaultShape","buildPath","ctx","dr","rCenter","PI2","lessThanCircle","unitStartX","unitStartY","unitEndX","unitEndY","moveTo","arc","Path","isCoordinateSystemType","createSectorCalculateTextPosition","positionMapping","isRoundCap","out","boundingRect","textPosition","position","mappedSectorPosition","distance","sector","middleR","middleAngle","extraDist","mathCos","mathSin","textAlign","textVerticalAlign","adjustAngleDistanceX","adjustAngleDistanceY","align","verticalAlign","setSectorTextRotation","rotateType","setTextConfig","anchorAngle","rotate","angle","isEnd","mathMax","mathMin","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","payload","_model","_removeOnRenderedListener","_updateDrawMode","coordinateSystemType","_progressiveEls","_isLargeDraw","_renderLarge","_renderNormal","incrementalPrepareRender","_clear","_updateLargeClip","incrementalRender","_incrementalRenderLarge","eachRendered","cb","group","isLargeDraw","pipelineContext","isHorizontalOrRadial","oldData","_data","animationModel","isAnimationEnabled","realtimeSortCfg","shouldRealtimeSort","_enableRealtimeSort","needsClip","removeClipPath","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","isInitSort","isChangeOrder","createBackground","bgLayout","bgEl","createBackgroundEl","useStyle","getItemStyle","setShape","diff","add","itemModel","getItemModel","layout","hasValue","isValidLayout","isClipped","elementCreator","forceLabelAnimation","updateStyle","attr","updateRealtimeAnimation","setItemGraphicEl","ignore","update","newIndex","oldIndex","createBackgroundShape","getItemGraphicEl","remove","textEl","getTextContent","labelInnerStore","prevValue","execute","bgGroup","_backgroundGroup","Group","removeAll","createLarge","_removeBackground","setClipPath","_dispatchInitSort","orderMapping_1","_onRendered","_updateSortWithinSameData","getZr","on","_dataSort","orderMapping","info","each","ordinalNumber","dataIdx","mappedValue","sort","ordinalNumbers","_isOrderChangedWithinSameData","ordinalDataDim","lastValue","Number","MAX_VALUE","tickNum","categories","rawIdx","rawIndexOf","MIN_VALUE","indexOfRawIndex","_isOrderDifferentInView","orderInfo","tickMax","sortInfo","dispatchAction","componentType","axisId","sortResult","otherAxis","dispose","off","eachItemGraphicEl","Chart","coordSysBoundingRect","signWidth","signHeight","coordSysX2","coordSysY2","x2","y2","xClipped","yClipped","signR","clipped","isUpdate","Rect","z2","__dataIndex","rectShape","animateProperty","ShapeClass","Sector","positionMap","createPolarPositionMapping","calculateTextPosition","sectorShape","animateTarget","realtimeSortOption","seriesAnimationModel","seriesTarget","axisTarget","axisAnimationModel","checkPropertiesNotValid","obj","rectPropties","polarPropties","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","arcOrAngle","isPolar","style","getItemVisual","cursorStyle","getShallow","labelPositionOutside","labelStatesModels","labelFetcher","labelDataIndex","defaultText","inheritColor","defaultOpacity","defaultOutsidePosition","textConfig","inside","getRawValue","emphasisModel","stroke","states","state","rawLayout","LagePathShape","LargePath","points","baseDimIdx","valueDimIdx","startPoint","barWidth","progressiveEls","incremental","largeDataIndices","bgPoints","silent","ignoreCoarsePointer","getVisual","seriesIndex","largePathUpdateDataIndex","throttle","event","largePath","largePathFindDataIndex","offsetX","offsetY","ii","coordLayout","ElementClz","registers","registerChartView","registerSeriesModel","registerLayout","PRIORITY","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","registerProcessor","PROCESSOR","STATISTIC","registerAction","eachComponent","mainType","query","componentModel","setCategorySortInfo","visualDefault","visualType","active","inactive","colorHue","colorSaturation","colorLightness","colorAlpha","symbol","symbolSize","isObject","CATEGORY_DEFAULT_VISUAL_INDEX","VisualMapping","mappingMethod","thisOption","_normalizeData","normalizers","visualHandler","visualHandlers","applyVisual","getColorMapper","_normalizedToVisual","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","mapValueToVisual","normalized","getNormalizer","listVisualTypes","isValidType","hasOwnProperty","eachVisual","visual","callback","context","mapVisual","isPrimary","newVisual","v","newVal","retrieveVisuals","hasVisual","ret","prepareVisualTypes","visualTypes","types_1","type1","type2","dependsOn","visualType1","visualType2","findPieceIndex","pieceList","findClosestWhenOutside","possibleI","pieceValue","updatePossible","piece","close_1","close","newAbs","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","linear","piecewise","getSpecifiedVisual","fixed","doMapFixed","makePartialColorVisualHandler","decal","createNormalizedToNumericVisual","liftZ","getter","setter","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","cate","visualArr_1","setVisualToOption","visualArr","doNotNeedPair","applyValue","colorChannel","loop","sourceExtent","pieceIndex","hasKeys","name_1","createVisualMappings","stateList","supplementVisualOption","visualMappings","mappings","createMappings","visualData","mappingOption","__hidden","__alphaForOpacity","Creater","replaceVisualOption","newOption","keys","has","incrementalApplyVisual","getValueState","visualTypesMap","progress","setVisual","getStore","next","rawDataItem","getRawDataItem","visualMap","valueState","isArray","asc","linearMap","VisualMapModel","replacableOptionKeys","layoutMode","ignoreSize","dataBound","targetVisuals","controllerVisuals","init","parentModel","mergeDefaultAndTheme","optionUpdated","isInit","textStyleModel","resetItemSize","completeVisualOption","resetVisual","controller","getItemSymbol","getTargetSeriesIndices","optionSeriesIndex","seriesIndices","eachSeries","eachTargetSeries","getSeriesByIndex","isTargetSeries","is","formatValueText","edgeSymbols","isMinMax","precision","formatter","textValue","toFixed","replace","resetExtent","_dataExtent","getDataDimensionIndex","optDim","dimension","dimNames","getDimensionInfo","isCalculationCoord","storeDimIndex","base","inRange","outOfRange","completeSingle","completeInactive","stateExist","stateAbsent","optExist","optAbsent","defa","completeController","symbolExists","symbolSizeExists","inactiveColor","itemSymbol","defaultSymbol","itemSize","visuals","max_1","parseFloat","setSelected","selected","getSelected","getVisualMeta","getColorVisual","show","right","bottom","itemWidth","itemHeight","orient","backgroundColor","contentColor","padding","textGap","textStyle","Component","DEFAULT_BAR_BOUND","ContinuousModel","_resetRange","range","auto","dataInterval","findTargetDataIndices","dataIndices","seriesId","oVals","getColorStopValues","iVals","stops","setStop","iIdx","oIdx","iLen","oLen","first","stopsLen","outerColors","calculable","hoverLink","realtime","handleIcon","handleSize","handleStyle","indicatorIcon","indicatorSize","indicatorStyle","visualMapModel","stopValues","VisualMapView","autoPositionValues","doRender","renderBackground","format","getBoundingRect","getControllerVisual","targetValue","visualCluster","forceState","visualObj","defaultColor","visualMapping","convertOpacityToAlpha","positionGroup","getBoxLayoutParams","getWidth","getHeight","sliderMove","delta","handleEnds","handleIndex","minSpan","maxSpan","extentSpan","restrict","handleSpan","originalDistSign","getSpanSign","currDistSign","extentMinSpan","realExtent","sign","span","dist","paramsSet","getItemAlign","modelOption","itemAlign","ecSize","realIndex","reals","fakeValue","layoutInput","rParam","makeHighDownBatch","batch","batchItem","dataIndexInside","highlightKey","componentIndex","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_handleEnds","_hoverLinkDataIndices","_api","from","uid","_buildView","thisGroup","_orient","_useHandle","_resetInterval","_renderBar","dataRangeText","_renderEndsText","_updateView","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","text","barGroup","mainGroup","_applyTransform","targetGroup","shapes","useHandle","_createBarGroup","gradientBarGroup","createPolygon","getCursor","_dragHandle","textRect","getTextRect","textSize","handleThumbs","handleLabels","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","cursor","draggable","drift","ondragend","onmousemove","setStyle","strokeNoScale","strokeFirst","ensureState","handleLabel","stateTransition","duration","handleLabelPoint","indicator","invisible","pathStyle","image","indicatorLabel","indicatorLabelPoint","_firstShowIndicator","dx","dy","_dragging","vertex","_updateInterval","_hideIndicator","visualMapId","_hovering","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","sizeExtent","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","colorStops","_makeColorGradient","symbolSizes","_createBarPoints","LinearGradient","handlesColor","sampleNumber","currValue","scaleX","scaleY","textPoint","graphic","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","oldIndicatorPos","indicatorNewProps","labelNewProps","animationCfg","easing","additive","animateTo","enterBlur","self","pos","zr","_hoverLinkFromSeriesMouseOver","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","valueRange","oldBatch","newBatch","resultBatches","_dispatchHighDown","ecData","currECData","dataModel","dataType","leaveBlur","indices","global","transform","hoverLinkDataSize","hoverLinkOnHandle","visualMapActionInfo","visualMapActionHander","visualMapEncodingHandlers","createOnAllSeries","resetDefines","visualMetaList","visualMeta","dimIdx","resultVisual","mapping","visualMapPreprocessor","pieces","splitList","installed","installCommon","registerSubTypeDefaulter","handler","registerVisual","COMPONENT","registerPreprocessor","registerComponentModel","registerComponentView","PiecewiseModel","_pieceList","mode","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","getSelectedMapKey","selectedMode","hasSel_1","getPieceList","pIdx","getRepresentValue","representValue","pieceInterval","edge","curr","minOpen","maxOpen","itemGap","outPieceList","splitStep","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","lg","names","PiecewiseVisualMapView","textFont","textFill","getTextColor","_getItemAlign","viewData","_getViewData","endsText","showLabel","viewPieceList","itemGroup","onclick","_onItemClick","_enableHoverLink","indexInModelPieceList","_createItemSymbol","visualState","onHoverLink","method","shapeParam","newKey","o","PiecewiseView","GridModel","containLabel","CartesianAxisModel","nameLocation","nameRotate","nameTruncate","maxWidth","ellipsis","placeholder","nameTextStyle","nameGap","triggerEvent","tooltip","axisPointer","axisLine","onZero","onZeroAxisIndex","lineStyle","axisTick","axisLabel","showMinLabel","showMaxLabel","fontSize","splitLine","splitArea","areaStyle","categoryAxis","boundaryGap","deduplication","minorSplitLine","timeAxis","rich","primary","fontWeight","logAxis","logBase","time","log","AXIS_TYPES","axisModelCreator","axisName","BaseAxisModelClass","extraDefaultOption","axisDefault","AxisModel","inputPositionParams","themeModel","getTheme","getDefaultOption","getAxisType","__ordinalMeta","OrdinalMeta","createByAxisModel","getCategories","rawData","Cartesian","_dimList","_axes","getAxis","getAxes","getAxesByScale","scaleType","toLowerCase","addAxis","cartesian2DDimensions","canCalculateAffineTransform","Cartesian2D","calcAffineTransform","_transform","_invTransform","xAxisScale","yAxisScale","xScaleExtent","yScaleExtent","xScaleSpan","yScaleSpan","translateX","translateY","containPoint","axisX","axisY","toLocalCoord","containZone","data1","data2","zoneDiag1","zoneDiag2","area","zone","BoundingRect","intersect","xVal","yVal","xAxis","yAxis","toGlobalCoord","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","categorySortInfo","setSortInfo","mathLog","alignScaleTicks","alignToScale","intervalScaleProto","Interval","alignToTicks","alignToNicedTicks","alignToSplitNumber","alignToInterval","getInterval","scaleExtent","rawExtent","isMinFixed","fixMin","isMaxFixed","fixMax","calcNiceExtent","nicedSplitNumber","t0","t1","setInterval","setNiceExtent","Grid","gridModel","_coordsMap","_coordsList","_axesMap","_axesList","axisPointerEnabled","_initCartesian","getRect","_rect","axesMap","updateAxisTicks","axes","alignTo","axesIndices","axisNeedsAlign","_updateScale","onZeroRecords","fixAxisOnZero","resize","ignoreContainLabel","boxLayoutParams","isContainLabel","gridRect","axesList","adjustAxes","updateAxisTransform","labelUnionRect","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","getCartesians","convertToPixel","finder","_findConvertTarget","convertFromPixel","coordsList","grid","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","axisPosition","master","unionExtent","unionExtentFromData","axesModelMap","getTooltipAxes","baseAxes","otherAxes","create","grids","otherAxisDim","getAxesOnZeroOf","otherAxisOnZeroOf","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaStyleModel","areaColors","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","prev","getAreaStyle","tickCoord","anid","autoBatch","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","axisPointerClass","oldAxisGroup","_axisGroup","cartesianAxisHelper","axisBuilder","AxisBuilder","handleAutoShown","elementType","cartesians","getGroup","axisElementBuilders","isInitialSortFromBarRacing","AxisView","splitLineModel","lineStyleModel","lineColors","lineCount","p1","p2","getLineStyle","line","x1","y1","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","GridView","extraOption","registerCoordinateSystem","_defineComponent","__name","yAxisBingName","xAxisRecords","tooltipData","barBgcolor","modelType","isTotal","__props","echarts","TooltipComponent","BarChart","CanvasRenderer","VisualMapComponent","GridComponent","chartsDraw","myChart","setOption","trigger","sympName","series","emphasis","focus","onMounted","ref_key","_withScopeId","_pushScopeId","_popScopeId","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","bzList","secondtitle","immediate","showMostBar","_createTextVNode","emrName","avgEffectRate","totalEmrValue","onClick","_Fragment","_renderList","sympList","center","dialogVisible","echartflag","setHeight","recorddialogVisible","nextTick","onClose","_component_el_button","_component_el_dialog","footer","barTitle","_normalizeStyle","barEchart","_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","_hoisted_23","freshTime","barNumber","reactive","echartflag1","barBgcolor1","yAxisBingName1","xAxisRecords1","tooltipData1","mostRecordShow","tacticsList","mostbarBgcolor","mostyAxisBingName","mostxAxisRecords","mosttooltipData","mostbarBgcolor1","mostyAxisBingName1","mostxAxisRecords1","mosttooltipData1","celueName","editID","editDialogVisible","bzList1","editEmr","comfirmEdit","updateName","_times","then","ElNotification","title","message","getStrategyqueryData","catch","err","delDiscussHandle","setStrateDelete","splice","emishowMostBar","getEmrEchartData","getEffectEchartData","bool","loading","ElLoading","service","lock","background","getEmrSymp","yAxisArr","xAxisArr","bzArr","rankingItemList","forEach","topEmr","getEmrEffect","getStrategyquery","pageNum","pageSize","items","getRefreshTimeData","getRefreshTime","refreshTime","setRefreshData","refreshData","addcelue","_component_el_popconfirm","_component_el_main","_component_el_col","_component_el_input","_component_el_row","_component_el_container","icon","_unref","RefreshLeft","empty","onEmishowMostBar","disabled","diseItems","emrinfoQty","ctime","src","ImgUrlFix","_withModifiers","onConfirm","WarningFilled","reference","gutter","maxlength","clearable","mostRecordsModel","arrowUpBold","histogram","minLimit","maxLimit","usePercent","slideValue","changeSlider","toRefs","_component_el_slider","_isRef","_renderSlot","$slots","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_hoisted_75","_hoisted_76","_hoisted_77","_hoisted_78","_hoisted_79","_hoisted_80","_hoisted_81","_hoisted_82","_hoisted_83","_hoisted_84","_hoisted_85","_hoisted_86","_hoisted_87","_hoisted_88","_hoisted_89","_hoisted_90","_hoisted_91","_hoisted_92","_hoisted_93","_hoisted_94","_hoisted_95","_component_el_radio","_component_el_autocomplete","_component_el_radio_group","_component_el_option","_component_el_select","_component_el_input_number","_component_el_table_column","_component_groupOfLabel","_component_el_radio_button","_component_medic","_component_fvia","_component_ll","_component_el_table","_component_effcoll","_directive_loading","_resolveDirective","curdxName","dialogVisible2","confirmBtnLoading","_vShow","changeCurdxName","curdxNameArr","curdxName1","modelModifiers","lazy","querySearch3","onSelect","handleSelect3","handleChange3","curdxCode","querySearch4","handleSelect4","handleChange4","multiple","filterable","remote","icdJsonObjectRemoteMethod","onVisibleChange","selectVisibleCchangeHandle","icdJsonObjectOptions","SEX","AGE","controls","isShowIllustrate","pData","border","scope","$index","row","header","datas","cursynDiffName","changeCursynDiffName","cursynDiffNameArr","bz","cursynDiffName1","querySearch1","handleSelect1","handleChange1","cursynDiffCode","synDiffAlias","labelStr","groupOfLabel","autosize","minRows","maxRows","rows","querySearch2","handleSelect2","handleChange2","showWhat","usage","directionType","factoryList","drugProduct","changeFactorHandle","drugData","readonly","isStdDurg","onUpdateHandle","medicUpdateHandle","origiDrugData","fviaUpdateHandle","llUpdateHandle","pageId","editEffcollHandle","bingzongIndex","effcollDateSelect","iswranTips","tocpicDialogVisible","dialecticalID","isLock","pDataIdx","CloseBold","cCheckbox2","effcoll","medic","fvia","dxNameArr","synDiffArr","tpharmacyVisible","keyWord","rxTypeList","confirmBtnDisabled","tt","selectPdataItem","useStore","getPData","icd","rePData","synDiffName","requestData","checkgemodel","_loading","savePplTmpl","findCodeByName","dsSynDiff","getDiseaseSynDiffExplanation","ill","explanation","queryString","includes","arrayComparedDelSame","listItem","dsTreatRule","druglist","accompanyingSymptoms","GetDrugInfoByDrugNameMe","rx","GetDrugInfoByDrugName","orgId","organization","synDiffDrugList","fjbDrugList","diffDrugToFjbDrug","drugSort","fjbDrugObj","fjType","drugConvertList","szDrugList","accompanyingSymptom","accompanyingSymptomsDrug","szDrugObj","func","temRxType","lee_sort","fjbDrugToDiffDrug","NewGetDrugConversionToFactoryV2","organizationId","fjDetails","lostDrugList","drugLostList","lostDrug","Set","ElMessageBox","confirm","confirmButtonText","cancelButtonText","async","getID","guid","getGuid","drugNameArr","defaultConfig","NewGetDrugConversionToFactory","Nval","Oval","drugArr","findDrugByDrug","tPharmacy0","fjName","Rx","analysis","treatRuleCode","treatRuleName","rx2nd","effcollDate","addDrugName","detailRole","ageType","mergeSynonym","mergeNearSynonym","drugItems","drugStrategyItems","effectType","emrType","endTime","genderType","mainItems","mainStrategyItems","maxDrug","maxEffect","maxMainSymptom","maxPhysexm","minDrug","minEffect","minMainSymptom","minPhysexm","startTime","changeTimeToUse","sympItems","arrowDown","itemRender","isMore","isMoreCheck","selectList","renderList","getList","selectItem","emitEvent","isRepeat","diseName","_component_el_checkbox","_component_el_checkbox_group","cCell","tip","ArrowDown","Plus","_normalizeClass","isOpen","bgColor","minValue","maxValue","reLoad","tabIndex","checked","filterList","filter","vPos","mounted","binding","w","nextSibling","offsetWidth","wh","marginLeft","updated","cSlide","assist","visiable","isShow","sortType","renderCHarts","upSort","downSort","charts","chartDom","table","isOpenMenu","avgEff","isShowTjModal","varianceanalysisItemName","emrListItemDetail","mergeData","mainSymptoms","physexms","varianceDetail","varianceState","zd","isSelected","zz","mapData","tz","zy","diseNames","sympNames","mainSymptomsTabIdx","sympGroupWord","sympGroupWordList","selectSympGroupWord","physexmsTabIdx","emrDrugs","drugTabIdx","sympDrugsWord","sympDrugsWordList","drugGroupWordList","diseSympMap","effectValue","ageValue","currentPage","totalPage","emrList","bzVisible","tmplData","tjModalData","isSaveVariance","sexList","beforeUpdateDetailData","isFiltering","currentSearch","bzOnConfirm","setPerModel","contentJson","synDiffData","sexType","isLimit","renderDise","concat","selectDise","getSympMapData","rePearList","repeatList","renderSymp","selectSymp","getsynDiffList","getSympItems","getEffect","getAge","filterBaseData","isNext","updateEmrDetail","getDrugDatas","clearAll","cacheDetailData","itemChange","activeNames","filterMergeData","fis","pron","standard","charCodeArr","firstChar","toUpperCase","renderMainSymptoms","renderPhysexms","selectSympWord","updateSympList","updateTabSympList","groupWordKeyValue","selectToGroupWord","words","percentage","getCalculatePercentage","getSymptrategyItems","ketValueArr","clearState","selectSymlGroupWord","deleteGroupWordItem","canUseSaveSymp","it","selectToSymp","mergeList","otherList","typeList","clearDrugState","getShowStrategyItems","getShowDrugStrategyItems","getDrugtrategyItems","cacheSearch","filterToDrug","returnDetail","objData","drugs","getEmrKeyWordDrugs","renderEmrDrugs","selectDrugWord","updateDrugList","updateDrugTabIdxList","groupDrugWordKeyValue","selectToDrugGroupWord","selectDrugsGroupWord","deleteDrugGroupWordItem","canUseSaveDrug","selectToDrugs","filterDrugData","back","reload","listData","getcustomList","emrData","total","getEmrKeyWordQuery","getQuery","getMainQuery","sympDatas","saveVarianceanalys","loadingInstance","saveVariance","setTableRowData","rowIndex","expand","emrListExpand","column","emrDetailData","getEmrDetail","toggleRowExpansion","emrListExpandChange","showTjModal","wordType","saveVarianceDetail","getVarianceDetailData","detail","getVarianceDetail","_component_el_breadcrumb_item","_component_el_breadcrumb","_component_el_header","_component_el_image","_component_el_aside","_component_el_tag","_component_el_collapse_item","_component_el_collapse","_component_el_pagination","_component_el_footer","ArrowRight","accordion","isHide","_createSlots","closable","moreCheckSelect","pickerGroup","useSelect","startDate","endDate","fn","ArrowUpBold","undefined","Histogram","varanceGroupWord","onSelectItem","onTabSelect","onUpdateList","onRowClick","onExpandChange","mdtrtNo","gend","curEff","mdtrtDate","emrDetailList","tjModal","gemodel","onOnConfirm","showModule","celueId","varianceModule","onBack","mainAnalysis","onAddcelue","_component_empty","_component_delete","_component_CloseBold","radio1","radio2","radio3","radio4","addTopicHandle","effcollList","effcollType","ALPHA","removeEffcollOption","addEffcollOptionHandle","deleteTopicHandle","EffcollOption","score","serialNum","topicId","Effcoll","enabled","required","respondent","useCat","Delete","ElMessage","saveTopicList","topicListId","topicList","getTopicList","_delete"],"mappings":"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","file":"js/Cass-varianceanalysis.5746a5b6.js","sourcesContent":["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!./gemodel.vue?vue&type=style&index=0&id=601ec63e&lang=scss\"","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Helper for model references.\n * There are many manners to refer axis/coordSys.\n */\n// TODO\n// merge relevant logic to this file?\n// check: \"modelHelper\" of tooltip and \"BrushTargetManager\".\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util.js';\nimport { SINGLE_REFERRING } from '../util/model.js';\n/**\n * @class\n * For example:\n * {\n * coordSysName: 'cartesian2d',\n * coordSysDims: ['x', 'y', ...],\n * axisMap: HashMap({\n * x: xAxisModel,\n * y: yAxisModel\n * }),\n * categoryAxisMap: HashMap({\n * x: xAxisModel,\n * y: undefined\n * }),\n * // The index of the first category axis in `coordSysDims`.\n * // `null/undefined` means no category axis exists.\n * firstCategoryDimIndex: 1,\n * // To replace user specified encode.\n * }\n */\n\nvar CoordSysInfo =\n/** @class */\nfunction () {\n function CoordSysInfo(coordSysName) {\n this.coordSysDims = [];\n this.axisMap = createHashMap();\n this.categoryAxisMap = createHashMap();\n this.coordSysName = coordSysName;\n }\n\n return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var result = new CoordSysInfo(coordSysName);\n var fetch = fetchers[coordSysName];\n\n if (fetch) {\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n return result;\n }\n}\nvar fetchers = {\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!xAxisModel) {\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n }\n\n if (!yAxisModel) {\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n }\n }\n\n result.coordSysDims = ['x', 'y'];\n axisMap.set('x', xAxisModel);\n axisMap.set('y', yAxisModel);\n\n if (isCategory(xAxisModel)) {\n categoryAxisMap.set('x', xAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(yAxisModel)) {\n categoryAxisMap.set('y', yAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!singleAxisModel) {\n throw new Error('singleAxis should be specified.');\n }\n }\n\n result.coordSysDims = ['single'];\n axisMap.set('single', singleAxisModel);\n\n if (isCategory(singleAxisModel)) {\n categoryAxisMap.set('single', singleAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n },\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!angleAxisModel) {\n throw new Error('angleAxis option not found');\n }\n\n if (!radiusAxisModel) {\n throw new Error('radiusAxis option not found');\n }\n }\n\n result.coordSysDims = ['radius', 'angle'];\n axisMap.set('radius', radiusAxisModel);\n axisMap.set('angle', angleAxisModel);\n\n if (isCategory(radiusAxisModel)) {\n categoryAxisMap.set('radius', radiusAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(angleAxisModel)) {\n categoryAxisMap.set('angle', angleAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n result.coordSysDims = ['lng', 'lat'];\n },\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n var ecModel = seriesModel.ecModel;\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axisDim = coordSysDims[index];\n axisMap.set(axisDim, axisModel);\n\n if (isCategory(axisModel)) {\n categoryAxisMap.set(axisDim, axisModel);\n\n if (result.firstCategoryDimIndex == null) {\n result.firstCategoryDimIndex = index;\n }\n }\n });\n }\n};\n\nfunction isCategory(axisModel) {\n return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport { getDataItemValue } from '../../util/model.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper.js';\nimport { createSourceFromSeriesDataOption } from '../../data/Source.js';\nimport { enableDataStack } from '../../data/helper/dataStackHelper.js';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper.js';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types.js';\n\nfunction getCoordSysDimDefs(seriesModel, coordSysInfo) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var registeredCoordSys = CoordinateSystem.get(coordSysName);\n var coordSysDimDefs;\n\n if (coordSysInfo && coordSysInfo.coordSysDims) {\n coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n var dimInfo = {\n name: dim\n };\n var axisModel = coordSysInfo.axisMap.get(dim);\n\n if (axisModel) {\n var axisType = axisModel.get('type');\n dimInfo.type = getDimensionTypeByAxis(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n // Get dimensions from registered coordinate system\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n return coordSysDimDefs;\n}\n\nfunction injectOrdinalMeta(dimInfoList, createInvertedIndices, coordSysInfo) {\n var firstCategoryDimIndex;\n var hasNameEncode;\n coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n var coordDim = dimInfo.coordDim;\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n if (categoryAxisModel) {\n if (firstCategoryDimIndex == null) {\n firstCategoryDimIndex = dimIndex;\n }\n\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n if (createInvertedIndices) {\n dimInfo.createInvertedIndices = true;\n }\n }\n\n if (dimInfo.otherDims.itemName != null) {\n hasNameEncode = true;\n }\n });\n\n if (!hasNameEncode && firstCategoryDimIndex != null) {\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n }\n\n return firstCategoryDimIndex;\n}\n/**\n * Caution: there are side effects to `sourceManager` in this method.\n * Should better only be called in `Series['getInitialData']`.\n */\n\n\nfunction createSeriesData(sourceRaw, seriesModel, opt) {\n opt = opt || {};\n var sourceManager = seriesModel.getSourceManager();\n var source;\n var isOriginalSource = false;\n\n if (sourceRaw) {\n isOriginalSource = true;\n source = createSourceFromSeriesDataOption(sourceRaw);\n } else {\n source = sourceManager.getSource(); // Is series.data. not dataset.\n\n isOriginalSource = source.sourceFormat === SOURCE_FORMAT_ORIGINAL;\n }\n\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n var coordSysDimDefs = getCoordSysDimDefs(seriesModel, coordSysInfo);\n var useEncodeDefaulter = opt.useEncodeDefaulter;\n var encodeDefaulter = zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null;\n var createDimensionOptions = {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefine: seriesModel.getEncode(),\n encodeDefaulter: encodeDefaulter,\n canOmitUnusedDimensions: !isOriginalSource\n };\n var schema = prepareSeriesDataSchema(source, createDimensionOptions);\n var firstCategoryDimIndex = injectOrdinalMeta(schema.dimensions, opt.createInvertedIndices, coordSysInfo);\n var store = !isOriginalSource ? sourceManager.getSharedDataStore(schema) : null;\n var stackCalculationInfo = enableDataStack(seriesModel, {\n schema: schema,\n store: store\n });\n var data = new SeriesData(schema, seriesModel);\n data.setCalculationInfo(stackCalculationInfo);\n var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n // Use dataIndex as ordinal value in categoryAxis\n return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n } : null;\n data.hasItemOption = false;\n data.initData( // Try to reuse the data store in sourceManager if using dataset.\n isOriginalSource ? source : store, null, dimValueGetter);\n return data;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var sampleItem = firstDataNotNull(source.data || []);\n return !zrUtil.isArray(getDataItemValue(sampleItem));\n }\n}\n\nfunction firstDataNotNull(arr) {\n var i = 0;\n\n while (i < arr.length && arr[i] == null) {\n i++;\n }\n\n return arr[i];\n}\n\nexport default createSeriesData;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar AxisModelCommonMixin =\n/** @class */\nfunction () {\n function AxisModelCommonMixin() {}\n\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n var option = this.option;\n return !option.scale;\n };\n /**\n * Should be implemented by each axis model if necessary.\n * @return coordinate system model\n */\n\n\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n return;\n };\n\n return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","export class FjbDrug {\r\n attention?: string\r\n checkRemind?: number\r\n chemicalName?: any\r\n customaryName?: string\r\n customaryNamePinyinCode?: string\r\n customaryNameWuBiCode?: string\r\n defaultMethod?: string\r\n dosageRange?: any\r\n drugName?: string\r\n drugType?: number\r\n fjbDrugId?: string\r\n fjbDrugName?: string\r\n healthcaremedicineName?: string\r\n id?: string\r\n drugId?: string\r\n major?: string\r\n maximumDosage?: number\r\n medicareNum?: string\r\n pharmacology?: string\r\n pinyinCode?: string\r\n price?: number\r\n qty?: number\r\n number?: number\r\n selfPrepared?: boolean\r\n specs?: string\r\n stockNum?: any\r\n unit?: string\r\n wubi?: string\r\n remark?: string\r\n factory?: string// 厂家\r\n\r\n\r\n\r\n drugState?:number\r\n}","export class LlDrug{\r\n id: string = '' // 特色诊疗数据id \r\n\t\r\n\tqty: number = 0 // 总量\r\n unit: string = '' // 单位\r\n llUsage: string = '' // 用法\r\n precautions: string = '' // 注意事项\r\n remark: string = '' // 备注说明\r\n factory:string = '' // 厂家\r\n articleUpdate:boolean = false //对应的文章是否更新\r\n articleTitle:string = '' //对应的文章的标题\r\n\r\n llId: string = '' // 机构特色诊疗id\r\n llCode: string = '' // 机构特色诊疗编号\r\n llName: string = ''// 机构特色诊疗名称\r\n llAlias: string = '' // 机构特色诊疗别名\r\n llmainCategory: string = '' // 特色诊疗大类\r\n llSmallCategory : string = '' // 特色诊疗小类\r\n\r\n stdLlId: string = '' // 标准特色诊疗id\r\n stdLlCode: string = ''// 标准特色诊疗编号\r\n stdLlName: string = '' // 标准特色诊疗名称\r\n stdLlAlias: string = '' // 标准特色诊疗别名\r\n stdLlmainCategory: string = ''// 标准特色诊疗大类\r\n stdLlSmallCategory: string = ''// 标准特色诊疗小类\r\n}","import { synDiff } from './class/synDiff';\r\nimport {SynDiffDrug} from \"@u/class/synDiffDrug\"\r\nimport {Tmpl} from './class/Tmpl'\r\nimport {FjbDrug} from './class/fjbDrug'\r\nimport {LlDrug} from './class/llDrug'\r\n\r\nimport dayjs from 'dayjs'\r\nimport isLeapYear from 'dayjs/plugin/isLeapYear' // import plugin\r\nimport 'dayjs/locale/zh-cn' // import locale\r\nimport { stringifyQuery } from 'vue-router';\r\ndayjs.extend(isLeapYear) // use plugin\r\ndayjs.locale('zh-cn') // use locale\r\n\r\nexport namespace pbFn{\r\n\r\n export const dateFormat = dayjs\r\n //检验手机号码是否合法\r\n export const checkPhoen = (phone:string):boolean=>{\r\n const re = /^(?:(?:\\+|00)86)?1\\d{10}$/\r\n return re.test(phone)\r\n }\r\n\r\n // cass药品转方剂宝药品\r\n export const diffDrugToFjbDrug = (synDiffDrug:SynDiffDrug) => {\r\n const fjbDrug = new FjbDrug()\r\n\r\n fjbDrug.id = synDiffDrug.drugId\r\n fjbDrug.drugId = synDiffDrug.drugId\r\n fjbDrug.drugName = synDiffDrug.drugName\r\n fjbDrug.checkRemind = synDiffDrug.checkRemind\r\n fjbDrug.defaultMethod = synDiffDrug.direction || ''\r\n fjbDrug.fjbDrugId = synDiffDrug.fjbDrugId\r\n fjbDrug.fjbDrugName = synDiffDrug.fjbDrugName\r\n fjbDrug.major = synDiffDrug.major || ''\r\n fjbDrug.number = synDiffDrug.qty\r\n fjbDrug.pharmacology = synDiffDrug.pharmacology || ''\r\n fjbDrug.remark = synDiffDrug.remark || ''\r\n fjbDrug.specs = synDiffDrug.specs || ''\r\n fjbDrug.unit = synDiffDrug.unit || ''\r\n fjbDrug.factory = synDiffDrug.factory || ''\r\n fjbDrug.drugType = synDiffDrug.drugType || 0\r\n\r\n fjbDrug.drugState = synDiffDrug.drugState || 0\r\n\r\n return fjbDrug;\r\n }\r\n\r\n //方剂宝药品转cass药品\r\n export const fjbDrugToDiffDrug = (fjbDrug:any, rxType:number=0)=>{\r\n if(rxType === 0){\r\n const synDiffDrug = new SynDiffDrug()\r\n\r\n synDiffDrug.drugId = fjbDrug.drugId || \"\"\r\n synDiffDrug.drugName = fjbDrug.drugName \r\n synDiffDrug.factory = fjbDrug.factory || ''\r\n synDiffDrug.fjbDrugId = fjbDrug.fjbDrugId \r\n synDiffDrug.fjbDrugName = fjbDrug.fjbDrugName \r\n synDiffDrug.unit = fjbDrug.unit \r\n synDiffDrug.specs = fjbDrug.specs \r\n synDiffDrug.qty = fjbDrug.qty || fjbDrug.number || 0\r\n synDiffDrug.drugType = fjbDrug.drugType|| 0\r\n synDiffDrug.direction =fjbDrug.direction || fjbDrug.defaultMethod\r\n synDiffDrug.remark = fjbDrug.attention || fjbDrug.remark\r\n synDiffDrug.aliasName = fjbDrug.customaryName || fjbDrug.aliasName || ''\r\n synDiffDrug.checkRemind = fjbDrug.checkRemind \r\n synDiffDrug.pharmacology = fjbDrug.pharmacology\r\n synDiffDrug.major = fjbDrug.major\r\n synDiffDrug.id = ''\r\n\r\n synDiffDrug.drugState = fjbDrug.drugState || 0\r\n \r\n return synDiffDrug\r\n }else {\r\n const synDiffDrug = new SynDiffDrug()\r\n return synDiffDrug\r\n }\r\n \r\n }\r\n //方剂宝药品转cass特色诊疗药品\r\n export const fjbDrugToDiffLLDrug = (fjbDrug:any) => {\r\n const llDrug = new LlDrug()\r\n \r\n llDrug.id= '' // 特色诊疗数据id\r\n llDrug.qty= 1 // 总量\r\n llDrug.unit= fjbDrug.drugUnit // 单位\r\n llDrug.factory= fjbDrug.factory || '' // 厂家\r\n llDrug.llUsage= fjbDrug.drugUsage // 用法\r\n llDrug.precautions= fjbDrug.incompatibility // 注意事项\r\n llDrug.remark= fjbDrug.attentions // 备注说明\r\n\r\n llDrug.stdLlId = fjbDrug.stdDrugCode // 标准特色诊疗id\r\n llDrug.stdLlCode= fjbDrug.stdDrugCode // 标准特色诊疗编号\r\n llDrug.stdLlName= fjbDrug.stdDrugName // 标准特色诊疗名称\r\n llDrug.stdLlAlias= fjbDrug.aliasName // 标准特色诊疗别名\r\n llDrug.stdLlmainCategory= fjbDrug.category // 标准特色诊疗大类\r\n llDrug.stdLlSmallCategory = '' // 标准特色诊疗小类\r\n\r\n llDrug.llId= fjbDrug.drugCode // his特色诊疗id\r\n llDrug.llCode= fjbDrug.drugCode // his特色诊疗编号\r\n llDrug.llName= fjbDrug.drugName // his特色诊疗名称\r\n llDrug.llAlias= fjbDrug.aliasName // his特色诊疗别名\r\n llDrug.llmainCategory= fjbDrug.category// his特色诊疗大类\r\n llDrug.llSmallCategory= '' // his特色诊疗小类\r\n\r\n return llDrug\r\n }\r\n\r\n // cass 药品数组增加属性\r\n export const cassDrugListAddAttribute = (synDiffDrugs:SynDiffDrug[], fjbDrugs:any[]) => {\r\n for(let i=0; i{\r\n const drug = new SynDiffDrug()\r\n Object.assign(drug, synDiffDrug)\r\n drug.pharmacology = fjbDrug.pharmacology\r\n drug.major = fjbDrug.major\r\n drug.factory = fjbDrug.factory || ''\r\n return drug\r\n }\r\n\r\n // 检查是否有相同的药品\r\n export const checkHasSameDrug = (drugList:any[], drug:any, rxType:number=0 ) => {\r\n\r\n let temDrug : any\r\n for(let i=0; i{\r\n //辨证名称和辨证要点必填\r\n const re = {\r\n flag:true,\r\n msg:''\r\n }\r\n if(!synDiff.synDiffCode){\r\n re.flag = false\r\n re.msg = \"请选择证型\"\r\n }else if(!synDiff.mainPoints){\r\n re.flag = false\r\n re.msg = \"请输入辨证要点\"\r\n }\r\n\r\n return re\r\n }\r\n\r\n //检查病种是否合法\r\n export const checkPplTmpl = (tmpl:Tmpl)=>{\r\n const re = {\r\n flag:true,\r\n msg:''\r\n }\r\n\r\n if(! tmpl.dxCode){\r\n re.flag = false\r\n re.msg = '请选择中医诊断'\r\n\r\n return re\r\n }\r\n\r\n if( ! tmpl.el[0].content){\r\n re.flag = false\r\n re.msg = '请填写第一诊断要素'\r\n return re\r\n }\r\n if( (tmpl.el[0].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第一诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n if( tmpl.el[1].content!== '' && (tmpl.el[1].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第二诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n if( tmpl.el[2].content!== '' && (tmpl.el[2].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第三诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n\r\n if(tmpl.synDiff.length === 0){\r\n re.flag = false\r\n re.msg = '请添加证型'\r\n return re\r\n }\r\n\r\n for(let i=0; i< tmpl.synDiff.length; i++){\r\n const tem = checkSynDiff(tmpl.synDiff[i])\r\n if( !tem.flag){\r\n re.flag = tem.flag\r\n re.msg = `第${i+1}个证型:${tem.msg}`\r\n break;\r\n }\r\n }\r\n return re;\r\n\r\n }\r\n\r\n\r\n //检查gemodel病种是否合法\r\n export const checkgemodel = (tmpl:Tmpl)=>{\r\n const re = {\r\n flag:true,\r\n msg:''\r\n }\r\n\r\n if(! tmpl.dxCode){\r\n re.flag = false\r\n re.msg = '请选择中医诊断'\r\n\r\n return re\r\n }\r\n\r\n if( ! tmpl.el[0].content){\r\n re.flag = false\r\n re.msg = '请填写第一诊断要素'\r\n return re\r\n }\r\n if( (tmpl.el[0].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第一诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n if( tmpl.el[1].content!== '' && (tmpl.el[1].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第二诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n if( tmpl.el[2].content!== '' && (tmpl.el[2].weight as number) < 1){\r\n re.flag = false\r\n re.msg = '第三诊断要素权重不能低于1'\r\n return re\r\n }\r\n\r\n\r\n if(tmpl.synDiff.length === 0){\r\n re.flag = false\r\n re.msg = '请添加证型'\r\n return re\r\n }\r\n\r\n for(let i=0; i< tmpl.synDiff.length; i++){\r\n const tem = checkSynDiff(tmpl.synDiff[i])\r\n if( !tem.flag){\r\n re.flag = tem.flag\r\n re.msg = `${tem.msg}`\r\n break;\r\n }\r\n }\r\n return re;\r\n\r\n }\r\n\r\n\r\n\r\n //通过id找到药品\r\n export const findDrugById = (drugList:any[], drugId:String, rxType:number = 0)=>{\r\n if (!drugId){\r\n return null\r\n }\r\n let synDiffDrug : any\r\n if(rxType === 0){\r\n for(let i=0; i{\r\n let synDiffDrug : any\r\n \r\n for(let i=0; i{\r\n let synDiffDrug : any\r\n if(rxType === 0){\r\n for(let i=0; i{\r\n /*\r\n sbf 十八反\r\n sjw 十九畏\r\n sbfDrug 对应的十八反禁忌药\r\n sjwDrug 对应的十九畏禁忌药\r\n cdyl 超大用量\r\n */\r\n \r\n \r\n for (var i = 0, len = fjDrug.length; i < len; ++i) {\r\n var taboo = 0\r\n var drug = fjDrug[i]\r\n\r\n\r\n for (var j = 0; j < pwjjList.length; ++j) {\r\n const pwjj = pwjjList[j]\r\n let pwjjDrug = null;\r\n \r\n //如果药在配伍禁忌内,需要再循环判断对应禁忌药是不是也在处方中\r\n if (pwjj.checkDrugName.indexOf('|' + drug.fjbDrugName + '|') !== -1) {\r\n var flag = false\r\n for (var k = 0; k < fjDrug.length; ++k) {\r\n var innerDrug = fjDrug[k]\r\n \r\n if (pwjj.drugName.indexOf('|' + innerDrug.fjbDrugName + '|') !== -1) {\r\n flag = true\r\n pwjjDrug = JSON.parse(JSON.stringify(innerDrug))\r\n break;\r\n }\r\n }\r\n if (flag) {\r\n if (pwjj.type == 0) {\r\n fjDrug[i].sbf = true;\r\n fjDrug[i].sbfDrug = pwjjDrug\r\n taboo = taboo | 1\r\n } else {\r\n fjDrug[i].sjw = true;\r\n fjDrug[i].sjwDrug = pwjjDrug\r\n taboo = taboo | 2\r\n }\r\n break;\r\n } else {\r\n fjDrug[i].sbf = false;\r\n fjDrug[i].sjw = false;\r\n fjDrug[i].sbfDrug = null;\r\n fjDrug[i].sjwDrug = null;\r\n }\r\n \r\n } else if (pwjj.drugName.indexOf('|' + drug.fjbDrugName + '|') !== -1) {\r\n var flag = false\r\n \r\n for (var k = 0; k < fjDrug.length; ++k) {\r\n var innerDrug = fjDrug[k]\r\n if (pwjj.checkDrugName.indexOf('|' + innerDrug.fjbDrugName + '|') !== -1) {\r\n flag = true\r\n pwjjDrug = JSON.parse(JSON.stringify(innerDrug))\r\n pwjjDrug.sbfDrug = null;\r\n pwjjDrug.sjwDrug = null;\r\n break;\r\n }\r\n }\r\n if (flag) {\r\n if (pwjj.type == 0) {\r\n fjDrug[i].sbf = true;\r\n fjDrug[i].sbfDrug = pwjjDrug\r\n } else {\r\n fjDrug[i].sjw = true;\r\n fjDrug[i].sjwDrug = pwjjDrug\r\n }\r\n break;\r\n } else {\r\n fjDrug[i].sbf = false;\r\n fjDrug[i].sjw = false;\r\n fjDrug[i].sbfDrug = null;\r\n fjDrug[i].sjwDrug = null;\r\n }\r\n } else {\r\n fjDrug[i].sbf = false;\r\n fjDrug[i].sjw = false\r\n fjDrug[i].sbfDrug = null;\r\n fjDrug[i].sjwDrug = null;\r\n }\r\n }\r\n \r\n if (fjDrug[i].qty! >= 100) {\r\n fjDrug[i].cdyl = true\r\n taboo = taboo | 128\r\n } else {\r\n fjDrug[i].cdyl = false\r\n }\r\n fjDrug[i].taboo = taboo\r\n }\r\n\r\n return fjDrug;\r\n }\r\n\r\n //配伍禁忌第二版\r\n export const checkFjTaboo2 = (pwjjList:any[], fjDrug: SynDiffDrug[])=>{\r\n /*\r\n sbf 十八反\r\n sjw 十九畏\r\n sbfDrug 对应的十八反禁忌药\r\n sjwDrug 对应的十九畏禁忌药\r\n cdyl 超大用量\r\n */\r\n fjDrug.map((item:SynDiffDrug)=>{\r\n item.sbfDrug = []\r\n item.sjwDrug = []\r\n item.sbf = false \r\n item.sjw = false\r\n })\r\n \r\n \r\n for (var i = 0, len = fjDrug.length; i < len; ++i) {\r\n var taboo = 0\r\n var drug = fjDrug[i]\r\n\r\n\r\n for (var j = 0; j < pwjjList.length; ++j) {\r\n const pwjj = pwjjList[j]\r\n let pwjjDrug = null;\r\n \r\n //如果药在配伍禁忌内,需要再循环判断对应禁忌药是不是也在处方中\r\n if (pwjj.checkDrugName.indexOf('|' + drug.fjbDrugName + '|') !== -1) {\r\n \r\n for (var k = 0; k < fjDrug.length; ++k) {\r\n var flag = false\r\n var innerDrug = fjDrug[k]\r\n if (pwjj.drugName.indexOf('|' + innerDrug.fjbDrugName + '|') !== -1) {\r\n flag = true\r\n pwjjDrug = JSON.parse(JSON.stringify(innerDrug))\r\n pwjjDrug.sbfDrug = null;\r\n pwjjDrug.sjwDrug = null;\r\n }\r\n if (flag) {\r\n if (pwjj.type == 0) {\r\n fjDrug[i].sbf = true;\r\n (fjDrug[i].sbfDrug as SynDiffDrug[] ).push(pwjjDrug)\r\n taboo = taboo | 1\r\n } else {\r\n fjDrug[i].sjw = true;\r\n (fjDrug[i].sjwDrug as SynDiffDrug[]).push(pwjjDrug)\r\n taboo = taboo | 2\r\n }\r\n } \r\n }\r\n } else if (pwjj.drugName.indexOf('|' + drug.fjbDrugName + '|') !== -1) {\r\n for (var k = 0; k < fjDrug.length; ++k) {\r\n var flag = false\r\n var innerDrug = fjDrug[k]\r\n if (pwjj.checkDrugName.indexOf('|' + innerDrug.fjbDrugName + '|') !== -1) {\r\n flag = true\r\n pwjjDrug = JSON.parse(JSON.stringify(innerDrug))\r\n pwjjDrug.sbfDrug = null;\r\n pwjjDrug.sjwDrug = null;\r\n }\r\n if (flag) {\r\n if (pwjj.type == 0) {\r\n fjDrug[i].sbf = true;\r\n (fjDrug[i].sbfDrug as SynDiffDrug[]).push(pwjjDrug as unknown as SynDiffDrug)\r\n } else {\r\n fjDrug[i].sjw = true;\r\n (fjDrug[i].sjwDrug as SynDiffDrug[]).push(pwjjDrug as unknown as SynDiffDrug)\r\n }\r\n } \r\n }\r\n } \r\n }\r\n \r\n if (fjDrug[i].qty! >= 100) {\r\n fjDrug[i].cdyl = true\r\n taboo = taboo | 128\r\n } else {\r\n fjDrug[i].cdyl = false\r\n }\r\n fjDrug[i].taboo = taboo\r\n }\r\n\r\n return fjDrug;\r\n }\r\n\r\n //通过 id 找到名称 病种,辨证,治则治法\r\n export const findNameByCode = (code:string, list:any[])=>{\r\n for(let i=0; i< list.length; i++){\r\n if(code === list[i].code){\r\n return list[i].name\r\n }\r\n }\r\n\r\n return ''\r\n }\r\n //通过 名称找到code 病种,辨证,治则治法\r\n export const findCodeByName = (name:string, list:any[])=>{\r\n for(let i=0; i< list.length; i++){\r\n if(name === list[i].name){\r\n return list[i].code\r\n }\r\n }\r\n\r\n return ''\r\n }\r\n //数字转中文\r\n export const toChinesNum = (num: number): string => {\r\n let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\r\n let unit = [\"\", \"十\", \"百\", \"千\", \"万\"];\r\n let getWan = (temp: number | string) => {\r\n let strArr: string[] = temp.toString().split(\"\").reverse();\r\n let newNum = \"\";\r\n for (let i = 0; i < strArr.length; i++) {\r\n var keyValue = parseInt(strArr[i]);\r\n var oKeyValue = parseInt(strArr[i - 1]);\r\n newNum = (i === 0 && keyValue === 0 ? \"\" : (i > 0 && keyValue === 0 && oKeyValue === 0 ? \"\" : changeNum[keyValue] + (keyValue === 0 ? unit[0] : unit[i]))) + newNum;\r\n }\r\n return newNum;\r\n }\r\n let overWan: number = Math.floor(num / 10000);\r\n let noWan: string | number = num % 10000;\r\n if (noWan.toString().length < 4) {\r\n noWan = \"0\" + noWan;\r\n };\r\n return overWan ? getWan(overWan) + \"万\" + getWan(noWan) : getWan(num);\r\n };\r\n\r\n\r\n //数组去重\r\n export const simpleUnique = (array: any, type: string) => {\r\n var result: any[] = [];\r\n var hash: any = {};\r\n for (var i = 0; i < array.length; i++) {\r\n var key: string = (typeof array[i][type]) + array[i][type].trim();\r\n if (!hash[key]) {\r\n result.push(array[i]);\r\n hash[key] = true;\r\n }\r\n }\r\n return result;\r\n }\r\n //\r\n export const arrayComparedDelSame = (arr1: any, arr2: any) => {\r\n let arr3 = [];\r\n for (var i = 0; i < arr1.length; i++) {\r\n for (var j = 0; j < arr2.length; j++) {\r\n if (arr1[i].label == arr2[j]) {\r\n arr1[i] = \"\";\r\n break;\r\n }\r\n }\r\n }\r\n for (var i = 0; i < arr1.length; i++) {\r\n if (arr1[i] != \"\") {\r\n arr3.push(arr1[i])\r\n }\r\n }\r\n return arr3;\r\n }\r\n export const changeTimeToUse = (times: number, type = 'YYMMDDHHMMSS'): string => {\r\n const date = new Date(times);\r\n let years: number = date.getFullYear();\r\n let month: number = date.getMonth() + 1;\r\n let day: number = date.getDate();\r\n let hour: number = date.getHours();\r\n let minute: number = date.getMinutes();\r\n let seconds: number = date.getSeconds();\r\n let res = '';\r\n switch(type) {\r\n case 'YYMMDDHHMMSS':\r\n res = `${[years, month, day].map(formatNumber).join('-')} ${[hour, minute, seconds].map(formatNumber).join(':')}`\r\n break;\r\n }\r\n return res\r\n }\r\n const formatNumber = (n: number) => {\r\n const str = n.toString()\r\n return str[1] ? str : `0${n}`\r\n }\r\n\r\n // 根据半径和角度,获取坐标\r\n export const getLocation =function(r:any,deg:any){\r\n var x =Math.round(r*Math.sin(deg));\r\n var y =Math.round(r*Math.cos(deg));\r\n return{left:x,top:y};\r\n }\r\n\r\n // 生成指定范围随机数 [start, end)\r\n export const getRandomInt = (start:number, end:number) => {\r\n if(end <= start ){\r\n return start\r\n }\r\n\r\n let differ = end - start\r\n let random = Math.random()\r\n return Math.floor(start + differ * random)\r\n }\r\n\r\n\r\n // 根据时间戳生成固定格式 2022年03月01日\r\n\texport const renderTime = (data: number) =>{\r\n\t\tconst t = new Date(data);\r\n\t\tlet y = t.getFullYear().toString()\r\n\t\tlet m = t.getMonth() + 1\r\n\t\tlet d = t.getDate() \r\n\t\treturn y+'年'+m + '月' + d + '日'\r\n\t}\r\n\r\n\r\n //堆排序\r\n\tconst shif = (arr:any[], low:number, high:number, orderKey:string) => {\r\n\t\tlet i = low\r\n\t\tlet j = low*2+1\r\n\t\tlet tmp = arr[low]\r\n\t\twhile(j <= high){\r\n\t\t\tif( j+1 <= high && arr[j+1][orderKey] > arr[j][orderKey]){\r\n\t\t\t\tj = j+1\r\n\t\t\t}\r\n\t\t\tif (arr[j][orderKey] > tmp[orderKey]) {\r\n\t\t\t\tarr[i] = arr[j]\r\n\t\t\t\ti = j\r\n\t\t\t\tj = i * 2 + 1\r\n\t\t\t\tcontinue\r\n\t\t\t} else {\r\n\t\t\t\tarr[i] = tmp\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tarr[i] = tmp\r\n\t}\r\n\texport const lee_sort = (arr:any[], orderKey:string)=>{\r\n\t\t// arr 需要排序的数组\r\n\t\t// orderKey 针对哪个属性进行排序\r\n\r\n\t\tlet len = arr.length;\r\n\t\tfor(let i=Math.floor((len - 1 - 1) /2); i >=0; i--){\r\n\t\t\tshif(arr, i, len-1, orderKey)\r\n\t\t}\r\n\t\tfor(let i = len-1; i>=0; i--){\r\n\t\t\tlet tem = arr[0]\r\n\t\t\tarr[0] = arr[i]\r\n\t\t\tarr[i] = tem\r\n\t\t\tshif(arr, 0, i - 1, orderKey)\r\n\t\t}\r\n\t}\r\n\t//魔改的堆排序结束\r\n\r\n\r\n // 生成一个独一无二的ID \r\n export const getID = (t:string='l') => {\r\n var timestamp=new Date().getTime()\r\n timestamp %= 10000000\r\n var randomNum = getRandomInt(1, 999999);\r\n var randomNum2 = getRandomInt(1, 999999);\r\n var recipeId = t + String(timestamp) + String(randomNum) + String(randomNum2)\r\n\r\n return recipeId;\r\n }\r\n\r\n class TreeNode {\r\n\t\tdata: T | undefined\r\n\t\tchild: TreeNode[] = []\r\n\t\tdeep: number = 0\r\n\t}\r\n\r\n\t/**\r\n\t * 全排列求解器,穷举\r\n\t * 使用方式:\r\n\t * let p = new PermutationSequence();\r\n\t * let result = p.getSolution([1,2],[3,4]);\r\n\t */\r\n\texport class PermutationSequence {\r\n constrator() {\r\n \r\n }\r\n\t\tprivate treeRoot: TreeNode = new TreeNode()\r\n\t\tprivate solution: T[][] = []\r\n\t\tprivate dataArray: T[][] = []\r\n // 生成tree结构\r\n\t\tprivate makeTree(root: TreeNode, deep: number = 0) {\r\n\t\t\tif (deep < this.dataArray.length) {\r\n\t\t\t\tfor (const data of this.dataArray[deep]) {\r\n\t\t\t\t\tconst newNode = new TreeNode()\r\n\t\t\t\t\tnewNode.data = data\r\n\t\t\t\t\tnewNode.deep = deep + 1\r\n\t\t\t\t\troot.child.push(newNode)\r\n\t\t\t\t}\r\n\t\t\t\tfor (const node of root.child) {\r\n\t\t\t\t\tthis.makeTree(node, deep + 1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * 回溯算法:\r\n\t\t * result = []\r\n\t\t * def backtrack(路径, 选择列表):\r\n\t\t * if 满足结束条件:\r\n\t\t * result.add(路径)\r\n\t\t * return\r\n\t\t *\r\n\t\t * for 选择 in 选择列表:\r\n\t\t * backtrack(路径, 选择列表)\r\n\t\t * 撤销选择\r\n\t\t */\r\n\t\tprivate backtrack(sel: T[], node: TreeNode) {\r\n\t\t\tif (node.deep === this.dataArray.length) {\r\n\t\t\t\tthis.solution.push(new Array(...sel))\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tfor (const child of node.child) {\r\n\t\t\t\tif (child.data) {\r\n\t\t\t\t\tsel.push(child.data)\r\n\t\t\t\t}\r\n\t\t\t\tthis.backtrack(sel, child)\r\n\t\t\t\tsel.pop()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * 根据设置的数组获取全排列结果\r\n\t\t * @param dataArray 需要求解的数组\r\n\t\t */\r\n\t\tpublic getSolution(dataArray: T[][]) {\r\n\t\t\tthis.solution = []\r\n\t\t\tthis.dataArray = dataArray\r\n\t\t\tthis.makeTree(this.treeRoot)\r\n\t\t\tthis.backtrack([], this.treeRoot)\r\n\t\t\treturn this.solution\r\n\t\t}\r\n\t}\r\n\r\n\r\n export const getElementPosition = (element:any)=>{\r\n let top = element.offsetTop //这是获取元素距父元素顶部的距离\r\n let left = element.offsetLeft\r\n var current = element.offsetParent //这是获取父元素\r\n while (current !== null) {\r\n //当它上面有元素时就继续执行\r\n top += current.offsetTop //这是获取父元素距它的父元素顶部的距离累加起来\r\n left += current.offsetLeft\r\n current = current.offsetParent //继续找父元素\r\n }\r\n return {\r\n top,\r\n left,\r\n }\r\n }\r\n\r\n // 获取 window 的宽度\r\n export const getWindowWidth = () => {\r\n let windowWidth = 0;\r\n if (typeof(window.innerWidth) == 'number') {\r\n windowWidth = window.innerWidth;\r\n } else {\r\n if (document.documentElement && document.documentElement.clientWidth) {\r\n windowWidth = document.documentElement.clientWidth;\r\n } else {\r\n if (document.body && document.body.clientWidth) {\r\n windowWidth = document.body.clientWidth;\r\n }\r\n }\r\n }\r\n return windowWidth;\r\n }\r\n}\r\n\r\n\r\n\r\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","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!./barTitle.vue?vue&type=style&index=0&id=214cac68&lang=scss&scoped=true\"","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!./mostRecordsModel.vue?vue&type=style&index=0&id=c5d46c5a&lang=scss\"","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!./mainAnalysis.vue?vue&type=style&index=0&id=34501615&lang=scss&scoped=true\"","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!./tjModal.vue?vue&type=style&index=0&id=4060b44f&lang=scss&scoped=true\"","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!./varianceanalysis.vue?vue&type=style&index=0&id=1e9a635a&lang=scss&scoped=true\"","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!./varianceanalysisModule.vue?vue&type=style&index=0&id=98763f1a&lang=scss&scoped=true\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../util/model.js';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper.js';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\n/**\n * @param {module:echats/coord/Axis} axis\n * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea.\n * @return {Object} {\n * ticks: Array.\n * tickCategoryInterval: number\n * }\n */\n\nexport function createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval; // Optimize for the case that large category data and no label displayed,\n // we should not return all ticks.\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } // Always use label interval by default despite label show. Consider this\n // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows\n // labels. `splitLine` and `axisTick` should be consistent in this case.\n else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tick, idx) {\n return {\n level: tick.level,\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n // Because key can be funciton, and cache size always be small, we use array cache.\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n/**\n * Calculate interval for category axis ticks and labels.\n * To get precise result, at least one of `getRotate` and `isHorizontal`\n * should be implemented in axis.\n */\n\n\nexport function calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1; // Simple optimization. Empirical value: tick count should less than 40.\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0; // Caution: Performance sensitive for large category data.\n // Consider dataZoom, we should make appropriate step to avoid O(n) loop.\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0; // Not precise, do not consider align and vertical align\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(labelFormatter({\n value: tickValue\n }), params.font, 'center', 'top'); // Magic number\n\n width = rect.width * 1.3;\n height = rect.height * 1.3; // Min size, void long loop.\n\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var axisExtent = axis.getExtent();\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n // For example, if all of the axis labels are `a, b, c, d, e, f, g`.\n // The jitter will cause that sometimes the displayed labels are\n // `a, d, g` (interval: 2) sometimes `a, c, e`(interval: 1).\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval // If the axis change is caused by chart resize, the cache should not\n // be used. Otherwise some hiden labels might not be shown again.\n && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n cache.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = axisExtent[1];\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/...\n\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent\n // while zooming and moving while interval > 0. Otherwise the selection\n // of displayable ticks and symbols probably keep changing.\n // 3 is empirical value.\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n } // (1) Only add min max label here but leave overlap checking\n // to render stage, which also ensure the returned list\n // suitable for splitLine and splitArea rendering.\n // (2) Scales except category always contain min max label so\n // do not need to perform this process.\n\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n } // Optimize: avoid generating large array by `ordinalScale.getTicks()`.\n\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, map } from 'zrender/lib/core/util.js';\nimport { linearMap, getPixelPrecision, round } from '../util/number.js';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder.js';\nvar NORMALIZED_EXTENT = [0, 1];\n/**\n * Base class of Axis.\n */\n\nvar Axis =\n/** @class */\nfunction () {\n function Axis(dim, scale, extent) {\n this.onBand = false;\n this.inverse = false;\n this.dim = dim;\n this.scale = scale;\n this._extent = extent || [0, 0];\n }\n /**\n * If axis extent contain given coord\n */\n\n\n Axis.prototype.contain = function (coord) {\n var extent = this._extent;\n var min = Math.min(extent[0], extent[1]);\n var max = Math.max(extent[0], extent[1]);\n return coord >= min && coord <= max;\n };\n /**\n * If axis extent contain given data\n */\n\n\n Axis.prototype.containData = function (data) {\n return this.scale.contain(data);\n };\n /**\n * Get coord extent.\n */\n\n\n Axis.prototype.getExtent = function () {\n return this._extent.slice();\n };\n /**\n * Get precision used for formatting\n */\n\n\n Axis.prototype.getPixelPrecision = function (dataExtent) {\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n };\n /**\n * Set coord extent\n */\n\n\n Axis.prototype.setExtent = function (start, end) {\n var extent = this._extent;\n extent[0] = start;\n extent[1] = end;\n };\n /**\n * Convert data to coord. Data is the rank if it has an ordinal scale\n */\n\n\n Axis.prototype.dataToCoord = function (data, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n data = scale.normalize(data);\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n };\n /**\n * Convert coord to data. Data is the rank if it has an ordinal scale\n */\n\n\n Axis.prototype.coordToData = function (coord, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n return this.scale.scale(t);\n };\n /**\n * Convert pixel point to data in axis\n */\n\n\n Axis.prototype.pointToData = function (point, clamp) {\n // Should be implemented in derived class if necessary.\n return;\n };\n /**\n * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`,\n * `axis.getTicksCoords` considers `onBand`, which is used by\n * `boundaryGap:true` of category axis and splitLine and splitArea.\n * @param opt.tickModel default: axis.model.getModel('axisTick')\n * @param opt.clamp If `true`, the first and the last\n * tick must be at the axis end points. Otherwise, clip ticks\n * that outside the axis extent.\n */\n\n\n Axis.prototype.getTicksCoords = function (opt) {\n opt = opt || {};\n var tickModel = opt.tickModel || this.getTickModel();\n var result = createAxisTicks(this, tickModel);\n var ticks = result.ticks;\n var ticksCoords = map(ticks, function (tickVal) {\n return {\n coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n tickValue: tickVal\n };\n }, this);\n var alignWithLabel = tickModel.get('alignWithLabel');\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n return ticksCoords;\n };\n\n Axis.prototype.getMinorTicksCoords = function () {\n if (this.scale.type === 'ordinal') {\n // Category axis doesn't support minor ticks\n return [];\n }\n\n var minorTickModel = this.model.getModel('minorTick');\n var splitNumber = minorTickModel.get('splitNumber'); // Protection.\n\n if (!(splitNumber > 0 && splitNumber < 100)) {\n splitNumber = 5;\n }\n\n var minorTicks = this.scale.getMinorTicks(splitNumber);\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n return map(minorTicksGroup, function (minorTick) {\n return {\n coord: this.dataToCoord(minorTick),\n tickValue: minorTick\n };\n }, this);\n }, this);\n return minorTicksCoords;\n };\n\n Axis.prototype.getViewLabels = function () {\n return createAxisLabels(this).labels;\n };\n\n Axis.prototype.getLabelModel = function () {\n return this.model.getModel('axisLabel');\n };\n /**\n * Notice here we only get the default tick model. For splitLine\n * or splitArea, we should pass the splitLineModel or splitAreaModel\n * manually when calling `getTicksCoords`.\n * In GL, this method may be overrided to:\n * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));`\n */\n\n\n Axis.prototype.getTickModel = function () {\n return this.model.getModel('axisTick');\n };\n /**\n * Get width of band\n */\n\n\n Axis.prototype.getBandWidth = function () {\n var axisExtent = this._extent;\n var dataExtent = this.scale.getExtent();\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); // Fix #2728, avoid NaN when only one data.\n\n len === 0 && (len = 1);\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\n return Math.abs(size) / len;\n };\n /**\n * Only be called in category axis.\n * Can be overrided, consider other axes like in 3D.\n * @return Auto interval for cateogry axis tick and label\n */\n\n\n Axis.prototype.calculateCategoryInterval = function () {\n return calculateCategoryInterval(this);\n };\n\n return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n var size = extent[1] - extent[0];\n var len = nTick;\n var margin = size / len / 2;\n extent[0] += margin;\n extent[1] -= margin;\n} // If axis has labels [1, 2, 3, 4]. Bands on the axis are\n// |---1---|---2---|---3---|---4---|.\n// So the displayed ticks and splitLine/splitArea should between\n// each data item, otherwise cause misleading (e.g., split tow bars\n// of a single data item when there are two bar series).\n// Also consider if tickCategoryInterval > 0 and onBand, ticks and\n// splitLine/spliteArea should layout appropriately corresponding\n// to displayed labels. (So we should not use `getBandWidth` in this\n// case).\n\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n var ticksLen = ticksCoords.length;\n\n if (!axis.onBand || alignWithLabel || !ticksLen) {\n return;\n }\n\n var axisExtent = axis.getExtent();\n var last;\n var diffSize;\n\n if (ticksLen === 1) {\n ticksCoords[0].coord = axisExtent[0];\n last = ticksCoords[1] = {\n coord: axisExtent[0]\n };\n } else {\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n each(ticksCoords, function (ticksItem) {\n ticksItem.coord -= shift_1 / 2;\n });\n var dataExtent = axis.scale.getExtent();\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n last = {\n coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n };\n ticksCoords.push(last);\n }\n\n var inverse = axisExtent[0] > axisExtent[1]; // Handling clamp.\n\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n }\n\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n ticksCoords.unshift({\n coord: axisExtent[0]\n });\n }\n\n if (littleThan(axisExtent[1], last.coord)) {\n clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n }\n\n if (clamp && littleThan(last.coord, axisExtent[1])) {\n ticksCoords.push({\n coord: axisExtent[1]\n });\n }\n\n function littleThan(a, b) {\n // Avoid rounding error cause calculated tick coord different with extent.\n // It may cause an extra unecessary tick added.\n a = round(a);\n b = round(b);\n return inverse ? a > b : a < b;\n }\n}\n\nexport default Axis;","import {synDiff} from './synDiff'\r\n\r\nexport class el{\r\n id?:string\r\n weight?: number //权重\r\n content?: string //内容\r\n}\r\n\r\nexport interface IicdJsonObject{\r\n icdCode:string,\r\n icdName:string\r\n}\r\n\r\n\r\nexport class Tmpl{\r\n sex: number // 性别,0:女,1:男,-1:不限 ,\r\n id:string //编辑时需传值\r\n dxName:string //疾病名称\r\n dxCode: String //疾病代码\r\n icdName?:string // 西医诊断\r\n icdCode?: string //西医诊断代码\r\n systemIcdCode:string // 西医诊断系统编码\r\n systemIcdName: string //标准机构西医诊断名称\r\n icdJsonObject:IicdJsonObject[] //更多西医诊断 入参\r\n icdJson:IicdJsonObject[] //更多西医诊断 出参\r\n alias: String //别名\r\n dep: string //科室\r\n el: el[] //诊断要素\r\n synDiff:synDiff[] //中医辨证\r\n remark: string //备注\r\n illustrate: string //说明 ,\r\n provenance : string // 出处\r\n isSeminar: number // 是否研讨模型\r\n author: String // 创建人\r\n maxAge: number //年龄区间最小值\r\n minAge: number //年龄区间最大值\r\n\r\n age?:string = '0-0' // 年龄区间对应的选项值\r\n\r\n\r\n\r\n icdJsonObjectSelect:string[] //前端要用到的属性,表现选中的 icdJsonObject\r\n\r\n\r\n constructor(param?:Tmpl){\r\n if(param){\r\n this.id = param.id\r\n this.dxName = param.dxName\r\n this.dxCode = param.dxCode\r\n this.icdName = param.icdName\r\n this.icdCode = param.icdCode\r\n this.systemIcdCode = param.systemIcdCode\r\n this.systemIcdName = param.systemIcdName\r\n this.alias = param.alias\r\n this.dep = param.dep\r\n this.el = param.el\r\n this.synDiff = param.synDiff\r\n this.remark = param.remark\r\n this.sex = param.sex\r\n this.illustrate = param.illustrate\r\n this.provenance = param.provenance\r\n this.isSeminar = param.isSeminar\r\n this.author = param.author\r\n this.maxAge = param.maxAge\r\n this.minAge = param.minAge\r\n this.icdJsonObject = param.icdJsonObject\r\n this.icdJsonObjectSelect = param.icdJsonObjectSelect\r\n this.icdJson = param.icdJson\r\n }else{\r\n this.id = ''\r\n this.dxName = ''\r\n this.dxCode = ''\r\n this.icdName = ''\r\n this.icdCode = ''\r\n this.systemIcdCode = ''\r\n this.systemIcdName = ''\r\n this.alias = ''\r\n this.dep = ''\r\n this.icdJsonObject = []\r\n this.icdJsonObjectSelect = []\r\n this.icdJson = []\r\n this.el = [\r\n {\r\n weight:80,\r\n content:'',\r\n id:''\r\n },\r\n {\r\n weight:50,\r\n content:'',\r\n id:''\r\n },\r\n {\r\n weight:30,\r\n content:'',\r\n id:''\r\n }\r\n ]\r\n this.synDiff = []\r\n this.remark = ''\r\n this.sex = -1\r\n this.provenance = ''\r\n this.illustrate = ''\r\n this.isSeminar = 0\r\n this.author = ''\r\n this.minAge = 0\r\n this.maxAge = 0\r\n }\r\n }\r\n \r\n}\r\n\r\n","var _export_sfc = (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\nexport { _export_sfc as default };\n","import { vModelCheckbox as _vModelCheckbox, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-04646621\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"cCheckbox\" }\nconst _hoisted_2 = { class: \"cCheckbox-checkAssist\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"cCheckbox-label\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_check = _resolveComponent(\"check\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"cCheckbox-check\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.inputVal) = $event)),\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.changeHandle && _ctx.changeHandle(...args)))\n }, null, 544), [\n [_vModelCheckbox, _ctx.inputVal]\n ]),\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.inputVal)\n ? (_openBlock(), _createBlock(_component_el_icon, { key: 0 }, {\n default: _withCtx(() => [\n _createVNode(_component_check)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.props.label)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.props.label), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { defineComponent } from 'vue';\r\nimport { ref, watch } from 'vue';\r\nimport { Check } from '@element-plus/icons-vue';\r\n\r\nexport default defineComponent ({\r\n name: \"cCheckbox2\",\r\n components:{\r\n Check,\r\n },\r\n emits: ['update:modelValue', 'change'],\r\n props:{\r\n modelValue:{\r\n type:Boolean,\r\n default:false\r\n },\r\n label:{\r\n type:String,\r\n default:''\r\n }\r\n },\r\n setup(props, { emit }){\r\n \r\n const inputVal = ref(props.modelValue)\r\n\r\n const changeHandle = ()=>{\r\n emit('update:modelValue', inputVal.value)\r\n emit('change', inputVal.value)\r\n }\r\n\r\n watch(()=>props.modelValue, (val)=>{\r\n inputVal.value = val\r\n })\r\n\r\n\r\n return {\r\n inputVal,\r\n props,\r\n changeHandle\r\n };\r\n },\r\n})\r\n","import { render } from \"./cCheckbox2.vue?vue&type=template&id=04646621&scoped=true&ts=true\"\nimport script from \"./cCheckbox2.vue?vue&type=script&lang=ts\"\nexport * from \"./cCheckbox2.vue?vue&type=script&lang=ts\"\n\nimport \"./cCheckbox2.vue?vue&type=style&index=0&id=04646621&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-04646621\"]])\n\nexport default __exports__","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Plus\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar plus = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { plus as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Check\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar check = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { check as default };\n","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!./barEchart.vue?vue&type=style&index=0&id=7f7a38d4&lang=scss&scoped=true\"","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!./cCheckbox2.vue?vue&type=style&index=0&id=04646621&lang=scss&scoped=true\"","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!./cSlide.vue?vue&type=style&index=0&id=5f2e1fd8&lang=scss&scoped=true\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { isArray } from 'zrender/lib/core/util.js';\n/**\n * @return label string. Not null/undefined\n */\n\nexport function getDefaultLabel(data, dataIndex) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n var len = labelDims.length; // Simple optimization (in lots of cases, label dims length is 1)\n\n if (len === 1) {\n var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n return rawVal != null ? rawVal + '' : null;\n } else if (len) {\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n }\n\n return vals.join(' ');\n }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n if (!isArray(interpolatedValue)) {\n return interpolatedValue + '';\n }\n\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n var dimIndex = data.getDimensionIndex(labelDims[i]);\n\n if (dimIndex >= 0) {\n vals.push(interpolatedValue[dimIndex]);\n }\n }\n\n return vals.join(' ');\n}","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!./effcoll.vue?vue&type=style&index=0&id=29763974&lang=scss\"","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"RefreshLeft\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar refreshLeft = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { refreshLeft as default };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isFunction, isString } from 'zrender/lib/core/util.js';\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame) {\n return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n return {\n seriesType: seriesType,\n // FIXME:TS never used, so comment it\n // modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem;\n var count = data.count(); // Only cartesian2d support down sampling. Disable it when there is few data.\n\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent();\n var dpr = api.getDevicePixelRatio(); // Coordinste system has been resized\n\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n var rate = Math.round(count / size);\n\n if (isFinite(rate) && rate > 1) {\n if (sampling === 'lttb') {\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n }\n\n var sampler = void 0;\n\n if (isString(sampling)) {\n sampler = samplers[sampling];\n } else if (isFunction(sampling)) {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\n\nvar BaseBarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(BaseBarSeriesModel, _super);\n\n function BaseBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BaseBarSeriesModel.type;\n return _this;\n }\n\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true\n });\n };\n\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys && coordSys.clampData) {\n // PENDING if clamp ?\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\n var data = this.getData();\n var offset = data.getLayout('offset');\n var size = data.getLayout('size');\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n pt[offsetIndex] += offset + size / 2;\n return pt;\n }\n\n return [NaN, NaN];\n };\n\n BaseBarSeriesModel.type = 'series.__base_bar__';\n BaseBarSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n // stack: null\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n barMinHeight: 0,\n barMinAngle: 0,\n // cursor: null,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod'\n };\n return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar BarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(BarSeriesModel, _super);\n\n function BarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BarSeriesModel.type;\n return _this;\n }\n\n BarSeriesModel.prototype.getInitialData = function () {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true,\n createInvertedIndices: !!this.get('realtimeSort', true) || null\n });\n };\n /**\n * @override\n */\n\n\n BarSeriesModel.prototype.getProgressive = function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n };\n /**\n * @override\n */\n\n\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\n // Do not support progressive in normal mode.\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n };\n\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.rect(data.getItemLayout(dataIndex));\n };\n\n BarSeriesModel.type = 'series.bar';\n BarSeriesModel.dependencies = ['grid', 'polar'];\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n // If clipped\n // Only available on cartesian2d\n clip: true,\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n realtimeSort: false\n });\n return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport { round } from '../../util/number.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n var rect = cartesian.getArea();\n var x = rect.x;\n var y = rect.y;\n var width = rect.width;\n var height = rect.height;\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2; // Expand the clip path a bit to avoid the border is clipped and looks thinner\n\n x -= lineWidth / 2;\n y -= lineWidth / 2;\n width += lineWidth;\n height += lineWidth; // fix: https://github.com/apache/incubator-echarts/issues/11369\n\n x = Math.floor(x);\n width = Math.round(width);\n var clipPath = new graphic.Rect({\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n }\n });\n\n if (hasAnimation) {\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isAxisInversed = baseAxis.inverse;\n\n if (isHorizontal) {\n if (isAxisInversed) {\n clipPath.shape.x += width;\n }\n\n clipPath.shape.width = 0;\n } else {\n if (!isAxisInversed) {\n clipPath.shape.y += height;\n }\n\n clipPath.shape.height = 0;\n }\n\n var duringCb = isFunction(during) ? function (percent) {\n during(percent, clipPath);\n } : null;\n graphic.initProps(clipPath, {\n shape: {\n width: width,\n height: height,\n x: x,\n y: y\n }\n }, seriesModel, null, done, duringCb);\n }\n\n return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n var sectorArea = polar.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n\n var r0 = round(sectorArea.r0, 1);\n var r = round(sectorArea.r, 1);\n var clipPath = new graphic.Sector({\n shape: {\n cx: round(polar.cx, 1),\n cy: round(polar.cy, 1),\n r0: r0,\n r: r,\n startAngle: sectorArea.startAngle,\n endAngle: sectorArea.endAngle,\n clockwise: sectorArea.clockwise\n }\n });\n\n if (hasAnimation) {\n var isRadial = polar.getBaseAxis().dim === 'angle';\n\n if (isRadial) {\n clipPath.shape.endAngle = sectorArea.startAngle;\n } else {\n clipPath.shape.r = r0;\n }\n\n graphic.initProps(clipPath, {\n shape: {\n endAngle: sectorArea.endAngle,\n r: r\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n if (!coordSys) {\n return null;\n } else if (coordSys.type === 'polar') {\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n } else if (coordSys.type === 'cartesian2d') {\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n }\n\n return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic.js';\n/**\n * Sausage: similar to sector, but have half circle on both sides\n */\n\nvar SausageShape =\n/** @class */\nfunction () {\n function SausageShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n\n return SausageShape;\n}();\n\nvar SausagePath =\n/** @class */\nfunction (_super) {\n __extends(SausagePath, _super);\n\n function SausagePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'sausage';\n return _this;\n }\n\n SausagePath.prototype.getDefaultShape = function () {\n return new SausageShape();\n };\n\n SausagePath.prototype.buildPath = function (ctx, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var r0 = Math.max(shape.r0 || 0, 0);\n var r = Math.max(shape.r, 0);\n var dr = (r - r0) * 0.5;\n var rCenter = r0 + dr;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var PI2 = Math.PI * 2;\n var lessThanCircle = clockwise ? endAngle - startAngle < PI2 : startAngle - endAngle < PI2;\n\n if (!lessThanCircle) {\n // Normalize angles\n startAngle = endAngle - (clockwise ? PI2 : -PI2);\n }\n\n var unitStartX = Math.cos(startAngle);\n var unitStartY = Math.sin(startAngle);\n var unitEndX = Math.cos(endAngle);\n var unitEndY = Math.sin(endAngle);\n\n if (lessThanCircle) {\n ctx.moveTo(unitStartX * r0 + cx, unitStartY * r0 + cy);\n ctx.arc(unitStartX * rCenter + cx, unitStartY * rCenter + cy, dr, -Math.PI + startAngle, startAngle, !clockwise);\n } else {\n ctx.moveTo(unitStartX * r + cx, unitStartY * r + cy);\n }\n\n ctx.arc(cx, cy, r, startAngle, endAngle, !clockwise);\n ctx.arc(unitEndX * rCenter + cx, unitEndY * rCenter + cy, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n if (r0 !== 0) {\n ctx.arc(cx, cy, r0, endAngle, startAngle, clockwise);\n } // ctx.closePath();\n\n };\n\n return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function isCoordinateSystemType(coordSys, type) {\n return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { calculateTextPosition } from 'zrender/lib/contain/text.js';\nimport { isArray, isNumber } from 'zrender/lib/core/util.js';\nexport function createSectorCalculateTextPosition(positionMapping, opts) {\n opts = opts || {};\n var isRoundCap = opts.isRoundCap;\n return function (out, opts, boundingRect) {\n var textPosition = opts.position;\n\n if (!textPosition || textPosition instanceof Array) {\n return calculateTextPosition(out, opts, boundingRect);\n }\n\n var mappedSectorPosition = positionMapping(textPosition);\n var distance = opts.distance != null ? opts.distance : 5;\n var sector = this.shape;\n var cx = sector.cx;\n var cy = sector.cy;\n var r = sector.r;\n var r0 = sector.r0;\n var middleR = (r + r0) / 2;\n var startAngle = sector.startAngle;\n var endAngle = sector.endAngle;\n var middleAngle = (startAngle + endAngle) / 2;\n var extraDist = isRoundCap ? Math.abs(r - r0) / 2 : 0;\n var mathCos = Math.cos;\n var mathSin = Math.sin; // base position: top-left\n\n var x = cx + r * mathCos(startAngle);\n var y = cy + r * mathSin(startAngle);\n var textAlign = 'left';\n var textVerticalAlign = 'top';\n\n switch (mappedSectorPosition) {\n case 'startArc':\n x = cx + (r0 - distance) * mathCos(middleAngle);\n y = cy + (r0 - distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'top';\n break;\n\n case 'insideStartArc':\n x = cx + (r0 + distance) * mathCos(middleAngle);\n y = cy + (r0 + distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n\n case 'startAngle':\n x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, distance + extraDist, false);\n y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, distance + extraDist, false);\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n\n case 'insideStartAngle':\n x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, -distance + extraDist, false);\n y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, -distance + extraDist, false);\n textAlign = 'left';\n textVerticalAlign = 'middle';\n break;\n\n case 'middle':\n x = cx + middleR * mathCos(middleAngle);\n y = cy + middleR * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'middle';\n break;\n\n case 'endArc':\n x = cx + (r + distance) * mathCos(middleAngle);\n y = cy + (r + distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideEndArc':\n x = cx + (r - distance) * mathCos(middleAngle);\n y = cy + (r - distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'top';\n break;\n\n case 'endAngle':\n x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, distance + extraDist, true);\n y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, distance + extraDist, true);\n textAlign = 'left';\n textVerticalAlign = 'middle';\n break;\n\n case 'insideEndAngle':\n x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, -distance + extraDist, true);\n y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, -distance + extraDist, true);\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n\n default:\n return calculateTextPosition(out, opts, boundingRect);\n }\n\n out = out || {};\n out.x = x;\n out.y = y;\n out.align = textAlign;\n out.verticalAlign = textVerticalAlign;\n return out;\n };\n}\nexport function setSectorTextRotation(sector, textPosition, positionMapping, rotateType) {\n if (isNumber(rotateType)) {\n // user-set rotation\n sector.setTextConfig({\n rotation: rotateType\n });\n return;\n } else if (isArray(textPosition)) {\n // user-set position, use 0 as auto rotation\n sector.setTextConfig({\n rotation: 0\n });\n return;\n }\n\n var shape = sector.shape;\n var startAngle = shape.clockwise ? shape.startAngle : shape.endAngle;\n var endAngle = shape.clockwise ? shape.endAngle : shape.startAngle;\n var middleAngle = (startAngle + endAngle) / 2;\n var anchorAngle;\n var mappedSectorPosition = positionMapping(textPosition);\n\n switch (mappedSectorPosition) {\n case 'startArc':\n case 'insideStartArc':\n case 'middle':\n case 'insideEndArc':\n case 'endArc':\n anchorAngle = middleAngle;\n break;\n\n case 'startAngle':\n case 'insideStartAngle':\n anchorAngle = startAngle;\n break;\n\n case 'endAngle':\n case 'insideEndAngle':\n anchorAngle = endAngle;\n break;\n\n default:\n sector.setTextConfig({\n rotation: 0\n });\n return;\n }\n\n var rotate = Math.PI * 1.5 - anchorAngle;\n /**\n * TODO: labels with rotate > Math.PI / 2 should be rotate another\n * half round flipped to increase readability. However, only middle\n * position supports this for now, because in other positions, the\n * anchor point is not at the center of the text, so the positions\n * after rotating is not as expected.\n */\n\n if (mappedSectorPosition === 'middle' && rotate > Math.PI / 2 && rotate < Math.PI * 1.5) {\n rotate -= Math.PI;\n }\n\n sector.setTextConfig({\n rotation: rotate\n });\n}\n\nfunction adjustAngleDistanceX(angle, distance, isEnd) {\n return distance * Math.sin(angle) * (isEnd ? -1 : 1);\n}\n\nfunction adjustAngleDistanceY(angle, distance, isEnd) {\n return distance * Math.cos(angle) * (isEnd ? 1 : -1);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport { extend, each, map } from 'zrender/lib/core/util.js';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut, traverseElements } from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation, labelInner } from '../../label/labelStyle.js';\nimport { throttle } from '../../util/throttle.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { warn } from '../../util/log.js';\nimport { createSectorCalculateTextPosition, setSectorTextRotation } from '../../label/sectorLabel.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n var coordSysClipArea = coord.getArea && coord.getArea();\n\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid.\n // We should not clip this part.\n // See test/bar2.html\n\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n var expandWidth = data.getLayout('bandWidth');\n\n if (baseAxis.isHorizontal()) {\n coordSysClipArea.x -= expandWidth;\n coordSysClipArea.width += expandWidth * 2;\n } else {\n coordSysClipArea.y -= expandWidth;\n coordSysClipArea.height += expandWidth * 2;\n }\n }\n }\n\n return coordSysClipArea;\n}\n\nvar BarView =\n/** @class */\nfunction (_super) {\n __extends(BarView, _super);\n\n function BarView() {\n var _this = _super.call(this) || this;\n\n _this.type = BarView.type;\n _this._isFirstFrame = true;\n return _this;\n }\n\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n this._model = seriesModel;\n\n this._removeOnRenderedListener(api);\n\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n // Clear previously rendered progressive elements.\n this._progressiveEls = null;\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n } else if (process.env.NODE_ENV !== 'production') {\n warn('Only cartesian2d and polar supported for bar.');\n }\n };\n\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n this._clear();\n\n this._updateDrawMode(seriesModel); // incremental also need to clip, otherwise might be overlow.\n // But must not set clip in each frame, otherwise all of the children will be marked redraw.\n\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype.incrementalRender = function (params, seriesModel) {\n // Reset\n this._progressiveEls = []; // Do not support progressive in normal mode.\n\n this._incrementalRenderLarge(params, seriesModel);\n };\n\n BarView.prototype.eachRendered = function (cb) {\n traverseElements(this._progressiveEls || this.group, cb);\n };\n\n BarView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n if (realtimeSortCfg) {\n this._enableRealtimeSort(realtimeSortCfg, data, api);\n }\n\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it.\n\n group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation\n // And don't want the label are clipped.\n\n var roundCap = seriesModel.get('roundCap', true);\n var drawBackground = seriesModel.get('showBackground', true);\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n var bgEls = [];\n var oldBgEls = this._backgroundEls;\n var isInitSort = payload && payload.isInitSort;\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n function createBackground(dataIndex) {\n var bgLayout = getLayout[coord.type](data, dataIndex);\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[dataIndex] = bgEl;\n return bgEl;\n }\n\n ;\n data.diff(oldData).add(function (dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n if (drawBackground) {\n createBackground(dataIndex);\n } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in \"axisProxy\".\n\n\n if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout)) {\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n // Clip will modify the layout params.\n // And return a boolean to determine if the shape are fully clipped.\n isClipped = clip[coord.type](coordSysClipArea, layout);\n }\n\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n\n if (realtimeSortCfg) {\n /**\n * Force label animation because even if the element is\n * ignored because it's clipped, it may not be clipped after\n * changing order. Then, if not using forceLabelAnimation,\n * the label animation was never started, in which case,\n * the label will be the final value and doesn't have label\n * animation.\n */\n el.forceLabelAnimation = true;\n }\n\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n } else {\n initProps(el, {\n shape: layout\n }, seriesModel, dataIndex);\n }\n\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n el.ignore = isClipped;\n }).update(function (newIndex, oldIndex) {\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (drawBackground) {\n var bgEl = void 0;\n\n if (oldBgEls.length === 0) {\n bgEl = createBackground(oldIndex);\n } else {\n bgEl = oldBgEls[oldIndex];\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[newIndex] = bgEl;\n }\n\n var bgLayout = getLayout[coord.type](data, newIndex);\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n updateProps(bgEl, {\n shape: shape\n }, animationModel, newIndex);\n }\n\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout)) {\n group.remove(el);\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n\n if (isClipped) {\n group.remove(el);\n }\n }\n\n if (!el) {\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n } else {\n saveOldStyle(el);\n }\n\n if (realtimeSortCfg) {\n el.forceLabelAnimation = true;\n }\n\n if (isChangeOrder) {\n var textEl = el.getTextContent();\n\n if (textEl) {\n var labelInnerStore = labelInner(textEl);\n\n if (labelInnerStore.prevValue != null) {\n /**\n * Set preValue to be value so that no new label\n * should be started, otherwise, it will take a full\n * `animationDurationUpdate` time to finish the\n * animation, which is not expected.\n */\n labelInnerStore.prevValue = labelInnerStore.value;\n }\n }\n } // Not change anything if only order changed.\n // Especially not change label.\n else {\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n } else {\n updateProps(el, {\n shape: layout\n }, seriesModel, newIndex, null);\n }\n\n data.setItemGraphicEl(newIndex, el);\n el.ignore = isClipped;\n group.add(el);\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n }).execute();\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n bgGroup.removeAll();\n\n for (var i = 0; i < bgEls.length; ++i) {\n bgGroup.add(bgEls[i]);\n }\n\n group.add(bgGroup);\n this._backgroundEls = bgEls;\n this._data = data;\n };\n\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n this._removeBackground();\n\n createLarge(seriesModel, this.group, this._progressiveEls, true);\n };\n\n BarView.prototype._updateLargeClip = function (seriesModel) {\n // Use clipPath in large mode.\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n var group = this.group;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n };\n\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n var _this = this; // If no data in the first frame, wait for data to initSort\n\n\n if (!data.count()) {\n return;\n }\n\n var baseAxis = realtimeSortCfg.baseAxis;\n\n if (this._isFirstFrame) {\n this._dispatchInitSort(data, realtimeSortCfg, api);\n\n this._isFirstFrame = false;\n } else {\n var orderMapping_1 = function (idx) {\n var el = data.getItemGraphicEl(idx);\n var shape = el && el.shape;\n return shape && // The result should be consistent with the initial sort by data value.\n // Do not support the case that both positive and negative exist.\n Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) // If data is NaN, shape.xxx may be NaN, so use || 0 here in case\n || 0;\n };\n\n this._onRendered = function () {\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n };\n\n api.getZr().on('rendered', this._onRendered);\n }\n };\n\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n var info = [];\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n var mappedValue = orderMapping(dataIdx);\n mappedValue = mappedValue == null ? NaN : mappedValue;\n info.push({\n dataIndex: dataIdx,\n mappedValue: mappedValue,\n ordinalNumber: ordinalNumber\n });\n });\n info.sort(function (a, b) {\n // If NaN, it will be treated as min val.\n return b.mappedValue - a.mappedValue;\n });\n return {\n ordinalNumbers: map(info, function (item) {\n return item.ordinalNumber;\n })\n };\n };\n\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n var scale = baseAxis.scale;\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\n var lastValue = Number.MAX_VALUE;\n\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n var value = rawIdx < 0 // If some tick have no bar, the tick will be treated as min.\n ? Number.MIN_VALUE // PENDING: if dataZoom on baseAxis exits, is it a performance issue?\n : orderMapping(data.indexOfRawIndex(rawIdx));\n\n if (value > lastValue) {\n return true;\n }\n\n lastValue = value;\n }\n\n return false;\n };\n /*\n * Consider the case when A and B changed order, whose representing\n * bars are both out of sight, we don't wish to trigger reorder action\n * as long as the order in the view doesn't change.\n */\n\n\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n var scale = baseAxis.scale;\n var extent = scale.getExtent();\n var tickNum = Math.max(0, extent[0]);\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n for (; tickNum <= tickMax; ++tickNum) {\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n return true;\n }\n }\n };\n\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n return;\n }\n\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n this._removeOnRenderedListener(api);\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n axisId: baseAxis.index,\n sortInfo: sortInfo\n });\n }\n };\n\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n var baseAxis = realtimeSortCfg.baseAxis;\n\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n });\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n isInitSort: true,\n axisId: baseAxis.index,\n sortInfo: sortResult\n });\n };\n\n BarView.prototype.remove = function (ecModel, api) {\n this._clear(this._model);\n\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype.dispose = function (ecModel, api) {\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype._removeOnRenderedListener = function (api) {\n if (this._onRendered) {\n api.getZr().off('rendered', this._onRendered);\n this._onRendered = null;\n }\n };\n\n BarView.prototype._clear = function (model) {\n var group = this.group;\n var data = this._data;\n\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n this._removeBackground();\n\n this._backgroundEls = [];\n data.eachItemGraphicEl(function (el) {\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n this._isFirstFrame = true;\n };\n\n BarView.prototype._removeBackground = function () {\n this.group.remove(this._backgroundGroup);\n this._backgroundGroup = null;\n };\n\n BarView.type = 'bar';\n return BarView;\n}(ChartView);\n\nvar clip = {\n cartesian2d: function (coordSysBoundingRect, layout) {\n var signWidth = layout.width < 0 ? -1 : 1;\n var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n var x = mathMax(layout.x, coordSysBoundingRect.x);\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\n var y = mathMax(layout.y, coordSysBoundingRect.y);\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\n var xClipped = x2 < x;\n var yClipped = y2 < y; // When xClipped or yClipped, the element will be marked as `ignore`.\n // But we should also place the element at the edge of the coord sys bounding rect.\n // Beause if data changed and the bar show again, its transition animaiton\n // will begin at this place.\n\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\n layout.width = xClipped ? 0 : x2 - x;\n layout.height = yClipped ? 0 : y2 - y; // Reverse back\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n return xClipped || yClipped;\n },\n polar: function (coordSysClipArea, layout) {\n var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n var r = mathMin(layout.r, coordSysClipArea.r);\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n layout.r = r;\n layout.r0 = r0;\n var clipped = r - r0 < 0; // Reverse back\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n return clipped;\n }\n};\nvar elementCreator = {\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n var rect = new Rect({\n shape: extend({}, layout),\n z2: 1\n });\n rect.__dataIndex = newIndex;\n rect.name = 'item';\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n rectShape[animateProperty] = 0;\n }\n\n return rect;\n },\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n var sector = new ShapeClass({\n shape: layout,\n z2: 1\n });\n sector.name = 'item';\n var positionMap = createPolarPositionMapping(isRadial);\n sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {\n isRoundCap: ShapeClass === Sausage\n }); // Animation\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n (isUpdate ? updateProps : initProps)(sector, {\n shape: animateTarget // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue\n\n }, animationModel);\n }\n\n return sector;\n }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\n var baseAxis = coordSys.getBaseAxis();\n\n if (process.env.NODE_ENV !== 'production') {\n if (realtimeSortOption) {\n if (baseAxis.type !== 'category') {\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n }\n\n if (coordSys.type !== 'cartesian2d') {\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n }\n }\n }\n\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n return {\n baseAxis: baseAxis,\n otherAxis: coordSys.getOtherAxis(baseAxis)\n };\n }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n var seriesTarget;\n var axisTarget;\n\n if (isHorizontal) {\n axisTarget = {\n x: layout.x,\n width: layout.width\n };\n seriesTarget = {\n y: layout.y,\n height: layout.height\n };\n } else {\n axisTarget = {\n y: layout.y,\n height: layout.height\n };\n seriesTarget = {\n x: layout.x,\n width: layout.width\n };\n }\n\n if (!isChangeOrder) {\n // Keep the original growth animation if only axis order changed.\n // Not start a new animation.\n (isUpdate ? updateProps : initProps)(el, {\n shape: seriesTarget\n }, seriesAnimationModel, newIndex, null);\n }\n\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n (isUpdate ? updateProps : initProps)(el, {\n shape: axisTarget\n }, axisAnimationModel, newIndex);\n}\n\nfunction checkPropertiesNotValid(obj, props) {\n for (var i = 0; i < props.length; i++) {\n if (!isFinite(obj[props[i]])) {\n return true;\n }\n }\n\n return false;\n}\n\nvar rectPropties = ['x', 'y', 'width', 'height'];\nvar polarPropties = ['cx', 'cy', 'r', 'startAngle', 'endAngle'];\nvar isValidLayout = {\n cartesian2d: function (layout) {\n return !checkPropertiesNotValid(layout, rectPropties);\n },\n polar: function (layout) {\n return !checkPropertiesNotValid(layout, polarPropties);\n }\n};\nvar getLayout = {\n // itemModel is only used to get borderWidth, which is not needed\n // when calculating bar background layout.\n cartesian2d: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth\n\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle,\n clockwise: layout.clockwise\n };\n }\n};\n\nfunction isZeroOnPolar(layout) {\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction createPolarPositionMapping(isRadial) {\n return function (isRadial) {\n var arcOrAngle = isRadial ? 'Arc' : 'Angle';\n return function (position) {\n switch (position) {\n case 'start':\n case 'insideStart':\n case 'end':\n case 'insideEnd':\n return position + arcOrAngle;\n\n default:\n return position;\n }\n };\n }(isRadial);\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, isPolar) {\n var style = data.getItemVisual(dataIndex, 'style');\n\n if (!isPolar) {\n el.setShape('r', itemModel.get(['itemStyle', 'borderRadius']) || 0);\n }\n\n el.useStyle(style);\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout.r >= layout.r0 ? 'endArc' : 'startArc' : layout.endAngle >= layout.startAngle ? 'endAngle' : 'startAngle' : isHorizontalOrRadial ? layout.height >= 0 ? 'bottom' : 'top' : layout.width >= 0 ? 'right' : 'left';\n var labelStatesModels = getLabelStatesModels(itemModel);\n setLabelStyle(el, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n inheritColor: style.fill,\n defaultOpacity: style.opacity,\n defaultOutsidePosition: labelPositionOutside\n });\n var label = el.getTextContent();\n\n if (isPolar && label) {\n var position = itemModel.get(['label', 'position']);\n el.textConfig.inside = position === 'middle' ? true : null;\n setSectorTextRotation(el, position === 'outside' ? labelPositionOutside : position, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(['label', 'rotate']));\n }\n\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n return getDefaultInterpolatedLabel(data, value);\n });\n var emphasisModel = itemModel.getModel(['emphasis']);\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n setStatesStylesFromModel(el, itemModel);\n\n if (isZeroOnPolar(layout)) {\n el.style.fill = 'none';\n el.style.stroke = 'none';\n each(el.states, function (state) {\n if (state.style) {\n state.style.fill = state.style.stroke = 'none';\n }\n });\n }\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n // Has no border.\n var borderColor = itemModel.get(['itemStyle', 'borderColor']);\n\n if (!borderColor || borderColor === 'none') {\n return 0;\n }\n\n var lineWidth = itemModel.get(['itemStyle', 'borderWidth']) || 0; // width or height may be NaN for empty data\n\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape =\n/** @class */\nfunction () {\n function LagePathShape() {}\n\n return LagePathShape;\n}();\n\nvar LargePath =\n/** @class */\nfunction (_super) {\n __extends(LargePath, _super);\n\n function LargePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeBar';\n return _this;\n }\n\n LargePath.prototype.getDefaultShape = function () {\n return new LagePathShape();\n };\n\n LargePath.prototype.buildPath = function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n var baseDimIdx = this.baseDimIdx;\n var valueDimIdx = 1 - this.baseDimIdx;\n var startPoint = [];\n var size = [];\n var barWidth = this.barWidth;\n\n for (var i = 0; i < points.length; i += 3) {\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[i + 2];\n startPoint[baseDimIdx] = points[i + baseDimIdx];\n startPoint[valueDimIdx] = points[i + valueDimIdx];\n ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);\n }\n };\n\n return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n // TODO support polar\n var data = seriesModel.getData();\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n var largeDataIndices = data.getLayout('largeDataIndices');\n var barWidth = data.getLayout('size');\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var bgPoints = data.getLayout('largeBackgroundPoints');\n\n if (bgPoints) {\n var bgEl = new LargePath({\n shape: {\n points: bgPoints\n },\n incremental: !!incremental,\n silent: true,\n z2: 0\n });\n bgEl.baseDimIdx = baseDimIdx;\n bgEl.largeDataIndices = largeDataIndices;\n bgEl.barWidth = barWidth;\n bgEl.useStyle(backgroundModel.getItemStyle());\n group.add(bgEl);\n progressiveEls && progressiveEls.push(bgEl);\n }\n\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental,\n ignoreCoarsePointer: true,\n z2: 1\n });\n el.baseDimIdx = baseDimIdx;\n el.largeDataIndices = largeDataIndices;\n el.barWidth = barWidth;\n group.add(el);\n el.useStyle(data.getVisual('style')); // Enable tooltip and user mouse/touch event handlers.\n\n getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n if (!seriesModel.get('silent')) {\n el.on('mousedown', largePathUpdateDataIndex);\n el.on('mousemove', largePathUpdateDataIndex);\n }\n\n progressiveEls && progressiveEls.push(el);\n} // Use throttle to avoid frequently traverse to find dataIndex.\n\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n var largePath = this;\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n var baseDimIdx = largePath.baseDimIdx;\n var valueDimIdx = 1 - baseDimIdx;\n var points = largePath.shape.points;\n var largeDataIndices = largePath.largeDataIndices;\n var startPoint = [];\n var size = [];\n var barWidth = largePath.barWidth;\n\n for (var i = 0, len = points.length / 3; i < len; i++) {\n var ii = i * 3;\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[ii + 2];\n startPoint[baseDimIdx] = points[ii + baseDimIdx];\n startPoint[valueDimIdx] = points[ii + valueDimIdx];\n\n if (size[valueDimIdx] < 0) {\n startPoint[valueDimIdx] += size[valueDimIdx];\n size[valueDimIdx] = -size[valueDimIdx];\n }\n\n if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {\n return largeDataIndices[i];\n }\n }\n\n return -1;\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var rectShape = layout;\n var coordLayout = coord.getArea();\n return {\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n };\n } else {\n var coordLayout = coord.getArea();\n var sectorShape = layout;\n return {\n cx: coordLayout.cx,\n cy: coordLayout.cy,\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n };\n }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\n return new ElementClz({\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n silent: true,\n z2: 0\n });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { layout, createProgressiveLayout } from '../../layout/barGrid.js';\nimport dataSample from '../../processor/dataSample.js';\nimport BarSeries from './BarSeries.js';\nimport BarView from './BarView.js';\nexport function install(registers) {\n registers.registerChartView(BarView);\n registers.registerSeriesModel(BarSeries);\n registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar')); // Do layout after other overall layout, which can preapre some informations.\n\n registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout('bar')); // Down sample after filter\n\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n /**\n * @payload\n * @property {string} [componentType=series]\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\n registers.registerAction({\n type: 'changeAxisOrder',\n event: 'changeAxisOrder',\n update: 'update'\n }, function (payload, ecModel) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n if (payload.sortInfo) {\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual mapping.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar visualDefault = {\n /**\n * @public\n */\n get: function (visualType, key, isCategory) {\n var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n }\n};\nvar defaultOption = {\n color: {\n active: ['#006edd', '#e0ffff'],\n inactive: ['rgba(0,0,0,0)']\n },\n colorHue: {\n active: [0, 360],\n inactive: [0, 0]\n },\n colorSaturation: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n colorLightness: {\n active: [0.9, 0.5],\n inactive: [0, 0]\n },\n colorAlpha: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n opacity: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n symbol: {\n active: ['circle', 'roundRect', 'diamond'],\n inactive: ['none']\n },\n symbolSize: {\n active: [10, 50],\n inactive: [0, 0]\n }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as zrColor from 'zrender/lib/tool/color.js';\nimport { linearMap } from '../util/number.js';\nimport { warn } from '../util/log.js';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping =\n/** @class */\nfunction () {\n function VisualMapping(option) {\n var mappingMethod = option.mappingMethod;\n var visualType = option.type;\n var thisOption = this.option = zrUtil.clone(option);\n this.type = visualType;\n this.mappingMethod = mappingMethod;\n this._normalizeData = normalizers[mappingMethod];\n var visualHandler = VisualMapping.visualHandlers[visualType];\n this.applyVisual = visualHandler.applyVisual;\n this.getColorMapper = visualHandler.getColorMapper;\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n if (mappingMethod === 'piecewise') {\n normalizeVisualRange(thisOption);\n preprocessForPiecewise(thisOption);\n } else if (mappingMethod === 'category') {\n thisOption.categories ? preprocessForSpecifiedCategory(thisOption) // categories is ordinal when thisOption.categories not specified,\n // which need no more preprocess except normalize visual.\n : normalizeVisualRange(thisOption, true);\n } else {\n // mappingMethod === 'linear' or 'fixed'\n zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n normalizeVisualRange(thisOption);\n }\n }\n\n VisualMapping.prototype.mapValueToVisual = function (value) {\n var normalized = this._normalizeData(value);\n\n return this._normalizedToVisual(normalized, value);\n };\n\n VisualMapping.prototype.getNormalizer = function () {\n return zrUtil.bind(this._normalizeData, this);\n };\n /**\n * List available visual types.\n *\n * @public\n * @return {Array.}\n */\n\n\n VisualMapping.listVisualTypes = function () {\n return zrUtil.keys(VisualMapping.visualHandlers);\n }; // /**\n // * @public\n // */\n // static addVisualHandler(name, handler) {\n // visualHandlers[name] = handler;\n // }\n\n /**\n * @public\n */\n\n\n VisualMapping.isValidType = function (visualType) {\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n };\n /**\n * Convinent method.\n * Visual can be Object or Array or primary type.\n */\n\n\n VisualMapping.eachVisual = function (visual, callback, context) {\n if (zrUtil.isObject(visual)) {\n zrUtil.each(visual, callback, context);\n } else {\n callback.call(context, visual);\n }\n };\n\n VisualMapping.mapVisual = function (visual, callback, context) {\n var isPrimary;\n var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n VisualMapping.eachVisual(visual, function (v, key) {\n var newVal = callback.call(context, v, key);\n isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n });\n return newVisual;\n };\n /**\n * Retrieve visual properties from given object.\n */\n\n\n VisualMapping.retrieveVisuals = function (obj) {\n var ret = {};\n var hasVisual;\n obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n if (obj.hasOwnProperty(visualType)) {\n ret[visualType] = obj[visualType];\n hasVisual = true;\n }\n });\n return hasVisual ? ret : null;\n };\n /**\n * Give order to visual types, considering colorSaturation, colorAlpha depends on color.\n *\n * @public\n * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...}\n * IF Array, like: ['color', 'symbol', 'colorSaturation']\n * @return {Array.} Sorted visual types.\n */\n\n\n VisualMapping.prepareVisualTypes = function (visualTypes) {\n if (zrUtil.isArray(visualTypes)) {\n visualTypes = visualTypes.slice();\n } else if (isObject(visualTypes)) {\n var types_1 = [];\n each(visualTypes, function (item, type) {\n types_1.push(type);\n });\n visualTypes = types_1;\n } else {\n return [];\n }\n\n visualTypes.sort(function (type1, type2) {\n // color should be front of colorSaturation, colorAlpha, ...\n // symbol and symbolSize do not matter.\n return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n });\n return visualTypes;\n };\n /**\n * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'.\n * Other visuals are only depends on themself.\n */\n\n\n VisualMapping.dependsOn = function (visualType1, visualType2) {\n return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n };\n /**\n * @param value\n * @param pieceList [{value: ..., interval: [min, max]}, ...]\n * Always from small to big.\n * @param findClosestWhenOutside Default to be false\n * @return index\n */\n\n\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n var possibleI;\n var abs = Infinity; // value has the higher priority.\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var pieceValue = pieceList[i].value;\n\n if (pieceValue != null) {\n if (pieceValue === value // FIXME\n // It is supposed to compare value according to value type of dimension,\n // but currently value type can exactly be string or number.\n // Compromise for numeric-like string (like '12'), especially\n // in the case that visualMap.categories is ['22', '33'].\n || zrUtil.isString(pieceValue) && pieceValue === value + '') {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(pieceValue, i);\n }\n }\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var piece = pieceList[i];\n var interval = piece.interval;\n var close_1 = piece.close;\n\n if (interval) {\n if (interval[0] === -Infinity) {\n if (littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n } else if (interval[1] === Infinity) {\n if (littleThan(close_1[0], interval[0], value)) {\n return i;\n }\n } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(interval[0], i);\n findClosestWhenOutside && updatePossible(interval[1], i);\n }\n }\n\n if (findClosestWhenOutside) {\n return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n }\n\n function updatePossible(val, index) {\n var newAbs = Math.abs(val - value);\n\n if (newAbs < abs) {\n abs = newAbs;\n possibleI = index;\n }\n }\n };\n\n VisualMapping.visualHandlers = {\n color: {\n applyVisual: makeApplyVisual('color'),\n getColorMapper: function () {\n var thisOption = this.option;\n return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n !isNormalized && (value = this._normalizeData(value));\n return doMapCategory.call(this, value);\n } : function (value, isNormalized, out) {\n // If output rgb array\n // which will be much faster and useful in pixel manipulation\n var returnRGBArray = !!out;\n !isNormalized && (value = this._normalizeData(value));\n out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n }, this);\n },\n _normalizedToVisual: {\n linear: function (normalized) {\n return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n colorHue: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, value);\n }),\n colorSaturation: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, value);\n }),\n colorLightness: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, null, value);\n }),\n colorAlpha: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyAlpha(color, value);\n }),\n decal: {\n applyVisual: makeApplyVisual('decal'),\n _normalizedToVisual: {\n linear: null,\n category: doMapCategory,\n piecewise: null,\n fixed: null\n }\n },\n opacity: {\n applyVisual: makeApplyVisual('opacity'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n },\n liftZ: {\n applyVisual: makeApplyVisual('liftZ'),\n _normalizedToVisual: {\n linear: doMapFixed,\n category: doMapFixed,\n piecewise: doMapFixed,\n fixed: doMapFixed\n }\n },\n symbol: {\n applyVisual: function (value, getter, setter) {\n var symbolCfg = this.mapValueToVisual(value);\n setter('symbol', symbolCfg);\n },\n _normalizedToVisual: {\n linear: doMapToArray,\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = doMapToArray.call(this, normalized);\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n symbolSize: {\n applyVisual: makeApplyVisual('symbolSize'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n }\n };\n return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n var pieceList = thisOption.pieceList;\n thisOption.hasSpecialVisual = false;\n zrUtil.each(pieceList, function (piece, index) {\n piece.originIndex = index; // piece.visual is \"result visual value\" but not\n // a visual range, so it does not need to be normalized.\n\n if (piece.visual != null) {\n thisOption.hasSpecialVisual = true;\n }\n });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n // Hash categories.\n var categories = thisOption.categories;\n var categoryMap = thisOption.categoryMap = {};\n var visual = thisOption.visual;\n each(categories, function (cate, index) {\n categoryMap[cate] = index;\n }); // Process visual map input.\n\n if (!zrUtil.isArray(visual)) {\n var visualArr_1 = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v, cate) {\n var index = categoryMap[cate];\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n });\n } else {\n // Is primary type, represents default visual.\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n }\n\n visual = setVisualToOption(thisOption, visualArr_1);\n } // Remove categories that has no visual,\n // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX.\n\n\n for (var i = categories.length - 1; i >= 0; i--) {\n if (visual[i] == null) {\n delete categoryMap[categories[i]];\n categories.pop();\n }\n }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n var visual = thisOption.visual;\n var visualArr = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v) {\n visualArr.push(v);\n });\n } else if (visual != null) {\n visualArr.push(visual);\n }\n\n var doNotNeedPair = {\n color: 1,\n symbol: 1\n };\n\n if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n // Do not care visualArr.length === 0, which is illegal.\n visualArr[1] = visualArr[0];\n }\n\n setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n return {\n applyVisual: function (value, getter, setter) {\n // Only used in HSL\n var colorChannel = this.mapValueToVisual(value); // Must not be array value\n\n setter('color', applyValue(getter('color'), colorChannel));\n },\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n };\n}\n\nfunction doMapToArray(normalized) {\n var visual = this.option.visual;\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; // TODO {}?\n}\n\nfunction makeApplyVisual(visualType) {\n return function (value, getter, setter) {\n setter(visualType, this.mapValueToVisual(value));\n };\n}\n\nfunction doMapCategory(normalized) {\n var visual = this.option.visual;\n return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n // visual will be convert to array.\n return this.option.visual[0];\n}\n/**\n * Create mapped to numeric visual\n */\n\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n return {\n linear: function (normalized) {\n return linearMap(normalized, sourceExtent, this.option.visual, true);\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\n }\n\n return result;\n },\n fixed: doMapFixed\n };\n}\n\nfunction getSpecifiedVisual(value) {\n var thisOption = this.option;\n var pieceList = thisOption.pieceList;\n\n if (thisOption.hasSpecialVisual) {\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n var piece = pieceList[pieceIndex];\n\n if (piece && piece.visual) {\n return piece.visual[this.type];\n }\n }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n thisOption.visual = visualArr;\n\n if (thisOption.type === 'color') {\n thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n var color = zrColor.parse(item);\n\n if (!color && process.env.NODE_ENV !== 'production') {\n warn(\"'\" + item + \"' is an illegal color, fallback to '#000000'\", true);\n }\n\n return color || [0, 0, 0, 1];\n });\n }\n\n return visualArr;\n}\n/**\n * Normalizers by mapping methods.\n */\n\n\nvar normalizers = {\n linear: function (value) {\n return linearMap(value, this.option.dataExtent, [0, 1], true);\n },\n piecewise: function (value) {\n var pieceList = this.option.pieceList;\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n if (pieceIndex != null) {\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n }\n },\n category: function (value) {\n var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal value\n\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n },\n fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual solution, for consistent option specification.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapping from './VisualMapping.js';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper.js';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n if (obj) {\n for (var name_1 in obj) {\n if (obj.hasOwnProperty(name_1)) {\n return true;\n }\n }\n }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n var visualMappings = {};\n each(stateList, function (state) {\n var mappings = visualMappings[state] = createMappings();\n each(option[state], function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var mappingOption = {\n type: visualType,\n visual: visualData\n };\n supplementVisualOption && supplementVisualOption(mappingOption, state);\n mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity\n // is not supported, such as rendering using gradient color.\n\n if (visualType === 'opacity') {\n mappingOption = zrUtil.clone(mappingOption);\n mappingOption.type = 'colorAlpha';\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n }\n });\n });\n return visualMappings;\n\n function createMappings() {\n var Creater = function () {}; // Make sure hidden fields will not be visited by\n // object iteration (with hasOwnProperty checking).\n\n\n Creater.prototype.__hidden = Creater.prototype;\n var obj = new Creater();\n return obj;\n }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n // Visual attributes merge is not supported, otherwise it\n // brings overcomplicated merge logic. See #2853. So if\n // newOption has anyone of these keys, all of these keys\n // will be reset. Otherwise, all keys remain.\n var has;\n zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n has = true;\n }\n });\n has && zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n thisOption[key] = zrUtil.clone(newOption[key]);\n } else {\n delete thisOption[key];\n }\n });\n}\n/**\n * @param stateList\n * @param visualMappings\n * @param list\n * @param getValueState param: valueOrIndex, return: state.\n * @param scope Scope for getValueState\n * @param dimension Concrete dimension, if used.\n */\n// ???! handle brush?\n\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n var dataIndex;\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n if (dimension == null) {\n data.each(eachItem);\n } else {\n data.each([dimension], eachItem);\n }\n\n function eachItem(valueOrIndex, index) {\n dataIndex = dimension == null ? valueOrIndex // First argument is index\n : index;\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n // @ts-ignore\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n return;\n }\n\n var valueState = getValueState.call(scope, valueOrIndex);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n }\n }\n}\n/**\n * @param data\n * @param stateList\n * @param visualMappings >\n * @param getValueState param: valueOrIndex, return: state.\n * @param dim dimension or dimension index.\n */\n\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n return {\n progress: function progress(params, data) {\n var dimIndex;\n\n if (dim != null) {\n dimIndex = data.getDimensionIndex(dim);\n }\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n var dataIndex;\n var store = data.getStore();\n\n while ((dataIndex = params.next()) != null) {\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n // @ts-ignore\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n continue;\n }\n\n var value = dim != null ? store.get(dimIndex, dataIndex) : dataIndex;\n var valueState = getValueState(value);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as numberUtil from '../../util/number.js';\nimport ComponentModel from '../../model/Component.js';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel =\n/** @class */\nfunction (_super) {\n __extends(VisualMapModel, _super);\n\n function VisualMapModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapModel.type;\n _this.stateList = ['inRange', 'outOfRange'];\n _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n /**\n * [lowerBound, upperBound]\n */\n\n _this.dataBound = [-Infinity, Infinity];\n _this.targetVisuals = {};\n _this.controllerVisuals = {};\n return _this;\n }\n\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n this.textStyleModel = this.getModel('textStyle');\n this.resetItemSize();\n this.completeVisualOption();\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n var stateList = this.stateList;\n supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n };\n /**\n * @public\n */\n\n\n VisualMapModel.prototype.getItemSymbol = function () {\n return null;\n };\n /**\n * @protected\n * @return {Array.} An array of series indices.\n */\n\n\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\n var optionSeriesIndex = this.option.seriesIndex;\n var seriesIndices = [];\n\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n this.ecModel.eachSeries(function (seriesModel, index) {\n seriesIndices.push(index);\n });\n } else {\n seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n }\n\n return seriesIndices;\n };\n /**\n * @public\n */\n\n\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n if (seriesModel) {\n callback.call(context, seriesModel);\n }\n }, this);\n };\n /**\n * @pubilc\n */\n\n\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n var is = false;\n this.eachTargetSeries(function (model) {\n model === seriesModel && (is = true);\n });\n return is;\n };\n /**\n * @example\n * this.formatValueText(someVal); // format single numeric value to text.\n * this.formatValueText(someVal, true); // format single category value to text.\n * this.formatValueText([min, max]); // format numeric min-max to text.\n * this.formatValueText([this.dataBound[0], max]); // using data lower bound.\n * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.\n *\n * @param value Real value, or this.dataBound[0 or 1].\n * @param isCategory Only available when value is number.\n * @param edgeSymbols Open-close symbol when value is interval.\n * @protected\n */\n\n\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n var option = this.option;\n var precision = option.precision;\n var dataBound = this.dataBound;\n var formatter = option.formatter;\n var isMinMax;\n edgeSymbols = edgeSymbols || ['<', '>'];\n\n if (zrUtil.isArray(value)) {\n value = value.slice();\n isMinMax = true;\n }\n\n var textValue = isCategory ? value // Value is string when isCategory\n : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n if (zrUtil.isString(formatter)) {\n return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n } else if (zrUtil.isFunction(formatter)) {\n return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n }\n\n if (isMinMax) {\n if (value[0] === dataBound[0]) {\n return edgeSymbols[0] + ' ' + textValue[1];\n } else if (value[1] === dataBound[1]) {\n return edgeSymbols[1] + ' ' + textValue[0];\n } else {\n return textValue[0] + ' - ' + textValue[1];\n }\n } else {\n // Format single value (includes category case).\n return textValue;\n }\n\n function toFixed(val) {\n return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n }\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.resetExtent = function () {\n var thisOption = this.option; // Can not calculate data extent by data here.\n // Because series and data may be modified in processing stage.\n // So we do not support the feature \"auto min/max\".\n\n var extent = asc([thisOption.min, thisOption.max]);\n this._dataExtent = extent;\n };\n /**\n * PENDING:\n * delete this method if no outer usage.\n *\n * Return Concrete dimention. If return null/undefined, no dimension used.\n */\n // getDataDimension(data: SeriesData) {\n // const optDim = this.option.dimension;\n // if (optDim != null) {\n // return data.getDimension(optDim);\n // }\n // const dimNames = data.dimensions;\n // for (let i = dimNames.length - 1; i >= 0; i--) {\n // const dimName = dimNames[i];\n // const dimInfo = data.getDimensionInfo(dimName);\n // if (!dimInfo.isCalculationCoord) {\n // return dimName;\n // }\n // }\n // }\n\n\n VisualMapModel.prototype.getDataDimensionIndex = function (data) {\n var optDim = this.option.dimension;\n\n if (optDim != null) {\n return data.getDimensionIndex(optDim);\n }\n\n var dimNames = data.dimensions;\n\n for (var i = dimNames.length - 1; i >= 0; i--) {\n var dimName = dimNames[i];\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isCalculationCoord) {\n return dimInfo.storeDimIndex;\n }\n }\n };\n\n VisualMapModel.prototype.getExtent = function () {\n return this._dataExtent.slice();\n };\n\n VisualMapModel.prototype.completeVisualOption = function () {\n var ecModel = this.ecModel;\n var thisOption = this.option;\n var base = {\n inRange: thisOption.inRange,\n outOfRange: thisOption.outOfRange\n };\n var target = thisOption.target || (thisOption.target = {});\n var controller = thisOption.controller || (thisOption.controller = {});\n zrUtil.merge(target, base); // Do not override\n\n zrUtil.merge(controller, base); // Do not override\n\n var isCategory = this.isCategory();\n completeSingle.call(this, target);\n completeSingle.call(this, controller);\n completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange');\n\n completeController.call(this, controller);\n\n function completeSingle(base) {\n // Compatible with ec2 dataRange.color.\n // The mapping order of dataRange.color is: [high value, ..., low value]\n // whereas inRange.color and outOfRange.color is [low value, ..., high value]\n // Notice: ec2 has no inverse.\n if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake.\n // So adding color only when no inRange defined.\n && !base.inRange) {\n base.inRange = {\n color: thisOption.color.slice().reverse()\n };\n } // Compatible with previous logic, always give a defautl color, otherwise\n // simple config with no inRange and outOfRange will not work.\n // Originally we use visualMap.color as the default color, but setOption at\n // the second time the default color will be erased. So we change to use\n // constant DEFAULT_COLOR.\n // If user do not want the default color, set inRange: {color: null}.\n\n\n base.inRange = base.inRange || {\n color: ecModel.get('gradientColor')\n };\n }\n\n function completeInactive(base, stateExist, stateAbsent) {\n var optExist = base[stateExist];\n var optAbsent = base[stateAbsent];\n\n if (optExist && !optAbsent) {\n optAbsent = base[stateAbsent] = {};\n each(optExist, function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n if (defa != null) {\n optAbsent[visualType] = defa; // Compatibable with ec2:\n // Only inactive color to rgba(0,0,0,0) can not\n // make label transparent, so use opacity also.\n\n if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n optAbsent.opacity = [0, 0];\n }\n }\n });\n }\n }\n\n function completeController(controller) {\n var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n var inactiveColor = this.get('inactiveColor');\n var itemSymbol = this.getItemSymbol();\n var defaultSymbol = itemSymbol || 'roundRect';\n each(this.stateList, function (state) {\n var itemSize = this.itemSize;\n var visuals = controller[state]; // Set inactive color for controller if no other color\n // attr (like colorAlpha) specified.\n\n if (!visuals) {\n visuals = controller[state] = {\n color: isCategory ? inactiveColor : [inactiveColor]\n };\n } // Consistent symbol and symbolSize if not specified.\n\n\n if (visuals.symbol == null) {\n visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? defaultSymbol : [defaultSymbol]);\n }\n\n if (visuals.symbolSize == null) {\n visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n } // Filter none\n\n\n visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n return symbol === 'none' ? defaultSymbol : symbol;\n }); // Normalize symbolSize\n\n var symbolSize = visuals.symbolSize;\n\n if (symbolSize != null) {\n var max_1 = -Infinity; // symbolSize can be object when categories defined.\n\n eachVisual(symbolSize, function (value) {\n value > max_1 && (max_1 = value);\n });\n visuals.symbolSize = mapVisual(symbolSize, function (value) {\n return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n });\n }\n }, this);\n }\n };\n\n VisualMapModel.prototype.resetItemSize = function () {\n this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n };\n\n VisualMapModel.prototype.isCategory = function () {\n return !!this.option.categories;\n };\n /**\n * @public\n * @abstract\n */\n\n\n VisualMapModel.prototype.setSelected = function (selected) {};\n\n VisualMapModel.prototype.getSelected = function () {\n return null;\n };\n /**\n * @public\n * @abstract\n */\n\n\n VisualMapModel.prototype.getValueState = function (value) {\n return null;\n };\n /**\n * FIXME\n * Do not publish to thirt-part-dev temporarily\n * util the interface is stable. (Should it return\n * a function but not visual meta?)\n *\n * @pubilc\n * @abstract\n * @param getColorVisual\n * params: value, valueState\n * return: color\n * @return {Object} visualMeta\n * should includes {stops, outerColors}\n * outerColor means [colorBeyondMinValue, colorBeyondMaxValue]\n */\n\n\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n return null;\n };\n\n VisualMapModel.type = 'visualMap';\n VisualMapModel.dependencies = ['series'];\n VisualMapModel.defaultOption = {\n show: true,\n // zlevel: 0,\n z: 4,\n seriesIndex: 'all',\n min: 0,\n max: 200,\n left: 0,\n right: null,\n top: null,\n bottom: 0,\n itemWidth: null,\n itemHeight: null,\n inverse: false,\n orient: 'vertical',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n contentColor: '#5793f3',\n inactiveColor: '#aaa',\n borderWidth: 0,\n padding: 5,\n // 接受数组分别设定上右下左边距,同css\n textGap: 10,\n precision: 0,\n textStyle: {\n color: '#333' // 值域文字颜色\n\n }\n };\n return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport * as numberUtil from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js'; // Constant\n\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel =\n/** @class */\nfunction (_super) {\n __extends(ContinuousModel, _super);\n\n function ContinuousModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousModel.type;\n return _this;\n }\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n this.resetVisual(function (mappingOption) {\n mappingOption.mappingMethod = 'linear';\n mappingOption.dataExtent = this.getExtent();\n });\n\n this._resetRange();\n };\n /**\n * @protected\n * @override\n */\n\n\n ContinuousModel.prototype.resetItemSize = function () {\n _super.prototype.resetItemSize.apply(this, arguments);\n\n var itemSize = this.itemSize;\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n };\n /**\n * @private\n */\n\n\n ContinuousModel.prototype._resetRange = function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n // `range` should always be array (so we dont use other\n // value like 'auto') for user-friend. (consider getOption).\n dataExtent.auto = 1;\n this.option.range = dataExtent;\n } else if (zrUtil.isArray(range)) {\n if (range[0] > range[1]) {\n range.reverse();\n }\n\n range[0] = Math.max(range[0], dataExtent[0]);\n range[1] = Math.min(range[1], dataExtent[1]);\n }\n };\n /**\n * @protected\n * @override\n */\n\n\n ContinuousModel.prototype.completeVisualOption = function () {\n _super.prototype.completeVisualOption.apply(this, arguments);\n\n zrUtil.each(this.stateList, function (state) {\n var symbolSize = this.option.controller[state].symbolSize;\n\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n symbolSize[0] = symbolSize[1] / 3; // For good looking.\n }\n }, this);\n };\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.setSelected = function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n };\n /**\n * @public\n */\n\n\n ContinuousModel.prototype.getSelected = function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n return dataInterval;\n };\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.getValueState = function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n // range[1] is processed likewise.\n\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n };\n\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n /**\n * @implement\n */\n\n\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n var stops = [];\n\n function setStop(value, valueState) {\n stops.push({\n value: value,\n color: getColorVisual(value, valueState)\n });\n } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n var iIdx = 0;\n var oIdx = 0;\n var iLen = iVals.length;\n var oLen = oVals.length;\n\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n if (oVals[oIdx] < iVals[iIdx]) {\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n // If range is full, value beyond min, max will be clamped.\n // make a singularity\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n setStop(iVals[iIdx], 'inRange');\n }\n\n for (var first = 1; oIdx < oLen; oIdx++) {\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n // make a singularity\n if (first) {\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n first = 0;\n }\n\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n var stopsLen = stops.length;\n return {\n stops: stops,\n outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n };\n };\n\n ContinuousModel.type = 'visualMap.continuous';\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n align: 'auto',\n calculable: false,\n hoverLink: true,\n realtime: true,\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n handleSize: '120%',\n handleStyle: {\n borderColor: '#fff',\n borderWidth: 1\n },\n indicatorIcon: 'circle',\n indicatorSize: '50%',\n indicatorStyle: {\n borderColor: '#fff',\n borderWidth: 2,\n shadowBlur: 2,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.2)'\n } // emphasis: {\n // handleStyle: {\n // shadowBlur: 3,\n // shadowOffsetX: 1,\n // shadowOffsetY: 1,\n // shadowColor: 'rgba(0,0,0,0.2)'\n // }\n // }\n\n });\n return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n } // When using colorHue mapping, it is not linear color any more.\n // Moreover, canvas gradient seems not to be accurate linear.\n // FIXME\n // Should be arbitrary value 100? or based on pixel size?\n\n\n var count = 200;\n var step = (dataExtent[1] - dataExtent[0]) / count;\n var value = dataExtent[0];\n var stopValues = [];\n\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n stopValues.push(value);\n value += step;\n }\n\n stopValues.push(dataExtent[1]);\n return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { Rect } from '../../util/graphic.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as layout from '../../util/layout.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport ComponentView from '../../view/Component.js';\n\nvar VisualMapView =\n/** @class */\nfunction (_super) {\n __extends(VisualMapView, _super);\n\n function VisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapView.type;\n _this.autoPositionValues = {\n left: 1,\n right: 1,\n top: 1,\n bottom: 1\n };\n return _this;\n }\n\n VisualMapView.prototype.init = function (ecModel, api) {\n this.ecModel = ecModel;\n this.api = api;\n };\n /**\n * @protected\n */\n\n\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload // TODO: TYPE\n ) {\n this.visualMapModel = visualMapModel;\n\n if (visualMapModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n this.doRender(visualMapModel, ecModel, api, payload);\n };\n /**\n * @protected\n */\n\n\n VisualMapView.prototype.renderBackground = function (group) {\n var visualMapModel = this.visualMapModel;\n var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n var rect = group.getBoundingRect();\n group.add(new Rect({\n z2: -1,\n silent: true,\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[3] + padding[1],\n height: rect.height + padding[0] + padding[2]\n },\n style: {\n fill: visualMapModel.get('backgroundColor'),\n stroke: visualMapModel.get('borderColor'),\n lineWidth: visualMapModel.get('borderWidth')\n }\n }));\n };\n /**\n * @protected\n * @param targetValue can be Infinity or -Infinity\n * @param visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize'\n * @param opts\n * @param opts.forceState Specify state, instead of using getValueState method.\n * @param opts.convertOpacityToAlpha For color gradient in controller widget.\n * @return {*} Visual value.\n */\n\n\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n opts = opts || {};\n var forceState = opts.forceState;\n var visualMapModel = this.visualMapModel;\n var visualObj = {}; // Default values.\n\n if (visualCluster === 'color') {\n var defaultColor = visualMapModel.get('contentColor');\n visualObj.color = defaultColor;\n }\n\n function getter(key) {\n return visualObj[key];\n }\n\n function setter(key, value) {\n visualObj[key] = value;\n }\n\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n zrUtil.each(visualTypes, function (type) {\n var visualMapping = mappings[type];\n\n if (opts.convertOpacityToAlpha && type === 'opacity') {\n type = 'colorAlpha';\n visualMapping = mappings.__alphaForOpacity;\n }\n\n if (VisualMapping.dependsOn(type, visualCluster)) {\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n }\n });\n return visualObj[visualCluster];\n };\n\n VisualMapView.prototype.positionGroup = function (group) {\n var model = this.visualMapModel;\n var api = this.api;\n layout.positionElement(group, model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n VisualMapView.type = 'visualMap';\n return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param delta Move length.\n * @param handleEnds handleEnds[0] can be bigger then handleEnds[1].\n * handleEnds will be modified in this method.\n * @param extent handleEnds is restricted by extent.\n * extent[0] should less or equals than extent[1].\n * @param handleIndex Can be 'all', means that both move the two handleEnds.\n * @param minSpan The range of dataZoom can not be smaller than that.\n * If not set, handle0 and cross handle1. If set as a non-negative\n * number (including `0`), handles will push each other when reaching\n * the minSpan.\n * @param maxSpan The range of dataZoom can not be larger than that.\n * @return The input handleEnds.\n */\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta; // Restrict in extent.\n\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n var currDistSign;\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n // If minSpan exists, 'cross' is forbidden.\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n } // Shrink span.\n\n\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n\n return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n // is at left of handleEnds[1] for non-cross case.\n\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\n\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\n/**\n * @param visualMapModel\n * @param api\n * @param itemSize always [short, long]\n * @return {string} 'left' or 'right' or 'top' or 'bottom'\n */\n\nexport function getItemAlign(visualMapModel, api, itemSize) {\n var modelOption = visualMapModel.option;\n var itemAlign = modelOption.align;\n\n if (itemAlign != null && itemAlign !== 'auto') {\n return itemAlign;\n } // Auto decision align.\n\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n var reals = paramsSet[realIndex];\n var fakeValue = [0, null, 10];\n var layoutInput = {};\n\n for (var i = 0; i < 3; i++) {\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n }\n\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\n/**\n * Prepare dataIndex for outside usage, where dataIndex means rawIndex, and\n * dataIndexInside means filtered index.\n */\n// TODO: TYPE more specified payload types.\n\nexport function makeHighDownBatch(batch, visualMapModel) {\n zrUtil.each(batch || [], function (batchItem) {\n if (batchItem.dataIndex != null) {\n batchItem.dataIndexInside = batchItem.dataIndex;\n batchItem.dataIndex = null;\n }\n\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n });\n return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport * as helper from './helper.js';\nimport * as modelUtil from '../../util/model.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nimport { setAsHighDownDispatcher } from '../../util/states.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { findEventDispatcher } from '../../util/event.js';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView =\n/** @class */\nfunction (_super) {\n __extends(ContinuousView, _super);\n\n function ContinuousView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousView.type;\n _this._shapes = {};\n _this._dataInterval = [];\n _this._handleEnds = [];\n _this._hoverLinkDataIndices = [];\n return _this;\n }\n\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n this._api = api;\n\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n };\n\n ContinuousView.prototype._buildView = function () {\n this.group.removeAll();\n var visualMapModel = this.visualMapModel;\n var thisGroup = this.group;\n this._orient = visualMapModel.get('orient');\n this._useHandle = visualMapModel.get('calculable');\n\n this._resetInterval();\n\n this._renderBar(thisGroup);\n\n var dataRangeText = visualMapModel.get('text');\n\n this._renderEndsText(thisGroup, dataRangeText, 0);\n\n this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n this._updateView(true); // After updating view, inner shapes is built completely,\n // and then background can be rendered.\n\n\n this.renderBackground(thisGroup); // Real update view\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n };\n\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n var text = dataRangeText[1 - endsIndex];\n text = text != null ? text + '' : '';\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var itemSize = visualMapModel.itemSize;\n var barGroup = this._shapes.mainGroup;\n\n var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n var orient = this._orient;\n var textStyleModel = this.visualMapModel.textStyleModel;\n this.group.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n x: position[0],\n y: position[1],\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\n align: orient === 'horizontal' ? align : 'center',\n text: text\n })\n }));\n };\n\n ContinuousView.prototype._renderBar = function (targetGroup) {\n var visualMapModel = this.visualMapModel;\n var shapes = this._shapes;\n var itemSize = visualMapModel.itemSize;\n var orient = this._orient;\n var useHandle = this._useHandle;\n var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n var gradientBarGroup = new graphic.Group();\n mainGroup.add(gradientBarGroup); // Bar\n\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true))); // A border radius clip.\n\n gradientBarGroup.setClipPath(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: itemSize[0],\n height: itemSize[1],\n r: 3\n }\n }));\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n }\n\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n targetGroup.add(mainGroup);\n };\n\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n var cursor = getCursor(this._orient);\n handleThumb.attr({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n ondragend: onDragEnd,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n }\n });\n handleThumb.x = itemSize[0] / 2;\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n handleThumb.setStyle({\n strokeNoScale: true,\n strokeFirst: true\n });\n handleThumb.style.lineWidth *= 2;\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n setAsHighDownDispatcher(handleThumb, true);\n mainGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n // transform (orient/inverse). So label is built separately but not\n // use zrender/graphic/helper/RectText, and is located based on view\n // group (according to handleLabelPoint) but not barGroup.\n\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: ''\n })\n });\n handleLabel.ensureState('blur').style = {\n opacity: 0.1\n };\n handleLabel.stateTransition = {\n duration: 200\n };\n this.group.add(handleLabel);\n var handleLabelPoint = [handleSize, 0];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n };\n\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n indicator.attr({\n cursor: 'move',\n invisible: true,\n silent: true,\n x: itemSize[0] / 2\n });\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n if (indicator instanceof ZRImage) {\n var pathStyle = indicator.style;\n indicator.useStyle(zrUtil.extend({\n // TODO other properties like x, y ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, indicatorStyle));\n } else {\n indicator.useStyle(indicatorStyle);\n }\n\n mainGroup.add(indicator);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var indicatorLabel = new graphic.Text({\n silent: true,\n invisible: true,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: ''\n })\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n this._firstShowIndicator = true;\n };\n\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, // dx is event from ondragend if isEnd is true. It's not used\n dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n // Transform dx, dy to bar coordination.\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]);\n\n this._hideIndicator(); // Considering realtime, update view should be executed\n // before dispatch action.\n\n\n this._updateView();\n } // dragEnd do not dispatch action when realtime.\n\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: this._dataInterval.slice()\n });\n }\n\n if (isEnd) {\n !this._hovering && this._clearHoverLinkToSeries();\n } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n }\n };\n\n ContinuousView.prototype._resetInterval = function () {\n var visualMapModel = this.visualMapModel;\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\n var dataExtent = visualMapModel.getExtent();\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n };\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} dx\n * @param {number} dy\n */\n\n\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n delta = delta || 0;\n var visualMapModel = this.visualMapModel;\n var handleEnds = this._handleEnds;\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden\n 0);\n var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n };\n\n ContinuousView.prototype._updateView = function (forSketch) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var shapes = this._shapes;\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n shapes.inRange.setStyle({\n fill: visualInRange.barColor // opacity: visualInRange.opacity\n\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor // opacity: visualOutOfRange.opacity\n\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n };\n\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n var opts = {\n forceState: forceState,\n convertOpacityToAlpha: true\n };\n\n var colorStops = this._makeColorGradient(dataInterval, opts);\n\n var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n return {\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n barPoints: barPoints,\n handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n };\n };\n\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n // Considering colorHue, which is not linear, so we have to sample\n // to calculate gradient color stops, but not only caculate head\n // and tail.\n var sampleNumber = 100; // Arbitrary value.\n\n var colorStops = [];\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n colorStops.push({\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\n offset: 0\n });\n\n for (var i = 1; i < sampleNumber; i++) {\n var currValue = dataInterval[0] + step * i;\n\n if (currValue > dataInterval[1]) {\n break;\n }\n\n colorStops.push({\n color: this.getControllerVisual(currValue, 'color', opts),\n offset: i / sampleNumber\n });\n }\n\n colorStops.push({\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\n offset: 1\n });\n return colorStops;\n };\n\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n var itemSize = this.visualMapModel.itemSize;\n return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n };\n\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scaleX: itemAlign === 'bottom' ? 1 : -1,\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scaleX: itemAlign === 'bottom' ? -1 : 1,\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scaleX: itemAlign === 'left' ? 1 : -1,\n scaleY: -1\n } : {\n scaleX: itemAlign === 'left' ? 1 : -1\n });\n };\n\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n if (!this._useHandle) {\n return;\n }\n\n var shapes = this._shapes;\n var visualMapModel = this.visualMapModel;\n var handleThumbs = shapes.handleThumbs;\n var handleLabels = shapes.handleLabels;\n var itemSize = visualMapModel.itemSize;\n var dataExtent = visualMapModel.getExtent();\n each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.y = handleEnds[handleIndex];\n var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n handleThumb.x = itemSize[0] - symbolSize / 2; // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n verticalAlign: 'middle',\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n });\n }, this);\n };\n\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var itemSize = visualMapModel.itemSize;\n var sizeExtent = [0, itemSize[1]];\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.attr('invisible', false);\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var x = itemSize[0] - symbolSize / 2;\n var oldIndicatorPos = {\n x: indicator.x,\n y: indicator.y\n }; // Update handle label position.\n\n indicator.y = y;\n indicator.x = x;\n var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n var indicatorLabel = shapes.indicatorLabel;\n indicatorLabel.attr('invisible', false);\n\n var align = this._applyTransform('left', shapes.mainGroup);\n\n var orient = this._orient;\n var isHorizontal = orient === 'horizontal';\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n verticalAlign: isHorizontal ? align : 'middle',\n align: isHorizontal ? 'center' : align\n });\n var indicatorNewProps = {\n x: x,\n y: y,\n style: {\n fill: color\n }\n };\n var labelNewProps = {\n style: {\n x: textPoint[0],\n y: textPoint[1]\n }\n };\n\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n var animationCfg = {\n duration: 100,\n easing: 'cubicInOut',\n additive: true\n };\n indicator.x = oldIndicatorPos.x;\n indicator.y = oldIndicatorPos.y;\n indicator.animateTo(indicatorNewProps, animationCfg);\n indicatorLabel.animateTo(labelNewProps, animationCfg);\n } else {\n indicator.attr(indicatorNewProps);\n indicatorLabel.attr(labelNewProps);\n }\n\n this._firstShowIndicator = false;\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n // Fade out handle labels.\n // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n this._api.enterBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\n var self = this;\n\n this._shapes.mainGroup.on('mousemove', function (e) {\n self._hovering = true;\n\n if (!self._dragging) {\n var itemSize = self.visualMapModel.itemSize;\n\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true); // For hover link show when hover handle, which might be\n // below or upper than sizeExtent.\n\n\n pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n }\n }).on('mouseout', function () {\n // When mouse is out of handle, hoverLink still need\n // to be displayed when realtime is set as false.\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n };\n\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n var zr = this.api.getZr();\n\n if (this.visualMapModel.option.hoverLink) {\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n zr.on('mouseout', this._hideIndicator, this);\n } else {\n this._clearHoverLinkFromSeries();\n }\n };\n\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n var visualMapModel = this.visualMapModel;\n var itemSize = visualMapModel.itemSize;\n\n if (!visualMapModel.option.hoverLink) {\n return;\n }\n\n var sizeExtent = [0, itemSize[1]];\n var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n // where china and india has very large population.\n\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n // otherwise labels overlap, especially when dragging.\n\n if (hoverOnBar) {\n if (valueRange[0] === -Infinity) {\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n } else if (valueRange[1] === Infinity) {\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n } else {\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n }\n } // When realtime is set as false, handles, which are in barGroup,\n // also trigger hoverLink, which help user to realize where they\n // focus on when dragging. (see test/heatmap-large.html)\n // When realtime is set as true, highlight will not show when hover\n // handle, because the label on handle, which displays a exact value\n // but not range, might mislead users.\n\n\n var oldBatch = this._hoverLinkDataIndices;\n var newBatch = [];\n\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n }\n\n var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n };\n\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n var ecData;\n findEventDispatcher(e.target, function (target) {\n var currECData = getECData(target);\n\n if (currECData.dataIndex != null) {\n ecData = currECData;\n return true;\n }\n }, true);\n\n if (!ecData) {\n return;\n }\n\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n var visualMapModel = this.visualMapModel;\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(ecData.dataType);\n var value = data.getStore().get(visualMapModel.getDataDimensionIndex(data), ecData.dataIndex);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n };\n\n ContinuousView.prototype._hideIndicator = function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n // Fade out handle labels.\n // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n this._api.leaveBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\n this._hideIndicator();\n\n var indices = this._hoverLinkDataIndices;\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n indices.length = 0;\n };\n\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n this._hideIndicator();\n\n var zr = this.api.getZr();\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n zr.off('mouseout', this._hideIndicator);\n };\n\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n }; // TODO: TYPE more specified payload types.\n\n\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n };\n /**\n * @override\n */\n\n\n ContinuousView.prototype.dispose = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n /**\n * @override\n */\n\n\n ContinuousView.prototype.remove = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n\n ContinuousView.type = 'visualMap.continuous';\n return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n return new graphic.Polygon({\n shape: {\n points: points\n },\n draggable: !!onDrift,\n cursor: cursor,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n if (hoverLinkDataSize) {\n halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n }\n\n return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var visualMapActionInfo = {\n type: 'selectDataRange',\n event: 'dataRangeSelected',\n // FIXME use updateView appears wrong\n update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'visualMap',\n query: payload\n }, function (model) {\n model.setSelected(payload.selected);\n });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nexport var visualMapEncodingHandlers = [{\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var resetDefines = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n return;\n }\n\n resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimensionIndex(seriesModel.getData())));\n });\n return resetDefines;\n }\n}, // Only support color.\n{\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var visualMetaList = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n if (visualMapModel.isTargetSeries(seriesModel)) {\n var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n stops: [],\n outerColors: []\n };\n var dimIdx = visualMapModel.getDataDimensionIndex(data);\n\n if (dimIdx >= 0) {\n // visualMeta.dimension should be dimension index, but not concrete dimension.\n visualMeta.dimension = dimIdx;\n visualMetaList.push(visualMeta);\n }\n }\n }); // console.log(JSON.stringify(visualMetaList.map(a => a.stops)));\n\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\n }\n}]; // FIXME\n// performance and export for heatmap?\n// value can be Infinity or -Infinity\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n var mappings = visualMapModel.targetVisuals[valueState];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n var resultVisual = {\n color: getVisualFromData(seriesModel.getData(), 'color') // default color.\n\n };\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n mapping && mapping.applyVisual(value, getVisual, setVisual);\n }\n\n return resultVisual.color;\n\n function getVisual(key) {\n return resultVisual[key];\n }\n\n function setVisual(key, value) {\n resultVisual[key] = value;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n var visualMap = option && option.visualMap;\n\n if (!zrUtil.isArray(visualMap)) {\n visualMap = visualMap ? [visualMap] : [];\n }\n\n each(visualMap, function (opt) {\n if (!opt) {\n return;\n } // rename splitList to pieces\n\n\n if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n opt.pieces = opt.splitList;\n delete opt.splitList;\n }\n\n var pieces = opt.pieces;\n\n if (pieces && zrUtil.isArray(pieces)) {\n each(pieces, function (piece) {\n if (zrUtil.isObject(piece)) {\n if (has(piece, 'start') && !has(piece, 'min')) {\n piece.min = piece.start;\n }\n\n if (has(piece, 'end') && !has(piece, 'max')) {\n piece.max = piece.end;\n }\n }\n });\n }\n });\n}\n\nfunction has(obj, name) {\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction.js';\nimport { visualMapEncodingHandlers } from './visualEncoding.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport preprocessor from './preprocessor.js';\nvar installed = false;\nexport default function installCommon(registers) {\n if (installed) {\n return;\n }\n\n installed = true;\n registers.registerSubTypeDefaulter('visualMap', function (option) {\n // Compatible with ec2, when splitNumber === 0, continuous visualMap will be used.\n return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n });\n registers.registerAction(visualMapActionInfo, visualMapActionHander);\n each(visualMapEncodingHandlers, function (handler) {\n registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n });\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ContinuousModel from './ContinuousModel.js';\nimport ContinuousView from './ContinuousView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(ContinuousModel);\n registers.registerComponentView(ContinuousView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport { reformIntervals } from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PiecewiseModel =\n/** @class */\nfunction (_super) {\n __extends(PiecewiseModel, _super);\n\n function PiecewiseModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseModel.type;\n /**\n * The order is always [low, ..., high].\n * [{text: string, interval: Array.}, ...]\n */\n\n _this._pieceList = [];\n return _this;\n }\n\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n\n var mode = this._mode = this._determineMode();\n\n this._pieceList = [];\n\n resetMethods[this._mode].call(this, this._pieceList);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n };\n /**\n * @protected\n * @override\n */\n\n\n PiecewiseModel.prototype.completeVisualOption = function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = false;\n zrUtil.each(this.stateList, function (state) {\n exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n }\n\n _super.prototype.completeVisualOption.apply(this, arguments);\n };\n\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel_1 = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel_1 ? selected[key] = false : hasSel_1 = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getItemSymbol = function () {\n return this.get('itemSymbol');\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getPieceList = function () {\n return this._pieceList;\n };\n /**\n * @return {string}\n */\n\n\n PiecewiseModel.prototype._determineMode = function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n };\n /**\n * @override\n */\n\n\n PiecewiseModel.prototype.setSelected = function (selected) {\n this.option.selected = zrUtil.clone(selected);\n };\n /**\n * @override\n */\n\n\n PiecewiseModel.prototype.getValueState = function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n };\n /**\n * @public\n * @param pieceIndex piece index in visualMapModel.getPieceList()\n */\n\n\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n var result = [];\n var pieceList = this._pieceList;\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n /**\n * @private\n * @param piece piece.value or piece.interval is required.\n * @return Can be Infinity or -Infinity\n */\n\n\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n };\n\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = ['', ''];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n }); // Not category\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n };\n\n PiecewiseModel.type = 'visualMap.piecewise';\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n selected: null,\n minOpen: false,\n maxOpen: false,\n align: 'auto',\n itemWidth: 20,\n itemHeight: 14,\n itemSymbol: 'roundRect',\n pieces: null,\n categories: null,\n splitNumber: 5,\n selectedMode: 'multiple',\n itemGap: 10,\n hoverLink: true // Enable hover highlight.\n\n });\n return PiecewiseModel;\n}(VisualMapModel);\n\n;\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function (outPieceList) {\n var thisOption = this.option;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n outPieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n outPieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n outPieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n outPieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList);\n },\n pieces: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close_1 = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close_1[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n if (process.env.NODE_ENV !== 'production') {\n if (interval[0] > interval[1]) {\n console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n }\n }\n\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n outPieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList); // Only pieces\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport * as layout from '../../util/layout.js';\nimport * as helper from './helper.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\n\nvar PiecewiseVisualMapView =\n/** @class */\nfunction (_super) {\n __extends(PiecewiseVisualMapView, _super);\n\n function PiecewiseVisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseVisualMapView.type;\n return _this;\n }\n\n PiecewiseVisualMapView.prototype.doRender = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var textStyleModel = visualMapModel.textStyleModel;\n var textFont = textStyleModel.getFont();\n var textFill = textStyleModel.getTextColor();\n\n var itemAlign = this._getItemAlign();\n\n var itemSize = visualMapModel.itemSize;\n\n var viewData = this._getViewData();\n\n var endsText = viewData.endsText;\n var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n zrUtil.each(viewData.viewPieceList, function (item) {\n var piece = item.piece;\n var itemGroup = new graphic.Group();\n itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n this._enableHoverLink(itemGroup, item.indexInModelPieceList); // TODO Category\n\n\n var representValue = visualMapModel.getRepresentValue(piece);\n\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n if (showLabel) {\n var visualState = this.visualMapModel.getValueState(representValue);\n itemGroup.add(new graphic.Text({\n style: {\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n y: itemSize[1] / 2,\n text: piece.text,\n verticalAlign: 'middle',\n align: itemAlign,\n font: textFont,\n fill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }, this);\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n this.renderBackground(thisGroup);\n this.positionGroup(thisGroup);\n };\n\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n var _this = this;\n\n itemGroup.on('mouseover', function () {\n return onHoverLink('highlight');\n }).on('mouseout', function () {\n return onHoverLink('downplay');\n });\n\n var onHoverLink = function (method) {\n var visualMapModel = _this.visualMapModel; // TODO: TYPE More detailed action types\n\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\n type: method,\n batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n });\n };\n };\n\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\n var visualMapModel = this.visualMapModel;\n var modelOption = visualMapModel.option;\n\n if (modelOption.orient === 'vertical') {\n return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n } else {\n // horizontal, most case left unless specifying right.\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n };\n\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n if (!text) {\n return;\n }\n\n var itemGroup = new graphic.Group();\n var textStyleModel = this.visualMapModel.textStyleModel;\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n y: itemSize[1] / 2,\n verticalAlign: 'middle',\n align: showLabel ? itemAlign : 'center',\n text: text\n })\n }));\n group.add(itemGroup);\n };\n /**\n * @private\n * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n */\n\n\n PiecewiseVisualMapView.prototype._getViewData = function () {\n var visualMapModel = this.visualMapModel;\n var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n return {\n piece: piece,\n indexInModelPieceList: index\n };\n });\n var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } // Origin order of endsText is [high, low]\n else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n };\n\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n group.add(createSymbol( // symbol will be string\n this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], // color will be string\n this.getControllerVisual(representValue, 'color')));\n };\n\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n var visualMapModel = this.visualMapModel;\n var option = visualMapModel.option;\n var selectedMode = option.selectedMode;\n\n if (!selectedMode) {\n return;\n }\n\n var selected = zrUtil.clone(option.selected);\n var newKey = visualMapModel.getSelectedMapKey(piece);\n\n if (selectedMode === 'single' || selectedMode === true) {\n selected[newKey] = true;\n zrUtil.each(selected, function (o, key) {\n selected[key] = key === newKey;\n });\n } else {\n selected[newKey] = !selected[newKey];\n }\n\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: selected\n });\n };\n\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\n return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport PiecewiseModel from './PiecewiseModel.js';\nimport PiecewiseView from './PiecewiseView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(PiecewiseModel);\n registers.registerComponentView(PiecewiseView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous.js';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise.js';\nexport function install(registers) {\n use(installVisualMapContinuous);\n use(installVisualMapPiecewise); // Do not install './dataZoomSelect',\n // since it only work for toolbox dataZoom.\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar GridModel =\n/** @class */\nfunction (_super) {\n __extends(GridModel, _super);\n\n function GridModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GridModel.type = 'grid';\n GridModel.dependencies = ['xAxis', 'yAxis'];\n GridModel.layoutMode = 'box';\n GridModel.defaultOption = {\n show: false,\n // zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 70,\n // If grid size contain label\n containLabel: false,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n };\n return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nvar CartesianAxisModel =\n/** @class */\nfunction (_super) {\n __extends(CartesianAxisModel, _super);\n\n function CartesianAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CartesianAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n };\n\n CartesianAxisModel.type = 'cartesian2dAxis';\n return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar defaultOption = {\n show: true,\n // zlevel: 0,\n z: 0,\n // Inverse the axis.\n inverse: false,\n // Axis name displayed.\n name: '',\n // 'start' | 'middle' | 'end'\n nameLocation: 'end',\n // By degree. By default auto rotate by nameLocation.\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n // Use global text style by default.\n nameTextStyle: {},\n // The gap between axisName and axisLine.\n nameGap: 15,\n // Default `false` to support tooltip.\n silent: false,\n // Default `false` to avoid legacy user event listener fail.\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#6E7079',\n width: 1,\n type: 'solid'\n },\n // The arrow at both ends the the axis.\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n // Whether axisTick is inside the grid or outside the grid.\n inside: false,\n // The length of axisTick.\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n // Whether axisLabel is inside the grid or outside the grid.\n inside: false,\n rotate: 0,\n // true | false | null/undefined (auto)\n showMinLabel: null,\n // true | false | null/undefined (auto)\n showMaxLabel: null,\n margin: 8,\n // formatter: null,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#E0E6F1'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n }\n }\n};\nvar categoryAxis = zrUtil.merge({\n // The gap at both ends of the axis. For categoryAxis, boolean.\n boundaryGap: true,\n // Set false to faster category collection.\n deduplication: null,\n // splitArea: {\n // show: false\n // },\n splitLine: {\n show: false\n },\n axisTick: {\n // If tick is align with label when boundaryGap is true\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n boundaryGap: [0, 0],\n axisLine: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n axisTick: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n // TODO\n // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n splitNumber: 5,\n minorTick: {\n // Minor tick, not available for cateogry axis.\n show: false,\n // Split number of minor ticks. The value should be in range of (0, 100)\n splitNumber: 5,\n // Lenght of minor tick\n length: 3,\n // Line style\n lineStyle: {// Default to be same with axisTick\n }\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#F4F7FD',\n width: 1\n }\n }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n splitNumber: 6,\n axisLabel: {\n // To eliminate labels that are not nice\n showMinLabel: false,\n showMaxLabel: false,\n rich: {\n primary: {\n fontWeight: 'bold'\n }\n }\n },\n splitLine: {\n show: false\n }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n logBase: 10\n}, valueAxis);\nexport default {\n category: categoryAxis,\n value: valueAxis,\n time: timeAxis,\n log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var AXIS_TYPES = {\n value: 1,\n category: 1,\n time: 1,\n log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault.js';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js';\nimport OrdinalMeta from '../data/OrdinalMeta.js';\nimport { AXIS_TYPES } from './axisCommonTypes.js';\nimport { each, merge } from 'zrender/lib/core/util.js';\n/**\n * Generate sub axis model class\n * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ...\n */\n\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n each(AXIS_TYPES, function (v, axisType) {\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n var AxisModel =\n /** @class */\n function (_super) {\n __extends(AxisModel, _super);\n\n function AxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = axisName + 'Axis.' + axisType;\n return _this;\n }\n\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n merge(option, themeModel.get(axisType + 'Axis'));\n merge(option, this.getDefaultOption());\n option.type = getAxisType(option);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n AxisModel.prototype.optionUpdated = function () {\n var thisOption = this.option;\n\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n };\n /**\n * Should not be called before all of 'getInitailData' finished.\n * Because categories are collected during initializing data.\n */\n\n\n AxisModel.prototype.getCategories = function (rawData) {\n var option = this.option; // FIXME\n // warning if called before all of 'getInitailData' finished.\n\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n\n return this.__ordinalMeta.categories;\n }\n };\n\n AxisModel.prototype.getOrdinalMeta = function () {\n return this.__ordinalMeta;\n };\n\n AxisModel.type = axisName + 'Axis.' + axisType;\n AxisModel.defaultOption = defaultOption;\n return AxisModel;\n }(BaseAxisModelClass);\n\n registers.registerComponentModel(AxisModel);\n });\n registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n // Default axis with data is category axis\n return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nvar Cartesian =\n/** @class */\nfunction () {\n function Cartesian(name) {\n this.type = 'cartesian';\n this._dimList = [];\n this._axes = {};\n this.name = name || '';\n }\n\n Cartesian.prototype.getAxis = function (dim) {\n return this._axes[dim];\n };\n\n Cartesian.prototype.getAxes = function () {\n return zrUtil.map(this._dimList, function (dim) {\n return this._axes[dim];\n }, this);\n };\n\n Cartesian.prototype.getAxesByScale = function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n };\n\n Cartesian.prototype.addAxis = function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n\n this._dimList.push(dim);\n };\n\n return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Cartesian from './Cartesian.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport { applyTransform } from 'zrender/lib/core/vector.js';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D =\n/** @class */\nfunction (_super) {\n __extends(Cartesian2D, _super);\n\n function Cartesian2D() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'cartesian2d';\n _this.dimensions = cartesian2DDimensions;\n return _this;\n }\n /**\n * Calculate an affine transform matrix if two axes are time or value.\n * It's mainly for accelartion on the large time series data.\n */\n\n\n Cartesian2D.prototype.calcAffineTransform = function () {\n this._transform = this._invTransform = null;\n var xAxisScale = this.getAxis('x').scale;\n var yAxisScale = this.getAxis('y').scale;\n\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n return;\n }\n\n var xScaleExtent = xAxisScale.getExtent();\n var yScaleExtent = yAxisScale.getExtent();\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n if (!xScaleSpan || !yScaleSpan) {\n return;\n } // Accelerate data to point calculation on the special large time series data.\n\n\n var scaleX = (end[0] - start[0]) / xScaleSpan;\n var scaleY = (end[1] - start[1]) / yScaleSpan;\n var translateX = start[0] - xScaleExtent[0] * scaleX;\n var translateY = start[1] - yScaleExtent[0] * scaleY;\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n this._invTransform = invert([], m);\n };\n /**\n * Base axis will be used on stacking.\n */\n\n\n Cartesian2D.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n };\n\n Cartesian2D.prototype.containPoint = function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n };\n\n Cartesian2D.prototype.containData = function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n };\n\n Cartesian2D.prototype.containZone = function (data1, data2) {\n var zoneDiag1 = this.dataToPoint(data1);\n var zoneDiag2 = this.dataToPoint(data2);\n var area = this.getArea();\n var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]);\n return area.intersect(zone);\n };\n\n Cartesian2D.prototype.dataToPoint = function (data, clamp, out) {\n out = out || [];\n var xVal = data[0];\n var yVal = data[1]; // Fast path\n\n if (this._transform // It's supported that if data is like `[Inifity, 123]`, where only Y pixel calculated.\n && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n return applyTransform(out, data, this._transform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp));\n return out;\n };\n\n Cartesian2D.prototype.clampData = function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n };\n\n Cartesian2D.prototype.pointToData = function (point, clamp) {\n var out = [];\n\n if (this._invTransform) {\n return applyTransform(out, point, this._invTransform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp);\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp);\n return out;\n };\n\n Cartesian2D.prototype.getOtherAxis = function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n };\n /**\n * Get rect area of cartesian.\n * Area will have a contain function to determine if a point is in the coordinate system.\n */\n\n\n Cartesian2D.prototype.getArea = function () {\n var xExtent = this.getAxis('x').getGlobalExtent();\n var yExtent = this.getAxis('y').getGlobalExtent();\n var x = Math.min(xExtent[0], xExtent[1]);\n var y = Math.min(yExtent[0], yExtent[1]);\n var width = Math.max(xExtent[0], xExtent[1]) - x;\n var height = Math.max(yExtent[0], yExtent[1]) - y;\n return new BoundingRect(x, y, width, height);\n };\n\n return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar Axis2D =\n/** @class */\nfunction (_super) {\n __extends(Axis2D, _super);\n\n function Axis2D(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n /**\n * Index of axis, can be used as key\n * Injected outside.\n */\n\n\n _this.index = 0;\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n\n Axis2D.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n /**\n * Each item cooresponds to this.getExtent(), which\n * means globalExtent[0] may greater than globalExtent[1],\n * unless `asc` is input.\n *\n * @param {boolean} [asc]\n * @return {Array.}\n */\n\n\n Axis2D.prototype.getGlobalExtent = function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n };\n\n Axis2D.prototype.pointToData = function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n };\n /**\n * Set ordinalSortInfo\n * @param info new OrdinalSortInfo\n */\n\n\n Axis2D.prototype.setCategorySortInfo = function (info) {\n if (this.type !== 'category') {\n return false;\n }\n\n this.model.option.categorySortInfo = info;\n this.scale.setSortInfo(info);\n };\n\n return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getPrecisionSafe, round } from '../util/number.js';\nimport IntervalScale from '../scale/Interval.js';\nimport { getScaleExtent } from './axisHelper.js';\nimport { warn } from '../util/log.js';\nimport { increaseInterval, isValueNice } from '../scale/helper.js';\nvar mathLog = Math.log;\nexport function alignScaleTicks(scale, axisModel, alignToScale) {\n var intervalScaleProto = IntervalScale.prototype; // NOTE: There is a precondition for log scale here:\n // In log scale we store _interval and _extent of exponent value.\n // So if we use the method of InternalScale to set/get these data.\n // It process the exponent value, which is linear and what we want here.\n\n var alignToTicks = intervalScaleProto.getTicks.call(alignToScale);\n var alignToNicedTicks = intervalScaleProto.getTicks.call(alignToScale, true);\n var alignToSplitNumber = alignToTicks.length - 1;\n var alignToInterval = intervalScaleProto.getInterval.call(alignToScale);\n var scaleExtent = getScaleExtent(scale, axisModel);\n var rawExtent = scaleExtent.extent;\n var isMinFixed = scaleExtent.fixMin;\n var isMaxFixed = scaleExtent.fixMax;\n\n if (scale.type === 'log') {\n var logBase = mathLog(scale.base);\n rawExtent = [mathLog(rawExtent[0]) / logBase, mathLog(rawExtent[1]) / logBase];\n }\n\n scale.setExtent(rawExtent[0], rawExtent[1]);\n scale.calcNiceExtent({\n splitNumber: alignToSplitNumber,\n fixMin: isMinFixed,\n fixMax: isMaxFixed\n });\n var extent = intervalScaleProto.getExtent.call(scale); // Need to update the rawExtent.\n // Because value in rawExtent may be not parsed. e.g. 'dataMin', 'dataMax'\n\n if (isMinFixed) {\n rawExtent[0] = extent[0];\n }\n\n if (isMaxFixed) {\n rawExtent[1] = extent[1];\n }\n\n var interval = intervalScaleProto.getInterval.call(scale);\n var min = rawExtent[0];\n var max = rawExtent[1];\n\n if (isMinFixed && isMaxFixed) {\n // User set min, max, divide to get new interval\n interval = (max - min) / alignToSplitNumber;\n } else if (isMinFixed) {\n max = rawExtent[0] + interval * alignToSplitNumber; // User set min, expand extent on the other side\n\n while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1])) {\n interval = increaseInterval(interval);\n max = rawExtent[0] + interval * alignToSplitNumber;\n }\n } else if (isMaxFixed) {\n // User set max, expand extent on the other side\n min = rawExtent[1] - interval * alignToSplitNumber;\n\n while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0])) {\n interval = increaseInterval(interval);\n min = rawExtent[1] - interval * alignToSplitNumber;\n }\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n\n if (nicedSplitNumber > alignToSplitNumber) {\n interval = increaseInterval(interval);\n }\n\n var range = interval * alignToSplitNumber;\n max = Math.ceil(rawExtent[1] / interval) * interval;\n min = round(max - range); // Not change the result that crossing zero.\n\n if (min < 0 && rawExtent[0] >= 0) {\n min = 0;\n max = round(range);\n } else if (max > 0 && rawExtent[1] <= 0) {\n max = 0;\n min = -round(range);\n }\n } // Adjust min, max based on the extent of alignTo. When min or max is set in alignTo scale\n\n\n var t0 = (alignToTicks[0].value - alignToNicedTicks[0].value) / alignToInterval;\n var t1 = (alignToTicks[alignToSplitNumber].value - alignToNicedTicks[alignToSplitNumber].value) / alignToInterval; // NOTE: Must in setExtent -> setInterval -> setNiceExtent order.\n\n intervalScaleProto.setExtent.call(scale, min + interval * t0, max + interval * t1);\n intervalScaleProto.setInterval.call(scale, interval);\n\n if (t0 || t1) {\n intervalScaleProto.setNiceExtent.call(scale, min + interval, max - interval);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var ticks = intervalScaleProto.getTicks.call(scale);\n\n if (ticks[1] && (!isValueNice(interval) || getPrecisionSafe(ticks[1].value) > getPrecisionSafe(interval))) {\n warn( // eslint-disable-next-line\n \"The ticks may be not readable when set min: \" + axisModel.get('min') + \", max: \" + axisModel.get('max') + \" and alignTicks: true\");\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Grid is a region which contains at most 4 cartesian systems\n *\n * TODO Default cartesian\n */\nimport { isObject, each, indexOf, retrieve3, keys } from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D.js';\nimport Axis2D from './Axis2D.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\n\nvar Grid =\n/** @class */\nfunction () {\n function Grid(gridModel, ecModel, api) {\n // FIXME:TS where used (different from registered type 'cartesian2d')?\n this.type = 'grid';\n this._coordsMap = {};\n this._coordsList = [];\n this._axesMap = {};\n this._axesList = [];\n this.axisPointerEnabled = true;\n this.dimensions = cartesian2DDimensions;\n\n this._initCartesian(gridModel, ecModel, api);\n\n this.model = gridModel;\n }\n\n Grid.prototype.getRect = function () {\n return this._rect;\n };\n\n Grid.prototype.update = function (ecModel, api) {\n var axesMap = this._axesMap;\n\n this._updateScale(ecModel, this.model);\n\n function updateAxisTicks(axes) {\n var alignTo; // Axis is added in order of axisIndex.\n\n var axesIndices = keys(axes);\n var len = axesIndices.length;\n\n if (!len) {\n return;\n }\n\n var axisNeedsAlign = []; // Process once and calculate the ticks for those don't use alignTicks.\n\n for (var i = len - 1; i >= 0; i--) {\n var idx = +axesIndices[i]; // Convert to number.\n\n var axis = axes[idx];\n var model = axis.model;\n var scale = axis.scale;\n\n if ( // Only value and log axis without interval support alignTicks.\n isIntervalOrLogScale(scale) && model.get('alignTicks') && model.get('interval') == null) {\n axisNeedsAlign.push(axis);\n } else {\n niceScaleExtent(scale, model);\n\n if (isIntervalOrLogScale(scale)) {\n // Can only align to interval or log axis.\n alignTo = axis;\n }\n }\n }\n\n ; // All axes has set alignTicks. Pick the first one.\n // PENDING. Should we find the axis that both set interval, min, max and align to this one?\n\n if (axisNeedsAlign.length) {\n if (!alignTo) {\n alignTo = axisNeedsAlign.pop();\n niceScaleExtent(alignTo.scale, alignTo.model);\n }\n\n each(axisNeedsAlign, function (axis) {\n alignScaleTicks(axis.scale, axis.model, alignTo.scale);\n });\n }\n }\n\n updateAxisTicks(axesMap.x);\n updateAxisTicks(axesMap.y); // Key: axisDim_axisIndex, value: boolean, whether onZero target.\n\n var onZeroRecords = {};\n each(axesMap.x, function (xAxis) {\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n });\n each(axesMap.y, function (yAxis) {\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n }); // Resize again if containLabel is enabled\n // FIXME It may cause getting wrong grid size in data processing stage\n\n this.resize(this.model, api);\n };\n /**\n * Resize the grid\n */\n\n\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n var boxLayoutParams = gridModel.getBoxLayoutParams();\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n var gridRect = getLayoutRect(boxLayoutParams, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._rect = gridRect;\n var axesList = this._axesList;\n adjustAxes(); // Minus label size\n\n if (isContainLabel) {\n each(axesList, function (axis) {\n if (!axis.model.get(['axisLabel', 'inside'])) {\n var labelUnionRect = estimateLabelUnionRect(axis);\n\n if (labelUnionRect) {\n var dim = axis.isHorizontal() ? 'height' : 'width';\n var margin = axis.model.get(['axisLabel', 'margin']);\n gridRect[dim] -= labelUnionRect[dim] + margin;\n\n if (axis.position === 'top') {\n gridRect.y += labelUnionRect.height + margin;\n } else if (axis.position === 'left') {\n gridRect.x += labelUnionRect.width + margin;\n }\n }\n }\n });\n adjustAxes();\n }\n\n each(this._coordsList, function (coord) {\n // Calculate affine matrix to accelerate the data to point transform.\n // If all the axes scales are time or value.\n coord.calcAffineTransform();\n });\n\n function adjustAxes() {\n each(axesList, function (axis) {\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n });\n }\n };\n\n Grid.prototype.getAxis = function (dim, axisIndex) {\n var axesMapOnDim = this._axesMap[dim];\n\n if (axesMapOnDim != null) {\n return axesMapOnDim[axisIndex || 0];\n }\n };\n\n Grid.prototype.getAxes = function () {\n return this._axesList.slice();\n };\n\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n if (xAxisIndex != null && yAxisIndex != null) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n return this._coordsMap[key];\n }\n\n if (isObject(xAxisIndex)) {\n yAxisIndex = xAxisIndex.yAxisIndex;\n xAxisIndex = xAxisIndex.xAxisIndex;\n }\n\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n return coordList[i];\n }\n }\n };\n\n Grid.prototype.getCartesians = function () {\n return this._coordsList.slice();\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n };\n\n Grid.prototype._findConvertTarget = function (finder) {\n var seriesModel = finder.seriesModel;\n var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n var gridModel = finder.gridModel;\n var coordsList = this._coordsList;\n var cartesian;\n var axis;\n\n if (seriesModel) {\n cartesian = seriesModel.coordinateSystem;\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n } else if (xAxisModel && yAxisModel) {\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n } else if (xAxisModel) {\n axis = this.getAxis('x', xAxisModel.componentIndex);\n } else if (yAxisModel) {\n axis = this.getAxis('y', yAxisModel.componentIndex);\n } // Lowest priority.\n else if (gridModel) {\n var grid = gridModel.coordinateSystem;\n\n if (grid === this) {\n cartesian = this._coordsList[0];\n }\n }\n\n return {\n cartesian: cartesian,\n axis: axis\n };\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.containPoint = function (point) {\n var coord = this._coordsList[0];\n\n if (coord) {\n return coord.containPoint(point);\n }\n };\n /**\n * Initialize cartesian coordinate systems\n */\n\n\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n var _this = this;\n\n var grid = this;\n var axisPositionUsed = {\n left: false,\n right: false,\n top: false,\n bottom: false\n };\n var axesMap = {\n x: {},\n y: {}\n };\n var axesCount = {\n x: 0,\n y: 0\n }; /// Create axis\n\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n if (!axesCount.x || !axesCount.y) {\n // Roll back when there no either x or y axis\n this._axesMap = {};\n this._axesList = [];\n return;\n }\n\n this._axesMap = axesMap; /// Create cartesian2d\n\n each(axesMap.x, function (xAxis, xAxisIndex) {\n each(axesMap.y, function (yAxis, yAxisIndex) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n var cartesian = new Cartesian2D(key);\n cartesian.master = _this;\n cartesian.model = gridModel;\n _this._coordsMap[key] = cartesian;\n\n _this._coordsList.push(cartesian);\n\n cartesian.addAxis(xAxis);\n cartesian.addAxis(yAxis);\n });\n });\n\n function createAxisCreator(dimName) {\n return function (axisModel, idx) {\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n return;\n }\n\n var axisPosition = axisModel.get('position');\n\n if (dimName === 'x') {\n // Fix position\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n // Default bottom of X\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n }\n } else {\n // Fix position\n if (axisPosition !== 'left' && axisPosition !== 'right') {\n // Default left of Y\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\n }\n }\n\n axisPositionUsed[axisPosition] = true;\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse'); // Inject axis into axisModel\n\n axisModel.axis = axis; // Inject axisModel into axis\n\n axis.model = axisModel; // Inject grid info axis\n\n axis.grid = grid; // Index of axis, can be used as key\n\n axis.index = idx;\n\n grid._axesList.push(axis);\n\n axesMap[dimName][idx] = axis;\n axesCount[dimName]++;\n };\n }\n };\n /**\n * Update cartesian properties from series.\n */\n\n\n Grid.prototype._updateScale = function (ecModel, gridModel) {\n // Reset scale\n each(this._axesList, function (axis) {\n axis.scale.setExtent(Infinity, -Infinity);\n\n if (axis.type === 'category') {\n var categorySortInfo = axis.model.get('categorySortInfo');\n axis.scale.setSortInfo(categorySortInfo);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n if (isCartesian2DSeries(seriesModel)) {\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n return;\n }\n\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n var data = seriesModel.getData();\n var xAxis = cartesian.getAxis('x');\n var yAxis = cartesian.getAxis('y');\n unionExtent(data, xAxis);\n unionExtent(data, yAxis);\n }\n }, this);\n\n function unionExtent(data, axis) {\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n axis.scale.unionExtentFromData(data, dim);\n });\n }\n };\n /**\n * @param dim 'x' or 'y' or 'auto' or null/undefined\n */\n\n\n Grid.prototype.getTooltipAxes = function (dim) {\n var baseAxes = [];\n var otherAxes = [];\n each(this.getCartesians(), function (cartesian) {\n var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n var otherAxis = cartesian.getOtherAxis(baseAxis);\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n });\n return {\n baseAxes: baseAxes,\n otherAxes: otherAxes\n };\n };\n\n Grid.create = function (ecModel, api) {\n var grids = [];\n ecModel.eachComponent('grid', function (gridModel, idx) {\n var grid = new Grid(gridModel, ecModel, api);\n grid.name = 'grid_' + idx; // dataSampling requires axis extent, so resize\n // should be performed in create stage.\n\n grid.resize(gridModel, api, true);\n gridModel.coordinateSystem = grid;\n grids.push(grid);\n }); // Inject the coordinateSystems into seriesModel\n\n ecModel.eachSeries(function (seriesModel) {\n if (!isCartesian2DSeries(seriesModel)) {\n return;\n }\n\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n var gridModel = xAxisModel.getCoordSysModel();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!gridModel) {\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n }\n\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n throw new Error('xAxis and yAxis must use the same grid');\n }\n }\n\n var grid = gridModel.coordinateSystem;\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n });\n return grids;\n }; // For deciding which dimensions to use when creating list data\n\n\n Grid.dimensions = cartesian2DDimensions;\n return Grid;\n}();\n/**\n * Check if the axis is used in the specified grid.\n */\n\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, // Key: see `getOnZeroRecordKey`\nonZeroRecords) {\n axis.getAxesOnZeroOf = function () {\n // TODO: onZero of multiple axes.\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n }; // onZero can not be enabled in these two situations:\n // 1. When any other axis is a category axis.\n // 2. When no axis is cross 0 point.\n\n\n var otherAxes = axesMap[otherAxisDim];\n var otherAxisOnZeroOf;\n var axisModel = axis.model;\n var onZero = axisModel.get(['axisLine', 'onZero']);\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n if (!onZero) {\n return;\n } // If target axis is specified.\n\n\n if (onZeroAxisIndex != null) {\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n }\n } else {\n // Find the first available other axis.\n for (var idx in otherAxes) {\n if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) // Consider that two Y axes on one value axis,\n // if both onZero, the two Y axes overlap.\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n otherAxisOnZeroOf = otherAxes[idx];\n break;\n }\n }\n }\n\n if (otherAxisOnZeroOf) {\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n }\n\n function getOnZeroRecordKey(axis) {\n return axis.dim + '_' + axis.index;\n }\n}\n\nfunction canOnZeroToAxis(axis) {\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n var axisExtent = axis.getExtent();\n var axisExtentSum = axisExtent[0] + axisExtent[1]; // Fast transform\n\n axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n } // TODO: TYPE\n\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n } // For Making appropriate splitArea animation, the color and anid\n // should be corresponding to previous one if possible.\n\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = inner(axisView).splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n autoBatch: true,\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianAxisView, _super);\n\n function CartesianAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianAxisView.type;\n _this.axisPointerClass = 'CartesianAxisPointer';\n return _this;\n }\n /**\n * @override\n */\n\n\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n handleAutoShown: function (elementType) {\n var cartesians = gridModel.coordinateSystem.getCartesians();\n\n for (var i = 0; i < cartesians.length; i++) {\n if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) {\n // Still show axis tick or axisLine if other axis is value / log\n return true;\n }\n } // Not show axisTick or axisLine if other axis is category / time\n\n\n return false;\n }\n }, layout));\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n }\n }, this); // THIS is a special case for bar racing chart.\n // Update the axis label from the natural initial layout to\n // sorted layout should has no animation.\n\n var isInitialSortFromBarRacing = payload && payload.type === 'changeAxisOrder' && payload.isInitSort;\n\n if (!isInitialSortFromBarRacing) {\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n }\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n CartesianAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n CartesianAxisView.type = 'cartesianAxis';\n return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n var line = new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n },\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var line = new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n }\n },\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n }\n};\n\nvar CartesianXAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianXAxisView, _super);\n\n function CartesianXAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianXAxisView.type = 'xAxis';\n return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianYAxisView, _super);\n\n function CartesianYAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianYAxisView.type = 'yAxis';\n return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport GridModel from '../../coord/cartesian/GridModel.js';\nimport { Rect } from '../../util/graphic.js';\nimport { defaults } from 'zrender/lib/core/util.js';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport Grid from '../../coord/cartesian/Grid.js';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView.js'; // Grid view\n\nvar GridView =\n/** @class */\nfunction (_super) {\n __extends(GridView, _super);\n\n function GridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'grid';\n return _this;\n }\n\n GridView.prototype.render = function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n };\n\n GridView.type = 'grid';\n return GridView;\n}(ComponentView);\n\nvar extraOption = {\n // gridIndex: 0,\n // gridId: '',\n offset: 0\n};\nexport function install(registers) {\n registers.registerComponentView(GridView);\n registers.registerComponentModel(GridModel);\n registers.registerCoordinateSystem('cartesian2d', Grid);\n axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n registers.registerComponentView(CartesianXAxisView);\n registers.registerComponentView(CartesianYAxisView);\n registers.registerPreprocessor(function (option) {\n // Only create grid when need\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { install as installSimple } from './installSimple.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nexport function install(registers) {\n use(installSimple);\n use(installAxisPointer);\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7f7a38d4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"barEchart\" }\n\nimport { reactive, onMounted, ref, watch, toRefs, watchEffect} from \"vue\";\r\n//import { treeData } from './treeData'\r\n\r\nimport * as echarts from 'echarts/core';\r\nimport { TooltipComponent, TooltipComponentOption } from 'echarts/components';\r\nimport { BarChart, BarSeriesOption } from 'echarts/charts';\r\nimport { CanvasRenderer } from 'echarts/renderers';\r\nimport { VisualMapComponent } from 'echarts/components';\r\nimport { GridComponent } from 'echarts/components';\r\ntype EChartsOption = echarts.ComposeOption<\r\n TooltipComponentOption | BarSeriesOption\r\n>;\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'barEchart',\n props: {\n yAxisBingName: { default: [] },\n xAxisRecords: { default: [] },\n tooltipData: null,\n barBgcolor: null,\n modelType: { default: 1 },\n isTotal: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as { yAxisBingName: any, xAxisRecords: any, tooltipData: any, barBgcolor:string, modelType:number, isTotal:boolean };\n\r\necharts.use([TooltipComponent, BarChart, CanvasRenderer, VisualMapComponent,GridComponent]);\r\n\r\n const echartflag = ref(false)\r\n const content: any = ref(null);\r\n \r\n \r\n const chartsDraw = () => {\r\n var myChart = echarts.init(content.value);\r\n var option: EChartsOption;\r\n myChart.setOption(\r\n (\r\n \r\n option = {\r\n xAxis: {\r\n type: 'value',\r\n name: props.modelType ? '份数':'百分比',\r\n axisLabel: { \r\n show: true,\r\n textStyle: {\r\n color: '#333',\r\n fontSize:'16'\r\n }\r\n },\r\n\r\n showMaxLabel: true\r\n\r\n },\r\n yAxis: {\r\n \r\n type: 'category',\r\n name: '中医诊断',\r\n data: props.yAxisBingName,\r\n axisLabel: { \r\n show: true,\r\n textStyle: {\r\n color: '#333',\r\n fontSize:'16'\r\n }\r\n },\r\n \r\n },\r\n grid: {\r\n width: '80%',\r\n left: '6%',\r\n right: '8%',\r\n bottom: '10%',\r\n containLabel: true\r\n },\r\n textStyle: { // 字体颜色和字号 \r\n color: \"#333\",\r\n fontSize: 14\r\n },\r\n tooltip: {\r\n trigger: 'axis',\r\n axisPointer: {\r\n type: 'shadow'\r\n },\r\n \r\n formatter: function (params) {\r\n\r\n //params[0].name表示x轴数据\r\n let str =\"

\"+ params[0].name + \"

\" \r\n //params是数组格式\r\n if(props.modelType){\r\n for (let item of props.tooltipData[params[0].dataIndex]) {\r\n // //设置浮层图形的样式跟随图中展示的颜色\r\n str += \"

\"+ item.sympName +\":\"+ item.count + '份'+ \"

\" \r\n }\r\n }else{\r\n \r\n for (let item of props.tooltipData[params[0].dataIndex]) {\r\n // //设置浮层图形的样式跟随图中展示的颜色\r\n str += \"

\"+ item.sympName + \":\"+ item.rate + '%' + \"

\" \r\n }\r\n }\r\n \r\n return str\r\n },\r\n\r\n },\r\n series: [\r\n {\r\n data: props.xAxisRecords,\r\n type: 'bar',\r\n showBackground: true,\r\n color: props.barBgcolor,\r\n barWidth: 25,//固定柱子宽度\r\n label: {\r\n\r\n show: true,\r\n\r\n position: 'right',\r\n\r\n// formatter: '{c}'\r\n\r\n formatter: props.modelType ? '{c}份':'{c}%'\r\n\r\n },\r\n emphasis: {\r\n focus: 'series'\r\n },\r\n backgroundStyle: {\r\n color: '#e5e5e5'\r\n }\r\n }\r\n ]\r\n })\r\n );\r\n \r\n }\r\n onMounted(() => {\r\n chartsDraw()\r\n })\r\n \r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"barEchart-content\",\n ref_key: \"content\",\n ref: content\n }, null, 512)\n ]))\n}\n}\n\n})","import script from \"./barEchart.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./barEchart.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./barEchart.vue?vue&type=style&index=0&id=7f7a38d4&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7f7a38d4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-214cac68\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"barTitle\" }\nconst _hoisted_2 = { class: \"barTitle-tl\" }\nconst _hoisted_3 = { class: \"barTitle-tl-bingN\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = { class: \"barTitle-bz\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"circle\" }, null, -1))\n\nimport {ref, watch} from \"vue\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'barTitle',\n props: {\n bzList: null,\n secondtitle: null,\n isTotal: { type: Boolean, default: false },\n modelType: null\n },\n emits: ['emishowMostBar'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { bzList: any, secondtitle: string, isTotal:boolean, modelType:number };\n\r\n\r\n\r\nconst bzList = ref(props.bzList)\r\nwatch(() => props.bzList, (val) => {\r\n bzList.value = val\r\n\r\n},{\r\n immediate:true\r\n})\r\nconst showMostBar = () => {\r\n \r\n \r\n emit('emishowMostBar', props.modelType)\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createTextVNode(_toDisplayString(props.secondtitle) + \":\", 1),\n _createElementVNode(\"h3\", null, _toDisplayString(bzList.value.emrName), 1),\n _createElementVNode(\"i\", null, \"(\" + _toDisplayString(__props.modelType ? bzList.value.count + '份' : bzList.value.avgEffectRate + '%') + \")\", 1)\n ]),\n (props.isTotal)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createTextVNode(\"总病案数:\"),\n _createElementVNode(\"span\", null, _toDisplayString(bzList.value.totalEmrValue), 1),\n _createTextVNode(\"份\")\n ]))\n : _createCommentVNode(\"\", true),\n (!props.isTotal)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", { onClick: showMostBar }, \"更多>>\")\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(bzList.value.sympList, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"span\", { key: idx }, [\n _hoisted_7,\n _createTextVNode(_toDisplayString(item.sympName) + \":\" + _toDisplayString(__props.modelType ? item.count + '份' : item.rate + '%'), 1)\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./barTitle.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./barTitle.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./barTitle.vue?vue&type=style&index=0&id=214cac68&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-214cac68\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"dialog-footer\",\n center: \"\"\n}\n\nimport barEchart from './barEchart.vue'\r\nimport barTitle from './barTitle.vue'\r\nimport { ref, watch, nextTick} from \"vue\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'mostRecordsModel',\n props: {\n dialogVisible: null,\n bzList: null,\n modelType: null,\n secondtitle: null,\n yAxisBingName: { default: [] },\n xAxisRecords: { default: [] },\n tooltipData: null,\n barBgcolor: null\n },\n emits: ['update:dialogVisible'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { dialogVisible: any, bzList: any, modelType:number, secondtitle: string, yAxisBingName: any, xAxisRecords: any, tooltipData:any, barBgcolor:string };\n\r\n\r\n\r\n\r\nconst echartflag = ref(false)\r\nconst setHeight = ref('800px')\r\nconst recorddialogVisible = ref(props.dialogVisible)\r\nconst dataTime =ref('')\r\nconst defaultTime = ref(\r\n new Date().getFullYear()\r\n)\r\n\r\nconst disabledDate = (time: Date) => {\r\n return time.getTime() > Date.now() || time.getTime() < Date.now()- 3600 * 1000 * 24 * 180\r\n} \r\nwatch(() => props.dialogVisible, (val) => {\r\n recorddialogVisible.value = val\r\n\r\n nextTick(()=>{\r\n setHeight.value = props.xAxisRecords.length > 10 ? props.xAxisRecords.length * 40 + 'px' : '380px'\r\n echartflag.value = recorddialogVisible.value\r\n })\r\n\r\n},{\r\n immediate:true\r\n})\r\n//关闭\r\nconst onClose = () => {\r\n emit('update:dialogVisible', false)\r\n\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n\n return (_openBlock(), _createBlock(_component_el_dialog, {\n modelValue: recorddialogVisible.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((recorddialogVisible).value = $event)),\n width: \"50%\",\n onClose: onClose,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false,\n \"custom-class\": \"mostRecordsModel\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, [\n _createVNode(_component_el_button, { onClick: onClose }, {\n default: _withCtx(() => [\n _createTextVNode(\"关闭\")\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(barTitle, {\n bzList: props.bzList,\n secondtitle: props.secondtitle,\n isTotal: true,\n modelType: props.modelType\n }, null, 8, [\"bzList\", \"secondtitle\", \"modelType\"]),\n _createElementVNode(\"div\", {\n class: \"modelbar\",\n style: _normalizeStyle({height: setHeight.value})\n }, [\n (echartflag.value)\n ? (_openBlock(), _createBlock(barEchart, {\n key: 0,\n isTotal: true,\n modelType: props.modelType,\n barBgcolor: props.barBgcolor,\n yAxisBingName: props.yAxisBingName,\n xAxisRecords: props.xAxisRecords,\n tooltipData: props.tooltipData\n }, null, 8, [\"modelType\", \"barBgcolor\", \"yAxisBingName\", \"xAxisRecords\", \"tooltipData\"]))\n : _createCommentVNode(\"\", true)\n ], 4)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./mostRecordsModel.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./mostRecordsModel.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./mostRecordsModel.vue?vue&type=style&index=0&id=c5d46c5a&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-34501615\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"varianceBox\" }\nconst _hoisted_2 = { class: \"varianceBox-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"varianceBox-top mainColor fontWeight\" }, \"离散分析\", -1))\nconst _hoisted_4 = { class: \"varianceBox-title-time\" }\nconst _hoisted_5 = { class: \"varianceBox-content\" }\nconst _hoisted_6 = { class: \"varianceBox-records\" }\nconst _hoisted_7 = { key: 1 }\nconst _hoisted_8 = { class: \"varianceBox-records-bar\" }\nconst _hoisted_9 = { class: \"varianceBox-average\" }\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = { class: \"varianceBox-records-bar\" }\nconst _hoisted_12 = { class: \"tacticsBox\" }\nconst _hoisted_13 = { class: \"tacticsBox-top\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fontWeight\" }, \"我的策略\", -1))\nconst _hoisted_15 = { class: \"tacticsBox-centent\" }\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = { class: \"duocizuhe\" }\nconst _hoisted_18 = { class: \"blue-color\" }\nconst _hoisted_19 = { class: \"tacticsBox-centent-item-box\" }\nconst _hoisted_20 = [\"src\", \"onClick\"]\nconst _hoisted_21 = { class: \"footer-img\" }\nconst _hoisted_22 = [\"src\"]\nconst _hoisted_23 = { class: \"dialog-footer\" }\n\nimport { defineComponent, reactive, ref, toRefs, watch } from 'vue';\r\n\r\nimport { ElNotification, ElLoading, ElMessageBox } from 'element-plus'\r\nimport { Search, WarningFilled, RefreshLeft } from '@element-plus/icons-vue'\r\n// 引入公共组件\r\nimport { ImgUrlFix } from '@u/contant'\r\n// 引入接口函数\r\nimport {getEmrEffect, getEmrSymp, getStrategyquery, setStrateDelete, updateName, getRefreshTime, refreshData} from '@r/api/xingling'\r\n// 引入私有组件\r\nimport mostRecordsModel from './components/mostRecordsModel.vue'\r\nimport barEchart from './components/barEchart.vue'\r\nimport barTitle from './components/barTitle.vue'\r\nimport empty from '@c/public/empty/empty.vue'\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'mainAnalysis',\n emits: ['addcelue'],\n setup(__props, { emit }) {\n\r\n\r\n\r\n\r\nconst freshTime = ref('')\r\n//请求图表每次请求条数\r\nconst barNumber = ref('8')\r\n\r\n//病案最多的图表数据\r\nconst echartflag = ref(false)\r\nconst barBgcolor = \"#2b9567\"\r\nconst yAxisBingName:any = reactive([]);\r\nconst xAxisRecords:any = reactive([]);\r\nconst tooltipData:any = reactive([]);\r\n//平均疗效最好的图表数据\r\nconst echartflag1 = ref(false)\r\nconst barBgcolor1 = '#f4b81a'\r\nconst yAxisBingName1 = reactive([])\r\nconst xAxisRecords1 = reactive([])\r\nconst tooltipData1:any = reactive([]);\r\nconst mostRecordShow = ref(false)\r\n//策略列表\r\nconst tacticsList:any = reactive([]);\r\n//当前查看最多的模块,1是病案最多,0是平均数\r\nconst modelType = ref(0)\r\n//病案最多的图表数据\r\nconst mostbarBgcolor = \"#2b9567\"\r\nconst mostyAxisBingName:any = reactive([]);\r\nconst mostxAxisRecords:any = reactive([]);\r\nconst mosttooltipData:any = reactive([]);\r\n//平均疗效最好的图表数据\r\nconst mostbarBgcolor1 = '#f4b81a'\r\nconst mostyAxisBingName1 = reactive([])\r\nconst mostxAxisRecords1 = reactive([])\r\nconst mosttooltipData1:any = reactive([]);\r\nconst mostmostRecordShow = ref(false)\r\n\r\n//修改策略名字\r\nconst celueName = ref('')\r\nconst editID = ref('')\r\nconst editDialogVisible = ref(false)\r\n//病案最多的辨证\r\nconst bzList = ref({'totalEmrValue':0});\r\n//平均数最多的辨证\r\nconst bzList1= ref({'totalEmrValue':0});\r\n//修改策略\r\nconst editEmr = (data: any) => {\r\n editDialogVisible.value = true\r\n celueName.value = data.name\r\n editID.value = data.id\r\n}\r\nconst comfirmEdit =() => {\r\n \r\n // if(!celueName.value){\r\n // ElNotification({\r\n // title: '提示',\r\n // message: '请输入策略名',\r\n // position: 'top-right',\r\n // duration: 3000,\r\n // type: 'warning',\r\n // }) \r\n // }\r\n updateName(\r\n {\r\n data: {\r\n id: editID.value,\r\n name: celueName.value,\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n ElNotification({\r\n title: '提示',\r\n message: '修改成功',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'success',\r\n })\r\n editDialogVisible.value = false\r\n getStrategyqueryData() \r\n \r\n }).catch((err:any)=>{\r\n ElNotification({\r\n title: '提示',\r\n message: err.message,\r\n position: 'top-right',\r\n type: 'warning',\r\n })\r\n })\r\n}\r\n// 删除策略\r\nconst delDiscussHandle = (data: any) => {\r\n // ElMessageBox.confirm(\r\n // `是否删除当前策略`,\r\n // '提示',\r\n // {\r\n // confirmButtonText: '是',\r\n // cancelButtonText: '否',\r\n // type: 'warning',\r\n // }\r\n // ).then(() => {\r\n setStrateDelete(\r\n {\r\n data: {\r\n id: data,\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n for(let idx = 0; idx < tacticsList.length; idx++) {\r\n if(tacticsList[idx].id == data) {\r\n tacticsList.splice(idx, 1);\r\n break;\r\n }\r\n } \r\n ElNotification({\r\n title: '提示',\r\n message: '删除成功',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'success',\r\n })\r\n \r\n }).catch((err:any)=>{\r\n ElNotification({\r\n title: '提示',\r\n message: '删除失败',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'warning',\r\n })\r\n })\r\n \r\n //})\r\n \r\n}\r\n\r\n//点击查看更多\r\nconst emishowMostBar = (data: any) => {\r\n modelType.value = data\r\n\r\n barNumber.value = ''\r\n if(modelType.value){//病案最多\r\n \r\n getEmrEchartData(true)\r\n \r\n }else{\r\n \r\n getEffectEchartData(true)\r\n }\r\n \r\n //弹框\r\n}\r\n//获取病名最多图表数据\r\nconst getEmrEchartData = (bool:boolean) => {\r\n const loading = ElLoading.service({\r\n lock: true,\r\n text: '加载中...',\r\n background: 'rgba(0, 0, 0, 0.4)',\r\n })\r\n getEmrSymp(\r\n {\r\n data: {\r\n top: barNumber.value,\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n \r\n var yAxisArr: any = [], xAxisArr: any = [], bzArr: any = []\r\n res.rankingItemList.forEach((item:any) => {\r\n yAxisArr.unshift(item.emrName)\r\n xAxisArr.unshift(item.count)\r\n bzArr.unshift(item.sympList)\r\n })\r\n if(bool){\r\n \r\n mostyAxisBingName.splice(0, mostyAxisBingName.length, ...yAxisArr);\r\n mostxAxisRecords.splice(0, mostxAxisRecords.length, ...xAxisArr);\r\n mosttooltipData.splice(0, mosttooltipData.length, ...bzArr);\r\n\r\n mostRecordShow.value = true\r\n }else{\r\n yAxisBingName.splice(0, yAxisBingName.length, ...yAxisArr);\r\n xAxisRecords.splice(0, xAxisRecords.length, ...xAxisArr);\r\n tooltipData.splice(0, tooltipData.length, ...bzArr);\r\n echartflag.value = true \r\n }\r\n bzList.value = res.topEmr\r\n bzList.value.totalEmrValue = res.totalEmrValue\r\n loading.close()\r\n\r\n \r\n }).catch((err:any)=>{\r\n loading.close()\r\n })\r\n}\r\n//获取疗效图形数据\r\nconst getEffectEchartData = (bool:boolean) => {\r\n const loading = ElLoading.service({\r\n lock: true,\r\n text: '加载中...',\r\n background: 'rgba(0, 0, 0, 0.4)',\r\n })\r\n getEmrEffect(\r\n {\r\n data: {\r\n top: barNumber.value,\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n \r\n var yAxisArr: any = [], xAxisArr: any = [], bzArr: any = []\r\n res.rankingItemList.forEach((item:any) => {\r\n yAxisArr.unshift(item.emrName)\r\n xAxisArr.unshift(item.avgEffectRate)\r\n bzArr.unshift(item.sympList)\r\n })\r\n\r\n if(bool){\r\n mostyAxisBingName1.splice(0, mostyAxisBingName1.length, ...yAxisArr);\r\n mostxAxisRecords1.splice(0, mostxAxisRecords1.length, ...xAxisArr);\r\n mosttooltipData1.splice(0, mosttooltipData1.length, ...bzArr);\r\n mostRecordShow.value = true\r\n }else{\r\n yAxisBingName1.splice(0, yAxisBingName1.length, ...yAxisArr);\r\n xAxisRecords1.splice(0, xAxisRecords1.length, ...xAxisArr);\r\n tooltipData1.splice(0, tooltipData1.length, ...bzArr);\r\n echartflag1.value = true \r\n }\r\n \r\n \r\n\r\n bzList1.value = res.topEmr\r\n bzList1.value.totalEmrValue = res.totalEmrValue\r\n\r\n loading.close()\r\n }).catch((err:any)=>{\r\n loading.close()\r\n })\r\n}\r\n\r\n \r\n//获取分析策略\r\nconst getStrategyqueryData = () => {\r\n \r\n getStrategyquery(\r\n {\r\n data: {\r\n pageNum: 1,\r\n pageSize: -1\r\n }\r\n }\r\n ).then((res:any)=>{\r\n\r\n tacticsList.splice(0, tacticsList.length, ...res.items);\r\n\r\n }).catch((err:any)=>{\r\n \r\n })\r\n}\r\n//获取刷新时间\r\nconst getRefreshTimeData = () => {\r\n getRefreshTime(\r\n {\r\n data: {\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n freshTime.value = res.refreshTime\r\n\r\n }).catch((err:any)=>{\r\n \r\n })\r\n}\r\n//刷新\r\nconst setRefreshData = () => {\r\n const loading = ElLoading.service({\r\n lock: true,\r\n text: '加载中...',\r\n background: 'rgba(0, 0, 0, 0.4)',\r\n })\r\n refreshData(\r\n {\r\n data: {\r\n _times: new Date().getTime()\r\n }\r\n }\r\n ).then((res:any)=>{\r\n freshTime.value = res.refreshTime\r\n getStrategyqueryData();\r\n getEffectEchartData();\r\n getEmrEchartData();\r\n loading.close()\r\n\r\n }).catch((err:any)=>{\r\n loading.close()\r\n })\r\n}\r\ngetRefreshTimeData();\r\ngetStrategyqueryData();\r\ngetEffectEchartData();\r\ngetEmrEchartData()\r\n\r\n\r\n//点击新建策略\r\nconst addcelue = (id:any) => {\r\n emit('addcelue',id)\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_popconfirm = _resolveComponent(\"el-popconfirm\")!\n const _component_el_main = _resolveComponent(\"el-main\")!\n const _component_el_col = _resolveComponent(\"el-col\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_row = _resolveComponent(\"el-row\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_container = _resolveComponent(\"el-container\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_container, { class: \"varianceanalysis\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_main, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", null, \"最近一次更新时间:\" + _toDisplayString(freshTime.value), 1),\n _createTextVNode(),\n _createVNode(_component_el_button, {\n type: \"success\",\n icon: _unref(RefreshLeft),\n onClick: setRefreshData\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"更新数据统计\")\n ]),\n _: 1\n }, 8, [\"icon\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (yAxisBingName.length === 0)\n ? (_openBlock(), _createBlock(empty, { key: 0 }))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(barTitle, {\n bzList: bzList.value,\n secondtitle: \"病案最多\",\n modelType: 1,\n isTotal: false,\n onEmishowMostBar: emishowMostBar\n }, null, 8, [\"bzList\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n (echartflag.value)\n ? (_openBlock(), _createBlock(barEchart, {\n key: 0,\n barBgcolor: barBgcolor,\n modelType: 1,\n yAxisBingName: yAxisBingName,\n xAxisRecords: xAxisRecords,\n tooltipData: tooltipData\n }, null, 8, [\"yAxisBingName\", \"xAxisRecords\", \"tooltipData\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (yAxisBingName1.length === 0)\n ? (_openBlock(), _createBlock(empty, { key: 0 }))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(barTitle, {\n bzList: bzList1.value,\n modelType: 0,\n secondtitle: \"平均疗效最好\",\n isTotal: false,\n onEmishowMostBar: emishowMostBar\n }, null, 8, [\"bzList\"]),\n _createElementVNode(\"div\", _hoisted_11, [\n (echartflag1.value)\n ? (_openBlock(), _createBlock(barEchart, {\n key: 0,\n barBgcolor: barBgcolor1,\n modelType: 0,\n yAxisBingName: yAxisBingName1,\n xAxisRecords: xAxisRecords1,\n tooltipData: tooltipData1\n }, null, 8, [\"yAxisBingName\", \"xAxisRecords\", \"tooltipData\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createVNode(_component_el_button, {\n type: \"success\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (addcelue(''))),\n disabled: !yAxisBingName.length && !yAxisBingName1.length\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"新建分析策略\")\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n (tacticsList.length === 0)\n ? (_openBlock(), _createBlock(empty, { key: 0 }))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(tacticsList, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"tacticsBox-centent-item\",\n key: idx\n }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (addcelue(item.id)),\n style: {\"cursor\":\"pointer\"}\n }, [\n _createElementVNode(\"h3\", null, _toDisplayString(item.name), 1),\n _createElementVNode(\"p\", _hoisted_17, [\n _createTextVNode(\"策略: \"),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.diseItems, (items, index) => {\n return (_openBlock(), _createElementBlock(\"span\", { key: index }, _toDisplayString(items) + \" \" + _toDisplayString(item.diseItems.length-1 == index ? '' : '+'), 1))\n }), 128))\n ]),\n _createElementVNode(\"p\", null, [\n _createTextVNode(\"病案数:\"),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(item.emrinfoQty) + \"条\", 1)\n ])\n ], 8, _hoisted_16),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"p\", null, \"创建时间:\" + _toDisplayString(item.ctime.replace('T','')), 1),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"img\", {\n src: _unref(ImgUrlFix) + 'images/edit1.png',\n onClick: _withModifiers(($event: any) => (editEmr(item)), [\"stop\"])\n }, null, 8, _hoisted_20),\n _createElementVNode(\"span\", _hoisted_21, [\n _createVNode(_component_el_popconfirm, {\n title: \"确定要删除吗?\",\n onConfirm: ($event: any) => (delDiscussHandle(item.id)),\n \"icon-color\": \"#ca373b\",\n icon: _unref(WarningFilled)\n }, {\n reference: _withCtx(() => [\n _createElementVNode(\"img\", {\n src: _unref(ImgUrlFix) + 'images/del.png',\n onClick: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, null, 8, _hoisted_22)\n ]),\n _: 2\n }, 1032, [\"onConfirm\", \"icon\"])\n ])\n ])\n ])\n ]))\n }), 128))\n ])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: editDialogVisible.value,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((editDialogVisible).value = $event)),\n title: \"分析策略\",\n width: \"30%\",\n \"destroy-on-close\": \"\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_23, [\n _createVNode(_component_el_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (editDialogVisible.value = false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"取消\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: comfirmEdit\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"确定\")\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_row, {\n gutter: 20,\n class: \"mb-10\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_col, {\n span: 6,\n class: \"lineheight32\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"分析策略名称 \")\n ]),\n _: 1\n }),\n _createVNode(_component_el_col, { span: 18 }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: celueName.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((celueName).value = $event)),\n placeholder: \"请输入\",\n maxlength: \"30\",\n clearable: true\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(mostRecordsModel, {\n dialogVisible: mostRecordShow.value,\n \"onUpdate:dialogVisible\": _cache[5] || (_cache[5] = ($event: any) => ((mostRecordShow).value = $event)),\n modelType: modelType.value,\n secondtitle: modelType.value ? '病案最多' : '平均疗效最好',\n bzList: modelType.value ? bzList.value : bzList1.value,\n barBgcolor: modelType.value ? mostbarBgcolor : mostbarBgcolor1,\n yAxisBingName: modelType.value ? mostyAxisBingName : mostyAxisBingName1,\n xAxisRecords: modelType.value ? mostxAxisRecords : mostxAxisRecords1,\n tooltipData: modelType.value ? mosttooltipData : mosttooltipData1\n }, null, 8, [\"dialogVisible\", \"modelType\", \"secondtitle\", \"bzList\", \"barBgcolor\", \"yAxisBingName\", \"xAxisRecords\", \"tooltipData\"])\n ], 64))\n}\n}\n\n})","import script from \"./mainAnalysis.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./mainAnalysis.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./mainAnalysis.vue?vue&type=style&index=0&id=34501615&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-34501615\"]])\n\nexport default __exports__","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ArrowUpBold\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M104.704 685.248a64 64 0 0 0 90.496 0l316.8-316.8 316.8 316.8a64 64 0 0 0 90.496-90.496L557.248 232.704a64 64 0 0 0-90.496 0L104.704 594.752a64 64 0 0 0 0 90.496z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar arrowUpBold = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { arrowUpBold as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Histogram\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M416 896V128h192v768H416zm-288 0V448h192v448H128zm576 0V320h192v576H704z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar histogram = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { histogram as default };\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, resolveComponent as _resolveComponent, isRef as _isRef, createVNode as _createVNode, renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f2e1fd8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"cSlide\" }\nconst _hoisted_2 = { class: \"cSlide_slide\" }\nconst _hoisted_3 = { class: \"slideTip\" }\nconst _hoisted_4 = { class: \"slideTip\" }\nconst _hoisted_5 = { class: \"cSlide_inputBlock\" }\n\nimport { withDefaults, toRefs, reactive, watch, computed } from 'vue';\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'cSlide',\n props: {\n min: { default: 0 },\n max: { default: 100 },\n minLimit: { default: 0 },\n maxLimit: { default: 100 },\n usePercent: { type: Boolean, default: true }\n },\n emits: [\"update:min\", \"update:max\", \"change\"],\n setup(__props: any, { emit: emits }: { emit: ({\r\n (e: 'update:min', data: number): void\r\n (e: 'update:max', data: number): void\r\n (e: 'change', data: any): void\r\n }), expose: any, slots: any, attrs: any }) {\n\nconst props = __props as { min: number, max: number, minLimit: number, maxLimit: number, usePercent: boolean };\n\r\n \r\n \r\n\r\n const state = reactive<{\r\n slideValue: number[]\r\n min: any\r\n max: any\r\n }>({\r\n slideValue: [props.min, props.max],\r\n min: props.min,\r\n max: props.max\r\n })\r\n watch(() => state.slideValue, (data: number[]) => {\r\n })\r\n watch(() => [state.min, state.max], (data: number[]) => {\r\n state.slideValue = data\r\n })\r\n watch(() => props.min, (data: number) => {\r\n state.min = data\r\n })\r\n watch(() => props.max, (data: number) => {\r\n state.max = data\r\n\r\n })\r\n \r\n const changeSlider = (val: any) => {\r\n if(state.slideValue[0] != state.min || state.slideValue[1] != state.max) {\r\n state.min = state.slideValue[0];\r\n state.max = state.slideValue[1];\r\n }\r\n emits('update:min', state.min)\r\n emits('update:max', state.max)\r\n emits('change', state.slideValue)\r\n }\r\n const { slideValue, min, max } = toRefs(state)\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_slider = _resolveComponent(\"el-slider\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(props.minLimit) + _toDisplayString(props.usePercent ? '%' : ''), 1),\n _createVNode(_component_el_slider, {\n onChange: changeSlider,\n modelValue: _unref(slideValue),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(slideValue) ? (slideValue).value = $event : null)),\n range: \"\",\n max: 100\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(props.maxLimit) + _toDisplayString(props.usePercent ? '%' : ''), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"assist\")\n ])\n ]))\n}\n}\n\n})","import script from \"./cSlide.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./cSlide.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./cSlide.vue?vue&type=style&index=0&id=5f2e1fd8&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5f2e1fd8\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, resolveDirective as _resolveDirective } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialogBox\" }\nconst _hoisted_2 = { class: \"diacrisis\" }\nconst _hoisted_3 = { class: \"diacrisisLine\" }\nconst _hoisted_4 = { class: \"w50\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, [\n /*#__PURE__*/_createTextVNode(\" 中医诊断 \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"red\" }, \"*\")\n], -1)\nconst _hoisted_6 = { class: \"diacrisis_item dxName lineheight32 nob\" }\nconst _hoisted_7 = { class: \"text-right text-aaa\" }\nconst _hoisted_8 = { class: \"w50\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"别名\", -1)\nconst _hoisted_10 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_11 = { class: \"diacrisisLine\" }\nconst _hoisted_12 = { class: \"w50\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"西医诊断\", -1)\nconst _hoisted_14 = { class: \"diacrisis_item dxName lineheight32 nob\" }\nconst _hoisted_15 = { class: \"tmplName\" }\nconst _hoisted_16 = { class: \"text-right text-aaa tmplCode\" }\nconst _hoisted_17 = { class: \"w50\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"更多西医诊断\", -1)\nconst _hoisted_19 = { class: \"diacrisis_item dxName lineheight32 nob\" }\nconst _hoisted_20 = { class: \"moreTmplName\" }\nconst _hoisted_21 = { class: \"diacrisisLine\" }\nconst _hoisted_22 = { class: \"w30\" }\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"性别\", -1)\nconst _hoisted_24 = { class: \"diacrisis_item lineheight32 nob\" }\nconst _hoisted_25 = { class: \"w30\" }\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"年龄(岁)\", -1)\nconst _hoisted_27 = { class: \"diacrisis_item lineheight32 nob\" }\nconst _hoisted_28 = { class: \"w30\" }\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit lineheight32\" }, \"科室\", -1)\nconst _hoisted_30 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_31 = { class: \"diacrisisLine\" }\nconst _hoisted_32 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, [\n /*#__PURE__*/_createTextVNode(\" 第一诊断要素 \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"red\" }, \"*\")\n], -1)\nconst _hoisted_33 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_34 = { class: \"diacrisis_qz nob in-number\" }\nconst _hoisted_35 = { class: \"diacrisisLine nob\" }\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"第二诊断要素\", -1)\nconst _hoisted_37 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_38 = { class: \"diacrisis_qz\" }\nconst _hoisted_39 = { class: \"diacrisisLine nob\" }\nconst _hoisted_40 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"第三诊断要素\", -1)\nconst _hoisted_41 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_42 = { class: \"diacrisis_qz\" }\nconst _hoisted_43 = { class: \"diacrisisLine nob\" }\nconst _hoisted_44 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"病种说明\", -1)\nconst _hoisted_45 = { class: \"diacrisis_item illustrate\" }\nconst _hoisted_46 = [\"src\"]\nconst _hoisted_47 = [\"src\"]\nconst _hoisted_48 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"hr mb-10 mt-10\" }, null, -1)\nconst _hoisted_49 = { class: \"prescription\" }\nconst _hoisted_50 = {\n key: 0,\n class: \"diacrisis_tit\"\n}\nconst _hoisted_51 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"red\" }, \"*\", -1)\nconst _hoisted_52 = {\n key: 1,\n class: \"diacrisis_tit\"\n}\nconst _hoisted_53 = { key: 0 }\nconst _hoisted_54 = { class: \"\" }\nconst _hoisted_55 = { class: \"synDiffCodeBox\" }\nconst _hoisted_56 = { class: \"synDiffCode\" }\nconst _hoisted_57 = { class: \"text-right text-aaa\" }\nconst _hoisted_58 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"synDiffAlias\" }, \"备注\", -1)\nconst _hoisted_59 = { class: \"synDiffAlias2\" }\nconst _hoisted_60 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"groupOfLabelBox\" }, \"标签\", -1)\nconst _hoisted_61 = { class: \"groupOfLabelBox2\" }\nconst _hoisted_62 = { class: \"illustrateBox\" }\nconst _hoisted_63 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"illustrate fontWeight\" }, \"说明\", -1)\nconst _hoisted_64 = { class: \"illustrateCont nobod\" }\nconst _hoisted_65 = {\n key: 1,\n class: \"nobod\"\n}\nconst _hoisted_66 = { key: 2 }\nconst _hoisted_67 = { class: \"flr\" }\nconst _hoisted_68 = { class: \"text-aaa\" }\nconst _hoisted_69 = {\n key: 3,\n class: \"nobod\"\n}\nconst _hoisted_70 = {\n key: 4,\n class: \"zf\"\n}\nconst _hoisted_71 = { class: \"showWhatBox\" }\nconst _hoisted_72 = { class: \"usageBox\" }\nconst _hoisted_73 = { style: {\"padding\":\"12px\"} }\nconst _hoisted_74 = { class: \"factor\" }\nconst _hoisted_75 = { class: \"ml-10\" }\nconst _hoisted_76 = { key: 5 }\nconst _hoisted_77 = {\n key: 6,\n class: \"nobod\"\n}\nconst _hoisted_78 = {\n key: 7,\n class: \"effcollDate\"\n}\nconst _hoisted_79 = { class: \"effcollDateBox\" }\nconst _hoisted_80 = [\"onClick\"]\nconst _hoisted_81 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-aaa\" }, \"随访用于跟踪患者的疗效反馈\", -1)\nconst _hoisted_82 = { class: \"effcollDateTime\" }\nconst _hoisted_83 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"lineheight32 fontWeight\" }, \"随访时间:\", -1)\nconst _hoisted_84 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"lineheight32\" }, \"就诊结束\", -1)\nconst _hoisted_85 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"lineheight32\" }, \"后\", -1)\nconst _hoisted_86 = { class: \"diacrisisLine provenance\" }\nconst _hoisted_87 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"原出处\", -1)\nconst _hoisted_88 = { class: \"diacrisis_item nob\" }\nconst _hoisted_89 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"创建人\", -1)\nconst _hoisted_90 = { class: \"diacrisis_item nob\" }\nconst _hoisted_91 = { class: \"diacrisisLine remark\" }\nconst _hoisted_92 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"diacrisis_tit\" }, \"备注\", -1)\nconst _hoisted_93 = { class: \"diacrisis_item nobod\" }\nconst _hoisted_94 = {\n key: 0,\n class: \"wranTips\"\n}\nconst _hoisted_95 = { class: \"dialog-footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_el_radio = _resolveComponent(\"el-radio\")!\n const _component_el_autocomplete = _resolveComponent(\"el-autocomplete\")!\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_input_number = _resolveComponent(\"el-input-number\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_groupOfLabel = _resolveComponent(\"groupOfLabel\")!\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_medic = _resolveComponent(\"medic\")!\n const _component_fvia = _resolveComponent(\"fvia\")!\n const _component_ll = _resolveComponent(\"ll\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_effcoll = _resolveComponent(\"effcoll\")!\n const _directive_loading = _resolveDirective(\"loading\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_el_dialog, {\n title: _ctx.curdxName || '新增',\n modelValue: _ctx.dialogVisible2,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.dialogVisible2) = $event)),\n width: \"60%\",\n onClose: _ctx.onClose,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false,\n top: \"20px\",\n \"custom-class\": \"bintgzhong2\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_95, [\n _createVNode(_component_el_button, { onClick: _ctx.onClose }, {\n default: _withCtx(() => [\n _createTextVNode(\"取 消\")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _withDirectives(_createVNode(_component_el_button, {\n type: \"success\",\n onClick: _ctx.onConfirm,\n loading: _ctx.confirmBtnLoading\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" 保 存\")\n ]),\n _: 1\n }, 8, [\"onClick\", \"loading\"]), [\n [_vShow, _ctx.tmpl.isSeminar === 0]\n ])\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_el_radio_group, {\n modelValue: _ctx.curdxName,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.curdxName) = $event)),\n onChange: _ctx.changeCurdxName\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.curdxNameArr, (item, idx) => {\n return (_openBlock(), _createBlock(_component_el_radio, {\n label: item,\n size: \"large\",\n key: item\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"label\"]))\n }), 128)),\n _createVNode(_component_el_radio, {\n label: _ctx.curdxName1,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_autocomplete, {\n modelValue: _ctx.curdxName1,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.curdxName1) = $event)),\n modelModifiers: { lazy: true },\n \"fetch-suggestions\": _ctx.querySearch3,\n class: \"inline-input\",\n onSelect: _ctx.handleSelect3,\n onChange: _ctx.handleChange3\n }, null, 8, [\"modelValue\", \"fetch-suggestions\", \"onSelect\", \"onChange\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onChange\"]),\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(_ctx.curdxCode), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.alias,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.tmpl.alias) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n maxlength: \"18\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_el_autocomplete, {\n modelValue: _ctx.tmpl.icdName,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.tmpl.icdName) = $event)),\n modelModifiers: { lazy: true },\n \"fetch-suggestions\": _ctx.querySearch4,\n class: \"inline-input\",\n placeholder: \"请选择西医诊断\",\n onSelect: _ctx.handleSelect4,\n onChange: _ctx.handleChange4\n }, null, 8, [\"modelValue\", \"fetch-suggestions\", \"onSelect\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, _toDisplayString(_ctx.tmpl.icdCode), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createVNode(_component_el_select, {\n modelValue: _ctx.tmpl.icdJsonObjectSelect,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.tmpl.icdJsonObjectSelect) = $event)),\n multiple: \"\",\n filterable: \"\",\n remote: \"\",\n placeholder: \"请选择\",\n \"filter-method\": _ctx.icdJsonObjectRemoteMethod,\n onVisibleChange: _ctx.selectVisibleCchangeHandle,\n \"popper-class\": \"moreTmplNameOption\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.icdJsonObjectOptions, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value,\n title: item.label\n }, null, 8, [\"label\", \"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"filter-method\", \"onVisibleChange\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_el_select, {\n modelValue: _ctx.tmpl.sex,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.tmpl.sex) = $event)),\n class: \"m-2\",\n placeholder: \"请选择\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.SEX, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _hoisted_26,\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_el_select, {\n modelValue: _ctx.tmpl.age,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.tmpl.age) = $event)),\n class: \"m-2\",\n placeholder: \"请选择\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.AGE, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _hoisted_29,\n _createElementVNode(\"div\", _hoisted_30, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.dep,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.tmpl.dep) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n maxlength: \"8\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _hoisted_32,\n _createElementVNode(\"div\", _hoisted_33, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.el[0].content,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.tmpl.el[0].content) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n type: \"textarea\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createTextVNode(\" 权重: \"),\n _createVNode(_component_el_input_number, {\n modelValue: _ctx.tmpl.el[0].weight,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.tmpl.el[0].weight) = $event)),\n min: 0,\n max: 99,\n controls: false,\n placeholder: \"请输入\",\n precision: 0\n }, null, 8, [\"modelValue\"]),\n _createTextVNode(\"% \")\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _hoisted_36,\n _createElementVNode(\"div\", _hoisted_37, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.el[1].content,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.tmpl.el[1].content) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n type: \"textarea\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _createTextVNode(\" 权重: \"),\n _createVNode(_component_el_input_number, {\n modelValue: _ctx.tmpl.el[1].weight,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.tmpl.el[1].weight) = $event)),\n min: 0,\n max: 99,\n controls: false,\n placeholder: \"请输入\",\n precision: 0\n }, null, 8, [\"modelValue\"]),\n _createTextVNode(\"% \")\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_39, [\n _hoisted_40,\n _createElementVNode(\"div\", _hoisted_41, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.el[2].content,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.tmpl.el[2].content) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n type: \"textarea\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_42, [\n _createTextVNode(\" 权重: \"),\n _createVNode(_component_el_input_number, {\n modelValue: _ctx.tmpl.el[2].weight,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.tmpl.el[2].weight) = $event)),\n min: 0,\n max: 99,\n controls: false,\n placeholder: \"请输入\",\n precision: 0\n }, null, 8, [\"modelValue\"]),\n _createTextVNode(\"% \")\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n _hoisted_44,\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"span\", null, [\n _withDirectives(_createElementVNode(\"img\", {\n src: _ctx.ImgUrlFix + 'images/eyeopen.png',\n onClick: _cache[14] || (_cache[14] = ($event: any) => (_ctx.isShowIllustrate = !_ctx.isShowIllustrate))\n }, null, 8, _hoisted_46), [\n [_vShow, _ctx.isShowIllustrate]\n ]),\n _withDirectives(_createElementVNode(\"img\", {\n src: _ctx.ImgUrlFix + 'images/eyeclose.png',\n onClick: _cache[15] || (_cache[15] = ($event: any) => (_ctx.isShowIllustrate = !_ctx.isShowIllustrate))\n }, null, 8, _hoisted_47), [\n [_vShow, !_ctx.isShowIllustrate]\n ])\n ]),\n _withDirectives(_createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.illustrate,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((_ctx.tmpl.illustrate) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n type: \"textarea\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\"]), [\n [_vShow, _ctx.isShowIllustrate]\n ])\n ])\n ])\n ]),\n _hoisted_48,\n _createElementVNode(\"div\", _hoisted_49, [\n _createVNode(_component_el_table, {\n data: _ctx.pData,\n style: {\"width\":\"100%\"},\n border: \"\",\n \"show-header\": false\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n label: \"header\",\n width: \"120\",\n fixed: \"\",\n \"class-name\": \"header\"\n }, {\n default: _withCtx((scope) => [\n (scope.$index === 0 || scope.$index === 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_50, [\n _createTextVNode(_toDisplayString(scope.row.header) + \" \", 1),\n _hoisted_51\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_52, _toDisplayString(scope.row.header), 1))\n ]),\n _: 1\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pData[0].datas, (item, idx) => {\n return (_openBlock(), _createBlock(_component_el_table_column, {\n label: \"datas\",\n key: idx,\n \"class-name\": \"synDiffCodeBoxCell\"\n }, {\n default: _withCtx((scope) => [\n (scope.$index === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_53, [\n _createElementVNode(\"div\", _hoisted_54, [\n _createElementVNode(\"div\", _hoisted_55, [\n _createElementVNode(\"div\", _hoisted_56, [\n _createVNode(_component_el_radio_group, {\n modelValue: _ctx.cursynDiffName,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.cursynDiffName) = $event)),\n onChange: _ctx.changeCursynDiffName\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.cursynDiffNameArr, (bz, i) => {\n return (_openBlock(), _createBlock(_component_el_radio, {\n label: bz,\n size: \"large\",\n key: bz\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(bz), 1)\n ]),\n _: 2\n }, 1032, [\"label\"]))\n }), 128)),\n _createVNode(_component_el_radio, {\n label: _ctx.cursynDiffName1,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_autocomplete, {\n modelValue: scope.row.datas[idx].value,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].value) = $event),\n modelModifiers: { lazy: true },\n \"fetch-suggestions\": _ctx.querySearch1,\n class: \"inline-input\",\n onSelect: ((item) => { _ctx.handleSelect1(item, scope.row.datas[idx]) }),\n onChange: ((item) => { _ctx.handleChange1(item, scope.row.datas[idx]) })\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"fetch-suggestions\", \"onSelect\", \"onChange\"])\n ]),\n _: 2\n }, 1032, [\"label\"])\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onChange\"]),\n _createElementVNode(\"div\", _hoisted_57, _toDisplayString(_ctx.cursynDiffCode), 1)\n ]),\n _hoisted_58,\n _createElementVNode(\"div\", _hoisted_59, [\n _createVNode(_component_el_input, {\n modelValue: scope.row.datas[idx].synDiffAlias,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].synDiffAlias) = $event),\n placeholder: \"请输入\",\n maxlength: \"30\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]),\n _hoisted_60,\n _createElementVNode(\"div\", _hoisted_61, [\n _createVNode(_component_groupOfLabel, {\n labelStr: scope.row.datas[idx].groupOfLabel,\n \"onUpdate:labelStr\": ($event: any) => ((scope.row.datas[idx].groupOfLabel) = $event)\n }, null, 8, [\"labelStr\", \"onUpdate:labelStr\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_62, [\n _hoisted_63,\n _createElementVNode(\"div\", _hoisted_64, [\n _createVNode(_component_el_input, {\n modelValue: scope.row.datas[idx].illustrate,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].illustrate) = $event),\n placeholder: \"请输入\",\n type: \"textarea\",\n autosize: { minRows: 3, maxRows: 3 },\n maxlength: \"300\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 1 || scope.$index === 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_65, [\n _createVNode(_component_el_input, {\n modelValue: scope.row.datas[idx].title,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title) = $event),\n modelModifiers: { trim: true },\n type: \"textarea\",\n rows: \"4\",\n placeholder: \"请输入\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 3)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_66, [\n _createElementVNode(\"div\", _hoisted_67, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_autocomplete, {\n modelValue: scope.row.datas[idx].value,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].value) = $event),\n modelModifiers: { lazy: true },\n placeholder: \"请选择\",\n \"fetch-suggestions\": _ctx.querySearch2,\n class: \"inline-input\",\n onSelect: ((item) => { _ctx.handleSelect2(item, scope.row.datas[idx]) }),\n onChange: ((item) => { _ctx.handleChange2(item, scope.row.datas[idx]) })\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"fetch-suggestions\", \"onSelect\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", _hoisted_68, _toDisplayString(scope.row.datas[idx].title), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 4)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_69, [\n _createVNode(_component_el_input, {\n modelValue: scope.row.datas[idx].title,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title) = $event),\n placeholder: \"请输入\",\n maxlength: \"30\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 5)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_70, [\n _createElementVNode(\"div\", _hoisted_71, [\n _createVNode(_component_el_radio_group, {\n modelValue: scope.row.datas[idx].title.showWhat,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title.showWhat) = $event),\n fill: \"#2b9466\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_radio_button, { label: \"处方\" }),\n _createVNode(_component_el_radio_button, { label: \"随证加减\" })\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onUpdate:modelValue\"])\n ]),\n (scope.row.datas[idx].title.showWhat === '处方')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"div\", _hoisted_72, [\n _createElementVNode(\"div\", _hoisted_73, [\n _createTextVNode(\" 处方用法: \"),\n _createVNode(_component_el_select, {\n modelValue: scope.row.datas[idx].title.usage,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title.usage) = $event),\n class: \"m-2\",\n placeholder: \"Select\",\n \"no-match-text\": \"没有匹配的数据\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.directionType, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onUpdate:modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_74, [\n _createTextVNode(\" 按: \"),\n _createVNode(_component_el_select, {\n modelValue: scope.row.datas[idx].title.factory,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title.factory) = $event),\n class: \"m-2\",\n placeholder: \"Select\",\n \"no-match-text\": \"没有匹配的数据\",\n disabled: _ctx.tmpl.isSeminar === 1\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.factoryList, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.drugProduct,\n label: item.drugProduct,\n value: item.drugProduct\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\"]),\n _createElementVNode(\"span\", _hoisted_75, [\n _createVNode(_component_el_button, {\n type: \"success\",\n disabled: _ctx.tmpl.isSeminar === 1,\n onClick: ($event: any) => (_ctx.changeFactorHandle(scope.row.datas[idx]))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"转换\")\n ]),\n _: 2\n }, 1032, [\"disabled\", \"onClick\"])\n ])\n ])\n ]),\n _createVNode(_component_medic, {\n drugData: scope.row.datas[idx].title,\n readonly: _ctx.tmpl.isSeminar === 1,\n isStdDurg: false,\n drugType: -1,\n onUpdateHandle: _ctx.medicUpdateHandle\n }, null, 8, [\"drugData\", \"readonly\", \"onUpdateHandle\"])\n ], 64))\n : (scope.row.datas[idx].title.showWhat === '随证加减')\n ? (_openBlock(), _createBlock(_component_fvia, {\n key: 1,\n origiDrugData: scope.row.datas[idx].title,\n readonly: _ctx.tmpl.isSeminar === 1,\n isStdDurg: false,\n drugType: -1,\n onUpdateHandle: _ctx.fviaUpdateHandle\n }, null, 8, [\"origiDrugData\", \"readonly\", \"onUpdateHandle\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 6)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_76, [\n _createVNode(_component_ll, {\n drugData: scope.row.datas[idx].title,\n readonly: _ctx.tmpl.isSeminar === 1,\n isStdDurg: false,\n onUpdateHandle: _ctx.llUpdateHandle,\n pageId: _ctx.pageId\n }, null, 8, [\"drugData\", \"readonly\", \"onUpdateHandle\", \"pageId\"])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 7)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_77, [\n _createVNode(_component_el_input, {\n modelValue: scope.row.datas[idx].title,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title) = $event),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n maxlength: \"100\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (scope.$index === 8)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_78, [\n _createElementVNode(\"div\", _hoisted_79, [\n _createElementVNode(\"span\", {\n class: \"effcollDate\",\n onClick: ($event: any) => (_ctx.editEffcollHandle(scope.row.datas[idx].bingzongIndex))\n }, \"编辑问卷\", 8, _hoisted_80),\n _hoisted_81\n ]),\n _createElementVNode(\"div\", _hoisted_82, [\n _hoisted_83,\n _hoisted_84,\n _createVNode(_component_el_select, {\n modelValue: scope.row.datas[idx].title,\n \"onUpdate:modelValue\": ($event: any) => ((scope.row.datas[idx].title) = $event),\n class: \"m-2\",\n placeholder: \"Select\",\n \"no-match-text\": \"没有匹配的数据\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.effcollDateSelect, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onUpdate:modelValue\"]),\n _hoisted_85\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_86, [\n _hoisted_87,\n _createElementVNode(\"div\", _hoisted_88, _toDisplayString(_ctx.tmpl.provenance), 1),\n _hoisted_89,\n _createElementVNode(\"div\", _hoisted_90, _toDisplayString(_ctx.tmpl.author), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_91, [\n _hoisted_92,\n _createElementVNode(\"div\", _hoisted_93, [\n _createVNode(_component_el_input, {\n modelValue: _ctx.tmpl.remark,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = ($event: any) => ((_ctx.tmpl.remark) = $event)),\n modelModifiers: { trim: true },\n placeholder: \"请输入\",\n type: \"textarea\",\n autosize: { minRows: 1, maxRows: 6 },\n maxlength: \"100\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])), [\n [_directive_loading, _ctx.loading]\n ])\n ]),\n (_ctx.iswranTips)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_94, \"您的中医诊断或辨证名称不是标准命名,请选择标准命名保存\"))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"title\", \"modelValue\", \"onClose\"]),\n _createVNode(_component_effcoll, {\n dialogVisible: _ctx.tocpicDialogVisible,\n \"onUpdate:dialogVisible\": _cache[20] || (_cache[20] = ($event: any) => ((_ctx.tocpicDialogVisible) = $event)),\n dialecticalID: _ctx.dialecticalID,\n isLock: _ctx.tmpl.isSeminar === 1\n }, null, 8, [\"dialogVisible\", \"dialecticalID\", \"isLock\"])\n ], 64))\n}","\r\nimport { defineComponent, reactive, toRefs, ref, watch, nextTick } from 'vue'\r\nimport { useStore } from \"vuex\"\r\nimport { ElMessageBox, ElNotification } from 'element-plus'\r\n\r\n\r\nimport effcoll from './components/effcoll.vue'\r\nimport cCheckbox2 from \"@c/public/cCheckbox/cCheckbox2.vue\"\r\nimport ll from '@c/public/modelDrugList/ll.vue' //特色诊疗\r\nimport medic from '@c/public/modelDrugList/medic.vue' // 处方\r\nimport fvia from '@c/public/modelDrugList/fvia.vue' //随证\r\nimport groupOfLabel from '@c/public/groupOfLabel/groupOfLabel.vue' //辨证的标签\r\n\r\nimport { pbFn } from '@u/publicMethod'\r\nimport { CloseBold } from '@element-plus/icons-vue'\r\nimport { savePplTmpl, getGuid, getDiseaseSynDiffExplanation } from \"@r/api/xingling\"\r\nimport { GetDrugInfoByDrugName, NewGetDrugConversionToFactory, NewGetDrugConversionToFactoryV2 } from '@r/api/medicalstock'\r\n\r\nimport { SynDiffDrug } from \"@u/class/synDiffDrug\"\r\nimport { Tmpl } from \"@u/class/tmpl\"\r\nimport { Rx } from \"@u/class/synDiff\"\r\nimport { AccompanyingSymptom, AccompanyingSymptomsDrug } from \"@u/class/AccompanyingSymptom\"\r\nimport { FjbDrug } from '@u/class/fjbDrug'\r\n\r\nimport { header, effcollDateSelect, directionType, defaultMethod, SEX, ImgUrlFix, AGE } from '@/util/contant'\r\n\r\n\r\nenum pDataIdx {\r\n name = 0, //辨证名称下标\r\n ll = 6, //理疗下标\r\n medic = 5, //组方下标\r\n ill = 2 //辨证分析下标\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'bintgzhong',\r\n emits: ['update:dialogVisible', 'onConfirm'],\r\n components: {\r\n CloseBold,\r\n cCheckbox2,\r\n effcoll,\r\n ll, medic, fvia, groupOfLabel,\r\n },\r\n props: {\r\n dialogVisible: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n dxNameArr: {\r\n type: Array,\r\n default: [],\r\n },\r\n synDiffArr: {\r\n type: Array,\r\n default: [],\r\n },\r\n tmpl: {\r\n type: Object,\r\n default: null\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const { dialogVisible } = toRefs(props)\r\n const dialogVisible2 = ref(dialogVisible.value)\r\n const tpharmacyVisible = ref(false) //是否显示选药框\r\n const tocpicDialogVisible = ref(false) //是否显示随访问卷\r\n const isShowIllustrate = ref(true) //是否显示病种的说明\r\n const keyWord = ref('') //选药框搜索词\r\n const dialecticalID = ref('') //问卷的ID\r\n const curdxNameArr: any[] = reactive([]);//病名数组\r\n const curdxName = ref('');//病名\r\n const curdxName1 = ref('');//下拉变动的病名\r\n const curdxCode = ref('')//病名code\r\n const cursynDiffNameArr: any[] = reactive([]);//辨证\r\n const cursynDiffName = ref('');//辨证\r\n const cursynDiffName1 = ref('');//下拉变动的辨证\r\n const cursynDiffCode = ref('');//辨证code\r\n const factoryList: any[] = reactive([])\r\n const pageId = ref('')\r\n\r\n\r\n const iswranTips = ref(false)\r\n // 选药框要用到的定位\r\n const position = reactive({\r\n height: 0,\r\n left: 0,\r\n top: 0\r\n })\r\n\r\n const rxType = ref(0) // 处方类型 0中药 1西/成药 3特色诊疗 4检验 5检查\r\n const rxTypeList: any[] = reactive([])\r\n\r\n const loading = ref(true)\r\n const confirmBtnLoading = ref(false)\r\n const confirmBtnDisabled = ref(false)\r\n const tt = new Tmpl()\r\n const tmpl = reactive(tt)\r\n const selectPdataItem: boolean[] = reactive([])\r\n const store = useStore()\r\n const pData = getPData(header, tmpl)\r\n\r\n const onClose = () => {\r\n Object.assign(tmpl, tt)\r\n const tem = getPData(header, tmpl)\r\n pData.splice(0, pData.length, ...tem)\r\n emit('update:dialogVisible', false)\r\n\r\n }\r\n\r\n tmpl.icdJsonObjectSelect = []\r\n tmpl.icdJsonObject.forEach((item: any) => {\r\n tmpl.icdJsonObjectSelect.push(item.icdName)\r\n })\r\n const icdJsonObjectOptions: any[] = reactive([])\r\n\r\n const selectVisibleCchangeHandle = () => {\r\n const list: any[] = []\r\n\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n const obj = {\r\n value: item.icdName,\r\n label: item.icdName,\r\n }\r\n list.push(obj)\r\n if (list.length > 500) {\r\n break\r\n }\r\n }\r\n icdJsonObjectOptions.splice(0, icdJsonObjectOptions.length, ...list)\r\n\r\n }\r\n\r\n const icdJsonObjectRemoteMethod = (query: string) => {\r\n const list: any[] = []\r\n if (query === '') {\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n const obj = {\r\n value: item.icdName,\r\n label: item.icdName,\r\n }\r\n list.push(obj)\r\n if (list.length > 500) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n if (item.icdName.indexOf(query) !== -1) {\r\n const obj = {\r\n value: item.icdName,\r\n label: item.icdName,\r\n }\r\n list.push(obj)\r\n if (list.length > 500) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n icdJsonObjectOptions.splice(0, icdJsonObjectOptions.length, ...list)\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n //确认保存\r\n const onConfirm = () => {\r\n rePData()\r\n tmpl.dxName = curdxName.value\r\n tmpl.dxCode = curdxCode.value\r\n\r\n tmpl.synDiff[0].synDiffName = cursynDiffName.value\r\n tmpl.synDiff[0].synDiffCode = cursynDiffCode.value\r\n\r\n const requestData = JSON.parse(JSON.stringify(tmpl))\r\n requestData.type = 1\r\n\r\n if (curdxCode.value == '') {//如果没有,就是非标准的\r\n iswranTips.value = true\r\n }\r\n if (cursynDiffCode.value == '') {//如果没有,就是非标准的\r\n iswranTips.value = true\r\n }\r\n\r\n if (!curdxCode.value) {\r\n ElNotification({\r\n title: '提示',\r\n message: '诊断名称不符国家命名规范,请(输入框)选择规范命名',\r\n position: 'top-right',\r\n type: 'error',\r\n duration: 3000,\r\n })\r\n return\r\n }\r\n if (!cursynDiffCode.value) {\r\n ElNotification({\r\n title: '提示',\r\n message: '证型名称不符国家命名规范,请(输入框)选择规范命名',\r\n position: 'top-right',\r\n type: 'error',\r\n duration: 3000,\r\n })\r\n return\r\n }\r\n\r\n const re = pbFn.checkgemodel(requestData)\r\n\r\n\r\n if (!re.flag) {\r\n _loading(false)\r\n ElNotification({\r\n title: '提示',\r\n message: re.msg,\r\n position: 'top-right',\r\n type: 'error',\r\n duration: 3000,\r\n })\r\n return\r\n }\r\n\r\n requestData.minAge = requestData.age.split('-')[0]\r\n requestData.maxAge = requestData.age.split('-')[1]\r\n\r\n requestData.icdJson = []\r\n tmpl.icdJsonObjectSelect.forEach((icdName: string) => {\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n\r\n if (icdName === item.icdName) {\r\n const obj = {\r\n icdCode: item.icdCode,\r\n icdName: item.icdName\r\n }\r\n\r\n requestData.icdJson.push(obj)\r\n break;\r\n }\r\n }\r\n })\r\n\r\n\r\n _loading(true)\r\n savePplTmpl({\r\n data: requestData\r\n }).then((t: any) => {\r\n _loading(false)\r\n emit('onConfirm', requestData)\r\n ElNotification({\r\n title: '提示',\r\n message: \"保存成功\",\r\n position: 'top-right',\r\n type: 'success',\r\n duration: 3000,\r\n })\r\n }).catch((err: any) => {\r\n _loading(false)\r\n ElNotification({\r\n title: '提示',\r\n message: err.message,\r\n position: 'top-right',\r\n type: 'error',\r\n duration: 3000,\r\n })\r\n })\r\n }\r\n const changeCursynDiffName = (val: any) => {\r\n cursynDiffCode.value = pbFn.findCodeByName(val, store.state.dsSynDiff)\r\n\r\n if (cursynDiffCode.value) {\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: cursynDiffCode.value,\r\n name: val,\r\n type: 1\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n pData[pDataIdx.ill].datas[0].title = data[0].explanation\r\n } else {\r\n pData[pDataIdx.ill].datas[0].title = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n } else {\r\n pData[pDataIdx.ill].datas[0].title = ''\r\n }\r\n\r\n }\r\n //中医辨证,\r\n const querySearch1 = (queryString: string, cb: any) => {\r\n let list: any[] = []\r\n\r\n store.state.dsSynDiff.forEach((item: any, index: number) => {\r\n if (item.name.includes(queryString)) {\r\n const obj = {\r\n value: item.name,\r\n label: item.name,\r\n code: item.code,\r\n alias: item.alias,\r\n }\r\n list.push(obj)\r\n }\r\n })\r\n cb(pbFn.arrayComparedDelSame(list, cursynDiffNameArr))\r\n }\r\n\r\n const handleSelect1 = (item: any, diff: any) => {\r\n diff.title = cursynDiffCode.value = item.code\r\n cursynDiffName.value = cursynDiffName1.value = item.value\r\n diff.synDiffAlias = item.alias\r\n diff.value = diff.value\r\n\r\n const bingzongIndex = diff.bingzongIndex\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: item.code,\r\n name: item.value,\r\n type: 1\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n pData[pDataIdx.name].datas[bingzongIndex].illustrate = data[0].explanation\r\n } else {\r\n pData[pDataIdx.name].datas[bingzongIndex].illustrate = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n\r\n }\r\n const handleChange1 = (item: any, diff: any) => {\r\n\r\n let flag = false;\r\n let code = ''\r\n let name = ''\r\n const bingzongIndex = diff.bingzongIndex\r\n\r\n for (let i = 0; i < store.state.dsSynDiff.length; i++) {\r\n const listItem = store.state.dsSynDiff[i]\r\n if (listItem.name === item) {\r\n diff.title = cursynDiffCode.value = listItem.code\r\n diff.synDiffAlias = listItem.alias\r\n flag = true\r\n code = listItem.code\r\n name = listItem.name\r\n break;\r\n }\r\n }\r\n\r\n if (flag) {\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: code,\r\n name: name,\r\n type: 1\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n pData[pDataIdx.name].datas[bingzongIndex].illustrate = data[0].explanation\r\n } else {\r\n pData[pDataIdx.name].datas[bingzongIndex].illustrate = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n\r\n } else {\r\n diff.title = cursynDiffCode.value = ''\r\n cursynDiffName.value = cursynDiffName1.value = item\r\n diff.value = diff.value\r\n diff.synDiffAlias = ''\r\n pData[pDataIdx.name].datas[bingzongIndex].illustrate = ''\r\n }\r\n }\r\n\r\n const querySearch2 = (queryString: string, cb: any) => {\r\n let list: any[] = []\r\n store.state.dsTreatRule.forEach((item: any) => {\r\n if (item.name.includes(queryString)) {\r\n const obj = {\r\n value: item.name,\r\n label: item.name,\r\n code: item.code,\r\n }\r\n list.push(obj)\r\n }\r\n\r\n })\r\n\r\n cb(list)\r\n }\r\n\r\n const handleSelect2 = (item: any, diff: any) => {\r\n diff.title = item.code\r\n }\r\n\r\n const handleChange2 = (item: any, diff: any) => {\r\n let flag = false;\r\n store.state.dsTreatRule.forEach((listItem: any) => {\r\n if (listItem.name === item) {\r\n diff.title = listItem.code\r\n flag = true\r\n }\r\n })\r\n\r\n if (!flag) {\r\n diff.title = ''\r\n diff.value = ''\r\n }\r\n }\r\n\r\n //中医诊断\r\n const querySearch3 = (queryString: string, cb: any) => {\r\n let list: any[] = []\r\n store.state.dx.forEach((item: any) => {\r\n if (item.name.includes(queryString)) {\r\n const obj = {\r\n value: item.name,\r\n label: item.name,\r\n code: item.code,\r\n }\r\n list.push(obj)\r\n }\r\n })\r\n cb(pbFn.arrayComparedDelSame(list, curdxNameArr))\r\n }\r\n\r\n\r\n const handleSelect3 = (item: any) => {\r\n curdxName.value = curdxName1.value = item.value\r\n tmpl.dxCode = curdxCode.value = item.code\r\n\r\n\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: item.code,\r\n name: item.value,\r\n type: 0\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n tmpl.illustrate = data[0].explanation\r\n } else {\r\n tmpl.illustrate = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n }\r\n\r\n\r\n const handleChange3 = (item: string) => {\r\n let flag = false;\r\n\r\n for (let i = 0; i < store.state.dx.length; i++) {\r\n const listItem = store.state.dx[i]\r\n if (listItem.name === item) {\r\n tmpl.dxCode = curdxCode.value = listItem.code\r\n curdxName.value = curdxName1.value = listItem.name\r\n flag = true\r\n break;\r\n }\r\n }\r\n\r\n if (flag) {\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: tmpl.dxCode,\r\n name: curdxName.value,\r\n type: 0\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n tmpl.illustrate = data[0].explanation\r\n } else {\r\n tmpl.illustrate = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n } else {\r\n tmpl.dxCode = curdxCode.value = ''\r\n curdxName.value = curdxName1.value = item\r\n tmpl.illustrate = ''\r\n }\r\n }\r\n\r\n const changeCurdxName = (val: any) => {\r\n curdxCode.value = pbFn.findCodeByName(val, store.state.dx)\r\n if (curdxCode.value) {\r\n _loading(true)\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: curdxCode.value,\r\n name: val,\r\n type: 0\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n if (data.length > 0) {\r\n tmpl.illustrate = data[0].explanation\r\n } else {\r\n tmpl.illustrate = ''\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n } else {\r\n tmpl.illustrate = ''\r\n }\r\n }\r\n\r\n const querySearch4 = (queryString: string, cb: any) => {\r\n let list: any[] = []\r\n\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n if (item.icdName.includes(queryString)) {\r\n const obj = {\r\n value: item.icdName,\r\n label: item.icdName,\r\n icdCode: item.icdCode,\r\n systemIcdCode: item.systemIcdCode,\r\n systemIcdName: item.systemIcdName,\r\n }\r\n list.push(obj)\r\n if (list.length > 500) {\r\n break\r\n }\r\n }\r\n }\r\n cb(list)\r\n }\r\n\r\n\r\n const handleSelect4 = (item: any) => {\r\n tmpl.icdName = item.value\r\n tmpl.icdCode = item.icdCode\r\n tmpl.systemIcdCode = item.systemIcdCode\r\n tmpl.systemIcdName = item.systemIcdName\r\n }\r\n\r\n const handleChange4 = (item: string) => {\r\n let flag = false;\r\n store.state.icd.forEach((listItem: any) => {\r\n if (listItem.icdName === item) {\r\n tmpl.systemIcdCode = listItem.systemIcdCode\r\n tmpl.systemIcdName = listItem.systemIcdName\r\n tmpl.icdName = listItem.icdName\r\n tmpl.icdCode = listItem.icdCode\r\n flag = true\r\n }\r\n })\r\n if (!flag) {\r\n tmpl.systemIcdCode = ''\r\n tmpl.systemIcdName = ''\r\n tmpl.icdName = ''\r\n tmpl.icdCode = ''\r\n }\r\n }\r\n\r\n //展现随访问卷\r\n const editEffcollHandle = (bingzongIndex: number) => {\r\n dialecticalID.value = tmpl.synDiff[bingzongIndex].id\r\n tocpicDialogVisible.value = true\r\n }\r\n\r\n\r\n //更新特色诊疗数据\r\n const llUpdateHandle = (druglist: any, bingzongIndex: any) => {\r\n const len = pData[pDataIdx.ll].datas[bingzongIndex].title.drug.length;\r\n pData[pDataIdx.ll].datas[bingzongIndex].title.drug.splice(0, len, ...druglist)\r\n }\r\n\r\n //更新处方数据\r\n const medicUpdateHandle = (druglist: any, bingzongIndex: any) => {\r\n const len = pData[pDataIdx.medic].datas[bingzongIndex].title.drug.length;\r\n pData[pDataIdx.medic].datas[bingzongIndex].title.drug.splice(0, len, ...druglist)\r\n\r\n }\r\n\r\n //更新随证数据\r\n const fviaUpdateHandle = (druglist: any, bingzongIndex: any) => {\r\n const len = pData[pDataIdx.medic].datas[bingzongIndex].title.accompanyingSymptoms.length;\r\n pData[pDataIdx.medic].datas[bingzongIndex].title.accompanyingSymptoms.splice(0, len, ...druglist)\r\n\r\n }\r\n\r\n const GetDrugInfoByDrugNameMe = (rx: any) => {\r\n GetDrugInfoByDrugName({\r\n data: {\r\n orgId: store.state.organization,\r\n drugType: 0,\r\n drugName: rx,\r\n }\r\n }).then((data: any) => {\r\n return data\r\n })\r\n }\r\n\r\n\r\n // 更换厂家\r\n const changeFactorHandle = (rx: any) => {\r\n if (rx.title.factory === '请选择') {\r\n ElNotification({\r\n title: '提示',\r\n message: \"请先选择供应商\",\r\n position: 'top-right',\r\n type: 'warning',\r\n duration: 3000,\r\n })\r\n return\r\n }\r\n\r\n let factory = '' // 要转换的厂家名\r\n let drugType = -1 //要转换药品类型\r\n const bingzongIndex = rx.title.bingzongIndex\r\n\r\n const synDiffDrugList = JSON.parse(JSON.stringify(rx.title.drug))\r\n const fjbDrugList: FjbDrug[] = []\r\n synDiffDrugList.forEach((item: SynDiffDrug, idx: number) => {\r\n let fjbDrug: any = pbFn.diffDrugToFjbDrug(item)\r\n fjbDrug.drugSort = idx + 1\r\n fjbDrugList.push(fjbDrug)\r\n })\r\n const fjbDrugObj = {\r\n fjType: 1,\r\n sort: 0,\r\n drugConvertList: fjbDrugList,\r\n type: 1 // 1处方 2随证\r\n }\r\n\r\n\r\n const accompanyingSymptoms = JSON.parse(JSON.stringify(rx.title.accompanyingSymptoms))\r\n const szDrugList: any = []\r\n accompanyingSymptoms.forEach((accompanyingSymptom: AccompanyingSymptom) => {\r\n const fjbDrugList: FjbDrug[] = []\r\n accompanyingSymptom.accompanyingSymptomsDrug.forEach((item: AccompanyingSymptomsDrug, idx: number) => {\r\n let fjbDrug: any = pbFn.diffDrugToFjbDrug(item)\r\n fjbDrug.drugSort = idx + 1\r\n fjbDrugList.push(fjbDrug)\r\n })\r\n szDrugList.push(fjbDrugList)\r\n })\r\n\r\n const szDrugObj: any = []\r\n for (let i = 0; i < szDrugList.length; ++i) {\r\n const tem = {\r\n fjType: 1,\r\n sort: i + 1,\r\n drugConvertList: szDrugList[i],\r\n type: 2 // 1处方 2随证\r\n }\r\n szDrugObj.push(tem)\r\n }\r\n\r\n store.state.factory.forEach((item: any) => {\r\n if (item.drugProduct === rx.title.factory) {\r\n drugType = item.drugType\r\n factory = item.factory\r\n }\r\n })\r\n\r\n _loading(true)\r\n NewGetDrugConversionToFactoryV2({\r\n data: {\r\n factory: factory,\r\n drugType: drugType,\r\n organizationId: store.state.organization,\r\n fjDetails: [\r\n fjbDrugObj, ...szDrugObj\r\n ]\r\n }\r\n }).then((data: any) => {\r\n _loading(false)\r\n let lostDrugList: string[] = []\r\n data.forEach((item: any) => {\r\n item.drugLostList.forEach((lostDrug: any) => {\r\n lostDrugList.push(lostDrug.drugName)\r\n })\r\n })\r\n lostDrugList = [...new Set(lostDrugList)]\r\n\r\n let str = ''\r\n if (lostDrugList.length) {\r\n lostDrugList.forEach((item: any) => {\r\n str += item + ' '\r\n })\r\n\r\n ElMessageBox.confirm(\r\n '转换后,' + str + ' 药品冲突,请确认是否继续转换,转换后我们将冲突药去除',\r\n '警告',\r\n {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }\r\n ).then(() => {\r\n func(data)\r\n }).catch(() => {\r\n\r\n })\r\n } else {\r\n func(data)\r\n }\r\n }).catch(() => {\r\n _loading(false)\r\n })\r\n\r\n\r\n function func(data: any) {\r\n const synDiffDrugList: SynDiffDrug[] = []\r\n rx.title.rxType = rx.title.temRxType\r\n\r\n pbFn.lee_sort(data[0].drugConvertList, 'drugSort')\r\n\r\n data[0].drugConvertList.forEach((item: FjbDrug) => {\r\n // @ts-ignore \r\n let synDiffDrug = pbFn.fjbDrugToDiffDrug(item)\r\n // @ts-ignore \r\n synDiffDrug.bingzongIndex = bingzongIndex\r\n synDiffDrugList.push(synDiffDrug)\r\n })\r\n\r\n rx.title.drug.splice(0, rx.title.drug.length, ...synDiffDrugList)\r\n\r\n //转换随证\r\n const temp = JSON.parse(JSON.stringify(rx.title.accompanyingSymptoms))\r\n temp.map((item: any) => {\r\n item.accompanyingSymptomsDrug = []\r\n })\r\n for (let i = 1; i < data.length; i++) {\r\n pbFn.lee_sort(data[i].drugConvertList, 'drugSort')\r\n data[i].drugConvertList.forEach((item: any, idx: number) => {\r\n let synDiffDrug = pbFn.fjbDrugToDiffDrug(item)\r\n\r\n // @ts-ignore\r\n synDiffDrug.drugSort = idx + 1\r\n temp[i - 1].accompanyingSymptomsDrug.push(synDiffDrug)\r\n })\r\n }\r\n rx.title.accompanyingSymptoms.splice(0, rx.title.accompanyingSymptoms.length, ...temp)\r\n }\r\n }\r\n\r\n const _loading = (flag: boolean) => {\r\n loading.value = flag\r\n confirmBtnLoading.value = flag\r\n confirmBtnDisabled.value = flag\r\n }\r\n\r\n\r\n\r\n watch(() => store.state.icd, () => {\r\n const list: any[] = []\r\n\r\n for (let i = 0; i < store.state.icd.length; i++) {\r\n const item = store.state.icd[i]\r\n const obj = {\r\n value: item.icdName,\r\n label: item.icdName,\r\n }\r\n list.push(obj)\r\n if (list.length > 500) {\r\n break\r\n }\r\n }\r\n icdJsonObjectOptions.splice(0, icdJsonObjectOptions.length, ...list)\r\n\r\n }, { immediate: true })\r\n\r\n\r\n watch(() => { store.state.factory }, () => {\r\n factoryList.splice(0, factoryList.length, ...store.state.factory)\r\n }, { immediate: true })\r\n\r\n watch(() => props.dialogVisible, async (val) => {\r\n dialogVisible2.value = val\r\n confirmBtnLoading.value = true\r\n confirmBtnDisabled.value = true\r\n isShowIllustrate.value = true\r\n pageId.value = pbFn.getID()\r\n\r\n\r\n if (dialogVisible2.value) {\r\n factoryList.splice(0, factoryList.length, ...store.state.factory)\r\n const guid = await getGuid()\r\n const tt = props.tmpl;\r\n\r\n var drugNameArr = []\r\n for (let i = 0; i < tt.synDiff[0].rx.drug.length; i++) {\r\n drugNameArr.push(tt.synDiff[0].rx.drug[i].drugName)\r\n }\r\n if (drugNameArr.length) {\r\n GetDrugInfoByDrugName({\r\n data: {\r\n orgId: store.state.organization,\r\n drugType: store.state.defaultConfig.drugType,\r\n drugName: drugNameArr,\r\n }\r\n }).then(async (data: any) => {\r\n let list: any[] = [];\r\n data.forEach((item: any) => {\r\n list.push({\r\n \"id\": item.drugId,\r\n \"drugName\": item.drugName,\r\n \"number\": item.qty,\r\n \"fjbDrugId\": item.fjbDrugId\r\n })\r\n })\r\n const { drugConvertList = [] } = await NewGetDrugConversionToFactory({\r\n data: {\r\n \"organizationId\": store.state.organization,\r\n \"drugType\": store.state.defaultConfig.drugType,\r\n \"factory\": store.state.defaultConfig.factory,\r\n \"drugConvertList\": list\r\n }\r\n })\r\n const drugList: any[] = drugConvertList;\r\n tt.synDiff[0].rx.drug.splice(0, tt.synDiff[0].rx.drug.length);\r\n if (drugList.length) {\r\n drugList.forEach((item: SynDiffDrug) => {\r\n const fjbDrug = pbFn.fjbDrugToDiffDrug(item)\r\n fjbDrug.qty = 0\r\n tt.synDiff[0].rx.drug.push(fjbDrug)\r\n })\r\n }\r\n })\r\n }\r\n\r\n tt.synDiff[0].id = guid\r\n curdxNameArr.splice(0, props.dxNameArr.length, ...props.dxNameArr)\r\n cursynDiffNameArr.splice(0, props.synDiffArr.length, ...props.synDiffArr)\r\n\r\n while (tt.el.length < 3) {\r\n tt.el.push({ content: '', weight: 0 })\r\n }\r\n\r\n\r\n //默认单选的病种,code\r\n curdxName.value = curdxNameArr.length ? curdxNameArr[0] : ''\r\n curdxCode.value = pbFn.findCodeByName(curdxName.value, store.state.dx)\r\n //辨证要点和第一诊断要素一致\r\n tt.synDiff[0].mainPoints = tt.el[0].content\r\n if (curdxCode.value) {\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: curdxCode.value,\r\n name: curdxName.value,\r\n type: 0\r\n }\r\n }).then((data: any) => {\r\n if (data.length > 0) {\r\n tmpl.illustrate = data[0].explanation\r\n }\r\n })\r\n }\r\n\r\n //默认单选的病种,code\r\n cursynDiffName.value = cursynDiffNameArr.length ? cursynDiffNameArr[0] : ''\r\n cursynDiffCode.value = pbFn.findCodeByName(cursynDiffName.value, store.state.dsSynDiff)\r\n\r\n if (cursynDiffCode.value) {\r\n getDiseaseSynDiffExplanation({\r\n data: {\r\n code: cursynDiffCode.value,\r\n name: cursynDiffName.value,\r\n type: 1\r\n }\r\n }).then((data: any) => {\r\n if (data.length > 0) {\r\n pData[pDataIdx.ill].datas[0].title = data[0].explanation\r\n }\r\n })\r\n }\r\n\r\n tt.age = tt.minAge.toString() + '-' + tt.maxAge.toString()\r\n Object.assign(tmpl, tt)\r\n\r\n const tem = getPData(header, tmpl)\r\n pData.splice(0, pData.length, ...tem)\r\n\r\n nextTick(() => {\r\n _loading(false)\r\n })\r\n }\r\n })\r\n\r\n watch(() => tmpl.synDiff.length, (Nval: any = 0, Oval: any = 0) => {\r\n if (Nval > Oval) {\r\n selectPdataItem.push(false)\r\n } else if (Nval < Oval) {\r\n selectPdataItem.splice(0, selectPdataItem.length)\r\n for (let i = 0; i < Nval; i++) {\r\n selectPdataItem.push(false)\r\n }\r\n }\r\n }, { immediate: true })\r\n\r\n return {\r\n pageId,\r\n dialogVisible,\r\n dialogVisible2,\r\n tmpl,\r\n pData,\r\n loading,\r\n effcollDateSelect,\r\n directionType,\r\n defaultMethod,\r\n store,\r\n tpharmacyVisible,\r\n position,\r\n keyWord,\r\n selectPdataItem,\r\n confirmBtnLoading,\r\n confirmBtnDisabled,\r\n tocpicDialogVisible,\r\n dialecticalID,\r\n SEX, AGE,\r\n ImgUrlFix,\r\n isShowIllustrate,\r\n rxTypeList,\r\n rxType, factoryList,\r\n GetDrugInfoByDrugNameMe,\r\n onClose,\r\n onConfirm,\r\n editEffcollHandle,\r\n changeCursynDiffName,\r\n querySearch1,\r\n handleSelect1,\r\n handleChange1,\r\n querySearch2,\r\n handleSelect2,\r\n handleChange2,\r\n querySearch3,\r\n handleSelect3,\r\n handleChange3,\r\n changeCurdxName,\r\n querySearch4,\r\n handleSelect4,\r\n handleChange4,\r\n llUpdateHandle, medicUpdateHandle, fviaUpdateHandle,\r\n icdJsonObjectOptions, icdJsonObjectRemoteMethod, selectVisibleCchangeHandle,\r\n curdxName, cursynDiffName, curdxName1, iswranTips, cursynDiffName1,\r\n curdxNameArr,\r\n curdxCode,\r\n cursynDiffNameArr,\r\n cursynDiffCode,\r\n changeFactorHandle,\r\n }\r\n\r\n //转成表格数据\r\n function getPData(header: any, tmpl: any) {\r\n const pData: any = reactive([])\r\n let tem = []\r\n let drugArr: any = []\r\n tmpl.synDiff.map((item: any, index: number) => {\r\n\r\n if (item.rx.drug.length) {\r\n for (let i = 0; i < item.rx.drug.length; i++) {\r\n drugArr.push(pbFn.fjbDrugToDiffDrug(pbFn.findDrugByDrug(store.state.tPharmacy0, item.rx.drug[i])))\r\n item.rx.drug[i] = pbFn.fjbDrugToDiffDrug(pbFn.findDrugByDrug(store.state.tPharmacy0, item.rx.drug[i]))\r\n\r\n }\r\n }\r\n })\r\n for (let i = 0; i < header.length; i++) {\r\n let datas = []\r\n for (let j = 0; j < tmpl.synDiff.length; j++) {\r\n let fjName = ''\r\n const ll = tmpl.synDiff[j].ll || []\r\n\r\n if (tmpl.synDiff[j].rx && tmpl.synDiff[j].rx.fjName) {\r\n fjName = tmpl.synDiff[j].rx.fjName\r\n }\r\n let rx = new Rx()\r\n if (tmpl.synDiff[j].rx) {\r\n rx = tmpl.synDiff[j].rx\r\n rx.temRxType = store.state.defaultConfig.drugType\r\n rx.showWhat = tmpl.synDiff[j].rx.showWhat || '处方'\r\n rx.factory = tmpl.synDiff[j].rx.factory || '请选择'\r\n }\r\n\r\n switch (i) {\r\n case 0: //辨证名称\r\n datas.push({\r\n title: tmpl.synDiff[j].synDiffCode,\r\n bingzongIndex: j,\r\n value: tmpl.synDiff[j].synDiffName,\r\n synDiffAlias: tmpl.synDiff[j].synDiffAlias, //辨证别名\r\n groupOfLabel: tmpl.synDiff[j].groupOfLabel,\r\n illustrate: tmpl.synDiff[j].illustrate, //辩证说明\r\n })\r\n break;\r\n case 1: //辨证要点\r\n datas.push({ title: tmpl.synDiff[j].mainPoints })\r\n break;\r\n case 2: //辨证分析\r\n datas.push({ title: tmpl.synDiff[j].analysis })\r\n break;\r\n case 3: //治则治法\r\n datas.push({\r\n title: tmpl.synDiff[j].treatRuleCode,\r\n value: tmpl.synDiff[j].treatRuleName\r\n })\r\n break;\r\n case 4: //方药\r\n datas.push({ title: fjName })\r\n break;\r\n case 5: //组方\r\n datas.push({ title: rx })\r\n break;\r\n case 6: //中医特色诊疗\r\n datas.push({\r\n title: {\r\n drug: ll,\r\n }\r\n })\r\n break;\r\n case 7: //第二处方\r\n datas.push({ title: tmpl.synDiff[j].rx2nd })\r\n break;\r\n case 8: //问卷\r\n datas.push({ title: tmpl.synDiff[j].effcollDate, bingzongIndex: j })\r\n break;\r\n }\r\n }\r\n let obj = {\r\n header: header[i],\r\n datas: datas\r\n\r\n }\r\n tem.push(obj)\r\n }\r\n pData.splice(0, pData.length, ...tem)\r\n\r\n //给每个药加上是哪个 单元格的idx\r\n for (let i = 0; i < pData[pDataIdx.medic].datas.length; i++) {\r\n pData[pDataIdx.medic].datas[i].title.addDrugName = ''\r\n pData[pDataIdx.medic].datas[i].title.bingzongIndex = i\r\n pData[pDataIdx.ll].datas[i].title.addDrugName = ''\r\n pData[pDataIdx.ll].datas[i].title.bingzongIndex = i\r\n\r\n for (let j = 0; j < pData[pDataIdx.medic].datas[i].title.drug.length; j++) {\r\n pData[pDataIdx.medic].datas[i].title.drug[j].bingzongIndex = i\r\n }\r\n for (let j = 0; j < pData[pDataIdx.ll].datas[i].title.drug.length; j++) {\r\n pData[pDataIdx.ll].datas[i].title.drug[j].bingzongIndex = i\r\n }\r\n }\r\n\r\n return pData;\r\n }\r\n\r\n //反转表格数据\r\n function rePData() {\r\n for (let i = 0; i < tmpl.synDiff.length; i++) {\r\n for (let j = 0; j < header.length; j++) {\r\n switch (j) {\r\n case 0: //辨证名称\r\n tmpl.synDiff[i].synDiffCode = pData[j].datas[i].title\r\n tmpl.synDiff[i].synDiffName = pData[j].datas[i].value\r\n tmpl.synDiff[i].synDiffAlias = pData[j].datas[i].synDiffAlias\r\n tmpl.synDiff[i].groupOfLabel = pData[j].datas[i].groupOfLabel\r\n tmpl.synDiff[i].illustrate = pData[j].datas[i].illustrate\r\n break;\r\n case 1: //辨证要点\r\n tmpl.synDiff[i].mainPoints = pData[j].datas[i].title\r\n break;\r\n case 2: //辨证分析\r\n tmpl.synDiff[i].analysis = pData[j].datas[i].title\r\n break;\r\n case 3: //治则治法\r\n tmpl.synDiff[i].treatRuleCode = pData[j].datas[i].title\r\n tmpl.synDiff[i].treatRuleName = pData[j].datas[i].value\r\n break;\r\n case 4: //方药\r\n tmpl.synDiff[i].rx.fjName = pData[j].datas[i].title\r\n break;\r\n case 5: //组方\r\n tmpl.synDiff[i].rx = pData[j].datas[i].title\r\n break;\r\n case 6: //中医特色诊疗\r\n tmpl.synDiff[i].ll = pData[j].datas[i].title.drug\r\n break;\r\n case 7: //第二处方\r\n tmpl.synDiff[i].rx2nd = pData[j].datas[i].title\r\n break;\r\n case 8: //调查问卷\r\n tmpl.synDiff[i].effcollDate = pData[j].datas[i].title\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n})\r\n\r\n\r\n\r\n","import { render } from \"./gemodel.vue?vue&type=template&id=601ec63e&ts=true\"\nimport script from \"./gemodel.vue?vue&type=script&lang=ts\"\nexport * from \"./gemodel.vue?vue&type=script&lang=ts\"\n\nimport \"./gemodel.vue?vue&type=style&index=0&id=601ec63e&lang=scss\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { pbFn } from '@u/publicMethod'\r\nexport interface sympItemsRole {\r\n diseName: string\r\n sympName: string\r\n}\r\ntype itemsRole = string[]\r\n/**\r\n * ageType (integer, optional): 年龄类型,0全部 1自定义\r\n * diseItems (Array[string], optional): 病名 \r\n * drugItems (Array[Inline Model 1], optional): 药方 词组\r\n * drugStrategyItems (Array[Inline Model 2], optional): 药方 策略\r\n * effectType (integer, optional): 疗效类型,0全部 1自定义 \r\n * emrType (integer, optional): 病案标签 0全部 1 精选 2存疑 \r\n * endTime (string, optional): 开始时间 \r\n * genderType (integer, optional): 性别类型 0 全部 1 男 2女 \r\n * id (string, optional): ID ,\r\n * mainItems (Array[Inline Model 3], optional): 症状+体征 词组 ,\r\n * mainStrategyItems (Array[Inline Model 4], optional): 症状+体征 策略 ,\r\n * maxAge (integer, optional): 最高年龄 ,\r\n * maxDrug (number, optional): 药方占比-最大值 ,\r\n * maxEffect (number, optional): 疗效最大值 ,\r\n * maxMainSymptom (number, optional): 主症占比-最大 ,\r\n * maxPhysexm (number, optional): 体征检查占比-最大值 ,\r\n * minAge (integer, optional): 最低年龄 ,\r\n * minDrug (number, optional): 药方占比-最小值 ,\r\n * minEffect (number, optional): 疗效最小值 ,\r\n * minMainSymptom (number, optional): 主症占比-最小 ,\r\n * minPhysexm (number, optional): 体征检查占比-最小值 ,\r\n * name (string, optional): 策略名 ,\r\n * startTime (string, optional): 开始时间 ,\r\n * sympItems (Array[SympVM], optional): 证型\r\n */\r\nexport class detailRole {\r\n ageType: number = 0\r\n mergeSynonym: boolean = false\r\n mergeNearSynonym: boolean = false\r\n diseItems: string[] = []\r\n drugItems: itemsRole[] = []\r\n drugStrategyItems: itemsRole[] = []\r\n effectType: number = 0\r\n emrType: number = 0\r\n endTime: string = ''\r\n genderType: number = 0\r\n id: string = ''\r\n mainItems: itemsRole[] = []\r\n mainStrategyItems: itemsRole[] = []\r\n maxAge: number = 100\r\n maxDrug: number = 0\r\n maxEffect: number = 100\r\n maxMainSymptom: number = 0\r\n maxPhysexm: number = 0\r\n minAge: number = 0\r\n minDrug: number = 0\r\n minEffect: number = 0\r\n minMainSymptom: number = 0\r\n minPhysexm: number = 0\r\n name: string = ''\r\n startTime: string = pbFn.changeTimeToUse(new Date('2000-01-01').getTime()).split(' ')[0]\r\n sympItems: sympItemsRole[] = [];\r\n [propName: string]: any\r\n}\r\nexport class emrRole {\r\n age: string = ''\r\n curEff: number = -1\r\n diseName: string = ''\r\n emrType: number = 0\r\n gend: number = 0\r\n id: string = ''\r\n mdtrtDate: string = ''\r\n patnId: string = ''\r\n sympName: string = ''\r\n}","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ArrowDown\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar arrowDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { arrowDown as default };\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, isRef as _isRef, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7ce742c4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"moreCheckSelect\" }\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { class: \"moreCheckSelect_content_foot\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"moreCheckSelect_foot\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"moreCheckSelect_foot\"\n}\n\nimport { withDefaults, reactive, toRefs, watch } from 'vue';\r\n import { Plus, ArrowDown } from '@element-plus/icons-vue';\r\n import cCell from '@c/public/cCell/cCell'\r\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'moreCheckSelect',\n props: {\n title: { default: '' },\n list: { default: () => [] },\n itemRender: { default: '' }\n },\n emits: [\"select\"],\n setup(__props: any, { emit: emits }: { emit: ({\r\n (e: 'select', data: {\r\n data: string[]\r\n isMore: boolean\r\n }): void\r\n }), expose: any, slots: any, attrs: any }) {\n\nconst props = __props as { title: string, list: any, itemRender: string };\n\r\n \r\n \r\n \r\n const state = reactive({\r\n isMore: false,\r\n isMoreCheck: false,\r\n selectList: [] as string[],\r\n items: [] as string[],\r\n renderList: [] as any\r\n })\r\n \r\n const getList = () => {\r\n state.renderList.length = 0;\r\n if(props.itemRender) {\r\n state.renderList = props.list\r\n }else {\r\n state.renderList = props.list\r\n }\r\n }\r\n const selectItem = (idx: number) => {\r\n\t\tif(!state.isMoreCheck) {\r\n state.items.push(state.renderList[idx]);\r\n \r\n emits('select', {\r\n data: state.items,\r\n isMore: false\r\n })\r\n emitEvent();\r\n\t\t}\r\n\r\n\t}\r\n\r\n const confirm = () => {\r\n emits('select', {\r\n data: state.selectList,\r\n isMore: true\r\n })\r\n\t\temitEvent();\r\n\t}\r\n \r\n const emitEvent = () => {\r\n state.isMore = false;\r\n state.isMoreCheck = false;\r\n state.selectList = [];\r\n \r\n }\r\n const getLabel = (item: any) => {\r\n return props.itemRender ? (item.isRepeat ? `${item[props.itemRender]}(${item.diseName})` : item[props.itemRender]) : item\r\n }\r\n\r\n watch(() => props.list, data => {\r\n getList()\r\n \r\n })\r\n getList()\r\n const { \r\n isMore, \r\n isMoreCheck, \r\n selectList, \r\n renderList, \r\n } = toRefs(state)\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n const _component_el_checkbox_group = _resolveComponent(\"el-checkbox-group\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_unref(cCell), {\n class: \"moreCheckSelect_title\",\n title: props.title\n }, {\n tip: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (isMore.value = !_unref(isMore)))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" 更多\"),\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(ArrowDown))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (isMoreCheck.value = true)),\n icon: _unref(Plus)\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" 多选 \")\n ]),\n _: 1\n }, 8, [\"icon\"])\n ]),\n _: 1\n }, 8, [\"title\"]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"moreCheckSelect_content\", {isOpen: _unref(isMore) || _unref(isMoreCheck)}])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"moreCheckSelect_list\", {bgColor: _unref(isMoreCheck)}])\n }, [\n (_unref(isMoreCheck))\n ? (_openBlock(), _createBlock(_component_el_checkbox_group, {\n key: 0,\n modelValue: _unref(selectList),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_isRef(selectList) ? (selectList).value = $event : null))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(renderList), (item, idx) => {\n return (_openBlock(), _createBlock(_component_el_checkbox, {\n label: getLabel(item),\n key: idx\n }, null, 8, [\"label\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(_unref(renderList), (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"moreCheckSelect_list_item\",\n key: idx\n }, [\n _createElementVNode(\"span\", {\n class: \"pointer\",\n onClick: ($event: any) => (selectItem(idx))\n }, _toDisplayString(getLabel(item)), 9, _hoisted_2)\n ]))\n }), 128))\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isMore) && !_unref(isMoreCheck))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(_component_el_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (isMore.value = false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"取消\")\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(isMoreCheck))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (isMoreCheck.value = false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"取消\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, { onClick: confirm }, {\n default: _withCtx(() => [\n _createTextVNode(\"确定\")\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ]))\n}\n}\n\n})","import script from \"./moreCheckSelect.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./moreCheckSelect.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./moreCheckSelect.vue?vue&type=style&index=0&id=7ce742c4&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7ce742c4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, isRef as _isRef, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-33492c53\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"varanceGroupWord\" }\nconst _hoisted_2 = { class: \"varanceGroupWord_filter_switch\" }\nconst _hoisted_3 = { class: \"varanceGroupWord_content\" }\nconst _hoisted_4 = { class: \"varanceGroupWord_list\" }\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = { class: \"varanceGroupWord_item_text\" }\nconst _hoisted_7 = { class: \"emrTag\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"checkedRadio\"\n}\n\nimport { reactive, withDefaults, toRefs, watch, nextTick } from 'vue';\r\n import cCell from '@c/public/cCell/cCell.vue'\r\n\timport cSlide from '@c/public/cSlide/cSlide.vue'\r\n import { Check } from '@element-plus/icons-vue';\r\n import { charCodeArr } from '@u/contant'\r\nimport { directive } from '@babel/types';\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'varanceGroupWord',\n props: {\n title: { default: '' },\n minValue: { default: 0 },\n maxValue: { default: 100 },\n minLimit: { default: 0 },\n maxLimit: { default: 100 },\n list: { default: [] },\n reLoad: { default: 0 }\n },\n emits: [\"selectItem\", \"updateList\", \"tabSelect\"],\n setup(__props: any, { emit: emits }: { emit: ({\r\n (e: 'selectItem', data: any): void\r\n (e: 'updateList', data: any): void\r\n (e: 'tabSelect', data: number): void\r\n \r\n }), expose: any, slots: any, attrs: any }) {\n\nconst props = __props as { title: string, minValue: number, maxValue: number, minLimit: number, maxLimit: number, list: any, reLoad: number };\n\r\n \r\n \r\n\r\n const state = reactive({\r\n min: props.minValue,\r\n max: props.maxValue,\r\n tabIndex: 0,\r\n renderList: props.list\r\n })\r\n\r\n const getData = (data: number[]) => {\r\n state.min = data[0]\r\n state.max = data[1]\r\n }\r\n const select = (data: any) => {\r\n data.checked = !data.checked;\r\n emits('selectItem', data)\r\n }\r\n const filterList = (list: any) => {\r\n return list.filter((t: any) => t.rate >= state.min && t.rate <= state.max)\r\n }\r\n\r\n watch(() => props.list, (data: any) => {\r\n const arr: any = [];\r\n data.forEach(t => {\r\n let o = JSON.parse(JSON.stringify(t))\r\n arr.push({\r\n ...o,\r\n checked: o.checked || false\r\n })\r\n })\r\n state.renderList = arr\r\n })\r\n watch(() => props.reLoad, val => {\r\n if(val == 0) {\r\n state.renderList.map((t: any) => {\r\n t.checked = false\r\n return t\r\n })\r\n emits('updateList', state.renderList)\r\n }\r\n })\r\n watch(() => state.tabIndex, (val: number) => {\r\n emits('tabSelect', val)\r\n })\r\n\r\n const vPos = {\r\n mounted: (el: any, binding: any) => {\r\n nextTick(() => {\r\n let w = el.nextSibling?.offsetWidth;\r\n let wh = `${w - 16 < 0 ? 0 :(w - 16)}px`;\r\n el.style.marginLeft = wh\r\n })\r\n },\r\n \r\n\t\tupdated: (el: any) => {\r\n\t\t\tnextTick(() => {\r\n let w = el.nextSibling?.offsetWidth;\r\n let wh = `${w - 16 < 0 ? 0 :(w - 16)}px`;\r\n el.style.marginLeft = wh\r\n })\r\n\t\t}\r\n }\r\n const {\r\n min, \r\n max, \r\n tabIndex, \r\n renderList, \r\n } = toRefs(state)\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(cCell, {\n title: props.title,\n class: \"varanceGroupWord_filter\"\n }, {\n label: _withCtx(() => [\n _createVNode(cSlide, {\n usePercent: true,\n onChange: getData,\n min: _unref(min),\n \"onUpdate:min\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(min) ? (min).value = $event : null)),\n max: _unref(max),\n \"onUpdate:max\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(max) ? (max).value = $event : null))\n }, {\n assist: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(min)) + \"%~\" + _toDisplayString(_unref(max)) + \"% \", 1)\n ]),\n _: 1\n }, 8, [\"min\", \"max\"])\n ]),\n tip: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"pointer\", {active: _unref(tabIndex) == 0}]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (tabIndex.value = 0))\n }, \"值\", 2),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"pointer\", {active: _unref(tabIndex) == 1}]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (tabIndex.value = 1))\n }, \"首\", 2)\n ])\n ]),\n _: 1\n }, 8, [\"title\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(filterList(_unref(renderList)), (item, idx) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: idx }, [\n (item.name)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"varanceGroupWord_item pointer\",\n onClick: ($event: any) => (select(item))\n }, [\n _createElementVNode(\"div\", _hoisted_6, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", null, _toDisplayString(item.rate.toFixed(1)) + \"%\", 1),\n _createTextVNode(\"/\"),\n _createElementVNode(\"span\", null, _toDisplayString(item.qty), 1)\n ])), [\n [vPos, {index: idx}]\n ]),\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(item.name), 1),\n (item.checked)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(Check))\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 8, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./varanceGroupWord.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./varanceGroupWord.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./varanceGroupWord.vue?vue&type=style&index=0&id=33492c53&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-33492c53\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, isRef as _isRef, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4060b44f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dialog-footer\" }\n\nimport { reactive, toRefs, watch, ref, onMounted, nextTick } from 'vue';\r\n import * as echarts from 'echarts/core';\r\n import {\r\n GridComponent,\r\n GridComponentOption\r\n } from 'echarts/components';\r\n import {\r\n BarChart,\r\n BarSeriesOption\r\n } from 'echarts/charts';\r\n import {\r\n CanvasRenderer\r\n } from 'echarts/renderers';\r\n\r\n type EChartsOption = echarts.ComposeOption<\r\n GridComponentOption | BarSeriesOption\r\n >\r\n \r\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'tjModal',\n props: {\n visiable: { type: Boolean, default: false },\n list: { default: [] }\n },\n emits: [\"update:visiable\"],\n setup(__props: any, { emit: emits }: { emit: ({\r\n (e: 'update:visiable', val: boolean): void\r\n }), expose: any, slots: any, attrs: any }) {\n\nconst props = __props as { visiable: boolean, list: any };\n\r\n echarts.use(\r\n [GridComponent, BarChart, CanvasRenderer]\r\n );\r\n\r\n \r\n \r\n const state = reactive<{\r\n isShow: boolean\r\n sortType: number\r\n // visiable: boolean\r\n }>({\r\n isShow: props.visiable,\r\n sortType: 0\r\n // visiable: false\r\n })\r\n \r\n const reset = () => {\r\n state.sortType = 0\r\n renderCHarts()\r\n }\r\n const upSort = () => {\r\n state.sortType = 1\r\n renderCHarts()\r\n }\r\n const downSort = () => {\r\n state.sortType = 2\r\n renderCHarts()\r\n };\r\n\r\n const charts = ref(null);\r\n \r\n const renderCHarts = () => {\r\n nextTick(() => {\r\n let list: any = [];\r\n switch(state.sortType) {\r\n case 0:\r\n list = props.list\r\n break;\r\n case 1:\r\n list = [...props.list].sort((a, b) => {\r\n if(a.rate > b.rate) {\r\n return 1\r\n }else if(a.rate < b.rate) {\r\n return -1\r\n }else {\r\n return 0\r\n }\r\n })\r\n break;\r\n case 2:\r\n list = [...props.list].sort((a, b) => {\r\n if(a.rate < b.rate) {\r\n return 1\r\n }else if(a.rate > b.rate) {\r\n return -1\r\n }else {\r\n return 0\r\n }\r\n })\r\n break;\r\n }\r\n const data: string[] = [];\r\n const series: any[] = [];\r\n list.forEach((t: any, idx: number) => {\r\n data.push(t.name)\r\n let o = {\r\n value: t.rate,\r\n qty: t.qty\r\n }\r\n series.push(o)\r\n })\r\n var chartDom: HTMLElement = charts.value!;\r\n var myChart = echarts.init(chartDom);\r\n // myChart.dispose();\r\n var option: EChartsOption;\r\n\r\n const seriesData = []\r\n option = {\r\n xAxis: {\r\n type: 'category',\r\n data: data,\r\n name: '策略',\r\n axisLabel: {\r\n show: true,\r\n \r\n interval: 0,\r\n \r\n formatter: (val: any) => {\r\n let str = '';\r\n val.split('').forEach((t: string, idx: number) => {\r\n str += t\r\n if(idx % 6 == 0 && idx != 0) {\r\n str += '\\n\\r'\r\n }\r\n })\r\n return str\r\n }\r\n }\r\n },\r\n yAxis: {\r\n type: 'value',\r\n show: true,\r\n name: '百分比/病案数',\r\n // max: 10,\r\n // splitNumber: 10\r\n axisLabel: {\r\n show: true,\r\n interval: 0,\r\n formatter: (data: any, idx: any) => {\r\n return `${data}%`\r\n }\r\n }\r\n },\r\n series: [\r\n {\r\n data: series,\r\n type: 'bar',\r\n barWidth: 30,\r\n label: {\r\n\r\n show: true,\r\n\r\n position: 'top',\r\n\r\n // formatter: '{c}',\r\n\r\n formatter: (data : any) => {\r\n return `${parseFloat(data.data.value).toFixed(2)}%/${data.data.qty}`\r\n }\r\n\r\n }\r\n }\r\n ]\r\n };\r\n\r\n option && myChart.setOption(option);\r\n })\r\n }\r\n \r\n \r\n\r\n watch(() => props.visiable, val => {\r\n state.isShow = val\r\n renderCHarts()\r\n \r\n })\r\n watch(() => state.isShow, val => {\r\n emits('update:visiable', val)\r\n })\r\n const { isShow, sortType } = toRefs(state);\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n\n return (_openBlock(), _createBlock(_component_el_dialog, {\n modelValue: _unref(isShow),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(isShow) ? (isShow).value = $event : null)),\n title: \"\",\n width: \"80%\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: \"tj_charts\",\n ref_key: \"charts\",\n ref: charts\n }, null, 512)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, [\n _createVNode(_component_el_button, {\n type: _unref(sortType) == 0 ? 'success' : '',\n onClick: reset\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"默认\")\n ]),\n _: 1\n }, 8, [\"type\"]),\n _createVNode(_component_el_button, {\n type: _unref(sortType) == 1 ? 'success' : '',\n onClick: upSort\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"升序\")\n ]),\n _: 1\n }, 8, [\"type\"]),\n _createVNode(_component_el_button, {\n type: _unref(sortType) == 2 ? 'success' : '',\n onClick: downSort\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"降序\")\n ]),\n _: 1\n }, 8, [\"type\"])\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./tjModal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./tjModal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./tjModal.vue?vue&type=style&index=0&id=4060b44f&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4060b44f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, createSlots as _createSlots, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, withDirectives as _withDirectives, isRef as _isRef, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-98763f1a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"分析策略\", -1))\nconst _hoisted_2 = { class: \"varianceanalysisModule_main_varianceanalysis_content\" }\nconst _hoisted_3 = { class: \"collapse_titleItem\" }\nconst _hoisted_4 = { class: \"collapse_titleItem_item oneLine\" }\nconst _hoisted_5 = { class: \"collapse_titleItem_item oneLine\" }\nconst _hoisted_6 = { class: \"collapse_titleItem bold\" }\nconst _hoisted_7 = { class: \"collapse_titleItem_item\" }\nconst _hoisted_8 = { class: \"collapse_titleItem_item\" }\nconst _hoisted_9 = { class: \"collapse_titleItem_item\" }\nconst _hoisted_10 = { class: \"collapse_titleItem_item\" }\nconst _hoisted_11 = { class: \"collapse_titleItem_item\" }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"中医诊断:\", -1))\nconst _hoisted_14 = { key: 1 }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"中医辨证:\", -1))\nconst _hoisted_16 = { class: \"varianceanalysisModule_filter\" }\nconst _hoisted_17 = { class: \"collapse_titleItem\" }\nconst _hoisted_18 = { class: \"collapse_titleItem_item oneLine\" }\nconst _hoisted_19 = { class: \"groupWord_item_text\" }\nconst _hoisted_20 = [\"onClick\"]\nconst _hoisted_21 = { class: \"groupWord_item_text\" }\nconst _hoisted_22 = { class: \"emrTag\" }\nconst _hoisted_23 = {\n key: 0,\n class: \"checkedRadio\"\n}\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"合并统计:\", -1))\nconst _hoisted_25 = { class: \"varianceanalysisModule_varanceGroupWord\" }\nconst _hoisted_26 = { class: \"collapse_titleItem\" }\nconst _hoisted_27 = { class: \"collapse_titleItem_item oneLine\" }\nconst _hoisted_28 = { class: \"groupWord_item_text\" }\nconst _hoisted_29 = [\"onClick\"]\nconst _hoisted_30 = { class: \"groupWord_item_text\" }\nconst _hoisted_31 = { class: \"emrTag\" }\nconst _hoisted_32 = {\n key: 0,\n class: \"checkedRadio\"\n}\nconst _hoisted_33 = { class: \"varianceanalysisModule_varanceGroupWord\" }\nconst _hoisted_34 = { class: \"varianceanalysisModule_nav\" }\nconst _hoisted_35 = { class: \"varianceanalysisModule_main_table\" }\nconst _hoisted_36 = { class: \"varianceanalysisModule-saveVarianceModal\" }\nconst _hoisted_37 = { class: \"dialog-footer\" }\n\nimport { reactive, toRefs, watch, ref, nextTick } from 'vue';\r\n\timport { ElNotification, ElLoading } from 'element-plus'\r\n\r\n\timport { ArrowRight, ArrowDown, ArrowUpBold, Plus, ArrowRightBold, Histogram, CloseBold, Check } from '@element-plus/icons-vue';\r\n\timport cCell from '@c/public/cCell/cCell.vue'\r\n\timport cSlide from '@c/public/cSlide/cSlide.vue'\r\n\timport pickerGroup from '@c/public/pickerGroup/pickerGroup.vue'\r\n\timport gemodel from '@c/page/person/gemodel.vue' //病种\r\n\t// import emrDetailList from '@c/page/emrDetailList/emrDetailList.vue'\r\n\timport { emrList as emrDetailList } from 'br-components'\r\n\timport { useStore } from 'vuex';\r\n\timport { stateRole, detailRole, emrListRole, mainSymptomsRole } from './role'\r\n\timport moreCheckSelect from './moreCheckSelect/moreCheckSelect.vue'\r\n\timport varanceGroupWord from './varanceGroupWord/varanceGroupWord.vue'\r\n\timport tjModal from './tjModal/tjModal.vue'\r\n\r\n\timport { ImgUrlFix, charCodeArr } from '@u/contant'\r\n\timport { Tmpl } from \"@u/class/tmpl\"\r\n\timport { synDiff } from '@u/class/synDiff'\r\n\timport { SynDiffDrug } from '@u/class/synDiffDrug'\r\n\timport { pbFn } from '@u/publicMethod'\r\n\r\n\timport { \r\n\t\tgetcustomList, \r\n\t\tgetMainQuery, \r\n\t\tgetEmrKeyWordQuery, \r\n\t\tgetEmrKeyWordDrugs, \r\n\t\tgetCalculatePercentage, \r\n\t\tsaveVariance, \r\n\t\tgetEmrDetail,\r\n\t\tgetVarianceDetail\r\n\t} from '@r/api/xingling'\r\nimport { arrowFunctionExpression } from '@babel/types';\r\n\tinterface User {\r\n\t\tdate: string\r\n\t\tname: string\r\n\t\taddress: string\r\n\t}\r\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'varianceanalysisModule',\n props: {\n id: { default: '' }\n },\n emits: [\"back\"],\n setup(__props: any, { emit: emits }: { emit: ({\r\n\t\t(e: 'back'): void\r\n\t}), expose: any, slots: any, attrs: any }) {\n\nconst props = __props as { id: string };\n\r\n\t\r\n\t\r\n\r\n\tconst store = useStore();\r\n\tconst table: any = ref(null)\r\n\tconst state = reactive({\r\n\t\tisOpenMenu: false,\r\n\t\tavgEff: 0,\r\n\t\tisShowTjModal: false,\r\n\t\tvarianceanalysisItemName: '0',\r\n\t\temrListItemDetail: {},\r\n\t\tmergeData: {\r\n\t\t\tmainSymptoms: {},\r\n\t\t\tphysexms: {}\r\n\t\t},\r\n\t\tvarianceDetail: new detailRole(),\r\n\t\tvarianceState: {\r\n\t\t\tzd: {\r\n\t\t\t\tisMore: false,\r\n\t\t\t\tisMoreCheck: false,\r\n\t\t\t\tisSelected: false,\r\n\t\t\t\tselectList: []\r\n\t\t\t},\r\n\t\t\tbz: {\r\n\t\t\t\tisMore: false,\r\n\t\t\t\tisMoreCheck: false,\r\n\t\t\t\tisSelected: false,\r\n\t\t\t\tselectList: []\r\n\t\t\t},\r\n\t\t\tzz: {\r\n\t\t\t\tisMoreCheck: false,\r\n\t\t\t\tmin: 0,\r\n\t\t\t\tmax: 100,\r\n\t\t\t\tselectList: [],\r\n\t\t\t\tmapData: {}\r\n\t\t\t},\r\n\t\t\ttz: {\r\n\t\t\t\tisMoreCheck: false,\r\n\t\t\t\tmin: 0,\r\n\t\t\t\tmax: 100,\r\n\t\t\t\tselectList: [],\r\n\t\t\t\tmapData: {}\r\n\t\t\t},\r\n\t\t\tzy: {\r\n\t\t\t\tisMoreCheck: false,\r\n\t\t\t\tmin: 0,\r\n\t\t\t\tmax: 100,\r\n\t\t\t\tselectList: [],\r\n\t\t\t\tmapData: {}\r\n\t\t\t}\r\n\t\t},\r\n\t\tdiseNames: [],\r\n\t\tsympNames: [],\r\n\t\tmainSymptoms: [],\r\n\t\tmainSymptomsTabIdx: 0,\r\n\t\tsympGroupWord: [],\r\n\t\tsympGroupWordList: [],\r\n\t\tselectSympGroupWord: [],\r\n\t\tphysexms: [],\r\n\t\tphysexmsTabIdx: 0,\r\n\t\temrDrugs: [],\r\n\t\tdrugTabIdx: 0,\r\n\t\tsympDrugsWord: [],\r\n\t\tsympDrugsWordList: [],\r\n\t\tdrugGroupWordList: [],\r\n\t\tdiseSympMap: {},\r\n\t\teffectValue: [0 , 100],\r\n\t\tageValue: [0 , 100],\r\n\t\tpageSize: 15,\r\n\t\tcurrentPage: 1,\r\n\t\ttotalPage: 0,\r\n\t\temrList: [],\r\n\t\tbzVisible: false,\r\n\t\ttmplData: new Tmpl(),\r\n\t\ttjModalData: [],\r\n\t\tisSaveVariance: false,\r\n\t\tsexList: ['', '男', '女'],\r\n\t\tbeforeUpdateDetailData: new detailRole(), //临时缓存\r\n\t\tisFiltering: false,\r\n\t\tcurrentSearch: 2,\t//当前触发哪个卡片的搜索,默认全部\r\n\t})\r\n\tconst getDxName = () => {\r\n\t\tconst arr: string[] = [];\r\n\t\tconst list = getSymptrategyItems()\r\n\t\tlist.forEach(t => {\r\n\t\t\tarr.push(...t)\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\tconst getSynDiffArr = () => {\r\n\t\tconst arr: string[] = [];\r\n\t\tconst list = getSymptrategyItems()\r\n\t\tlist.forEach(t => {\r\n\t\t\tarr.push(...t)\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\t//保存生成个人模型后保存\r\n\tconst bzOnConfirm = () => {\r\n\t\tstate.bzVisible = false\r\n\t}\r\n\t//生成个人模型\r\n\tconst setPerModel = () => {\r\n\t\t\r\n\t\tconst content: string[] = [];\r\n\t\tconst contentJson: any = {};\r\n\t\tstate.varianceDetail.mainStrategyItems.forEach(t => {\r\n\t\t\tcontent.push(...t);\r\n\t\t\tt.forEach(e => {\r\n\t\t\t\tcontentJson[e] = [e];\r\n\t\t\t})\r\n\t\t})\r\n\t\tconst data = {\r\n\t\t\t\"content\": content.join(','),\r\n\t\t\t\"contentJson\": JSON.stringify(contentJson),\r\n\t\t}\r\n\t\tconst drugList: any = [];\r\n\t\tstate.varianceDetail.drugStrategyItems.forEach(t => {\r\n\t\t\tt.forEach(e => {\r\n\t\t\t\tdrugList.push(Object.assign({}, new SynDiffDrug(), {\r\n\t\t\t\t\tdrugName: e\r\n\t\t\t\t}))\r\n\t\t\t})\r\n\t\t})\r\n\t\tconst synDiffData = new synDiff();\r\n\r\n\t\tlet sexType = [-1, 1, 0]\r\n\t\tlet isLimit = state.varianceDetail.maxAge >= 0 && state.varianceDetail.maxAge <= 14\r\n\t\tstate.tmplData = Object.assign({}, state.tmplData, {\r\n\t\t\tel: [\r\n\t\t\t\tObject.assign({}, state.tmplData.el[0], data),\r\n\t\t\t\tstate.tmplData.el[1],\r\n\t\t\t\tstate.tmplData.el[2]\r\n\t\t\t],\r\n\t\t\tmaxAge: isLimit ? (state.varianceDetail.ageType == 0 ? 0 : 14) : 0,\r\n\t\t\tminAge: 0,\r\n\t\t\tsynDiff: [Object.assign({}, synDiffData, {\r\n\t\t\t\trx: {\r\n\t\t\t\t\t...synDiffData.rx,\r\n\t\t\t\t\tdrug: drugList\r\n\t\t\t\t}\r\n\t\t\t})],\r\n\t\t\tsex: sexType[state.varianceDetail.genderType]\r\n\r\n\t\t})\r\n\t\tstate.bzVisible = true\r\n\t}\r\n\t// 渲染中医诊断\r\n\tconst renderDise = () => {\r\n\t\tlet arr: string[] = [];\r\n\t\tstate.varianceDetail.sympItems.forEach((e: any) => {\r\n\t\t\t\r\n\t\t\tif(e.isRepeat) {\r\n\t\t\t\tif(state.diseSympMap[e.diseName]) {\r\n\t\t\t\t\tarr.push(e.diseName)\r\n\t\t\t\t}\r\n\t\t\t}else {\r\n\t\t\t\tfor (const key in state.diseSympMap) {\r\n\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(state.diseSympMap, key)) {\r\n\t\t\t\t\t\tconst item = state.diseSympMap[key];\r\n\t\t\t\t\t\tif(item.includes(e.sympName)) {\r\n\t\t\t\t\t\t\tarr.push(key)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t\r\n\t\tif(!state.varianceDetail.sympItems.length) {\r\n\t\t\tarr = arr.concat(state.diseNames)\r\n\t\t}\r\n\t\treturn arr\r\n\t}\r\n\t//选择中医诊断\r\n\tconst selectDise = (res: {\r\n data: string[]\r\n isMore: boolean\r\n }) => {\r\n\t\t\t\r\n\t\t\tstate.varianceDetail.diseItems = res.data\r\n\t}\r\n\tconst getSympMapData = () => {\r\n\t\tlet arr: any = [];\r\n\t\t\r\n\t\tstate.sympNames.forEach((t, idx) => {\r\n\t\t\tlet rePearList: string[] = [];\r\n\t\t\tfor (const key in state.diseSympMap) {\r\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(state.diseSympMap, key)) {\r\n\t\t\t\t\tconst item = state.diseSympMap[key];\r\n\t\t\t\t\tif(item.includes(t.sympName) && !rePearList.includes(key)) rePearList.push(key)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(state.varianceDetail.diseItems.length) {\r\n\t\t\t\tif(state.varianceDetail.diseItems.includes(t.diseName)) {\r\n\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\tdiseName: t.diseName,\r\n\t\t\t\t\t\tsympName: t.sympName,\r\n\t\t\t\t\t\trepeatList: rePearList.length > 1 ? rePearList : []\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}else {\r\n\t\t\t\tarr.push({\r\n\t\t\t\t\t\tdiseName: t.diseName,\r\n\t\t\t\t\t\tsympName: t.sympName,\r\n\t\t\t\t\t\trepeatList: rePearList.length > 1 ? rePearList : []\r\n\t\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\t// 渲染中医辨证\r\n\tconst renderSymp = () => {\r\n\t\tlet list = getSympMapData();\r\n\t\t\r\n\t\tlet arr: any = [];\r\n\t\t\tlist.forEach(t => {\r\n\t\t\t\tif(t.repeatList.length > 1) {\r\n\t\t\t\t\tlet len = 0;\r\n\t\t\t\t\tlet diseItems = state.varianceDetail.diseItems.length ? state.varianceDetail.diseItems : state.diseNames\r\n\t\t\t\t\tt.repeatList.forEach(e => {\r\n\t\t\t\t\t\tif(diseItems.includes(e)) {\r\n\t\t\t\t\t\t\tlen++\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif(len > 1) {\r\n\t\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\t\tdiseName: t.diseName,\r\n\t\t\t\t\t\t\tsympName: t.sympName,\r\n\t\t\t\t\t\t\tisRepeat: true\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\t\tdiseName: t.diseName,\r\n\t\t\t\t\t\t\tsympName: t.sympName,\r\n\t\t\t\t\t\t\tisRepeat: false\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\tdiseName: t.diseName,\r\n\t\t\t\t\t\tsympName: t.sympName,\r\n\t\t\t\t\t\tisRepeat: false\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\treturn arr\r\n\t}\r\n\t//选择中医辨证\r\n\tconst selectSymp = (res: {\r\n data: any\r\n isMore: boolean\r\n }) => {\r\n\t\t\tif(res.isMore) {\r\n\t\t\t\tlet arr: any = renderSymp().filter(t => {\r\n\t\t\t\t\treturn res.data.includes(t.sympName) || res.data.includes(`${t.sympName}(${t.diseName})`)\r\n\t\t\t\t});\r\n\t\t\t\tstate.varianceDetail.sympItems = arr\r\n\t\t\t}else {\r\n\t\t\t\tstate.varianceDetail.sympItems = res.data\r\n\t\t\t}\r\n\t\t\t\r\n\t}\r\n\t// 获取中医辨证数组\r\n\tconst getsynDiffList = () => {\r\n\t\tconst arr: string[] = [];\r\n\t\tstate.varianceDetail.sympItems.forEach(t => {\r\n\t\t\tarr.push(t.sympName)\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\t// 渲染中医辨证标签\r\n\tconst getSympItems = () => {\r\n\t\tlet str = '';\r\n\t\tstate.varianceDetail.sympItems.forEach(t => str += `${t.sympName}(${t.diseName})、`)\r\n\t\t\r\n\r\n\t\treturn str.slice(0, str.length - 1)\r\n\t}\r\n\tconst getEffect = (data: number[]) => {\r\n\t\tstate.varianceDetail.effectType = 1\r\n\t\tstate.varianceDetail.minEffect = data[0]\r\n\t\tstate.varianceDetail.maxEffect = data[1]\r\n\t}\r\n\tconst getAge = (data: number[]) => {\r\n\t\tstate.varianceDetail.ageType = 1\r\n\t\tstate.varianceDetail.minAge = data[0]\r\n\t\tstate.varianceDetail.maxAge = data[1]\r\n\t\t\r\n\t}\r\n\t\r\n\t// 临床范围筛选\r\n\tconst filterBaseData = async (isNext = true) => {\r\n\t\tstate.currentSearch = 0\r\n\t\tgetList(true)\r\n\t\tawait updateEmrDetail()\r\n\t\t\r\n\t\tawait getDrugDatas()\r\n\t\tif(isNext) {\r\n\t\t\tstate.varianceanalysisItemName = '1'\r\n\t\t}\r\n\t\t\r\n\t\tclearAll();\r\n\t\t\r\n\t}\r\n\tconst cacheDetailData = () => {\r\n\t\tstate.beforeUpdateDetailData = JSON.parse(JSON.stringify(state.varianceDetail))\r\n\t}\r\n\tconst itemChange = (activeNames: any) => {\r\n\t}\r\n\r\n\tconst filterMergeData = (type: string) => {\r\n\t\tconst mergeData: any = {};\r\n\t\tlet arr: string[] = [];\r\n\t\tstate[type].forEach(t => {\r\n\t\t\tif(state.varianceDetail.mergeSynonym && state.varianceDetail.mergeNearSynonym) {\r\n\t\t\t\tlet fis = state[type].filter(e => {\r\n\t\t\t\t\tif((e.pron == 2 || e.pron == 3) && e.standard == t.name) {\r\n\t\t\t\t\t\tarr.push(e.name)\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tif(fis.length) {\r\n\t\t\t\t\tmergeData[t.name] = fis\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}else if(state.varianceDetail.mergeSynonym) {\r\n\t\t\t\tlet fis = state[type].filter(e => {\r\n\t\t\t\t\tif(e.pron == 2 && e.standard == t.name) {\r\n\t\t\t\t\t\tarr.push(e.name)\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tif(fis.length) {\r\n\t\t\t\t\tmergeData[t.name] = fis\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}else if(state.varianceDetail.mergeNearSynonym) {\r\n\t\t\t\tlet fis = state[type].filter(e => {\r\n\t\t\t\t\tif(e.pron == 3 && e.standard == t.name) {\r\n\t\t\t\t\t\tarr.push(e.name)\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t\tif(fis.length) {\r\n\t\t\t\t\tmergeData[t.name] = fis\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\treturn true\r\n\t\t})\r\n\t\tconst data = state[type].filter(t => !arr.includes(t.name))\r\n\t\tif(state[`${type}TabIdx`] == 1) {\r\n\t\t\tdata.sort((a: any, b: any) => {\r\n if(charCodeArr.indexOf(a.firstChar[0]?.toUpperCase()) > charCodeArr.indexOf(b.firstChar[0]?.toUpperCase())) {\r\n return 1\r\n }else if(charCodeArr.indexOf(a.firstChar[0]?.toUpperCase()) < charCodeArr.indexOf(b.firstChar[0]?.toUpperCase())) {\r\n return -1\r\n }else {\r\n return 0\r\n }\r\n })\r\n\t\t}else {\r\n\t\t\tdata.sort((a: any, b: any) => {\r\n if(a.rate > b.rate) {\r\n return -1\r\n }else if(a.rate < b.rate) {\r\n return 1\r\n }else {\r\n return 0\r\n }\r\n })\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdata : JSON.parse(JSON.stringify(data)),\r\n\t\t\tmergeData\r\n\t\t}\r\n\t}\r\n\t// 渲染症状\r\n\tconst renderMainSymptoms = () => {\r\n\t\tlet list: any = [];\r\n\t\tconst { data, mergeData} = filterMergeData('mainSymptoms');\r\n\t\t\r\n\t\tstate.mergeData.mainSymptoms = mergeData\r\n\t\tdata.forEach((t: any) => {\r\n\t\t\tlet o = JSON.parse(JSON.stringify(t))\r\n\t\t\tlet qty = o.qty,\r\n\t\t\t\trate = o.rate,\r\n\t\t\t\tlen = 1;\r\n\t\t\tif(mergeData[o.name] && mergeData[o.name].length) {\r\n\t\t\t\tmergeData[o.name].forEach((e: any) => {\r\n\t\t\t\t\tqty += e.qty;\r\n\t\t\t\t\trate += e.rate;\r\n\t\t\t\t\tlen ++\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tlist.push({\r\n\t\t\t\t...o,\r\n\t\t\t\tqty,\r\n\t\t\t\trate: rate / len < 1 ? 1 : rate / len\r\n\t\t\t});\r\n\t\t})\r\n\t\treturn list\r\n\t\t\r\n\t\t\r\n\t}\r\n\t// 渲染体征\r\n\tconst renderPhysexms = () => {\r\n\t\tlet list: any = [];\r\n\t\tconst { data, mergeData} = filterMergeData('physexms');\r\n\t\t\r\n\t\tstate.mergeData.physexms = mergeData\r\n\t\tdata.forEach(t => {\r\n\t\t\tlet o = JSON.parse(JSON.stringify(t))\r\n\t\t\tlet qty = o.qty,\r\n\t\t\t\trate = o.rate,\r\n\t\t\t\tlen = 1;\r\n\t\t\tif(mergeData[o.name]) {\r\n\t\t\t\tmergeData[o.name].forEach(e => {\r\n\t\t\t\t\tqty += e.qty;\r\n\t\t\t\t\trate += e.rate;\r\n\t\t\t\t\tlen ++\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tlist.push({\r\n\t\t\t\t...o,\r\n\t\t\t\tqty,\r\n\t\t\t\trate: rate / len < 1 ? 1 : rate / len\r\n\t\t\t});\r\n\t\t})\r\n\t\treturn list\r\n\t}\r\n\t// 选择症状+体征\r\n\tconst selectSympWord = (data: any, type: string) => {\r\n\t\tstate[type].map(t => {\r\n\t\t\tif(t.name == data.name) {\r\n\t\t\t\tt.checked = data.checked\r\n\t\t\t}\r\n\t\t\treturn t\r\n\t\t})\r\n\t\tconst arr: any = [];\r\n\t\tstate.mainSymptoms.forEach(t => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t)\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.physexms.forEach(t => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t)\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.sympGroupWord = JSON.parse(JSON.stringify(arr))\r\n\t}\r\n\t// 更新症状+体征\r\n\tconst updateSympList = (data: any, type: string) => {\r\n\t\tstate[type].map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t}\r\n\tconst updateTabSympList = (idx: number, type: string) => {\r\n\t\tstate[`${type}TabIdx`] = idx\r\n\t\t\r\n\t}\r\n\t//选择为词组\r\n\tconst groupWordKeyValue: any = {};\r\n\tconst selectToGroupWord = async (data: any) => {\r\n\t\tconst words: any = [];\r\n\t\tvar arr: string[] = [];\r\n\t\tstate.sympGroupWord.concat(state.selectSympGroupWord).forEach(t => {\r\n\t\t\tif(groupWordKeyValue[t.name]) {\r\n\t\t\t\tgroupWordKeyValue[t.name].forEach(e => {\r\n\t\t\t\t\tarr.push(e.name);\r\n\t\t\t\t})\r\n\t\t\t}else {\r\n\t\t\t\tarr.push(t.name);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\t\twords.push({\r\n\t\t\t\"wordType\": 4,\r\n\t\t\t\"words\": arr\r\n\t\t})\r\n\t\tconst percentage = await getCalculatePercentage({\r\n\t\t\tdata: {\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"drugItems\": [],\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"mainItems\": getSymptrategyItems(),\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems,\r\n\t\t\t\t\"words\": words\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.sympGroupWordList.push(...percentage)\r\n\t\tlet ketValueArr: any = [];\r\n\t\tstate.sympGroupWord.concat(state.selectSympGroupWord).forEach(t => {\r\n\t\t\tif(groupWordKeyValue[t.name]) {\r\n\t\t\t\tketValueArr.push(...groupWordKeyValue[t.name])\r\n\t\t\t}else {\r\n\t\t\t\tketValueArr.push(t)\r\n\t\t\t}\r\n\t\t})\r\n\t\tgroupWordKeyValue[percentage[0].name] = ([] as any).concat([...ketValueArr]);\r\n\t\t\r\n\t\tstate.sympGroupWord.length = 0;\r\n\t\tstate.selectSympGroupWord.length = 0\r\n\t\tclearState()\r\n\t}\r\n\t// 选择组词\r\n\tconst selectSymlGroupWord = (data: any) => {\r\n\t\tdata.checked = !data.checked;\r\n\t\t\r\n\t\tlet arr: any = [];\r\n\t\tstate.sympGroupWordList.forEach((t: any) => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t);\r\n\t\t\t}\r\n\t\t})\r\n\t\t\r\n\t\tstate.selectSympGroupWord = arr\r\n\t}\r\n\t// 删除组词项\r\n\tconst deleteGroupWordItem = (idx: number) => {\r\n\t\tselectSymlGroupWord(state.sympGroupWordList[idx])\r\n\t\t\r\n\t\tstate.sympGroupWord = state.sympGroupWord.filter(t => t.name != state.sympGroupWordList[idx].name)\r\n\t\t\r\n\t\tstate.sympGroupWordList.splice(idx, 1);\r\n\t\tlet arr: any = [];\r\n\t\tstate.sympGroupWordList.forEach((t: any) => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t);\r\n\t\t\t}\r\n\t\t})\r\n\t\t\r\n\t\tstate.selectSympGroupWord = arr\r\n\t\tstate.varianceDetail.mainItems.splice(idx, 1);\r\n\t}\r\n\t\r\n\t//是否允许存为策略\r\n\tconst canUseSaveSymp = () => {\r\n\t\t\r\n\t\treturn !(state.sympGroupWord.length || state.selectSympGroupWord.length)\r\n\t}\r\n\t// 获取策略数据\r\n\tconst getSymptrategyItems = (): string[][] => {\r\n\t\tlet arr: string[][] = [];\r\n\t\tstate.varianceDetail.mainStrategyItems.forEach(t => {\r\n\t\t\tlet list: string[] = [];\r\n\t\t\tt.forEach(e => {\r\n\t\t\t\tif(groupWordKeyValue[e]) {\r\n\t\t\t\t\tgroupWordKeyValue[e].forEach(it => {\r\n\t\t\t\t\t\tlist.push(it.name)\r\n\t\t\t\t\t})\r\n\t\t\t\t}else {\r\n\t\t\t\t\tlist.push(e)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tarr.push(list)\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\t\r\n\t//存为策略\r\n\tconst selectToSymp = () => {\r\n\t\t\r\n\t\tstate.sympGroupWord.concat(state.selectSympGroupWord).forEach(t => {\r\n\t\t\tconst arr: string[] = [];\r\n\t\t\tlet mergeList: any = []\r\n\t\t\tlet otherList: any = []\r\n\t\t\tif(groupWordKeyValue[t.name]) {\r\n\t\t\t\tlet elseArr: string[] = []\r\n\t\t\t\tgroupWordKeyValue[t.name].forEach(e => {\r\n\t\t\t\t\tif(state.mergeData.physexms[e.name] || state.mergeData.mainSymptoms[e.name]) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tlet typeList: any = [e.name];\r\n\t\t\t\t\t\tif( state.mergeData.mainSymptoms[e.name]) {\r\n\t\t\t\t\t\t\tstate.mergeData.mainSymptoms[e.name].forEach(s => {\r\n\t\t\t\t\t\t\t\ttypeList.push(s.name)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(state.mergeData.physexms[e.name]) {\r\n\t\t\t\t\t\t\tstate.mergeData.physexms[e.name].forEach(s => {\r\n\t\t\t\t\t\t\t\ttypeList.push(s.name)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmergeList.push(...typeList);\r\n\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\totherList.push(e.name)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tstate.varianceDetail.mainStrategyItems.push(mergeList.concat(otherList))\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}else {\r\n\t\t\t\tstate.varianceDetail.mainStrategyItems.push([t.name]);\r\n\t\t\t\tif(state.mergeData.mainSymptoms[t.name]) {\r\n\t\t\t\t\tstate.mergeData.mainSymptoms[t.name].forEach(e => {\r\n\t\t\t\t\t\tstate.varianceDetail.mainStrategyItems.push([e.name]);\r\n\t\t\t\t\t})\r\n\t\t\t\t} \r\n\t\t\t\tif(state.mergeData.physexms[t.name]) {\r\n\t\t\t\t\tstate.mergeData.physexms[t.name].forEach(e => {\r\n\t\t\t\t\t\tstate.varianceDetail.mainStrategyItems.push([e.name]);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\t\t\r\n\t\tclearState()\r\n\t\t\r\n\t\tstate.selectSympGroupWord = [];\r\n\t\tstate.sympGroupWord = []\r\n\r\n\t}\r\n\t//清空状态\r\n\tconst clearState = () => {\r\n\t\tstate.sympGroupWordList.map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t\tstate.mainSymptoms.map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t\tstate.physexms.map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t}\r\n\tconst clearAll = () => {\r\n\t\tclearState()\r\n\t\tstate.selectSympGroupWord = [];\r\n\t\tstate.sympGroupWord = [];\r\n\t\tstate.sympGroupWordList = [];\r\n\t\tclearDrugState();\r\n\t\tstate.drugGroupWordList = [];\r\n\t\tstate.sympDrugsWord = []\r\n\t\tstate.sympDrugsWordList = []\r\n\r\n\t}\r\n\t// collapse收起后展示的症状+体征\r\n\tconst getShowStrategyItems = data => {\r\n\t\tif(state.varianceanalysisItemName == '1') return;\r\n\t\tlet arr: string[] = [];\r\n\t\tlet list: string[][] = getSymptrategyItems();\r\n\t\tlist.forEach(t => {\r\n\t\t\tarr.push(...t)\r\n\t\t})\r\n\t\treturn arr.join('、')\r\n\t}\r\n\t// collapse收起后展示的中药\r\n\tconst getShowDrugStrategyItems = data => {\r\n\t\tif(state.varianceanalysisItemName == '2') return;\r\n\t\tlet arr: string[] = [];\r\n\t\tlet list: string[][] = getDrugtrategyItems();\r\n\t\tlist.forEach(t => {\r\n\t\t\tarr.push(...t)\r\n\t\t})\r\n\t\treturn arr.join('、')\r\n\t}\r\n\t//第二张卡片搜索时,提前缓存currentSearch的值\r\n\tlet cacheSearch = state.currentSearch;\r\n\t//筛选症状体征\r\n\tconst filterToDrug = async () => {\r\n\t\tcacheDetailData()\r\n\t\tawait getDrugDatas({\r\n\t\t\tmainItems: getSymptrategyItems()\r\n\t\t})\r\n\t\tstate.varianceanalysisItemName = '2'\r\n\t\tcacheSearch = state.currentSearch\r\n\t\tstate.currentSearch = 1\r\n\t\tgetList(true, {\r\n\t\t\tmainItems: getSymptrategyItems()\r\n\t\t})\r\n\t\tclearState()\r\n\t\tstate.selectSympGroupWord = [];\r\n\t\tstate.sympGroupWord = [];\r\n\t\tclearDrugState();\r\n\t\tstate.drugGroupWordList = [];\r\n\t\tstate.sympDrugsWord = []\r\n\t\tstate.sympDrugsWordList = []\r\n\t\tupdateEmrDetail({\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t})\r\n\t\tstate.isFiltering = true;\r\n\r\n\t}\r\n\tconst returnDetail = async () => {\r\n\r\n\t\tstate.varianceDetail.mainStrategyItems = JSON.parse(JSON.stringify(state.beforeUpdateDetailData.mainStrategyItems))\r\n\t\tstate.currentSearch = cacheSearch\r\n\t\tgetList(true, {\r\n\t\t\t\"ageType\": state.beforeUpdateDetailData.ageType,\r\n\t\t\t\"diseItems\": state.beforeUpdateDetailData.diseItems,\r\n\t\t\t\"effectType\": state.beforeUpdateDetailData.effectType,\r\n\t\t\t\"emrType\": state.beforeUpdateDetailData.emrType,\r\n\t\t\t\"endTime\": state.beforeUpdateDetailData.endTime,\r\n\t\t\t\"genderType\": state.beforeUpdateDetailData.genderType,\r\n\t\t\t\"maxAge\": state.beforeUpdateDetailData.maxAge,\r\n\t\t\t\"maxEffect\": state.beforeUpdateDetailData.maxEffect,\r\n\t\t\t\"minAge\": state.beforeUpdateDetailData.minAge,\r\n\t\t\t\"minEffect\": state.beforeUpdateDetailData.minEffect,\r\n\t\t\t\"startTime\": state.beforeUpdateDetailData.startTime,\r\n\t\t\t\"sympItems\": state.beforeUpdateDetailData.sympItems,\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t})\r\n\t\tawait updateEmrDetail({\r\n\t\t\t\"ageType\": state.beforeUpdateDetailData.ageType,\r\n\t\t\t\"diseItems\": state.beforeUpdateDetailData.diseItems,\r\n\t\t\t\"effectType\": state.beforeUpdateDetailData.effectType,\r\n\t\t\t\"emrType\": state.beforeUpdateDetailData.emrType,\r\n\t\t\t\"endTime\": state.beforeUpdateDetailData.endTime,\r\n\t\t\t\"genderType\": state.beforeUpdateDetailData.genderType,\r\n\t\t\t\"maxAge\": state.beforeUpdateDetailData.maxAge,\r\n\t\t\t\"maxEffect\": state.beforeUpdateDetailData.maxEffect,\r\n\t\t\t\"minAge\": state.beforeUpdateDetailData.minAge,\r\n\t\t\t\"minEffect\": state.beforeUpdateDetailData.minEffect,\r\n\t\t\t\"startTime\": state.beforeUpdateDetailData.startTime,\r\n\t\t\t\"sympItems\": state.beforeUpdateDetailData.sympItems,\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t})\r\n\t\t\r\n\t\tawait getDrugDatas({\r\n\t\t\t\"ageType\": state.beforeUpdateDetailData.ageType,\r\n\t\t\t\"diseItems\": state.beforeUpdateDetailData.diseItems,\r\n\t\t\t\"effectType\": state.beforeUpdateDetailData.effectType,\r\n\t\t\t\"emrType\": state.beforeUpdateDetailData.emrType,\r\n\t\t\t\"endTime\": state.beforeUpdateDetailData.endTime,\r\n\t\t\t\"genderType\": state.beforeUpdateDetailData.genderType,\r\n\t\t\t\"maxAge\": state.beforeUpdateDetailData.maxAge,\r\n\t\t\t\"maxEffect\": state.beforeUpdateDetailData.maxEffect,\r\n\t\t\t\"minAge\": state.beforeUpdateDetailData.minAge,\r\n\t\t\t\"minEffect\": state.beforeUpdateDetailData.minEffect,\r\n\t\t\t\"startTime\": state.beforeUpdateDetailData.startTime,\r\n\t\t\t\"sympItems\": state.beforeUpdateDetailData.sympItems,\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t})\r\n\t\tstate.varianceanalysisItemName = '1'\r\n\r\n\t\tclearState()\r\n\t\tclearDrugState()\r\n\r\n\t\tstate.isFiltering = false;\r\n\t}\r\n\t// 获取中药数据\r\n\tconst getDrugDatas = async (objData: any = {}) => {\r\n\t\tconst { drugs = []} = await getEmrKeyWordDrugs({\r\n\t\t\tdata: Object.assign({\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"drugItems\": [],\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"mainItems\": [],\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems\r\n\t\t\t}, objData)\r\n\t\t})\r\n\t\tstate.emrDrugs = drugs;\r\n\t}\r\n\tconst renderEmrDrugs = () => {\r\n\t\tif(state.drugTabIdx == 1) {\r\n\t\t\treturn state.emrDrugs.sort((a: any, b: any) => {\r\n\t\t\t\t\tif(charCodeArr.indexOf(a.firstChar[0]?.toUpperCase()) > charCodeArr.indexOf(b.firstChar[0]?.toUpperCase())) {\r\n\t\t\t\t\t\treturn 1\r\n\t\t\t\t\t}else if(charCodeArr.indexOf(a.firstChar[0]?.toUpperCase()) < charCodeArr.indexOf(b.firstChar[0]?.toUpperCase())) {\r\n\t\t\t\t\t\treturn -1\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\treturn 0\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t}else {\r\n\t\t\treturn state.emrDrugs.sort((a: any, b: any) => {\r\n\t\t\t\t\tif(a.rate > b.rate) {\r\n\t\t\t\t\t\treturn -1\r\n\t\t\t\t\t}else if(a.rate < b.rate) {\r\n\t\t\t\t\t\treturn 1\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\treturn 0\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t}\r\n\t}\r\n\t// 选择中药\r\n\tconst selectDrugWord = (data: any) => {\r\n\t\tstate.emrDrugs.map(t => {\r\n\t\t\tif(t.name == data.name) {\r\n\t\t\t\tt.checked = data.checked\r\n\t\t\t}\r\n\t\t\treturn t\r\n\t\t})\r\n\t\tconst arr: any = [];\r\n\t\tstate.emrDrugs.forEach(t => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t)\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.sympDrugsWord = JSON.parse(JSON.stringify(arr))\r\n\t}\r\n\t\r\n\t// 更新中药\r\n\tconst updateDrugList = (data: any) => {\r\n\t\tstate.emrDrugs = data;\r\n\t}\r\n\tconst updateDrugTabIdxList = (idx: number) => {\r\n\t\tstate.drugTabIdx = idx\r\n\t}\r\n\t//选择为中药词组\r\n\tconst groupDrugWordKeyValue: any = {};\r\n\tconst selectToDrugGroupWord = async (data: any) => {\r\n\t\tconst words: any = [];\r\n\t\tvar arr: string[] = [];\r\n\t\tstate.sympDrugsWord.concat(state.drugGroupWordList).forEach(t => {\r\n\t\t\tif(groupDrugWordKeyValue[t.name]) {\r\n\t\t\t\tgroupDrugWordKeyValue[t.name].forEach(e => {\r\n\t\t\t\t\tarr.push(e.name);\r\n\t\t\t\t})\r\n\t\t\t}else {\r\n\t\t\t\tarr.push(t.name);\r\n\t\t\t}\r\n\t\t})\r\n\t\twords.push({\r\n\t\t\t\"wordType\": 3,\r\n\t\t\t\"words\": arr\r\n\t\t})\t\t\r\n\t\t\t\t\r\n\t\tconst percentage = await getCalculatePercentage({\r\n\t\t\tdata: {\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"drugItems\": state.varianceDetail.drugStrategyItems,\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"mainItems\": getSymptrategyItems(),\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems,\r\n\t\t\t\t\"words\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\"wordType\": 3,\r\n\t\t\t\t\t\"words\": arr\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.sympDrugsWordList.push(...percentage)\r\n\t\tlet ketValueArr: any = [];\r\n\t\tstate.sympDrugsWord.concat(state.drugGroupWordList).forEach(t => {\r\n\t\t\tif(groupDrugWordKeyValue[t.name]) {\r\n\t\t\t\tketValueArr.push(...groupDrugWordKeyValue[t.name])\r\n\t\t\t}else {\r\n\t\t\t\tketValueArr.push(t)\r\n\t\t\t}\r\n\t\t})\r\n\t\tgroupDrugWordKeyValue[percentage[0].name] = ([] as any).concat([...ketValueArr]);\r\n\t\tstate.sympDrugsWord.length = 0;\r\n\t\tstate.drugGroupWordList.length = 0;\r\n\t\tclearDrugState()\r\n\t}\r\n\r\n\t// 选择中药组词\r\n\tconst selectDrugsGroupWord = (data: any) => {\r\n\t\tdata.checked = !data.checked;\r\n\t\t\r\n\t\tlet arr: any = [];\r\n\t\tstate.sympDrugsWordList.forEach((t: any) => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t);\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.drugGroupWordList = arr;\r\n\t}\r\n\t// 删除中药组词项\r\n\tconst deleteDrugGroupWordItem = (idx: number) => {\r\n\t\tselectDrugsGroupWord(state.sympDrugsWordList[idx])\r\n\t\tstate.sympDrugsWord = state.sympDrugsWord.filter(t => t.name != state.sympDrugsWordList[idx].name)\r\n\r\n\t\tstate.sympDrugsWordList.splice(idx, 1);\r\n\r\n\t\tlet arr: any = [];\r\n\t\tstate.sympDrugsWordList.forEach((t: any) => {\r\n\t\t\tif(t.checked) {\r\n\t\t\t\tarr.push(t);\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.drugGroupWordList = arr\r\n\r\n\t\tstate.varianceDetail.drugItems.splice(idx, 1);\r\n\t\t\r\n\t}\r\n\t//是否允许存为策略\r\n\tconst canUseSaveDrug = () => {\r\n\t\t\r\n\t\treturn !(state.sympDrugsWord.length || state.drugGroupWordList.length)\r\n\t}\r\n\r\n\t// 获取中药策略数据\r\n\tconst getDrugtrategyItems = (): string[][] => {\r\n\t\tlet arr: string[][] = [];\r\n\t\tstate.varianceDetail.drugStrategyItems.forEach(t => {\r\n\t\t\tlet list: string[] = [];\r\n\t\t\tt.forEach(e => {\r\n\t\t\t\tif(groupDrugWordKeyValue[e]) {\r\n\t\t\t\t\tgroupDrugWordKeyValue[e].forEach(it => {\r\n\t\t\t\t\t\tlist.push(it.name)\r\n\t\t\t\t\t})\r\n\t\t\t\t}else {\r\n\t\t\t\t\tlist.push(e)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tarr.push(list)\r\n\t\t})\r\n\t\treturn arr\r\n\t}\r\n\r\n\t//存为中药策略\r\n\tconst selectToDrugs = () => {\r\n\t\tstate.sympDrugsWord.concat(state.drugGroupWordList).forEach(t => {\r\n\t\t\tconst arr: string[] = [];\r\n\t\t\tif(groupDrugWordKeyValue[t.name]) {\r\n\t\t\t\tgroupDrugWordKeyValue[t.name].forEach(e => {\r\n\t\t\t\t\tarr.push(e.name)\r\n\t\t\t\t})\r\n\t\t\t\t\r\n\t\t\t}else {\r\n\t\t\t\tarr.push(t.name)\r\n\t\t\t}\r\n\t\t\tstate.varianceDetail.drugStrategyItems.push(arr);\r\n\t\t})\r\n\t\tclearDrugState()\r\n\t\tstate.drugGroupWordList = [];\r\n\t\tstate.sympDrugsWord = []\r\n\t}\r\n\t//清空状态\r\n\tconst clearDrugState = () => {\r\n\t\tstate.sympDrugsWordList.map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t\tstate.emrDrugs.map(t => {\r\n\t\t\tt.checked = false;\r\n\t\t\treturn t\r\n\t\t})\r\n\t}\r\n\t// 渲染中药标签\r\n\tconst renderDrugsItems = () => {\r\n\t\treturn state.emrDrugs.filter(t => t.qty >= state.varianceState.zy.min && t.qty <= state.varianceState.zy.max)\r\n\t}\r\n\t// 选择中药\r\n\tconst selectDrugs = (idx: number) => {\r\n\t\tlet index = -1;\r\n\t\tstate.varianceState.zy.selectList.forEach((t: any, i: number) => {\r\n\t\t\tif(t.name == state.emrDrugs[idx].name) {\r\n\t\t\t\tindex = i\r\n\t\t\t}\r\n\t\t})\r\n\t\tif(~index) {\r\n\t\t\tstate.varianceState.zy.selectList.splice(index, 1)\r\n\t\t}else {\r\n\t\t\tstate.varianceState.zy.selectList.push(state.emrDrugs[idx])\r\n\t\t}\r\n\t}\r\n\t\r\n\tconst filterDrugData = () => {\r\n\t\tstate.currentSearch = 2\r\n\t\tgetList(true, {\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t})\r\n\t\tgetDrugDatas({\r\n\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t})\r\n\t}\r\n\tconst back = () => {\r\n\t\temits('back')\r\n\t}\r\n\tconst getList = async (reload: boolean = false, objData: any = {}) => {\r\n\t\tif(reload) {\r\n\t\t\tstate.currentPage = 1\r\n\t\t}\r\n\t\t\r\n\t\tconst listData: {\r\n\t\t\tavgEff: number\r\n\t\t\temrData: emrListRole\r\n\t\t} = await getcustomList({\r\n\t\t\tdata: \r\n\t\t\tObject.assign({\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems,\r\n\t\t\t\t\"drugItems\": [],\r\n\t\t\t\t\"mainItems\": [],\r\n\t\t\t\t\"pageNum\": state.currentPage,\r\n\t\t\t\t\"pageSize\": state.pageSize,\r\n\t\t\t}, objData)\r\n\t\t})\r\n\t\tstate.totalPage = listData.emrData.total\r\n\t\tstate.avgEff = listData.avgEff\r\n\t\tstate.emrList = [...listData.emrData.items]\r\n\t}\r\n\tconst updateEmrDetail = async (objData: any = {}) => {\r\n\t\tstate.varianceDetail.sympItems.map((t: any) => delete t.isRepeat)\r\n\t\tconst { mainSymptoms = [], physexms = []} = await getEmrKeyWordQuery({\r\n\t\t\tdata: Object.assign({\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"mainItems\": [],\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems\r\n\t\t\t}, objData)\r\n\t\t})\r\n\r\n\t\tstate.physexms = physexms;\r\n\t\tstate.mainSymptoms = mainSymptoms;\r\n\t}\r\n\tconst getQuery = async () => {\r\n\t\tconst data = await getMainQuery()\r\n\t\tstate.diseNames = data.diseNames\r\n\t\tstate.sympNames = data.sympDatas\r\n\t\tstate.diseSympMap = data.diseSympMap\r\n\t}\r\n\r\n\r\n\t//保存策略\r\n\tconst saveVarianceanalys = async () => {\r\n\t\tconst loadingInstance = ElLoading.service()\r\n\r\n\t\tconst data = await saveVariance({\r\n\t\t\tdata: state.varianceDetail\r\n\t\t})\r\n\t\tstate.isSaveVariance = false\r\n\t\tElNotification({\r\n\t\t\ttype: 'success',\r\n\t\t\ttitle: '提示',\r\n\t\t\tmessage: '保存成功',\r\n\t\t\tposition: 'top-right',\r\n\t\t})\r\n\t\tstate.varianceDetail = Object.assign({}, state.varianceDetail, data)\r\n\r\n\t\tloadingInstance.close()\r\n\t}\r\n\r\n\tconst setTableRowData = ({\r\n\t\trow,\r\n\t\trowIndex,\r\n\t}: any) => {\r\n\t\trow.index = rowIndex;\r\n\t\trow.expand = false\r\n\t\treturn ''\r\n\t}\r\n\r\n\tconst emrListExpand = async (row: any, column: any) => {\r\n\t\t\r\n\t\t\tconst emrDetailData = await getEmrDetail({\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tid: row.id,\r\n\t\t\t\t\t_times: new Date().getTime()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tstate.emrListItemDetail[row.id] = emrDetailData;\r\n\t\t\ttable.value.toggleRowExpansion(row)\r\n\t\t\t\r\n\t\t// }\r\n\t}\r\n\tconst emrListExpandChange = async (row: any, column: any) => {\r\n\t\t\r\n\t\t\tconst emrDetailData = await getEmrDetail({\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tid: row.id,\r\n\t\t\t\t\t_times: new Date().getTime()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tstate.emrListItemDetail[row.id] = emrDetailData;\r\n\t}\r\n\r\n\tconst showTjModal = async (wordType: number = 4) => {\r\n\t\tvar arr: any = [];\r\n\t\tlet obj: any = {}\r\n\t\tvar type = wordType == 4 ? 'mainStrategyItems' : 'drugStrategyItems'\r\n\t\tstate.varianceDetail[type].forEach((t: string[]) => {\r\n\t\t\tconst list: any = [];\r\n\t\t\tt.forEach(e => {\r\n\t\t\t\tif(groupWordKeyValue[e]) {\r\n\t\t\t\t\tgroupWordKeyValue[e].forEach(it => {\r\n\t\t\t\t\t\tlist.push(it.name)\r\n\t\t\t\t\t})\r\n\t\t\t\t}else {\r\n\t\t\t\t\tlist.push(e)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif(!obj[list.join('、')] && arr.length <= 15) {\r\n\t\t\t\tarr.push({\r\n\t\t\t\t\t\"wordType\": wordType,\r\n\t\t\t\t\t\"words\": list\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tobj[list.join('、')] = true\r\n\t\t\t\r\n\t\t})\r\n\t\tif(!arr.length) return;\r\n\t\tconst percentage = await getCalculatePercentage({\r\n\t\t\tdata: {\r\n\t\t\t\t\"ageType\": state.varianceDetail.ageType,\r\n\t\t\t\t\"diseItems\": state.varianceDetail.diseItems,\r\n\t\t\t\t\"drugItems\": state.varianceDetail.drugItems,\r\n\t\t\t\t\"effectType\": state.varianceDetail.effectType,\r\n\t\t\t\t\"emrType\": state.varianceDetail.emrType,\r\n\t\t\t\t\"endTime\": state.varianceDetail.endTime,\r\n\t\t\t\t\"genderType\": state.varianceDetail.genderType,\r\n\t\t\t\t\"mainItems\": getSymptrategyItems(),\r\n\t\t\t\t\"maxAge\": state.varianceDetail.maxAge,\r\n\t\t\t\t\"maxEffect\": state.varianceDetail.maxEffect,\r\n\t\t\t\t\"minAge\": state.varianceDetail.minAge,\r\n\t\t\t\t\"minEffect\": state.varianceDetail.minEffect,\r\n\t\t\t\t\"startTime\": state.varianceDetail.startTime,\r\n\t\t\t\t\"sympItems\": state.varianceDetail.sympItems,\r\n\t\t\t\t\"words\": arr\r\n\t\t\t}\r\n\t\t})\r\n\t\tstate.tjModalData = percentage.slice(0, 15)\r\n\t\tstate.isShowTjModal = true;\r\n\t}\r\n\r\n\tconst saveVarianceDetail = () => {\r\n\t\tif(props.id) {\r\n\t\t\tsaveVarianceanalys()\r\n\t\t}else {\r\n\t\t\tstate.isSaveVariance = true\r\n\t\t}\r\n\t}\r\n\t\r\n\twatch(() => state.currentPage, val => {\r\n\t\tif(state.currentSearch == 0) {\r\n\t\t\tgetList(false)\r\n\t\t}else if(state.currentSearch == 1) {\r\n\t\t\tgetList(false, {\r\n\t\t\t\tmainItems: getSymptrategyItems()\r\n\t\t\t})\r\n\t\t}else if(state.currentSearch == 2) {\r\n\t\t\tgetList(false, {\r\n\t\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t\t})\r\n\t\t}\r\n\t\t// getList(false, {\r\n\t\t// \tmainItems: getSymptrategyItems(),\r\n\t\t// \tdrugItems: getDrugtrategyItems()\r\n\t\t// })\r\n\t\t// state.emrList = [...listData.emrData.items]\r\n\t})\r\n\r\n\tconst getVarianceDetailData = async (cb: any) => {\r\n\t\tconst detail = await getVarianceDetail({\r\n\t\t\tdata: {\r\n\t\t\t\tid: props.id\r\n\t\t\t}\r\n\t\t});\r\n\t\tstate.varianceDetail = Object.assign({}, state.varianceDetail, detail);\r\n\t\tcacheDetailData()\r\n\t\tstate.isOpenMenu = true\r\n\t\tcb()\r\n\t}\r\n\tif(props.id) {\r\n\t\tgetVarianceDetailData(() => {\r\n\t\t\tgetQuery();\r\n\t\t\tgetList(true, {\r\n\t\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t\t})\r\n\t\t\tupdateEmrDetail({\r\n\t\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\tgetDrugDatas({\r\n\t\t\t\tmainItems: getSymptrategyItems(),\r\n\t\t\t\tdrugItems: getDrugtrategyItems()\r\n\t\t\t})\r\n\t\t})\r\n\t\t\r\n\t}else {\r\n\t\tgetQuery();\r\n\t\tfilterBaseData(false)\r\n\t}\r\n\tconst vPos = {\r\n mounted: (el: any) => {\r\n nextTick(() => {\r\n let w = el.nextSibling?.offsetWidth;\r\n let wh = `${w - 16 < 0 ? 0 :(w - 16)}px`;\r\n el.style.marginLeft = wh\r\n })\r\n }\r\n\t\t// ,\r\n\t\t// update: (el: any) => {\r\n\t\t// \tconsole.log(el)\r\n\t\t// }\r\n }\r\n\r\n\r\n\r\n\tconst { \r\n\t\tisOpenMenu,\r\n\t\tavgEff,\r\n\t\tisShowTjModal,\r\n\t\tvarianceanalysisItemName,\r\n\t\tvarianceDetail, \r\n\t\tdiseNames, \r\n\t\tvarianceState, \r\n\t\tsympNames, \r\n\t\teffectValue, \r\n\t\tageValue, \r\n\t\tpageSize, \r\n\t\tcurrentPage, \r\n\t\ttotalPage, \r\n\t\temrList, \r\n\t\tphysexms,\r\n\t\temrDrugs,\r\n\t\tdrugTabIdx,\r\n\t\tsympDrugsWord,\r\n\t\tsympDrugsWordList,\r\n\t\tmainSymptoms,\r\n\t\tsympGroupWord, \r\n\t\tsympGroupWordList, \r\n\t\tselectSympGroupWord,\r\n\t\tdrugGroupWordList,\r\n\t\tisSaveVariance,\r\n\t\temrListItemDetail,\r\n\t\tsexList,\r\n\t\tbzVisible,\r\n\t\ttmplData,\r\n\t\ttjModalData,\r\n\t\tisFiltering,\r\n\t} = toRefs(state)\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_breadcrumb_item = _resolveComponent(\"el-breadcrumb-item\")!\n const _component_el_breadcrumb = _resolveComponent(\"el-breadcrumb\")!\n const _component_el_header = _resolveComponent(\"el-header\")!\n const _component_el_image = _resolveComponent(\"el-image\")!\n const _component_el_aside = _resolveComponent(\"el-aside\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_tag = _resolveComponent(\"el-tag\")!\n const _component_el_radio = _resolveComponent(\"el-radio\")!\n const _component_el_collapse_item = _resolveComponent(\"el-collapse-item\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n const _component_el_collapse = _resolveComponent(\"el-collapse\")!\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_pagination = _resolveComponent(\"el-pagination\")!\n const _component_el_footer = _resolveComponent(\"el-footer\")!\n const _component_el_main = _resolveComponent(\"el-main\")!\n const _component_el_container = _resolveComponent(\"el-container\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n\n return (_openBlock(), _createBlock(_component_el_container, { class: \"varianceanalysisModule\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_header, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_breadcrumb, { \"separator-icon\": _unref(ArrowRight) }, {\n default: _withCtx(() => [\n _createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [\n _createTextVNode(\"离散分析\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(varianceDetail).id ? '编辑分析策略-' + _unref(varianceDetail).name : '新增分析策略'), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"separator-icon\"]),\n _createElementVNode(\"span\", {\n class: \"varianceanalysisModule_back pointer\",\n onClick: back\n }, \"返回\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_container, { class: \"varianceanalysisModule_content\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_aside, { class: \"varianceanalysisModule_aside\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (isOpenMenu.value = !_unref(isOpenMenu))),\n class: _normalizeClass([\"pointer\", {active: _unref(isOpenMenu)}])\n }, [\n _createVNode(_component_el_image, {\n src: _unref(ImgUrlFix) + '/images/' + (_unref(isOpenMenu) ? 'varianceanalysisTabActive' : 'varianceanalysisTab') + '.png'\n }, null, 8, [\"src\"]),\n _hoisted_1\n ], 2)\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_el_main, { class: \"varianceanalysisModule_main\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"varianceanalysisModule_main_varianceanalysis\", {isOpen: _unref(isOpenMenu)}])\n }, [\n _createVNode(cCell, {\n class: \"varianceanalysisModule_main_varianceanalysis_title bgColor\",\n title: \"分析策略\",\n label: '检索到'+ _unref(totalPage) +'条病案'\n }, {\n tip: _withCtx(() => [\n _createVNode(_component_el_button, { onClick: saveVarianceDetail }, {\n default: _withCtx(() => [\n _createTextVNode(\"保存策略\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, { onClick: setPerModel }, {\n default: _withCtx(() => [\n _createTextVNode(\"策略建模\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_el_collapse, {\n onChange: itemChange,\n modelValue: _unref(varianceanalysisItemName),\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => (_isRef(varianceanalysisItemName) ? (varianceanalysisItemName).value = $event : null)),\n accordion: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_collapse_item, {\n title: \"病案筛选\",\n name: \"0\",\n class: _normalizeClass({isHide: _unref(varianceanalysisItemName) != '0'})\n }, _createSlots({\n default: _withCtx(() => [\n (_unref(varianceDetail).diseItems.length || _unref(varianceDetail).sympItems.length)\n ? (_openBlock(), _createBlock(_component_el_tag, {\n key: 0,\n class: \"mx-1 pointer diseSelect\",\n closable: \"\",\n type: \"info\",\n onClose: _cache[1] || (_cache[1] = ($event: any) => {_unref(varianceDetail).diseItems = [];_unref(varianceDetail).sympItems = []})\n }, {\n default: _withCtx(() => [\n (_unref(varianceDetail).diseItems.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, [\n _hoisted_13,\n _createTextVNode(_toDisplayString(_unref(varianceDetail).diseItems.join('、')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(varianceDetail).sympItems.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, [\n _hoisted_15,\n _createTextVNode(_toDisplayString(getSympItems()), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_unref(varianceDetail).diseItems.length)\n ? (_openBlock(), _createBlock(moreCheckSelect, {\n key: 1,\n onSelect: selectDise,\n title: \"中医诊断:\",\n list: renderDise()\n }, null, 8, [\"list\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(varianceDetail).sympItems[0])\n ? (_openBlock(), _createBlock(moreCheckSelect, {\n key: 2,\n onSelect: selectSymp,\n title: \"中医辨证:\",\n list: renderSymp(),\n itemRender: \"sympName\"\n }, null, 8, [\"list\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(cCell, {\n class: \"varianceanalysisModule_sex\",\n title: \"性别:\"\n }, {\n label: _withCtx(() => [\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).genderType,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(varianceDetail).genderType) = $event)),\n label: 0,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"全部\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).genderType,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(varianceDetail).genderType) = $event)),\n label: 1,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"男\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).genderType,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(varianceDetail).genderType) = $event)),\n label: 2,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"女\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, {\n class: \"varianceanalysisModule_emrType\",\n title: \"病案标签:\"\n }, {\n label: _withCtx(() => [\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).emrType,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(varianceDetail).emrType) = $event)),\n label: 0,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"全部\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).emrType,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(varianceDetail).emrType) = $event)),\n label: 1,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"精选\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).emrType,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(varianceDetail).emrType) = $event)),\n label: 2,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"存疑\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, {\n class: \"varianceanalysisModule_effectType\",\n title: \"疗效:\"\n }, {\n label: _withCtx(() => [\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).effectType,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_unref(varianceDetail).effectType) = $event)),\n label: 0,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"全部\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(cSlide, {\n onChange: getEffect,\n usePercent: true,\n min: _unref(varianceDetail).minEffect,\n max: _unref(varianceDetail).maxEffect\n }, {\n assist: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(varianceDetail).minEffect) + \"%~\" + _toDisplayString(_unref(varianceDetail).maxEffect) + \"% \", 1)\n ]),\n _: 1\n }, 8, [\"min\", \"max\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, {\n class: \"varianceanalysisModule_ageType\",\n title: \"年龄:\"\n }, {\n label: _withCtx(() => [\n _createVNode(_component_el_radio, {\n modelValue: _unref(varianceDetail).ageType,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_unref(varianceDetail).ageType) = $event)),\n label: 0,\n size: \"large\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"全部\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(cSlide, {\n onChange: getAge,\n usePercent: false,\n min: _unref(varianceDetail).minAge,\n max: _unref(varianceDetail).maxAge\n }, {\n assist: _withCtx(() => [\n _createTextVNode(\" 周岁 \")\n ]),\n _: 1\n }, 8, [\"min\", \"max\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, {\n class: \"varianceanalysisModule_dateType\",\n title: \"日期:\"\n }, {\n label: _withCtx(() => [\n _createVNode(pickerGroup, {\n useSelect: true,\n startDate: _unref(varianceDetail).startTime,\n \"onUpdate:startDate\": _cache[10] || (_cache[10] = ($event: any) => ((_unref(varianceDetail).startTime) = $event)),\n endDate: _unref(varianceDetail).endTime,\n \"onUpdate:endDate\": _cache[11] || (_cache[11] = ($event: any) => ((_unref(varianceDetail).endTime) = $event))\n }, null, 8, [\"startDate\", \"endDate\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_el_button, { onClick: filterBaseData }, {\n default: _withCtx(() => [\n _createTextVNode(\"筛选\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 2\n }, [\n (_unref(varianceanalysisItemName) != '0')\n ? {\n name: \"title\",\n fn: _withCtx(() => [\n _createVNode(cCell, { title: \"病案筛选\" }, {\n tip: _withCtx(() => [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(ArrowUpBold))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createTextVNode(\" 中医诊断: \"),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(varianceDetail).diseItems.join('、')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createTextVNode(\" 证型: \"),\n _createElementVNode(\"span\", null, _toDisplayString(getSympItems()), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createTextVNode(\" 性别: \"),\n _createElementVNode(\"span\", null, _toDisplayString(['全部', '男', '女'][_unref(varianceDetail).genderType]), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createTextVNode(\" 病案标签: \"),\n _createElementVNode(\"span\", null, _toDisplayString(['全部', '精选', '存疑'][_unref(varianceDetail).emrType]), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createTextVNode(\" 疗效: \"),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(varianceDetail).effectType === 0 ? '全部' : `${_unref(varianceDetail).minEffect}~${_unref(varianceDetail).maxEffect}%`), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createTextVNode(\" 年龄: \"),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(varianceDetail).ageType === 0 ? '全部' : `${_unref(varianceDetail).minAge}~${_unref(varianceDetail).maxAge}岁`), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createTextVNode(\" 日期: \"),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(varianceDetail).startTime ? `${_unref(varianceDetail).startTime} ~ ${_unref(varianceDetail).endTime || '至今'}` : '全部'), 1)\n ])\n ])\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"class\"]),\n _createVNode(_component_el_collapse_item, {\n title: \"临床表现分析\",\n name: \"1\",\n class: _normalizeClass({isHide: _unref(varianceanalysisItemName) != '1'})\n }, _createSlots({\n default: _withCtx(() => [\n _createVNode(cCell, { class: \"collapse_save\" }, {\n title: _withCtx(() => [\n _createVNode(_component_el_button, {\n disabled: canUseSaveSymp(),\n onClick: selectToSymp\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"选为策略\")\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n label: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(varianceDetail).mainStrategyItems, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"groupWord_item pointer\",\n key: item.join('+')\n }, [\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(item.join('+')), 1),\n _createVNode(_component_el_icon, {\n onClick: _withModifiers(($event: any) => {_unref(varianceDetail).mainStrategyItems.splice(idx, 1);}, [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(CloseBold))\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ])\n ]))\n }), 128))\n ]),\n tip: _withCtx(() => [\n (!_unref(isFiltering))\n ? (_openBlock(), _createBlock(_component_el_button, {\n key: 0,\n disabled: !_unref(varianceDetail).mainStrategyItems.length,\n onClick: filterToDrug\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"筛选\")\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n : (_openBlock(), _createBlock(_component_el_button, {\n key: 1,\n onClick: returnDetail\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"撤销筛选\")\n ]),\n _: 1\n })),\n _createVNode(_component_el_icon, {\n class: _normalizeClass({active: getSymptrategyItems().length}),\n onClick: _cache[12] || (_cache[12] = ($event: any) => (showTjModal(4)))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(Histogram))\n ]),\n _: 1\n }, 8, [\"class\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, { class: \"collapse_saveGroup\" }, {\n title: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: selectToGroupWord,\n disabled: _unref(sympGroupWord).concat(_unref(selectSympGroupWord)).length < 2\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"选为组词\")\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n label: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sympGroupWordList), (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"groupWord_item pointer\",\n onClick: ($event: any) => (selectSymlGroupWord(item)),\n key: item.name\n }, [\n _createElementVNode(\"div\", _hoisted_21, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"span\", null, _toDisplayString(item.rate.toFixed(1)) + \"% \", 1),\n _createTextVNode(\" / \"),\n _createElementVNode(\"span\", null, _toDisplayString(item.qty), 1)\n ])), [\n [vPos]\n ]),\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(item.name), 1),\n _createVNode(_component_el_icon, {\n onClick: _withModifiers(($event: any) => (deleteGroupWordItem(idx)), [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(CloseBold))\n ]),\n _: 2\n }, 1032, [\"onClick\"]),\n (item.checked)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(Check))\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 8, _hoisted_20))\n }), 128))\n ]),\n _: 1\n }),\n _createVNode(cCell, { class: \"collapse_merge\" }, {\n title: _withCtx(() => [\n _hoisted_24\n ]),\n label: _withCtx(() => [\n _createVNode(_component_el_checkbox, {\n modelValue: _unref(varianceDetail).mergeSynonym,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_unref(varianceDetail).mergeSynonym) = $event)),\n label: _unref(varianceDetail).mergeSynonym\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"同义\")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\"]),\n _createVNode(_component_el_checkbox, {\n modelValue: _unref(varianceDetail).mergeNearSynonym,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_unref(varianceDetail).mergeNearSynonym) = $event)),\n label: _unref(varianceDetail).mergeNearSynonym\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"近义\")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_25, [\n (_unref(varianceanalysisItemName) == '1')\n ? (_openBlock(), _createBlock(varanceGroupWord, {\n key: 0,\n onSelectItem: _cache[15] || (_cache[15] = ($event: any) => (selectSympWord($event, 'mainSymptoms'))),\n onTabSelect: _cache[16] || (_cache[16] = ($event: any) => (updateTabSympList($event, 'mainSymptoms'))),\n reLoad: _unref(sympGroupWord).length,\n onUpdateList: _cache[17] || (_cache[17] = ($event: any) => (updateSympList($event, 'mainSymptoms'))),\n title: \"临床表现\",\n list: renderMainSymptoms()\n }, null, 8, [\"reLoad\", \"list\"]))\n : _createCommentVNode(\"\", true),\n (_unref(varianceanalysisItemName) == '1')\n ? (_openBlock(), _createBlock(varanceGroupWord, {\n key: 1,\n onSelectItem: _cache[18] || (_cache[18] = ($event: any) => (selectSympWord($event, 'physexms'))),\n onTabSelect: _cache[19] || (_cache[19] = ($event: any) => (updateTabSympList($event, 'physexms'))),\n reLoad: _unref(sympGroupWord).length,\n onUpdateList: _cache[20] || (_cache[20] = ($event: any) => (updateSympList($event, 'physexms'))),\n title: \"舌脉象\",\n list: renderPhysexms()\n }, null, 8, [\"reLoad\", \"list\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 2\n }, [\n (_unref(varianceanalysisItemName) != '1')\n ? {\n name: \"title\",\n fn: _withCtx(() => [\n _createVNode(cCell, { title: \"临床表现分析\" }, {\n tip: _withCtx(() => [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(ArrowUpBold))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createTextVNode(\" 选为策略: \"),\n _createElementVNode(\"span\", null, _toDisplayString(getShowStrategyItems(_unref(varianceDetail).mainStrategyItems)), 1)\n ])\n ])\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"class\"]),\n _createVNode(_component_el_collapse_item, {\n class: _normalizeClass([\"drug\", {isHide: _unref(varianceanalysisItemName) != '2'}]),\n title: \"中药分析\",\n name: \"2\"\n }, _createSlots({\n default: _withCtx(() => [\n _createVNode(cCell, { class: \"collapse_save\" }, {\n title: _withCtx(() => [\n _createVNode(_component_el_button, {\n disabled: canUseSaveDrug(),\n onClick: selectToDrugs\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"选为策略\")\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n label: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(varianceDetail).drugStrategyItems, (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"groupWord_item pointer\",\n key: item.join('+')\n }, [\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(item.join('+')), 1),\n _createVNode(_component_el_icon, {\n onClick: _withModifiers(($event: any) => {_unref(varianceDetail).drugStrategyItems.splice(idx, 1);}, [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(CloseBold))\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ])\n ]))\n }), 128))\n ]),\n tip: _withCtx(() => [\n _createVNode(_component_el_button, {\n disabled: !_unref(varianceDetail).drugStrategyItems.length,\n onClick: filterDrugData\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"筛选\")\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_el_icon, {\n class: _normalizeClass({active: getDrugtrategyItems().length}),\n onClick: _cache[21] || (_cache[21] = ($event: any) => (showTjModal(3)))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(Histogram))\n ]),\n _: 1\n }, 8, [\"class\"])\n ]),\n _: 1\n }),\n _createVNode(cCell, { class: \"collapse_saveGroup\" }, {\n title: _withCtx(() => [\n _createVNode(_component_el_button, {\n onClick: selectToDrugGroupWord,\n disabled: _unref(sympDrugsWord).concat(_unref(drugGroupWordList)).length < 2\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"选为组词\")\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n label: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sympDrugsWordList), (item, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"groupWord_item pointer\",\n onClick: ($event: any) => (selectDrugsGroupWord(item)),\n key: item.name\n }, [\n _createElementVNode(\"div\", _hoisted_30, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_31, [\n _createElementVNode(\"span\", null, _toDisplayString(item.rate.toFixed(1)) + \"% \", 1),\n _createTextVNode(\" / \"),\n _createElementVNode(\"span\", null, _toDisplayString(item.qty), 1)\n ])), [\n [vPos]\n ]),\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(item.name), 1),\n _createVNode(_component_el_icon, {\n onClick: _withModifiers(($event: any) => (deleteDrugGroupWordItem(idx)), [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(CloseBold))\n ]),\n _: 2\n }, 1032, [\"onClick\"]),\n (item.checked)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_32, [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(Check))\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 8, _hoisted_29))\n }), 128))\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_33, [\n (_unref(varianceanalysisItemName) == '2')\n ? (_openBlock(), _createBlock(varanceGroupWord, {\n key: 0,\n onSelectItem: selectDrugWord,\n reLoad: _unref(sympDrugsWord).length,\n onUpdateList: updateDrugList,\n title: \"\",\n onTabSelect: updateDrugTabIdxList,\n list: renderEmrDrugs()\n }, null, 8, [\"reLoad\", \"list\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 2\n }, [\n (_unref(varianceanalysisItemName) != '2')\n ? {\n name: \"title\",\n fn: _withCtx(() => [\n _createVNode(cCell, { title: \"中药分析\" }, {\n tip: _withCtx(() => [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_unref(ArrowUpBold))\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n _createTextVNode(\" 选为策略: \"),\n _createElementVNode(\"span\", null, _toDisplayString(getShowDrugStrategyItems(_unref(varianceDetail).drugStrategyItems)), 1)\n ])\n ])\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"class\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ], 2),\n _createElementVNode(\"div\", _hoisted_34, [\n _createVNode(cCell, {\n title: '检索到'+ _unref(totalPage) +'条病案',\n tip: '平均疗效指数:'+ _unref(avgEff) +'%'\n }, null, 8, [\"title\", \"tip\"])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createVNode(_component_el_table, {\n ref_key: \"table\",\n ref: table,\n \"row-class-name\": setTableRowData,\n onRowClick: emrListExpand,\n onExpandChange: emrListExpandChange,\n height: \"100%\",\n data: _unref(emrList)\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_table_column, {\n type: \"index\",\n label: \"序号\",\n width: \"60\"\n }),\n _createVNode(_component_el_table_column, { label: \"中医诊断\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.diseName), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"中医辨证\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.sympName), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"患者\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.mdtrtNo) + \" \" + _toDisplayString(row.remark ? `(${row.remark})` : ''), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"年龄\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.age), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"性别\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(sexList)[row.gend]), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"疗效指数\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.curEff == -1 ? '--' : (row.curEff + '%')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"就诊时间\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.mdtrtDate), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { label: \"病案标签\" }, {\n default: _withCtx(({row}) => [\n _createElementVNode(\"span\", null, _toDisplayString(row.emrType == 0 ? '精选' : (row.emrType == 1 ? '存疑' : '--')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_el_table_column, { type: \"expand\" }, {\n default: _withCtx(({ row }) => [\n (!!_unref(emrListItemDetail)[row.id])\n ? (_openBlock(), _createBlock(_unref(emrDetailList), {\n key: 0,\n emrData: _unref(emrListItemDetail)[row.id]\n }, null, 8, [\"emrData\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"data\"])\n ]),\n _createVNode(_component_el_footer, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_pagination, {\n background: \"\",\n layout: \"prev, pager, next, jumper\",\n \"prev-text\": \"上一页\",\n \"next-text\": \"下一页\",\n total: _unref(totalPage),\n \"page-size\": _unref(pageSize),\n \"onUpdate:page-size\": _cache[23] || (_cache[23] = ($event: any) => (_isRef(pageSize) ? (pageSize).value = $event : null)),\n \"current-page\": _unref(currentPage),\n \"onUpdate:current-page\": _cache[24] || (_cache[24] = ($event: any) => (_isRef(currentPage) ? (currentPage).value = $event : null))\n }, null, 8, [\"total\", \"page-size\", \"current-page\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_el_dialog, {\n modelValue: _unref(isSaveVariance),\n \"onUpdate:modelValue\": _cache[26] || (_cache[26] = ($event: any) => (_isRef(isSaveVariance) ? (isSaveVariance).value = $event : null)),\n title: \"保存分析策略\",\n width: \"500px\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_36, [\n _createVNode(cCell, { title: \"分析策略名称\" }, {\n label: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(varianceDetail).name,\n \"onUpdate:modelValue\": _cache[25] || (_cache[25] = ($event: any) => ((_unref(varianceDetail).name) = $event)),\n placeholder: \"请输入\",\n maxlength: \"30\",\n clearable: true\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_37, [\n _createVNode(_component_el_button, {\n type: \"success\",\n onClick: saveVarianceanalys\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"确定\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createVNode(tjModal, {\n list: _unref(tjModalData),\n visiable: _unref(isShowTjModal),\n \"onUpdate:visiable\": _cache[27] || (_cache[27] = ($event: any) => (_isRef(isShowTjModal) ? (isShowTjModal).value = $event : null))\n }, null, 8, [\"list\", \"visiable\"]),\n _createVNode(gemodel, {\n dxNameArr: _unref(varianceDetail).diseItems,\n synDiffArr: getsynDiffList(),\n dialogVisible: _unref(bzVisible),\n \"onUpdate:dialogVisible\": _cache[28] || (_cache[28] = ($event: any) => (_isRef(bzVisible) ? (bzVisible).value = $event : null)),\n tmpl: _unref(tmplData),\n onOnConfirm: bzOnConfirm\n }, null, 8, [\"dxNameArr\", \"synDiffArr\", \"dialogVisible\", \"tmpl\"])\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./varianceanalysisModule.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./varianceanalysisModule.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./varianceanalysisModule.vue?vue&type=style&index=0&id=98763f1a&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-98763f1a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1e9a635a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"varianceanalysis\" }\n\nimport { defineComponent, reactive, ref, toRefs, watch } from 'vue';\r\n\r\nimport mainAnalysis from './mainAnalysis/mainAnalysis.vue'\r\nimport varianceModule from './varianceanalysisModule/varianceanalysisModule'\r\nimport { stateRole } from './role'\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'varianceanalysis',\n setup(__props) {\n\r\n\r\nconst state: stateRole = reactive({\r\n showModule: false,\r\n celueId:'',\r\n})\r\nconst addcelue = (id:any) => {\r\n state.celueId = id\r\n state.showModule = true\r\n}\r\n\r\n\r\nconst { showModule, celueId } = toRefs(state)\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(showModule))\n ? (_openBlock(), _createBlock(mainAnalysis, {\n key: 0,\n onAddcelue: addcelue\n }))\n : (_openBlock(), _createBlock(_unref(varianceModule), {\n key: 1,\n id: _unref(celueId),\n onBack: _cache[0] || (_cache[0] = ($event: any) => (showModule.value = false))\n }, null, 8, [\"id\"]))\n ]))\n}\n}\n\n})","import script from \"./varianceanalysis.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./varianceanalysis.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./varianceanalysis.vue?vue&type=style&index=0&id=1e9a635a&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1e9a635a\"]])\n\nexport default __exports__","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!./moreCheckSelect.vue?vue&type=style&index=0&id=7ce742c4&lang=scss&scoped=true\"","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!./varanceGroupWord.vue?vue&type=style&index=0&id=33492c53&lang=scss&scoped=true\"","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDirective as _resolveDirective } from \"vue\"\n\nconst _hoisted_1 = { class: \"effcollDiaBox\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", null, \"问卷格式:系统根据病历书写生成的问题+ 医生新增的临床表现生成的问题+自定义问题,例如:\", -1)\nconst _hoisted_3 = { class: \"example\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createTextVNode(\" 病历书写: \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"green\" }, \"咳嗽3日,咳痰伴随胸闷\")\n], -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", null, \"问卷内容如下:\", -1)\nconst _hoisted_6 = { class: \"item\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fontWeight\" }, \"1.请问问诊后至今服用中药情况?\", -1)\nconst _hoisted_8 = { class: \"answers\" }\nconst _hoisted_9 = { class: \"answers-item\" }\nconst _hoisted_10 = { class: \"answers-item\" }\nconst _hoisted_11 = { class: \"answers-item\" }\nconst _hoisted_12 = { class: \"item\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fontWeight\" }, \"2.请问您的咳嗽是否好转?\", -1)\nconst _hoisted_14 = { class: \"answers\" }\nconst _hoisted_15 = { class: \"answers-item\" }\nconst _hoisted_16 = { class: \"answers-item\" }\nconst _hoisted_17 = { class: \"answers-item\" }\nconst _hoisted_18 = { class: \"answers-item\" }\nconst _hoisted_19 = { class: \"item\" }\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fontWeight\" }, \"3.请问您的咳痰是否好转?\", -1)\nconst _hoisted_21 = { class: \"answers\" }\nconst _hoisted_22 = { class: \"answers-item\" }\nconst _hoisted_23 = { class: \"answers-item\" }\nconst _hoisted_24 = { class: \"answers-item\" }\nconst _hoisted_25 = { class: \"answers-item\" }\nconst _hoisted_26 = { class: \"item\" }\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fontWeight\" }, \"4.请问您的胸闷是否好转?\", -1)\nconst _hoisted_28 = { class: \"answers\" }\nconst _hoisted_29 = { class: \"answers-item\" }\nconst _hoisted_30 = { class: \"answers-item\" }\nconst _hoisted_31 = { class: \"answers-item\" }\nconst _hoisted_32 = { class: \"answers-item\" }\nconst _hoisted_33 = { class: \"imgbox\" }\nconst _hoisted_34 = /*#__PURE__*/_createElementVNode(\"div\", { style: {\"margin-bottom\":\"10px\"} }, \"移动端效果\", -1)\nconst _hoisted_35 = [\"src\"]\nconst _hoisted_36 = { class: \"effcollBox\" }\nconst _hoisted_37 = { class: \"effcollBox-top\" }\nconst _hoisted_38 = /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"title\" }, \"新增问题:\"),\n /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"content\",\n style: {\"color\":\"#ccc\"}\n }, \" (新增问题答卷不纳入疗效指数) \")\n], -1)\nconst _hoisted_39 = { class: \"topicCounter\" }\nconst _hoisted_40 = { class: \"topicContentBox\" }\nconst _hoisted_41 = { class: \"topicContent\" }\nconst _hoisted_42 = { class: \"effcollNameBox\" }\nconst _hoisted_43 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"title\" }, \"题目名称:\", -1)\nconst _hoisted_44 = { class: \"content\" }\nconst _hoisted_45 = { class: \"effcollNameBox\" }\nconst _hoisted_46 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, \"题目类型:\", -1)\nconst _hoisted_47 = { class: \"content\" }\nconst _hoisted_48 = { class: \"optionBox\" }\nconst _hoisted_49 = { class: \"optionText lineheight32\" }\nconst _hoisted_50 = { class: \"optioncontent\" }\nconst _hoisted_51 = {\n key: 0,\n class: \"lineheight32 delIcon\"\n}\nconst _hoisted_52 = { class: \"btnBox\" }\nconst _hoisted_53 = { class: \"deleteBox\" }\nconst _hoisted_54 = { class: \"dialog-footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_el_radio = _resolveComponent(\"el-radio\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_empty = _resolveComponent(\"empty\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_delete = _resolveComponent(\"delete\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_popconfirm = _resolveComponent(\"el-popconfirm\")!\n const _component_CloseBold = _resolveComponent(\"CloseBold\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _directive_loading = _resolveDirective(\"loading\")!\n\n return (_openBlock(), _createBlock(_component_el_dialog, {\n modelValue: _ctx.dialogVisible2,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.dialogVisible2) = $event)),\n title: \"随访问卷\",\n width: \"70%\",\n onClose: _ctx.onClose,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false,\n top: \"30px\",\n \"custom-class\": \"effcoll\",\n \"append-to-body\": \"\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_54, [\n _createVNode(_component_el_button, { onClick: _ctx.onClose }, {\n default: _withCtx(() => [\n _createTextVNode(\"取消\")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _withDirectives(_createVNode(_component_el_button, {\n type: \"success\",\n onClick: _ctx.onConfirm,\n loading: _ctx.loading\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"保存\")\n ]),\n _: 1\n }, 8, [\"onClick\", \"loading\"]), [\n [_vShow, !_ctx.isLock]\n ])\n ])\n ]),\n default: _withCtx(() => [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", null, [\n _hoisted_4,\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio1,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.radio1) = $event)),\n disabled: \"\",\n label: \"完全按照医嘱服用\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"完全按照医嘱服用\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_10, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio1,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.radio1) = $event)),\n disabled: \"\",\n label: \"部分按照医嘱服用\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"部分按照医嘱服用\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_11, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio1,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.radio1) = $event)),\n disabled: \"\",\n label: \"未服用\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"未服用\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio2,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.radio2) = $event)),\n disabled: \"\",\n label: \"好多了\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好多了\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_16, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio2,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.radio2) = $event)),\n disabled: \"\",\n label: \"好了些\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好了些\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_17, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio2,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.radio2) = $event)),\n disabled: \"\",\n label: \"未见效\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"未见效\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_18, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio2,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.radio2) = $event)),\n disabled: \"\",\n label: \"加重\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"加重\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _hoisted_20,\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio3,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.radio3) = $event)),\n disabled: \"\",\n label: \"好多了\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好多了\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_23, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio3,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.radio3) = $event)),\n disabled: \"\",\n label: \"好了些\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好了些\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_24, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio3,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.radio3) = $event)),\n disabled: \"\",\n label: \"未见效\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"未见效\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_25, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio3,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.radio3) = $event)),\n disabled: \"\",\n label: \"加重\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"加重\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _hoisted_27,\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"span\", _hoisted_29, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio4,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.radio4) = $event)),\n disabled: \"\",\n label: \"好多了\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好多了\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_30, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio4,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.radio4) = $event)),\n disabled: \"\",\n label: \"好了些\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"好了些\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_31, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio4,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.radio4) = $event)),\n disabled: \"\",\n label: \"未见效\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"未见效\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"span\", _hoisted_32, [\n _createVNode(_component_el_radio, {\n modelValue: _ctx.radio4,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.radio4) = $event)),\n disabled: \"\",\n label: \"加重\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"加重\")\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_33, [\n _hoisted_34,\n _createElementVNode(\"img\", {\n src: _ctx.ImgUrlFix + '/images/sellphone.png'\n }, null, 8, _hoisted_35)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"div\", _hoisted_37, [\n _hoisted_38,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_el_button, {\n type: \"success\",\n onClick: _ctx.addTopicHandle,\n disabled: _ctx.isLock\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"新增题目\")\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ])\n ]),\n _withDirectives(_createVNode(_component_empty, null, {\n default: _withCtx(() => [\n _createTextVNode(\" 暂无问卷 \")\n ]),\n _: 1\n }, 512), [\n [_vShow, _ctx.effcollList.length === 0]\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.effcollList, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"topicItem\"\n }, [\n _createElementVNode(\"div\", _hoisted_39, _toDisplayString((index + 1)), 1),\n _createElementVNode(\"div\", _hoisted_40, [\n _createElementVNode(\"div\", _hoisted_41, [\n _createElementVNode(\"div\", _hoisted_42, [\n _hoisted_43,\n _createElementVNode(\"span\", _hoisted_44, [\n _createVNode(_component_el_input, {\n modelValue: item.name,\n \"onUpdate:modelValue\": ($event: any) => ((item.name) = $event),\n modelModifiers: { trim: true },\n placeholder: \"请输入题目名称,不超过50个字符\",\n maxlength: \"50\",\n disabled: _ctx.isLock\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_45, [\n _hoisted_46,\n _createElementVNode(\"div\", _hoisted_47, [\n _createVNode(_component_el_select, {\n modelValue: item.type,\n \"onUpdate:modelValue\": ($event: any) => ((item.type) = $event),\n class: \"m-2\",\n placeholder: \"请选择\",\n disabled: _ctx.isLock\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.effcollType, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.value\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_48, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.option, (option, idx) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"optionItemBox\",\n key: index + idx\n }, [\n _createElementVNode(\"div\", _hoisted_49, \"选项\" + _toDisplayString(_ctx.ALPHA[idx]), 1),\n _createElementVNode(\"div\", _hoisted_50, [\n _createVNode(_component_el_input, {\n modelValue: option.content,\n \"onUpdate:modelValue\": ($event: any) => ((option.content) = $event),\n modelModifiers: { trim: true },\n placeholder: \"请输入选项内容,不超过50个字符\",\n maxlength: \"50\",\n disabled: _ctx.isLock\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\"])\n ]),\n (idx > 1 && !_ctx.isLock)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_51, [\n _createVNode(_component_el_popconfirm, {\n title: \"是否删除该选项?\",\n onConfirm: ($event: any) => (_ctx.removeEffcollOption(index, idx))\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_component_delete)\n ]),\n _: 1\n })\n ]),\n _: 2\n }, 1032, [\"onConfirm\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128)),\n _withDirectives(_createElementVNode(\"div\", _hoisted_52, [\n _withDirectives(_createVNode(_component_el_button, {\n type: \"success\",\n onClick: ($event: any) => (_ctx.addEffcollOptionHandle(index))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"添加选项\")\n ]),\n _: 2\n }, 1032, [\"onClick\"]), [\n [_vShow, !_ctx.isLock]\n ])\n ], 512), [\n [_vShow, item.option.length < 26]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_53, [\n _withDirectives(_createElementVNode(\"span\", null, [\n _createVNode(_component_el_popconfirm, {\n title: \"是否删除该问题?\",\n onConfirm: ($event: any) => (_ctx.deleteTopicHandle(index))\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_component_CloseBold)\n ]),\n _: 1\n })\n ]),\n _: 2\n }, 1032, [\"onConfirm\"])\n ], 512), [\n [_vShow, !_ctx.isLock]\n ])\n ])\n ])\n ]))\n }), 128))\n ])\n ])), [\n [_directive_loading, _ctx.loading]\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onClose\"]))\n}","\r\nclass Label{\r\n id:string //主键\r\n content:string //标签内容\r\n\r\n constructor(){\r\n this.content = ''\r\n this.id= ''\r\n }\r\n}\r\n\r\nexport class EffcollOption{\r\n content: string //选项内容\r\n id: string //主键\r\n score: number //评分\r\n serialNum: number //排序号\r\n topicId: string //题目ID\r\n \r\n constructor(){\r\n this.content = ''\r\n this.id = ''\r\n this.score = 0\r\n this.serialNum = 0\r\n this.topicId = ''\r\n }\r\n}\r\n\r\nexport class Effcoll {\r\n enabled: boolean //使用状态\r\n id: string //主键\r\n name: string //题目名称\r\n required: boolean //是否必填\r\n respondent: string //答题对象\r\n sort:number\r\n type: number //题目类型,0:单选,1:多选,2:填空,3:选星\r\n useCat: string //题目用途\r\n \r\n \r\n \r\n label:Label[] //标签\r\n option: EffcollOption[] //题目选项\r\n\r\n constructor(param? :Effcoll ){\r\n if(param){\r\n this.enabled = param.enabled\r\n this.id = param.id\r\n this.label = param.label\r\n this.name = param.name\r\n this.option = param.option\r\n this.required = param.required\r\n this.respondent = param.respondent\r\n this.type = param.type\r\n this.useCat = param.useCat\r\n this.sort = param.sort\r\n }else{\r\n this.enabled = true\r\n this.id = ''\r\n this.label = []\r\n this.name = ''\r\n this.option = [ new EffcollOption(), new EffcollOption() ]\r\n this.required = true\r\n this.respondent = '患者'\r\n this.type = 0\r\n this.useCat = '评价疗效'\r\n this.sort = 0\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n// export class TopicOption{\r\n// content: string = '' //选项内容\r\n// id: string = '' //问题ID \r\n// serialNum: number = 0 //排序号\r\n// }\r\n\r\n// //新的问卷类型\r\n// export class Topic{\r\n// id: string = '' //题目ID \r\n// name: string = ''\r\n// sort: number = 0 //题目排序 ,\r\n// type: number = 0 //题目类型。0:单选,1:多选,2:填空,3:选星\r\n// option:TopicOption[] = [] //选项 ,\r\n\r\n// constructor(){\r\n// this.option.push(new TopicOption())\r\n// this.option.push(new TopicOption())\r\n// }\r\n// }\r\n","\r\nimport { defineComponent, reactive, ref, toRefs, watch } from 'vue';\r\n\r\nimport { ElMessageBox, ElNotification, ElMessage } from 'element-plus'\r\nimport { Delete, CloseBold } from '@element-plus/icons-vue'\r\n\r\nimport { getTocpic, saveTocpic, deleteTocpic } from '@r/api/effcoll'\r\nimport { getTopicList, saveTopicList } from '@r/api/xingling'\r\nimport { Effcoll, EffcollOption } from '@u/class/effcoll'\r\nimport { effcollType, ALPHA, ImgUrlFix } from '@u/contant'\r\nimport Brain_bak from '@/components/public/brain/brain_bak.vue';\r\nimport empty from '@c/public/empty/empty.vue'\r\n\r\nexport default defineComponent({\r\n name: \"effcoll\",\r\n emits: {\r\n 'update:dialogVisible': null,\r\n },\r\n components: {\r\n Delete, CloseBold,empty,\r\n },\r\n props: {\r\n dialogVisible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n dialecticalID: {\r\n type: String,\r\n default: ''\r\n },\r\n isLock: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const { dialogVisible, isLock } = toRefs(props)\r\n const dialogVisible2 = ref(dialogVisible.value)\r\n const loading = ref(false)\r\n const effcollList = reactive([])\r\n\r\n const radio1 = ref('完全按照医嘱服用')\r\n const radio2 = ref('好多了')\r\n const radio3 = ref('好了些')\r\n const radio4 = ref('好了些')\r\n\r\n //关闭本弹窗\r\n const onClose = () => {\r\n emit('update:dialogVisible', false)\r\n // dialogVisible2.value = false\r\n }\r\n\r\n //增加问题\r\n const addTopicHandle = () => {\r\n if (effcollList.length < 10) {\r\n const tem = new Effcoll()\r\n effcollList.push(tem)\r\n } else {\r\n ElMessage('只可以有10道问题')\r\n }\r\n }\r\n\r\n //删除问题\r\n const deleteTopicHandle = (index: number) => {\r\n effcollList.splice(index, 1)\r\n }\r\n\r\n // 增加选项\r\n const addEffcollOptionHandle = (index: number) => {\r\n const option = new EffcollOption()\r\n effcollList[index].option.push(option)\r\n }\r\n\r\n // 删除选项\r\n const removeEffcollOption = (index: number, idx: number) => {\r\n effcollList[index].option.splice(idx, 1)\r\n }\r\n\r\n // 保存问卷\r\n const onConfirm = () => {\r\n const re:Effcoll[] = JSON.parse(JSON.stringify(effcollList))\r\n\r\n let flag = false;\r\n let str = ''\r\n\r\n for(let i=0; i< re.length; i++){\r\n const item:Effcoll = re[i]\r\n\r\n item.option.forEach((option)=>{\r\n if(option.content.trim() === ''){\r\n flag = true\r\n str = `第${i+1}个问题,请补充完选项内容,或删除空选项`\r\n }\r\n })\r\n\r\n if(item.name.trim() === ''){\r\n flag = true\r\n str = `第${i+1}个问题,请补充完题目标题,或删除该题目`\r\n }\r\n\r\n if(flag){\r\n break;\r\n }\r\n }\r\n\r\n if(flag){\r\n ElNotification({\r\n title: '提示',\r\n message: str,\r\n position: 'top-right',\r\n type: 'warning',\r\n duration: 3000,\r\n })\r\n return\r\n }\r\n\r\n re.map((item:Effcoll, index:number)=>{\r\n item.sort = index + 1\r\n\r\n item.option.map((item: EffcollOption, idx:number)=>{\r\n item.serialNum = idx + 1\r\n })\r\n\r\n })\r\n\r\n\r\n\r\n\r\n loading.value = true\r\n saveTopicList({\r\n data:{\r\n topicListId:props.dialecticalID,\r\n topicList:re\r\n }\r\n }).then((data:any)=>{\r\n ElNotification({\r\n title: '提示',\r\n message: '保存成功',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'success',\r\n })\r\n loading.value = false\r\n emit('update:dialogVisible', false)\r\n dialogVisible2.value = false\r\n }).catch((data:any) => {\r\n ElNotification({\r\n title: '提示',\r\n message: '保存失败,请稍后再试',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'error',\r\n })\r\n loading.value = false\r\n })\r\n }\r\n\r\n watch(() => props.dialogVisible, async (val) => {\r\n dialogVisible2.value = val\r\n if (dialogVisible2.value) {\r\n\r\n loading.value = true\r\n getTopicList({\r\n data: {\r\n topicListId: props.dialecticalID,\r\n _times: new Date().getTime()\r\n }\r\n }).then((re: any) => {\r\n loading.value = false\r\n effcollList.splice(0, effcollList.length, ...re.topicList)\r\n }).catch((re: any) => {\r\n loading.value = false\r\n effcollList.splice(0, effcollList.length)\r\n ElNotification({\r\n title: '提示',\r\n message: '获取问卷失败,请稍后再试',\r\n position: 'top-right',\r\n duration: 3000,\r\n type: 'error',\r\n })\r\n })\r\n }\r\n })\r\n\r\n\r\n return {\r\n dialogVisible2,\r\n isLock,\r\n loading,\r\n effcollList,\r\n effcollType,\r\n ALPHA,\r\n ImgUrlFix,\r\n radio1,radio2,radio3,radio4,\r\n onClose,\r\n onConfirm,\r\n addTopicHandle, deleteTopicHandle,\r\n addEffcollOptionHandle,\r\n removeEffcollOption,\r\n\r\n }\r\n },\r\n})\r\n","import { render } from \"./effcoll.vue?vue&type=template&id=29763974&ts=true\"\nimport script from \"./effcoll.vue?vue&type=script&lang=ts\"\nexport * from \"./effcoll.vue?vue&type=script&lang=ts\"\n\nimport \"./effcoll.vue?vue&type=style&index=0&id=29763974&lang=scss\"\n\nimport exportComponent from \"D:\\\\公司项目\\\\T-CAS\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Delete\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar _delete = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { _delete as default };\n","export class SynDiffDrug{\r\n drugId: string = '' //药品id\r\n drugName: string = '' //药品名称\r\n fjbDrugId:string = '' //方剂宝药品id\r\n fjbDrugName:string = '' //方剂宝药品名称\r\n aliasName:string = '' //药品别名\r\n unit:string = '' //药品单位\r\n specs: string = '' //规格\r\n qty: number = 0 //用量\r\n direction: string = '' //用法\r\n remark: string = '' //注意事项\r\n checkRemind:number = 0 //用药安全检查\r\n factory:string = '' // 厂家\r\n id:string = '' //后端有用,前端目前没用上\r\n drugType:number = 0 // 药品类型\r\n \r\n //前端需要用到,另外增加的属性\r\n drugState?: number // 加药,减药,改药\r\n bingzongIndex?:Number // 病种弹窗的位置\r\n pharmacology?:string //性味归经\r\n major?:string //功效主治\r\n cdyl?:Boolean //超大用量\r\n sbf?:Boolean //18反\r\n sjw?:Boolean //19畏\r\n sbfDrug?:SynDiffDrug|null|SynDiffDrug[] //18反药\r\n sjwDrug?:SynDiffDrug|null|SynDiffDrug[] //19畏药\r\n taboo?:Number //禁忌情况\r\n}"],"sourceRoot":""}