修复问题

dev_xd
haha 2025-05-13 01:06:27 +08:00
parent a14ffac2bd
commit 082e35f9c5
30 changed files with 1289 additions and 759 deletions

View File

@ -1,7 +1,7 @@
<template>
<div class="div-header">
<el-row>
<el-col :span="8">
<el-col :span="8" style="margin-left:20px;width:calc(33.33% - 20px);">
<div class="head-title-tab">
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doNav(1)" v-if="1==2"></div>
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)"></div>

View File

@ -686,7 +686,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
* @return
*/
public static String judgeGender(String idNumber) throws IllegalArgumentException{
if(idNumber.length() != 18 && idNumber.length() != 15){
if(StringUtils.isEmpty(idNumber) || ( idNumber.length() != 18 && idNumber.length() != 15)){
return "2";
}
int gender = 0;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -0,0 +1,77 @@
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1593403036382'); /* IE9 */
src: url('iconfont.eot?t=1593403036382#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1593403036382') format('woff'),
url('iconfont.ttf?t=1593403036382') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1593403036382#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.iconmore:before {
content: "\e601";
}
.iconanalysis:before {
content: "\e7c6";
}
.iconnew:before {
content: "\e60e";
}
.icondownload:before {
content: "\e65e";
}
.iconadd:before {
content: "\e7c4";
}
.iconcopy:before {
content: "\e629";
}
.iconformat:before {
content: "\e61a";
}
.icondebug:before {
content: "\e7c3";
}
.iconexecute:before {
content: "\e70a";
}
.icondelete:before {
content: "\e720";
}
.icondisable:before {
content: "\e6a7";
}
.iconrelease:before {
content: "\e600";
}
.iconsave:before {
content: "\e60f";
}
.iconhistory:before {
content: "\e603";
}
.icontest:before {
content: "\e6d1";
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,114 @@
{
"id": "1681128",
"name": "hasor-dataql",
"font_family": "iconfont",
"css_prefix_text": "icon",
"description": "Hasor-DataQL",
"glyphs": [
{
"icon_id": "10453",
"name": "更多",
"font_class": "more",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "15220098",
"name": "重新分析",
"font_class": "analysis",
"unicode": "e7c6",
"unicode_decimal": 59334
},
{
"icon_id": "4944052",
"name": "new",
"font_class": "new",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "8437957",
"name": "down-load",
"font_class": "download",
"unicode": "e65e",
"unicode_decimal": 58974
},
{
"icon_id": "13606462",
"name": "add",
"font_class": "add",
"unicode": "e7c4",
"unicode_decimal": 59332
},
{
"icon_id": "6163418",
"name": "复制",
"font_class": "copy",
"unicode": "e629",
"unicode_decimal": 58921
},
{
"icon_id": "5806440",
"name": "格式化",
"font_class": "format",
"unicode": "e61a",
"unicode_decimal": 58906
},
{
"icon_id": "4699965",
"name": "调试",
"font_class": "debug",
"unicode": "e7c3",
"unicode_decimal": 59331
},
{
"icon_id": "9993194",
"name": "执行",
"font_class": "execute",
"unicode": "e70a",
"unicode_decimal": 59146
},
{
"icon_id": "8085926",
"name": "删 除",
"font_class": "delete",
"unicode": "e720",
"unicode_decimal": 59168
},
{
"icon_id": "6721603",
"name": "禁用",
"font_class": "disable",
"unicode": "e6a7",
"unicode_decimal": 59047
},
{
"icon_id": "4582088",
"name": "发布",
"font_class": "release",
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "10104267",
"name": "save",
"font_class": "save",
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "3484650",
"name": "历史",
"font_class": "history",
"unicode": "e603",
"unicode_decimal": 58883
},
{
"icon_id": "7002505",
"name": "测试",
"font_class": "test",
"unicode": "e6d1",
"unicode_decimal": 59089
}
]
}

View File

@ -0,0 +1,71 @@
<?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" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="more" unicode="&#58881;" d="M121.7444 504.2432c-65.493 0-118.5894-53.0729-118.5894-118.5894 0-65.493 53.0964-118.5659 118.5894-118.5659s118.5894 53.0729 118.5894 118.5659C240.3338 451.1693 187.2374 504.2432 121.7444 504.2432zM499.9741 504.2432c-65.493 0-118.5894-53.0729-118.5894-118.5894 0-65.493 53.0964-118.5659 118.5894-118.5659s118.5894 53.0729 118.5894 118.5659C618.5636 451.1693 565.4671 504.2432 499.9741 504.2432zM901.845 504.2432c-65.493 0-118.5905-53.0729-118.5905-118.5894 0-65.493 53.0975-118.5659 118.5905-118.5659s118.5894 53.0729 118.5894 118.5659C1020.4334 451.1693 967.338 504.2432 901.845 504.2432z" horiz-adv-x="1024" />
<glyph glyph-name="analysis" unicode="&#59334;" d="M552.521143 163.54742899999997l363.739428 366.226285L552.521143 896v-205.970286C340.918857 690.029714 73.142857 591.8720000000001 73.142857 117.75999999999999c85.942857 287.744 452.973714 258.340571 479.378286 258.340571v-212.553142zM731.867429 228.42514300000005l-139.922286-152.649143L731.867429-76.79999999999995v85.869714c81.334857 0 184.32 40.813714 184.32 238.445715-32.987429-119.954286-174.153143-107.666286-184.32-107.666286v88.502857z" horiz-adv-x="1024" />
<glyph glyph-name="new" unicode="&#58894;" d="M999.521 443.097L898.009 544.605v140.15c0 47.086-38.177 85.264-85.264 85.264H672.591l-101.502 101.5c-32.64 32.642-85.544 32.642-118.185 0l-101.503-101.5H211.235c-47.086 0-85.264-38.178-85.264-85.264v-140.159l-101.5-101.498c-32.629-32.641-32.629-85.556 0-118.195l101.5-101.498v-140.159c0-47.086 38.177-85.264 85.264-85.264H351.4l101.503-101.5c32.64-32.641 85.544-32.641 118.185 0l101.502 101.5h140.154c47.087 0 85.264 38.178 85.264 85.264V223.394l101.513 101.508c32.639 32.639 32.639 85.555 0 118.195zM359.993 265.37199999999996h-32.162L215.872 428.304h-1.214v-162.932h-33.072V482.009h33.376l110.745-161.112h1.214V482.009h33.072v-216.637z m203.587 0H402.77V482.009h155.651v-28.218H435.843v-63.109h115.298v-28.217H435.843v-68.874H563.58v-28.219z m236.053 0h-35.196l-43.995 167.18h-1.213l-43.996-167.18h-35.498l-62.2 216.636h37.319l42.175-168.697h1.214l44.298 168.697h34.589l44.299-168.697h1.213l42.175 168.697h37.319l-62.503-216.636z" horiz-adv-x="1024" />
<glyph glyph-name="download" unicode="&#58974;" d="M987.733 142.50699999999995c-2.048 35.242-23.466 55.893-51.029 55.125-27.819-0.853-46.933-21.675-49.152-57.515-1.877-29.866-0.512-59.989-1.11-90.026-0.682-31.062-18.687-47.616-47.871-51.798-15.787-2.304-32-1.365-47.958-1.365H232.107c-11.947 0-24.064-0.768-36.011 0.341-41.813 3.67-56.32 18.091-58.453 60.16-1.451 27.904 0.853 56.064-1.11 83.968-2.56 34.646-23.381 56.32-50.517 56.32-27.136 0.086-47.872-21.333-50.347-56.405-2.048-31.915-1.194-64-0.682-96 1.621-100.864 47.445-147.115 147.285-147.627 108.032-0.512 216.15-0.085 324.267 0 116.053 0 232.106-0.938 348.16 0.256 79.786 0.854 127.829 46.166 132.949 124.587 2.56 39.765 2.219 80.043 0 119.979zM192.427 559.104c14.336-10.752 26.624-24.32 39.338-37.12 71.936-72.192 143.787-144.555 215.723-216.917l14.848 5.802V783.701c0 16.043-0.853 32.427 1.877 47.958 4.267 24.917 20.822 38.4 46.08 38.997 25.174 0.683 42.838-11.776 48.299-36.267 3.413-15.36 2.816-31.829 2.816-47.786v-494.336c82.944 83.029 211.627 211.797 245.333 245.077 9.899 9.813 19.798 20.736 31.83 27.05 34.645 18.177 72.448-4.693 72.192-52.735-6.144-8.79-15.19-26.454-28.331-40.022-47.275-48.896-269.653-270.25-317.781-318.293-7.083-6.997-13.995-14.677-22.443-19.712-20.907-12.63-41.813-13.483-59.733 2.048a519.68 519.68 0 0 1-7.51 2.73c-8.533 3.073-14.677 13.227-21.76 20.31a528562.773 528562.773 0 0 0-306.09 306.09c-8.534 8.534-17.579 16.811-24.235 26.625-15.275 22.357-16.043 46.08 4.01 65.45 19.969 19.371 43.947 18.518 65.622 2.219z" horiz-adv-x="1024" />
<glyph glyph-name="add" unicode="&#59332;" d="M0 423.384615l1024 0 0-78.769231L0 344.61538499999995 0 423.384615zM472.615385 896l78.769231 0 0-1024-78.769231 0L472.615385 896z" horiz-adv-x="1024" />
<glyph glyph-name="copy" unicode="&#58921;" d="M1002.72423 663.870909c-7.262566 6.309696-18.942739 10.405128-28.72263 10.484306-83.246483 0.791784-166.547572 1.22863-249.821358-0.163818-17.361902-0.300332-34.671928-8.357412-51.875474-13.2692-4.750701-1.365144-9.064556-4.259249-14.904642-7.071446v12.149782c0 57.336049 0.027303 114.672099 0 172.008148 0 29.76014-12.209848 46.551412-40.708595 56.216632-0.873692 0.273029-1.534422 1.174024-2.293442 1.774687h-262.134957c-14.088286-4.723398-29.050265-7.781321-42.046437-14.579738-14.907373-7.754018-29.896654-16.982392-41.773407-28.695328-75.628979-74.482258-150.356964-149.865512-225.494492-224.839222-22.006122-21.951516-34.428933-48.708339-40.899715-78.66233-0.409543-1.881168-1.365144-3.658586-2.047716-5.487879V136.188134c4.313855-8.381984 7.590201-17.528449 13.187292-24.957563 9.255677-12.31906 22.169939-18.183719 38.114821-18.156416 100.638418 0.218423 201.276836 0.111942 301.915254 0.111942h13.378412v-11.576422c0-47.427834 1.119418-94.87751-0.38224-142.248008-1.064812-33.637149 10.620821-56.686241 43.384277-67.361667h571.394687c21.544703 7.10421 35.903288 21.457334 43.002037 43.002037V633.865043c-6.910359 10.183974-12.258993 22.224545-21.271675 30.005866zM656.908674 546.495825v-161.68766h-165.346245c55.534059 54.30543 111.668782 109.211523 165.346245 161.68766z m-364.438851 221.617482v-164.199524h-164.199524l164.199524 164.199524z m116.747118-359.142092c-27.739727-28.154731-42.674402-61.980269-42.619797-101.921654 0.027303-43.332402 0-86.686646 0-130.019048v-11.603724H74.565532V529.404221h229.535318c38.851999 0.027303 62.468991 23.644295 62.496294 62.499024v229.890256h217.085204v-10.429701c0-72.352634 0.136514-144.677965-0.275759-217.030598-0.027303-5.351365-2.730288-11.985965-6.44075-15.808368-55.725179-56.710813-111.941811-112.927445-167.748898-169.553619z m540.326738-462.62001H440.833676V312.32174699999996h237.04361c31.122554 0 53.104103 21.815002 53.183282 53.565522 0.218423 75.082922 0.079178 150.165844 0.079178 225.276068v11.46721h218.395742v-656.279342h0.008191z" horiz-adv-x="1024" />
<glyph glyph-name="format" unicode="&#58906;" d="M653.9 742.9c-6.9 7-18.1 7-25 0L69.1 169.70000000000005c-6.9-7-6.9-18.5 0-25.6L178 32.60000000000002c6.9-7 20.4-12.8 30.1-12.8H557c9.7 0 23.3 5.8 30.1 12.8l367.8 376.6c6.9 7 6.9 18.5 0 25.6l-301 308.1zM552.5 100.60000000000002c-6.9-7-20.4-12.8-30.1-12.8h-270c-9.7 0-23.3 5.8-30.1 12.8L171 153.20000000000005c-6.9 7-6.9 18.5 0 25.6l205 210.1c6.9 7 18.1 7 25 0L605 180c6.9-7 6.9-18.5 0-25.6l-52.5-53.8z m0 0" horiz-adv-x="1024" />
<glyph glyph-name="debug" unicode="&#59331;" d="M1024 320V448h-134.4c-6.4 64-19.2 128-44.8 179.2l121.6 121.6L876.8 838.4l-102.4-96C716.8 838.4 620.8 896 512 896 403.2 896 307.2 838.4 243.2 748.8L140.8 844.8 51.2 755.2l121.6-121.6C153.6 576 140.8 512 134.4 448H0v-128h134.4c6.4-64 19.2-128 44.8-185.6L57.6 12.799999999999955l89.6-89.6 102.4 96C307.2-70.39999999999998 403.2-128 512-128c108.8 0 204.8 57.6 268.8 147.2l102.4-96 89.6 89.6-121.6 121.6c19.2 57.6 38.4 121.6 38.4 185.6H1024z m-448-307.2V384H448v-371.2c-108.8 44.8-192 198.4-192 371.2 0 70.4 12.8 134.4 38.4 192h441.6c19.2-57.6 32-121.6 32-192 0-172.8-83.2-326.4-192-371.2z" horiz-adv-x="1024" />
<glyph glyph-name="execute" unicode="&#59146;" d="M512 896a512 512 0 1 1 0-1024A512 512 0 0 1 512 896z m202.24-567.936L447.616 174.08000000000004a64.576 64.576 0 0 0-96.896 55.936V537.9839999999999a64.576 64.576 0 0 0 96.896 55.936l266.624-153.984a64.704 64.704 0 0 0 0-111.872z" horiz-adv-x="1024" />
<glyph glyph-name="delete" unicode="&#59168;" d="M814.28971 759.4325670000001H207.664336c-55.752248 0-101.274725-13.298701-101.274726-56.775224v-26.085914h808.663337v26.085914c0.511489 42.965035-45.010989 56.775225-100.763237 56.775224M723.244755 704.191808L703.296703 844.851149c-3.58042 27.62038-29.666334 50.125874-57.286713 50.125874H376.455544C348.323676 894.977023 322.749251 872.471528 318.657343 844.851149l-19.948052-141.170829c-3.58042-27.62038 15.856144-22.505495 43.476523-22.505495h337.070929c28.131868 0.511489 47.568432-4.603397 43.988012 23.016983z m-360.5994 28.643357l15.344655 111.504495h265.462537l15.344656-111.504495H362.645355z m468.523476-119.176823H190.785215c-36.827173 0-64.959041-30.177822-61.378622-67.004995L184.647353-60.99500499999999c3.58042-36.827173 36.315684-67.004995 73.654345-67.004995h505.35065c36.827173 0 70.073926 30.177822 73.654345 67.004995l55.24076 607.136863c3.58042 36.827173-24.03996 67.516484-61.378622 67.516484zM376.455544-57.41458499999999H245.514486L202.037962 535.400599h174.417582v-592.815184z m221.474526 0H423.512488V535.400599h174.417582v-592.815184z m177.486513 0h-129.406593V535.400599H818.893107l-43.476524-592.815184z" horiz-adv-x="1024" />
<glyph glyph-name="disable" unicode="&#59047;" d="M512.005 833.992c-248.528 0-450-201.472-450-449.995 0-248.528 201.472-449.995 450-449.995 248.524 0 449.992 201.468 449.992 449.995 0 248.524-201.468 449.995-449.992 449.995z m359.996-449.997c0-69.339-19.61-134.096-53.577-189.038L265.996 646.818c64.361 60.27 150.873 97.175 246.008 97.175C710.821 743.9929999999999 872 582.818 872 383.99699999999996z m-719.994 0c0 71.436 20.805 138.011 56.69 193.998l553.556-452.78C697.475 62.557000000000016 609.242 24 512.003 24c-198.826 0-359.996 161.174-359.996 359.996z" horiz-adv-x="1024" />
<glyph glyph-name="release" unicode="&#58880;" d="M386.6 569.8l70.2 70v-371.4c0-31.4 25.4-56.8 56.8-56.8s56.8 25.4 56.8 56.8v372l69.2-69c23-22.8 60.2-22.8 83 0 23 23 23 60 0 83l-166.2 165.8c-11.8 11.8-27.4 17.6-43 17.2-15.8 0.4-31.6-5.2-43.6-17.2l-167.2-166.8c-23-23-23-60.4 0-83.4 23.4-23.4 60.8-23.4 84-0.2zM910.2 839.2h-113.8v-114.8h113.8v-681.8H113.8V724.4h113.8V839.2H113.8C51 839.2 0 788.2 0 725.4v-682.6c0-62.8 51-113.8 113.8-113.8h796.4c62.8 0 113.8 51 113.8 113.8V725.4c0 62.8-51 113.8-113.8 113.8z" horiz-adv-x="1024" />
<glyph glyph-name="save" unicode="&#58895;" d="M1024 682.666667V42.66666699999996a170.666667 170.666667 0 0 0-170.666667-170.666667H170.666667a170.666667 170.666667 0 0 0-170.666667 170.666667V725.333333a170.666667 170.666667 0 0 0 170.666667 170.666667h640L1024 682.666667z m-68.266667-28.245334L782.421333 827.733333H170.666667A102.4 102.4 0 0 1 68.266667 725.333333v-682.666666A102.4 102.4 0 0 1 170.666667-59.733333000000016h682.666666a102.4 102.4 0 0 1 102.4 102.4V654.421333zM273.066667 896h477.866666v-281.6a102.4 102.4 0 0 0-102.4-102.4H375.466667a102.4 102.4 0 0 0-102.4 102.4V896z m68.266666-68.266667v-213.333333c0-18.773333 15.36-34.133333 34.133334-34.133333h273.066666a34.133333 34.133333 0 0 1 34.133334 34.133333V827.733333H341.333333zM307.2 341.33333300000004h409.6a102.4 102.4 0 0 0 102.4-102.4V-128H204.8V238.93333299999995a102.4 102.4 0 0 0 102.4 102.4z m443.733333-102.4a34.133333 34.133333 0 0 1-34.133333 34.133334H307.2a34.133333 34.133333 0 0 1-34.133333-34.133334v-298.666666h477.866666V238.93333299999995z" horiz-adv-x="1024" />
<glyph glyph-name="history" unicode="&#58883;" d="M511.720625 830.720625c-150.04875 0-282.58875-73.755-363.744375-186.7621875v75.174375c0 23.1121875-18.79125 41.8453125-41.97 41.8453125s-41.97-18.7340625-41.97-41.8453125v-167.38125c0-23.1065625 18.79125-41.8453125 41.97-41.8453125h181.8703125c23.17875 0 41.97 18.7378125 41.97 41.8453125 0 23.1121875-18.79125 41.8453125-41.97 41.8453125h-73.005c65.84625 92.7871875 174.170625 153.4321875 296.85 153.4321875 200.88375 0 363.73875-162.369375 363.73875-362.6596875 0-200.2865625-162.855-362.6596875-363.73875-362.6596875-169.318125 0-311.195625 115.51125-351.7415625 271.6846875l-0.7284375-0.226875c-5.655 16.4390625-20.8453125 28.4371875-39.2559375 28.4371875-23.17875 0-41.97-18.7340625-41.97-41.840625 0-4.1240625 1.24125-7.86 2.353125-11.619375l-0.436875-0.1378125c0.275625-1.0134375 0.7809375-1.92 1.0621875-2.9278125 0.3084375-0.8128125 0.51375-1.6246875 0.8709375-2.415 53.25375-187.168125 225.0553125-324.6440625 429.849375-324.6440625 247.246875 0 447.6796875 199.8403125 447.6796875 446.3503125-0.001875 246.5146875-200.435625 446.35125-447.6834375 446.35125zM511.720625 642.42c-23.17875 0-41.97-18.7340625-41.97-41.8453125v-251.071875c0-23.1121875 18.79125-41.8453125 41.97-41.8453125 0 0 0 0 0.00375 0h181.865625c23.17875 0 41.97 18.7340625 41.97 41.840625 0 23.1159375-18.79125 41.8453125-41.97 41.8453125h-139.899375v209.23125c0 23.1121875-18.7921875 41.8453125-41.9709375 41.8453125z" horiz-adv-x="1024" />
<glyph glyph-name="test" unicode="&#59089;" d="M735.872296 831.910418v-448.012798l282.157968-421.394121c19.247351-42.180364-11.671266-90.503499-58.15157-90.503499H63.853099c-48.323135 0-79.036993 51.59928-56.103979 93.984403L287.859498 384.10238V832.115177H191.827505c-17.609278 0-31.942412 14.333133-31.942412 31.942411S174.422985 896 191.827505 896h639.872025c17.609278 0 31.942412-14.333133 31.942412-31.942412s-14.333133-31.942412-31.942412-31.942411c0.204759-0.204759-95.827235-0.204759-95.827234-0.204759zM671.782714 384.10238V831.910418H351.94908V353.183763L100.914487-18.249149999999986c-11.056989-20.680664 3.890422-45.661268 27.232954-45.661268h767.84643c22.523495 0.204759 37.675665 23.547291 28.05199 44.023195L671.782714 353.183763V384.10238z m64.089582-319.014598v62.041992c0 0.614277-0.409518 1.023795-1.023796 1.023795H288.883293c-0.614277 0-1.023795-0.409518-1.023795-1.023795v-62.041992c0-0.614277 0.409518-1.023795 1.023795-1.023795h445.965207c0.409518 0 1.023795 0.614277 1.023796 1.023795z" horiz-adv-x="1024" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><link rel=stylesheet href=iconfont/iconfont.css><script src=iconfont/iconfont.js></script><script async src=https://buttons.github.io/buttons.js></script><title>Dataway</title><link href=static/js/chunk-2d0ae937.9b978668.js rel=prefetch><link href=static/js/chunk-2d2308b7.95ecc2aa.js rel=prefetch><link href=app.6dad60dcb53174a19e1d.js rel=preload as=script><link href=static/css/app.878c868a.css rel=preload as=style><link href=static/css/chunk-vendors.c325de50.css rel=preload as=style><link href=static/js/chunk-vendors.f60ecdea.js rel=preload as=script><link href=static/css/chunk-vendors.c325de50.css rel=stylesheet><link href=static/css/app.878c868a.css rel=stylesheet></head><body><noscript><strong>We're sorry but Dataway doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=static/js/chunk-vendors.f60ecdea.js></script><script src=app.6dad60dcb53174a19e1d.js></script></body></html>

View File

@ -0,0 +1,292 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Login</title>
<style type="text/css">
.btn {
display: inline-block;
*display: inline;
*zoom: 1;
padding: 4px 10px 4px;
margin-bottom: 0;
font-size: 13px;
line-height: 18px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(
linear,
0 0,
0 100%,
from(#ffffff),
to(#e6e6e6)
);
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(top, #ffffff, #e6e6e6);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr=#ffffff, endColorstr=#e6e6e6, GradientType=0);
border-color: #e6e6e6 #e6e6e6 #e6e6e6;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border: 1px solid #e6e6e6;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),
0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),
0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),
0 1px 2px rgba(0, 0, 0, 0.05);
cursor: pointer;
*margin-left: 0.3em;
}
.btn:hover,
.btn:active,
.btn.active,
.btn.disabled,
.btn[disabled] {
background-color: #e6e6e6;
}
.btn-large {
padding: 9px 14px;
font-size: 15px;
line-height: normal;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-ms-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.btn-primary,
.btn-primary:hover {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
color: #ffffff;
}
.btn-primary.active {
color: rgba(255, 255, 255, 0.75);
}
.btn-primary {
background-color: #4a77d4;
background-image: -moz-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -ms-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -webkit-gradient(
linear,
0 0,
0 100%,
from(#6eb6de),
to(#4a77d4)
);
background-image: -webkit-linear-gradient(top, #6eb6de, #4a77d4);
background-image: -o-linear-gradient(top, #6eb6de, #4a77d4);
background-image: linear-gradient(top, #6eb6de, #4a77d4);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr=#6eb6de, endColorstr=#4a77d4, GradientType=0);
border: 1px solid #3762bc;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),
0 1px 2px rgba(0, 0, 0, 0.5);
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary.active,
.btn-primary.disabled,
.btn-primary[disabled] {
filter: none;
background-color: #4a77d4;
}
.btn-block {
width: 100%;
display: block;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
width: 100%;
height: 100%;
font-family: "Open Sans", sans-serif;
background: #3dbaea;
background: -moz-radial-gradient(
0% 100%,
ellipse cover,
rgba(104, 128, 138, 0.4) 10%,
rgba(138, 114, 76, 0) 40%
),
-moz-linear-gradient(top, rgba(57, 173, 219, 0.25) 0%, rgba(
42,
60,
87,
0.4
)
100%),
-moz-linear-gradient(-45deg, #670d10 0%, #3dbaea 100%);
background: -webkit-radial-gradient(
0% 100%,
ellipse cover,
rgba(104, 128, 138, 0.4) 10%,
rgba(138, 114, 76, 0) 40%
),
-webkit-linear-gradient(top, rgba(57, 173, 219, 0.25) 0%, rgba(
42,
60,
87,
0.4
)
100%),
-webkit-linear-gradient(-45deg, #670d10 0%, #3dbaea 100%);
background: -o-radial-gradient(
0% 100%,
ellipse cover,
rgba(104, 128, 138, 0.4) 10%,
rgba(138, 114, 76, 0) 40%
),
-o-linear-gradient(top, rgba(57, 173, 219, 0.25) 0%, rgba(
42,
60,
87,
0.4
)
100%),
-o-linear-gradient(-45deg, #670d10 0%, #3dbaea 100%);
background: -ms-radial-gradient(
0% 100%,
ellipse cover,
rgba(104, 128, 138, 0.4) 10%,
rgba(138, 114, 76, 0) 40%
),
-ms-linear-gradient(top, rgba(57, 173, 219, 0.25) 0%, rgba(
42,
60,
87,
0.4
)
100%),
-ms-linear-gradient(-45deg, #670d10 0%, #3dbaea 100%);
background: -webkit-radial-gradient(
0% 100%,
ellipse cover,
rgba(104, 128, 138, 0.4) 10%,
rgba(138, 114, 76, 0) 40%
),
linear-gradient(
to bottom,
rgba(57, 173, 219, 0.25) 0%,
rgba(42, 60, 87, 0.4) 100%
),
linear-gradient(135deg, #670d10 0%, #3dbaea 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3E1D6D', endColorstr='#3dbaea', GradientType=1);
}
.login {
position: absolute;
top: 50%;
left: 50%;
margin: -150px 0 0 -150px;
width: 320px;
height: 300px;
}
.login h2 {
margin-bottom: 15px;
color: #fff;
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
letter-spacing: 1px;
text-align: center;
}
input {
width: 100%;
margin-bottom: 10px;
background: rgba(0, 0, 0, 0.3);
border: none;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 4px;
box-shadow: inset 0 -5px 45px rgba(100, 100, 100, 0.2),
0 1px 1px rgba(255, 255, 255, 0.2);
-webkit-transition: box-shadow 0.5s ease;
-moz-transition: box-shadow 0.5s ease;
-o-transition: box-shadow 0.5s ease;
-ms-transition: box-shadow 0.5s ease;
transition: box-shadow 0.5s ease;
}
input:focus {
box-shadow: inset 0 -5px 45px rgba(100, 100, 100, 0.4),
0 1px 1px rgba(255, 255, 255, 0.2);
}
</style>
</head>
<body>
<div class="login">
<h2>
欢迎使用DataWay<span style="font-size: 12px"> - 研筑专用版本</span>
</h2>
<form method="post" action="login">
<input
type="text"
name="userName"
value=""
autocomplete="off"
placeholder="用户名"
/>
<input
type="password"
name="userPassword"
value=""
autocomplete="off"
placeholder="密码"
/>
<button
type="submit"
value="Login"
class="btn btn-primary btn-block btn-large"
>
登录
</button>
</form>
</div>
</body>
</html>

View File

@ -0,0 +1 @@
.gitStyle[data-v-a376c386]{float:right;top:-55px;position:relative}.gitStyle span[data-v-a376c386]{display:inline-block;width:100px}.request-tabs[data-v-e95d70c6]{top:-33px;position:relative}.request-btns[data-v-e95d70c6]{padding:2px 5px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.z-index-top[data-v-e95d70c6]{z-index:1000}.response-tabs[data-v-d8f3c590]{top:-33px;position:relative}.response-btns[data-v-d8f3c590]{padding:2px 5px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.z-index-top[data-v-d8f3c590]{z-index:1000}#directory-list{top:30px;left:-4px;position:absolute;width:100%;height:100%;z-index:100;background:#fff}.el-tree-node__content{border-bottom:1px solid #ccc;line-height:30px;background-color:hsla(0,0%,98.4%,.6)}.is-disabled[data-v-614b428f]{background-color:#f3f5f9!important;-webkit-filter:grayscale(1);filter:grayscale(1)}.el-timeline-item[data-v-614b428f]{padding-bottom:15px!important}.el-timeline-item[data-v-614b428f]:hover{background-color:#f7f7f7;padding-bottom:15px!important}.el-timeline[data-v-614b428f]{-webkit-padding-start:5px!important;padding-inline-start:5px!important}.monacoEditorHeader[data-v-d93494dc]{overflow-x:hidden;overflow-y:hidden;padding:5px}.comment[data-v-d93494dc]{width:50%;position:absolute;z-index:1000}.el-radio[data-v-d93494dc]{margin-right:1px;width:80px}.el-radio--mini.is-bordered[data-v-d93494dc]{padding:3px 10px 0 5px;height:25px}.el-input-group__append[data-v-d93494dc],.el-input-group__prepend[data-v-d93494dc]{padding:0 13px!important}.el-radio.is-bordered+.el-radio.is-bordered[data-v-d93494dc]{margin-left:1px}.input-with-select .el-input-group__prepend[data-v-d93494dc]{cursor:copy!important}body{margin:0;padding:0}.el-header,.el-main{padding:0!important}.el-table td,.el-table th{padding:2px 0!important}.el-table .cell{padding:0 4px!important}.el-tabs--border-card>.el-tabs__content,.el-tabs--card>.el-tabs__header{margin:0;padding-top:3px}.el-tabs--border-card{height:100%!important;overflow-y:hidden!important}.el-tabs__item{height:30px!important;line-height:30px!important}.vue-splitter-container{padding:1px}.el-tabs--card>.el-tabs__header{padding-left:30px}.el-table--border{border:0!important}.el-input--mini .el-input__inner{height:25px!important;line-height:25px!important}.el-divider--horizontal{margin:0!important}.input-with-select .el-input-group__prepend{background-color:#fff}.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.el-drawer.rtl{overflow-y:scroll!important}

View File

@ -55,12 +55,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectProProjectInfoSubdeptsUsersVo">
select psu.id, psu.par_id, psu.com_id, psu.project_id, pi.project_name, psu.sub_dept_id, psu.sub_dept_type, dic3.dict_label as sub_dept_type_name, psu.sub_dept_name, psu.sub_dept_power_path, psu.user_id, psu.user_post, psu.sub_dept_group,
select psu.id, psu.par_id, psu.com_id, psu.project_id, pi.project_name, psu.sub_dept_id, psu.sub_dept_type, dic3.dict_label as sub_dept_type_name, pdept.sub_dept_name, psu.sub_dept_power_path, psu.user_id, psu.user_post, psu.sub_dept_group,
psu.sub_dept_group_name, psu.user_name, psu.card_type, psu.card_code, psu.user_sex, psu.user_picture, psu.user_phone, psu.degree_grade, dic4.dict_label as degree_grade_name, psu.user_infos, psu.craft_type, dic1.dict_label as craft_type_name, psu.craft_post, dic2.dict_label as craft_post_name, psu.edu_status, psu.edu_file_path, psu.edu_date, psu.approve_status,
psu.use_date, psu.use_status, psu.admit_guid, psu.qr_code, psu.sub_step, psu.illness_status, psu.sup_illness_status, psu.is_del, psu.create_by, psu.create_time, psu.update_by, psu.update_time,
psu.remark,psu.face_guid,sd.dept_name com_name,psu.work_type
from pro_project_info_subdepts_users psu
left join pro_project_info pi on pi.id = psu.project_id
left join pro_project_info_subdepts pdept on psu.sub_dept_id=pdept.id
left join sys_dept sd on sd.dept_id = psu.com_id
left join sys_dict_data dic1 on psu.`craft_type`=dic1.`dict_value` and dic1.`dict_type`='pro_craft_type'
left join sys_dict_data dic2 on psu.`craft_post`=dic2.`dict_value` and dic2.`dict_type`='pro_craft_post'

View File

@ -1,6 +1,7 @@
package com.yanzhu.manage.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.hutool.core.util.NumberUtil;
import com.yanzhu.common.core.constant.CacheConstants;
import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.domain.R;
@ -415,6 +416,10 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept
subdeptsUser.setSubDeptGroupName(groups.get(0).getGroupName());
}
}
Long uId=proProjectInfoSubdepts.getSubDeptLeaderId();
if(uId==null || uId<=0){
return res;
}
subdeptsUser.setSubDeptName(proProjectInfoSubdepts.getSubDeptName());
subdeptsUser.setSubDeptType(proProjectInfoSubdepts.getSubDeptType());
subdeptsUser.setSubDeptPowerPath(proProjectInfoSubdepts.getSubDeptLeaderPowerPath());

View File

@ -1,6 +1,8 @@
package net.hasor.dataql.domain;
import net.hasor.dataql.Udf;
import net.hasor.dataql.runtime.operator.OperatorUtils;
import net.hasor.dataway.config.DatawayModule;
import net.hasor.dataway.service.InterfaceUiFilter;
import net.hasor.utils.ArrayUtils;
import net.hasor.utils.ref.BeanMap;
@ -22,6 +24,7 @@ public class DomainHelper {
}
public static DataModel convertTo(Object object) {
InterfaceUiFilter dm;
if (object instanceof DataModel) {
// 已经是 DataModel
return (DataModel) object;

View File

@ -0,0 +1,187 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package net.hasor.dataway.service;
import com.alibaba.fastjson.JSON;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yanzhu.system.api.domain.SysDictData;
import net.hasor.dataway.config.DatawayUtils;
import net.hasor.utils.ResourcesUtils;
import net.hasor.utils.StringUtils;
import net.hasor.utils.io.FilenameUtils;
import net.hasor.utils.io.IOUtils;
import net.hasor.utils.io.output.ByteArrayOutputStream;
import net.hasor.web.Invoker;
import net.hasor.web.InvokerChain;
import net.hasor.web.InvokerFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class InterfaceUiFilter implements InvokerFilter {
protected static Logger logger = LoggerFactory.getLogger(InterfaceUiFilter.class);
public static final String resourceBaseUri = "/META-INF/hasor-framework/dataway-ui/";
private String resourceIndexUri = null;
private final String uiBaseUri;
private final String uiAdminBaseUri;
private final Map<String, Integer> resourceSize;
public InterfaceUiFilter(String uiBaseUri) {
this.uiBaseUri = uiBaseUri;
this.uiAdminBaseUri = fixUrl(uiBaseUri + "/api/");
this.resourceIndexUri = fixUrl(uiBaseUri + "/index.html");
this.resourceSize = new ConcurrentHashMap();
}
private static String fixUrl(String url) {
return url.replaceAll("/+", "/");
}
public Object doInvoke(Invoker invoker, InvokerChain chain) throws Throwable {
HttpServletRequest httpRequest = invoker.getHttpRequest();
HttpServletResponse httpResponse = invoker.getHttpResponse();
String requestURI = invoker.getRequestPath();
setupInner(invoker);
if (requestURI.startsWith(this.uiAdminBaseUri)) {
try {
DatawayUtils.resetLocalTime();
return chain.doNext(invoker);
} catch (Exception e) {
logger.error(e.getMessage(), e);
Object objectMap = DatawayUtils.exceptionToResult(e).getResult();
PrintWriter writer = httpResponse.getWriter();
writer.write(JSON.toJSONString(objectMap));
writer.flush();
return objectMap;
}
} else {
String httpMethod = httpRequest.getMethod().toUpperCase().trim();
if (httpMethod.equals("OPTIONS")) {
httpResponse.setStatus(200);
return httpResponse;
} else {
if(requestURI.endsWith("/login")){
httpResponse.sendRedirect("/#/");
return httpResponse;
}
if (this.uiBaseUri.equalsIgnoreCase(requestURI)) {
requestURI = this.resourceIndexUri;
}
if (requestURI.equalsIgnoreCase(this.resourceIndexUri)) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//try (InputStream inputStream = ResourcesUtils.getResourceAsStream(fixUrl("/META-INF/hasor-framework/dataway-ui//index.html"))) {
try (InputStream inputStream = SysDictData.class.getResourceAsStream(fixUrl("/interface-ui/index.html"))) {
IOUtils.copy(inputStream, outputStream);
}
String htmlBody = new String(outputStream.toByteArray());
httpResponse.setContentType(invoker.getMimeType("html"));
httpResponse.setContentLength(htmlBody.length());
PrintWriter writer = httpResponse.getWriter();
writer.write(htmlBody);
writer.flush();
return null;
} else if (!requestURI.startsWith(this.uiBaseUri)) {
return chain.doNext(invoker);
} else {
String extension = FilenameUtils.getExtension(requestURI);
String mimeType = invoker.getMimeType(extension);
if (StringUtils.isNotBlank(mimeType)) {
httpResponse.setContentType(mimeType);
}
httpResponse.setHeader("Cache-control", "public, max-age=2592000");
//String resourceName = fixUrl("/META-INF/hasor-framework/dataway-ui/" + requestURI.substring(this.uiBaseUri.length()));
String resourceName = fixUrl("/interface-ui/" + requestURI.substring(this.uiBaseUri.length()));
try (OutputStream outputStream = httpResponse.getOutputStream()) {
OutputStream output = null;
Integer size = (Integer)this.resourceSize.get(resourceName);
Object var82;
if (size == null) {
var82 = new ByteArrayOutputStream();
} else {
var82 = outputStream;
httpResponse.setContentLength(size);
}
try {
//InputStream inputStream = ResourcesUtils.getResourceAsStream(resourceName);
InputStream inputStream = SysDictData.class.getResourceAsStream(resourceName);
Throwable var15 = null;
try {
Throwable var16;
try {
if (inputStream == null) {
httpResponse.sendError(404, "not found " + requestURI);
var16 = null;
return var16;
}
IOUtils.copy(inputStream, (OutputStream)var82);
} catch (Throwable var70) {
var16 = var70;
var15 = var70;
throw var70;
}
} finally {
if (inputStream != null) {
if (var15 != null) {
try {
inputStream.close();
} catch (Throwable var68) {
var15.addSuppressed(var68);
}
} else {
inputStream.close();
}
}
}
} catch (Exception e) {
logger.error("load " + resourceName + " failed -> " + e.getMessage(), e);
}
if (size == null) {
byte[] byteArray = ((ByteArrayOutputStream)var82).toByteArray();
size = byteArray.length;
this.resourceSize.put(resourceName, size);
outputStream.write(byteArray);
}
outputStream.flush();
return null;
}
}
}
}
}
public static void setupInner(Invoker invoker) {
HttpServletRequest httpRequest = invoker.getHttpRequest();
HttpServletResponse httpResponse = invoker.getHttpResponse();
String originString = httpRequest.getHeader("Origin");
if (StringUtils.isNotBlank(originString)) {
httpResponse.setHeader("Access-Control-Allow-Origin", originString);
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
} else {
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
}
httpResponse.addHeader("Access-Control-Allow-Methods", "*");
httpResponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-InterfaceUI-Info");
httpResponse.addHeader("Access-Control-Expose-Headers", "X-InterfaceUI-ContextType");
httpResponse.addHeader("Access-Control-Max-Age", "3600");
}
}

View File

@ -1,14 +1,18 @@
<template>
<div class="app-container home">
</div>
<div class="app-container home"></div>
</template>
<script setup name="Index">
import request from '@/utils/request'
const version = ref('3.6.3')
function goTarget(url) {
window.open(url, '__blank')
}
request.get('/manage/api/menu/list').then((d) => {
debugger
})
</script>
<style scoped lang="scss">
@ -36,11 +40,7 @@ function goTarget(url) {
margin: 0;
}
font-family: "open sans",
"Helvetica Neue",
Helvetica,
Arial,
sans-serif;
font-family: 'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 13px;
color: #676a6c;
overflow-x: hidden;

View File

@ -1,50 +1,20 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectName" v-if="!userStore.currentPrjId">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="单位名称" prop="subDeptName">
<el-input
v-model="queryParams.subDeptName"
placeholder="请输入参建单位名称"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.subDeptName" placeholder="请输入参建单位名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="单位类型" prop="subDeptType">
<el-select
v-model="queryParams.subDeptType"
placeholder="请选择参建单位类型"
clearable
>
<el-option
v-for="dict in sub_dept_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.subDeptType" placeholder="请选择参建单位类型" clearable>
<el-option v-for="dict in sub_dept_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="进场状态" prop="useStatus">
<el-select v-model="queryParams.useStatus" placeholder="请选择进场状态" clearable>
<el-option
v-for="dict in sys_use_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in sys_use_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -55,58 +25,21 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['manage:proProjectInfoSubdepts:add']"
>新增</el-button
>
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['manage:proProjectInfoSubdepts:add']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['manage:proProjectInfoSubdepts:edit']"
>修改</el-button
>
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['manage:proProjectInfoSubdepts:edit']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['manage:proProjectInfoSubdepts:remove']"
>删除</el-button
>
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['manage:proProjectInfoSubdepts:remove']"></el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['manage:proProjectInfoSubdepts:export']"
>导出</el-button
>
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['manage:proProjectInfoSubdepts:export']"></el-button>
</el-col>
<right-toolbar
v-model:showSearch="showSearch"
@queryTable="getList"
></right-toolbar>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="proProjectInfoSubdeptsList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="proProjectInfoSubdeptsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="公司名称" align="center" prop="comName" />
<el-table-column label="项目名称" align="center" prop="projectName" />
@ -119,12 +52,7 @@
<el-table-column label="信用代码" align="center" prop="subDeptCode" />
<el-table-column label="入场二维码" align="center" prop="qrCode" width="100">
<template #default="scope">
<image-preview
v-if="scope.row.qrCode"
:src="scope.row.qrCode"
:width="50"
:height="50"
/>
<image-preview v-if="scope.row.qrCode" :src="scope.row.qrCode" :width="50" :height="50" />
<span v-if="!scope.row.qrCode">-</span>
</template>
</el-table-column>
@ -143,279 +71,99 @@
<dict-tag :options="sys_approve_status" :value="scope.row.approveStatus" />
</template>
</el-table-column>
<el-table-column
label="数据状态"
align="center"
prop="isDel"
width="80"
v-if="false"
>
<el-table-column label="数据状态" align="center" prop="isDel" width="80" v-if="false">
<template #default="scope">
<dict-tag :options="sys_is_del" :value="scope.row.isDel" />
</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
width="150"
align="center"
class-name="small-padding fixed-width"
>
<el-table-column label="操作" fixed="right" width="150" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button
link
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdepts:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.useStatus == '0'"
link
type="primary"
icon="Setting"
@click="handleUseStatus(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdepts:edit']"
>离场</el-button
>
<el-button
v-if="scope.row.useStatus == '1'"
link
type="primary"
icon="Setting"
@click="handleUseStatus(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdepts:edit']"
>进场</el-button
>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:proProjectInfoSubdepts:edit']"></el-button>
<el-button v-if="scope.row.useStatus == '0'" link type="primary" icon="Setting" @click="handleUseStatus(scope.row)" v-hasPermi="['manage:proProjectInfoSubdepts:edit']"></el-button>
<el-button v-if="scope.row.useStatus == '1'" link type="primary" icon="Setting" @click="handleUseStatus(scope.row)" v-hasPermi="['manage:proProjectInfoSubdepts:edit']"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改分包单位对话框 -->
<el-dialog
:title="title"
v-model="open"
width="680px"
append-to-body
>
<el-form
ref="proProjectInfoSubdeptsRef"
:model="form"
:rules="rules"
label-width="88px"
>
<el-dialog :title="title" v-model="open" width="680px" append-to-body>
<el-form ref="proProjectInfoSubdeptsRef" :model="form" :rules="rules" label-width="88px">
<el-tabs v-model="activeTabs" type="card" class="demo-tabs">
<el-tab-pane label="基本信息" name="base">
<el-form-item label="项目名称" v-if="form.projectId">
<el-tag effect="plain">{{ form.projectName }}</el-tag>
</el-form-item>
<el-form-item label="单位类型" prop="subDeptType">
<el-select
v-model="form.subDeptType"
placeholder="请选择单位类型"
style="width: 100%"
>
<el-option
v-for="dict in sub_dept_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.subDeptType" placeholder="请选择单位类型" style="width: 100%">
<el-option v-for="dict in sub_dept_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="subDeptName">
<el-input
v-model="form.subDeptName"
placeholder="请输入单位名称"
maxlength="64"
show-word-limit
/>
<el-input v-model="form.subDeptName" placeholder="请输入单位名称" maxlength="64" show-word-limit />
</el-form-item>
<el-form-item label="信用代码" prop="subDeptCode">
<el-input
v-model="form.subDeptCode"
placeholder="请输入信用代码"
maxlength="64"
show-word-limit
/>
<el-input v-model="form.subDeptCode" placeholder="请输入信用代码" maxlength="64" show-word-limit />
</el-form-item>
<el-form-item label="进场时间" prop="useDates">
<el-date-picker
v-model="form.useDates"
type="date"
placeholder="请选择进场时间"
style="width: 100%"
/>
<el-date-picker v-model="form.useDates" type="date" placeholder="请选择进场时间" style="width: 100%" />
</el-form-item>
<el-form-item
label="开工时间"
prop="startWorkDates"
v-if="form.subDeptType == '4' || form.subDeptType == '5'"
>
<el-date-picker
v-model="form.startWorkDates"
type="date"
placeholder="请选择计划开工时间"
style="width: 100%"
/>
<el-form-item label="开工时间" prop="startWorkDates" v-if="form.subDeptType == '4' || form.subDeptType == '5'">
<el-date-picker v-model="form.startWorkDates" type="date" placeholder="请选择计划开工时间" style="width: 100%" />
</el-form-item>
<el-form-item
label="完工时间"
prop="endWorkDates"
v-if="form.subDeptType == '4' || form.subDeptType == '5'"
>
<el-date-picker
v-model="form.endWorkDates"
type="date"
placeholder="请选择计划完工时间"
style="width: 100%"
/>
<el-form-item label="完工时间" prop="endWorkDates" v-if="form.subDeptType == '4' || form.subDeptType == '5'">
<el-date-picker v-model="form.endWorkDates" type="date" placeholder="请选择计划完工时间" style="width: 100%" />
</el-form-item>
<el-form-item label="进场状态" prop="useStatus">
<el-select
v-model="form.useStatus"
placeholder="请选择进场状态"
style="width: 100%"
>
<el-option
v-for="dict in sys_use_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.useStatus" placeholder="请选择进场状态" style="width: 100%">
<el-option v-for="dict in sys_use_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="承包范围"
prop="contractInfos"
v-if="form.subDeptType == '4' || form.subDeptType == '5'"
>
<el-input
v-model="form.contractInfos"
maxlength="2000"
show-word-limit
type="textarea"
rows="4"
placeholder="请输入承包范围"
/>
<el-form-item label="承包范围" prop="contractInfos" v-if="form.subDeptType == '4' || form.subDeptType == '5'">
<el-input v-model="form.contractInfos" maxlength="2000" show-word-limit type="textarea" rows="4" placeholder="请输入承包范围" />
</el-form-item>
</el-tab-pane>
<el-tab-pane label="单位信息" name="infos">
<el-form-item label="经营范围">
<el-input
v-model="form.subDeptInfos.busScope"
maxlength="2000"
show-word-limit
type="textarea"
rows="3"
placeholder="请输入经营范围"
/>
<el-input v-model="form.subDeptInfos.busScope" maxlength="2000" show-word-limit type="textarea" rows="3" placeholder="请输入经营范围" />
</el-form-item>
<el-form-item label="注册日期">
<el-date-picker
v-model="form.subDeptInfos.signDate"
type="date"
placeholder="请选择注册日期"
style="width: 100%"
/>
<el-date-picker v-model="form.subDeptInfos.signDate" type="date" placeholder="请选择注册日期" style="width: 100%" />
</el-form-item>
<el-form-item label="公司地址">
<el-input
v-model="form.subDeptInfos.address"
maxlength="200"
show-word-limit
type="textarea"
rows="2"
placeholder="请输入公司地址"
/>
<el-input v-model="form.subDeptInfos.address" maxlength="200" show-word-limit type="textarea" rows="2" placeholder="请输入公司地址" />
</el-form-item>
<el-form-item label="营业执照" prop="businessLicensePath">
<image-upload v-model="form.businessLicensePath" :limit="1" />
</el-form-item>
<el-form-item label="企业联系人">
<el-input
v-model="form.subDeptInfos.person"
maxlength="10"
show-word-limit
placeholder="请输入企业联系人"
/>
<el-input v-model="form.subDeptInfos.person" maxlength="10" show-word-limit placeholder="请输入企业联系人" />
</el-form-item>
<el-form-item label="联系人电话">
<el-input
v-model="form.subDeptInfos.personPhone"
maxlength="11"
show-word-limit
placeholder="请输入联系人电话"
/>
<el-input v-model="form.subDeptInfos.personPhone" maxlength="11" show-word-limit placeholder="请输入联系人电话" />
</el-form-item>
<el-form-item label="法定代表人">
<el-input
v-model="form.subDeptInfos.legalPerson"
maxlength="10"
show-word-limit
placeholder="请输入法定代表人"
/>
<el-input v-model="form.subDeptInfos.legalPerson" maxlength="10" show-word-limit placeholder="请输入法定代表人" />
</el-form-item>
<el-form-item label="法人身份证">
<el-input
v-model="form.subDeptInfos.legalPersonCard"
maxlength="18"
show-word-limit
placeholder="请输入法人身份证"
/>
<el-input v-model="form.subDeptInfos.legalPersonCard" maxlength="18" show-word-limit placeholder="请输入法人身份证" />
</el-form-item>
<el-form-item label="获得奖项">
<el-input
v-model="form.subDeptInfos.awards"
maxlength="999"
show-word-limit
type="textarea"
rows="3"
placeholder="请输入获得奖项"
/>
<el-input v-model="form.subDeptInfos.awards" maxlength="999" show-word-limit type="textarea" rows="3" placeholder="请输入获得奖项" />
</el-form-item>
<el-form-item label="企业评分">
<el-input
v-model="form.subDeptInfos.mark"
maxlength="10"
show-word-limit
placeholder="请输入企业评分"
/>
<el-input v-model="form.subDeptInfos.mark" maxlength="10" show-word-limit placeholder="请输入企业评分" />
</el-form-item>
<el-divider content-position="left" class="divider_title"
>银行卡信息</el-divider
>
<el-divider content-position="left" class="divider_title">银行卡信息</el-divider>
<el-form-item label="支行名称">
<el-input
v-model="form.subDeptInfos.bankName"
maxlength="32"
show-word-limit
placeholder="请输入支行名称"
/>
<el-input v-model="form.subDeptInfos.bankName" maxlength="32" show-word-limit placeholder="请输入支行名称" />
</el-form-item>
<el-form-item label="银行卡号">
<el-input
v-model="form.subDeptInfos.bankNumber"
maxlength="32"
show-word-limit
placeholder="请输入银行卡号"
/>
<el-input v-model="form.subDeptInfos.bankNumber" maxlength="32" show-word-limit placeholder="请输入银行卡号" />
</el-form-item>
</el-tab-pane>
<el-tab-pane
label="委托人信息"
name="leader"
v-if="form.subDeptType == '4' || form.subDeptType == '5'"
>
<el-tab-pane label="委托人信息" name="leader" v-if="form.subDeptType == '4' || form.subDeptType == '5'">
<el-form-item label="单位委托书" prop="subDeptLeaderPowerPath">
<image-upload v-model="form.subDeptLeaderPowerPath" :limit="1" />
</el-form-item>
@ -436,28 +184,13 @@
</el-form-item>
</el-tab-pane>
<el-form-item label="委托人姓名" prop="subDeptLeaderName">
<el-input
v-model="form.subDeptLeaderName"
placeholder="请输入委托人姓名"
maxlength="10"
show-word-limit
/>
<el-input v-model="form.subDeptLeaderName" placeholder="请输入委托人姓名" maxlength="10" show-word-limit />
</el-form-item>
<el-form-item label="身份证号码" prop="subDeptLeaderCode">
<el-input
v-model="form.subDeptLeaderCode"
placeholder="请输入委托人身份证号码"
maxlength="18"
show-word-limit
/>
<el-input v-model="form.subDeptLeaderCode" placeholder="请输入委托人身份证号码" maxlength="18" show-word-limit />
</el-form-item>
<el-form-item label="委托人电话" prop="subDeptLeaderPhone">
<el-input
v-model="form.subDeptLeaderPhone"
placeholder="请输入委托人电话"
maxlength="11"
show-word-limit
/>
<el-input v-model="form.subDeptLeaderPhone" placeholder="请输入委托人电话" maxlength="11" show-word-limit />
</el-form-item>
</el-tabs>
</el-form>
@ -479,28 +212,28 @@ import {
addProProjectInfoSubdepts,
updateProProjectInfoSubdepts,
editUseStatus,
} from "@/api/manage/proProjectInfoSubdepts";
import useUserStore from "@/store/modules/user";
} from '@/api/manage/proProjectInfoSubdepts'
import useUserStore from '@/store/modules/user'
const { proxy } = getCurrentInstance();
const { proxy } = getCurrentInstance()
const { sys_use_status, sub_dept_type, sys_approve_status, sys_is_del } = proxy.useDict(
"sys_use_status",
"sub_dept_type",
"sys_approve_status",
"sys_is_del"
);
'sys_use_status',
'sub_dept_type',
'sys_approve_status',
'sys_is_del'
)
const userStore = useUserStore();
const proProjectInfoSubdeptsList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const activeTabs = ref("base");
const userStore = useUserStore()
const proProjectInfoSubdeptsList = ref([])
const open = ref(false)
const loading = ref(true)
const showSearch = ref(true)
const ids = ref([])
const single = ref(true)
const multiple = ref(true)
const total = ref(0)
const title = ref('')
const activeTabs = ref('base')
const data = reactive({
form: {
@ -513,41 +246,37 @@ const data = reactive({
subDeptType: null,
subDeptName: null,
subDeptCode: null,
activeTags: "finished",
activeTags: 'finished',
approveStatus: null,
},
rules: {
subDeptType: [{ required: true, message: "单位类型不能为空", trigger: "change" }],
subDeptName: [{ required: true, message: "单位名称不能为空", trigger: "blur" }],
subDeptCode: [{ required: true, message: "信用代码不能为空", trigger: "blur" }],
useDates: [{ required: true, message: "进场时间不能为空", trigger: "change" }],
startWorkDates: [
{ required: true, message: "计划开工时间不能为空", trigger: "change" },
],
endWorkDates: [
{ required: true, message: "计划完工时间不能为空", trigger: "change" },
],
useStatus: [{ required: true, message: "进场状态不能为空", trigger: "change" }],
contractInfos: [{ required: true, message: "合同承包范围不能为空", trigger: "blur" }],
subDeptType: [{ required: true, message: '单位类型不能为空', trigger: 'change' }],
subDeptName: [{ required: true, message: '单位名称不能为空', trigger: 'blur' }],
subDeptCode: [{ required: true, message: '信用代码不能为空', trigger: 'blur' }],
useDates: [{ required: true, message: '进场时间不能为空', trigger: 'change' }],
startWorkDates: [{ required: true, message: '计划开工时间不能为空', trigger: 'change' }],
endWorkDates: [{ required: true, message: '计划完工时间不能为空', trigger: 'change' }],
useStatus: [{ required: true, message: '进场状态不能为空', trigger: 'change' }],
contractInfos: [{ required: true, message: '合同承包范围不能为空', trigger: 'blur' }],
},
});
})
const { queryParams, form, rules } = toRefs(data);
const { queryParams, form, rules } = toRefs(data)
/** 查询分包单位列表 */
function getList() {
loading.value = true;
loading.value = true
listProProjectInfoSubdepts(queryParams.value).then((response) => {
proProjectInfoSubdeptsList.value = response.rows;
total.value = response.total;
loading.value = false;
});
proProjectInfoSubdeptsList.value = response.rows
total.value = response.total
loading.value = false
})
}
//
function cancel() {
open.value = false;
reset();
open.value = false
reset()
}
//
@ -569,7 +298,7 @@ function reset() {
subDeptInfos: null,
contractInfos: null,
useDates: null,
useStatus: "1",
useStatus: '1',
approveStatus: null,
qrCode: null,
isDel: null,
@ -580,161 +309,159 @@ function reset() {
remark: null,
subDeptInfos: {},
leaderUserInfos: {},
};
proxy.resetForm("proProjectInfoSubdeptsRef");
}
proxy.resetForm('proProjectInfoSubdeptsRef')
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
queryParams.value.pageNum = 1
getList()
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
proxy.resetForm('queryRef')
handleQuery()
}
//
function handleSelectionChange(selection) {
ids.value = selection.map((item) => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
ids.value = selection.map((item) => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
}
/** 新增按钮操作 */
function handleAdd() {
if (!userStore.currentPrjId) {
proxy.$modal.msgWarning("请切换到项目数据!!!");
return false;
proxy.$modal.msgWarning('请切换到项目数据!!!')
return false
}
reset();
form.value.projectId = userStore.currentPrjId;
form.value.projectName = userStore.currentProName;
activeTabs.value = "base";
open.value = true;
title.value = "添加参建单位";
reset()
form.value.projectId = userStore.currentPrjId
form.value.projectName = userStore.currentProName
activeTabs.value = 'base'
open.value = true
title.value = '添加参建单位'
}
//
function doImageUpload(type) {
setTimeout(() => {
let url = '';
let url = ''
if (type == 1) {
url = form.value.leaderUserInfos.cardImgPos;
url = form.value.leaderUserInfos.cardImgPos
if (url) {
url = location.origin + url;
proxy.$http.get(`/system/tools/id/front?url=${url}`).then(d => {
if(d.code==200 && d.data.name){
form.value.subDeptLeaderName = d.data.name || '';
form.value.subDeptLeaderCode = d.data.cardId || '';
form.value.leaderUserInfos.address = d.data.address || '';
form.value.leaderUserInfos.nativePlace = d.data.native || '';
url = location.origin + url
proxy.$http.get(`/system/tools/id/front?url=${url}`).then((d) => {
if (d.code == 200 && d.data.name) {
form.value.subDeptLeaderName = d.data.name || ''
form.value.subDeptLeaderCode = d.data.cardId || ''
form.value.leaderUserInfos.address = d.data.address || ''
form.value.leaderUserInfos.nativePlace = d.data.native || ''
form.value.leaderUserInfos.nation = d.data.nation || ''
let _birthDay = d.data.birthDay;
let _birthDay = d.data.birthDay
if (_birthDay && _birthDay.length == 8) {
_birthDay = _birthDay.substr(0, 4) + "-" + _birthDay.substr(4, 2) + "-" + _birthDay.substr(6);
form.value.leaderUserInfos.birthDay = _birthDay;
_birthDay = _birthDay.substr(0, 4) + '-' + _birthDay.substr(4, 2) + '-' + _birthDay.substr(6)
form.value.leaderUserInfos.birthDay = _birthDay
}
}
});
})
}
}
}, 800);
}, 800)
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value;
reset()
const _id = row.id || ids.value
getProProjectInfoSubdepts(_id).then((response) => {
response.data.subDeptInfos = JSON.parse(response.data.subDeptInfos);
response.data.subDeptInfos = JSON.parse(response.data.subDeptInfos)
if (response.data.proProjectInfoSubdeptsUsers) {
response.data.leaderUserPicture =
response.data.proProjectInfoSubdeptsUsers.userPicture;
response.data.subDeptLeaderPowerPath =
response.data.proProjectInfoSubdeptsUsers.subDeptPowerPath;
response.data.leaderUserPicture = response.data.proProjectInfoSubdeptsUsers.userPicture
response.data.subDeptLeaderPowerPath = response.data.proProjectInfoSubdeptsUsers.subDeptPowerPath
if (response.data.proProjectInfoSubdeptsUsers.userInfos) {
response.data.leaderUserInfos = JSON.parse(
response.data.proProjectInfoSubdeptsUsers.userInfos
);
response.data.leaderUserInfos = JSON.parse(response.data.proProjectInfoSubdeptsUsers.userInfos)
}
}
form.value = response.data;
open.value = true;
title.value = "修改参建单位";
});
if (!response.data.leaderUserInfos) {
response.data.leaderUserInfos = {}
}
form.value = response.data
open.value = true
title.value = '修改参建单位'
})
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["proProjectInfoSubdeptsRef"].validate((valid) => {
proxy.$refs['proProjectInfoSubdeptsRef'].validate((valid) => {
if (valid) {
form.value.subDeptInfos = JSON.stringify(form.value.subDeptInfos);
form.value.leaderUserInfos = JSON.stringify(form.value.leaderUserInfos);
form.value.subDeptInfos = JSON.stringify(form.value.subDeptInfos)
form.value.leaderUserInfos = JSON.stringify(form.value.leaderUserInfos)
if (form.value.id != null) {
updateProProjectInfoSubdepts(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
form.value.approveStatus = 101;
form.value.approveStatus = 101
addProProjectInfoSubdepts(form.value).then((response) => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
}
}
});
})
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
const _ids = row.id || ids.value
proxy.$modal
.confirm('是否确认删除分包单位编号为"' + _ids + '"的数据项?')
.then(function () {
return delProProjectInfoSubdepts(_ids);
return delProProjectInfoSubdepts(_ids)
})
.then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
getList()
proxy.$modal.msgSuccess('删除成功')
})
.catch(() => {});
.catch(() => {})
}
/** 进场/退场操作 */
function handleUseStatus(row) {
let state = row.useStatus == "1" ? "2" : "1";
let stateMsg = row.useStatus == "1" ? "离场" : "进场";
let state = row.useStatus == '1' ? '2' : '1'
let stateMsg = row.useStatus == '1' ? '离场' : '进场'
proxy.$modal
.confirm('是否确认修改单位状态为"' + stateMsg + '"')
.then(function () {
return editUseStatus(row.id, state);
return editUseStatus(row.id, state)
})
.then(() => {
getList();
proxy.$modal.msgSuccess("修改成功");
getList()
proxy.$modal.msgSuccess('修改成功')
})
.catch(() => {});
.catch(() => {})
}
/** 导出按钮操作 */
function handleExport() {
proxy.download(
"manage/proProjectInfoSubdepts/export",
'manage/proProjectInfoSubdepts/export',
{
...queryParams.value,
},
`proProjectInfoSubdepts_${new Date().getTime()}.xlsx`
);
)
}
getList();
getList()
</script>
<style lang="scss" scope>
.el-divider__text {

View File

@ -23,9 +23,7 @@
<table border class="step-table">
<tr>
<td width="40%">
<el-icon>
<User />
</el-icon>
<svg-icon icon-class="user" />
<span v-if="it.processState == 0"></span>
<span v-if="it.processState == 1"></span>
<span v-if="it.processState == 2"></span>
@ -34,13 +32,11 @@
</tr>
<tr v-if="it.processState == 0">
<td>
<el-icon>
<Picture />
</el-icon>
<svg-icon icon-class="camera" />整改图片
</td>
<td>
<div class="step-img">
<el-image :src="file.fileUrl" v-for="(file, index) in it.files" :key="index" :preview-teleported="true" :preview-src-list="[file.fileUrl]"></el-image>
<el-image :src="toUrl(file.fileUrl)" v-for="(file, index) in it.files" :key="index" :preview-teleported="true" :preview-src-list="[toUrl(file.fileUrl)]"></el-image>
</div>
</td>
</tr>
@ -57,9 +53,7 @@
<table border class="step-table">
<tr>
<td width="40%">
<el-icon>
<User />
</el-icon>
<svg-icon icon-class="user" />办理用户
</td>
<td>{{ data.row.createUser }}</td>
</tr>
@ -73,12 +67,10 @@
</tr>
<tr>
<td>
<el-icon>
<Picture />
</el-icon>
<svg-icon icon-class="camera" />隐患图片
</td>
<td>
<el-image :src="data.row.smarkUrlPic" style="height:80px;" :preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
<el-image :src="toUrl(data.row.smarkUrlPic)" style="height:80px;" :preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
</td>
</tr>
</table>
@ -89,7 +81,7 @@
<el-form style="margin: 0px 20px;" :model="data.baseForm" ref="baseInfo">
<el-form-item label="项目名称">{{ data.row.projectName }}</el-form-item>
<el-form-item label="隐患图片">
<el-image :src="data.row.smarkUrlPic" style="height:80px;" :preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
<el-image :src="toUrl(data.row.smarkUrlPic)" style="height:80px;" :preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
</el-form-item>
<el-form-item label="检查类型">
<dict-tag :options="ssp_proble_type" :value="data.row.problemType" />
@ -226,6 +218,10 @@ let data = reactive({
],
})
const { step2Form, step2Rules, step3Form, step3Rules } = toRefs(data)
function toUrl(url) {
return url
}
function validateStep2Images(rule, value, callback) {
if (step2Form.value.images.length == 0) {
callback(new Error('请上传图片!'))