update
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "micro-ui",
|
"name": "micro-ui",
|
||||||
"version": "0.4.3",
|
"version": "0.4.3",
|
||||||
"description": "AllData科学护城河-前端项目",
|
"description": "数据标准符合性检测工具-前端项目",
|
||||||
"author": "AllDataDC",
|
"author": "AllDataDC",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 4.2 KiB |
@ -105,3 +105,11 @@ export function word(id) {
|
|||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getMetadatablood(data) {
|
||||||
|
return request({
|
||||||
|
url: '/data/metadata/sources/getMetadatablood',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="6717" t="1547360688278" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#bfbfbf" d="M890 120H134a70 70 0 0 0-70 70v500a70 70 0 0 0 70 70h756a70 70 0 0 0 70-70V190a70 70 0 0 0-70-70z m-10 520a40 40 0 0 1-40 40H712V448a40 40 0 0 0-80 0v232h-80V368a40 40 0 0 0-80 0v312h-80V512a40 40 0 0 0-80 0v168H184a40 40 0 0 1-40-40V240a40 40 0 0 1 40-40h656a40 40 0 0 1 40 40zM696 824H328a40 40 0 0 0 0 80h368a40 40 0 0 0 0-80z" p-id="6718"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="6717" t="1547360688278" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#000" d="M890 120H134a70 70 0 0 0-70 70v500a70 70 0 0 0 70 70h756a70 70 0 0 0 70-70V190a70 70 0 0 0-70-70z m-10 520a40 40 0 0 1-40 40H712V448a40 40 0 0 0-80 0v232h-80V368a40 40 0 0 0-80 0v312h-80V512a40 40 0 0 0-80 0v168H184a40 40 0 0 1-40-40V240a40 40 0 0 1 40-40h656a40 40 0 0 1 40 40zM696 824H328a40 40 0 0 0 0 80h368a40 40 0 0 0 0-80z" p-id="6718"/></svg>
|
||||||
|
Before Width: | Height: | Size: 600 B After Width: | Height: | Size: 598 B |
@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="2807" t="1547195013953" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#cdcdcd" d="M529.0496 527.616l-30.7712-30.7456 85.0688-85.0944 30.7712 30.7712z" p-id="2808"/><path fill="#cdcdcd" d="M0 340.48l427.52 256 248.32 427.52L1024 0l-1024 340.48zM665.6 921.6l-207.36-355.84-355.84-212.48L911.36 81.92l-243.2 243.2 30.72 30.72 243.2-243.2L665.6 921.6z" p-id="2809"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="2807" t="1547195013953" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#000" d="M529.0496 527.616l-30.7712-30.7456 85.0688-85.0944 30.7712 30.7712z" p-id="2808"/><path fill="#000" d="M0 340.48l427.52 256 248.32 427.52L1024 0l-1024 340.48zM665.6 921.6l-207.36-355.84-355.84-212.48L911.36 81.92l-243.2 243.2 30.72 30.72 243.2-243.2L665.6 921.6z" p-id="2809"/></svg>
|
||||||
|
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 531 B |
@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="1497" t="1554868028575" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#bfbfbf" d="M558.409143 658.285714h-92.818286l-28.379428 62.427429a18.285714 18.285714 0 1 1-33.28-15.140572l91.428571-201.142857a18.285714 18.285714 0 0 1 33.28 0l91.428571 201.142857a18.285714 18.285714 0 1 1-33.28 15.140572L558.409143 658.285714z m-16.64-36.571428L512 556.178286 482.230857 621.714286h59.538286zM329.142857 128h475.428572a18.285714 18.285714 0 1 1 0 36.571429H329.142857a91.428571 91.428571 0 0 0 0 182.857142h475.428572a18.285714 18.285714 0 0 1 18.285714 18.285715v512a18.285714 18.285714 0 0 1-18.285714 18.285714H329.142857A128 128 0 0 1 201.142857 768V256A128 128 0 0 1 329.142857 128zM237.714286 345.6V768A91.428571 91.428571 0 0 0 329.142857 859.428571h457.142857v-475.428571H329.142857a127.634286 127.634286 0 0 1-91.428571-38.4zM329.142857 274.285714a18.285714 18.285714 0 0 1 0-36.571428h438.857143a18.285714 18.285714 0 1 1 0 36.571428H329.142857z" p-id="1498"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" class="icon" p-id="1497" t="1554868028575" version="1.1" viewBox="0 0 1024 1024"><defs><style type="text/css"/></defs><path fill="#000" d="M558.409143 658.285714h-92.818286l-28.379428 62.427429a18.285714 18.285714 0 1 1-33.28-15.140572l91.428571-201.142857a18.285714 18.285714 0 0 1 33.28 0l91.428571 201.142857a18.285714 18.285714 0 1 1-33.28 15.140572L558.409143 658.285714z m-16.64-36.571428L512 556.178286 482.230857 621.714286h59.538286zM329.142857 128h475.428572a18.285714 18.285714 0 1 1 0 36.571429H329.142857a91.428571 91.428571 0 0 0 0 182.857142h475.428572a18.285714 18.285714 0 0 1 18.285714 18.285715v512a18.285714 18.285714 0 0 1-18.285714 18.285714H329.142857A128 128 0 0 1 201.142857 768V256A128 128 0 0 1 329.142857 128zM237.714286 345.6V768A91.428571 91.428571 0 0 0 329.142857 859.428571h457.142857v-475.428571H329.142857a127.634286 127.634286 0 0 1-91.428571-38.4zM329.142857 274.285714a18.285714 18.285714 0 0 1 0-36.571428h438.857143a18.285714 18.285714 0 1 1 0 36.571428H329.142857z" p-id="1498"/></svg>
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1 +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="1572170050760" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5149" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="400"><defs><style type="text/css"></style></defs><path d="M219.428571 658.285714q0-30.285714-21.428571-51.714285T146.285714 585.142857t-51.714285 21.428572T73.142857 658.285714t21.428572 51.714286T146.285714 731.428571t51.714286-21.428571T219.428571 658.285714z m109.714286-256q0-30.285714-21.428571-51.714285T256 329.142857t-51.714286 21.428572T182.857143 402.285714t21.428571 51.714286T256 475.428571t51.714286-21.428571T329.142857 402.285714z m244.571429 274.857143l57.714285-218.285714q3.428571-14.857143-4.285714-27.714286T605.142857 414.285714t-27.428571 3.714286-17.142857 22.571429l-57.714286 218.285714q-34.285714 2.857143-61.142857 24.857143t-36 56.285714q-11.428571 44 11.428571 83.428571t66.857143 50.857143 83.428571-11.428571 50.857143-66.857143q9.142857-34.285714-3.428571-66.857143t-41.142857-52z m377.142857-18.857143q0-30.285714-21.428572-51.714285T877.714286 585.142857t-51.714286 21.428572-21.428571 51.714285 21.428571 51.714286 51.714286 21.428571 51.714285-21.428571 21.428572-51.714286z m-365.714286-365.714285q0-30.285714-21.428571-51.714286T512 219.428571t-51.714286 21.428572T438.857143 292.571429t21.428571 51.714285T512 365.714286t51.714286-21.428572T585.142857 292.571429z m256 109.714285q0-30.285714-21.428571-51.714285T768 329.142857t-51.714286 21.428572T694.857143 402.285714t21.428571 51.714286T768 475.428571t51.714286-21.428571T841.142857 402.285714z m182.857143 256q0 149.142857-80.571429 276-10.857143 16.571429-30.857142 16.571429H111.428571q-20 0-30.857142-16.571429Q0 808 0 658.285714q0-104 40.571429-198.857143t109.142857-163.428571 163.428571-109.142857 198.857143-40.571429 198.857143 40.571429 163.428571 109.142857 109.142857 163.428571 40.571429 198.857143z" p-id="5150" fill="#bfbfbf"></path></svg>
|
<?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="1572170050760" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5149" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="400"><defs><style type="text/css"></style></defs><path d="M219.428571 658.285714q0-30.285714-21.428571-51.714285T146.285714 585.142857t-51.714285 21.428572T73.142857 658.285714t21.428572 51.714286T146.285714 731.428571t51.714286-21.428571T219.428571 658.285714z m109.714286-256q0-30.285714-21.428571-51.714285T256 329.142857t-51.714286 21.428572T182.857143 402.285714t21.428571 51.714286T256 475.428571t51.714286-21.428571T329.142857 402.285714z m244.571429 274.857143l57.714285-218.285714q3.428571-14.857143-4.285714-27.714286T605.142857 414.285714t-27.428571 3.714286-17.142857 22.571429l-57.714286 218.285714q-34.285714 2.857143-61.142857 24.857143t-36 56.285714q-11.428571 44 11.428571 83.428571t66.857143 50.857143 83.428571-11.428571 50.857143-66.857143q9.142857-34.285714-3.428571-66.857143t-41.142857-52z m377.142857-18.857143q0-30.285714-21.428572-51.714285T877.714286 585.142857t-51.714286 21.428572-21.428571 51.714285 21.428571 51.714286 51.714286 21.428571 51.714285-21.428571 21.428572-51.714286z m-365.714286-365.714285q0-30.285714-21.428571-51.714286T512 219.428571t-51.714286 21.428572T438.857143 292.571429t21.428571 51.714285T512 365.714286t51.714286-21.428572T585.142857 292.571429z m256 109.714285q0-30.285714-21.428571-51.714285T768 329.142857t-51.714286 21.428572T694.857143 402.285714t21.428571 51.714286T768 475.428571t51.714286-21.428571T841.142857 402.285714z m182.857143 256q0 149.142857-80.571429 276-10.857143 16.571429-30.857142 16.571429H111.428571q-20 0-30.857142-16.571429Q0 808 0 658.285714q0-104 40.571429-198.857143t109.142857-163.428571 163.428571-109.142857 198.857143-40.571429 198.857143 40.571429 163.428571 109.142857 109.142857 163.428571 40.571429 198.857143z" p-id="5150" fill="#000"></path></svg>
|
||||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1 +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="1649727721107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21653" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M554.666667 896v85.333333h-85.333334v-85.333333h-341.333333A42.666667 42.666667 0 0 1 85.333333 853.333333V256h853.333334V853.333333a42.666667 42.666667 0 0 1-42.666667 42.666667h-341.333333zM341.333333 426.666667a128 128 0 1 0 128 128H341.333333V426.666667z m213.333334 0V512h256V426.666667h-256z m0 170.666666V682.666667h256v-85.333334h-256zM85.333333 128h853.333334v85.333333h-853.333334v-85.333333z" p-id="21654" fill="#bfbfbf"></path></svg>
|
<?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="1649727721107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21653" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M554.666667 896v85.333333h-85.333334v-85.333333h-341.333333A42.666667 42.666667 0 0 1 85.333333 853.333333V256h853.333334V853.333333a42.666667 42.666667 0 0 1-42.666667 42.666667h-341.333333zM341.333333 426.666667a128 128 0 1 0 128 128H341.333333V426.666667z m213.333334 0V512h256V426.666667h-256z m0 170.666666V682.666667h256v-85.333334h-256zM85.333333 128h853.333334v85.333333h-853.333334v-85.333333z" p-id="21654" fill="#000"></path></svg>
|
||||||
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 821 B |
@ -1 +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="1574576420335" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9530" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M915.94 827.89h-91.42a12.5 12.5 0 0 1 0-25h78.92v-535h-78.92a12.5 12.5 0 1 1 0-25h91.42a12.5 12.5 0 0 1 12.5 12.5v560a12.5 12.5 0 0 1-12.5 12.5z" fill="#cdcdcd" p-id="9531"></path><path d="M915.94 547.91h-91.42a12.5 12.5 0 0 1 0-25h91.42a12.5 12.5 0 0 1 0 25z" fill="#cdcdcd" p-id="9532"></path><path d="M774.6 231.51a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#cdcdcd" p-id="9533"></path><path d="M684.23 334.38H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69 12.5 12.5 0 0 1 13.38-17.82 76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91 12.5 12.5 0 0 1 13.35-17.83 103.18 103.18 0 0 1 85.3 101.35 103.13 103.13 0 0 1-102.87 102.87zM159.46 284.9a78.31 78.31 0 0 0 56.48 24.48h468.29a77.75 77.75 0 0 0 59.28-128.2 78.73 78.73 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#cdcdcd" p-id="9534"></path><path d="M618.45 284.91H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 104.18a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 0 0 0-155.73z" fill="#cdcdcd" p-id="9535"></path><path d="M176.2 235.43A53.39 53.39 0 1 1 229.59 182a53.45 53.45 0 0 1-53.39 53.43z m0-81.78A28.39 28.39 0 1 0 204.59 182a28.43 28.43 0 0 0-28.39-28.35zM551.12 194.54H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#cdcdcd" p-id="9536"></path><path d="M774.6 534.74a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#cdcdcd" p-id="9537"></path><path d="M684.23 637.61H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69A12.5 12.5 0 0 1 136.92 562a76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91 12.5 12.5 0 0 1 13.35-17.83 103.18 103.18 0 0 1 85.3 101.34 103.13 103.13 0 0 1-102.87 102.87z m-524.77-49.48a78.31 78.31 0 0 0 56.48 24.48h468.29a77.75 77.75 0 0 0 59.28-128.2 78.73 78.73 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#cdcdcd" p-id="9538"></path><path d="M618.45 588.13H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 407.4a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 0 0 0-155.73z" fill="#cdcdcd" p-id="9539"></path><path d="M176.2 538.66a53.39 53.39 0 1 1 53.39-53.39 53.45 53.45 0 0 1-53.39 53.39z m0-81.78a28.39 28.39 0 1 0 28.39 28.39 28.43 28.43 0 0 0-28.39-28.39zM551.12 497.77H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#cdcdcd" p-id="9540"></path><path d="M774.6 869.33a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#cdcdcd" p-id="9541"></path><path d="M684.23 972.2H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69 12.5 12.5 0 0 1 13.38-17.82 76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91A12.5 12.5 0 0 1 701.76 768a102.73 102.73 0 0 1 55.14 174 102.16 102.16 0 0 1-72.67 30.2z m-524.77-49.48a78.31 78.31 0 0 0 56.48 24.48h468.29A77.75 77.75 0 0 0 743.51 819a78.71 78.71 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#cdcdcd" p-id="9542"></path><path d="M618.45 922.72H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 742a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 1 0 0-155.73z" fill="#cdcdcd" p-id="9543"></path><path d="M176.2 873.25a53.39 53.39 0 1 1 53.39-53.39 53.45 53.45 0 0 1-53.39 53.39z m0-81.78a28.39 28.39 0 1 0 28.39 28.39 28.42 28.42 0 0 0-28.39-28.4zM551.12 832.35H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#cdcdcd" p-id="9544"></path></svg>
|
<?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="1574576420335" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9530" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M915.94 827.89h-91.42a12.5 12.5 0 0 1 0-25h78.92v-535h-78.92a12.5 12.5 0 1 1 0-25h91.42a12.5 12.5 0 0 1 12.5 12.5v560a12.5 12.5 0 0 1-12.5 12.5z" fill="#000" p-id="9531"></path><path d="M915.94 547.91h-91.42a12.5 12.5 0 0 1 0-25h91.42a12.5 12.5 0 0 1 0 25z" fill="#000" p-id="9532"></path><path d="M774.6 231.51a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#000" p-id="9533"></path><path d="M684.23 334.38H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69 12.5 12.5 0 0 1 13.38-17.82 76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91 12.5 12.5 0 0 1 13.35-17.83 103.18 103.18 0 0 1 85.3 101.35 103.13 103.13 0 0 1-102.87 102.87zM159.46 284.9a78.31 78.31 0 0 0 56.48 24.48h468.29a77.75 77.75 0 0 0 59.28-128.2 78.73 78.73 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#000" p-id="9534"></path><path d="M618.45 284.91H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 104.18a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 0 0 0-155.73z" fill="#000" p-id="9535"></path><path d="M176.2 235.43A53.39 53.39 0 1 1 229.59 182a53.45 53.45 0 0 1-53.39 53.43z m0-81.78A28.39 28.39 0 1 0 204.59 182a28.43 28.43 0 0 0-28.39-28.35zM551.12 194.54H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#000" p-id="9536"></path><path d="M774.6 534.74a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#000" p-id="9537"></path><path d="M684.23 637.61H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69A12.5 12.5 0 0 1 136.92 562a76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91 12.5 12.5 0 0 1 13.35-17.83 103.18 103.18 0 0 1 85.3 101.34 103.13 103.13 0 0 1-102.87 102.87z m-524.77-49.48a78.31 78.31 0 0 0 56.48 24.48h468.29a77.75 77.75 0 0 0 59.28-128.2 78.73 78.73 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#000" p-id="9538"></path><path d="M618.45 588.13H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 407.4a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 0 0 0-155.73z" fill="#000" p-id="9539"></path><path d="M176.2 538.66a53.39 53.39 0 1 1 53.39-53.39 53.45 53.45 0 0 1-53.39 53.39z m0-81.78a28.39 28.39 0 1 0 28.39 28.39 28.43 28.43 0 0 0-28.39-28.39zM551.12 497.77H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#000" p-id="9540"></path><path d="M774.6 869.33a90.63 90.63 0 0 1-90.37 90.37H215.94a90.62 90.62 0 0 1-81.18-50.81 88.92 88.92 0 0 0 15.4 1.33h468.29a90.26 90.26 0 0 0 81.18-129.92c42.44 7.35 74.97 44.57 74.97 89.03z" fill="#000" p-id="9541"></path><path d="M684.23 972.2H215.94a102.23 102.23 0 0 1-55.12-16.11 103.66 103.66 0 0 1-37.28-41.69 12.5 12.5 0 0 1 13.38-17.82 76.71 76.71 0 0 0 13.24 1.14h468.29a77.76 77.76 0 0 0 70-111.91A12.5 12.5 0 0 1 701.76 768a102.73 102.73 0 0 1 55.14 174 102.16 102.16 0 0 1-72.67 30.2z m-524.77-49.48a78.31 78.31 0 0 0 56.48 24.48h468.29A77.75 77.75 0 0 0 743.51 819a78.71 78.71 0 0 0-24.14-19.08 103.06 103.06 0 0 1-100.92 122.8z" fill="#000" p-id="9542"></path><path d="M618.45 922.72H150.16a102.86 102.86 0 1 1 0-205.73h468.29a102.86 102.86 0 0 1 0 205.73zM150.16 742a77.86 77.86 0 1 0 0 155.73h468.29a77.86 77.86 0 1 0 0-155.73z" fill="#000" p-id="9543"></path><path d="M176.2 873.25a53.39 53.39 0 1 1 53.39-53.39 53.45 53.45 0 0 1-53.39 53.39z m0-81.78a28.39 28.39 0 1 0 28.39 28.39 28.42 28.42 0 0 0-28.39-28.4zM551.12 832.35H423a12.5 12.5 0 0 1 0-25h128.12a12.5 12.5 0 0 1 0 25z" fill="#000" p-id="9544"></path></svg>
|
||||||
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="211.719" height="200" class="icon" p-id="10233" t="1543827724451" version="1.1" viewBox="0 0 1084 1024"><defs><style type="text/css">@font-face{font-family:rbicon;src:url(chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2) format("woff2");font-weight:400;font-style:normal}</style></defs><path fill="#bfbfbf" d="M1080.09609 434.500756c-4.216302-23.731757-26.9241-47.945376-50.595623-53.185637l-17.648235-4.095836a175.940257 175.940257 0 0 1-101.612877-80.832531 177.807476 177.807476 0 0 1-18.732427-129.801867l5.541425-16.684509c7.10748-23.129428-2.108151-54.992624-20.599646-70.833873 0 0-16.624276-14.094495-63.244529-41.199293-46.800951-26.984332-66.858502-34.513443-66.858502-34.513443-22.76803-8.372371-54.631227-0.361397-71.255503 17.407304l-12.287509 13.251234a173.470708 173.470708 0 0 1-120.465769 48.065842A174.13327 174.13327 0 0 1 421.329029 33.590675L409.583617 20.761071C393.140039 2.99237 361.096144-4.898138 338.267881 3.353767c0 0-20.358715 7.529111-67.099434 34.513443-46.800951 27.34573-63.244529 41.440225-63.244529 41.440225-18.431263 15.66055-27.646894 47.222582-20.539413 70.592941l5.059562 16.865207a178.048407 178.048407 0 0 1-18.672194 129.621169 174.916297 174.916297 0 0 1-102.275439 81.073463l-17.045906 3.854904c-23.310126 5.42096-46.258856 29.333415-50.595623 53.185637 0 0-3.854905 21.382674-3.854905 75.712737 0 54.330062 3.854905 75.712736 3.854905 75.712736 4.216302 23.972688 26.9241 47.945376 50.595623 53.185637l16.624276 3.854905a174.253736 174.253736 0 0 1 102.395904 81.314394c23.310126 40.837896 28.911785 87.337683 18.732427 129.801867l-4.81863 16.443578c-7.10748 23.129428 2.108151 54.992624 20.599646 70.833872 0 0 16.624276 14.094495 63.244529 41.199293 46.800951 27.104798 66.918735 34.513443 66.918735 34.513443 22.707798 8.372371 54.631227 0.361397 71.255503-17.407303l11.624947-12.588673a175.096996 175.096996 0 0 1 242.256662 0.120465l11.624947 12.648906c16.383345 17.708468 48.427239 25.598976 71.255503 17.347071 0 0 20.358715-7.529111 67.159666-34.513443 46.740719-27.104798 63.124063-41.199293 63.124064-41.199293 18.491496-15.600317 27.707127-47.463513 20.599646-70.833873l-5.059562-17.106139a176.723284 176.723284 0 0 1 18.672194-129.139305 176.060722 176.060722 0 0 1 102.395904-81.314394l16.68451-3.854905c23.310126-5.42096 46.258856-29.333415 50.595623-53.185637 0 0 3.854905-21.382674 3.854904-75.712737-0.240932-54.330062-4.095836-75.833202-4.095836-75.833202z m-537.819428 293.334149c-119.261112 0-216.175824-97.336342-216.175824-217.621412a216.657687 216.657687 0 0 1 216.236057-217.320249c119.200879 0 216.115591 97.276109 216.11559 217.56118-0.240932 120.044139-96.974945 217.320248-216.175823 217.320249z" p-id="10234"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="211.719" height="200" class="icon" p-id="10233" t="1543827724451" version="1.1" viewBox="0 0 1084 1024"><defs><style type="text/css">@font-face{font-family:rbicon;src:url(chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2) format("woff2");font-weight:400;font-style:normal}</style></defs><path fill="#000" d="M1080.09609 434.500756c-4.216302-23.731757-26.9241-47.945376-50.595623-53.185637l-17.648235-4.095836a175.940257 175.940257 0 0 1-101.612877-80.832531 177.807476 177.807476 0 0 1-18.732427-129.801867l5.541425-16.684509c7.10748-23.129428-2.108151-54.992624-20.599646-70.833873 0 0-16.624276-14.094495-63.244529-41.199293-46.800951-26.984332-66.858502-34.513443-66.858502-34.513443-22.76803-8.372371-54.631227-0.361397-71.255503 17.407304l-12.287509 13.251234a173.470708 173.470708 0 0 1-120.465769 48.065842A174.13327 174.13327 0 0 1 421.329029 33.590675L409.583617 20.761071C393.140039 2.99237 361.096144-4.898138 338.267881 3.353767c0 0-20.358715 7.529111-67.099434 34.513443-46.800951 27.34573-63.244529 41.440225-63.244529 41.440225-18.431263 15.66055-27.646894 47.222582-20.539413 70.592941l5.059562 16.865207a178.048407 178.048407 0 0 1-18.672194 129.621169 174.916297 174.916297 0 0 1-102.275439 81.073463l-17.045906 3.854904c-23.310126 5.42096-46.258856 29.333415-50.595623 53.185637 0 0-3.854905 21.382674-3.854905 75.712737 0 54.330062 3.854905 75.712736 3.854905 75.712736 4.216302 23.972688 26.9241 47.945376 50.595623 53.185637l16.624276 3.854905a174.253736 174.253736 0 0 1 102.395904 81.314394c23.310126 40.837896 28.911785 87.337683 18.732427 129.801867l-4.81863 16.443578c-7.10748 23.129428 2.108151 54.992624 20.599646 70.833872 0 0 16.624276 14.094495 63.244529 41.199293 46.800951 27.104798 66.918735 34.513443 66.918735 34.513443 22.707798 8.372371 54.631227 0.361397 71.255503-17.407303l11.624947-12.588673a175.096996 175.096996 0 0 1 242.256662 0.120465l11.624947 12.648906c16.383345 17.708468 48.427239 25.598976 71.255503 17.347071 0 0 20.358715-7.529111 67.159666-34.513443 46.740719-27.104798 63.124063-41.199293 63.124064-41.199293 18.491496-15.600317 27.707127-47.463513 20.599646-70.833873l-5.059562-17.106139a176.723284 176.723284 0 0 1 18.672194-129.139305 176.060722 176.060722 0 0 1 102.395904-81.314394l16.68451-3.854905c23.310126-5.42096 46.258856-29.333415 50.595623-53.185637 0 0 3.854905-21.382674 3.854904-75.712737-0.240932-54.330062-4.095836-75.833202-4.095836-75.833202z m-537.819428 293.334149c-119.261112 0-216.175824-97.336342-216.175824-217.621412a216.657687 216.657687 0 0 1 216.236057-217.320249c119.200879 0 216.115591 97.276109 216.11559 217.56118-0.240932 120.044139-96.974945 217.320248-216.175823 217.320249z" p-id="10234"/></svg>
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
src/assets/images/data.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
@ -23,8 +23,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div>
|
||||||
<img :src="user.avatarName ? baseApi + '/system/avatar/' + user.avatarName : Avatar" class="user-avatar">
|
<el-avatar :style="`background:${extractColorByName(user.nickName)}`">{{ extractName(user.nickName) }}</el-avatar>
|
||||||
<i class="el-icon-caret-bottom" />
|
<i class="el-icon-caret-bottom" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
@ -110,6 +110,17 @@ export default {
|
|||||||
this.$store.dispatch('LogOut').then(() => {
|
this.$store.dispatch('LogOut').then(() => {
|
||||||
location.reload()
|
location.reload()
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
extractColorByName(name) {
|
||||||
|
var temp = []
|
||||||
|
temp.push('#')
|
||||||
|
for (let index = 0; index < name.length; index++) {
|
||||||
|
temp.push(parseInt(name[index].charCodeAt(0), 10).toString(16))
|
||||||
|
}
|
||||||
|
return temp.slice(0, 5).join('').slice(0, 4)
|
||||||
|
},
|
||||||
|
extractName(name) {
|
||||||
|
return name.slice(0, 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Logo from '@/assets/images/logo.png'
|
import Logo from '@/assets/images/data.png'
|
||||||
export default {
|
export default {
|
||||||
name: 'SidebarLogo',
|
name: 'SidebarLogo',
|
||||||
props: {
|
props: {
|
||||||
@ -25,7 +25,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: 'AllData科学护城河',
|
title: '数据标准符合性检测工具',
|
||||||
logo: Logo
|
logo: Logo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ import Vue from 'vue'
|
|||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
import 'normalize.css/normalize.css'
|
import 'normalize.css/normalize.css'
|
||||||
|
import './styles/datastyle.css'
|
||||||
|
|
||||||
import Element from 'element-ui'
|
import Element from 'element-ui'
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ module.exports = {
|
|||||||
/**
|
/**
|
||||||
* @description 网站标题
|
* @description 网站标题
|
||||||
*/
|
*/
|
||||||
title: 'AllData科学护城河',
|
title: '数据标准符合性检测工具',
|
||||||
/**
|
/**
|
||||||
* @description 是否显示 tagsView
|
* @description 是否显示 tagsView
|
||||||
*/
|
*/
|
||||||
|
426
src/styles/datastyle.css
Normal file
@ -0,0 +1,426 @@
|
|||||||
|
/*sidebar-container*/
|
||||||
|
body #app .sidebar-container{
|
||||||
|
background: #f5f6fd;
|
||||||
|
border-right: 1px solid #E5E6EB;
|
||||||
|
}
|
||||||
|
body .sidebar-logo-container {
|
||||||
|
padding: 8px 0;
|
||||||
|
height: 66px !important;
|
||||||
|
}
|
||||||
|
body .sidebar-logo-container .sidebar-logo-link .sidebar-title{
|
||||||
|
color: #1D2129 !important;
|
||||||
|
font-size: 16px !important;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-scrollbar__view>.el-menu{
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-scrollbar__view>.el-menu .menu-wrapper+.menu-wrapper{
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-menu{
|
||||||
|
background: #f5f6fd !important;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-submenu .el-menu-item {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-menu .el-menu-item{
|
||||||
|
background: #f5f6fd !important;
|
||||||
|
color: #4E5969 !important;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-submenu>.el-submenu__title .svg-icon{
|
||||||
|
fill:currentColor;
|
||||||
|
color:#4E5969;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-menu .el-menu .el-menu-item .svg-icon{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-menu .el-menu .el-menu-item .svg-icon+span{
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .submenu-title-noDropdown:hover,
|
||||||
|
body #app .sidebar-container .el-submenu__title:hover {
|
||||||
|
background-color: #f5f6fd !important;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-submenu>.el-submenu__title{
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
background: #f5f6fd !important;
|
||||||
|
color: #4E5969 !important;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .is-active>.el-submenu__title{
|
||||||
|
color: #233A82;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover,
|
||||||
|
body #app .sidebar-container .el-submenu .el-menu-item:hover {
|
||||||
|
background: #f5f6fd !important;
|
||||||
|
color: #4E5969 !important;
|
||||||
|
}
|
||||||
|
body #app .sidebar-container .el-submenu .el-menu-item.is-active,
|
||||||
|
body #app .sidebar-container .el-submenu .el-menu-item.is-active:hover{
|
||||||
|
background: #E9ECF4 !important;
|
||||||
|
color: #233A82 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
body #app .hideSidebar .submenu-title-noDropdown .el-tooltip .svg-icon,
|
||||||
|
body #app .hideSidebar .el-submenu>.el-submenu__title .svg-icon{
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
body #app .hideSidebar .submenu-title-noDropdown .el-tooltip,
|
||||||
|
body #app .hideSidebar .el-submenu>.el-submenu__title{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
body #app .openSidebar .sidebar-logo-container .sidebar-logo-link .sidebar-logo{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
body #app .hideSidebar .sidebar-logo-container .sidebar-logo-link .sidebar-logo{
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*main-container*/
|
||||||
|
|
||||||
|
/*fixed-header*/
|
||||||
|
body .main-container .fixed-header{
|
||||||
|
z-index: 1002 !important;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar .hamburger-container{
|
||||||
|
padding: 0 !important;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 40px;
|
||||||
|
background: #f5f6fd;
|
||||||
|
color: #4E5969;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 150px;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
float: inherit;
|
||||||
|
transition:transform .28s;
|
||||||
|
}
|
||||||
|
body .hideSidebar .main-container .fixed-header .navbar .hamburger-container{
|
||||||
|
left: 7px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar{
|
||||||
|
box-shadow: none !important;
|
||||||
|
border-bottom: 1px solid #E5E6EB;
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar .app-breadcrumb.el-breadcrumb{
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar .app-breadcrumb.el-breadcrumb .el-breadcrumb__item .el-breadcrumb__inner.is-link,
|
||||||
|
body .main-container .fixed-header .navbar .app-breadcrumb.el-breadcrumb .el-breadcrumb__item .el-breadcrumb__inner a{
|
||||||
|
color: #4E5969 !important;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar .app-breadcrumb.el-breadcrumb .el-breadcrumb__item .no-redirect{
|
||||||
|
color: #4E5969 !important;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .navbar .app-breadcrumb.el-breadcrumb .el-breadcrumb__item:last-child .no-redirect{
|
||||||
|
color: #1D2129 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container{
|
||||||
|
box-shadow: none !important;
|
||||||
|
border-bottom: 1px solid #E5E6EB;
|
||||||
|
background: #F7F8FA;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item{
|
||||||
|
background: transparent;
|
||||||
|
border-color: transparent;
|
||||||
|
color: #4E5969;
|
||||||
|
margin-top: 6px;
|
||||||
|
padding: 0 5px 0 16px;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item:first-of-type {
|
||||||
|
margin-left: 20px;
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item.active{
|
||||||
|
background-color: #fff;
|
||||||
|
color: #233a82;
|
||||||
|
border-color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item.active::before{
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item .el-icon-close{
|
||||||
|
background: transparent !important;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item .el-icon-close:hover,
|
||||||
|
body .main-container .fixed-header .tags-view-container .tags-view-wrapper .tags-view-item.active .el-icon-close:hover{
|
||||||
|
color: #233a82;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*app-main*/
|
||||||
|
body .hasTagsView .fixed-header+.app-main{
|
||||||
|
padding-top: 90px !important;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main{
|
||||||
|
min-height: calc(100vh - 90px) !important;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .el-card{
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .el-card.box-card.is-always-shadow{
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .el-card .el-card__header{
|
||||||
|
border-bottom: 1px solid #E5E6EB;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .el-card .el-card__header>.clearfix>span{
|
||||||
|
line-height: 29px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #1D2129 ;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .el-card .el-card__body{
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .dashboard-editor-container{
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #f7f8fa;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .dashboard-editor-container .panel-group:first-child,
|
||||||
|
body .hasTagsView .app-main .dashboard-editor-container .github-corner+.panel-group{
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main .dashboard-editor-container .github-corner{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.app-container*/
|
||||||
|
body .hasTagsView .app-main>.app-container{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main>.app-container>.el-row{
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main>.app-container>.el-row>.el-col{
|
||||||
|
padding-left: 0 !important;
|
||||||
|
padding-right: 0 !important;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main>.app-container>.el-row>.el-col.el-col-6{
|
||||||
|
width: 248px;
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main>.app-container>.el-row>.el-col.el-col-6+.el-col-18{
|
||||||
|
width: calc(100% - 248px);
|
||||||
|
}
|
||||||
|
body .hasTagsView .app-main>.app-container>.el-row>.el-col.el-col-6>.el-card>.el-card__body{
|
||||||
|
height: calc(100vh - 90px);
|
||||||
|
overflow: auto;
|
||||||
|
border-right: 1px solid #e5e6eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-button*/
|
||||||
|
body .el-button,
|
||||||
|
body .el-button:focus{
|
||||||
|
color:#4E5969;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#E5E6EB;
|
||||||
|
}
|
||||||
|
body .el-button:hover{
|
||||||
|
color:#4E5969;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#C9CDD4;
|
||||||
|
}
|
||||||
|
body .el-button:active{
|
||||||
|
color:#4E5969;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#86909C;
|
||||||
|
}
|
||||||
|
body .el-button.is-disabled,
|
||||||
|
body .el-button.is-disabled:active,
|
||||||
|
body .el-button.is-disabled:focus,
|
||||||
|
body .el-button.is-disabled:hover {
|
||||||
|
color: #C9CDD4;
|
||||||
|
background-color: #fff;
|
||||||
|
border-color: #E5E6EB;
|
||||||
|
}
|
||||||
|
body .el-button--primary,
|
||||||
|
body .el-button--primary:focus{
|
||||||
|
color:#fff;
|
||||||
|
background-color:#233A82;
|
||||||
|
border-color:#233A82;
|
||||||
|
}
|
||||||
|
body .el-button--primary:hover{
|
||||||
|
color:#fff;
|
||||||
|
background:#2B50C4;
|
||||||
|
border-color:#2B50C4;
|
||||||
|
}
|
||||||
|
body .el-button--primary:active,
|
||||||
|
body .el-button--primary.is-active{
|
||||||
|
color:#fff;
|
||||||
|
background:#042281;
|
||||||
|
border-color:#042281;
|
||||||
|
}
|
||||||
|
body .el-button--primary.is-disabled,
|
||||||
|
body .el-button--primary.is-disabled:active,
|
||||||
|
body .el-button--primary.is-disabled:focus,
|
||||||
|
body .el-button--primary.is-disabled:hover {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #93A7E4;
|
||||||
|
border-color: #93A7E4;
|
||||||
|
}
|
||||||
|
body .el-button--text,
|
||||||
|
body .el-button--text:focus{
|
||||||
|
color: #233A82;
|
||||||
|
background-color: transparent;
|
||||||
|
border: 0;
|
||||||
|
padding: 0 !important;
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
body .el-button--text:hover{
|
||||||
|
color:#2B50C4;
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
|
body .el-button--text:active{
|
||||||
|
color:#042281;
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
|
body .el-button--text.is-disabled,
|
||||||
|
body .el-button--text.is-disabled:active,
|
||||||
|
body .el-button--text.is-disabled:focus,
|
||||||
|
body .el-button--text.is-disabled:hover {
|
||||||
|
color:#93A7E4;
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-tag*/
|
||||||
|
body .el-tag{
|
||||||
|
background: #E8F7FF;
|
||||||
|
border-color: #E8F7FF;
|
||||||
|
color: #3491fa;
|
||||||
|
}
|
||||||
|
body .el-tag.el-tag--success{
|
||||||
|
background: #E8FFEA;
|
||||||
|
border-color: #E8FFEA;
|
||||||
|
color: #00b42a;
|
||||||
|
}
|
||||||
|
body .el-tag.el-tag--warning{
|
||||||
|
background: #FFF7E8;
|
||||||
|
border-color: #FFF7E8;
|
||||||
|
color: #ff7d00;
|
||||||
|
}
|
||||||
|
body .el-tag.el-tag--danger{
|
||||||
|
background: #FFECE8;
|
||||||
|
border-color: #FFECE8;
|
||||||
|
color: #f53f3f;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-table*/
|
||||||
|
body .el-table{
|
||||||
|
color: #1d2129;
|
||||||
|
}
|
||||||
|
body .el-table::before{
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
body .el-table-column--selection .cell {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
body .el-table .el-table__cell.is-center {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
body .el-table th.el-table__cell{
|
||||||
|
background: #f2f3f5;
|
||||||
|
color: #1d2129;
|
||||||
|
}
|
||||||
|
body .el-table th.el-table__cell.is-leaf,
|
||||||
|
body .el-table td.el-table__cell{
|
||||||
|
border-color: #e5e6eb ;
|
||||||
|
}
|
||||||
|
body .el-table--medium .el-table__cell {
|
||||||
|
padding: 8px 0;
|
||||||
|
}
|
||||||
|
body .el-table--border {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
body .el-table--border .el-table__cell {
|
||||||
|
border-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-tree*/
|
||||||
|
body .el-tree {
|
||||||
|
color: #1d2129;
|
||||||
|
}
|
||||||
|
body .el-tree-node+.el-tree-node{
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
body .el-tree-node__content{
|
||||||
|
height: 34px;
|
||||||
|
}
|
||||||
|
body .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
|
||||||
|
background-color: #f2f3f5;
|
||||||
|
color: #233A82;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
body .el-tree--highlight-current .el-tree-node .el-tree-node__content:hover{
|
||||||
|
background-color: #f2f3f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-checkbox*/
|
||||||
|
body .el-checkbox__inner:hover,
|
||||||
|
body .el-checkbox__input.is-focus .el-checkbox__inner{
|
||||||
|
border-color: #233A82;
|
||||||
|
}
|
||||||
|
body .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||||
|
background-color: #233A82;
|
||||||
|
border-color: #233A82;
|
||||||
|
}
|
||||||
|
body .el-checkbox__input.is-checked+.el-checkbox__label {
|
||||||
|
color: #233A82;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-radio*/
|
||||||
|
body .el-radio__inner:hover,
|
||||||
|
body .el-.el-radio__input.is-focus .el-.el-radio__inner {
|
||||||
|
border-color: #233A82;
|
||||||
|
}
|
||||||
|
body .el-radio__input.is-checked .el-radio__inner {
|
||||||
|
border-color: #233A82;
|
||||||
|
background: #233A82;
|
||||||
|
}
|
||||||
|
body .el-radio__input.is-checked+.el-radio__label {
|
||||||
|
color: #233A82;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-input*/
|
||||||
|
body .el-textarea__inner:focus,
|
||||||
|
body .el-input__inner:focus{
|
||||||
|
border-color:#233A82
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-select-dropdown*/
|
||||||
|
body .el-select .el-input.is-focus .el-input__inner,
|
||||||
|
body .el-pagination__sizes .el-input .el-input__inner:hover{
|
||||||
|
border-color:#233A82
|
||||||
|
}
|
||||||
|
body .el-select-dropdown__item.hover,
|
||||||
|
body .el-select-dropdown__item:hover {
|
||||||
|
background-color: #f2f3f5;
|
||||||
|
}
|
||||||
|
body .el-select-dropdown__item.selected {
|
||||||
|
color: #233A82;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-pager*/
|
||||||
|
body .el-pager li:hover,
|
||||||
|
body .el-pager li.active {
|
||||||
|
color: #233A82;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*el-main-footer*/
|
||||||
|
body #el-main-footer{
|
||||||
|
display: none;
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form">
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form">
|
||||||
<div style="text-align: center;"> <img :src="allDataIcon" alt=""></div>
|
<div style="text-align: center;"> <img :src="allDataIcon" alt=""></div>
|
||||||
<h3 class="title">
|
<h3 class="title">
|
||||||
AllData科学护城河
|
数据标准符合性检测工具
|
||||||
</h3>
|
</h3>
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
||||||
@ -49,7 +49,7 @@ import { getCodeImg } from '@/api/login'
|
|||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
import qs from 'qs'
|
import qs from 'qs'
|
||||||
import Background from '@/assets/images/background.webp'
|
import Background from '@/assets/images/background.webp'
|
||||||
import allDataIcon from '@/assets/images/avatar.png'
|
import allDataIcon from '@/assets/images/data.png'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Login',
|
name: 'Login',
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button v-hasPerm="['masterdata:data:add']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
<el-button v-hasPerm="['masterdata:data:add']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
<el-form ref="form" :model="form" label-width="80px">
|
<el-form ref="form" :model="form" label-width="80px">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-for="(item, index) in columnList"
|
v-for="(item) in columnList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.columnComment"
|
:label="item.columnComment"
|
||||||
:prop="item.columnName"
|
:prop="item.columnName"
|
||||||
@ -42,10 +42,10 @@
|
|||||||
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
||||||
<el-select v-model.trim="form[item.columnName]" placeholder="请选择">
|
<el-select v-model.trim="form[item.columnName]" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in item.dictList"
|
v-for="dictitem in item.dictList"
|
||||||
:key="item.id"
|
:key="dictitem.id"
|
||||||
:label="item.label"
|
:label="dictitem.label"
|
||||||
:value="item.value"
|
:value="dictitem.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -54,9 +54,9 @@
|
|||||||
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
||||||
<el-radio-group v-model.trim="form[item.columnName]">
|
<el-radio-group v-model.trim="form[item.columnName]">
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="item in item.dictList"
|
v-for="dictitem in item.dictList"
|
||||||
:key="item.id"
|
:key="dictitem.id"
|
||||||
:label="item.value"
|
:label="dictitem.value"
|
||||||
>{{ item.label }}</el-radio>
|
>{{ item.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
@ -65,9 +65,9 @@
|
|||||||
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
<template v-if="item.isBindDict === '1' && item.dictList && item.dictList.length > 0">
|
||||||
<el-checkbox-group v-model.trim="form[item.columnName]">
|
<el-checkbox-group v-model.trim="form[item.columnName]">
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
v-for="item in item.dictList"
|
v-for="dictitem in item.dictList"
|
||||||
:key="item.id"
|
:key="dictitem.id"
|
||||||
:label="item.value"
|
:label="dictitem.value"
|
||||||
>{{ item.label }}</el-checkbox>
|
>{{ item.label }}</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<transition name="el-zoom-in-center">
|
<iframe src="http://192.168.2.58:8000/model/modelChildren" width="100%" height="850px" frameborder="0" />
|
||||||
|
<!--<transition name="el-zoom-in-center">
|
||||||
<data-model-list v-if="options.showList" @showCard="showCard" />
|
<data-model-list v-if="options.showList" @showCard="showCard" />
|
||||||
</transition>
|
</transition>
|
||||||
<transition name="el-zoom-in-top">
|
<transition name="el-zoom-in-top">
|
||||||
@ -11,19 +12,13 @@
|
|||||||
</transition>
|
</transition>
|
||||||
<transition name="el-zoom-in-bottom">
|
<transition name="el-zoom-in-bottom">
|
||||||
<data-model-detail v-if="options.showDetail" :data="options.data" @showCard="showCard" />
|
<data-model-detail v-if="options.showDetail" :data="options.data" @showCard="showCard" />
|
||||||
</transition>
|
</transition>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import DataModelList from './DataModelList'
|
|
||||||
import DataModelAdd from './DataModelAdd'
|
|
||||||
import DataModelEdit from './DataModelEdit'
|
|
||||||
import DataModelDetail from './DataModelDetail'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DataModel',
|
name: 'DataModel',
|
||||||
components: { DataModelList, DataModelAdd, DataModelEdit, DataModelDetail },
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
options: {
|
options: {
|
||||||
|
@ -1,23 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-card class="box-card" shadow="always">
|
<el-card class="box-card" shadow="always">
|
||||||
<el-row>
|
<div class="body-wrapper">
|
||||||
<el-col :span="24">
|
<el-form :inline="true" :model="searchForm">
|
||||||
<el-form ref="queryForm" :model="queryParams" :inline="true" class="demo-form-inline">
|
<el-form-item label="数据库">
|
||||||
<el-form-item label="数据表名">
|
<el-select v-model="searchForm.sourceId" placeholder="数据库">
|
||||||
<el-input
|
<el-option
|
||||||
v-model="queryParams.tableName"
|
v-for="item in sourceOptions"
|
||||||
placeholder="请输入数据表名"
|
:key="item.id"
|
||||||
clearable
|
:label="item.sourceName"
|
||||||
size="small"
|
:value="item.id"
|
||||||
/>
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据表">
|
||||||
|
<el-select v-model="searchForm.tableId" clearable placeholder="数据表">
|
||||||
|
<el-option
|
||||||
|
v-for="item in tableOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.tableComment ? item.tableComment : item.tableName"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleQuery">查询</el-button>
|
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
<el-divider />
|
||||||
</el-row>
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-table
|
<el-table
|
||||||
@ -27,40 +37,65 @@
|
|||||||
:max-height="200"
|
:max-height="200"
|
||||||
style="width: 100%; margin: 15px 0;"
|
style="width: 100%; margin: 15px 0;"
|
||||||
>
|
>
|
||||||
<el-table-column prop="subjectArea" label="数据主题域" align="center" show-overflow-tooltip />
|
<el-table-column prop="CONSTRAINT_NAME" label="映射名称" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="mappingName" label="映射名称" align="center" show-overflow-tooltip />
|
<el-table-column prop="TABLE_NAME" label="源表" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="sourceTable" label="源表" align="center" show-overflow-tooltip />
|
<el-table-column prop="REFERENCED_TABLE_NAME" label="目标表" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="targetTable" label="目标表" align="center" show-overflow-tooltip />
|
<el-table-column prop="COLUMN_NAME" label="映射字段" align="center" show-overflow-tooltip />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<div id="chart" style="width: 100%; height: 300px;" />
|
<div id="chart" style="width: 100%; height: 500px;" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import echarts from 'echarts'
|
import echarts from 'echarts'
|
||||||
|
import { listDataSource } from '@/api/metadata/datasource'
|
||||||
|
import { listDataTable } from '@/api/metadata/datatable'
|
||||||
|
import { getMetadatablood } from '@/api/metadata/datasource'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DataBlood',
|
name: 'DataBlood',
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
|
searchForm: {
|
||||||
|
sourceId: '',
|
||||||
|
tableId: ''
|
||||||
|
},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
tableName: ''
|
tableName: ''
|
||||||
},
|
},
|
||||||
|
sourceOptions: [],
|
||||||
|
tableOptions: [],
|
||||||
chart: null,
|
chart: null,
|
||||||
tableDataList: []
|
tableDataList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
'searchForm.sourceId': {
|
||||||
|
immediate: true,
|
||||||
|
// handler:是一个回调函数,即监听到变化应该执行的函数
|
||||||
|
handler(value) {
|
||||||
|
if (value) {
|
||||||
|
// 清空数据
|
||||||
|
this.searchForm.tableId = ''
|
||||||
|
this.getDataTableList(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.getDataSourceList()
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.chart = echarts.init(document.getElementById('chart'))
|
this.chart = echarts.init(document.getElementById('chart'))
|
||||||
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (!this.chart) {
|
if (!this.chart) {
|
||||||
@ -70,20 +105,43 @@ export default {
|
|||||||
this.chart = null
|
this.chart = null
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getDataSourceList() {
|
||||||
|
listDataSource().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.sourceOptions = response.data
|
||||||
|
this.searchForm.sourceId = this.sourceOptions[0].id
|
||||||
|
this.getDataTableList(this.sourceOptions[0].id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDataTableList(sourceId) {
|
||||||
|
const data = {}
|
||||||
|
data.sourceId = sourceId
|
||||||
|
listDataTable(data).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
console.log('ddddddd', response)
|
||||||
|
this.tableOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.tableDataList = [
|
getMetadatablood({ sourceId: this.searchForm.sourceId, tableId: this.searchForm.tableId }).then(response => {
|
||||||
{ subjectArea: 'DataCenter', mappingName: 'm_ts_test_table_inc', sourceTable: 'src_test_table', targetTable: 'ts_test_table' },
|
if (response.success) {
|
||||||
{ subjectArea: 'DataCenter', mappingName: 'm_ts_test_table_inc', sourceTable: 'ts_test_table', targetTable: 'th_test_table' },
|
const { data } = response
|
||||||
{ subjectArea: 'DataCenter', mappingName: 'm_ts_test_table_inc', sourceTable: 'ts_test_table', targetTable: 'ti_test_table' },
|
this.tableDataList = data
|
||||||
{ subjectArea: 'DataCenter', mappingName: 'm_ods_test_table_inc', sourceTable: 'ti_test_table', targetTable: 't_test_table' }
|
console.log('datadata', data)
|
||||||
]
|
this.reloadData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
reloadData() {
|
||||||
let data = { nodes: [], links: [] }
|
let data = { nodes: [], links: [] }
|
||||||
const nodes = []
|
const nodes = []
|
||||||
const links = []
|
const links = []
|
||||||
const colors = ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4']
|
const colors = ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4']
|
||||||
this.tableDataList.forEach(item => {
|
this.tableDataList.forEach(item => {
|
||||||
nodes.push({
|
nodes.push({
|
||||||
name: item.sourceTable,
|
name: item.TABLE_NAME,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
normal: {
|
normal: {
|
||||||
color: colors[Math.floor(Math.random() * colors.length)]
|
color: colors[Math.floor(Math.random() * colors.length)]
|
||||||
@ -91,7 +149,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
nodes.push({
|
nodes.push({
|
||||||
name: item.targetTable,
|
name: item.REFERENCED_TABLE_NAME,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
normal: {
|
normal: {
|
||||||
color: colors[Math.floor(Math.random() * colors.length)]
|
color: colors[Math.floor(Math.random() * colors.length)]
|
||||||
@ -99,10 +157,10 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
links.push({
|
links.push({
|
||||||
source: item.sourceTable,
|
source: item.TABLE_NAME,
|
||||||
target: item.targetTable,
|
target: item.REFERENCED_TABLE_NAME,
|
||||||
value: item.mappingName.length,
|
value: item.CONSTRAINT_NAME.length,
|
||||||
mapping: item.mappingName
|
mapping: item.CONSTRAINT_NAME
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// nodes数组去重
|
// nodes数组去重
|
||||||
|
@ -131,6 +131,8 @@ export default {
|
|||||||
listDataSource().then(response => {
|
listDataSource().then(response => {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
this.sourceOptions = response.data
|
this.sourceOptions = response.data
|
||||||
|
this.searchForm.sourceId = this.sourceOptions[0].id
|
||||||
|
this.getDataTableList(this.sourceOptions[0].id)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -140,6 +142,7 @@ export default {
|
|||||||
listDataTable(data).then(response => {
|
listDataTable(data).then(response => {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
this.tableOptions = response.data
|
this.tableOptions = response.data
|
||||||
|
this.searchForm.tableId = this.tableOptions.id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -2,66 +2,19 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-card class="box-card" shadow="always">
|
<el-card class="box-card" shadow="always">
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
<div v-if="searchExecuting">
|
待开发~~~
|
||||||
<el-row>
|
|
||||||
<el-col :span="12" :offset="6">
|
|
||||||
<el-input v-model="keyword" placeholder="请输入内容">
|
|
||||||
<el-select slot="prepend" v-model="type" placeholder="请选择" style="width: 100px;" @change="typeSelectChanged">
|
|
||||||
<el-option label="数据库" value="1" />
|
|
||||||
<el-option label="数据表" value="2" />
|
|
||||||
<el-option label="数据元" value="3" />
|
|
||||||
</el-select>
|
|
||||||
<el-button slot="append" :disabled="btnEnable" icon="el-icon-search" @click="search" />
|
|
||||||
</el-input>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-divider />
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<source-pane v-if="type === '1'" :data="dataList" />
|
|
||||||
<table-pane v-if="type === '2'" :data="dataList" />
|
|
||||||
<column-pane v-if="type === '3'" :data="dataList" />
|
|
||||||
<el-pagination
|
|
||||||
:page-sizes="[10, 20, 50, 100]"
|
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
|
||||||
:current-page.sync="queryParams.pageNum"
|
|
||||||
:page-size.sync="queryParams.pageSize"
|
|
||||||
:total="total"
|
|
||||||
@size-change="handleSizeChange"
|
|
||||||
@current-change="handleCurrentChange"
|
|
||||||
/>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
<div class="search-container">
|
|
||||||
<el-input v-model="keyword" placeholder="请输入内容">
|
|
||||||
<el-select slot="prepend" v-model="type" placeholder="请选择" style="width: 100px;">
|
|
||||||
<el-option label="数据库" value="1" />
|
|
||||||
<el-option label="数据表" value="2" />
|
|
||||||
<el-option label="数据元" value="3" />
|
|
||||||
</el-select>
|
|
||||||
<el-button slot="append" icon="el-icon-search" :disabled="btnEnable" @click="search" />
|
|
||||||
</el-input>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SourcePane from './SourcePane'
|
|
||||||
import TablePane from './TablePane'
|
|
||||||
import ColumnPane from './ColumnPane'
|
|
||||||
|
|
||||||
import { pageDataSource } from '@/api/metadata/datasource'
|
import { pageDataSource } from '@/api/metadata/datasource'
|
||||||
import { pageDataTable } from '@/api/metadata/datatable'
|
import { pageDataTable } from '@/api/metadata/datatable'
|
||||||
import { pageDataColumn } from '@/api/metadata/datacolumn'
|
import { pageDataColumn } from '@/api/metadata/datacolumn'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DataSearch',
|
name: 'DataSearch',
|
||||||
components: { SourcePane, TablePane, ColumnPane },
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searchExecuting: false,
|
searchExecuting: false,
|
||||||
|
@ -3,8 +3,10 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button v-if="active == 2" v-hasPerm="['metadata:datasource:add']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
<el-button v-if="active == 2" v-hasPerm="['metadata:datasource:add']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
<el-button v-if="active == 1" size="mini" type="primary" @click="handleNextStep">下一步</el-button>
|
||||||
|
<el-button v-if="active == 2" size="mini" type="primary" @click="handleLastStep">上一步</el-button>
|
||||||
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
@ -12,7 +14,7 @@
|
|||||||
<el-step title="数据源信息" />
|
<el-step title="数据源信息" />
|
||||||
<el-step title="连接信息" />
|
<el-step title="连接信息" />
|
||||||
</el-steps>
|
</el-steps>
|
||||||
<el-form v-if="active == 1" ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form v-if="active == 1" ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="数据源类型" prop="dbType">
|
<el-form-item label="数据源类型" prop="dbType">
|
||||||
<el-select v-model="form.dbType">
|
<el-select v-model="form.dbType">
|
||||||
<el-option
|
<el-option
|
||||||
@ -62,8 +64,6 @@
|
|||||||
<el-button v-hasPerm="['metadata:datasource:connect']" size="mini" type="primary" @click="handleCheckConnection">连通性检测</el-button>
|
<el-button v-hasPerm="['metadata:datasource:connect']" size="mini" type="primary" @click="handleCheckConnection">连通性检测</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-button v-if="active == 1" style="margin-top: 12px;" @click="handleNextStep">下一步</el-button>
|
|
||||||
<el-button v-if="active == 2" style="margin-top: 12px;" @click="handleLastStep">上一步</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button v-if="active == 2" v-hasPerm="['metadata:datasource:edit']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
<el-button v-if="active == 2" v-hasPerm="['metadata:datasource:edit']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<el-step title="数据源信息" />
|
<el-step title="数据源信息" />
|
||||||
<el-step title="连接信息" />
|
<el-step title="连接信息" />
|
||||||
</el-steps>
|
</el-steps>
|
||||||
<el-form v-if="active == 1" ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form v-if="active == 1" ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="数据源类型" prop="dbType">
|
<el-form-item label="数据源类型" prop="dbType">
|
||||||
<el-select v-model="form.dbType">
|
<el-select v-model="form.dbType">
|
||||||
<el-option
|
<el-option
|
||||||
|
@ -102,10 +102,6 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-popover
|
|
||||||
placement="left"
|
|
||||||
trigger="click"
|
|
||||||
>
|
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPerm="['metadata:datasource:edit']"
|
v-hasPerm="['metadata:datasource:edit']"
|
||||||
size="mini"
|
size="mini"
|
||||||
@ -127,8 +123,6 @@
|
|||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
<el-button slot="reference">操作</el-button>
|
|
||||||
</el-popover>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -71,6 +72,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -63,6 +64,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -102,6 +103,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -37,6 +38,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -54,6 +55,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<Search />
|
<Search />
|
||||||
<crudOperation>
|
<crudOperation>
|
||||||
@ -47,6 +48,7 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<Search />
|
<Search />
|
||||||
<crudOperation>
|
<crudOperation>
|
||||||
@ -46,6 +47,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
<el-input v-model="query.filter" clearable size="small" placeholder="全表模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
<el-input v-model="query.filter" clearable size="small" placeholder="全表模糊搜索" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||||
@ -50,6 +51,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
423
src/views/quality/checkcontentrule/CheckContentRuleAdd.vue
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
<template>
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>{{ title }}</span>
|
||||||
|
<el-button-group style="float: right;">
|
||||||
|
<el-button v-hasPerm="['quality:rule:add']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
|
<div class="body-wrapper">
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="规则名称" prop="ruleName">
|
||||||
|
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查类型" prop="ruleItemId">
|
||||||
|
<el-select v-model="form.ruleItemId" placeholder="请选择核查类型" @change="ruleItemSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleItemOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.itemExplain"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="规则级别" prop="ruleLevelId">
|
||||||
|
<el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleLevelOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据源" prop="ruleSourceId">
|
||||||
|
<el-select v-model="form.ruleSourceId" placeholder="请选择数据源" @change="sourceSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="source in sourceOptions"
|
||||||
|
:key="source.id"
|
||||||
|
:label="source.sourceName"
|
||||||
|
:value="source.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据表" prop="ruleTableId">
|
||||||
|
<el-select v-model="form.ruleTableId" placeholder="请选择数据表" @change="tableSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查字段" prop="ruleColumnId">
|
||||||
|
<el-select v-model="form.ruleColumnId" placeholder="请选择核查字段" @change="columnSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="column in columnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-divider content-position="left">核查配置</el-divider>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'timeliness_key'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="判定阀值">
|
||||||
|
<el-input-number v-model="form.ruleConfig.timeliness.threshold" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典类别">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.gbTypeId" placeholder="请选择" @change="dictTypeSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="item in dictTypeOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.gbTypeName"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典字段">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.bindGbColumn" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in gbColumnOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联表">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedTableId" placeholder="请选择" @change="relatedTableSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联字段">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择" @change="relatedColumnSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="column in relatedColumnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'accuracy_key_length'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="最大长度">
|
||||||
|
<el-input-number v-model="form.ruleConfig.accuracy.maxLength" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in statusOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.itemText"
|
||||||
|
>{{ dict.itemValue }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listRuleLevel, listRuleItem, addCheckRule } from '@/api/quality/checkrule'
|
||||||
|
import { listDataSource } from '@/api/metadata/datasource'
|
||||||
|
import { listDataTable } from '@/api/metadata/datatable'
|
||||||
|
import { listDataColumn } from '@/api/metadata/datacolumn'
|
||||||
|
import { listDataDictType } from '@/api/standard/datadict'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CheckContentRuleAdd',
|
||||||
|
props: {
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: function() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '核查规则新增',
|
||||||
|
// 展示切换
|
||||||
|
showOptions: {
|
||||||
|
data: {},
|
||||||
|
showList: true,
|
||||||
|
showAdd: false,
|
||||||
|
showEdit: false,
|
||||||
|
showDetail: false
|
||||||
|
},
|
||||||
|
// 保存按钮
|
||||||
|
loadingOptions: {
|
||||||
|
loading: false,
|
||||||
|
loadingText: '保存',
|
||||||
|
isDisabled: false
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {
|
||||||
|
ruleName: undefined,
|
||||||
|
ruleTypeId: undefined,
|
||||||
|
ruleItemId: undefined,
|
||||||
|
ruleLevelId: undefined,
|
||||||
|
ruleDbType: undefined,
|
||||||
|
ruleSourceId: undefined,
|
||||||
|
ruleSource: undefined,
|
||||||
|
ruleTableId: undefined,
|
||||||
|
ruleTable: undefined,
|
||||||
|
ruleTableComment: undefined,
|
||||||
|
ruleColumnId: undefined,
|
||||||
|
ruleColumn: undefined,
|
||||||
|
ruleColumnComment: undefined,
|
||||||
|
ruleConfig: {
|
||||||
|
ruleItemCode: undefined,
|
||||||
|
consistent: {
|
||||||
|
gbTypeId: undefined,
|
||||||
|
bindGbColumn: undefined
|
||||||
|
},
|
||||||
|
relevance: {
|
||||||
|
relatedTableId: undefined,
|
||||||
|
relatedTable: undefined,
|
||||||
|
relatedTableComment: undefined,
|
||||||
|
relatedColumnId: undefined,
|
||||||
|
relatedColumn: undefined,
|
||||||
|
relatedColumnComment: undefined
|
||||||
|
},
|
||||||
|
timeliness: {
|
||||||
|
threshold: undefined
|
||||||
|
},
|
||||||
|
accuracy: {
|
||||||
|
maxLength: undefined
|
||||||
|
}
|
||||||
|
},
|
||||||
|
status: '1'
|
||||||
|
},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
ruleName: [
|
||||||
|
{ required: true, message: '规则名称不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
ruleItemId: [
|
||||||
|
{ required: true, message: '核查类型不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleLevelId: [
|
||||||
|
{ required: true, message: '规则级别不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleSourceId: [
|
||||||
|
{ required: true, message: '数据源不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleTableId: [
|
||||||
|
{ required: true, message: '数据表不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleColumnId: [
|
||||||
|
{ required: true, message: '核查字段不能为空', trigger: 'change' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 状态数据字典
|
||||||
|
statusOptions: [],
|
||||||
|
// 规则级别数据字典
|
||||||
|
ruleLevelOptions: [],
|
||||||
|
// 核查类型数据字典
|
||||||
|
ruleItemOptions: [],
|
||||||
|
sourceOptions: [],
|
||||||
|
tableOptions: [],
|
||||||
|
columnOptions: [],
|
||||||
|
dictTypeOptions: [],
|
||||||
|
gbColumnOptions: [
|
||||||
|
{ value: 'gb_code', label: '标准编码' },
|
||||||
|
{ value: 'gb_name', label: '标准名称' }
|
||||||
|
],
|
||||||
|
relatedColumnOptions: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
console.log('data:' + this.data)
|
||||||
|
this.form.ruleTypeId = this.data.ruleTypeId
|
||||||
|
this.getDicts('sys_common_status').then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.statusOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
listDataDictType().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.dictTypeOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.getRuleLevelList()
|
||||||
|
this.getRuleItemList()
|
||||||
|
this.getDataSourceList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showCard() {
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
getRuleLevelList() {
|
||||||
|
listRuleLevel().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.ruleLevelOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getRuleItemList() {
|
||||||
|
listRuleItem({ ruleTypeId: this.data.ruleTypeId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.ruleItemOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDataSourceList() {
|
||||||
|
listDataSource().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.sourceOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ruleItemSelectChanged(val) {
|
||||||
|
const item = this.ruleItemOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.ruleItemCode = item.itemCode
|
||||||
|
},
|
||||||
|
sourceSelectChanged(val) {
|
||||||
|
listDataTable({ sourceId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.tableOptions = response.data
|
||||||
|
this.columnOptions = []
|
||||||
|
const source = this.sourceOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleSource = source.sourceName
|
||||||
|
this.form.ruleDbType = source.dbType
|
||||||
|
this.form.ruleTableId = ''
|
||||||
|
this.form.ruleTable = ''
|
||||||
|
this.form.ruleTableComment = ''
|
||||||
|
this.form.ruleColumnId = ''
|
||||||
|
this.form.ruleColumn = ''
|
||||||
|
this.form.ruleColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
tableSelectChanged(val) {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.columnOptions = response.data
|
||||||
|
const table = this.tableOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleTable = table.tableName
|
||||||
|
this.form.ruleTableComment = table.tableComment
|
||||||
|
this.form.ruleColumnId = ''
|
||||||
|
this.form.ruleColumn = ''
|
||||||
|
this.form.ruleColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
columnSelectChanged(val) {
|
||||||
|
const column = this.columnOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleColumn = column.columnName
|
||||||
|
this.form.ruleColumnComment = column.columnComment
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
dictTypeSelectChanged(val) {
|
||||||
|
const item = this.dictTypeOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.consistent.gbTypeCode = item.gbTypeCode
|
||||||
|
this.form.ruleConfig.consistent.gbTypeName = item.gbTypeName
|
||||||
|
},
|
||||||
|
relatedTableSelectChanged(val) {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.relatedColumnOptions = response.data
|
||||||
|
const table = this.tableOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.relevance.relatedTable = table.tableName
|
||||||
|
this.form.ruleConfig.relevance.relatedTableComment = table.tableComment
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnId = ''
|
||||||
|
this.form.ruleConfig.relevance.relatedColumn = ''
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
relatedColumnSelectChanged(val) {
|
||||||
|
const column = this.relatedColumnOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.relevance.relatedColumn = column.columnName
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnComment = column.columnComment
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm: function() {
|
||||||
|
this.$refs['form'].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.loadingOptions.loading = true
|
||||||
|
this.loadingOptions.loadingText = '保存中...'
|
||||||
|
this.loadingOptions.isDisabled = true
|
||||||
|
addCheckRule(this.form).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 2秒后跳转列表页
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
}, 2000)
|
||||||
|
} else {
|
||||||
|
this.$message.error('保存失败')
|
||||||
|
this.loadingOptions.loading = false
|
||||||
|
this.loadingOptions.loadingText = '保存'
|
||||||
|
this.loadingOptions.isDisabled = false
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.loadingOptions.loading = false
|
||||||
|
this.loadingOptions.loadingText = '保存'
|
||||||
|
this.loadingOptions.isDisabled = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.el-card ::v-deep .el-card__body {
|
||||||
|
height: calc(100vh - 230px);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
</style>
|
278
src/views/quality/checkcontentrule/CheckContentRuleDetail.vue
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
<template>
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>{{ title }}</span>
|
||||||
|
<el-button-group style="float: right;">
|
||||||
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
|
<div class="body-wrapper">
|
||||||
|
<el-form ref="form" :model="form" label-width="80px" disabled>
|
||||||
|
<el-form-item label="规则名称">
|
||||||
|
<el-input v-model="form.ruleName" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查类型">
|
||||||
|
<el-select v-model="form.ruleItemId">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleItemOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.itemExplain"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="规则级别">
|
||||||
|
<el-select v-model="form.ruleLevelId">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleLevelOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据源">
|
||||||
|
<el-select v-model="form.ruleSourceId">
|
||||||
|
<el-option
|
||||||
|
v-for="source in sourceOptions"
|
||||||
|
:key="source.id"
|
||||||
|
:label="source.sourceName"
|
||||||
|
:value="source.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据表">
|
||||||
|
<el-select v-model="form.ruleTableId">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查字段">
|
||||||
|
<el-select v-model="form.ruleColumnId">
|
||||||
|
<el-option
|
||||||
|
v-for="column in columnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-divider content-position="left">核查配置</el-divider>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'timeliness_key'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="判定阀值">
|
||||||
|
<el-input-number v-model="form.ruleConfig.timeliness.threshold" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典类别">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.gbTypeId" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in dictTypeOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.gbTypeName"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典字段">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.bindGbColumn" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in gbColumnOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联表">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedTableId" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联字段">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="column in relatedColumnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'accuracy_key_length'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="最大长度">
|
||||||
|
<el-input-number v-model="form.ruleConfig.accuracy.maxLength" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="状态">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in statusOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.itemText"
|
||||||
|
>{{ dict.itemValue }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注">
|
||||||
|
<el-input v-model="form.remark" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listRuleLevel, listRuleItem, getCheckRule } from '@/api/quality/checkrule'
|
||||||
|
import { listDataSource } from '@/api/metadata/datasource'
|
||||||
|
import { listDataTable } from '@/api/metadata/datatable'
|
||||||
|
import { listDataColumn } from '@/api/metadata/datacolumn'
|
||||||
|
import { listDataDictType } from '@/api/standard/datadict'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CheckContentRuleDetail',
|
||||||
|
props: {
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: function() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '核查规则详情',
|
||||||
|
// 展示切换
|
||||||
|
showOptions: {
|
||||||
|
data: {},
|
||||||
|
showList: true,
|
||||||
|
showAdd: false,
|
||||||
|
showEdit: false,
|
||||||
|
showDetail: false
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 状态数据字典
|
||||||
|
statusOptions: [],
|
||||||
|
// 规则级别数据字典
|
||||||
|
ruleLevelOptions: [],
|
||||||
|
// 核查类型数据字典
|
||||||
|
ruleItemOptions: [],
|
||||||
|
sourceOptions: [],
|
||||||
|
tableOptions: [],
|
||||||
|
columnOptions: [],
|
||||||
|
dictTypeOptions: [],
|
||||||
|
gbColumnOptions: [
|
||||||
|
{ value: 'gb_code', label: '标准编码' },
|
||||||
|
{ value: 'gb_name', label: '标准名称' }
|
||||||
|
],
|
||||||
|
relatedColumnOptions: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
console.log('id:' + this.data.id)
|
||||||
|
this.getDicts('sys_common_status').then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.statusOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
listDataDictType().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.dictTypeOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.getRuleLevelList()
|
||||||
|
this.getDataSourceList()
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getCheckRule(this.data.id)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showCard() {
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
/** 获取详情 */
|
||||||
|
async getCheckRule(id) {
|
||||||
|
this.form = await getCheckRule(id).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.ruleItemOptions = await listRuleItem({ ruleTypeId: this.form.ruleTypeId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.tableOptions = await listDataTable({ sourceId: this.form.ruleSourceId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
}) || []
|
||||||
|
this.columnOptions = await listDataColumn({ sourceId: this.form.ruleSourceId, tableId: this.form.ruleTableId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
}) || []
|
||||||
|
if (this.form.ruleConfig.ruleItemCode === 'relevance_key') {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: this.form.ruleConfig.relevance.relatedTableId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.relatedColumnOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getRuleLevelList() {
|
||||||
|
listRuleLevel().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.ruleLevelOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDataSourceList() {
|
||||||
|
listDataSource().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.sourceOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.el-card ::v-deep .el-card__body {
|
||||||
|
height: calc(100vh - 230px);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
</style>
|
411
src/views/quality/checkcontentrule/CheckContentRuleEdit.vue
Normal file
@ -0,0 +1,411 @@
|
|||||||
|
<template>
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span>{{ title }}</span>
|
||||||
|
<el-button-group style="float: right;">
|
||||||
|
<el-button v-hasPerm="['quality:rule:edit']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
|
<div class="body-wrapper">
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="规则名称" prop="ruleName">
|
||||||
|
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查类型" prop="ruleItemId">
|
||||||
|
<el-select v-model="form.ruleItemId" placeholder="请选择核查类型" @change="ruleItemSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleItemOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.itemExplain"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="规则级别" prop="ruleLevelId">
|
||||||
|
<el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">
|
||||||
|
<el-option
|
||||||
|
v-for="item in ruleLevelOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据源" prop="ruleSourceId">
|
||||||
|
<el-select v-model="form.ruleSourceId" placeholder="请选择数据源" @change="sourceSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="source in sourceOptions"
|
||||||
|
:key="source.id"
|
||||||
|
:label="source.sourceName"
|
||||||
|
:value="source.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="数据表" prop="ruleTableId">
|
||||||
|
<el-select v-model="form.ruleTableId" placeholder="请选择数据表" @change="tableSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="核查字段" prop="ruleColumnId">
|
||||||
|
<el-select v-model="form.ruleColumnId" placeholder="请选择核查字段" @change="columnSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="column in columnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-divider content-position="left">核查配置</el-divider>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'timeliness_key'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="判定阀值">
|
||||||
|
<el-input-number v-model="form.ruleConfig.timeliness.threshold" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典类别">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.gbTypeId" placeholder="请选择" @change="dictTypeSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="item in dictTypeOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.gbTypeName"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="标准字典字段">
|
||||||
|
<el-select v-model="form.ruleConfig.consistent.bindGbColumn" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in gbColumnOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联表">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedTableId" placeholder="请选择" @change="relatedTableSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="table in tableOptions"
|
||||||
|
:key="table.id"
|
||||||
|
:label="table.tableName"
|
||||||
|
:value="table.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关联字段">
|
||||||
|
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择" @change="relatedColumnSelectChanged">
|
||||||
|
<el-option
|
||||||
|
v-for="column in relatedColumnOptions"
|
||||||
|
:key="column.id"
|
||||||
|
:label="column.columnName"
|
||||||
|
:value="column.id"
|
||||||
|
>
|
||||||
|
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'accuracy_key_length'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="最大长度">
|
||||||
|
<el-input-number v-model="form.ruleConfig.accuracy.maxLength" :controls="false" :min="1" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in statusOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.itemText"
|
||||||
|
>{{ dict.itemValue }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listRuleLevel, listRuleItem, getCheckRule, updateCheckRule } from '@/api/quality/checkrule'
|
||||||
|
import { listDataSource } from '@/api/metadata/datasource'
|
||||||
|
import { listDataTable } from '@/api/metadata/datatable'
|
||||||
|
import { listDataColumn } from '@/api/metadata/datacolumn'
|
||||||
|
import { listDataDictType } from '@/api/standard/datadict'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CheckContentRuleEdit',
|
||||||
|
props: {
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: function() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '核查规则编辑',
|
||||||
|
// 展示切换
|
||||||
|
showOptions: {
|
||||||
|
data: {},
|
||||||
|
showList: true,
|
||||||
|
showAdd: false,
|
||||||
|
showEdit: false,
|
||||||
|
showDetail: false
|
||||||
|
},
|
||||||
|
// 保存按钮
|
||||||
|
loadingOptions: {
|
||||||
|
loading: false,
|
||||||
|
loadingText: '保存',
|
||||||
|
isDisabled: false
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
ruleName: [
|
||||||
|
{ required: true, message: '规则名称不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
ruleItemId: [
|
||||||
|
{ required: true, message: '核查类型不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleLevelId: [
|
||||||
|
{ required: true, message: '规则级别不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleSourceId: [
|
||||||
|
{ required: true, message: '数据源不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleTableId: [
|
||||||
|
{ required: true, message: '数据表不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
ruleColumnId: [
|
||||||
|
{ required: true, message: '核查字段不能为空', trigger: 'change' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 状态数据字典
|
||||||
|
statusOptions: [],
|
||||||
|
// 规则级别数据字典
|
||||||
|
ruleLevelOptions: [],
|
||||||
|
// 核查类型数据字典
|
||||||
|
ruleItemOptions: [],
|
||||||
|
sourceOptions: [],
|
||||||
|
tableOptions: [],
|
||||||
|
columnOptions: [],
|
||||||
|
dictTypeOptions: [],
|
||||||
|
gbColumnOptions: [
|
||||||
|
{ value: 'gb_code', label: '标准编码' },
|
||||||
|
{ value: 'gb_name', label: '标准名称' }
|
||||||
|
],
|
||||||
|
relatedColumnOptions: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
console.log('id:' + this.data.id)
|
||||||
|
this.getDicts('sys_common_status').then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.statusOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
listDataDictType().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.dictTypeOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.getRuleLevelList()
|
||||||
|
this.getDataSourceList()
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getCheckRule(this.data.id)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showCard() {
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
/** 获取详情 */
|
||||||
|
async getCheckRule(id) {
|
||||||
|
this.form = await getCheckRule(id).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.ruleItemOptions = await listRuleItem({ ruleTypeId: this.form.ruleTypeId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.tableOptions = await listDataTable({ sourceId: this.form.ruleSourceId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.columnOptions = await listDataColumn({ sourceId: this.form.ruleSourceId, tableId: this.form.ruleTableId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
return response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (this.form.ruleConfig.ruleItemCode === 'relevance_key') {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: this.form.ruleConfig.relevance.relatedTableId }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.relatedColumnOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getRuleLevelList() {
|
||||||
|
listRuleLevel().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.ruleLevelOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDataSourceList() {
|
||||||
|
listDataSource().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.sourceOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ruleItemSelectChanged(val) {
|
||||||
|
const item = this.ruleItemOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.ruleItemCode = item.itemCode
|
||||||
|
},
|
||||||
|
sourceSelectChanged(val) {
|
||||||
|
listDataTable({ sourceId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.tableOptions = response.data
|
||||||
|
this.columnOptions = []
|
||||||
|
const source = this.sourceOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleSource = source.sourceName
|
||||||
|
this.form.ruleDbType = source.dbType
|
||||||
|
this.form.ruleTableId = ''
|
||||||
|
this.form.ruleTable = ''
|
||||||
|
this.form.ruleTableComment = ''
|
||||||
|
this.form.ruleColumnId = ''
|
||||||
|
this.form.ruleColumn = ''
|
||||||
|
this.form.ruleColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
tableSelectChanged(val) {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.columnOptions = response.data
|
||||||
|
const table = this.tableOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleTable = table.tableName
|
||||||
|
this.form.ruleTableComment = table.tableComment
|
||||||
|
this.form.ruleColumnId = ''
|
||||||
|
this.form.ruleColumn = ''
|
||||||
|
this.form.ruleColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
columnSelectChanged(val) {
|
||||||
|
const column = this.columnOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleColumn = column.columnName
|
||||||
|
this.form.ruleColumnComment = column.columnComment
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
dictTypeSelectChanged(val) {
|
||||||
|
const item = this.dictTypeOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.consistent.gbTypeCode = item.gbTypeCode
|
||||||
|
this.form.ruleConfig.consistent.gbTypeName = item.gbTypeName
|
||||||
|
},
|
||||||
|
relatedTableSelectChanged(val) {
|
||||||
|
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.relatedColumnOptions = response.data
|
||||||
|
const table = this.tableOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.relevance.relatedTable = table.tableName
|
||||||
|
this.form.ruleConfig.relevance.relatedTableComment = table.tableComment
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnId = ''
|
||||||
|
this.form.ruleConfig.relevance.relatedColumn = ''
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnComment = ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
relatedColumnSelectChanged(val) {
|
||||||
|
const column = this.relatedColumnOptions.find(function(item) {
|
||||||
|
return item.id === val
|
||||||
|
})
|
||||||
|
this.form.ruleConfig.relevance.relatedColumn = column.columnName
|
||||||
|
this.form.ruleConfig.relevance.relatedColumnComment = column.columnComment
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm: function() {
|
||||||
|
this.$refs['form'].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.loadingOptions.loading = true
|
||||||
|
this.loadingOptions.loadingText = '保存中...'
|
||||||
|
this.loadingOptions.isDisabled = true
|
||||||
|
updateCheckRule(this.form).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 2秒后跳转列表页
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
}, 2000)
|
||||||
|
} else {
|
||||||
|
this.$message.error('保存失败')
|
||||||
|
this.loadingOptions.loading = false
|
||||||
|
this.loadingOptions.loadingText = '保存'
|
||||||
|
this.loadingOptions.isDisabled = false
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.loadingOptions.loading = false
|
||||||
|
this.loadingOptions.loadingText = '保存'
|
||||||
|
this.loadingOptions.isDisabled = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.el-card ::v-deep .el-card__body {
|
||||||
|
height: calc(100vh - 230px);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
</style>
|
407
src/views/quality/checkcontentrule/CheckContentRuleList.vue
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
<template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-card class="box-card tree-wrapper" shadow="always">
|
||||||
|
<div class="body-wrapper">
|
||||||
|
<el-tree
|
||||||
|
ref="ruleType"
|
||||||
|
:data="ruleTypeOptions"
|
||||||
|
node-key="id"
|
||||||
|
empty-text="加载中,请稍后"
|
||||||
|
:props="defaultProps"
|
||||||
|
default-expand-all
|
||||||
|
highlight-current
|
||||||
|
:expand-on-click-node="false"
|
||||||
|
@node-click="handleNodeClick"
|
||||||
|
>
|
||||||
|
<template slot-scope="{ node }">
|
||||||
|
<span class="custom-tree-node">
|
||||||
|
<span><i v-if="node.level === 1" class="iconfont icon-zuzhi tree-folder" />{{ node.label }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-tree>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="18">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
|
<el-form ref="queryForm" :model="queryParams" :inline="true">
|
||||||
|
<el-form-item label="规则名称" prop="ruleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.ruleName"
|
||||||
|
placeholder="请输入规则名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row type="flex" justify="space-between">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-button-group>
|
||||||
|
<el-button
|
||||||
|
v-hasPerm="['quality:rule:add']"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="right-toolbar">
|
||||||
|
<el-tooltip content="密度" effect="dark" placement="top">
|
||||||
|
<el-dropdown trigger="click" @command="handleCommand">
|
||||||
|
<el-button circle size="mini">
|
||||||
|
<svg-icon class-name="size-icon" icon-class="colum-height" />
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item command="medium">正常</el-dropdown-item>
|
||||||
|
<el-dropdown-item command="small">中等</el-dropdown-item>
|
||||||
|
<el-dropdown-item command="mini">紧凑</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip content="刷新" effect="dark" placement="top">
|
||||||
|
<el-button circle size="mini" @click="handleRefresh">
|
||||||
|
<svg-icon class-name="size-icon" icon-class="shuaxin" />
|
||||||
|
</el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip content="列设置" effect="dark" placement="top">
|
||||||
|
<el-popover placement="bottom" width="100" trigger="click">
|
||||||
|
<el-checkbox-group v-model="checkedTableColumns" @change="handleCheckedColsChange">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="(item, index) in tableColumns"
|
||||||
|
:key="index"
|
||||||
|
:label="item.prop"
|
||||||
|
>{{ item.label }}</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
<span slot="reference">
|
||||||
|
<el-button circle size="mini">
|
||||||
|
<svg-icon class-name="size-icon" icon-class="shezhi" />
|
||||||
|
</el-button>
|
||||||
|
</span>
|
||||||
|
</el-popover>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableDataList"
|
||||||
|
border
|
||||||
|
tooltip-effect="dark"
|
||||||
|
:size="tableSize"
|
||||||
|
:height="tableHeight"
|
||||||
|
style="width: 100%;margin: 15px 0;"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="序号" width="55" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.$index +1 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<template v-for="(item, index) in tableColumns">
|
||||||
|
<el-table-column
|
||||||
|
v-if="item.show"
|
||||||
|
:key="index"
|
||||||
|
:prop="item.prop"
|
||||||
|
:label="item.label"
|
||||||
|
:formatter="item.formatter"
|
||||||
|
:width="item.width"
|
||||||
|
align="center"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-hasPerm="['quality:rule:edit']"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit-outline"
|
||||||
|
@click="handleEdit(scope.row)"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
v-hasPerm="['quality:rule:detail']"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-view"
|
||||||
|
@click="handleDetail(scope.row)"
|
||||||
|
>详情</el-button>
|
||||||
|
<el-button
|
||||||
|
v-hasPerm="['quality:rule:remove']"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<el-pagination
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:current-page.sync="queryParams.pageNum"
|
||||||
|
:page-size.sync="queryParams.pageSize"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listRuleType, pageCheckRule, delCheckRule } from '@/api/quality/checkrule'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CheckContentRuleList',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tableHeight: document.body.offsetHeight - 310 + 'px',
|
||||||
|
// 展示切换
|
||||||
|
showOptions: {
|
||||||
|
data: {},
|
||||||
|
showList: true,
|
||||||
|
showAdd: false,
|
||||||
|
showEdit: false,
|
||||||
|
showDetail: false
|
||||||
|
},
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 表格头
|
||||||
|
tableColumns: [
|
||||||
|
{ prop: 'ruleName', label: '规则名称', show: true },
|
||||||
|
{ prop: 'ruleType', label: '规则类型', show: true },
|
||||||
|
{ prop: 'ruleSource', label: '数据源', show: true },
|
||||||
|
{ prop: 'ruleTable', label: '数据表', show: true, formatter: this.ruleTableFormatter },
|
||||||
|
{ prop: 'ruleColumn', label: '核查字段', show: true, formatter: this.ruleColumnFormatter },
|
||||||
|
{ prop: 'ruleLevel', label: '规则级别', width: 100, show: true },
|
||||||
|
{
|
||||||
|
prop: 'status',
|
||||||
|
label: '状态',
|
||||||
|
show: true,
|
||||||
|
width: 80,
|
||||||
|
formatter: this.statusFormatter
|
||||||
|
},
|
||||||
|
{ prop: 'createTime', label: '创建时间', show: true }
|
||||||
|
],
|
||||||
|
// 默认选择中表格头
|
||||||
|
checkedTableColumns: [],
|
||||||
|
tableSize: 'medium',
|
||||||
|
// 状态数据字典
|
||||||
|
statusOptions: [],
|
||||||
|
// 表格数据
|
||||||
|
tableDataList: [],
|
||||||
|
// 总数据条数
|
||||||
|
total: 0,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
ruleTypeId: '',
|
||||||
|
ruleName: ''
|
||||||
|
},
|
||||||
|
// 左侧树
|
||||||
|
ruleTypeOptions: [],
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'name'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDicts('sys_common_status').then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.statusOptions = response.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.getTree()
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initCols()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getTree() {
|
||||||
|
listRuleType().then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
const { data } = response
|
||||||
|
const tree = {}
|
||||||
|
tree.name = '核查规则类型'
|
||||||
|
const children = []
|
||||||
|
data.forEach(e => {
|
||||||
|
if (e.code === 'regular' || e.code === 'accuracy' || e.code === 'integrity') {
|
||||||
|
children.push(e)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
tree.children = children
|
||||||
|
this.ruleTypeOptions = []
|
||||||
|
this.ruleTypeOptions.push(tree)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 节点单击事件 */
|
||||||
|
handleNodeClick(data) {
|
||||||
|
if (data.id) {
|
||||||
|
this.queryParams.ruleTypeId = data.id
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/** 查询数据源列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true
|
||||||
|
pageCheckRule(this.queryParams).then(response => {
|
||||||
|
this.loading = false
|
||||||
|
if (response.success) {
|
||||||
|
const { data } = response
|
||||||
|
this.tableDataList = data.data
|
||||||
|
this.total = data.total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
initCols() {
|
||||||
|
this.checkedTableColumns = this.tableColumns.map(col => col.prop)
|
||||||
|
},
|
||||||
|
handleCheckedColsChange(val) {
|
||||||
|
this.tableColumns.forEach(col => {
|
||||||
|
if (!this.checkedTableColumns.includes(col.prop)) {
|
||||||
|
col.show = false
|
||||||
|
} else {
|
||||||
|
col.show = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCommand(command) {
|
||||||
|
this.tableSize = command
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
ruleTypeId: '',
|
||||||
|
ruleName: ''
|
||||||
|
}
|
||||||
|
this.handleQuery()
|
||||||
|
},
|
||||||
|
/** 刷新列表 */
|
||||||
|
handleRefresh() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.showOptions.data = {}
|
||||||
|
if (!this.queryParams.ruleTypeId) {
|
||||||
|
this.$message.warning('请先选择核查规则类型')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.showOptions.data.ruleTypeId = this.queryParams.ruleTypeId
|
||||||
|
this.showOptions.showList = false
|
||||||
|
this.showOptions.showAdd = true
|
||||||
|
this.showOptions.showEdit = false
|
||||||
|
this.showOptions.showDetail = false
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleEdit(row) {
|
||||||
|
this.showOptions.data.id = row.id
|
||||||
|
this.showOptions.showList = false
|
||||||
|
this.showOptions.showAdd = false
|
||||||
|
this.showOptions.showEdit = true
|
||||||
|
this.showOptions.showDetail = false
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
/** 详情按钮操作 */
|
||||||
|
handleDetail(row) {
|
||||||
|
this.showOptions.data.id = row.id
|
||||||
|
this.showOptions.showList = false
|
||||||
|
this.showOptions.showAdd = false
|
||||||
|
this.showOptions.showEdit = false
|
||||||
|
this.showOptions.showDetail = true
|
||||||
|
this.$emit('showCard', this.showOptions)
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
this.$confirm('选中数据将被永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
delCheckRule(row.id).then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
this.$message.success('删除成功')
|
||||||
|
this.getList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleSizeChange(val) {
|
||||||
|
console.log(`每页 ${val} 条`)
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.queryParams.pageSize = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
console.log(`当前页: ${val}`)
|
||||||
|
this.queryParams.pageNum = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
statusFormatter(row, column, cellValue, index) {
|
||||||
|
const dictLabel = this.selectDictLabel(this.statusOptions, cellValue)
|
||||||
|
if (cellValue === '1') {
|
||||||
|
return <el-tag type='success'>{dictLabel}</el-tag>
|
||||||
|
} else {
|
||||||
|
return <el-tag type='warning'>{dictLabel}</el-tag>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ruleTableFormatter(row, column, cellValue, index) {
|
||||||
|
return row.ruleTableComment ? row.ruleTable + '(' + row.ruleTableComment + ')' : row.ruleTable
|
||||||
|
},
|
||||||
|
ruleColumnFormatter(row, column, cellValue, index) {
|
||||||
|
return row.ruleColumnComment ? row.ruleColumn + '(' + row.ruleColumnComment + ')' : row.ruleColumn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.right-toolbar {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.el-card ::v-deep .el-card__body {
|
||||||
|
height: calc(100vh - 170px);
|
||||||
|
}
|
||||||
|
.tree-wrapper {
|
||||||
|
overflow-y: auto;
|
||||||
|
.body-wrapper {
|
||||||
|
margin: -10px;
|
||||||
|
::v-deep .custom-tree-node {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 14px;
|
||||||
|
.tree-folder {
|
||||||
|
margin-right: 5px;
|
||||||
|
color: #f6cf07;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
48
src/views/quality/checkcontentrule/index.vue
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<transition name="el-zoom-in-center">
|
||||||
|
<check-rule-list v-if="options.showList" @showCard="showCard" />
|
||||||
|
</transition>
|
||||||
|
<transition name="el-zoom-in-top">
|
||||||
|
<check-rule-add v-if="options.showAdd" :data="options.data" @showCard="showCard" />
|
||||||
|
</transition>
|
||||||
|
<transition name="el-zoom-in-top">
|
||||||
|
<check-rule-edit v-if="options.showEdit" :data="options.data" @showCard="showCard" />
|
||||||
|
</transition>
|
||||||
|
<transition name="el-zoom-in-bottom">
|
||||||
|
<check-rule-detail v-if="options.showDetail" :data="options.data" @showCard="showCard" />
|
||||||
|
</transition>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import CheckRuleList from './CheckContentRuleList'
|
||||||
|
import CheckRuleAdd from './CheckContentRuleAdd'
|
||||||
|
import CheckRuleEdit from './CheckContentRuleEdit'
|
||||||
|
import CheckRuleDetail from './CheckContentRuleDetail'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CheckContentRule',
|
||||||
|
components: { CheckRuleList, CheckRuleAdd, CheckRuleEdit, CheckRuleDetail },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
options: {
|
||||||
|
data: {},
|
||||||
|
showList: true,
|
||||||
|
showAdd: false,
|
||||||
|
showEdit: false,
|
||||||
|
showDetail: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showCard(data) {
|
||||||
|
Object.assign(this.options, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
@ -27,13 +27,8 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-popover
|
|
||||||
placement="left"
|
|
||||||
trigger="click"
|
|
||||||
>
|
|
||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.status === '1'"
|
v-if="scope.row.status === '1'"
|
||||||
v-hasPerm="['quality:job:pause']"
|
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@ -41,21 +36,17 @@
|
|||||||
>任务暂停</el-button>
|
>任务暂停</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.status === '0'"
|
v-if="scope.row.status === '0'"
|
||||||
v-hasPerm="['quality:job:resume']"
|
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handleResume(scope.row)"
|
@click="handleResume(scope.row)"
|
||||||
>任务恢复</el-button>
|
>任务恢复</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPerm="['quality:job:run']"
|
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handleRun(scope.row)"
|
@click="handleRun(scope.row)"
|
||||||
>立即执行</el-button>
|
>立即执行</el-button>
|
||||||
<el-button slot="reference">操作</el-button>
|
|
||||||
</el-popover>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleLevelName" label="规则级别" align="center" />
|
<el-table-column prop="ruleLevelName" label="规则级别" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
|
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<el-table-column prop="ruleTypeName" label="规则类型" align="center" />
|
<el-table-column prop="ruleTypeName" label="规则类型" align="center" />
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-badge :value="scope.row.ruleLevelName" :type="typeFormat(scope.row.ruleLevelName)">
|
<el-badge :value="scope.row.ruleLevelName" :type="typeFormat(scope.row.ruleLevelName)">
|
||||||
{{ scope.row.checkErrorCount }}
|
{{ scope.row.checkErrorCount }}
|
||||||
</el-badge>
|
</el-badge>
|
||||||
@ -77,10 +77,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -98,10 +98,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -119,10 +119,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -140,10 +140,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -161,10 +161,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -182,10 +182,10 @@
|
|||||||
>
|
>
|
||||||
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
<el-table-column prop="ruleName" label="规则名称" align="center" />
|
||||||
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
|
||||||
<el-table-column prop="ruleTableName" label="数据表(中文)" align="center" />
|
<el-table-column prop="ruleTableName" label="数据表(英文)" align="center" />
|
||||||
<el-table-column prop="ruleTableComment" label="数据表(英文)" align="center" />
|
<el-table-column prop="ruleTableComment" label="数据表(中文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnName" label="核查字段(中文)" align="center" />
|
<el-table-column prop="ruleColumnName" label="核查字段(英文)" align="center" />
|
||||||
<el-table-column prop="ruleColumnComment" label="核查字段(英文)" align="center" />
|
<el-table-column prop="ruleColumnComment" label="核查字段(中文)" align="center" />
|
||||||
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
|
||||||
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -205,11 +205,11 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
queryParams: {
|
queryParams: {
|
||||||
checkDate: moment(moment().add(-0, 'days').startOf('day').valueOf()).format('YYYY-MM-DD')
|
checkDate: moment(moment().add(0, 'days').startOf('day').valueOf()).format('YYYY-MM-DD')
|
||||||
},
|
},
|
||||||
pickerOption: {
|
pickerOption: {
|
||||||
disabledDate(date) {
|
disabledDate(date) {
|
||||||
return date.getTime() > Date.now() - 24 * 60 * 60 * 1000
|
return date.getTime() > Date.now()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
date: moment().subtract('days', 1).format('YYYY年MM月DD日'),
|
date: moment().subtract('days', 1).format('YYYY年MM月DD日'),
|
||||||
@ -234,12 +234,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getReportData1()
|
/* this.getReportData1()
|
||||||
this.getReportData2()
|
this.getReportData2()
|
||||||
this.getReportData3()
|
this.getReportData3()*/
|
||||||
|
|
||||||
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
|
this.spanArr1 = []
|
||||||
|
this.spanArr2 = []
|
||||||
this.getReportData1()
|
this.getReportData1()
|
||||||
this.getReportData2()
|
this.getReportData2()
|
||||||
this.getReportData3()
|
this.getReportData3()
|
||||||
|
@ -3,11 +3,8 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button v-hasPerm="['quality:rule:add']" size="mini" icon="el-icon-plus" round
|
<el-button v-hasPerm="['quality:rule:add']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
:loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
loadingOptions.loadingText }}
|
|
||||||
</el-button>
|
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
@ -80,8 +77,11 @@
|
|||||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="标准字典类别">
|
<el-form-item label="标准字典类别">
|
||||||
<el-select v-model="form.ruleConfig.consistent.gbTypeId" placeholder="请选择"
|
<el-select
|
||||||
@change="dictTypeSelectChanged">
|
v-model="form.ruleConfig.consistent.gbTypeId"
|
||||||
|
placeholder="请选择"
|
||||||
|
@change="dictTypeSelectChanged"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dictTypeOptions"
|
v-for="item in dictTypeOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@ -107,8 +107,11 @@
|
|||||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="关联表">
|
<el-form-item label="关联表">
|
||||||
<el-select v-model="form.ruleConfig.relevance.relatedTableId" placeholder="请选择"
|
<el-select
|
||||||
@change="relatedTableSelectChanged">
|
v-model="form.ruleConfig.relevance.relatedTableId"
|
||||||
|
placeholder="请选择"
|
||||||
|
@change="relatedTableSelectChanged"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="table in tableOptions"
|
v-for="table in tableOptions"
|
||||||
:key="table.id"
|
:key="table.id"
|
||||||
@ -122,8 +125,11 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="关联字段">
|
<el-form-item label="关联字段">
|
||||||
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择"
|
<el-select
|
||||||
@change="relatedColumnSelectChanged">
|
v-model="form.ruleConfig.relevance.relatedColumnId"
|
||||||
|
placeholder="请选择"
|
||||||
|
@change="relatedColumnSelectChanged"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="column in relatedColumnOptions"
|
v-for="column in relatedColumnOptions"
|
||||||
:key="column.id"
|
:key="column.id"
|
||||||
@ -422,7 +428,6 @@ export default {
|
|||||||
this.loadingOptions.loading = true
|
this.loadingOptions.loading = true
|
||||||
this.loadingOptions.loadingText = '保存中...'
|
this.loadingOptions.loadingText = '保存中...'
|
||||||
this.loadingOptions.isDisabled = true
|
this.loadingOptions.isDisabled = true
|
||||||
console.log("this.form====", this.form)
|
|
||||||
addCheckRule(this.form).then(response => {
|
addCheckRule(this.form).then(response => {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
this.$message.success('保存成功')
|
this.$message.success('保存成功')
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<el-button-group style="float: right;">
|
<el-button-group style="float: right;">
|
||||||
<el-button v-hasPerm="['quality:rule:edit']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
<el-button v-hasPerm="['quality:rule:edit']" type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
|
||||||
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
|
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="body-wrapper">
|
<div class="body-wrapper">
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
@node-click="handleNodeClick"
|
@node-click="handleNodeClick"
|
||||||
>
|
>
|
||||||
<template slot-scope="{ node, data }">
|
<template slot-scope="{ node }">
|
||||||
<span class="custom-tree-node">
|
<span class="custom-tree-node">
|
||||||
<span><i v-if="node.level === 1" class="iconfont icon-zuzhi tree-folder" />{{ node.label }}</span>
|
<span><i v-if="node.level === 1" class="iconfont icon-zuzhi tree-folder" />{{ node.label }}</span>
|
||||||
</span>
|
</span>
|
||||||
@ -114,16 +114,13 @@
|
|||||||
:prop="item.prop"
|
:prop="item.prop"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:formatter="item.formatter"
|
:formatter="item.formatter"
|
||||||
|
:width="item.width"
|
||||||
align="center"
|
align="center"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-popover
|
|
||||||
placement="left"
|
|
||||||
trigger="click"
|
|
||||||
>
|
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPerm="['quality:rule:edit']"
|
v-hasPerm="['quality:rule:edit']"
|
||||||
size="mini"
|
size="mini"
|
||||||
@ -145,8 +142,6 @@
|
|||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
<el-button slot="reference">操作</el-button>
|
|
||||||
</el-popover>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -190,11 +185,12 @@ export default {
|
|||||||
{ prop: 'ruleSource', label: '数据源', show: true },
|
{ prop: 'ruleSource', label: '数据源', show: true },
|
||||||
{ prop: 'ruleTable', label: '数据表', show: true, formatter: this.ruleTableFormatter },
|
{ prop: 'ruleTable', label: '数据表', show: true, formatter: this.ruleTableFormatter },
|
||||||
{ prop: 'ruleColumn', label: '核查字段', show: true, formatter: this.ruleColumnFormatter },
|
{ prop: 'ruleColumn', label: '核查字段', show: true, formatter: this.ruleColumnFormatter },
|
||||||
{ prop: 'ruleLevel', label: '规则级别', show: true },
|
{ prop: 'ruleLevel', label: '规则级别', width: 100, show: true },
|
||||||
{
|
{
|
||||||
prop: 'status',
|
prop: 'status',
|
||||||
label: '状态',
|
label: '状态',
|
||||||
show: true,
|
show: true,
|
||||||
|
width: 80,
|
||||||
formatter: this.statusFormatter
|
formatter: this.statusFormatter
|
||||||
},
|
},
|
||||||
{ prop: 'createTime', label: '创建时间', show: true }
|
{ prop: 'createTime', label: '创建时间', show: true }
|
||||||
@ -242,7 +238,13 @@ export default {
|
|||||||
const { data } = response
|
const { data } = response
|
||||||
const tree = {}
|
const tree = {}
|
||||||
tree.name = '核查规则类型'
|
tree.name = '核查规则类型'
|
||||||
tree.children = data
|
const children = []
|
||||||
|
data.forEach(e => {
|
||||||
|
if (e.code !== 'regular' && e.code !== 'accuracy' && e.code !== 'integrity') {
|
||||||
|
children.push(e)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
tree.children = children
|
||||||
this.ruleTypeOptions = []
|
this.ruleTypeOptions = []
|
||||||
this.ruleTypeOptions.push(tree)
|
this.ruleTypeOptions.push(tree)
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -91,6 +92,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
@ -65,6 +66,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<eHeader :dict="dict" :permission="permission" />
|
<eHeader :dict="dict" :permission="permission" />
|
||||||
@ -45,6 +46,7 @@
|
|||||||
<pagination />
|
<pagination />
|
||||||
<!--表单渲染-->
|
<!--表单渲染-->
|
||||||
<eForm :job-status="dict.job_status" />
|
<eForm :job-status="dict.job_status" />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -144,6 +145,8 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -110,6 +111,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@ -110,6 +111,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-card class="box-card" shadow="always">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<!--侧边部门数据-->
|
<!--侧边部门数据-->
|
||||||
<el-col :xs="9" :sm="6" :md="5" :lg="4" :xl="4">
|
<el-col :xs="9" :sm="6" :md="5" :lg="4" :xl="4">
|
||||||
@ -184,6 +185,7 @@
|
|||||||
<pagination />
|
<pagination />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|