dev-QQq
方佳 博 2 years ago
parent 2109cf78d8
commit 19ff95d27a

@ -49,3 +49,19 @@ export function clusterAnalysis(data) {
data:data,
})
}
//聚类分析--分析结果
export function clusterAnalysisPlot(data) {
return request({
url: '/api/model/clusterAnalysisResult',
method: 'post',
data:data,
})
}
//关联规则挖掘
export function associationRuleMining(data) {
return request({
url: '/api/model/apriori',
method: 'post',
data:data,
})
}

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723862834824" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5630" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M344.8832 932.5568h334.848l-47.104-260.096a42.3424 42.3424 0 0 0-41.984-34.816h-152.576c-20.48 0-37.376 14.336-41.472 34.304l-51.712 260.608z" fill="#ffffff" p-id="5631"></path><path d="M229.0688 848.6912H795.648a51.712 51.712 0 0 1 0 103.3216H229.0688a51.712 51.712 0 1 1 0-103.3216z" fill="#ffffff" p-id="5632"></path><path d="M911.0528 120.0128c34.304 0 61.952 22.528 61.952 50.176v492.544c0 22.528-8.704 44.032-25.088 59.904-15.872 16.384-37.376 25.088-59.904 25.088H136.9088c-22.528 0-44.032-8.704-59.904-25.088-16.384-15.872-25.088-37.376-25.088-59.904v-492.544c0-27.648 27.648-50.176 61.44-50.176z m-305.0496 369.664c-30.208 0-54.784 24.576-54.784 54.784a55.0912 55.0912 0 1 0 54.784-54.784zM201.216 483.84c-30.208 0-54.784 24.576-54.784 54.784a55.0912 55.0912 0 1 0 54.784-54.784z m555.1104-144.0256l-119.296 136.4992c18.9952 8.704 33.792 24.9344 40.3968 44.8l124.928-142.9504a75.6224 75.6224 0 0 1-46.0288-38.3488zM476.16 345.2928a75.7248 75.7248 0 0 1-45.9264 38.9632l108.0832 128.5632a75.776 75.776 0 0 1 45.2608-39.68z m-132.7104 3.6864L228.9664 469.1968c19.3024 7.68 34.6624 23.04 42.3424 42.1888l120.064-125.952c-20.48-4.9152-37.888-18.432-47.9744-36.4544zM408.576 257.4336c-30.208 0-54.784 24.576-54.784 54.784a55.0912 55.0912 0 1 0 54.784-54.784z m414.464-6.2976c-30.208 0-54.784 24.576-54.784 54.784a55.0912 55.0912 0 1 0 54.784-54.784z" fill="#ffffff" p-id="5633"></path></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723863104013" class="icon" viewBox="0 0 1076 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10492" xmlns:xlink="http://www.w3.org/1999/xlink" width="67.25" height="64"><path d="M965.133121 1021.30489c60.710902 0 109.932124-49.221222 109.932123-109.790276v-50.214157l0.283696-31.06469V110.783211C1075.34894 50.072309 1026.127719 0.851087 965.416817 0.851087H163.408782C123.265826 0.851087 85.534285 23.404904 66.526666 58.725031c-9.645657 17.872836-12.766311 36.880454-13.050007 56.881009-0.425544 26.241862-19.149467 23.121208-35.887519 38.015237-11.205984 9.929353-17.58914 24.397839-17.58914 39.291869v115.322344c0 15.035878 6.525003 29.646211 17.872836 39.575564 7.659787 6.808699 18.298379 7.659787 26.383709 13.475551 10.354897 7.517939 9.220114 15.603269 9.220114 27.376645v190.643579c0 12.340767 0.283696 24.823383 0 37.16415-0.425544 23.972295-22.128273 21.419033-36.454911 34.610888-10.780441 9.929353-17.021748 24.114143-17.021748 38.866325v115.322344c0 14.18479 5.815764 28.085884 16.028813 37.87339 4.964677 4.822829 10.922288 8.652722 17.447292 11.205984 13.475551 5.248372 20.000554 9.361961 20.000554 24.823383v33.617952c0 60.710902 49.221222 109.932124 109.932123 109.932124H815.767281l149.36584-1.418479z m-325.11539-106.953318h-19.858706l-31.348386 0.283696H164.543566v-20.426098s-9.220114-114.187561 158.869649-143.408228c0 0 127.946807-17.305444 136.883225-52.483724 0 0 4.822829-3.971741 1.276631-44.823936-7.659787-86.952764-64.682643-127.946807-87.662003-161.281064-22.97936-33.334257-24.965231-71.63319-24.965231-71.63319 0-9.645657 3.971741-13.050007 10.638593-19.291315 8.227178-7.659787 5.815764-15.745117 4.255437-24.255991-5.957612-32.625017-6.525003-84.825045-0.851087-117.59191 1.276631-39.008173 37.16415-70.356559 37.16415-70.356559 6.666851-5.673916 13.475551-11.915224 18.156531-19.433163 1.276631-2.127719 2.553262-4.397285 3.262502-6.666851 2.69511-8.936418-6.383156-15.603269-4.539133-25.107079 1.702175-8.652722 16.454357-9.078266 25.390774-9.503809 20.142402-0.992935 40.284804-1.844023 60.427206-0.283696 150.216928 11.48968 199.721845 66.810362 199.721845 66.810361 11.631528 14.042942 19.433162 31.206538 24.114144 48.653831 1.418479 5.248372 2.553262 10.638593 3.262501 16.028813 4.680981 26.951101 4.680981 55.036986 3.262502 82.129934-0.70924 12.908159-2.269566 25.67447-4.113589 38.58263-0.992935 6.666851-0.425544 12.908159 3.971741 18.298379 3.688045 4.539133 8.08533 7.659787 9.929353 13.47555 0.851087 2.69511 1.134783 5.673916 1.134784 8.652722 0 0-1.985871 38.440781-24.965231 71.633191-22.97936 33.334257-80.002216 74.186452-87.662003 161.281064-3.546198 40.852196 1.276631 44.823937 1.276631 44.823936 8.936418 35.17828 136.883225 52.483724 136.883225 52.483724 169.933786 31.490234 158.86965 143.408228 158.869649 143.408228v20.426098h-111.917994l17.58914-0.283696-194.189777-0.141848z m0 0" fill="#ffffff" p-id="10493"></path></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723863539685" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15248" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M904.470884 1020.515085H121.066652c-50.866598 0-91.565341-35.609227-91.565342-78.849003V81.958848c0-43.239775 40.698743-78.849002 91.565342-78.849002h783.404232c50.871566 0 91.564099 35.609227 91.564099 78.849002v857.16496c0 45.78205-40.692533 81.391277-91.564099 81.391277zM121.066652 53.981412c-25.436404 0-40.693775 15.257371-40.693776 27.977436v857.16496c0 15.262339 15.257371 30.519711 40.693776 30.519711h783.404232c22.892888 0 40.697501-15.257371 40.697501-27.977437V81.958848c0-12.720065-17.804613-27.977436-40.697501-27.977436H121.066652z" fill="#ffffff" p-id="15249"></path><path d="M439.006177 585.575056c0 12.715097-12.716339 25.436404-25.436404 25.436404H227.89309c-15.257371 0-25.430194-10.174065-25.430194-25.436404 0-12.715097 12.715097-25.435162 25.430194-25.435162h185.676683c15.262339 0 25.436404 10.172823 25.436404 25.435162zM296.56927 387.178309c-12.715097 0-25.435162-12.715097-25.435162-25.430195V176.071432c0-15.262339 10.177791-25.436404 25.435162-25.436404 12.720065 0 25.436404 12.715097 25.436404 25.436404v185.676682c0 15.257371-12.716339 25.430194-25.436404 25.430195z m178.044892-20.346888c-55.954873 0-99.19589-48.324324-99.19589-109.368713 0-61.045631 45.783292-109.374923 99.19589-109.374922 53.41384 0 99.200858 48.329292 99.200858 109.374922 0 61.044389-43.239775 109.368713-99.200858 109.368713z m0-167.872069c-27.977436 0-48.324324 25.436404-48.324324 58.503356s22.89413 58.497147 48.324324 58.497147c25.436404 0 48.329292-25.430194 48.329292-58.497147s-20.345646-58.503357-48.329292-58.503356zM698.447313 366.831421c-55.961082 0-99.19589-48.324324-99.195889-109.368713 0-61.045631 45.78205-109.374923 99.195889-109.374922s99.19589 48.329292 99.19589 109.374922c0 61.044389-43.239775 109.368713-99.19589 109.368713z m0-167.872069c-27.977436 0-48.329292 25.436404-48.329291 58.503356s22.89413 58.497147 48.329291 58.497147 48.324324-25.430194 48.324324-58.497147-20.346888-58.503357-48.324324-58.503356zM449.183968 783.966836c0 12.721307-12.720065 25.436404-25.436404 25.436404H238.072123c-15.263581 0-25.436404-10.174065-25.436404-25.436404 0-12.715097 12.715097-25.430194 25.436404-25.430194h185.675441c12.716339 2.542274 25.436404 12.715097 25.436404 25.430194zM675.553184 656.79351c-7.630549 0-12.715097-2.542274-17.804614-7.631791l-61.044388-61.044389c-10.172823-10.172823-10.172823-25.435162 0-35.609226 10.174065-10.172823 25.436404-10.172823 35.609226 0l45.78205 43.241017 106.832648-104.285406c10.172823-10.174065 25.430194-10.174065 35.609227 0 10.172823 10.172823 10.172823 25.435162 0 35.609227l-124.637262 122.088777c-7.625581 5.089516-12.715097 7.631791-20.346887 7.631791z m0 195.849505c-7.630549 0-12.715097-2.542274-17.804614-7.630548l-61.044388-61.045631c-10.172823-10.172823-10.172823-25.430194 0-35.609227 10.174065-10.172823 25.436404-10.172823 35.609226 0l45.78205 43.241018 106.832648-104.285407c10.172823-10.172823 25.430194-10.172823 35.609227 0 10.172823 10.177791 10.172823 25.436404 0 35.614195l-124.637262 122.085052c-7.625581 5.088274-12.715097 7.630549-20.346887 7.630548z" fill="#ffffff" p-id="15250"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723863570227" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16336" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M838.582577 95.049109h-32.29256v98.523393c0 32.54856-26.514276 58.879979-59.245693 58.879979H276.955349c-32.694845 0-59.209122-26.331419-59.209121-58.879979V95.049109H185.417096A130.157668 130.157668 0 0 0 54.857143 224.877634V894.171109A130.157668 130.157668 0 0 0 185.417096 1023.999634h653.165481A130.157668 130.157668 0 0 0 969.142531 894.171109V224.841063a130.157668 130.157668 0 0 0-130.559954-129.828526z m-101.119964 654.95748H286.53706a52.370267 52.370267 0 0 1-52.553124-52.260552c0-28.891418 23.478849-52.260553 52.553124-52.260553h450.925553c29.074275 0 52.553124 23.405706 52.553124 52.260553 0 28.818275-23.551992 52.260553-52.553124 52.260552z m0-205.458212H286.53706a52.370267 52.370267 0 0 1-52.553124-52.260553c0-28.891418 23.478849-52.260553 52.553124-52.260553h450.925553c29.074275 0 52.553124 23.405706 52.553124 52.297125 0 28.891418-23.551992 52.223981-52.553124 52.223981z" fill="#ffffff" p-id="16337"></path><path d="M703.853483 184.539363H320.146191c-16.091423 0-29.257132-13.055995-29.257132-29.074276V29.074275c0-16.01828 13.16571-29.074275 29.257132-29.074275h383.707292c16.091423 0 29.257132 13.055995 29.257132 29.074275v126.390812c0 16.091423-13.16571 29.074275-29.257132 29.074276z" fill="#ffffff" p-id="16338"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723863127018" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11805" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M512 972.8H153.6c-14.336 0-25.6-11.264-25.6-25.6V76.8c0-14.336 11.264-25.6 25.6-25.6h716.8c14.336 0 25.6 11.264 25.6 25.6v527.36c0 14.336 11.264 25.6 25.6 25.6s25.6-11.264 25.6-25.6V76.8c0-42.496-34.304-76.8-76.8-76.8H153.6c-42.496 0-76.8 34.304-76.8 76.8v870.4c0 42.496 34.304 76.8 76.8 76.8h358.4c14.336 0 25.6-11.264 25.6-25.6s-11.264-25.6-25.6-25.6z" fill="#ffffff" p-id="11806"></path><path d="M816.64 286.72c38.4 0 69.12-30.72 69.12-69.12S855.04 148.48 816.64 148.48 747.52 179.2 747.52 217.6c0 16.384 5.632 30.72 14.848 42.496L680.96 396.8c-5.632-1.536-11.776-2.56-17.92-2.56-14.336 0-28.16 4.608-38.912 12.288L493.568 270.848c8.192-14.336 13.312-30.72 13.312-48.128C506.88 170.496 464.384 128 412.16 128S317.44 170.496 317.44 222.72c0 20.992 6.656 39.936 17.92 55.296l-81.92 133.12c-5.12-1.024-10.24-2.048-15.36-2.048C199.68 409.6 168.96 440.32 168.96 478.72S199.68 547.84 238.08 547.84 307.2 517.12 307.2 478.72c0-14.336-4.096-27.136-11.264-37.888l80.384-130.56c11.264 4.608 23.552 7.168 36.352 7.168 15.872 0 31.232-4.096 44.544-11.264l138.24 143.872c-1.024 4.096-1.024 8.704-1.024 12.8 0 38.4 30.72 69.12 69.12 69.12S732.16 501.76 732.16 463.36c0-12.8-3.584-25.088-9.728-35.84l84.48-141.824c3.072 0.512 6.144 1.024 9.728 1.024z" fill="#ffffff" p-id="11807"></path><path d="M1018.88 808.96v-2.56-2.56c0-1.024 0-1.536-0.512-2.56 0-1.024-0.512-1.536-0.512-2.56 0-0.512-0.512-1.024-0.512-1.536 0 0 0-0.512-0.512-0.512-46.08-115.2-171.52-192-312.32-192s-266.24 77.312-312.32 192c0 0 0 0.512-0.512 0.512 0 0.512-0.512 1.024-0.512 1.536-0.512 1.024-0.512 2.048-1.024 2.56 0 1.024 0 1.536-0.512 2.56v5.12c0 1.024 0 1.536 0.512 2.56 0 1.024 0.512 2.048 1.024 2.56 0 0.512 0.512 1.024 0.512 1.536 0 0 0 0.512 0.512 0.512 46.08 115.2 171.52 192 312.32 192 141.312 0 266.752-77.312 312.832-193.024 0-0.512 0.512-1.024 0.512-2.048 0.512-1.024 0.512-1.536 0.512-2.56 0 0 0-0.512 0.512-1.536z m-314.368 148.48c-116.736 0-220.16-60.416-261.12-151.04 40.96-90.624 144.384-151.04 261.12-151.04s220.16 60.416 261.12 151.04c-40.96 91.136-144.384 151.04-261.12 151.04z" fill="#ffffff" p-id="11808"></path><path d="M704.512 714.752c-50.688 0-91.648 40.96-91.648 91.648s40.96 91.648 91.648 91.648c50.688 0 91.648-40.96 91.648-91.648s-40.96-91.648-91.648-91.648z m0 132.096c-22.528 0-40.448-17.92-40.448-40.448s17.92-40.448 40.448-40.448 40.448 17.92 40.448 40.448-17.92 40.448-40.448 40.448z" fill="#ffffff" p-id="11809"></path></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723863382511" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13069" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M277.8 462C176.2 462 95 380.7 95 279.2S176.2 96.4 277.8 96.4s182.8 81.2 182.8 182.8V462H277.8z m0 0" p-id="13070" fill="#ffffff"></path><path d="M279.8 492.4c-119.8 0-215.3-97.5-215.3-215.3 0-117.8 95.5-213.3 213.3-213.3 117.8 0 213.3 95.5 213.3 213.3v213.3l-211.3 2z m-2-367.6c-83.3 0-152.3 69.1-152.3 152.3 0 83.3 69.1 152.3 152.3 152.3h152.3V277.1c2.1-83.2-67-152.3-152.3-152.3z m0 436.7C176.2 561.5 95 642.7 95 744.3c0 101.6 81.2 182.8 182.8 182.8s182.8-81.2 182.8-182.8V561.5H277.8z m0 0" p-id="13071" fill="#ffffff"></path><path d="M277.8 959.6c-117.8 0-213.3-97.5-213.3-215.3C64.5 626.5 160 531 277.8 531H491v213.3c2.1 117.8-95.4 215.3-213.2 215.3z m0-367.7c-83.3 0-152.3 69.1-152.3 152.3 0 83.3 69.1 152.3 152.3 152.3 83.3 0 152.3-69.1 152.3-152.3V591.9H277.8z m0 0M744.9 561.5c101.6 0 182.8 81.2 182.8 182.8 0 101.6-81.2 182.8-182.8 182.8-101.6 0-182.8-81.2-182.8-182.8V561.5h182.8z m0 0" p-id="13072" fill="#ffffff"></path><path d="M744.9 959.6c-117.8 0-213.3-97.5-213.3-215.3V531h213.3c117.8 0 213.3 95.5 213.3 213.3 0 117.8-95.5 215.3-213.3 215.3zM592.6 591.9v152.3c0 83.3 69.1 152.3 152.3 152.3 83.3 0 152.3-69.1 152.3-152.3 0-83.3-69.1-152.3-152.3-152.3H592.6z m0 0M744.9 492.4H562.1c-8.1 0-16.2-4.1-22.3-8.1-6.1-4.1-8.1-16.3-8.1-24.4V277.1c0-117.8 95.5-213.3 213.3-213.3 117.8 0 213.3 95.5 213.3 213.3-0.1 117.8-95.6 215.3-213.4 215.3z m-152.3-62.9h152.3c83.3 0 152.3-69.1 152.3-152.3 0-83.3-69.1-152.3-152.3-152.3-83.3 0-152.3 69.1-152.3 152.3v152.3z m0 0" p-id="13073" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723862704717" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2726" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M526.130587 213.025725c-7.812854-8.171561-20.457517-8.163385-28.262196 0L190.812487 534.217325c-3.908982 4.088846-7.064782 11.970172-7.064782 17.619545L183.747705 959.616766l223.808383 0L407.556088 718.503601c0-56.47125 45.744798-102.250794 102.187433-102.250794l4.512958 0c56.436503 0 102.187433 45.773413 102.187433 102.250794L616.443912 959.616766l223.808383 0L840.252295 551.83687c0-5.641198-3.162954-13.537852-7.064782-17.619545L526.130587 213.025725z" p-id="2727" fill="#ffffff"></path><path d="M951.023138 491.245094 543.783856 77.72487c-17.529613-17.800431-46.061605-17.775904-63.567713 0L72.976862 491.245094c-11.571609 11.750451-11.439776 30.669924 0.294323 42.256862 11.735122 11.58796 30.629046 11.455106 42.200655-0.295345L512 130.563066l396.52816 402.643545c11.571609 11.750451 30.465533 11.882283 42.200655 0.295345C962.463936 521.915018 962.595768 502.995545 951.023138 491.245094z" p-id="2728" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -66,23 +66,23 @@ export const constantRoutes = [
path: "/index",
component: () => import("@/views/index"),
name: "Index",
meta: { title: "首页", icon: "dashboard", affix: true },
},
],
},
{
path: "",
component: Layout,
redirect: "/digitalMarketAlgorithm",
children: [
{
path: "/digitalMarketAlgorithm",
component: () => import("@/views/digitalMarketAlgorithm/index"),
name: "digitalMarketAlgorithm",
meta: { title: "数字营销算法", icon: "dashboard", affix: true },
meta: { title: "首页", icon: "首页", affix: true },
},
],
},
// {
// path: "",
// component: Layout,
// redirect: "/digitalMarketAlgorithm",
// children: [
// {
// path: "/digitalMarketAlgorithm",
// component: () => import("@/views/digitalMarketAlgorithm/index"),
// name: "digitalMarketAlgorithm",
// meta: { title: "数字营销算法", icon: "monitor2", affix: true },
// },
// ],
// },
{
path: "",
component: Layout,
@ -92,7 +92,7 @@ export const constantRoutes = [
path: "/digitalMarketTech",
component: () => import("@/views/digitalMarketTech/index"),
name: "digitalMarketTech",
meta: { title: "数字营销技术", icon: "dashboard", affix: true },
meta: { title: "数字营销技术", icon: "monitor2", affix: true },
},
],
},
@ -105,7 +105,7 @@ export const constantRoutes = [
path: "/portraitModel",
component: () => import("@/views/portraitModel/index"),
name: "portraitModel",
meta: { title: "用户画像模型", icon: "dashboard", affix: true },
meta: { title: "用户画像模型", icon: "智能算法", affix: true },
},
],
},
@ -118,7 +118,7 @@ export const constantRoutes = [
path: "/digitalMarketingAlgorithms",
component: () => import("@/views/digitalMarketingAlgorithms/index"),
name: "digitalMarketingAlgorithms",
meta: { title: "数字营销算法", icon: "dashboard", affix: true },
meta: { title: "数字营销算法", icon: "tongxunlu_B", affix: true },
},
],
},
@ -131,7 +131,7 @@ export const constantRoutes = [
path: "/learningResources",
component: () => import("@/views/learningCenter/learningResources.vue"),
name: "learningResources",
meta: { title: "资源中心", icon: "dashboard", affix: true },
meta: { title: "资源中心", icon: "资源中心", affix: true },
},
],
},
@ -144,7 +144,7 @@ export const constantRoutes = [
path: "/evaluation",
component: () => import("@/views/learningCenter/evaluation.vue"),
name: "evaluation",
meta: { title: "知识测评", icon: "dashboard", affix: true },
meta: { title: "知识测评", icon: "学习测评", affix: true },
},
],
},{
@ -156,7 +156,7 @@ export const constantRoutes = [
path: "/Achievement",
component: () => import("@/views/learningCenter/Achievement.vue"),
name: "Achievement",
meta: { title: "学习成绩", icon: "dashboard", affix: true },
meta: { title: "学习成绩", icon: "学习成绩", affix: true },
},
],
},

@ -16,8 +16,8 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
// baseURL: import.meta.env.VITE_APP_BASE_API,
// baseURL:'http://192.168.2.28:9868/',
baseURL:'http://192.168.2.16:9868/',
baseURL:'http://192.168.2.28:9868/',
// baseURL:'http://118.31.7.2:9868/',
// 超时
timeout: 10000
})

@ -130,7 +130,7 @@ const sendText = async() => {
},
name: "",
role: "user",
userId: "512",
userId: "487",
},
];
const messageId = Date.now();

@ -1,6 +1,6 @@
<template>
<div class="app-containerO">
<iframe src="https://www.aigcwhere.com/" frameborder="0"></iframe>
<iframe src="https://pidoutv.com/" frameborder="0"></iframe>
</div>
</template>

@ -1,5 +1,5 @@
<template>
<el-scrollbar height="800px">
<el-scrollbar ref="scrollbar" height="800px">
<div class="main-top">
<span style="font-weight: bold;font-size: 18px;color: #3596EB;">任务描述</span>
<p style="font-weight: 400;font-size: 12px;color: #E6E6E6;">给出任务清单参考做哪些数据的统计分析Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.</p>
@ -44,7 +44,7 @@
</el-table>
<el-button @click="taskZB"></el-button>
</div>
<div class="left-top">
<div class="left-top" style="margin-top:50px">
<span>数据预处理</span>
</div>
<div class="metrics">
@ -67,7 +67,7 @@
/>
</el-select>
</div>
<div class="left-top" style="margin-top: 10px">
<div class="left-top" style="margin-top: 50px">
<span>模型参数设置</span>
</div>
<div class="metrics-table" style="margin-top: 10px">
@ -84,23 +84,23 @@
/>
</el-select>
</div>
<div style="margin-top:10px">
<div style="margin-top:10px;color:#FFFFFF">
<span style="font-weight: 400;font-size: 12px;color: #FFFFFF;">
最小支持度阀值
</span>
<el-input v-model="input5" style="width: 180px;margin-top:5px"/>%
<el-input v-model="input5" style="width: 160px;margin-top:5px"/>%
</div>
<div style="margin-top:10px">
<div style="margin-top:10px;color:#FFFFFF">
<span style="font-weight: 400;font-size: 12px;color: #FFFFFF;">
最小置信度
最小置信度:
</span>
<el-input v-model="input6" style="width: 180px;margin-top:5px"/>%
<el-input v-model="input6" style="width: 160px;margin-top:5px"/>%
</div>
<el-button @click="computation"></el-button>
</div>
</div>
<div style="margin-top: auto;">
<div class="startOver">
<div class="startOver" @click="startOver()">
<img src="../../../assets/images/重新开始.png" alt="">
<span>重新开始</span>
</div>
@ -118,7 +118,7 @@
<div class="analysisResults" style="margin-top: 20px">
<span style="font-weight: bold;font-size: 18px;color: #3596EB;display: block;">分析结果</span>
<el-button>下载</el-button>
<el-table :data="tableData" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350">
<el-table :data="tableData3" row-key="TSuid" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350">
<el-table-column v-for="column in tableLabel" :key="column.prop" :prop="column.prop" :label="column.label" align="center"/>
</el-table>
<el-pagination style="margin-top:10px" background layout="prev, pager, next" :total="1000" />
@ -178,6 +178,8 @@
</template>
<script setup>
import * as echarts from 'echarts';
import ecStat from 'echarts-stat';
import * as API from '@/api/AI.js'
import { getUserInfo } from "@/utils/auth";
import { onMounted } from 'vue';
@ -196,16 +198,19 @@ const { proxy } = getCurrentInstance()
})
})
}
const showChart=ref(false)
const fileList=ref([])
const handleChange=(info)=>{
fileList.value.push(info);
}
const flag=ref(false)
onMounted(()=>{
getList()
})
const optionData=()=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value}).then((res)=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'关联规则挖掘'}).then((res)=>{
tableData.value=[]
res.data.forEach(element => {
tableData.value.push({
@ -219,10 +224,11 @@ const { proxy } = getCurrentInstance()
selectedRows.value = selection;
};
const tableData2=ref([])
const tableData3=ref([])
const resTable2=ref()
const taskZB=()=>{
flag.value=true
if(!selectedRows.value){
if(selectedRows.value.length===0){
return
}
const sendData={
@ -301,6 +307,8 @@ const resTable2=ref()
})
}
}
//
const computation=()=>{
if(input5.value&&input6.value&&input4.value){
const sendData={
@ -309,10 +317,48 @@ const resTable2=ref()
userId:JSON.parse(getUserInfo()).userId,
deduplicatedDataList:resTable2.value
}
API.clusterAnalysis(sendData).then((res)=>{
API.clusterAnalysisPlot(sendData).then((res)=>{
showChart.value=true
let sex=1
tableData3.value=[]
res.data.forEach((item,index)=>{
const newItem = {};
tableLabel.forEach((label,index) => {
if(index===0){
newItem[label.prop] = '簇'+sex; //
}else{
newItem[label.prop] =''
}
});
newItem['TSuid']=sex
sex++
tableData3.value.push(newItem);
tableData3.value[index].children=[]
const children=ref([])
item.forEach((item2,sexx)=>{
const newItem2 = {};
tableLabel.forEach((label,index2) => {
newItem2[label.prop] = item2[index2]; //
});
newItem2['TSuid']=''+sex+sexx
children.value.push(newItem2)
})
tableData3.value[index].children=children.value
console.log(tableData3.value);
})
})
}
}
const startOver=()=>{
input.value=''
tableData.value=[]
tableData2.value=[]
tableData3.value=[]
input2.value=''
input3.value=''
input4.value=''
input5.value=''
input6.value=''
}
</script>
@ -468,9 +514,15 @@ const resTable2=ref()
.dialog-footer{
margin-bottom: 20px;
}
:deep(.el-table__expand-icon){
color: #9126FE;
.el-icon{
font-size: 16px;
}
}
</style>
<style lang="scss">
.el-dialog{
.dialogClass{
background:url('../../../assets/images/弹框.png') !important;
background-size: 100% 100% !important;
.el-dialog__header{

@ -1,5 +1,5 @@
<template>
<el-scrollbar height="800px">
<el-scrollbar ref="scrollbar" height="800px">
<div class="main-top">
<span style="font-weight: bold;font-size: 18px;color: #3596EB;">任务描述</span>
<p style="font-weight: 400;font-size: 12px;color: #E6E6E6;">给出任务清单参考做哪些数据的统计分析Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.</p>
@ -44,7 +44,7 @@
</el-table>
<el-button @click="taskZB"></el-button>
</div>
<div class="left-top">
<div class="left-top" style="margin-top:50px">
<span>数据预处理</span>
</div>
<div class="metrics">
@ -67,7 +67,7 @@
/>
</el-select>
</div>
<div class="left-top" style="margin-top: 10px">
<div class="left-top" style="margin-top: 50px">
<span>模型参数设置</span>
</div>
<div class="metrics-table" style="margin-top: 10px">
@ -100,7 +100,7 @@
</div>
</div>
<div style="margin-top: auto;">
<div class="startOver">
<div class="startOver" @click="startOver()">
<img src="../../../assets/images/重新开始.png" alt="">
<span>重新开始</span>
</div>
@ -118,19 +118,19 @@
<div class="analysisResults" style="margin-top: 20px">
<span style="font-weight: bold;font-size: 18px;color: #3596EB;display: block;">分析结果</span>
<el-button>下载</el-button>
<el-table :data="tableData" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350">
<el-table :data="tableData3" row-key="TSuid" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350">
<el-table-column v-for="column in tableLabel" :key="column.prop" :prop="column.prop" :label="column.label" align="center"/>
</el-table>
<el-pagination style="margin-top:10px" background layout="prev, pager, next" :total="1000" />
</div>
<div style="margin-top:20px;gap:25px;display: flex;">
<div style="margin-top:20px;gap:25px;display: flex;" v-show="showChart">
<!-- <img src="../../../assets/images/图1.png" alt=""> -->
<div style="background:#FFFFFF;">
<div id="main" style="width: 500px;height: 500px;"></div>
</div>
<div style="background:#FFFFFF;">
<div id="main" style="width: 500px;height: 500px;"></div>
<div id="main2" style="width: 500px;height: 500px;"></div>
</div>
</div>
@ -209,137 +209,76 @@ const { proxy } = getCurrentInstance()
})
})
}
const showChart=ref(false)
const scrollbar = ref(null);
const fileList=ref([])
const handleChange=(info)=>{
fileList.value.push(info);
}
const flag=ref(false)
let myChart;
let myChart2;
//
const getRandomColorHex = () => {
const randomValue = () => {
// 0 255
const value = Math.floor(Math.random() * 256);
//
return value.toString(16).padStart(2, '0');
};
// RGB
let r = randomValue();
let g = randomValue();
let b = randomValue();
//
while (parseInt(r, 16) > 200 && parseInt(g, 16) < 50 && parseInt(b, 16) < 50) {
r = randomValue();
g = randomValue();
b = randomValue();
}
return `#${r}${g}${b}`;
};
//
const addData = (myChart, newData,color) => {
//
let currentData = myChart.getOption().series[0].data||[];
//
newData.forEach(dataPoint => {
currentData.push({
value: [dataPoint.x, dataPoint.y],
itemStyle: { color: color }
});
});
//
myChart.setOption({
series: [
{
data: currentData
}
]
});
};
onMounted(()=>{
getList()
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;
echarts.registerTransform(ecStat.transform.clustering);
const data = [
[3.275154, 2.957587],
[-3.344465, 2.603513],
[0.355083, -3.376585],
[1.852435, 3.547351],
[-2.078973, 2.552013],
[-0.993756, -0.884433],
[2.682252, 4.007573],
[-3.087776, 2.878713],
[-1.565978, -1.256985],
[2.441611, 0.444826],
[-0.659487, 3.111284],
[-0.459601, -2.618005],
[2.17768, 2.387793],
[-2.920969, 2.917485],
[-0.028814, -4.168078],
[3.625746, 2.119041],
[-3.912363, 1.325108],
[-0.551694, -2.814223],
[2.855808, 3.483301],
[-3.594448, 2.856651],
[0.421993, -2.372646],
[1.650821, 3.407572],
[-2.082902, 3.384412],
[-0.718809, -2.492514],
[4.513623, 3.841029],
[-4.822011, 4.607049],
[-0.656297, -1.449872],
[1.919901, 4.439368],
[-3.287749, 3.918836],
[-1.576936, -2.977622],
[3.598143, 1.97597],
[-3.977329, 4.900932],
[-1.79108, -2.184517],
[3.914654, 3.559303],
[-1.910108, 4.166946],
[-1.226597, -3.317889],
[1.148946, 3.345138],
[-2.113864, 3.548172],
[0.845762, -3.589788],
[2.629062, 3.535831],
[-1.640717, 2.990517],
[-1.881012, -2.485405],
[4.606999, 3.510312],
[-4.366462, 4.023316],
[0.765015, -3.00127],
[3.121904, 2.173988],
[-4.025139, 4.65231],
[-0.559558, -3.840539],
[4.376754, 4.863579],
[-1.874308, 4.032237],
[-0.089337, -3.026809],
[3.997787, 2.518662],
[-3.082978, 2.884822],
[0.845235, -3.454465],
[1.327224, 3.358778],
[-2.889949, 3.596178],
[-0.966018, -2.839827],
[2.960769, 3.079555],
[-3.275518, 1.577068],
[0.639276, -3.41284]
];
const redPoints = [
[4, 3], // 1
[-4, -4], // 2
[2, -2] // 3
];
var CLUSTER_COUNT = 6;
var DIENSIION_CLUSTER_INDEX = 2;
var COLOR_ALL = [
'#37A2DA',
'#e06343',
'#37a354',
'#b55dba',
'#b5bd48',
'#8378EA',
'#96BFFF'
];
var pieces = [];
for (var i = 0; i < CLUSTER_COUNT; i++) {
pieces.push({
value: i,
label: 'cluster ' + i,
color: COLOR_ALL[i]
});
}
option = {
var chartDom2 = document.getElementById('main2');
myChart = echarts.init(chartDom);
myChart2 = echarts.init(chartDom2);
//
var option = {
dataset: [
{
source: data
},
{
transform: {
type: 'ecStat:clustering',
// print: true,
config: {
clusterCount: CLUSTER_COUNT,
outputType: 'single',
outputClusterIndexDimension: DIENSIION_CLUSTER_INDEX
}
}
source: [] //
}
],
tooltip: {
position: 'top'
},
visualMap: {
show: false,
type: 'piecewise',
// top: 'middle',
min: 0,
max: CLUSTER_COUNT,
left: 10,
splitNumber: CLUSTER_COUNT,
dimension: DIENSIION_CLUSTER_INDEX,
pieces: pieces
},
grid: {
left: 120
},
xAxis: {},
yAxis: {},
series: [
@ -349,32 +288,18 @@ option = {
symbolSize: 15,
itemStyle: {
borderColor: '#555'
},
datasetIndex: 1
},
{
type: 'scatter',
data: redPoints,
symbolSize: 15,
symbol: 'circle',
itemStyle: {
color: 'red', //
borderColor: 'red', //
opacity: 1 //
},
tooltip: {
formatter: function (params) {
return params.value[0] + ' ' + params.value[1]; // X Y
}
}
}
]
};
option && myChart.setOption(option);
//
myChart.setOption(option);
myChart2.setOption(option);
})
const optionData=()=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value}).then((res)=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'聚类分析'}).then((res)=>{
tableData.value=[]
res.data.forEach(element => {
tableData.value.push({
@ -388,10 +313,11 @@ option && myChart.setOption(option);
selectedRows.value = selection;
};
const tableData2=ref([])
const tableData3=ref([])
const resTable2=ref()
const taskZB=()=>{
flag.value=true
if(!selectedRows.value){
if(selectedRows.value.length===0){
return
}
const sendData={
@ -470,6 +396,8 @@ const resTable2=ref()
})
}
}
//
const computation=()=>{
if(input5.value&&input6.value&&input4.value){
const sendData={
@ -478,10 +406,99 @@ const resTable2=ref()
userId:JSON.parse(getUserInfo()).userId,
deduplicatedDataList:resTable2.value
}
API.clusterAnalysisPlot(sendData).then((res)=>{
showChart.value=true
let sex=1
tableData3.value=[]
res.data.forEach((item,index)=>{
const newItem = {};
tableLabel.forEach((label,index) => {
if(index===0){
newItem[label.prop] = '簇'+sex; //
}else{
newItem[label.prop] =''
}
});
newItem['TSuid']=sex
sex++
tableData3.value.push(newItem);
tableData3.value[index].children=[]
const children=ref([])
item.forEach((item2,sexx)=>{
const newItem2 = {};
tableLabel.forEach((label,index2) => {
newItem2[label.prop] = item2[index2]; //
});
newItem2['TSuid']=''+sex+sexx
children.value.push(newItem2)
})
tableData3.value[index].children=children.value
console.log(tableData3.value);
})
}).then(()=>{
API.clusterAnalysis(sendData).then((res)=>{
myChart.setOption({
series: [
{
data: [] //
}
]
});
myChart2.setOption({
series: [
{
data: [] //
}
]
});
Object.keys(res.data.dataSet).forEach(key => {
const bgColor=getRandomColorHex()
addData(myChart, res.data.dataSet[key],bgColor);
addData(myChart2, res.data.dataSet[key],bgColor);
});
Object.keys(res.data.centroid).forEach(key => {
addData(myChart2, res.data.centroid[key],'red');
});
})
})
nextTick(() => {
setTimeout(() => {
const scrollContainer = scrollbar.value?.$el.querySelector('.el-scrollbar__wrap');
if (scrollContainer) {
scrollContainer.scrollTo({
top: scrollContainer.scrollHeight,
behavior: 'smooth' //
});
}
}, 10);
});
}
}
const startOver=()=>{
myChart.setOption({
series: [
{
data: [] //
}
]
});
myChart2.setOption({
series: [
{
data: [] //
}
]
});
input.value=''
tableData.value=[]
tableData2.value=[]
tableData3.value=[]
input2.value=''
input3.value=''
input4.value=''
input5.value=''
input6.value=''
showChart.value=false
}
</script>
@ -637,9 +654,15 @@ const resTable2=ref()
.dialog-footer{
margin-bottom: 20px;
}
:deep(.el-table__expand-icon){
color: #9126FE;
.el-icon{
font-size: 16px;
}
}
</style>
<style lang="scss">
.el-dialog{
.dialogClass{
background:url('../../../assets/images/弹框.png') !important;
background-size: 100% 100% !important;
.el-dialog__header{

@ -415,7 +415,7 @@ margin: 20px 20px 0;
}
</style>
<style lang="scss">
.el-dialog{
.dialogClass{
background:url('../../../assets/images/弹框.png') !important;
background-size: 100% 100% !important;
.el-dialog__header{

@ -1,9 +1,9 @@
<template>
<div class="rgzn_top">
<div class="top_item">
<el-button :class="{'active':isActive===1}" @click="activeIndex(1)"></el-button>
<el-button :class="{'active':isActive===2}" @click="activeIndex(2)"></el-button>
<el-button :class="{'active':isActive===3}" @click="activeIndex(3)">AIGC</el-button>
<el-button :class="{'active':isActive===1}" @click="activeIndex(1)"></el-button>
<el-button :class="{'active':isActive===2}" @click="activeIndex(2)"></el-button>
<el-button :class="{'active':isActive===3}" @click="activeIndex(3)"></el-button>
<el-button :class="{'active':isActive===4}" @click="activeIndex(4)"></el-button>
<el-button :class="{'active':isActive===5}" @click="activeIndex(5)"></el-button>
<el-button :class="{'active':isActive===6}" @click="activeIndex(6)">/</el-button>
@ -20,8 +20,9 @@
import big from './components/bigData.vue'
import descriptiveStatistics from './components/descriptiveStatistics.vue'
import clusterAnalysis from './components/clusterAnalysis.vue'
import associationRuleMining from './components/associationRuleMining.vue'
const component=ref(big)
const pageData=[big,descriptiveStatistics,clusterAnalysis]
const pageData=[big,descriptiveStatistics,clusterAnalysis,associationRuleMining]
const isActive=ref(1)
const activeIndex=(index)=>{
isActive.value=index
@ -44,6 +45,7 @@
background: url('../../assets/images/11.png');
color:#FFFFFF;
border-color:#FFFFFF00;
padding:8px 5px 8px 47px;
}
.el-button:nth-child(2) {
width: 170px;
@ -51,6 +53,7 @@
background: url('../../assets/images/22.png');
color:#FFFFFF;
border-color:#FFFFFF00;
padding:8px 5px 8px 47px;
}
.el-button:nth-child(3) {
width: 170px;

Loading…
Cancel
Save