Commit 46f368e1 by liyuhang19990520

修改

parent 687a20c7
No preview for this file type
{
"code":200,
"data":{
"rows":[
{
"ids":"80821",
"label":"教学序列",
"codeType":"CODE_JSRYGSXL",
"text":"教学序列",
"pId":null,
"id":"01",
"isParent":false,
"children":[]
},
{
"ids":"80822",
"label":"行政序列",
"codeType":"CODE_JSRYGSXL",
"text":"行政序列",
"pId":null,
"id":"02",
"isParent":false,
"children":[]
},
{
"ids":"80823",
"label":"讲师序列",
"codeType":"CODE_JSRYGSXL",
"text":"讲师序列",
"pId":null,
"id":"03",
"isParent":false,
"children":[]
}
]
},
"success":true,
"message":"成功"
}
\ No newline at end of file
......@@ -7,11 +7,11 @@ export const getArtisanList = params =>
// 技术人员信息(新增)
export const addArtisan = params =>
postJson(`${baseUrl}/artisanController/saveArtisan`, params)
postform(`${baseUrl}/artisanController/saveArtisan`, params)
// 技术人员信息(编辑)
export const editArtisan = params =>
postJson(`${baseUrl}/artisanController/updateArtisanById`, params)
postform(`${baseUrl}/artisanController/updateArtisanById`, params)
// 技术人员信息(详情)
export const getArtisanDetail = params =>
......
......@@ -31,3 +31,14 @@ export const extractJobDog = params =>
// 警犬复训(详情)
export const getJobDogDetail = params =>
postJson(`${baseUrl}/refreshment/dogDetail`, params)
// 审批及提请
export const addSp = params =>
postJson(`${baseUrl}/spmanager/addSp`, params)
// 警犬复训审批查询
export const dogSpQuery = params =>
postJson(`${baseUrl}/refreshment/dogSpQuery`, params)
<?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="1619254008879" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8502" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M215.893333 874.666667a43.946667 43.946667 0 0 0 44.373334 42.666666h518.186666a43.946667 43.946667 0 0 0 44.373334-42.666666V309.333333H215.893333z m436.693334-434.986667a36.693333 36.693333 0 0 1 37.12-36.266667h7.253333a36.693333 36.693333 0 0 1 37.12 36.266667v354.56a36.693333 36.693333 0 0 1-37.12 36.266667h-7.253333a36.693333 36.693333 0 0 1-37.12-36.266667z m-177.493334 0a36.48 36.48 0 0 1 36.906667-36.266667h7.466667a36.48 36.48 0 0 1 36.906666 36.266667v354.56a36.48 36.48 0 0 1-36.906666 36.266667H512a36.48 36.48 0 0 1-36.906667-36.266667z m-170.666666 0a36.48 36.48 0 0 1 36.906666-36.266667h7.466667a36.48 36.48 0 0 1 36.906667 36.266667v354.56a36.48 36.48 0 0 1-36.906667 36.266667H341.333333a36.48 36.48 0 0 1-36.906666-36.266667z m533.333333-246.186667H600.746667V142.933333A36.48 36.48 0 0 0 563.84 106.666667h-96.213333a36.693333 36.693333 0 0 0-37.12 36.266666v50.56H186.24A36.693333 36.693333 0 0 0 149.333333 229.76v36.053333h725.333334v-36.053333a36.693333 36.693333 0 0 0-36.906667-36.266667z" p-id="8503" fill="#ffffff"></path></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="143" viewBox="0 0 1440 143">
<defs>
<style>
.cls-1 {
fill: #d9e4ff;
}
.cls-2 {
fill: #898b9e;
font-size: 10px;
}
.cls-2, .cls-6 {
font-family: MicrosoftYaHei, Microsoft YaHei;
}
.cls-3 {
fill: #cfcfcf;
}
.cls-4 {
fill: #3c74fd;
}
.cls-5, .cls-6 {
fill: #333;
}
.cls-5, .cls-7 {
font-size: 13px;
font-family: MicrosoftYaHei-Bold, Microsoft YaHei;
font-weight: 700;
}
.cls-6 {
font-size: 12px;
}
.cls-7 {
fill: #0ebb15;
}
</style>
</defs>
<g id="组_1042" data-name="组 1042" transform="translate(-20 -309)">
<rect id="矩形_1462" data-name="矩形 1462" class="cls-1" width="1440" height="3" transform="translate(20 339)"/>
<text id="李警官丨20104110" class="cls-2" transform="translate(32 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所" class="cls-2" transform="translate(32 407)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_104" data-name="椭圆 104" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(32 336)"/>
<text id="数据采集" class="cls-5" transform="translate(32 367)"><tspan x="0" y="0">数据采集</tspan></text>
<text id="_2021.3.15_" data-name="2021.3.15 " class="cls-6" transform="translate(32 322)"><tspan x="0" y="0">2021.3.15 </tspan></text>
<text id="李警官丨20104110-2" data-name="李警官丨20104110" class="cls-2" transform="translate(169 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-2" data-name="厂桥派出所" class="cls-2" transform="translate(169 407)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_106" data-name="椭圆 106" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(169 336)"/>
<text id="数据上报" class="cls-5" transform="translate(169 367)"><tspan x="0" y="0">数据上报</tspan></text>
<text id="_2021.3.15" data-name="2021.3.15" class="cls-6" transform="translate(169 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-3" data-name="李警官丨20104110" class="cls-2" transform="translate(306 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-3" data-name="厂桥派出所" class="cls-2" transform="translate(306 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_106-2" data-name="椭圆 106" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(306 336)"/>
<text id="标记命案" class="cls-5" transform="translate(306 367)"><tspan x="0" y="0">标记命案</tspan></text>
<text id="_2021.3.15-2" data-name="2021.3.15" class="cls-6" transform="translate(306 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-4" data-name="李警官丨20104110" class="cls-2" transform="translate(580 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-4" data-name="厂桥派出所" class="cls-2" transform="translate(580 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_106-3" data-name="椭圆 106" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(580 336)"/>
<text id="立案提请审批" class="cls-5" transform="translate(580 367)"><tspan x="0" y="0">立案提请审批</tspan></text>
<text id="_2021.3.15-3" data-name="2021.3.15" class="cls-6" transform="translate(580 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-5" data-name="李警官丨20104110" class="cls-2" transform="translate(717 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-5" data-name="厂桥派出所" class="cls-2" transform="translate(717 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_106-4" data-name="椭圆 106" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(717 336)"/>
<text id="立案审批通过" class="cls-7" transform="translate(717 367)"><tspan x="0" y="0">立案审批通过</tspan></text>
<text id="_2021.3.15-4" data-name="2021.3.15" class="cls-6" transform="translate(717 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="立案审批初审意见为通过_审批意见是..." data-name="立案审批初审意见为通过,审批意见是..." class="cls-6" transform="translate(717 414)"><tspan x="0" y="13">立案审批初审意见为通</tspan><tspan x="0" y="31">过,审批意见是...</tspan></text>
<text id="李警官丨20104110-6" data-name="李警官丨20104110" class="cls-2" transform="translate(903 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-6" data-name="厂桥派出所" class="cls-2" transform="translate(903 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_107" data-name="椭圆 107" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(903 336)"/>
<text id="侦查终结采集" class="cls-5" transform="translate(903 367)"><tspan x="0" y="0">侦查终结采集</tspan></text>
<text id="_2021.3.15-5" data-name="2021.3.15" class="cls-6" transform="translate(903 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-7" data-name="李警官丨20104110" class="cls-2" transform="translate(443 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-7" data-name="厂桥派出所" class="cls-2" transform="translate(443 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_108" data-name="椭圆 108" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(443 336)"/>
<text id="立案修改" class="cls-5" transform="translate(443 367)"><tspan x="0" y="0">立案修改</tspan></text>
<text id="_2021.3.16" data-name="2021.3.16" class="cls-6" transform="translate(443 322)"><tspan x="0" y="0">2021.3.16</tspan></text>
<text id="李警官丨20104110-8" data-name="李警官丨20104110" class="cls-2" transform="translate(1040 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-8" data-name="厂桥派出所" class="cls-2" transform="translate(1040 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_109" data-name="椭圆 109" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(1040 336)"/>
<text id="侦查终结提请审批" class="cls-5" transform="translate(1040 367)"><tspan x="0" y="0">侦查终结提请审批</tspan></text>
<text id="_2021.3.15-6" data-name="2021.3.15" class="cls-6" transform="translate(1040 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-9" data-name="李警官丨20104110" class="cls-2" transform="translate(1177 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-9" data-name="厂桥派出所" class="cls-2" transform="translate(1177 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_110" data-name="椭圆 110" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(1177 336)"/>
<text id="侦查终结审批" class="cls-5" transform="translate(1177 367)"><tspan x="0" y="0">侦查终结审批</tspan></text>
<text id="_2021.3.15-7" data-name="2021.3.15" class="cls-6" transform="translate(1177 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
<text id="李警官丨20104110-10" data-name="李警官丨20104110" class="cls-2" transform="translate(1314 387)"><tspan x="0" y="0">李警官</tspan><tspan class="cls-3" y="0"></tspan><tspan y="0">20104110</tspan></text>
<text id="厂桥派出所-10" data-name="厂桥派出所" class="cls-2" transform="translate(1314 405)"><tspan x="0" y="0">厂桥派出所</tspan></text>
<circle id="椭圆_111" data-name="椭圆 111" class="cls-4" cx="4.5" cy="4.5" r="4.5" transform="translate(1314 336)"/>
<text id="侦查终结受限修改" class="cls-5" transform="translate(1314 367)"><tspan x="0" y="0">侦查终结受限修改</tspan></text>
<text id="_2021.3.15-8" data-name="2021.3.15" class="cls-6" transform="translate(1314 322)"><tspan x="0" y="0">2021.3.15</tspan></text>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="849" height="850" viewBox="0 0 849 850">
<g id="组_1063" data-name="组 1063" transform="translate(-294 -86)">
<rect id="矩形_1462" data-name="矩形 1462" width="800" height="3" rx="1.5" transform="translate(720 136) rotate(90)" fill="#fff" opacity="0.7"/>
<g id="椭圆_104" data-name="椭圆 104" transform="translate(733 158) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<text id="案事件数据流_时间轴" data-name="案事件数据流/时间轴" transform="translate(720 107)" fill="#fff" font-size="20" font-family="MicrosoftYaHei, Microsoft YaHei" letter-spacing="0.032em"><tspan x="-97.152" y="0">案事件数据流/时间轴</tspan></text>
<rect id="矩形_1478" data-name="矩形 1478" width="400" height="73" rx="4" transform="translate(743 136)" fill="#fff"/>
<rect id="矩形_1479" data-name="矩形 1479" width="400" height="73" rx="4" transform="translate(294 201)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 194)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="李警官丨20104110_丨厂桥派出所-2" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 259)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59" data-name="2021.3.15 18:30:59" transform="translate(863 165)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<text id="_2021.3.15_18:30:59-2" data-name="2021.3.15 18:30:59" transform="translate(414 230)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1466" data-name="矩形 1466" width="88" height="27" rx="13" transform="translate(759 146)" fill="#3670ff" opacity="0.2"/>
<rect id="矩形_1480" data-name="矩形 1480" width="88" height="27" rx="13" transform="translate(310 211)" fill="#3670ff" opacity="0.2"/>
<text id="数据采集" transform="translate(775 165)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">数据采集</tspan></text>
<text id="数据上报" transform="translate(326 230)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">数据上报</tspan></text>
<g id="椭圆_112" data-name="椭圆 112" transform="translate(733 223) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<path id="路径_535" data-name="路径 535" d="M44.155,42.322a.706.706,0,0,1-.677.73H32.845a.649.649,0,0,1-.489-.212.724.724,0,0,1-.2-.518V39.893a.717.717,0,0,1,.2-.518.649.649,0,0,1,.489-.212H36.2l.974,1.036a1.345,1.345,0,0,0,1.961,0l.983-1.036h3.347a.649.649,0,0,1,.489.212.744.744,0,0,1,.2.518v2.429Zm-2.334-5.94-3.333,3.2a.478.478,0,0,1-.666,0l-3.333-3.2a.4.4,0,0,1-.107-.5.463.463,0,0,1,.44-.28h1.9V32.4a.433.433,0,0,1,.138-.324.475.475,0,0,1,.333-.137h1.9a.473.473,0,0,1,.333.137.433.433,0,0,1,.139.323v3.2h1.916a.463.463,0,0,1,.439.279.4.4,0,0,1-.106.5h0Zm-.577,5.406a.56.56,0,0,0,.06-.767A.548.548,0,0,0,40.493,41a.557.557,0,0,0-.157.4.534.534,0,0,0,.522.544.508.508,0,0,0,.386-.152Zm1.637,0a.56.56,0,0,0,.06-.767A.548.548,0,0,0,42.13,41a.554.554,0,0,0-.157.4.533.533,0,0,0,.521.544.51.51,0,0,0,.386-.152Z" transform="translate(680.846 135.06)" fill="#fff"/>
<path id="路径_536" data-name="路径 536" d="M167.215,192l1.2,2.4v7.8a.6.6,0,0,1-.6.6h-10.8a.6.6,0,0,1-.6-.6v-7.8l1.2-2.4Zm-4.8,4.2-2.4,2.4h1.8V201h1.2v-2.4h1.8Zm4.058-3h-8.115l-.6,1.2h9.316l-.6-1.2Z" transform="translate(556.584 40)" fill="#fff"/>
<g id="椭圆_123" data-name="椭圆 123" transform="translate(733 288) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<rect id="矩形_1481" data-name="矩形 1481" width="400" height="73" rx="4" transform="translate(743 266)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-3" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 324)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-3" data-name="2021.3.15 18:30:59" transform="translate(863 295)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482" data-name="矩形 1482" width="88" height="27" rx="13" transform="translate(759 276)" fill="#3670ff" opacity="0.2"/>
<text id="标记命案" transform="translate(775 295)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">标记命案</tspan></text>
<g id="椭圆_123-2" data-name="椭圆 123" transform="translate(733 418) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<rect id="矩形_1481-2" data-name="矩形 1481" width="400" height="73" rx="4" transform="translate(743 396)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-4" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 454)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-4" data-name="2021.3.15 18:30:59" transform="translate(885 425)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-2" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 406)" fill="#3670ff" opacity="0.2"/>
<text id="立案提请审批" transform="translate(775 425)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案提请审批</tspan></text>
<path id="路径_537" data-name="路径 537" d="M44.155,42.322a.706.706,0,0,1-.677.73H32.845a.649.649,0,0,1-.489-.212.724.724,0,0,1-.2-.518V39.893a.717.717,0,0,1,.2-.518.649.649,0,0,1,.489-.212H36.2l.974,1.036a1.345,1.345,0,0,0,1.961,0l.983-1.036h3.347a.649.649,0,0,1,.489.212.744.744,0,0,1,.2.518v2.429Zm-2.334-5.94-3.333,3.2a.478.478,0,0,1-.666,0l-3.333-3.2a.4.4,0,0,1-.107-.5.463.463,0,0,1,.44-.28h1.9V32.4a.433.433,0,0,1,.138-.324.475.475,0,0,1,.333-.137h1.9a.473.473,0,0,1,.333.137.433.433,0,0,1,.139.323v3.2h1.916a.463.463,0,0,1,.439.279.4.4,0,0,1-.106.5h0Zm-.577,5.406a.56.56,0,0,0,.06-.767A.548.548,0,0,0,40.493,41a.557.557,0,0,0-.157.4.534.534,0,0,0,.522.544.508.508,0,0,0,.386-.152Zm1.637,0a.56.56,0,0,0,.06-.767A.548.548,0,0,0,42.13,41a.554.554,0,0,0-.157.4.533.533,0,0,0,.521.544.51.51,0,0,0,.386-.152Z" transform="translate(680.846 395.06)" fill="#fff"/>
<g id="椭圆_123-3" data-name="椭圆 123" transform="translate(733 548) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<rect id="矩形_1481-3" data-name="矩形 1481" width="400" height="73" rx="4" transform="translate(743 526)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-5" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 584)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-5" data-name="2021.3.15 18:30:59" transform="translate(885 555)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-3" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 536)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结采集" transform="translate(775 555)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结采集</tspan></text>
<g id="椭圆_123-4" data-name="椭圆 123" transform="translate(733 678) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<rect id="矩形_1481-4" data-name="矩形 1481" width="400" height="73" rx="4" transform="translate(743 656)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-6" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 714)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-6" data-name="2021.3.15 18:30:59" transform="translate(881 685)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-4" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 666)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结审批" transform="translate(775 685)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结审批</tspan></text>
<g id="组_1052" data-name="组 1052">
<rect id="矩形_1483" data-name="矩形 1483" width="400" height="73" rx="4" transform="translate(294 331)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-7" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 389)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-7" data-name="2021.3.15 18:30:59" transform="translate(414 360)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484" data-name="矩形 1484" width="88" height="27" rx="13" transform="translate(310 341)" fill="#3670ff" opacity="0.2"/>
<text id="立案修改" transform="translate(326 360)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案修改</tspan></text>
</g>
<g id="椭圆_124" data-name="椭圆 124" transform="translate(733 353) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<g id="组_1052-2" data-name="组 1052" transform="translate(0 130)">
<rect id="矩形_1483-2" data-name="矩形 1483" width="400" height="73" rx="4" transform="translate(294 331)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-8" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 389)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-8" data-name="2021.3.15 18:30:59" transform="translate(436 360)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-2" data-name="矩形 1484" width="110" height="27" rx="13" transform="translate(310 341)" fill="#0ebb15" opacity="0.2"/>
<text id="立案审批通过" transform="translate(326 360)" fill="#0ebb15" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案审批通过</tspan></text>
</g>
<g id="椭圆_124-2" data-name="椭圆 124" transform="translate(733 483) rotate(90)" fill="#0ebb15" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<g id="组_1052-3" data-name="组 1052" transform="translate(0 260)">
<rect id="矩形_1483-3" data-name="矩形 1483" width="400" height="73" rx="4" transform="translate(294 331)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-9" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 389)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-9" data-name="2021.3.15 18:30:59" transform="translate(462 360)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-3" data-name="矩形 1484" width="136" height="27" rx="13" transform="translate(310 341)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结提请审批" transform="translate(326 360)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结提请审批</tspan></text>
</g>
<g id="椭圆_124-3" data-name="椭圆 124" transform="translate(733 613) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<g id="组_1052-4" data-name="组 1052" transform="translate(0 390)">
<rect id="矩形_1483-4" data-name="矩形 1483" width="400" height="73" rx="4" transform="translate(294 331)" fill="#fff"/>
<text id="李警官丨20104110_丨厂桥派出所-10" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 389)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-10" data-name="2021.3.15 18:30:59" transform="translate(458 360)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-4" data-name="矩形 1484" width="136" height="27" rx="13" transform="translate(310 341)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结受限修改" transform="translate(326 360)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结受限修改</tspan></text>
</g>
<g id="椭圆_124-4" data-name="椭圆 124" transform="translate(733 743) rotate(90)" fill="#3c74fd" stroke="#fff" stroke-width="2">
<circle cx="14.5" cy="14.5" r="14.5" stroke="none"/>
<circle cx="14.5" cy="14.5" r="13.5" fill="none"/>
</g>
<path id="路径_539" data-name="路径 539" d="M100.941,106.01,98,103.071h0l.782-.782a.831.831,0,0,1,.907-.181l1.979.82h0l3.82-2.945h0l-1.022-1.022h0l.587-.587a.832.832,0,0,1,1.177,0l.587.587,0,0,2.351,2.352,0,0,.587.587a.832.832,0,0,1,0,1.177l-.587.587h0l-1.024-1.022h0l-2.945,3.818h0l.82,1.981a.831.831,0,0,1-.181.907l-.782.782h0l-2.936-2.939h0l-2.935,2.935H98v-1.175l2.936-2.936Z" transform="translate(615 197.875)" fill="#fff"/>
<g id="组_1061" data-name="组 1061" transform="translate(1064.999 714)">
<path id="路径_540" data-name="路径 540" d="M307.466,12l2.726-.549,9.274-9.274L317.28,0l-9.266,9.274Z" transform="translate(-659.732 -352.267)" fill="#fff"/>
<path id="路径_541" data-name="路径 541" d="M10.356,4.951A4.673,4.673,0,1,1,7.05,1.645L7.979.723a5.841,5.841,0,1,0,3.3,3.3Z" transform="translate(-352.109 -352.426)" fill="#fff"/>
</g>
<path id="路径_542" data-name="路径 542" d="M90.788,42.667a3.273,3.273,0,0,1,1.637,6.107v.983h2.727a1.091,1.091,0,0,1,1.091,1.091v1.909H85.333V50.848a1.091,1.091,0,0,1,1.091-1.091h2.727v-.983a3.272,3.272,0,0,1-1.634-2.712l0-.123a3.273,3.273,0,0,1,3.273-3.273ZM85.333,53.576H96.242a1.091,1.091,0,0,1-1.091,1.091H86.424a1.091,1.091,0,0,1-1.091-1.091Z" transform="translate(627.667 448.333)" fill="#fff"/>
<path id="路径_545" data-name="路径 545" d="M90.788,42.667a3.273,3.273,0,0,1,1.637,6.107v.983h2.727a1.091,1.091,0,0,1,1.091,1.091v1.909H85.333V50.848a1.091,1.091,0,0,1,1.091-1.091h2.727v-.983a3.272,3.272,0,0,1-1.634-2.712l0-.123a3.273,3.273,0,0,1,3.273-3.273ZM85.333,53.576H96.242a1.091,1.091,0,0,1-1.091,1.091H86.424a1.091,1.091,0,0,1-1.091-1.091Z" transform="translate(627.667 643.333)" fill="#fff"/>
<path id="路径_543" data-name="路径 543" d="M6.75,41.891v.375a.563.563,0,0,1-.563.563H.563A.563.563,0,0,1,0,42.266v-.375a.376.376,0,0,1,.375-.375.557.557,0,0,0,.4-.165l0,0a2.207,2.207,0,0,1,1.366-.581H4.607a2.2,2.2,0,0,1,1.366.581l0,0a.561.561,0,0,0,.4.165.376.376,0,0,1,.375.375Zm4.97-1.513L7.883,36.541a.187.187,0,0,0,0-.265l-.132-.132a.377.377,0,0,1,.36-.1.375.375,0,0,0,.362-.094l.87-.87a.564.564,0,0,0,0-.8L7.221,32.165a.562.562,0,0,0-.8,0l-.87.87a.374.374,0,0,0-.094.362.376.376,0,0,1,.012.095.37.37,0,0,1-.11.265l-1.59,1.591a.374.374,0,0,1-.36.1.378.378,0,0,0-.362.094l-.87.87a.562.562,0,0,0,0,.8L4.3,39.326a.564.564,0,0,0,.8,0l.87-.87a.374.374,0,0,0,.094-.362A.376.376,0,0,1,6.05,38a.37.37,0,0,1,.11-.265l.132.132a.186.186,0,0,0,.265,0L10.4,41.711a.937.937,0,1,0,1.317-1.334ZM6.557,33.095l.132-.132a.186.186,0,0,1,.265,0l1.591,1.591a.186.186,0,0,1,0,.265l-.132.132a.186.186,0,0,1-.265,0L6.557,33.359A.188.188,0,0,1,6.557,33.095Zm-1.59,5.3-.132.132a.186.186,0,0,1-.265,0L2.978,36.94a.186.186,0,0,1,0-.265l.132-.132a.186.186,0,0,1,.265,0l1.591,1.591A.187.187,0,0,1,4.966,38.4Z" transform="translate(713 525)" fill="#fff"/>
<path id="路径_544" data-name="路径 544" d="M137.6,1.881q.345.32.55.531a3.717,3.717,0,0,1,.313.358.764.764,0,0,1,.134.249.752.752,0,0,1,.026.179v.2h-1.893a.307.307,0,0,1-.224-.1.853.853,0,0,1-.16-.224,1.213,1.213,0,0,1-.1-.262.973.973,0,0,1-.032-.211V1.024h.038a.747.747,0,0,1,.211.032,1.015,1.015,0,0,1,.249.122q.141.09.352.256t.531.448Zm-2.188.742a1.972,1.972,0,0,0,.077.531,1.661,1.661,0,0,0,.243.512,1.371,1.371,0,0,0,.422.39,1.146,1.146,0,0,0,.6.154h1.868v7.215a1.467,1.467,0,0,1-.147.665,1.55,1.55,0,0,1-.39.5,1.909,1.909,0,0,1-.537.32,1.574,1.574,0,0,1-.576.115h-6.294a1.22,1.22,0,0,1-.531-.141,2.244,2.244,0,0,1-.537-.371,2.149,2.149,0,0,1-.416-.525,1.231,1.231,0,0,1-.166-.614v-8.7a1.427,1.427,0,0,1,.122-.557,1.981,1.981,0,0,1,.333-.531,1.961,1.961,0,0,1,.48-.4,1.084,1.084,0,0,1,.563-.16h4.887v1.6Zm.806,7.983a.755.755,0,0,0,.563-.237.787.787,0,0,0,.23-.569.786.786,0,0,0-.793-.793h-4.8a.786.786,0,0,0-.793.793.787.787,0,0,0,.23.569.755.755,0,0,0,.563.237Zm.793-3.991a.787.787,0,0,0-.23-.569.755.755,0,0,0-.563-.237h-4.8a.755.755,0,0,0-.563.237.787.787,0,0,0-.23.569.786.786,0,0,0,.793.793h4.8a.786.786,0,0,0,.793-.793Z" transform="translate(584.977 620.976)" fill="#fff"/>
<g id="组_1062" data-name="组 1062" transform="translate(918.897 962.521)">
<path id="路径_546" data-name="路径 546" d="M578.761,472.841l3.541,3.541-6.1,6.1-4.131.59L572.6,479Zm4.131,2.951-3.541-3.541,1.18-1.18,3.541,3.541Z" transform="translate(-777.971 -682.522)" fill="#fff"/>
<path id="路径_547" data-name="路径 547" d="M8.948,3.32s0,.027,0,.079,0,.121,0,.212v.3c0,.1,0,.212,0,.339V6.978c0,.043,0,.1,0,.157v.951c0,.088,0,.168,0,.236V9.389q0,.151,0,.309v1.53c0,.1,0,.184,0,.25v3.479s0-.36,0-.424V14.4c0,.135,0,.267,0,.388v.17q0,.1,0,.163t0,.14q0,.061,0,.1t0,.067c0,.016,0,.024,0,.024s0-.008,0-.024,0-.038,0-.067,0-.061,0-.1,0-.075,0-.115v-.121c0-.017,0-.059,0-.121V13.033c0-.263,0-.508,0-.685v-.374q0-.143,0-.248c0-.066,0-.173,0-.315v-.3c0-.086,0-.184,0-.291v-.655c0-.165,0-.322,0-.442V8.454c0-.019,0-.047,0-.085V6.045c0-.282,0-.562,0-.836V3.857c0-.135,0-.247,0-.333s0-.133,0-.163V3.32Zm0,0" transform="translate(-209.009 -214.839)" fill="#fff"/>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="849" height="726" viewBox="0 0 849 726">
<g id="组_1064" data-name="组 1064" transform="translate(-294 -80)">
<rect id="矩形_1462" data-name="矩形 1462" width="680" height="3" rx="1.5" transform="translate(720 126) rotate(90)" fill="#3670ff" opacity="0.5"/>
<circle id="椭圆_104" data-name="椭圆 104" cx="13.5" cy="13.5" r="13.5" transform="translate(732 149) rotate(90)" fill="#3c74fd"/>
<text id="案事件数据流_时间轴" data-name="案事件数据流/时间轴" transform="translate(720 101)" fill="#333" font-size="20" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700" letter-spacing="0.032em"><tspan x="-97.607" y="0">案事件数据流/时间轴</tspan></text>
<g id="矩形_1478" data-name="矩形 1478" transform="translate(743 126)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<g id="矩形_1479" data-name="矩形 1479" transform="translate(294 191)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 184)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="李警官丨20104110_丨厂桥派出所-2" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 249)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59" data-name="2021.3.15 18:30:59" transform="translate(863 155)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<text id="_2021.3.15_18:30:59-2" data-name="2021.3.15 18:30:59" transform="translate(414 220)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1466" data-name="矩形 1466" width="88" height="27" rx="13" transform="translate(759 136)" fill="#3670ff" opacity="0.2"/>
<rect id="矩形_1480" data-name="矩形 1480" width="88" height="27" rx="13" transform="translate(310 201)" fill="#3670ff" opacity="0.2"/>
<text id="数据采集" transform="translate(775 155)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">数据采集</tspan></text>
<text id="数据上报" transform="translate(326 220)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">数据上报</tspan></text>
<circle id="椭圆_112" data-name="椭圆 112" cx="13.5" cy="13.5" r="13.5" transform="translate(732 214) rotate(90)" fill="#3c74fd"/>
<path id="路径_535" data-name="路径 535" d="M44.155,42.322a.706.706,0,0,1-.677.73H32.845a.649.649,0,0,1-.489-.212.724.724,0,0,1-.2-.518V39.893a.717.717,0,0,1,.2-.518.649.649,0,0,1,.489-.212H36.2l.974,1.036a1.345,1.345,0,0,0,1.961,0l.983-1.036h3.347a.649.649,0,0,1,.489.212.744.744,0,0,1,.2.518v2.429Zm-2.334-5.94-3.333,3.2a.478.478,0,0,1-.666,0l-3.333-3.2a.4.4,0,0,1-.107-.5.463.463,0,0,1,.44-.28h1.9V32.4a.433.433,0,0,1,.138-.324.475.475,0,0,1,.333-.137h1.9a.473.473,0,0,1,.333.137.433.433,0,0,1,.139.323v3.2h1.916a.463.463,0,0,1,.439.279.4.4,0,0,1-.106.5h0Zm-.577,5.406a.56.56,0,0,0,.06-.767A.548.548,0,0,0,40.493,41a.557.557,0,0,0-.157.4.534.534,0,0,0,.522.544.508.508,0,0,0,.386-.152Zm1.637,0a.56.56,0,0,0,.06-.767A.548.548,0,0,0,42.13,41a.554.554,0,0,0-.157.4.533.533,0,0,0,.521.544.51.51,0,0,0,.386-.152Z" transform="translate(680.846 125.06)" fill="#fff"/>
<path id="路径_536" data-name="路径 536" d="M167.215,192l1.2,2.4v7.8a.6.6,0,0,1-.6.6h-10.8a.6.6,0,0,1-.6-.6v-7.8l1.2-2.4Zm-4.8,4.2-2.4,2.4h1.8V201h1.2v-2.4h1.8Zm4.058-3h-8.115l-.6,1.2h9.316l-.6-1.2Z" transform="translate(556.584 30)" fill="#fff"/>
<circle id="椭圆_123" data-name="椭圆 123" cx="13.5" cy="13.5" r="13.5" transform="translate(732 279) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1481" data-name="矩形 1481" transform="translate(743 256)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-3" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 314)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-3" data-name="2021.3.15 18:30:59" transform="translate(863 285)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482" data-name="矩形 1482" width="88" height="27" rx="13" transform="translate(759 266)" fill="#3670ff" opacity="0.2"/>
<text id="标记命案" transform="translate(775 285)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">标记命案</tspan></text>
<circle id="椭圆_123-2" data-name="椭圆 123" cx="13.5" cy="13.5" r="13.5" transform="translate(732 409) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1481-2" data-name="矩形 1481" transform="translate(743 386)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-4" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 444)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-4" data-name="2021.3.15 18:30:59" transform="translate(885 415)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-2" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 396)" fill="#3670ff" opacity="0.2"/>
<text id="立案提请审批" transform="translate(775 415)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案提请审批</tspan></text>
<path id="路径_537" data-name="路径 537" d="M44.155,42.322a.706.706,0,0,1-.677.73H32.845a.649.649,0,0,1-.489-.212.724.724,0,0,1-.2-.518V39.893a.717.717,0,0,1,.2-.518.649.649,0,0,1,.489-.212H36.2l.974,1.036a1.345,1.345,0,0,0,1.961,0l.983-1.036h3.347a.649.649,0,0,1,.489.212.744.744,0,0,1,.2.518v2.429Zm-2.334-5.94-3.333,3.2a.478.478,0,0,1-.666,0l-3.333-3.2a.4.4,0,0,1-.107-.5.463.463,0,0,1,.44-.28h1.9V32.4a.433.433,0,0,1,.138-.324.475.475,0,0,1,.333-.137h1.9a.473.473,0,0,1,.333.137.433.433,0,0,1,.139.323v3.2h1.916a.463.463,0,0,1,.439.279.4.4,0,0,1-.106.5h0Zm-.577,5.406a.56.56,0,0,0,.06-.767A.548.548,0,0,0,40.493,41a.557.557,0,0,0-.157.4.534.534,0,0,0,.522.544.508.508,0,0,0,.386-.152Zm1.637,0a.56.56,0,0,0,.06-.767A.548.548,0,0,0,42.13,41a.554.554,0,0,0-.157.4.533.533,0,0,0,.521.544.51.51,0,0,0,.386-.152Z" transform="translate(680.846 385.06)" fill="#fff"/>
<circle id="椭圆_123-3" data-name="椭圆 123" cx="13.5" cy="13.5" r="13.5" transform="translate(732 539) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1481-3" data-name="矩形 1481" transform="translate(743 516)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-5" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 574)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-5" data-name="2021.3.15 18:30:59" transform="translate(885 545)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-3" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 526)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结采集" transform="translate(775 545)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结采集</tspan></text>
<circle id="椭圆_123-4" data-name="椭圆 123" cx="13.5" cy="13.5" r="13.5" transform="translate(732 669) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1481-4" data-name="矩形 1481" transform="translate(743 646)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-6" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(771 704)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-6" data-name="2021.3.15 18:30:59" transform="translate(881 675)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1482-4" data-name="矩形 1482" width="110" height="27" rx="13" transform="translate(759 656)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结审批" transform="translate(775 675)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结审批</tspan></text>
<g id="矩形_1483" data-name="矩形 1483" transform="translate(294 321)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-7" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 379)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-7" data-name="2021.3.15 18:30:59" transform="translate(414 350)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484" data-name="矩形 1484" width="88" height="27" rx="13" transform="translate(310 331)" fill="#3670ff" opacity="0.2"/>
<text id="立案修改" transform="translate(326 350)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案修改</tspan></text>
<circle id="椭圆_124" data-name="椭圆 124" cx="13.5" cy="13.5" r="13.5" transform="translate(732 344) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1483-2" data-name="矩形 1483" transform="translate(294 451)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-8" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 509)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-8" data-name="2021.3.15 18:30:59" transform="translate(436 480)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-2" data-name="矩形 1484" width="110" height="27" rx="13" transform="translate(310 461)" fill="#0ebb15" opacity="0.2"/>
<text id="立案审批通过" transform="translate(326 480)" fill="#0ebb15" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">立案审批通过</tspan></text>
<circle id="椭圆_124-2" data-name="椭圆 124" cx="13.5" cy="13.5" r="13.5" transform="translate(732 474) rotate(90)" fill="#0ebb15"/>
<g id="矩形_1483-3" data-name="矩形 1483" transform="translate(294 581)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-9" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 639)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-9" data-name="2021.3.15 18:30:59" transform="translate(462 610)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-3" data-name="矩形 1484" width="136" height="27" rx="13" transform="translate(310 591)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结提请审批" transform="translate(326 610)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结提请审批</tspan></text>
<circle id="椭圆_124-3" data-name="椭圆 124" cx="13.5" cy="13.5" r="13.5" transform="translate(732 604) rotate(90)" fill="#3c74fd"/>
<g id="矩形_1483-4" data-name="矩形 1483" transform="translate(294 711)" fill="#fff" stroke="#ddd" stroke-width="1">
<rect width="400" height="73" rx="4" stroke="none"/>
<rect x="0.5" y="0.5" width="399" height="72" rx="3.5" fill="none"/>
</g>
<text id="李警官丨20104110_丨厂桥派出所-10" data-name="李警官丨20104110 丨厂桥派出所" transform="translate(318 769)" fill="#7d87a3" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0">李警官</tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">20104110 </tspan><tspan y="0" fill="#cfcfcf"></tspan><tspan y="0">厂桥派出所</tspan></text>
<text id="_2021.3.15_18:30:59-10" data-name="2021.3.15 18:30:59" transform="translate(458 740)" fill="#333" font-size="12" font-family="MicrosoftYaHei, Microsoft YaHei"><tspan x="0" y="0" xml:space="preserve">2021.3.15 18:30:59</tspan></text>
<rect id="矩形_1484-4" data-name="矩形 1484" width="136" height="27" rx="13" transform="translate(310 721)" fill="#3670ff" opacity="0.2"/>
<text id="侦查终结受限修改" transform="translate(326 740)" fill="#333" font-size="13" font-family="MicrosoftYaHei-Bold, Microsoft YaHei" font-weight="700"><tspan x="0" y="0">侦查终结受限修改</tspan></text>
<circle id="椭圆_124-4" data-name="椭圆 124" cx="13.5" cy="13.5" r="13.5" transform="translate(732 734) rotate(90)" fill="#3c74fd"/>
<path id="路径_539" data-name="路径 539" d="M100.941,106.01,98,103.071h0l.782-.782a.831.831,0,0,1,.907-.181l1.979.82h0l3.82-2.945h0l-1.022-1.022h0l.587-.587a.832.832,0,0,1,1.177,0l.587.587,0,0,2.351,2.352,0,0,.587.587a.832.832,0,0,1,0,1.177l-.587.587h0l-1.024-1.022h0l-2.945,3.818h0l.82,1.981a.831.831,0,0,1-.181.907l-.782.782h0l-2.936-2.939h0l-2.935,2.935H98v-1.175l2.936-2.936Z" transform="translate(615 187.875)" fill="#fff"/>
<g id="组_1061" data-name="组 1061" transform="translate(1064.999 704)">
<path id="路径_540" data-name="路径 540" d="M307.466,12l2.726-.549,9.274-9.274L317.28,0l-9.266,9.274Z" transform="translate(-659.732 -352.267)" fill="#fff"/>
<path id="路径_541" data-name="路径 541" d="M10.356,4.951A4.673,4.673,0,1,1,7.05,1.645L7.979.723a5.841,5.841,0,1,0,3.3,3.3Z" transform="translate(-352.109 -352.426)" fill="#fff"/>
</g>
<path id="路径_542" data-name="路径 542" d="M90.788,42.667a3.273,3.273,0,0,1,1.637,6.107v.983h2.727a1.091,1.091,0,0,1,1.091,1.091v1.909H85.333V50.848a1.091,1.091,0,0,1,1.091-1.091h2.727v-.983a3.272,3.272,0,0,1-1.634-2.712l0-.123a3.273,3.273,0,0,1,3.273-3.273ZM85.333,53.576H96.242a1.091,1.091,0,0,1-1.091,1.091H86.424a1.091,1.091,0,0,1-1.091-1.091Z" transform="translate(627.667 438.333)" fill="#fff"/>
<path id="路径_545" data-name="路径 545" d="M90.788,42.667a3.273,3.273,0,0,1,1.637,6.107v.983h2.727a1.091,1.091,0,0,1,1.091,1.091v1.909H85.333V50.848a1.091,1.091,0,0,1,1.091-1.091h2.727v-.983a3.272,3.272,0,0,1-1.634-2.712l0-.123a3.273,3.273,0,0,1,3.273-3.273ZM85.333,53.576H96.242a1.091,1.091,0,0,1-1.091,1.091H86.424a1.091,1.091,0,0,1-1.091-1.091Z" transform="translate(627.667 633.333)" fill="#fff"/>
<path id="路径_543" data-name="路径 543" d="M6.75,41.891v.375a.563.563,0,0,1-.563.563H.563A.563.563,0,0,1,0,42.266v-.375a.376.376,0,0,1,.375-.375.557.557,0,0,0,.4-.165l0,0a2.207,2.207,0,0,1,1.366-.581H4.607a2.2,2.2,0,0,1,1.366.581l0,0a.561.561,0,0,0,.4.165.376.376,0,0,1,.375.375Zm4.97-1.513L7.883,36.541a.187.187,0,0,0,0-.265l-.132-.132a.377.377,0,0,1,.36-.1.375.375,0,0,0,.362-.094l.87-.87a.564.564,0,0,0,0-.8L7.221,32.165a.562.562,0,0,0-.8,0l-.87.87a.374.374,0,0,0-.094.362.376.376,0,0,1,.012.095.37.37,0,0,1-.11.265l-1.59,1.591a.374.374,0,0,1-.36.1.378.378,0,0,0-.362.094l-.87.87a.562.562,0,0,0,0,.8L4.3,39.326a.564.564,0,0,0,.8,0l.87-.87a.374.374,0,0,0,.094-.362A.376.376,0,0,1,6.05,38a.37.37,0,0,1,.11-.265l.132.132a.186.186,0,0,0,.265,0L10.4,41.711a.937.937,0,1,0,1.317-1.334ZM6.557,33.095l.132-.132a.186.186,0,0,1,.265,0l1.591,1.591a.186.186,0,0,1,0,.265l-.132.132a.186.186,0,0,1-.265,0L6.557,33.359A.188.188,0,0,1,6.557,33.095Zm-1.59,5.3-.132.132a.186.186,0,0,1-.265,0L2.978,36.94a.186.186,0,0,1,0-.265l.132-.132a.186.186,0,0,1,.265,0l1.591,1.591A.187.187,0,0,1,4.966,38.4Z" transform="translate(713 515)" fill="#fff"/>
<path id="路径_544" data-name="路径 544" d="M137.6,1.881q.345.32.55.531a3.717,3.717,0,0,1,.313.358.764.764,0,0,1,.134.249.752.752,0,0,1,.026.179v.2h-1.893a.307.307,0,0,1-.224-.1.853.853,0,0,1-.16-.224,1.213,1.213,0,0,1-.1-.262.973.973,0,0,1-.032-.211V1.024h.038a.747.747,0,0,1,.211.032,1.015,1.015,0,0,1,.249.122q.141.09.352.256t.531.448Zm-2.188.742a1.972,1.972,0,0,0,.077.531,1.661,1.661,0,0,0,.243.512,1.371,1.371,0,0,0,.422.39,1.146,1.146,0,0,0,.6.154h1.868v7.215a1.467,1.467,0,0,1-.147.665,1.55,1.55,0,0,1-.39.5,1.909,1.909,0,0,1-.537.32,1.574,1.574,0,0,1-.576.115h-6.294a1.22,1.22,0,0,1-.531-.141,2.244,2.244,0,0,1-.537-.371,2.149,2.149,0,0,1-.416-.525,1.231,1.231,0,0,1-.166-.614v-8.7a1.427,1.427,0,0,1,.122-.557,1.981,1.981,0,0,1,.333-.531,1.961,1.961,0,0,1,.48-.4,1.084,1.084,0,0,1,.563-.16h4.887v1.6Zm.806,7.983a.755.755,0,0,0,.563-.237.787.787,0,0,0,.23-.569.786.786,0,0,0-.793-.793h-4.8a.786.786,0,0,0-.793.793.787.787,0,0,0,.23.569.755.755,0,0,0,.563.237Zm.793-3.991a.787.787,0,0,0-.23-.569.755.755,0,0,0-.563-.237h-4.8a.755.755,0,0,0-.563.237.787.787,0,0,0-.23.569.786.786,0,0,0,.793.793h4.8a.786.786,0,0,0,.793-.793Z" transform="translate(584.977 610.976)" fill="#fff"/>
<g id="组_1062" data-name="组 1062" transform="translate(918.897 952.521)">
<path id="路径_546" data-name="路径 546" d="M578.761,472.841l3.541,3.541-6.1,6.1-4.131.59L572.6,479Zm4.131,2.951-3.541-3.541,1.18-1.18,3.541,3.541Z" transform="translate(-777.971 -682.522)" fill="#fff"/>
<path id="路径_547" data-name="路径 547" d="M8.948,3.32s0,.027,0,.079,0,.121,0,.212v.3c0,.1,0,.212,0,.339V6.978c0,.043,0,.1,0,.157v.951c0,.088,0,.168,0,.236V9.389q0,.151,0,.309v1.53c0,.1,0,.184,0,.25v3.479s0-.36,0-.424V14.4c0,.135,0,.267,0,.388v.17q0,.1,0,.163t0,.14q0,.061,0,.1t0,.067c0,.016,0,.024,0,.024s0-.008,0-.024,0-.038,0-.067,0-.061,0-.1,0-.075,0-.115v-.121c0-.017,0-.059,0-.121V13.033c0-.263,0-.508,0-.685v-.374q0-.143,0-.248c0-.066,0-.173,0-.315v-.3c0-.086,0-.184,0-.291v-.655c0-.165,0-.322,0-.442V8.454c0-.019,0-.047,0-.085V6.045c0-.282,0-.562,0-.836V3.857c0-.135,0-.247,0-.333s0-.133,0-.163V3.32Zm0,0" transform="translate(-209.009 -214.839)" fill="#fff"/>
</g>
</g>
</svg>
@charset "utf-8";
ul,li{list-style:none;margin:0;padding:0;}
h1{margin: 0;padding: 0;}
p{margin:0;padding:0;}
a.btn {
display: inline-block;
background: #6089fb;
padding: 0px 15px;
height:27px;
line-height:27px;
color: #fff;
font-size:12px;
cursor: pointer;
border-radius:0;
margin: 3px 16px;
/* margin-left:50px;
margin-top:50px; */
}
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(238, 238, 238, 0.8);
display: table;
z-index: 100; }
.modal .modal-content {
display: table-cell;
vertical-align: middle;
text-align: center; }
.modal .modal-content .check-box {
display: inline-block;
position:relative;
border: 2px solid #c7c4c4;
border-radius:5px;
box-shadow: 0 2px 3px #fffbfb;
min-width: 80%;
box-sizing: border-box; }
.modal .modal-content .check-box .check-list {
max-height:441px;
overflow-y:auto;
list-style: none;
margin: 0;
padding: 20px;
background:url(../img/bg2.png) repeat;}
.modal .modal-content .check-box .check-list li {
margin-bottom: 30px;
font-size: 14px;
line-height: 22px;
color: #8e8c8c;
text-align: left; }
.modal .modal-content .check-box .check-list li .check-icon2 {
width: 22px;
height: 22px;
color: #fff;
background: url("../img/unchecked.png") no-repeat center;
display: block;
float: left;
margin-right: 8px;
text-align: center; }
.modal .modal-content .check-box .check-list li.checking .check-icon{
width: 20px;
height: 20px;
background: url("../img/loading.gif") no-repeat;
display: block;
float: right;
margin-right: 27px;
text-align: center;
position: relative;
top: -22px;
}
.modal .modal-content .check-box .check-list li.checked .check-icon{
font-size:14px;
width: 44px;
height: 22px;
font-weight: 700;
color: #08ce5b;
/* background: url("../img/unchecked.png") no-repeat center; */
display: block;
float: right;
margin-right: 14px;
text-align: center;
position: relative;
top: -22px;}
.modal .modal-content .check-box .check-list li.checked .qs{color:#ff754f;}
.modal .modal-content .check-box .check-list li.checking {color: #ff8c00; }
.modal .modal-content .check-box .check-list li.checking .check-icon2 {background: url("../img/checking.png") no-repeat left center;}
.modal .modal-content .check-box .check-list li.checked .check-icon2 {background: url("../img/checking.png") no-repeat left center; }
.check-icon3{margin-left:40px;float: right;margin-right: 14px; font-weight: bold; color:#66CD00;}
.modal .modal-content .check-box .check-list li.checked {
color: #736e6e; }
.modal .modal-content .check-box .check-list li.checked .check-icon {background:none;/* background: url("common/spAutoCheck/images/checked.png") no-repeat left center; */}
.modal .modal-content .check-box .check-list li .check-text {
max-width: 80%;
font-size:14px;
white-space: normal;
overflow: hidden;
display: block;
word-break: break-all; }
.modal .modal-content .check-box .check-bottom {
padding: 15px 0;background: #fdf8f8; }
.modal .modal-content .check-box .check-bottom .check-btn {
display: inline-block;
padding:5px 30px;
/* width: 100%; */
/* height: 36px;
line-height: 36px; */
background: #e5e5e5;
font-size: 16px;
color: #aaa;
text-align: center;
border-radius: 5px;
cursor: not-allowed; }
.modal .modal-content .check-box .check-bottom .check-btn.act {
background: #6089fb;
color: #fff;
cursor: pointer; }
.check-title{font-size:18px;font-weight:700;width:100%;text-align:left;line-height:39px;margin-left:25px;}
.loader-container {
height: 6px;
width: 98%;
position: relative;
top:-6px;
z-index:100000;
background-color: transparent;
background-image: -webkit-linear-gradient(to left, #5bd8ff, #ff0000);
background-image: -moz-linear-gradient(to left, #5bd8ff, #ff0000);
background-image: -o-linear-gradient(to left, #5bd8ff, #ff0000);
background-image: -ms-linear-gradient(to left, #5bd8ff, #ff0000);
background-image: linear-gradient(to left, #5bd8ff, #ff0000);
box-shadow: inset 0 -2px 2px rgba(0, 0, 0, 0.4);
border-radius: 3px 0 0 3px;
}
.loader-container:after {
content: "";
display: block;
position: absolute;
right: 0;
top: 50%;
width: 1em;
height: 1em;
border-radius: 50%;
margin-top: -0.5em;
margin-right: -1em;
background-image: -webkit-linear-gradient(to top, #BCBCBC, #AFAFAF);
background-image: -moz-linear-gradient(to top, #000000, #212121);
background-image: -o-linear-gradient(to top, #000000, #212121);
background-image: -ms-linear-gradient(to top, #000000, #212121);
background-image: linear-gradient(to top, #000000, #212121);
}
.loader-container.done:after {
background: Red;
}
.run .runner {
content: "";
position: absolute;
right: 0;
height: 100%;
width: 0%;
background-color: #b7b4b4;
background-image: -webkit-linear-gradient(to top, #dad2d2, #dad2d2);
background-image: -moz-linear-gradient(to top, #dad2d2, #dad2d2);
background-image: -o-linear-gradient(to top, #dad2d2, #dad2d2);
background-image: -ms-linear-gradient(to top, #dad2d2, #dad2d2);
background-image: linear-gradient(to top, #dad2d2, #dad2d2);
animation-name:loader;
animation-timing-function:linear;
/* animation: loader 25s linear; */
}
.meter {
position: absolute;
top: 0;
right: 0;
font-size: 2em;
margin-top: .3em;
color: #ff0000;
animation: meter 10s linear;
text-shadow: 0 -1px 0 #333333;
}
.meter:after {
content: "%";
}
@keyframes loader {
0% {
width: 100%;
}
100% {
width: 0%;
}
}
@keyframes meter {
0% {
color: #5bd8ff;
}
100% {
color: #ff0000;
}
}
/* Decoration */
html,
body {
height: 100%;
padding: 0;
margin: 0;
}
footer {
position: absolute;
bottom: 2em;
right: 1em;
color: #777;
font-size: 1.2em;
}
footer a {
text-decoration: none;
color: #777;
border: none;
}
#wrapper {
width: 600px;
margin: 0 auto;
}
.top-box{height:82px;background:url(../img/bg.jpg) no-repeat;color:#fff;}
.check-result{position:relative;line-height: 82px;text-align: left;}
.check-result-f{text-align: left;margin-bottom:10px;}
.jcjg{color:#fff;}
.bg1,.bg2,.bg3,.bg4{width:100px;position:absolute;}
.bg1{bottom:-3px;right:-2px;}
.bg2{top:-2px;right:-2px;}
.bg3{left:-2px;bottom:-3px;}
.bg4{left:-2px;top:-2px;}
a.btn:hover{font-size:12px;color:#fff;}
/**************/
.timer-display {
display:inline-block;
line-height: 104px;
margin-left:45px;
text-shadow: 0 0 8px hsla(180, 100%, 85%, 0.7);
font-size: 22px;
font-weight: 400;
text-align: center;
}
.text-ing{display:inline-block;margin-left:2px;}
.zzjc,#zzjc-text{font-size:21px;font-weight:700;}
.btn-group button{width:auto;height:auto;padding:2px 15px;border:1px solid #fff;line-height:22px;margin-left:52px;background: transparent;}
.btn-group button:hover{background:rgba(255,255,255,.2);}
.btn-group{ position: absolute;/*right: 60px;top: 30px;*/}
/* .close,.close:hover{color:#fff;opacity:0.9;width:35px;} */
@media screen and (min-width: 1201px) {
.modal .modal-content .check-box {min-width: 900px;max-height: 524px;min-height: 474px;}
}
@media screen and (min-width: 900px) {
.modal .modal-content .check-box {max-height: 524px;min-height: 474px;}
}
a.min,a.close1,a.open{float:right;position: relative;z-index: 1000;cursor:pointer;width:21px;height:19px;display:block;margin-right:8px;margin-top:5px;background:url(../img/tool.png) no-repeat;}
a.min{background-position:-29px 0;}
a.min:hover{background-position:-29px -29px;}
a.close1{background-position:-89px 0;opacity:1}
a.close1:hover{background-position:-89px -29px;}
a.revert{cursor:pointer;position: fixed;right: 10px;bottom:55%;text-align: center;vertical-align: middle; border: 1px solid #ccc;height: 60px; width: 60px;background: linear-gradient(to bottom, #f6f6f6, #e6e5e5);}
/* a.revert:hover{background-position:-149px -29px;} */
a.open{position:absolute;top:10px;left:50%;margin-left:-10px;background-position:0 0;}
a.open:hover{background-position:0 -29px;}
.t-icon{width: 23px;margin-right: 6px;position: relative;top: -1px;}
.hy{color: #9A9A9A;vertical-align: middle;position: relative;top: 7px;font-size: 30px}
.up-down{width:19px;height:29px;margin-left:14px;float: right;margin-right: 31px;font-size:20px;color:#908a8a;margin-top:-21px; cursor:pointer;}
.up-down:hover{color:#FFB122;}
.check-text2 {margin:0 autopx; white-space: normal;overflow: hidden;display: block;word-break: break-all; }
.check-text-qs .check-text2{color: #e47411;}
.modal .modal-content .check-box .check-list .check-text-qs{color: #e47411;}
.modal .modal-content .check-box .check-list .check-icon4{float: right;margin-right: 89px;position: relative;top:-25px;}
.jc-logo{height:78px;width:62px;float: left;margin-right:14px; background:url(../img/logo.png) no-repeat;background-size: 62px 78px;}
.r-box{float: left;}
.jc-box{overflow: hidden;width:629px;margin:0 auto;position: relative;top: 145px;}
.jc-box-c{background: url(../img/bg2.png) repeat;}
.check-box{background: url(../img/bg2.png) repeat}
/*
.jc-logo-min{background:url(../img/logo.png) no-repeat ;display: inline-block;}
*/
.titleLogin{
background:url(../img/title-logo.png) no-repeat
}
.r-box h1{width: 550px;
height: 80px;font-weight: 100;color:#565656;line-height: 54px;letter-spacing:2px;display: inline-block;margin:0;}
.jc-btn{font-family:"»ªÎÄÐÂκ";padding: 11px 36px;font-size: 24px;color: #fff; width: 100%;
height: 80px;
position: relative;
background: rgba(255, 255, 255, .27);
text-transform: uppercase;
color: white;
font-weight: 700;
letter-spacing: 1px;
border: none;
font-size: 15px;
outline: none;cursor: pointer;}
.t-left{text-align: left;line-height: 63px;margin-top:40px;position: relative;}
.jc-btn:hover{color:#fff;text-decoration: none;}
.t-left:before {
content: " ";
display: block;
width: 200px;
height: 80px;
background: rgba(255, 255, 255, .1);
position: absolute;
top: -10px;
left: -200px;
transform: rotate(-45deg);
transition: all .15s ease-in-out;}
.jc-logo-min{height:40px;position: relative;top: -5px;}
.img-logo{display: inline-block;margin: 0px 20px 0px 36px;}
.sub-ul{overflow: hidden;width: 100%;}
.modal .modal-content .check-box .check-list .sub-li{margin-bottom: 0;line-height:28px;float:left;width:18%;margin:5px 1%;text-align: center;}
.check-hg,.check-qs{width: 22px;height: 22px;color: #fff;display: block;float: right;margin-right: 30px;text-align: center; position: relative;top: -22px;}
.check-hg{background: url("../img/checked.png") no-repeat left center;background-size: 20px;}
.fa-22{font-size: 20px;color:#FFB122;}
.btn:hover, .btn:focus, .btn.focus{color:#fff;}
.icon2{font-size: 38px;margin-right:4px;position: relative;}
/************ɨÃè½á¹û************/
.scanning-result{font-weight: 600;}
.modal .modal-content .check-box .check-list .scanning{color:#449DFF;}
.modal .modal-content .check-box .check-list .scan-hg{color:#08CE5B;}
.modal .modal-content .check-box .check-list .scan-qs{color:#FF754F;}
.modal .modal-content .check-box .check-list .security,.security-qs{width:auto;font-size: 12px;padding:2px 15px;color:#fff;border-radius: 10px;border:none;line-height: 18px;cursor: inherit;}
.modal .modal-content .check-box .check-list .security{background:#08CE5B;}
.modal .modal-content .check-box .check-list .security-qs{background:#FF754F;}
.modal .modal-content .check-box .check-list .check-text2{color: #8e8c8c;}
.sacn-icon{display: inline-block;position: absolute;left:-2px;top:-3px;width:16px;height:44px;z-index:20000;background: url("../img/scan.png");-webkit-animation:rotate 1.5s linear infinite;}
@keyframes rotate{
0% {left : -2px;}
49% {left : 18px;}
50% {transform:rotate(180deg);}
51% {left : 18px;}
100% {left:-2px;}
}
@-webkit-keyframes rotate {
0% {left : -2px;}
49% {left : 18px;}
50% {transform:rotate(180deg);}
51% {left : 18px;}
100% {left:-2px;}
}
.next,.point1,.point2,.closeT,.closeb{background:url(../img/guidebg.png);}
.point1,.point2{position:absolute;width:187px;height:26px;}
.absolute{position: fixed;right: 11px;bottom: 66%;}
.next{position:relative;width:292px;height:190px;background-position: 367px 0px;}
.point1{background-position: 398px -297px;top:42px;left:54px;}
.point2{background-position: 209px -298px;top:72px;left:54px;}
.closeT{position:absolute;width:29px;height:29px;background-position: -596px -233px;top: 12px;right: 9px;cursor:pointer;}
.closeb{position:absolute;width:88px;height:30px;background-position: -551px -269px;bottom: 53px;right: 50px;cursor:pointer;}
.zdjc-span{display: block;color: #9d9a9d;font-weight: 500;font-size: 9px;position: relative;top: 8px;}
/*导引*/
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url('../styles/fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../styles/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../styles/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../styles/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../styles/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../styles/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%} .fa-2x{font-size:2em} .fa-3x{font-size:3em} .fa-4x{font-size:4em} .fa-5x{font-size:5em} .fa-fw{width:1.28571429em;text-align:center} .fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none} .fa-ul>li{position:relative} .fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center} .fa-li.fa-lg{left:-1.85714286em} .fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em} .fa-pull-left{float:left} .fa-pull-right{float:right} .fa.fa-pull-left{margin-right:.3em} .fa.fa-pull-right{margin-left:.3em} .pull-right{float:right} .pull-left{float:left} .fa.pull-left{margin-right:.3em} .fa.pull-right{margin-left:.3em} .fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear} .fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)} @-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} @keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} .fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)} .fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)} .fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)} .fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)} .fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)} :root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none} .fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle} .fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center} .fa-stack-1x{line-height:inherit} .fa-stack-2x{font-size:2em} .fa-inverse{color:#fff} .fa-glass:before{content:"\f000"} .fa-music:before{content:"\f001"} .fa-search:before{content:"\f002"} .fa-envelope-o:before{content:"\f003"} .fa-heart:before{content:"\f004"} .fa-star:before{content:"\f005"} .fa-star-o:before{content:"\f006"} .fa-user:before{content:"\f007"} .fa-film:before{content:"\f008"} .fa-th-large:before{content:"\f009"} .fa-th:before{content:"\f00a"} .fa-th-list:before{content:"\f00b"} .fa-check:before{content:"\f00c"} .fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"} .fa-search-plus:before{content:"\f00e"} .fa-search-minus:before{content:"\f010"} .fa-power-off:before{content:"\f011"} .fa-signal:before{content:"\f012"} .fa-gear:before,.fa-cog:before{content:"\f013"} .fa-trash-o:before{content:"\f014"} .fa-home:before{content:"\f015"} .fa-file-o:before{content:"\f016"} .fa-clock-o:before{content:"\f017"} .fa-road:before{content:"\f018"} .fa-download:before{content:"\f019"} .fa-arrow-circle-o-down:before{content:"\f01a"} .fa-arrow-circle-o-up:before{content:"\f01b"} .fa-inbox:before{content:"\f01c"} .fa-play-circle-o:before{content:"\f01d"} .fa-rotate-right:before,.fa-repeat:before{content:"\f01e"} .fa-refresh:before{content:"\f021"} .fa-list-alt:before{content:"\f022"} .fa-lock:before{content:"\f023"} .fa-flag:before{content:"\f024"} .fa-headphones:before{content:"\f025"} .fa-volume-off:before{content:"\f026"} .fa-volume-down:before{content:"\f027"} .fa-volume-up:before{content:"\f028"} .fa-qrcode:before{content:"\f029"} .fa-barcode:before{content:"\f02a"} .fa-tag:before{content:"\f02b"} .fa-tags:before{content:"\f02c"} .fa-book:before{content:"\f02d"} .fa-bookmark:before{content:"\f02e"} .fa-print:before{content:"\f02f"} .fa-camera:before{content:"\f030"} .fa-font:before{content:"\f031"} .fa-bold:before{content:"\f032"} .fa-italic:before{content:"\f033"} .fa-text-height:before{content:"\f034"} .fa-text-width:before{content:"\f035"} .fa-align-left:before{content:"\f036"} .fa-align-center:before{content:"\f037"} .fa-align-right:before{content:"\f038"} .fa-align-justify:before{content:"\f039"} .fa-list:before{content:"\f03a"} .fa-dedent:before,.fa-outdent:before{content:"\f03b"} .fa-indent:before{content:"\f03c"} .fa-video-camera:before{content:"\f03d"} .fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"} .fa-pencil:before{content:"\f040"} .fa-map-marker:before{content:"\f041"} .fa-adjust:before{content:"\f042"} .fa-tint:before{content:"\f043"} .fa-edit:before,.fa-pencil-square-o:before{content:"\f044"} .fa-share-square-o:before{content:"\f045"} .fa-check-square-o:before{content:"\f046"} .fa-arrows:before{content:"\f047"} .fa-step-backward:before{content:"\f048"} .fa-fast-backward:before{content:"\f049"} .fa-backward:before{content:"\f04a"} .fa-play:before{content:"\f04b"} .fa-pause:before{content:"\f04c"} .fa-stop:before{content:"\f04d"} .fa-forward:before{content:"\f04e"} .fa-fast-forward:before{content:"\f050"} .fa-step-forward:before{content:"\f051"} .fa-eject:before{content:"\f052"} .fa-chevron-left:before{content:"\f053"} .fa-chevron-right:before{content:"\f054"} .fa-plus-circle:before{content:"\f055"} .fa-minus-circle:before{content:"\f056"} .fa-times-circle:before{content:"\f057"} .fa-check-circle:before{content:"\f058"} .fa-question-circle:before{content:"\f059"} .fa-info-circle:before{content:"\f05a"} .fa-crosshairs:before{content:"\f05b"} .fa-times-circle-o:before{content:"\f05c"} .fa-check-circle-o:before{content:"\f05d"} .fa-ban:before{content:"\f05e"} .fa-arrow-left:before{content:"\f060"} .fa-arrow-right:before{content:"\f061"} .fa-arrow-up:before{content:"\f062"} .fa-arrow-down:before{content:"\f063"} .fa-mail-forward:before,.fa-share:before{content:"\f064"} .fa-expand:before{content:"\f065"} .fa-compress:before{content:"\f066"} .fa-plus:before{content:"\f067"} .fa-minus:before{content:"\f068"} .fa-asterisk:before{content:"\f069"} .fa-exclamation-circle:before{content:"\f06a"} .fa-gift:before{content:"\f06b"} .fa-leaf:before{content:"\f06c"} .fa-fire:before{content:"\f06d"} .fa-eye:before{content:"\f06e"} .fa-eye-slash:before{content:"\f070"} .fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"} .fa-plane:before{content:"\f072"} .fa-calendar:before{content:"\f073"} .fa-random:before{content:"\f074"} .fa-comment:before{content:"\f075"} .fa-magnet:before{content:"\f076"} .fa-chevron-up:before{content:"\f077"} .fa-chevron-down:before{content:"\f078"} .fa-retweet:before{content:"\f079"} .fa-shopping-cart:before{content:"\f07a"} .fa-folder:before{content:"\f07b"} .fa-folder-open:before{content:"\f07c"} .fa-arrows-v:before{content:"\f07d"} .fa-arrows-h:before{content:"\f07e"} .fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"} .fa-twitter-square:before{content:"\f081"} .fa-facebook-square:before{content:"\f082"} .fa-camera-retro:before{content:"\f083"} .fa-key:before{content:"\f084"} .fa-gears:before,.fa-cogs:before{content:"\f085"} .fa-comments:before{content:"\f086"} .fa-thumbs-o-up:before{content:"\f087"} .fa-thumbs-o-down:before{content:"\f088"} .fa-star-half:before{content:"\f089"} .fa-heart-o:before{content:"\f08a"} .fa-sign-out:before{content:"\f08b"} .fa-linkedin-square:before{content:"\f08c"} .fa-thumb-tack:before{content:"\f08d"} .fa-external-link:before{content:"\f08e"} .fa-sign-in:before{content:"\f090"} .fa-trophy:before{content:"\f091"} .fa-github-square:before{content:"\f092"} .fa-upload:before{content:"\f093"} .fa-lemon-o:before{content:"\f094"} .fa-phone:before{content:"\f095"} .fa-square-o:before{content:"\f096"} .fa-bookmark-o:before{content:"\f097"} .fa-phone-square:before{content:"\f098"} .fa-twitter:before{content:"\f099"} .fa-facebook-f:before,.fa-facebook:before{content:"\f09a"} .fa-github:before{content:"\f09b"} .fa-unlock:before{content:"\f09c"} .fa-credit-card:before{content:"\f09d"} .fa-feed:before,.fa-rss:before{content:"\f09e"} .fa-hdd-o:before{content:"\f0a0"} .fa-bullhorn:before{content:"\f0a1"} .fa-bell:before{content:"\f0f3"} .fa-certificate:before{content:"\f0a3"} .fa-hand-o-right:before{content:"\f0a4"} .fa-hand-o-left:before{content:"\f0a5"} .fa-hand-o-up:before{content:"\f0a6"} .fa-hand-o-down:before{content:"\f0a7"} .fa-arrow-circle-left:before{content:"\f0a8"} .fa-arrow-circle-right:before{content:"\f0a9"} .fa-arrow-circle-up:before{content:"\f0aa"} .fa-arrow-circle-down:before{content:"\f0ab"} .fa-globe:before{content:"\f0ac"} .fa-wrench:before{content:"\f0ad"} .fa-tasks:before{content:"\f0ae"} .fa-filter:before{content:"\f0b0"} .fa-briefcase:before{content:"\f0b1"} .fa-arrows-alt:before{content:"\f0b2"} .fa-group:before,.fa-users:before{content:"\f0c0"} .fa-chain:before,.fa-link:before{content:"\f0c1"} .fa-cloud:before{content:"\f0c2"} .fa-flask:before{content:"\f0c3"} .fa-cut:before,.fa-scissors:before{content:"\f0c4"} .fa-copy:before,.fa-files-o:before{content:"\f0c5"} .fa-paperclip:before{content:"\f0c6"} .fa-save:before,.fa-floppy-o:before{content:"\f0c7"} .fa-square:before{content:"\f0c8"} .fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"} .fa-list-ul:before{content:"\f0ca"} .fa-list-ol:before{content:"\f0cb"} .fa-strikethrough:before{content:"\f0cc"} .fa-underline:before{content:"\f0cd"} .fa-table:before{content:"\f0ce"} .fa-magic:before{content:"\f0d0"} .fa-truck:before{content:"\f0d1"} .fa-pinterest:before{content:"\f0d2"} .fa-pinterest-square:before{content:"\f0d3"} .fa-google-plus-square:before{content:"\f0d4"} .fa-google-plus:before{content:"\f0d5"} .fa-money:before{content:"\f0d6"} .fa-caret-down:before{content:"\f0d7"} .fa-caret-up:before{content:"\f0d8"} .fa-caret-left:before{content:"\f0d9"} .fa-caret-right:before{content:"\f0da"} .fa-columns:before{content:"\f0db"} .fa-unsorted:before,.fa-sort:before{content:"\f0dc"} .fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"} .fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"} .fa-envelope:before{content:"\f0e0"} .fa-linkedin:before{content:"\f0e1"} .fa-rotate-left:before,.fa-undo:before{content:"\f0e2"} .fa-legal:before,.fa-gavel:before{content:"\f0e3"} .fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"} .fa-comment-o:before{content:"\f0e5"} .fa-comments-o:before{content:"\f0e6"} .fa-flash:before,.fa-bolt:before{content:"\f0e7"} .fa-sitemap:before{content:"\f0e8"} .fa-umbrella:before{content:"\f0e9"} .fa-paste:before,.fa-clipboard:before{content:"\f0ea"} .fa-lightbulb-o:before{content:"\f0eb"} .fa-exchange:before{content:"\f0ec"} .fa-cloud-download:before{content:"\f0ed"} .fa-cloud-upload:before{content:"\f0ee"} .fa-user-md:before{content:"\f0f0"} .fa-stethoscope:before{content:"\f0f1"} .fa-suitcase:before{content:"\f0f2"} .fa-bell-o:before{content:"\f0a2"} .fa-coffee:before{content:"\f0f4"} .fa-cutlery:before{content:"\f0f5"} .fa-file-text-o:before{content:"\f0f6"} .fa-building-o:before{content:"\f0f7"} .fa-hospital-o:before{content:"\f0f8"} .fa-ambulance:before{content:"\f0f9"} .fa-medkit:before{content:"\f0fa"} .fa-fighter-jet:before{content:"\f0fb"} .fa-beer:before{content:"\f0fc"} .fa-h-square:before{content:"\f0fd"} .fa-plus-square:before{content:"\f0fe"} .fa-angle-double-left:before{content:"\f100"} .fa-angle-double-right:before{content:"\f101"} .fa-angle-double-up:before{content:"\f102"} .fa-angle-double-down:before{content:"\f103"} .fa-angle-left:before{content:"\f104"} .fa-angle-right:before{content:"\f105"} .fa-angle-up:before{content:"\f106"} .fa-angle-down:before{content:"\f107"} .fa-desktop:before{content:"\f108"} .fa-laptop:before{content:"\f109"} .fa-tablet:before{content:"\f10a"} .fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"} .fa-circle-o:before{content:"\f10c"} .fa-quote-left:before{content:"\f10d"} .fa-quote-right:before{content:"\f10e"} .fa-spinner:before{content:"\f110"} .fa-circle:before{content:"\f111"} .fa-mail-reply:before,.fa-reply:before{content:"\f112"} .fa-github-alt:before{content:"\f113"} .fa-folder-o:before{content:"\f114"} .fa-folder-open-o:before{content:"\f115"} .fa-smile-o:before{content:"\f118"} .fa-frown-o:before{content:"\f119"} .fa-meh-o:before{content:"\f11a"} .fa-gamepad:before{content:"\f11b"} .fa-keyboard-o:before{content:"\f11c"} .fa-flag-o:before{content:"\f11d"} .fa-flag-checkered:before{content:"\f11e"} .fa-terminal:before{content:"\f120"} .fa-code:before{content:"\f121"} .fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"} .fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"} .fa-location-arrow:before{content:"\f124"} .fa-crop:before{content:"\f125"} .fa-code-fork:before{content:"\f126"} .fa-unlink:before,.fa-chain-broken:before{content:"\f127"} .fa-question:before{content:"\f128"} .fa-info:before{content:"\f129"} .fa-exclamation:before{content:"\f12a"} .fa-superscript:before{content:"\f12b"} .fa-subscript:before{content:"\f12c"} .fa-eraser:before{content:"\f12d"} .fa-puzzle-piece:before{content:"\f12e"} .fa-microphone:before{content:"\f130"} .fa-microphone-slash:before{content:"\f131"} .fa-shield:before{content:"\f132"} .fa-calendar-o:before{content:"\f133"} .fa-fire-extinguisher:before{content:"\f134"} .fa-rocket:before{content:"\f135"} .fa-maxcdn:before{content:"\f136"} .fa-chevron-circle-left:before{content:"\f137"} .fa-chevron-circle-right:before{content:"\f138"} .fa-chevron-circle-up:before{content:"\f139"} .fa-chevron-circle-down:before{content:"\f13a"} .fa-html5:before{content:"\f13b"} .fa-css3:before{content:"\f13c"} .fa-anchor:before{content:"\f13d"} .fa-unlock-alt:before{content:"\f13e"} .fa-bullseye:before{content:"\f140"} .fa-ellipsis-h:before{content:"\f141"} .fa-ellipsis-v:before{content:"\f142"} .fa-rss-square:before{content:"\f143"} .fa-play-circle:before{content:"\f144"} .fa-ticket:before{content:"\f145"} .fa-minus-square:before{content:"\f146"} .fa-minus-square-o:before{content:"\f147"} .fa-level-up:before{content:"\f148"} .fa-level-down:before{content:"\f149"} .fa-check-square:before{content:"\f14a"} .fa-pencil-square:before{content:"\f14b"} .fa-external-link-square:before{content:"\f14c"} .fa-share-square:before{content:"\f14d"} .fa-compass:before{content:"\f14e"} .fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"} .fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"} .fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"} .fa-euro:before,.fa-eur:before{content:"\f153"} .fa-gbp:before{content:"\f154"} .fa-dollar:before,.fa-usd:before{content:"\f155"} .fa-rupee:before,.fa-inr:before{content:"\f156"} .fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"} .fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"} .fa-won:before,.fa-krw:before{content:"\f159"} .fa-bitcoin:before,.fa-btc:before{content:"\f15a"} .fa-file:before{content:"\f15b"} .fa-file-text:before{content:"\f15c"} .fa-sort-alpha-asc:before{content:"\f15d"} .fa-sort-alpha-desc:before{content:"\f15e"} .fa-sort-amount-asc:before{content:"\f160"} .fa-sort-amount-desc:before{content:"\f161"} .fa-sort-numeric-asc:before{content:"\f162"} .fa-sort-numeric-desc:before{content:"\f163"} .fa-thumbs-up:before{content:"\f164"} .fa-thumbs-down:before{content:"\f165"} .fa-youtube-square:before{content:"\f166"} .fa-youtube:before{content:"\f167"} .fa-xing:before{content:"\f168"} .fa-xing-square:before{content:"\f169"} .fa-youtube-play:before{content:"\f16a"} .fa-dropbox:before{content:"\f16b"} .fa-stack-overflow:before{content:"\f16c"} .fa-instagram:before{content:"\f16d"} .fa-flickr:before{content:"\f16e"} .fa-adn:before{content:"\f170"} .fa-bitbucket:before{content:"\f171"} .fa-bitbucket-square:before{content:"\f172"} .fa-tumblr:before{content:"\f173"} .fa-tumblr-square:before{content:"\f174"} .fa-long-arrow-down:before{content:"\f175"} .fa-long-arrow-up:before{content:"\f176"} .fa-long-arrow-left:before{content:"\f177"} .fa-long-arrow-right:before{content:"\f178"} .fa-apple:before{content:"\f179"} .fa-windows:before{content:"\f17a"} .fa-android:before{content:"\f17b"} .fa-linux:before{content:"\f17c"} .fa-dribbble:before{content:"\f17d"} .fa-skype:before{content:"\f17e"} .fa-foursquare:before{content:"\f180"} .fa-trello:before{content:"\f181"} .fa-female:before{content:"\f182"} .fa-male:before{content:"\f183"} .fa-gittip:before,.fa-gratipay:before{content:"\f184"} .fa-sun-o:before{content:"\f185"} .fa-moon-o:before{content:"\f186"} .fa-archive:before{content:"\f187"} .fa-bug:before{content:"\f188"} .fa-vk:before{content:"\f189"} .fa-weibo:before{content:"\f18a"} .fa-renren:before{content:"\f18b"} .fa-pagelines:before{content:"\f18c"} .fa-stack-exchange:before{content:"\f18d"} .fa-arrow-circle-o-right:before{content:"\f18e"} .fa-arrow-circle-o-left:before{content:"\f190"} .fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"} .fa-dot-circle-o:before{content:"\f192"} .fa-wheelchair:before{content:"\f193"} .fa-vimeo-square:before{content:"\f194"} .fa-turkish-lira:before,.fa-try:before{content:"\f195"} .fa-plus-square-o:before{content:"\f196"} .fa-space-shuttle:before{content:"\f197"} .fa-slack:before{content:"\f198"} .fa-envelope-square:before{content:"\f199"} .fa-wordpress:before{content:"\f19a"} .fa-openid:before{content:"\f19b"} .fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"} .fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"} .fa-yahoo:before{content:"\f19e"} .fa-google:before{content:"\f1a0"} .fa-reddit:before{content:"\f1a1"} .fa-reddit-square:before{content:"\f1a2"} .fa-stumbleupon-circle:before{content:"\f1a3"} .fa-stumbleupon:before{content:"\f1a4"} .fa-delicious:before{content:"\f1a5"} .fa-digg:before{content:"\f1a6"} .fa-pied-piper-pp:before{content:"\f1a7"} .fa-pied-piper-alt:before{content:"\f1a8"} .fa-drupal:before{content:"\f1a9"} .fa-joomla:before{content:"\f1aa"} .fa-language:before{content:"\f1ab"} .fa-fax:before{content:"\f1ac"} .fa-building:before{content:"\f1ad"} .fa-child:before{content:"\f1ae"} .fa-paw:before{content:"\f1b0"} .fa-spoon:before{content:"\f1b1"} .fa-cube:before{content:"\f1b2"} .fa-cubes:before{content:"\f1b3"} .fa-behance:before{content:"\f1b4"} .fa-behance-square:before{content:"\f1b5"} .fa-steam:before{content:"\f1b6"} .fa-steam-square:before{content:"\f1b7"} .fa-recycle:before{content:"\f1b8"} .fa-automobile:before,.fa-car:before{content:"\f1b9"} .fa-cab:before,.fa-taxi:before{content:"\f1ba"} .fa-tree:before{content:"\f1bb"} .fa-spotify:before{content:"\f1bc"} .fa-deviantart:before{content:"\f1bd"} .fa-soundcloud:before{content:"\f1be"} .fa-database:before{content:"\f1c0"} .fa-file-pdf-o:before{content:"\f1c1"} .fa-file-word-o:before{content:"\f1c2"} .fa-file-excel-o:before{content:"\f1c3"} .fa-file-powerpoint-o:before{content:"\f1c4"} .fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"} .fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"} .fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"} .fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"} .fa-file-code-o:before{content:"\f1c9"} .fa-vine:before{content:"\f1ca"} .fa-codepen:before{content:"\f1cb"} .fa-jsfiddle:before{content:"\f1cc"} .fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"} .fa-circle-o-notch:before{content:"\f1ce"} .fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"} .fa-ge:before,.fa-empire:before{content:"\f1d1"} .fa-git-square:before{content:"\f1d2"} .fa-git:before{content:"\f1d3"} .fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"} .fa-tencent-weibo:before{content:"\f1d5"} .fa-qq:before{content:"\f1d6"} .fa-wechat:before,.fa-weixin:before{content:"\f1d7"} .fa-send:before,.fa-paper-plane:before{content:"\f1d8"} .fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"} .fa-history:before{content:"\f1da"} .fa-circle-thin:before{content:"\f1db"} .fa-header:before{content:"\f1dc"} .fa-paragraph:before{content:"\f1dd"} .fa-sliders:before{content:"\f1de"} .fa-share-alt:before{content:"\f1e0"} .fa-share-alt-square:before{content:"\f1e1"} .fa-bomb:before{content:"\f1e2"} .fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"} .fa-tty:before{content:"\f1e4"} .fa-binoculars:before{content:"\f1e5"} .fa-plug:before{content:"\f1e6"} .fa-slideshare:before{content:"\f1e7"} .fa-twitch:before{content:"\f1e8"} .fa-yelp:before{content:"\f1e9"} .fa-newspaper-o:before{content:"\f1ea"} .fa-wifi:before{content:"\f1eb"} .fa-calculator:before{content:"\f1ec"} .fa-paypal:before{content:"\f1ed"} .fa-google-wallet:before{content:"\f1ee"} .fa-cc-visa:before{content:"\f1f0"} .fa-cc-mastercard:before{content:"\f1f1"} .fa-cc-discover:before{content:"\f1f2"} .fa-cc-amex:before{content:"\f1f3"} .fa-cc-paypal:before{content:"\f1f4"} .fa-cc-stripe:before{content:"\f1f5"} .fa-bell-slash:before{content:"\f1f6"} .fa-bell-slash-o:before{content:"\f1f7"} .fa-trash:before{content:"\f1f8"} .fa-copyright:before{content:"\f1f9"} .fa-at:before{content:"\f1fa"} .fa-eyedropper:before{content:"\f1fb"} .fa-paint-brush:before{content:"\f1fc"} .fa-birthday-cake:before{content:"\f1fd"} .fa-area-chart:before{content:"\f1fe"} .fa-pie-chart:before{content:"\f200"} .fa-line-chart:before{content:"\f201"} .fa-lastfm:before{content:"\f202"} .fa-lastfm-square:before{content:"\f203"} .fa-toggle-off:before{content:"\f204"} .fa-toggle-on:before{content:"\f205"} .fa-bicycle:before{content:"\f206"} .fa-bus:before{content:"\f207"} .fa-ioxhost:before{content:"\f208"} .fa-angellist:before{content:"\f209"} .fa-cc:before{content:"\f20a"} .fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"} .fa-meanpath:before{content:"\f20c"} .fa-buysellads:before{content:"\f20d"} .fa-connectdevelop:before{content:"\f20e"} .fa-dashcube:before{content:"\f210"} .fa-forumbee:before{content:"\f211"} .fa-leanpub:before{content:"\f212"} .fa-sellsy:before{content:"\f213"} .fa-shirtsinbulk:before{content:"\f214"} .fa-simplybuilt:before{content:"\f215"} .fa-skyatlas:before{content:"\f216"} .fa-cart-plus:before{content:"\f217"} .fa-cart-arrow-down:before{content:"\f218"} .fa-diamond:before{content:"\f219"} .fa-ship:before{content:"\f21a"} .fa-user-secret:before{content:"\f21b"} .fa-motorcycle:before{content:"\f21c"} .fa-street-view:before{content:"\f21d"} .fa-heartbeat:before{content:"\f21e"} .fa-venus:before{content:"\f221"} .fa-mars:before{content:"\f222"} .fa-mercury:before{content:"\f223"} .fa-intersex:before,.fa-transgender:before{content:"\f224"} .fa-transgender-alt:before{content:"\f225"} .fa-venus-double:before{content:"\f226"} .fa-mars-double:before{content:"\f227"} .fa-venus-mars:before{content:"\f228"} .fa-mars-stroke:before{content:"\f229"} .fa-mars-stroke-v:before{content:"\f22a"} .fa-mars-stroke-h:before{content:"\f22b"} .fa-neuter:before{content:"\f22c"} .fa-genderless:before{content:"\f22d"} .fa-facebook-official:before{content:"\f230"} .fa-pinterest-p:before{content:"\f231"} .fa-whatsapp:before{content:"\f232"} .fa-server:before{content:"\f233"} .fa-user-plus:before{content:"\f234"} .fa-user-times:before{content:"\f235"} .fa-hotel:before,.fa-bed:before{content:"\f236"} .fa-viacoin:before{content:"\f237"} .fa-train:before{content:"\f238"} .fa-subway:before{content:"\f239"} .fa-medium:before{content:"\f23a"} .fa-yc:before,.fa-y-combinator:before{content:"\f23b"} .fa-optin-monster:before{content:"\f23c"} .fa-opencart:before{content:"\f23d"} .fa-expeditedssl:before{content:"\f23e"} .fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"} .fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"} .fa-battery-2:before,.fa-battery-half:before{content:"\f242"} .fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"} .fa-battery-0:before,.fa-battery-empty:before{content:"\f244"} .fa-mouse-pointer:before{content:"\f245"} .fa-i-cursor:before{content:"\f246"} .fa-object-group:before{content:"\f247"} .fa-object-ungroup:before{content:"\f248"} .fa-sticky-note:before{content:"\f249"} .fa-sticky-note-o:before{content:"\f24a"} .fa-cc-jcb:before{content:"\f24b"} .fa-cc-diners-club:before{content:"\f24c"} .fa-clone:before{content:"\f24d"} .fa-balance-scale:before{content:"\f24e"} .fa-hourglass-o:before{content:"\f250"} .fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"} .fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"} .fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"} .fa-hourglass:before{content:"\f254"} .fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"} .fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"} .fa-hand-scissors-o:before{content:"\f257"} .fa-hand-lizard-o:before{content:"\f258"} .fa-hand-spock-o:before{content:"\f259"} .fa-hand-pointer-o:before{content:"\f25a"} .fa-hand-peace-o:before{content:"\f25b"} .fa-trademark:before{content:"\f25c"} .fa-registered:before{content:"\f25d"} .fa-creative-commons:before{content:"\f25e"} .fa-gg:before{content:"\f260"} .fa-gg-circle:before{content:"\f261"} .fa-tripadvisor:before{content:"\f262"} .fa-odnoklassniki:before{content:"\f263"} .fa-odnoklassniki-square:before{content:"\f264"} .fa-get-pocket:before{content:"\f265"} .fa-wikipedia-w:before{content:"\f266"} .fa-safari:before{content:"\f267"} .fa-chrome:before{content:"\f268"} .fa-firefox:before{content:"\f269"} .fa-opera:before{content:"\f26a"} .fa-internet-explorer:before{content:"\f26b"} .fa-tv:before,.fa-television:before{content:"\f26c"} .fa-contao:before{content:"\f26d"} .fa-500px:before{content:"\f26e"} .fa-amazon:before{content:"\f270"} .fa-calendar-plus-o:before{content:"\f271"} .fa-calendar-minus-o:before{content:"\f272"} .fa-calendar-times-o:before{content:"\f273"} .fa-calendar-check-o:before{content:"\f274"} .fa-industry:before{content:"\f275"} .fa-map-pin:before{content:"\f276"} .fa-map-signs:before{content:"\f277"} .fa-map-o:before{content:"\f278"} .fa-map:before{content:"\f279"} .fa-commenting:before{content:"\f27a"} .fa-commenting-o:before{content:"\f27b"} .fa-houzz:before{content:"\f27c"} .fa-vimeo:before{content:"\f27d"} .fa-black-tie:before{content:"\f27e"} .fa-fonticons:before{content:"\f280"} .fa-reddit-alien:before{content:"\f281"} .fa-edge:before{content:"\f282"} .fa-credit-card-alt:before{content:"\f283"} .fa-codiepie:before{content:"\f284"} .fa-modx:before{content:"\f285"} .fa-fort-awesome:before{content:"\f286"} .fa-usb:before{content:"\f287"} .fa-product-hunt:before{content:"\f288"} .fa-mixcloud:before{content:"\f289"} .fa-scribd:before{content:"\f28a"} .fa-pause-circle:before{content:"\f28b"} .fa-pause-circle-o:before{content:"\f28c"} .fa-stop-circle:before{content:"\f28d"} .fa-stop-circle-o:before{content:"\f28e"} .fa-shopping-bag:before{content:"\f290"} .fa-shopping-basket:before{content:"\f291"} .fa-hashtag:before{content:"\f292"} .fa-bluetooth:before{content:"\f293"} .fa-bluetooth-b:before{content:"\f294"} .fa-percent:before{content:"\f295"} .fa-gitlab:before{content:"\f296"} .fa-wpbeginner:before{content:"\f297"} .fa-wpforms:before{content:"\f298"} .fa-envira:before{content:"\f299"} .fa-universal-access:before{content:"\f29a"} .fa-wheelchair-alt:before{content:"\f29b"} .fa-question-circle-o:before{content:"\f29c"} .fa-blind:before{content:"\f29d"} .fa-audio-description:before{content:"\f29e"} .fa-volume-control-phone:before{content:"\f2a0"} .fa-braille:before{content:"\f2a1"} .fa-assistive-listening-systems:before{content:"\f2a2"} .fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"} .fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"} .fa-glide:before{content:"\f2a5"} .fa-glide-g:before{content:"\f2a6"} .fa-signing:before,.fa-sign-language:before{content:"\f2a7"} .fa-low-vision:before{content:"\f2a8"} .fa-viadeo:before{content:"\f2a9"} .fa-viadeo-square:before{content:"\f2aa"} .fa-snapchat:before{content:"\f2ab"} .fa-snapchat-ghost:before{content:"\f2ac"} .fa-snapchat-square:before{content:"\f2ad"} .fa-pied-piper:before{content:"\f2ae"} .fa-first-order:before{content:"\f2b0"} .fa-yoast:before{content:"\f2b1"} .fa-themeisle:before{content:"\f2b2"} .fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"} .fa-fa:before,.fa-font-awesome:before{content:"\f2b4"} .fa-handshake-o:before{content:"\f2b5"} .fa-envelope-open:before{content:"\f2b6"} .fa-envelope-open-o:before{content:"\f2b7"} .fa-linode:before{content:"\f2b8"} .fa-address-book:before{content:"\f2b9"} .fa-address-book-o:before{content:"\f2ba"} .fa-vcard:before,.fa-address-card:before{content:"\f2bb"} .fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"} .fa-user-circle:before{content:"\f2bd"} .fa-user-circle-o:before{content:"\f2be"} .fa-user-o:before{content:"\f2c0"} .fa-id-badge:before{content:"\f2c1"} .fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"} .fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"} .fa-quora:before{content:"\f2c4"} .fa-free-code-camp:before{content:"\f2c5"} .fa-telegram:before{content:"\f2c6"} .fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"} .fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"} .fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"} .fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"} .fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"} .fa-shower:before{content:"\f2cc"} .fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"} .fa-podcast:before{content:"\f2ce"} .fa-window-maximize:before{content:"\f2d0"} .fa-window-minimize:before{content:"\f2d1"} .fa-window-restore:before{content:"\f2d2"} .fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"} .fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"} .fa-bandcamp:before{content:"\f2d5"} .fa-grav:before{content:"\f2d6"} .fa-etsy:before{content:"\f2d7"} .fa-imdb:before{content:"\f2d8"} .fa-ravelry:before{content:"\f2d9"} .fa-eercast:before{content:"\f2da"} .fa-microchip:before{content:"\f2db"} .fa-snowflake-o:before{content:"\f2dc"} .fa-superpowers:before{content:"\f2dd"} .fa-wpexplorer:before{content:"\f2de"} .fa-meetup:before{content:"\f2e0"} .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0} .sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
@charset "utf-8";
.box {
margin: 1rem;
width: 18.75rem;
}
.box img {
width: 100%;
}
.btn {
border: none;
color: white;
overflow: hidden;
margin: 1rem;
padding: 0;
text-transform: uppercase;
width: 150px;
height: 40px;
cursor:pointer;
}
.btn.color-1 {
background-color: #426fc5;
margin-top:50px;
font-weight: 600;
}
.btn.color-2 {
background-color: #00897b;
}
.btn.color-3 {
background-color: #f6774f;
}
.btn.color-4 {
background-color: #e94043;
}
.btn-border.color-1 {
background-color: transparent;
border: 2px solid #426fc5;
color: #426fc5;
}
.btn-border.color-2 {
background-color: transparent;
border: 2px solid #00897b;
color: #00897b;
}
.btn-border.color-3 {
background-color: transparent;
border: 2px solid #f6774f;
color: #f6774f;
}
.btn-border.color-4 {
background-color: transparent;
border: 2px solid #e94043;
color: #e94043;
}
.btn-round {
border-radius: 10em;
}
.material-design {
position: relative;
}
.material-design canvas {
opacity: 0.25;
position: absolute;
top: 0;
left: 0;
}
.container {
align-content: center;
align-items: flex-start;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
margin: 0 auto;
max-width: 46rem;
}
@import "./main.scss";
.actM {
background-color: #ecf5ff;
color: #66b1ff;
}
.header {
width: 100%;
height: 52px;
background: #252733;
box-shadow: 0px 4px 4px rgba(51, 51, 51, 0.2);
font-size: 18px;
font-family: Microsoft YaHei;
font-weight: bold;
display: flex;
align-items: center;
color: #ffffff;
opacity: 1;
padding-left: 60px;
position: fixed;
z-index: 99;
}
#asjxq {
width: 100%;
min-height: 100vh;
background: #eaeaea;
/deep/ .el-dropdown-link {
cursor: pointer;
color: #409eff;
position: fixed;
bottom: 200px;
right: calc((100% - 1400px) / 2);
width: 60px;
height: 60px;
}
/deep/ .el-icon-arrow-down {
font-size: 12px;
}
/deep/ .demonstration {
display: block;
color: #8492a6;
font-size: 14px;
margin-bottom: 20px;
}
/deep/ .el-dropdown {
position: fixed;
bottom: 200px;
right: calc((100% - 1400px) / 2);
width: 60px;
height: 60px;
z-index: 10;
}
.zdycol3 {
display: inline-block;
width: 33%;
vertical-align: middle;
}
.zdycol2 {
display: inline-block;
width: 33%;
margin-right: 33%;
vertical-align: middle;
}
.zdycol1 {
display: inline-block;
width: 100%;
vertical-align: middle;
.el-input {
width: 703px;
}
}
/deep/ .el-textarea__inner {
height: 60px !important;
width: calc(100% - 15px);
}
.menu {
position: fixed;
bottom: 200px;
right: calc((100% - 1400px) / 2);
width: 60px;
height: 60px;
line-height: 60px;
text-align: center;
color: #fff;
font-size: 20px;
background: #2962ff;
border-radius: 50%;
box-shadow: 0px 6px 16px rgba(0, 112, 244, 0.32);
opacity: 1;
cursor: pointer;
i {
font-size: 20px;
}
}
.content-wrap {
width: 1360px;
margin: 0 auto;
padding-bottom: 104px;
position: relative;
padding-top: 52px;
background-color: #fff;
.dt_menu {
width: 160px;
height: 220px;
background: #ffffff;
border-radius: 4px;
position: fixed;
margin-left: 1171px;
margin-top: 35px;
padding: 20px 0px;
z-index: 99;
.menu_item {
width: 160px;
height: 36px;
padding-left: 24px;
opacity: 1;
line-height: 36px;
}
.menu_active {
background: linear-gradient(90deg, #3670ff 0%, rgba(27, 56, 128, 0) 100%);
height: 36px;
opacity: 1;
line-height: 36px;
width: 160px;
color: #3670ff;
display: flex;
}
.left_active {
width: 4px;
height: 36px;
background: #3670ff;
opacity: 1;
margin-right: 20px;
}
}
.wrap-shadow {
width: 1360px;
// height: 676px;
//background: #FFFFFF;
//border: 1px solid #EAEAEA;
opacity: 1;
//border-radius: 8px;
margin-top: 8px;
//padding-right: 200px;
padding: 16px 368px 25px 20px;
.flws {
display: inline-block;
width: 20%;
text-align: center;
img {
width: 120px;
}
}
}
.line {
margin-top: 6px;
}
/deep/ .el-table__header-wrapper {
border-radius: 3px;
}
/deep/ .el-table__header-wrapper th {
background: #f4f6f7;
}
/deep/ .el-tabs__item.is-active {
width: 160px;
background: #ffffff;
border: 1px solid #cfcfcf;
opacity: 1;
border-radius: 4px 0px 0px 0px;
}
/deep/ .el-tabs__active-bar {
background: none;
}
/deep/ .el-tabs__item {
width: 160px;
background: #f2f2f2;
border: 1px solid #cfcfcf;
opacity: 1;
text-align: center;
}
/deep/ .el-table /deep/ th {
padding: 8px 0;
background-color: #f4f6f7; //表格标题首行背景色
border: 0px solid #ebeef5;
}
/deep/ .el-table /deep/ th,
/deep/ td {
height: 21px;
padding: 8px 0;
}
/deep/ .el-pagination {
text-align: left;
}
/deep/ .el-pagination__sizes {
.el-input {
width: 104px;
height: 28px;
margin-top: 4px;
}
.el-input__inner {
height: 28px;
line-height: 28px;
background-color: #fff;
}
}
/deep/ .el-pagination {
text-align: left;
}
/deep/ .el-pagination {
margin: 5px 0;
margin-top: 10px;
.el-pager li {
line-height: 26px;
height: 26px;
min-width: 26px;
margin-left: 12px;
background: #f4f6f7;
}
.el-pager li.active {
background: #1a81e1;
color: #ffffff;
}
button {
min-width: 26px;
height: 26px;
line-height: 26px;
background: #f4f6f7;
margin-left: 12px;
}
}
/deep/ .el-table__row--striped {
background: #f4f6f7;
}
.xxlx_get {
margin-left: 145px;
}
.xxlx_get a.cur {
border: 1px solid #ec0000;
}
.xxlx_get a {
text-decoration: none;
padding: 0 10px;
float: left;
height: 24px;
line-height: 24px;
border: 1px solid #ddd;
font-size: 12px;
font-weight: bold;
margin: 9px 5px;
color: #333;
text-align: center;
position: relative;
cursor: pointer;
}
.xxlx_get a.cur i {
width: 14px;
height: 14px;
position: absolute;
bottom: 0;
_bottom: -1px;
right: 0;
background: url(~@/assets/img/pic_get.png) 0 0 no-repeat;
}
.line1 {
width: 980px !important;
.zd-value {
width: 560px !important;
}
}
.line2 {
width: 66%;
}
// .line3 {
// }
.line4 {
width: 50%;
}
.line5 {
width: 100% !important;
}
.line6 {
width: 100% !important;
padding: 20px 0 30px 0 !important;
}
.xqxx {
padding: 0 10px;
margin: 4px;
width: calc(100% - 30px);
background: #e6ecf4;
border: 1px solid #a6b8e1;
color: #333;
height: 35px;
line-height: 35px;
.total {
margin: 0 4px;
display: inline-block;
background: #ff7011;
color: #fff;
border-radius: 50%;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
}
}
.list,
.barxx {
border-bottom: 1px dashed #eee;
display: inline-block;
line-height: 30px;
color: #333;
width: 480px;
display: flex;
.zd-name {
display: inline-block;
width: 139px;
text-align: left;
font-size: 13px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #547ca1;
padding-left: 20px;
}
.zd-value {
display: inline-block;
width: 341px;
text-align: left;
font-size: 13px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #222222;
}
}
.barxx {
border-bottom: none;
}
.title {
width: 360px;
height: 29px;
background: linear-gradient(90deg, #3670ff 0%, rgba(255, 255, 255, 0) 100%);
border-radius: 2px 0px 0px 2px;
line-height: 29px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #ffffff;
/*span:nth-child(1){display: inline-block;height:34px;line-height: 36px;text-indent: 10px;border-bottom:2px solid #ff7011;}*/
}
.rightIcon {
cursor: pointer;
border-bottom: none;
font-size: 13px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #3670ff;
position: absolute;
left: 42px;
bottom: 20px;
}
.title:nth-child(1) {
margin-top: 0px;
}
.list-item {
display: flex;
flex-wrap: wrap;
}
.fzxyr,
.bhr {
margin: 4px 5px;
width: calc(50% - 12px);
border: 1px solid #ccc;
border-radius: 4px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.08);
.leftImg {
display: inline-block;
width: 130px;
text-align: center;
vertical-align: top;
img {
width: 110px;
margin-top: 21px;
}
}
.rightXx {
display: inline-block;
width: calc(100% - 130px);
color: #333;
.zdName {
display: inline-block;
width: 120px;
text-align: right;
}
.zdValue {
display: inline-block;
width: calc(100% - 120px);
}
}
}
.bhr {
.leftImg {
img {
width: 110px;
margin-top: 5px;
}
}
}
}
}
.timeLine_wrap {
display: flex;
.itemLine {
width: 203px;
.time {
height: 16px;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 32px;
color: #555555;
opacity: 1;
}
.line {
position: relative;
padding-top: 14px;
padding-bottom: 11px;
.quan {
width: 9px;
height: 9px;
background: #3c74fd;
border-radius: 50%;
opacity: 1;
position: relative;
z-index: 99;
}
.xian {
width: 203px;
height: 3px;
background: #d9e4ff;
opacity: 1;
position: absolute;
top: 17px;
}
}
.timeTitle {
height: 26px;
font-size: 13px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 26px;
color: #333333;
opacity: 1;
}
.person {
font-size: 10px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 32px;
color: #898b9e;
opacity: 1;
}
.time_content {
width: 160px;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 18px;
color: #333333;
opacity: 1;
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
#home {
width: 100%;
height: 100%;
position: fixed;
background-image: url(../../assets/img/login/loginbc.png);
background-repeat: no-repeat;
background-size: 100% 100%;
z-index: 100;
width: 100%;
height: 100%;
position: fixed;
background-image: url(../../assets/img/login/loginbc.png);
background-repeat: no-repeat;
background-size: 100% 100%;
z-index: 100;
}
.logo {
width: 42px;
height: 49px;
margin-top: 64px;
margin-left: 80px;
height: 35px;
margin-top: 64px;
margin-left: 80px;
}
.login-container {
position: absolute;
/* top: 138px; */
bottom: 69px;
right: -24.5%;
width: 100%;
height: 100%;
display: flex;
align-items: center;
position: absolute;
/* top: 138px; */
bottom: 69px;
right: -24.5%;
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
.jinhui {
width: 88px;
height: 88px;
width: 88px;
height: 88px;
}
.title {
width: 240px;
font-size: 24px;
font-family: Source Han Sans CN;
font-weight: bold;
line-height: 41px;
color: #1A1A1C;
opacity: 1;
margin: 38px auto 0px;
width: 240px;
font-size: 24px;
font-family: Source Han Sans CN;
font-weight: bold;
line-height: 41px;
color: #1a1a1c;
opacity: 1;
margin: 38px auto 0px;
}
.inputs /deep/.el-input__inner {
height: 48px;
background: rgba(255, 255, 255, 1) !important;
border-radius: 4px;
text-indent: 2em;
height: 48px;
background: rgba(255, 255, 255, 1) !important;
border-radius: 4px;
text-indent: 2em;
}
.icon {
height: 20px;
width: 20px;
height: 20px;
width: 20px;
}
.footer {
width: 100%;
height: 120px;
background: #1C60FF;
opacity: 1;
position: relative;
top: 818px;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-content: normal;
justify-content: space-evenly;
align-items: center;
width: 100%;
height: 120px;
background: #1c60ff;
opacity: 1;
position: relative;
top: 818px;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-content: normal;
justify-content: space-evenly;
align-items: center;
}
.fontsize {
font-size: 14px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 24px;
color: #DEE7EB;
opacity: 1;
font-size: 14px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 24px;
color: #dee7eb;
opacity: 1;
}
......@@ -592,4 +592,7 @@ div#driver-page-overlay {
.el-upload-list__item {
// width: 400px;
}
/deep/ .el-upload__input {
display: none !important;
}
\ No newline at end of file
......@@ -149,11 +149,35 @@ export default [
routeNames: ["jobDogManageEdit", "jobDogManageAdd", "jobDogManageBatchAdd"]
}
},
{
path: 'jobDogRefreshment',
name: 'jobDogRefreshment',
component: () => import('@/views/jobDogRefreshment/index.vue'),
meta: {
title: '工作犬复训审批',
isOneMenu: false,
keepAlive: true,
oneMenuName: 'jqjsgzgl',
paixu: 3,
routeNames: ["jobDogManageSp"]
}
},
// 工作犬复训管理(编辑页)
{
path: 'jobDogManageSp',
name: 'jobDogManageSp',
component: () => import('@/views/jobDogRefreshment/components/jobDogManageSp.vue'),
meta: {
title: '工作犬复训审批',
// 编辑新增页面此字段务必设置为true
isEditPage: true
}
},
// 工作犬复训管理(编辑页)
{
path: 'jobDogManageEdit',
name: 'jobDogManageEdit',
component: () => import('@/views/jobDogManage/components/jobDogManageEdit.vue'),
component: () => import('@/views/jobDogManage/components/jobDogManageEdit2.vue'),
meta: {
title: '工作犬复训管理-编辑',
// 编辑新增页面此字段务必设置为true
......@@ -164,7 +188,7 @@ export default [
{
path: 'jobDogManageAdd',
name: 'jobDogManageAdd',
component: () => import('@/views/jobDogManage/components/jobDogManageEdit.vue'),
component: () => import('@/views/jobDogManage/components/jobDogManageEdit2.vue'),
meta: {
title: '工作犬复训管理-新增',
// 编辑新增页面此字段务必设置为true
......@@ -191,9 +215,11 @@ export default [
title: '工作犬等级评定管理',
isOneMenu: false,
oneMenuName: 'jqjsgzgl',
paixu: 3
paixu: 4
}
},
// 警犬技术人员管理(只有一级菜单)
{
path: 'artisanManage',
......@@ -211,7 +237,7 @@ export default [
{
path: 'artisanManageEdit',
name: 'artisanManageEdit',
component: () => import('@/views/artisanManage/components/artisanManageEdit.vue'),
component: () => import('@/views/artisanManage/components/artisanManageEdit2.vue'),
meta: {
title: '警犬技术人员管理-编辑',
// 编辑新增页面此字段务必设置为true
......@@ -222,7 +248,7 @@ export default [
{
path: 'artisanManageAdd',
name: 'artisanManageAdd',
component: () => import('@/views/artisanManage/components/artisanManageEdit.vue'),
component: () => import('@/views/artisanManage/components/artisanManageEdit2.vue'),
meta: {
title: '警犬技术人员管理-新增',
// 编辑新增页面此字段务必设置为true
......
export default [
{
element: '#sjjc',
popover: {
title: '数据检测',
description: '点击即可进行数据质量检查\n',
position: 'left'
}
},
{
element: '#more',
popover: {
title: '更多',
description: '点击即可展开更多信息\n',
position: 'bottom'
}
},
{
element: '#yhxx',
popover: {
title: '用户信息',
description: '用户信息\n',
position: 'bottom'
}
},
{
element: '#spbtn',
popover: {
title: '数据审批栏',
description: '点击按钮可进行数据审批操作\n',
position: 'top'
}
}
]
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -138,6 +138,14 @@ var rules = {
callback()
}
},
nameRules: (rule, value, callback) => {
let reg = /^[\u4E00-\u9FA5]{2,4}$/;
if (!reg.test(value)) {
callback(new Error('姓名只能为两到四个汉字'))
} else {
callback()
}
},
jqzpRules: (rule, value, callback) => {
if (value.length <= 0) {
callback(new Error('警犬照片最少上传一张'))
......
......@@ -30,8 +30,8 @@ export const getJsryglAllColumns = () => {
prop: "gsdwGajgjgdm",
},
{
label: "警务技术序列",
prop: "jwjsxlForName",
label: "归属序列",
prop: "jwjsxl",
},
{
label: "所带警犬",
......@@ -41,6 +41,10 @@ export const getJsryglAllColumns = () => {
label: "从事警犬技术工作时间",
prop: "workYears",
},
{
label: "带犬年限",
prop: "dqnx",
},
]
return arr
......@@ -70,10 +74,6 @@ export const getJsryglDefaultColumns = () => {
prop: "gsdwGajgjgdm",
},
{
label: "警务技术序列",
prop: "jwjsxlForName",
},
{
label: "从事警犬技术工作时间",
prop: "workYears",
},
......@@ -94,10 +94,6 @@ export const getJsdwglAllColumns = () => {
prop: "dwmc",
},
{
label: "行政区划",
prop: "xzqhForName",
},
{
label: "单位领导",
prop: "dwld",
},
......@@ -180,23 +176,15 @@ export const getJygzqglAllColumns = () => {
prop: "birthDate",
},
{
label: "归属单位",
prop: "trainingUnit",
},
{
label: "归属警种",
prop: "policeCategoryForName",
},
{
label: "使用类别",
prop: "useCategoryForName",
},
{
label: "工作犬等级",
prop: "trainingLevelIdForName",
},
{
label: "警用犬种",
label: "种",
prop: "speciesIdForName",
},
{
......@@ -239,10 +227,6 @@ export const getJygzqglDefaultColumns = () => {
prop: "birthDate",
},
{
label: "归属单位",
prop: "trainingUnit",
},
{
label: "工作犬等级",
prop: "trainingLevelIdForName",
},
......@@ -267,11 +251,7 @@ export const getGzqfxglAllColumns = () => {
},
{
label: "工作犬等级",
prop: "trainingLevelIdForName",
},
{
label: "培训次数",
prop: "trainCountForName",
prop: "trainingLevelId",
},
{
label: "归属单位",
......@@ -282,20 +262,24 @@ export const getGzqfxglAllColumns = () => {
prop: "checkUnit",
},
{
label: "培训日期",
prop: "pxrq",
label: "审批节点",
prop: "spFlowStr",
},
{
label: "考核日期",
prop: "checkDate",
},
{
label: "考核人员",
prop: "checkStaff",
},
{
label: "培训科目",
label: "考核科目",
prop: "trainSubjectForName",
},
{
label: "备注",
prop: "remark",
label: "审批状态",
prop: "spstatusStr",
},
]
return arr
......@@ -313,10 +297,6 @@ export const getGzqfxglDefaultColumns = () => {
prop: "chipCode",
},
{
label: "培训次数",
prop: "trainCountForName",
},
{
label: "归属单位",
prop: "trainingUnit",
},
......@@ -336,22 +316,10 @@ export const getJyzqAllColumns = () => {
prop: "dna",
},
{
label: "所属单位",
prop: "trainingUnit",
},
{
label: "出生日期",
prop: "birthDate",
},
{
label: "警用犬种",
prop: "speciesId",
},
{
label: "服役期限",
prop: "fyqx",
},
{
label: "疫苗接种",
prop: "ymjz",
},
......@@ -364,10 +332,6 @@ export const getJyzqAllColumns = () => {
prop: "inbreedingCoefficient",
},
{
label: "警犬状态",
prop: "healthStatus",
},
{
label: "犬名",
prop: "name",
},
......@@ -383,6 +347,10 @@ export const getJyzqAllColumns = () => {
label: "犬只来源",
prop: "dogSource",
},
{
label: "归属单位",
prop: "trainingUnit",
},
]
return arr
}
......@@ -398,14 +366,6 @@ export const getJyzqDefaultColumns = () => {
label: "DNA编号",
prop: "dna",
},
{
label: "所属单位",
prop: "trainingUnit",
},
{
label: "警用犬种",
prop: "speciesId",
},
]
return arr
}
......
<template>
<div class="detailContentClass" v-loading="loading">
<div class="contents">
<el-form :model="detailInfo" ref="detailInfoRef" :rules="rules">
<div class="titles" style="width: 145px">个人信息</div>
<div class="divBoxClass">
<el-form-item label="姓名" class="elItemClass" prop="personName">
<el-input
v-model.trim="detailInfo.personName"
:clearable="true"
placeholder="请输入姓名"
></el-input>
</el-form-item>
<el-form-item label="身份证号码" class="elItemClass" prop="idNo">
<el-input
v-model.trim="detailInfo.idNo"
:clearable="true"
placeholder="请输入身份证号码"
:disabled="routeName === 'artisanManageEdit' ? true : false"
@input="idNoChange"
></el-input>
</el-form-item>
<el-form-item
label="性别"
class="elItemClass elItemClass3"
prop="gender"
>
<el-input
v-model="detailInfo.gender"
:disabled="true"
placeholder="请输入身份证号码获取性别"
></el-input>
</el-form-item>
<el-form-item
label="出生日期"
class="elItemClass mr4"
prop="birthDate"
>
<el-input
v-model="detailInfo.birthDate"
:disabled="true"
placeholder="请输入身份证号码获取出生日期"
></el-input>
</el-form-item>
<el-form-item label="毕业院校" class="elItemClass" prop="school">
<el-input
v-model.trim="detailInfo.school"
:clearable="true"
placeholder="请输入毕业院校"
></el-input>
</el-form-item>
<el-form-item
:label="'人员照片' + `(${fileList.length})`"
class="elItemClass elDateClass photoBox"
prop="file1"
>
<el-carousel
trigger="click"
:autoplay="false"
indicator-position="none"
v-if="fileList.length > 0"
@change="photoChange"
>
<el-carousel-item v-for="item in fileList" :key="item.uid">
<div class="imageBox">
<!-- <p class="imageName" :title="item.name">烦烦烦方法</p> -->
<el-image :src="item.url"></el-image>
<p>
<i class="el-icon-delete" @click="delPhoto(item)"></i>
<i
slot="default"
class="el-icon-zoom-in"
@click="fdPhoto(item)"
></i>
</p>
</div>
</el-carousel-item>
</el-carousel>
<p
class="imageName"
v-if="fileList.length > 0"
:title="
fileList[phIndex] ? fileList[phIndex].name : fileList[0].name
"
>
{{
fileList[phIndex] ? fileList[phIndex].name : fileList[0].name
}}
</p>
<el-upload
class="photo"
action="#"
list-type="picture-card"
multiple
accept="image/jpeg,image/jpg,image/png"
:on-change="fileChange2"
:file-list="fileList"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
</el-upload>
</el-form-item>
</div>
<div class="hengLine"></div>
<div class="titles" style="width: 90px">专业信息</div>
<div class="divBoxClass">
<el-form-item
label="归属单位"
class="elItemClass"
prop="gsdwGajgjgdm"
>
<lazy-select-tree-dialog
flagBiaoZhi="allUnit"
:sendId="detailInfo.gsdwGajgjgdm"
:formData="detailInfo"
:currentItem="unitInfo"
@clearSelectData="clearSelectData"
/>
</el-form-item>
<el-form-item class="elItemClass sxjqClass" prop="firstJqxph">
<template slot="label">
<span class="labelNameClass">所带警犬</span>
<span class="yuandianClass"></span>
<span class="numClass">1</span>
</template>
<el-input
v-model.trim="detailInfo.sxjq"
:disabled="true"
class="itemSxjqClass"
></el-input>
<el-input
v-model.trim="detailInfo.firstJqxph"
placeholder="警犬芯片号"
:clearable="true"
class="itemJqxphClass"
></el-input>
<div class="conBtnClass" title="增加所带警犬" @click="addJqxph">
+
</div>
</el-form-item>
<el-form-item
class="elItemClass sxjqClass"
v-for="(item, index) in tableData"
:key="index"
:prop="'otherSdjq' + index"
>
<template slot="label">
<span class="labelNameClass">所带警犬</span>
<span class="yuandianClass"></span>
<span class="numClass">{{ index + 2 }}</span>
</template>
<el-input
v-model.trim="item.xinpianhao"
placeholder="警犬芯片号"
:clearable="true"
class="itemJqxphClass2"
></el-input>
<div
class="conBtnClass"
title="删除所带警犬"
@click="removeJqxph(index)"
>
-
</div>
</el-form-item>
<el-form-item label="带犬年限(年)" class="elItemClass" prop="dqnx">
<el-input-number
v-model="detailInfo.dqnx"
controls-position="right"
placeholder="请选择带犬年限"
:min="0"
></el-input-number>
</el-form-item>
<el-form-item label="归属序列" class="elItemClass" prop="jwjsxl">
<el-select
clearable
placeholder="请选择归属序列"
v-model="detailInfo.jwjsxl"
>
<el-option
v-for="(item, index) in jwjsxlOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="是否警犬技术相关专业"
class="elItemClass"
prop="isjwzy"
>
<el-select
clearable
placeholder="请选择是否警犬技术相关专业"
v-model="detailInfo.isjwzy"
>
<el-option
v-for="(item, index) in shifouOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="从事警犬技术工作时间(年)"
class="elItemClass"
prop="workYears"
>
<el-date-picker
v-model="detailInfo.workYears"
prefix-icon="el-icon-date"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择从事警犬技术工作时间"
>
</el-date-picker>
</el-form-item>
<el-form-item
:label="'审批或者获奖材料' + `(${fileList2.length})`"
class="elItemClass2 elDateClass"
prop="file2"
>
<el-upload
action="#"
list-type="picture-card"
multiple
:on-change="fileChange"
:file-list="fileList2"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<div class="photoList">
<p :title="file.name">{{ file.name }}</p>
<img width="146px" height="146px" :src="file.url2" alt="" />
<span class="el-upload-list__item-actions">
<span
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<i class="el-icon-zoom-in"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<i class="el-icon-download"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file)"
>
<i class="el-icon-delete"></i>
</span>
</span>
</div>
</div>
</el-upload>
</el-form-item>
</div>
<div class="hengLine"></div>
<div class="elBtns">
<el-button size="small" class="btnStylePub" @click="goBack"
>返回</el-button
>
<el-button
type="primary"
size="small"
style="margin-right: 0 !important"
class="btnStylePub"
@click="saveData"
>保存</el-button
>
</div>
</el-form>
</div>
<el-image
style="width: 0px; height: 0px; position: absolute"
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list="[dialogImageUrl]"
ref="elImage"
>
</el-image>
</div>
</template>
<script>
import moment from "moment";
import { getBirthAndSexForSfzh } from "@/utils/mk.js";
import { getJsonDataApi } from "@/utils/getJsonData.js";
import rules from "@/utils/rules2.js";
import {
addArtisan,
editArtisan,
getArtisanDetail,
} from "@/api/menuDataApi/artisanManageApi.js";
import {
fileUrlDetail,
deleteFileByXxzjbh,
} from "@/api/menuDataApi/poDogInfoManageApi.js";
import LazySelectTreeDialog from "@c/lazy_treeCode_components.vue";
export default {
name: "artisanManageEdit",
components: { LazySelectTreeDialog },
data() {
return {
dialogImageUrl: "",
fileList: [],
disabled: false,
fileList2: [],
loading: false,
routeName: "",
detailInfo: {
file1: [],
file2: [],
workYears: "",
dqnx: 0,
personName: "",
idNo: "",
gender: "",
birthDate: "",
isjwzy: "",
school: "",
gsdwGajgjgdm: "",
unitCodeName: "",
jwjsxl: "",
sxjq: 1,
firstJqxph: "",
djsj: "",
},
rules: {
file1: [
{ required: true, validator: rules.jqzpRules, trigger: "blur" },
],
personName: [
{ required: true, message: "请输入姓名", trigger: "blur" },
{ required: true, validator: rules.nameRules, trigger: "blur" },
],
idNo: [
{
required: true,
validator: rules.sfzhRulesRequired,
trigger: "blur",
},
],
gender: [
{
required: true,
message: "请输入身份证号码获取性别",
trigger: "blur",
},
],
dqnx: [
{
required: true,
message: "请输入或选择带犬年限",
trigger: "blur",
},
],
school: [
{
required: true,
message: "请输入毕业院校",
trigger: "blur",
},
],
birthDate: [
{
required: true,
message: "请输入身份证号码获取出生日期",
trigger: "blur",
},
],
isjwzy: [
{
required: true,
message: "请选择是否警犬技术相关专业",
trigger: "change",
},
],
gsdwGajgjgdm: [
{
required: true,
message: "请选择归属单位",
trigger: "change",
},
],
jwjsxl: [
{
required: true,
message: "请选择归属序列",
trigger: "change",
},
],
workYears: [
{
required: true,
message: "请选择从事警犬技术工作时间",
trigger: "change",
},
],
firstJqxph: [
{ required: true, validator: rules.noInputJing, trigger: "blur" },
],
},
unitInfo: {
name: "归属单位:",
id: "gsdwGajgjgdm",
type: "lazyCodeTreeDialog",
value: "",
prop: "checkEmpty",
placeholder: "请选择归属单位",
col: "2",
disabled: false,
codeTree: "CODE_QGUNIT",
codeOptions: [],
},
userInfoJson: {},
shifouOptions: [],
jwjsxlOptions: [],
tableData: [],
phIndex: 0,
};
},
async mounted() {
let userInfo = window.sessionStorage.getItem("userInfo");
if (userInfo) this.userInfoJson = JSON.parse(userInfo);
// 判断是新增/编辑页面
this.routeName = this.$route.name || "";
if (this.routeName === "artisanManageEdit") {
// 编辑
let id = this.$route.query.id || "";
this.getDetail(id);
} else {
// 新增
}
this.shifouOptions = await getJsonDataApi("CODE_YN");
this.jwjsxlOptions = await getJsonDataApi("CODE_JSRYGSXL");
},
methods: {
fileChange2(file, fileList2) {
this.fileList = fileList2;
this.$set(this.detailInfo, "file1", fileList2);
},
photoChange(val) {
this.phIndex = val;
},
async delPhoto(obj) {
let uid = obj.uid;
let index = this.fileList.findIndex((e) => e.uid == uid);
if (obj.xxzjbh) {
let parm = new FormData();
parm.append("xxzjbh", obj.xxzjbh);
let res = await deleteFileByXxzjbh(parm);
if (!res.success) {
this.$message.error("文件删除失败!");
return;
}
}
this.fileList.splice(index, 1);
this.$set(this.detailInfo, "file2", this.fileList);
this.$message.success("删除成功!");
},
fdPhoto(file) {
let url = file.url;
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
},
async handleRemove(file) {
let uid = file.uid;
if (file.xxzjbh) {
let parm = new FormData();
parm.append("xxzjbh", file.xxzjbh);
let res = await deleteFileByXxzjbh(parm);
if (!res.success) {
this.$message.error("文件删除失败!");
return;
}
}
let index = this.fileList2.findIndex((e) => e.uid == uid);
this.fileList2.splice(index, 1);
this.$message.success("删除成功!");
},
handleDownload(file) {
if (file.url) {
const xhr = new XMLHttpRequest();
xhr.open("GET", file.url, true);
xhr.responseType = "blob";
xhr.onload = () => {
if (xhr.status === 200) {
this.saveAs(xhr.response, file.name);
}
};
xhr.send();
} else if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/vnd.ms-excel",
});
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = file.name;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
});
}
},
handlePictureCardPreview(file) {
if (
file.name.indexOf("png") >= 0 ||
file.name.indexOf("jpg") >= 0 ||
file.name.indexOf("jpeg") >= 0
) {
let url = file.url;
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
fileChange(file, fileList2) {
let h = ["png", "jpg", "jpeg"];
this.fileList2 = fileList2.map((e) => {
let index = h.findIndex((j) => e.name.indexOf(j) >= 0);
if (index < 0) {
e.url2 = require("@/assets/img/excel.png");
} else {
e.url2 = e.url;
}
return e;
});
},
addJqxph() {
this.tableData.push({
xinpianhao: "",
});
console.log(222222, this.tableData);
this.detailInfo.sxjq = this.tableData.length + 1;
},
removeJqxph(index) {
this.tableData.splice(index, 1);
this.detailInfo.sxjq = this.tableData.length + 1;
},
clearSelectData() {
this.detailInfo.gsdwGajgjgdm = "";
this.detailInfo.unitCodeName = "";
},
// 身份证号码改变时
idNoChange(val) {
let result = getBirthAndSexForSfzh(val);
this.detailInfo.birthDate = result.birth || "";
this.detailInfo.gender = result.sex || "";
},
getDetail(id) {
let params = {
id,
};
this.loading = true;
getArtisanDetail(params)
.then((res) => {
if (
res.code === 200 &&
res.success &&
res.data &&
res.data.data &&
res.data.data.length
) {
let datas = res.data.data[0];
if (datas.unitNameCode) {
datas.unitCodeName = datas.unitNameCode;
} else {
datas.unitCodeName = "";
}
if (datas.gender === "1") {
datas.gender = "男";
} else {
datas.gender = "女";
}
datas.sxjq = Number(datas.sxjq);
datas.firstJqxph = "";
this.tableData = [];
let jqxphArr =
datas.jqxph && datas.jqxph.length ? datas.jqxph.split("#") : [];
if (jqxphArr && jqxphArr.length === 1) {
datas.firstJqxph = jqxphArr[0];
} else if (jqxphArr && jqxphArr.length > 1) {
jqxphArr.forEach((item, index) => {
if (index > 0) {
this.tableData.push({
xinpianhao: item,
});
} else {
datas.firstJqxph = item;
}
});
}
this.detailInfo = datas;
if (datas.tbStDogFile1) {
let arr = datas.tbStDogFile1.map((e) => {
e.name = e.filename;
e.url = e.zpnr;
return e;
});
this.$set(this.detailInfo, "file1", arr);
this.fileList = arr;
}
if (datas.tbStDogFile2) {
let arr = datas.tbStDogFile2.map((e) => {
e.name = e.filename;
if (e.zpnr) {
e.url = e.zpnr;
e.url2 = e.zpnr;
} else {
e.url2 = require("@/assets/img/excel.png");
}
return e;
});
this.$set(this.detailInfo, "file2", arr);
this.fileList2 = arr;
}
this.loading = false;
return;
}
this.detailInfo = {};
this.loading = false;
this.$message({ message: "查询失败,请稍后再试", type: "warning" });
})
.catch((error) => {
this.detailInfo = {};
this.loading = false;
});
},
saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
const anchor = document.createElement("a");
const body = document.querySelector("body");
anchor.href = window.URL.createObjectURL(blob);
anchor.download = filename;
anchor.style.display = "none";
body.appendChild(anchor);
anchor.click();
body.removeChild(anchor);
window.URL.revokeObjectURL(anchor.href);
}
},
// 保存数据
saveData() {
this.$refs.detailInfoRef.validate((result) => {
if (result) {
// 处理警犬芯片号
let jqxph = this.detailInfo.firstJqxph + "#";
if (this.tableData && this.tableData.length) {
this.tableData.forEach((item) => {
if (item.xinpianhao) {
jqxph = jqxph + item.xinpianhao + "#";
}
});
}
jqxph = jqxph.substr(0, jqxph.length - 1);
let params = {
file1: this.fileList,
file2: this.fileList2,
dqnx: this.detailInfo.dqnx,
personName: this.detailInfo.personName,
idNo: this.detailInfo.idNo,
gender: this.detailInfo.gender === "男" ? "1" : "0",
birthDate: this.detailInfo.birthDate,
isjwzy: this.detailInfo.isjwzy,
school: this.detailInfo.school,
gsdwGajgjgdm: this.detailInfo.unitCodeName,
jwjsxl: this.detailInfo.jwjsxl,
workYears: this.detailInfo.workYears,
sxjq: String(this.detailInfo.sxjq),
jqxph,
};
if (this.routeName === "artisanManageEdit") {
this.editParams(params);
} else {
this.addParams(params);
}
}
});
},
editParams(params) {
this.loading = true;
let ajParams = new FormData();
ajParams.append("id", this.$route.query.xxzjbh);
for (let key in params) {
if (key == "file1") {
params[key].forEach((e) => {
if (e.raw) ajParams.append("file1", e.raw);
});
} else if (key == "file2") {
params[key].forEach((e) => {
if (e.raw) ajParams.append("file2", e.raw);
});
} else {
ajParams.append(key, params[key]);
}
}
editArtisan(ajParams)
.then((res) => {
if (res.code === 200 && res.success) {
this.$message({
message: "保存成功",
type: "success",
duration: 1000,
});
this.loading = false;
this.goBack();
return;
}
this.loading = false;
this.$message({
message: res.message,
type: "warning",
duration: 1000,
});
})
.catch((e) => {
console.log(e);
this.loading = false;
this.$message({
message: "更新失败",
type: "warning",
duration: 1000,
});
});
},
addParams(params) {
this.loading = true;
let ajParams = new FormData();
for (let key in params) {
if (key == "file1") {
params[key].forEach((e) => {
if (e.raw) ajParams.append("file1", e.raw);
});
} else if (key == "file2") {
params[key].forEach((e) => {
if (e.raw) ajParams.append("file2", e.raw);
});
} else {
ajParams.append(key, params[key]);
}
}
addArtisan(ajParams)
.then((res) => {
if (res.code === 200 && res.success) {
this.$message({
message: "保存成功",
type: "success",
duration: 1000,
});
this.loading = false;
this.goBack();
return;
}
this.loading = false;
this.$message({
message: res.message,
type: "warning",
duration: 1000,
});
})
.catch((e) => {
console.log(e);
this.loading = false;
this.$message({
message: "更新失败",
type: "warning",
duration: 1000,
});
});
},
goBack() {
this.$router.push({ name: "artisanManage" });
},
updateSdjqRules(val) {
if (val?.length) {
val.forEach((item, index) => {
this.rules[`otherSdjq${index}`] = [
{
required: true,
validator: (rule, value, callback) => {
let myreg = /[#]+/g;
let curVal = item.xinpianhao || "";
if (!curVal) {
callback(new Error(`请输入警犬芯片号`));
} else if (myreg.test(curVal)) {
callback(new Error("警犬芯片号不能含有#号"));
} else {
callback();
}
},
trigger: "blur",
},
];
});
}
},
},
watch: {
tableData(val) {
this.updateSdjqRules(val);
},
},
};
</script>
<style scoped lang="scss">
@import "../../../assets/styles/detailContent.scss";
.requiredClass {
color: #f56c6c;
}
.sxjqClass {
/deep/ .el-form-item__label {
width: 100%;
text-align: left;
}
/deep/ .el-form-item__label:before {
vertical-align: middle;
}
/deep/ .el-form-item__content {
position: relative;
}
.labelNameClass {
display: inline-block;
vertical-align: middle;
margin-right: 8px;
}
.yuandianClass {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
background: #2c5de5;
vertical-align: middle;
margin-right: 3px;
}
.numClass {
font-family: DIN;
display: inline-block;
color: #2c5de5;
font-size: 14px;
vertical-align: middle;
}
.itemSxjqClass {
width: 32%;
margin-right: 5%;
}
.itemJqxphClass {
width: 50%;
margin-right: 5%;
}
.itemJqxphClass2 {
width: 87%;
margin-right: 5%;
}
.conBtnClass {
display: inline-block;
width: 16px;
height: 16px;
border-radius: 50%;
border: 1px solid #2c5de5;
line-height: 12px;
text-align: center;
color: #2c5de5;
cursor: pointer;
position: absolute;
right: 0;
bottom: 12px;
}
}
</style>
......@@ -21,12 +21,12 @@
/>
</el-form-item>
<el-form-item
label="警务技术序列"
label="归属序列"
class="elItemClass"
>
<el-select
clearable
placeholder="请选择警务技术序列"
placeholder="请选择归属序列"
v-model="formData.jwjsxl"
>
<el-option
......@@ -178,15 +178,16 @@
>
<template slot-scope="scope">
<span v-if="item.prop === 'personName'">{{ scope.row.personName }}</span>
<span v-if="item.prop === 'idNo'">{{ scope.row.idNo }}</span>
<span v-if="item.prop === 'gender'">{{ (scope.row.gender === '1') ? ('男') : (scope.row.gender === '0' ? '女' : '') }}</span>
<span v-if="item.prop === 'birthDate'">{{ scope.row.birthDate }}</span>
<span v-if="item.prop === 'isjwzyForName'">{{ scope.row.isjwzyForName }}</span>
<span v-if="item.prop === 'school'">{{ scope.row.school }}</span>
<span v-if="item.prop === 'gsdwGajgjgdm'">{{ scope.row.gsdwGajgjgdm }}</span>
<span v-if="item.prop === 'jwjsxlForName'">{{ scope.row.jwjsxlForName }}</span>
<span v-if="item.prop === 'sxjq'">{{ scope.row.sxjq ? scope.row.sxjq + ' / 头' : '' }}</span>
<span v-if="item.prop === 'workYears'">{{ scope.row.workYears ? scope.row.workYears + ' / 年' : '' }}</span>
<span v-else-if="item.prop === 'idNo'">{{ scope.row.idNo }}</span>
<span v-else-if="item.prop === 'gender'">{{ (scope.row.gender === '1') ? ('男') : (scope.row.gender === '0' ? '女' : '') }}</span>
<span v-else-if="item.prop === 'birthDate'">{{ scope.row.birthDate }}</span>
<span v-else-if="item.prop === 'isjwzyForName'">{{ scope.row.isjwzyForName }}</span>
<span v-else-if="item.prop === 'school'">{{ scope.row.school }}</span>
<span v-else-if="item.prop === 'gsdwGajgjgdm'">{{ scope.row.gsdwGajgjgdm }}</span>
<span v-else-if="item.prop === 'jwjsxlForName'">{{ scope.row.jwjsxlForName }}</span>
<span v-else-if="item.prop === 'sxjq'">{{ scope.row.sxjq ? scope.row.sxjq + ' / 头' : '' }}</span>
<span v-else-if="item.prop === 'workYears'">{{ scope.row.workYears ? scope.row.workYears + ' / 年' : '' }}</span>
<span v-else>{{ scope.row[item.prop] }}</span>
</template>
</el-table-column>
</template>
......@@ -297,7 +298,7 @@ export default {
},
mounted() {},
async activated() {
this.jwjsxlOptions = await getJsonDataApi("CODE_JWJXXL");
this.jwjsxlOptions = await getJsonDataApi("CODE_JSRYGSXL");
this.shifouOptions = await getJsonDataApi("CODE_YN");
this.shifouOptions.unshift({
id: "",
......@@ -310,7 +311,7 @@ export default {
} else {
this.colPropArr = this.headerSettInfo.defaultColumns;
}
console.log(this.colPropArr)
this.getLists(this.currentPage);
},
methods: {
......@@ -389,6 +390,7 @@ export default {
name: "artisanManageEdit",
query: {
id: row.idNo,
xxzjbh: row.id
},
});
},
......
<template>
<div class="hearder">
<img
class="hearder_one"
src="./img/title.png"
alt=""
/>
<div>
<img
height="70"
class="hearder_one2"
src="@/assets/img/jqlogo.png"
alt=""
/>
<img
height="30"
class="hearder_one"
src="@/assets/img/jqTitle.png"
alt=""
/>
</div>
<div class="hearder_two">
<div class="hearder_two_input">
<el-input
......@@ -15,15 +24,9 @@
<div class="hearder_two_button">检索</div>
</div>
<div class="hearder_three">
<span
class="hearder_three_left"
@click="getSy"
>系统首页</span>
<span class="hearder_three_left" @click="getSy">系统首页</span>
<span class="hearder_three_right">
<img
src="../../assets/img/tb1.png"
alt=""
>
<img src="../../assets/img/tb1.png" alt="" />
</span>
</div>
</div>
......@@ -61,7 +64,11 @@ export default {
display: flex;
justify-content: space-between;
&_one {
margin: 13px 22px;
margin: 13px 22px 13px 0px;
height: 20px;
}
&_one2 {
margin-left: 13px;
}
&_two {
margin: 7px;
......
<template>
<div class="detailContentClass" v-loading="loading">
<div class="contents">
<el-form :model="detailInfo" ref="detailInfoRef" :rules="rules">
<div class="titles" style="width: 90px">工作犬基础信息</div>
<div class="divBoxClass">
<el-form-item label="犬名" class="elItemClass" prop="name">
<el-input
disabled
v-model.trim="detailInfo.name"
:clearable="true"
placeholder="请输入犬名"
></el-input>
</el-form-item>
<el-form-item label="芯片号" class="elItemClass" prop="chipCode">
<el-input
disabled
v-model.trim="detailInfo.chipCode"
:clearable="true"
placeholder="请输入芯片号"
></el-input>
</el-form-item>
<el-form-item label="性别" class="elItemClass3" prop="gender">
<el-select
disabled
clearable
placeholder="请选择性别"
v-model="detailInfo.gender"
>
<el-option
v-for="(item, index) in genderOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="出生日期"
class="elItemClass elDateClass mr4"
prop="birthDate"
>
<el-date-picker
disabled
v-model="detailInfo.birthDate"
prefix-icon="el-icon-date"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择出生日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="品种" class="elItemClass" prop="speciesId">
<el-select
disabled
clearable
placeholder="请选择品种"
v-model="detailInfo.speciesId"
>
<el-option
v-for="(item, index) in jyjqOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="犬只来源" class="elItemClass" prop="dogSource">
<el-select
disabled
clearable
placeholder="请选择使用类别"
v-model="detailInfo.dogSource"
>
<el-option label="部属基地" value="4"></el-option>
<el-option label="省级基地" value="5"></el-option>
<el-option label="民间" value="6"></el-option>
</el-select>
</el-form-item>
<el-form-item label="DNA编号" class="elItemClass">
<el-input
disabled
v-model.trim="detailInfo.dna"
:clearable="true"
placeholder="请输入DNA编号"
></el-input>
</el-form-item>
<el-form-item
:label="'警犬照片' + `(${fileList2.length})`"
class="elItemClass elDateClass photoBox"
prop="file2"
>
<el-carousel
trigger="click"
:autoplay="false"
indicator-position="none"
v-if="fileList2.length > 0"
@change="photoChange"
>
<el-carousel-item v-for="item in fileList2" :key="item.uid">
<div class="imageBox">
<!-- <p class="imageName" :title="item.name">烦烦烦方法</p> -->
<el-image :src="item.url"></el-image>
<p>
<!-- <i class="el-icon-delete" @click="delPhoto(item)"></i> -->
<i
slot="default"
class="el-icon-zoom-in"
@click="fdPhoto(item)"
></i>
</p>
</div>
</el-carousel-item>
</el-carousel>
<p
class="imageName"
v-if="fileList2.length > 0"
:title="
fileList2[phIndex] ? fileList2[phIndex].name : fileList2[0].name
"
>
{{
fileList2[phIndex] ? fileList2[phIndex].name : fileList2[0].name
}}
</p>
<el-upload
disabled
class="photo"
action="#"
list-type="picture-card"
multiple
accept="image/jpeg,image/jpg,image/png"
:on-change="fileChange2"
:file-list="fileList2"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
</el-upload>
</el-form-item>
</div>
<div class="hengLine"></div>
<div class="titles" style="width: 90px">工作犬等级信息</div>
<div class="divBoxClass">
<el-form-item
label="工作犬等级"
class="elItemClass"
prop="trainingLevelId"
>
<el-select
disabled
clearable
placeholder="请选择工作犬等级"
v-model="detailInfo.trainingLevelId"
>
<el-option
v-for="(item, index) in gzqdjOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="评定日期"
class="elItemClass elDateClass"
prop="pdrq"
>
<el-date-picker
disabled
v-model="detailInfo.pdrq"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择评定日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
class="elItemClass sxjqClass"
v-for="(item, index) in workingDogClassificationId"
:key="index"
>
<template slot="label">
<span class="labelNameClass">专业方向</span>
<span class="yuandianClass"></span>
<span class="numClass">{{ index + 1 }}</span>
</template>
<el-input
disabled
v-model.trim="item.fenshu"
placeholder="分数"
:clearable="true"
></el-input>
</el-form-item>
<el-form-item
:label="'其他材料' + `(${fileList.length})`"
class="elItemClass2 elDateClass"
prop="file1"
>
<el-upload
disabled
action="#"
list-type="picture-card"
multiple
:on-change="fileChange"
:file-list="fileList"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<div class="photoList">
<p :title="file.name">{{ file.name }}</p>
<img width="146px" height="146px" :src="file.url2" alt="" />
<span class="el-upload-list__item-actions">
<span
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<i class="el-icon-zoom-in"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<i class="el-icon-download"></i>
</span>
<!-- <span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file)"
>
<i class="el-icon-delete"></i>
</span> -->
</span>
</div>
</div>
</el-upload>
</el-form-item>
</div>
<div class="hengLine"></div>
<div class="titles" style="width: 90px">警犬技术人员信息</div>
<div class="divBoxClass">
<el-form-item
label="身份证号码"
class="elItemClass jssfzhClass"
prop="jsrysfz"
>
<el-input
disabled
v-model.trim="detailInfo.jsrysfz"
:clearable="true"
placeholder="请输入身份证号码"
class="itemSfzh"
></el-input>
</el-form-item>
<el-form-item label="姓名" class="elItemClass" prop="personName">
<el-input
v-model.trim="detailInfo.jsrymc"
:disabled="true"
placeholder="输入身份证号提取名称"
></el-input>
</el-form-item>
<el-form-item
label="归属单位"
class="elItemClass"
prop="gsdwGajgjgdm"
>
<el-input
v-model.trim="detailInfo.trainingUnitName"
:disabled="true"
placeholder="输入身份证号提取归属单位"
></el-input>
</el-form-item>
<el-form-item
label="归属警种"
class="elItemClass"
prop="policeCategory"
>
<el-select
clearable
disabled
placeholder="请选择归属警种"
v-model="detailInfo.policeCategory"
>
<el-option
v-for="(item, index) in gsjzOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div class="hengLine"></div>
<div class="titles" style="width: 182px">警犬训练考核</div>
<div class="divBoxClass">
<el-form-item
label="考核单位"
class="elItemClass"
prop="checkUnitName"
>
<lazy-select-tree-dialog
flagBiaoZhi="allUnit"
:sendId="detailInfo.checkUnitName"
:formData="detailInfo"
:currentItem="unitInfo"
@clearSelectData="clearSelectData"
/>
</el-form-item>
<el-form-item label="主考人" class="elItemClass" prop="checkStaff">
<el-input
v-model.trim="detailInfo.checkStaff"
:clearable="true"
placeholder="请输入主考人"
></el-input>
</el-form-item>
<el-form-item
class="elItemClass sxjqClass"
v-for="(item, index) in kaoHeLists"
:key="index"
:prop="'propKaoHe' + index"
>
<template slot="label">
<span class="labelNameClass">考核科目</span>
<span class="yuandianClass"></span>
<span class="numClass">{{ index + 1 }}</span>
</template>
<el-select
clearable
placeholder="考核科目"
class="itemSxjqClass"
v-model="item.zhuanye"
>
<el-option
v-for="(item, index) in zyfxOptions"
:key="index"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
<el-input
v-model.trim="item.fenshu"
placeholder="分数"
:clearable="true"
class="itemJqxphClass"
></el-input>
<div
class="conBtnClass"
title="增加考核科目"
v-if="index === 0"
@click="addKaoHe"
>
+
</div>
<div
class="conBtnClass"
title="删除考核科目"
v-if="index > 0"
@click="removeKaoHe(index)"
>
-
</div>
</el-form-item>
<el-form-item
label="考核日期"
class="elItemClass elDateClass"
prop="checkDate"
>
<el-date-picker
v-model="detailInfo.checkDate"
type="date"
value-format="yyyy-MM-dd"
align="right"
unlink-panels
>
</el-date-picker>
</el-form-item>
</div>
<div class="elBtns">
<el-button size="small" class="btnStylePub" @click="goBack"
>返回</el-button
>
<el-button
type="warning"
size="small"
class="btnStylePub"
@click="tqsp"
v-if="
userInfoJson.grade != 'B' &&
detailInfo.spstatus != '01' &&
detailInfo.spstatus != '02'
"
>提请审批</el-button
>
<el-button
type="primary"
size="small"
style="margin-right: 0 !important"
class="btnStylePub"
@click="saveData"
>保存</el-button
>
</div>
</el-form>
</div>
<el-image
style="width: 0px; height: 0px; position: absolute"
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list="[dialogImageUrl]"
ref="elImage"
>
</el-image>
</div>
</template>
<script>
import {
extractJobDog,
addJobDog,
editJobDog,
getJobDogDetail,
addSp,
} from "@/api/menuDataApi/jobDogManageApi.js";
import {
fileUrlDetail,
deleteFileByXxzjbh,
} from "@/api/menuDataApi/poDogInfoManageApi.js";
import { getJsonDataApi } from "@/utils/getJsonData.js";
import moment from "moment";
import LazySelectTreeDialog from "@c/lazy_treeCode_components.vue";
export default {
name: "jobDogManageEdit",
components: {
LazySelectTreeDialog,
},
data() {
return {
disabled: false,
dialogImageUrl: "",
phIndex: 0,
gsjzOptions: [],
fileList: [],
jyjqOptions: [],
genderOptions: [],
fileList2: [],
loading: false,
routeName: "",
detailInfo: {
chipCode: "",
name: "",
trainingLevelId: "",
trainingUnit: "",
checkUnitName: "",
unitCodeName: "",
checkStaff: "",
refreshmentKssj: "",
refreshmentJssj: "",
dateArr: [],
trainCount: "",
remark: "",
xxdjryXm: "",
xxdjryGmsfhm: "",
xxdjdwGajgmc: "",
xxdjdwGajgjgdm: "",
djsj: "",
},
workingDogClassificationId: [],
kaoHeLists: [
{
zhuanye: "",
fenshu: "",
},
],
rules: {
trainingUnit: [
{
required: true,
message: "输入芯片号提取归属单位",
trigger: "blur",
},
],
checkUnitName: [
{
required: true,
message: "请选择考核单位",
trigger: "change",
},
],
checkStaff: [
{ required: true, message: "请输入主考人", trigger: "blur" },
],
dateArr: [
{
type: "array",
required: true,
message: "请选择培训日期",
trigger: "change",
},
],
trainCount: [
{
required: true,
message: "请选择培训次数",
trigger: "change",
},
],
xxdjryXm: [
{ required: true, message: "采集人姓名必填", trigger: "blur" },
],
xxdjryGmsfhm: [
{ required: true, message: "采集人身份证号码必填", trigger: "blur" },
],
xxdjdwGajgmc: [
{ required: true, message: "采集人单位名称必填", trigger: "blur" },
],
xxdjdwGajgjgdm: [
{ required: true, message: "采集人单位代码必填", trigger: "blur" },
],
djsj: [{ required: true, message: "采集时间必填", trigger: "blur" }],
},
unitInfo: {
name: "考核单位:",
id: "checkUnitName",
type: "lazyCodeTreeDialog",
value: "",
prop: "checkEmpty",
placeholder: "请选择考核单位",
col: "2",
disabled: false,
codeTree: "CODE_QGUNIT",
codeOptions: [],
},
userInfoJson: {},
gzqdjOptions: [],
trainCountOption: [],
zyfxOptions: [],
};
},
async mounted() {
let userInfo = window.sessionStorage.getItem("userInfo");
if (userInfo) this.userInfoJson = JSON.parse(userInfo);
// 判断是新增/编辑页面
this.routeName = this.$route.name || "";
if (this.routeName === "jobDogManageEdit") {
// 编辑
let xxzjbh = this.$route.query.xxzjbh || "";
this.getDetail(xxzjbh);
} else {
// 新增
this.detailInfo.xxdjryXm = this.userInfoJson.userName || "";
this.detailInfo.xxdjryGmsfhm = this.userInfoJson.identitycard || "";
this.detailInfo.xxdjdwGajgmc = this.userInfoJson.unitname || "";
this.detailInfo.xxdjdwGajgjgdm = this.userInfoJson.unitcode || "";
this.detailInfo.djsj = moment().format("YYYY-MM-DD HH:mm:ss");
}
this.genderOptions = await getJsonDataApi("CODE_DOG_GENDER");
this.gzqdjOptions = await getJsonDataApi("CODE_GZQDJ");
this.trainCountOption = await getJsonDataApi("CODE_TRAINCOUNT");
this.jyjqOptions = await getJsonDataApi("CODE_SPECIES");
this.zyfxOptions = await getJsonDataApi("CODE_BASEDATA");
this.gsjzOptions = await getJsonDataApi("CODE_POLICECATEGORY");
},
methods: {
tqsp() {
let self = this;
var spType;
if (this.userInfoJson) {
if (this.userInfoJson.grade == "S") {
spType = "03";
} else if (this.userInfoJson.grade == "D") {
spType = "02";
} else if (this.userInfoJson.grade == "X") {
spType = "01";
}
}
addSp({
orderXxzjbh: this.detailInfo.orderXxzjbh,
fxDogXxzjbh: this.$route.query.xxzjbh,
glxxzjbhSource: "01",
spType: spType,
}).then((res) => {
if (res.success) {
self.$alert("提请审批通过", "提示", {
confirmButtonText: "确定",
callback: (action) => {
window.location.reload();
window.open("about:blank", "_top").close();
self.$router.go(-1); //返回上一层
},
});
}
});
},
handlePictureCardPreview(file) {
if (
file.name.indexOf("png") >= 0 ||
file.name.indexOf("jpg") >= 0 ||
file.name.indexOf("jpeg") >= 0
) {
let url = file.url;
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
const anchor = document.createElement("a");
const body = document.querySelector("body");
anchor.href = window.URL.createObjectURL(blob);
anchor.download = filename;
anchor.style.display = "none";
body.appendChild(anchor);
anchor.click();
body.removeChild(anchor);
window.URL.revokeObjectURL(anchor.href);
}
},
handleDownload(file) {
if (file.url) {
const xhr = new XMLHttpRequest();
xhr.open("GET", file.url, true);
xhr.responseType = "blob";
xhr.onload = () => {
if (xhr.status === 200) {
this.saveAs(xhr.response, file.name);
}
};
xhr.send();
} else if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/vnd.ms-excel",
});
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = file.name;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
});
}
},
fdPhoto(file) {
let url = file.url;
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
},
photoChange(val) {
this.phIndex = val;
},
resetPerNameAndUnitName() {
this.detailInfo.personName = "";
this.detailInfo.gsdwGajgjgdm = "";
},
fileChange(file, fileList) {
let h = ["png", "jpg", "jpeg"];
this.fileList = fileList.map((e) => {
let index = h.findIndex((j) => e.name.indexOf(j) >= 0);
if (index < 0) {
e.url2 = require("@/assets/img/excel.png");
} else {
e.url2 = e.url;
}
return e;
});
},
fileChange2(file, fileList) {
this.fileList2 = fileList;
this.$set(this.detailInfo, "file2", fileList);
},
resetRelationField() {
this.detailInfo.name = "";
this.detailInfo.trainingLevelId = "";
this.detailInfo.trainingUnit = "";
},
goBack() {
this.$router.push({ name: "jobDogManage" });
},
clearSelectData() {
this.detailInfo.checkUnitName = "";
this.detailInfo.unitCodeName = "";
},
handleTiQu(flag) {
this.$refs.detailInfoRef.validateField("chipCode", (result) => {
if (!result) {
let params = {
chipCode: this.detailInfo.chipCode,
};
extractJobDog(params)
.then((res) => {
if (
res.code === 200 &&
res.success &&
res.data &&
res.data.data
) {
let tqDatas = res.data.data;
this.detailInfo.name = tqDatas.name || "";
this.detailInfo.trainingLevelId = tqDatas.trainingLevelId || "";
this.detailInfo.trainingUnit = tqDatas.trainingUnit || "";
if (flag === "click") {
this.$message({
message: "提取成功",
type: "success",
duration: 3000,
});
}
return;
}
if (flag === "click") {
this.$message({
message: res.message,
type: "warning",
duration: 3000,
});
}
this.resetRelationField();
})
.catch(() => {
if (flag === "click") {
this.$message({
message: "提取失败",
type: "warning",
duration: 3000,
});
}
this.resetRelationField();
});
}
});
},
addKaoHe() {
this.kaoHeLists.push({
zhuanye: "",
fenshu: "",
});
},
removeKaoHe(index) {
this.kaoHeLists.splice(index, 1);
},
updateKaoHeRules(val) {
if (val?.length) {
val.forEach((item, index) => {
this.rules[`propKaoHe${index}`] = [
{
required: true,
validator: (rule, value, callback) => {
let myreg = /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/;
let zhuanye = item.zhuanye || "";
let fenshu = item.fenshu || "";
if (!zhuanye) {
callback(new Error(`请选择考核科目`));
} else if (!fenshu) {
callback(new Error(`请输入分数`));
} else if (!myreg.test(fenshu)) {
callback(new Error(`分数输入有误,0-100之间且小数位最多2位`));
} else {
callback();
}
},
trigger: "change",
},
];
});
}
},
getDetail(xxzjbh) {
let params = {
xxzjbh,
};
this.loading = true;
getJobDogDetail(params)
.then((res) => {
if (res.code === 200 && res.success && res.data && res.data.data) {
let datas = res.data.data;
if (datas.trainingUnitName)
datas.trainingUnit = datas.trainingUnitName;
if (datas.checkUnit) {
datas.unitCodeName = datas.checkUnit;
} else {
datas.unitCodeName = "";
}
// 处理培训日期
datas.dateArr = [];
if (datas.refreshmentKssj && datas.refreshmentJssj) {
datas.dateArr = [datas.refreshmentKssj, datas.refreshmentJssj];
}
// 处理专业方向和分数
let workArr = [];
let scoreArr = [];
let workDog = [];
if (datas.trainSubject) {
workArr = datas.trainSubject.split("#") || [];
}
if (datas.trainSubjectGrade) {
scoreArr = datas.trainSubjectGrade.split("#") || [];
}
if (datas.tbStDogFile2) {
// fileUrlDetail({xxzjbh: '82454b67bb984470afcdb5bd547280e0'}).then(res => {
// console.log(222,res)
// })
let arr = datas.tbStDogFile2.map((e) => {
e.name = e.filename;
e.url = e.zpnr;
return e;
});
this.$set(this.detailInfo, "file2", arr);
this.fileList2 = arr;
}
if (datas.tbStDogFile1) {
let arr = datas.tbStDogFile1.map((e) => {
e.name = e.filename;
if (e.zpnr) {
e.url = e.zpnr;
e.url2 = e.zpnr;
} else {
e.url2 = require("@/assets/img/excel.png");
}
return e;
});
this.$set(this.detailInfo, "file1", arr);
this.fileList = arr;
}
if (datas.workingDogClassificationId) {
workDog = datas.workingDogClassificationId.split("#") || [];
if (workDog && workDog.length > 0) workDog.pop();
workDog.forEach((workItem, workIndex) => {
this.workingDogClassificationId.push({
zhuanye: "",
fenshu: "",
});
this.workingDogClassificationId[workIndex].fenshu = workItem;
});
}
if (
workArr &&
scoreArr &&
workArr.length &&
scoreArr.length &&
workArr.length === scoreArr.length
) {
for (let i = 0; i < workArr.length - 1; i++) {
this.kaoHeLists.push({
zhuanye: "",
fenshu: "",
});
}
workArr.forEach((workItem, workIndex) => {
this.kaoHeLists[workIndex].zhuanye = workItem;
});
scoreArr.forEach((scoreItem, scoreIndex) => {
this.kaoHeLists[scoreIndex].fenshu = scoreItem;
});
}
this.detailInfo = datas;
this.loading = false;
return;
}
this.detailInfo = {};
this.loading = false;
this.$message({ message: "查询失败,请稍后再试", type: "warning" });
})
.catch((error) => {
this.detailInfo = {};
this.loading = false;
});
},
saveData() {
this.$refs.detailInfoRef.validate((result) => {
if (result) {
// 处理专业方向和分数
let trainSubject = "";
let trainSubjectGrade = "";
this.kaoHeLists.forEach((item) => {
if (item.zhuanye) {
trainSubject = trainSubject + item.zhuanye + "#";
}
if (item.fenshu) {
trainSubjectGrade = trainSubjectGrade + item.fenshu + "#";
}
});
if (trainSubject) {
trainSubject = trainSubject.substr(0, trainSubject.length - 1);
}
if (trainSubjectGrade) {
trainSubjectGrade = trainSubjectGrade.substr(
0,
trainSubjectGrade.length - 1
);
}
let params = {
chipCode: this.detailInfo.chipCode,
checkUnit: this.detailInfo.unitCodeName,
checkStaff: this.detailInfo.checkStaff,
refreshmentKssj: this.detailInfo.dateArr[0],
refreshmentJssj: this.detailInfo.dateArr[1],
trainCount: this.detailInfo.trainCount,
trainSubject,
trainSubjectGrade,
remark: this.detailInfo.remark,
xxdjryXm: this.detailInfo.xxdjryXm,
xxdjryGmsfhm: this.detailInfo.xxdjryGmsfhm,
xxdjdwGajgmc: this.detailInfo.xxdjdwGajgmc,
xxdjdwGajgjgdm: this.detailInfo.xxdjdwGajgjgdm,
checkDate: this.detailInfo.checkDate,
djsj: this.detailInfo.djsj,
};
if (this.routeName === "jobDogManageEdit") {
this.editParams(params);
} else {
this.addParams(params);
}
}
});
},
editParams(params) {
let obj = {
xxzjbh: this.$route.query.xxzjbh,
checkUnit: params.checkUnit, //考核单位
checkStaff: params.checkStaff, //考核人员
checkDate: params.checkDate, //考核日期
trainSubject: params.trainSubject, //培训科目(多个以#号连接)
trainSubjectGrade: params.trainSubjectGrade, //对应分数(多个以#连接)
};
this.loading = true;
editJobDog(obj)
.then((res) => {
if (res.code === 200 && res.success) {
this.$message({
message: "保存成功",
type: "success",
duration: 1000,
});
this.loading = false;
this.goBack();
return;
}
this.loading = false;
this.$message({
message: res.message,
type: "warning",
duration: 1000,
});
})
.catch((e) => {
console.log(e);
this.loading = false;
this.$message({
message: "更新失败",
type: "warning",
duration: 1000,
});
});
},
addParams(params) {
this.loading = true;
addJobDog(params)
.then((res) => {
if (res.code === 200 && res.success) {
this.$message({
message: "保存成功",
type: "success",
duration: 1000,
});
this.loading = false;
this.goBack();
return;
}
this.loading = false;
this.$message({
message: res.message,
type: "warning",
duration: 1000,
});
})
.catch((e) => {
console.log(e);
this.loading = false;
this.$message({
message: "更新失败",
type: "warning",
duration: 1000,
});
});
},
},
watch: {
kaoHeLists: {
deep: true,
immediate: true,
handler(val) {
this.updateKaoHeRules(val);
},
},
},
};
</script>
<style scoped lang="scss">
@import "../../../assets/styles/detailContent.scss";
/deep/ .el-upload--picture-card {
display: none !important;
}
.jssfzhClass {
/deep/ .el-form-item__label {
width: 100%;
text-align: left;
}
.itemSfzh {
width: calc(100% - 66px);
margin-right: 10px;
}
}
.sxjqClass {
/deep/ .el-form-item__label {
width: 100%;
text-align: left;
}
/deep/ .el-form-item__label:before {
vertical-align: middle;
}
/deep/ .el-form-item__content {
position: relative;
}
.labelNameClass {
display: inline-block;
vertical-align: middle;
margin-right: 8px;
}
.yuandianClass {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
background: #2c5de5;
vertical-align: middle;
margin-right: 3px;
}
.numClass {
font-family: DIN;
display: inline-block;
color: #2c5de5;
font-size: 14px;
vertical-align: middle;
}
.itemSxjqClass {
width: 41% !important;
margin-right: 5%;
}
.itemJqxphClass {
width: 41%;
margin-right: 5%;
}
.itemJqxphClass2 {
width: 87%;
margin-right: 5%;
}
.conBtnClass {
display: inline-block;
width: 16px;
height: 16px;
border-radius: 50%;
border: 1px solid #2c5de5;
line-height: 12px;
text-align: center;
color: #2c5de5;
cursor: pointer;
position: absolute;
right: 0;
bottom: 12px;
}
}
</style>
<template>
<div class="listContentClass">
<div class="contents">
<div
class="titles"
style="width: 72px;"
>查询条件</div>
<div class="titles" style="width: 72px">查询条件</div>
<el-form
:model="formData"
ref="formDataRef"
:inline="true"
label-width="100px"
>
<el-form-item
label="芯片号"
class="elItemClass"
>
<el-form-item label="芯片号" class="elItemClass">
<el-input
v-model="formData.chipCode"
:clearable="true"
placeholder="请输入芯片号"
></el-input>
</el-form-item>
<el-form-item
label="警犬名称"
class="elItemClass"
>
<el-form-item label="警犬名称" class="elItemClass">
<el-input
v-model="formData.name"
:clearable="true"
placeholder="请输入警犬名称"
></el-input>
</el-form-item>
<el-form-item
label="归属单位"
class="elItemClass"
>
<el-form-item label="归属单位" class="elItemClass">
<lazy-select-tree-dialog
:sendId="formData.trainingUnit"
:formData="formData"
:currentItem="unitInfo"
/>
</el-form-item>
<el-form-item
label="培训日期"
class="elItemClass elDateClass"
>
<el-form-item label="考核日期" class="elItemClass elDateClass">
<el-date-picker
v-model="formData.pxrq"
type="date"
......@@ -52,6 +38,17 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="审批状态" class="elItemClass">
<el-select
v-model="formData.spstatus"
:clearable="true"
placeholder="请选择审批状态"
>
<el-option label="审批中" value="01"></el-option>
<el-option label="通过" value="02"></el-option>
<el-option label="未通过" value="03"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="queryBtnsClass">
<el-button
......@@ -73,7 +70,7 @@
<el-button
size="small"
@click="resetForm"
style="margin-right: 0 !important;"
style="margin-right: 0 !important"
class="btnStylePub"
>
重置
......@@ -84,36 +81,41 @@
<div class="resultClass spaceBetween">
<div class="leftC">
<div
class="titles"
style="display: inline-block;width: 72px;"
>查询结果</div>
<span class="infoClass">共有 <span class="numColor">{{ total }}</span> 条查询结果,共 <span class="numColor">{{ Math.ceil(total / limit) }}</span> 页;</span>
<div class="titles" style="display: inline-block; width: 72px">
查询结果
</div>
<span class="infoClass"
>共有 <span class="numColor">{{ total }}</span> 条查询结果,共
<span class="numColor">{{ Math.ceil(total / limit) }}</span>
页;</span
>
</div>
<div class="rightC">
<el-button
<!-- <el-button
icon="el-icon-plus"
size="small"
type="primary"
plain
class="btnStylePub btnStyle1"
@click="addData"
>新增</el-button>
>新增</el-button> -->
<el-button
size="small"
icon="el-icon-plus"
type="warning"
class="btnStylePub btnStyle2"
@click="batchAdd"
>批量新增</el-button>
>批量新增</el-button
>
<el-button
size="small"
icon="el-icon-upload2"
style="margin-right: 0 !important;"
style="margin-right: 0 !important"
type="primary"
class="btnStylePub btnStyle3"
@click="exportData"
>导出</el-button>
>导出</el-button
>
</div>
</div>
......@@ -128,17 +130,14 @@
size="small"
class="elTableClass"
>
<el-table-column
align="left"
label="操作"
width="100"
>
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<div>
<el-button
type="text"
size="small"
@click="editData(scope.row)"
v-if="scope.row.spstatus != '01' && scope.row.spstatus != '02'"
>
补采
</el-button>
......@@ -146,7 +145,8 @@
type="text"
size="small"
@click="deleteData(scope.row)"
>删除
v-if="scope.row.spstatus != '01' && scope.row.spstatus != '02'"
>删除
</el-button>
</div>
</template>
......@@ -161,15 +161,38 @@
>
<template slot-scope="scope">
<span v-if="item.prop === 'name'">{{ scope.row.name }}</span>
<span v-if="item.prop === 'chipCode'">{{ scope.row.chipCode }}</span>
<span v-if="item.prop === 'trainingLevelIdForName'">{{ scope.row.trainingLevelIdForName }}</span>
<span v-if="item.prop === 'trainCountForName'">{{ scope.row.trainCountForName }}</span>
<span v-if="item.prop === 'trainingUnit'">{{ scope.row.trainingUnitName }}</span>
<span v-if="item.prop === 'checkUnit'">{{ scope.row.checkUnitName }}</span>
<span v-if="item.prop === 'pxrq'">{{ (scope.row.refreshmentKssj && scope.row.refreshmentJssj) ? (scope.row.refreshmentKssj + '&nbsp;&nbsp;至&nbsp;&nbsp;' + scope.row.refreshmentJssj) : '' }}</span>
<span v-if="item.prop === 'checkStaff'">{{ scope.row.checkStaff }}</span>
<span v-if="item.prop === 'trainSubjectForName'">{{ scope.row.trainSubjectForName }}</span>
<span v-if="item.prop === 'remark'">{{ scope.row.remark }}</span>
<span v-else-if="item.prop === 'chipCode'">{{
scope.row.chipCode
}}</span>
<span v-else-if="item.prop === 'trainingLevelIdForName'">{{
scope.row.trainingLevelIdForName
}}</span>
<span v-else-if="item.prop === 'trainCountForName'">{{
scope.row.trainCountForName
}}</span>
<span v-else-if="item.prop === 'trainingUnit'">{{
scope.row.trainingUnitName
}}</span>
<span v-else-if="item.prop === 'checkUnit'">{{
scope.row.checkUnitName
}}</span>
<span v-else-if="item.prop === 'pxrq'">{{
scope.row.refreshmentKssj && scope.row.refreshmentJssj
? scope.row.refreshmentKssj +
"&nbsp;&nbsp;至&nbsp;&nbsp;" +
scope.row.refreshmentJssj
: ""
}}</span>
<span v-else-if="item.prop === 'checkStaff'">{{
scope.row.checkStaff
}}</span>
<span v-else-if="item.prop === 'trainSubjectForName'">{{
scope.row.trainSubjectForName
}}</span>
<span v-else-if="item.prop === 'remark'">{{
scope.row.remark
}}</span>
<span v-else>{{ scope.row[item.prop] }}</span>
</template>
</el-table-column>
</template>
......@@ -227,6 +250,7 @@ export default {
name: "",
trainingUnit: "",
pxrq: "",
spstatus: "",
},
tableLoading: false,
......@@ -291,6 +315,7 @@ export default {
this.formData.name = "";
this.formData.pxrq = "";
this.formData.trainingUnit = "";
this.formData.spstatus = "";
this.getLists(1);
},
......@@ -304,18 +329,12 @@ export default {
name: this.formData.name,
pxrq: this.formData.pxrq,
trainingUnit: this.formData.trainingUnit,
spstatus: this.formData.spstatus,
};
getJobDogList(params)
.then((res) => {
if (
res.code === 200 &&
res.success &&
res.data &&
res.data.data &&
res.data.data.records &&
res.data.data.records.length
) {
let datas = res.data.data.records;
if (res.code === 200 && res.success) {
let datas = res.data.data;
datas.forEach((item) => {
// 处理工作犬等级
......@@ -351,7 +370,7 @@ export default {
});
this.tableData = datas;
this.total = res.data.data.total;
this.total = res.data.total;
this.tableLoading = false;
return;
}
......@@ -373,7 +392,7 @@ export default {
this.$router.push({
name: "jobDogManageEdit",
query: {
chipCode: row.chipCode,
xxzjbh: row.xxzjbh,
},
});
},
......@@ -385,7 +404,7 @@ export default {
})
.then(() => {
let params = {
chipCode: row.chipCode,
xxzjbh: row.xxzjbh,
};
deleteJobDog(params)
.then((res) => {
......@@ -428,6 +447,7 @@ export default {
name: this.formData.name,
pxrq: this.formData.pxrq,
trainingUnit: this.formData.trainingUnit,
spstatus: this.formData.spstatus,
};
axios
......
<template>
<div id="asjxq">
<div class="header">
<img src="@/assets/img/jh.png" style="margin-right: 16px" />
复训审批
</div>
<div class="content-wrap" id="scroolwrap" @scroll="handleScroll($event)">
<div class="dt_menu">
<el-steps
direction="vertical"
finish-status="wait"
space="100px"
:active="activeIndex"
>
<el-step
v-for="(item, index) in menuList"
:key="item.id"
finish-status="wait"
@click.native="handleNav(index, item.id)"
>
<span slot="icon" v-if="index == activeIndex">
<img src="@/assets/img/jt.png" alt="" />
</span>
<span
slot="title"
:class="index == activeIndex ? 'activeColor' : 'activeColor1'"
>
{{ item.title }}
</span>
</el-step>
</el-steps>
</div>
<div
class="wrap-shadow"
style="position: relative"
:id="item2.id"
v-for="item2 in asjxx"
:key="item2.moduleName"
>
<div class="title">
<img src="@/assets/img/ajdetail5.png" style="margin: 0 12px" />{{
item2.moduleName
}}
</div>
<div class="line" v-show="isSp">
<div class="list-item">
<div
v-for="(item, index) in item2.data"
:key="index"
:class="'list line' + item.col"
>
<span class="zd-name" v-html="item.title + ':'"></span>
<span
class="zd-value"
v-if="
item.id == 'workingDogClassificationId' ||
item.id == 'trainSubjectStr#trainSubjectGrade'
"
v-html="strReplace(item.id, detailObj)"
></span>
<el-upload
v-else-if="
item.id == 'tbStDogFile1' || item.id == 'tbStDogFile2'
"
disabled
action="#"
list-type="picture-card"
multiple
:file-list="detailObj[item.id]"
:auto-upload="false"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<div class="photoList">
<p :title="file.name">{{ file.name }}</p>
<img width="146px" height="146px" :src="file.url2" alt="" />
<span class="el-upload-list__item-actions">
<span
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<i class="el-icon-zoom-in"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<i class="el-icon-download"></i>
</span>
</span>
</div>
</div>
</el-upload>
<!-- tbStDogFile1 -->
<span class="zd-value" v-else v-html="detailObj[item.id]"></span>
</div>
</div>
</div>
</div>
<div class="wrap-shadow" style="padding-right: 0px" id="ajspgc">
<div class="title">
<img src="@/assets/img/ajdetail6.png" style="margin: 0 12px" />
<span>审批过程</span>
</div>
<!-- <img src="@/assets/img/1111.png"
style="width:1360px"> -->
<div class="timeLine_wrap" style="flex-wrap: wrap">
<div
class="itemLine"
v-for="item in laspxqtableData2"
:key="item.spsj"
>
<div class="time">{{ item.spsj }}</div>
<div class="line">
<div class="quan"></div>
<div class="xian"></div>
</div>
<div class="timeTitle">{{ item.spType }}</div>
<div class="person">
{{ item.sprXm + " | " + item.sprLxdh + " | " + item.spdwGajgmc }}
</div>
<div class="time_content">{{ item.spyjJyqk }}</div>
</div>
</div>
</div>
<div class="wrap-shadow" id="yhxx" style="padding-top: 10px">
<el-form
label-position="right"
label-width="140px"
ref="queryForm"
:model="formD"
:rules="yhxxRules"
>
<div class="zdyLine">
<el-form-item
:label="item.name"
v-for="item in propQueryField"
:key="item.id"
:prop="item.id"
v-show="!item.hidden"
:class="'demo-input-suffix zdycol' + item.col"
>
<!--<div class="zdName">{{item.name}}</div>-->
<!--输入框-->
<el-input
clearable
:placeholder="item.placeholder"
v-model="formD[item.id]"
v-if="item.type == 'text' && item.id != 'spsj'"
:disabled="item.disabled"
>
</el-input>
<el-input
clearable
:placeholder="item.placeholder"
v-model="spsj"
v-else-if="item.type == 'text' && item.id == 'spsj'"
:disabled="item.disabled"
>
</el-input>
<!--文本域-->
<el-input
type="textarea"
autosize
resize="none"
:rows="3"
style="height: 60px !important"
:placeholder="item.placeholder"
v-model="formD[item.id]"
v-else-if="item.type == 'textarea'"
>
</el-input>
</el-form-item>
</div>
</el-form>
</div>
<div
class="bottomBtn"
id="spbtn"
style="display: flex; justify-content: center; padding: 20px 0"
>
<el-button type="primary" style="margin-right: 20px" @click="toSp('1')"
>审批通过
</el-button>
<el-button type="danger" @click="toSp('0')">审批退回 </el-button>
</div>
<!--数据检测-->
<el-dialog
:visible.sync="dialogVisible"
:append-to-body="false"
:close-on-click-modal="false"
custom-class="dataCheckDialogClass"
width="900px"
>
<div slot="title" class="headerContend">
<div class="text-ing">
<p class="zzjc">{{ dialogTitleContent }}</p>
</div>
<div class="btn-group">
<button
type="button"
class="toggle-timer"
name="toggle-timer"
@click="sjjc"
style=""
>
重新检测
</button>
<button
type="button"
class="finish"
name="finish"
style=""
@click="dialogVisible = !dialogVisible"
>
完成
</button>
</div>
</div>
<div style="height: 490px; padding: 0px 15px">
<el-scrollbar ref="sjjcScrollbar" style="height: 100%">
<el-collapse v-model="activeCollapseNames">
<div
v-for="(collItem, collIndex) in checkList.filter(
(chickItem) => {
return chickItem.type.indexOf(spType) >= 0;
}
)"
:key="collItem.name"
>
<el-collapse-item
v-if="collItem.type.indexOf(spType) >= 0"
:ref="'sjjcScrollbar' + collIndex"
:name="collItem.name"
>
<template slot="title">
<span class="collapseRowTag">{{ collIndex + 1 }}</span
>{{ collItem.currentCheck }}
<div
style="flex: 10; justify-content: flex-end; display: flex"
v-if="collItem.status != 'wait'"
>
<span
style="color: #fff; border-radius: 12px"
:style="{
marginRight: '20px',
background:
collItem.status == 'success'
? '#67c23a'
: '#ff754f',
height: '24px',
lineHeight: '24px',
textAlign: 'center',
width: '50px',
}"
>{{
collItem.status == "success" ? "合格" : "缺失"
}}</span
>
</div>
</template>
<div style="width: 100%; padding: 10px 10px 10px 50px">
<el-steps
:active="1"
:space="
collItem.children.length > 2
? collItem.children.length > 6
? '20%'
: ''
: '20%'
"
>
<div
v-for="(stepItem, stepIndex) in collItem.children"
:key="stepIndex"
>
<el-step
v-if="stepItem.type.indexOf(spType) >= 0"
:title="stepItem.name"
:status="stepItem.status"
:icon="stepItem.icon"
style="min-width: 110px"
></el-step>
<div
v-if="collItem.errorShowData"
style="
width: 0px;
height: 0px;
display: inline-block;
background: red;
position: relative;
"
>
<div
style="
position: absolute;
top: -60px;
left: 20px;
width: 600px;
max-height: 140px;
overflow-y: auto;
"
v-html="collItem.errorShowData"
></div>
</div>
</div>
</el-steps>
</div>
</el-collapse-item>
</div>
</el-collapse>
</el-scrollbar>
</div>
<span slot="footer" class="dialog-footer"> </span>
</el-dialog>
</div>
<div
class="prive_picture"
v-if="filePreviewFlag"
@click="closefilePreview"
v-loading="loadingpic"
>
<el-image
class="picture"
:src="filePreview"
:style="{
transform: 'rotate(' + deg + 'deg)' + 'scale(' + multiples + ')',
}"
>
</el-image>
<section class="btn">
<section class="btnchild">
<i class="el-icon-zoom-out" @click="toBIgChange('min')"></i>
<i class="el-icon-zoom-in" @click="toBIgChange('max')"></i>
<i class="el-image-viewer__actions__divider"></i>
<i
class="el-icon-c-scale-to-original"
@click="toBIgChange('all')"
></i>
<i class="el-image-viewer__actions__divider"></i>
<i class="el-icon-refresh-left" @click="toBIgChange('left')"></i>
<i class="el-icon-refresh-right" @click="toBIgChange('right')"></i>
</section>
</section>
</div>
<el-image
style="width: 0px; height: 0px; position: absolute"
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list="[dialogImageUrl]"
ref="elImage"
>
</el-image>
</div>
</template>
<script>
import Http from "@/utils/axiosHttp.js";
import url from "@/api/base";
/*案件详情*/
import {
ajxqHeader,
ajxqHeaderIcon,
ajxqURL,
lazczjspURL,
lazczjspForm,
ajjbxxForm,
ajjbxxURL,
barForm,
barURL,
fzxyrForm,
fzxyrURL,
bhrForm,
bhrURL,
/*立案审批详情*/
laspxqForm,
laspxqURL,
flwsListURL,
/*侦查终结审批详情*/
zczjspxqForm,
} from "@/utils/params2";
import {
extractJobDog,
addJobDog,
editJobDog,
getJobDogDetail,
addSp,
} from "@/api/menuDataApi/jobDogManageApi.js";
import {
fileUrlDetail,
deleteFileByXxzjbh,
} from "@/api/menuDataApi/poDogInfoManageApi.js";
import $ from "jquery";
import guide from "@/utils/guide";
export default {
name: "index",
data() {
return {
dialogImageUrl: "",
disabled: false,
detailObj: {},
deg: 0,
multiples: 1,
loadingpic: false,
fzxyrtableLoading: false,
bhrtableLoading: false,
activeStep: 0,
isSp: true,
filePreviewFlag: false,
filePreview: "",
menuList: [
{ title: "工作犬基本信息", id: "#jbxx" },
{ title: "工作犬等级信息", id: "#djxx" },
{ title: "警犬技术人员信息", id: "#ryxx" },
{ title: "警犬训练考核", id: "#xlkh" },
{ title: "审批过程", id: "#ajspgc" },
],
leftMenuActiveIndex: "0",
laspxqFormPage: 1,
laspxqFormRows: 5,
zczjspxqFormPage: 1,
zczjspxqFormRows: 5,
laspxqtableData2: [],
caseFileList: [],
caseFileList2: [],
caseFileList3: [],
caseFileList4: [],
laspxqTotal: 0,
zczjspxqtableData2: [
{
asjbh: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
asjbh: "2016-05-04",
name: "王小虎",
address: "上海市普陀区金沙江路 1517 弄",
},
],
zczjspxqTotal: 0,
barTotal: 0,
barxxtableData2: [], //报案人信息
fzxyrForm: fzxyrForm,
fzxyrtableData2: [],
fzxyrTotal: 0,
formD: lazczjspForm,
ajxxFrom: ajjbxxForm,
barForm: barForm,
/*被害人*/
bhrForm: bhrForm,
bhrtableData2: [],
bhrTotal: 0,
/*立案侦查终结详情*/
laspxqForm: laspxqForm,
zczjspxqForm: zczjspxqForm,
asjbh: "",
spType: "",
yhxxRules: {
spyjJyqk: {
required: true,
message: "请输入审批意见",
trigger: "blur",
},
},
spsj: "",
propQueryField: [
{
name: "公安机关机构代码",
id: "unitcode",
type: "text",
value: "",
placeholder: "",
disabled: true,
col: "3",
},
{
name: "公安机关名称",
id: "unitname",
type: "text",
value: "",
placeholder: "",
disabled: true,
col: "3",
},
{
name: "姓名",
id: "trueName",
type: "text",
value: "",
placeholder: "",
disabled: true,
col: "3",
},
{
name: "审批时间",
id: "spsj",
type: "text",
value: "",
placeholder: "",
disabled: true,
col: "3",
},
{
name: "联系电话",
id: "telephone",
type: "text",
value: "",
placeholder: "",
disabled: true,
col: "3",
},
{
name: "审批意见",
id: "spyjJyqk",
type: "textarea",
value: "",
placeholder: "",
col: "1",
},
],
isbhdw: false,
isaqfx: false,
iszcrz: false,
issswp: false,
iszasygj: false,
iszcxs: false,
iskywp: false,
isjjxx: false,
current: 0,
headerTitle: ajxqHeader,
headerIcon: ajxqHeaderIcon,
Zjasjxx: [
{ title: "自检人姓名", value: "故意杀人案", col: "3", id: "zjrXm" },
{
title: "自检人证联系电话",
value: "故意杀人案",
col: "3",
id: "zjrLxdh",
},
{
title: "自检人单位代码",
value: "故意杀人案",
col: "3",
id: "zjrDwdmStr",
},
{ title: "自检时间", value: "故意杀人案", col: "3", id: "zjsj" },
{ title: "自检结果 ", value: "故意杀人案", col: "3", id: "zjjgStr" },
{ title: "备注", value: "故意杀人案", col: "3", id: "zjxxbc" },
],
asjxx: [
{
id: "jbxx",
moduleName: "工作犬基本信息",
data: [
{
title: "警犬照片",
col: "6",
id: "tbStDogFile2",
},
{ title: "犬名", col: "3", id: "name" },
{ title: "芯片号", col: "3", id: "chipCode" },
{ title: "性别", col: "3", id: "gender" },
{ title: "出生日期", col: "3", id: "birthDate" },
{
title: "品种",
id: "speciesId",
col: "3",
},
{
title: "犬只来源",
col: "3",
id: "dogSource",
},
{
title: "DNA编号",
col: "3",
id: "dna",
},
],
},
{
id: "djxx",
moduleName: "工作犬等级信息",
data: [
{ title: "工作犬等级", col: "3", id: "trainingLevelId" },
{ title: "评定日期", col: "3", id: "pdrq" },
{ title: "专业方向", col: "5", id: "workingDogClassificationId" },
],
},
{
id: "ryxx",
moduleName: "警犬技术人员信息",
data: [
{ title: "身份证号码", col: "3", id: "jsrysfz" },
{ title: "姓名", col: "3", id: "jsrymc" },
{ title: "归属单位", col: "3", id: "trainingUnitName" },
{ title: "归属警种", col: "3", id: "policeCategory" },
],
},
{
id: "xlkh",
moduleName: "警犬训练考核",
data: [
{ title: "考核单位", col: "3", id: "checkUnitName" },
{ title: "主考人", col: "3", id: "checkStaff" },
{ title: "考核日期", col: "3", id: "checkDate" },
{
title: "考核科目及成绩",
col: "5",
id: "trainSubjectStr#trainSubjectGrade",
},
{
title: "其他材料",
col: "6",
id: "tbStDogFile1",
},
],
},
],
barxx: [
{ title: "姓名", value: "", col: "4" },
{ title: "性别", value: "", col: "4" },
{ title: "证件号码", value: "", col: "1" },
{ title: "报案地点", value: "", col: "4" },
{ title: "报案人现住址", value: "", col: "4" },
{ title: "详细信息", value: "", col: "1" },
{ title: "联系电话", value: "", col: "1" },
{ title: "简要情况", value: "", col: "1" },
],
syrxx: [
{ title: "姓名", value: "", col: "4" },
{ title: "性别", value: "", col: "4" },
{ title: "民族", value: "", col: "4" },
{ title: "证件号码", value: "", col: "4" },
{ title: "籍贯", value: "", col: "4" },
{ title: "国籍", value: "", col: "4" },
{ title: "住址", value: "", col: "1" },
{ title: "联系电话", value: "", col: "1" },
],
fzxyrxx: [
{
src: require("@/assets/img/img.gif"),
fzxyrxxList: [
{ title: "人员编号", value: "P150981000000202102000B" },
{ title: "姓名", value: "李海生" },
{ title: "性别", value: "男" },
{ title: "证件号码", value: "152628196001034714" },
{ title: "现住地区划", value: "内蒙古自治区丰镇市" },
{ title: "户籍地区划", value: "内蒙古自治区丰镇市" },
{ title: "到案状态", value: "死亡" },
],
},
],
bhrxx: [
{
src: require("@/assets/img/aqq.png"),
fzxyrxxList: [
{ title: "人员编号", value: "P150981000000202102000C" },
{ title: "姓名", value: "智利利" },
{ title: "性别", value: "女" },
{ title: "证件号码", value: "152628196709284786" },
{ title: "户籍地区划", value: "内蒙古自治区丰镇市" },
{ title: "到案状态", value: "死亡" },
],
},
],
aqfx: [
{
title: "分析案件发生时间",
value: "",
col: "3",
id: "asjfssjfxAsjfskssj",
},
{ title: "分析作案人数", value: "", col: "3", id: "zarfxRsxx" },
{ title: "进入方式手段", value: "", col: "3", id: "jrjzkjfsjsdDmbcms" },
{ title: "离开方式", value: "", col: "3", id: "lkjzkjfsDmbcms" },
{
title: "接近手段",
value: "其他接近手段",
col: "3",
id: "jjsdJjsddm",
},
{ title: "解锁手段", value: "", col: "3", id: "jssdJssddm" },
{ title: "胁迫手段", value: "", col: "3", id: "xpsdXpsddm" },
{ title: "施暴手段", value: "殴打", col: "3", id: "sbsdSbsddm" },
],
aqfxMore: [
{ title: "窃取手段", value: "" },
{ title: "引爆手段", value: "" },
{ title: "诈骗手段", value: "" },
{ title: "网络作案手段", value: "" },
{ title: "胁迫使用物品", value: "" },
{ title: "作案准备手段", value: "" },
{ title: "干扰侦查手段", value: "" },
{ title: "冒充冒用手段", value: "" },
{ title: "冒充身份", value: "" },
{ title: "冒充关系人", value: "" },
{ title: "冒充单位名义", value: "" },
{ title: "箱体空间突破手段", value: "" },
{ title: "选择物品", value: "" },
{ title: "熟悉作案环境情况", value: "" },
{ title: "流窜作案情况", value: "" },
{ title: "其他手段特点", value: "" },
{ title: "团伙作案情况", value: "" },
{ title: "嫌疑人简要情况", value: "" },
{ title: "嫌疑人遗留物品", value: "" },
{ title: "损失物品情况", value: "" },
{ title: "其他物品描述", value: "" },
{ title: "损失物品去向", value: "" },
],
zczjxx: [
{ title: "案件编号", value: "", col: "4", id: "asjbh" },
{ title: "侦查终结单位", value: "", col: "4", id: "zczjdwGajgjgdm" },
{ title: "侦查终结日期", value: "", col: "4", id: "zczjZxsj01" },
{ title: "破案手段", value: "", col: "4", id: "pasddm" },
{ title: "侦查终结依据", value: "", col: "1", id: "zczjZcxwyjms" },
],
cxxx: [
{ title: "申请撤销内容", value: "", col: "4", id: "sqnr" },
{ title: "申请人", value: "", col: "4", id: "sqr" },
{ title: "申请人单位,", value: "", col: "4", id: "sqrDwmc" },
{ title: "申请人联系电话", value: "", col: "4", id: "sqrLxdh" },
{ title: "情况说明", value: "", col: "1", id: "qksm" },
{ title: "撤销案件原因", value: "", col: "4", id: "cxajyydmStr" },
{ title: "撤销案件依据", value: "", col: "4", id: "cxajZcxwyjms" },
],
ysqs: [
{ title: "检察机关接受人", value: "", col: "4" },
{ title: "接受单位名称", value: "", col: "4" },
{ title: "移送单位", value: "", col: "4" },
{ title: "移送单位名称", value: "", col: "4" },
{ title: "移送日期", value: "", col: "1" },
{ title: "移送审查起诉意见书", value: "", col: "1" },
],
ysqsfhjg: [
{ title: "审查结果", value: "", col: "4" },
{ title: "审查结果返回日期", value: "", col: "4" },
{ title: "审查意见", value: "", col: "1" },
{ title: "补充侦查报告书", value: "", col: "1" },
],
tableData: [
{
date: "罗威丽",
name: "2021-02-19 11:41:57",
address: "内蒙古自治区刑侦总队",
sftg: "审批通过",
},
],
tableData2: [
{
date: "罗威丽",
name: "2021-02-20 11:30:24",
address: "内蒙古自治区刑侦总队",
sftg: "审批通过",
},
],
activeIndex: 0,
activeName: "third",
timeLine: [
{
time: "2021.3.15 15:30:59",
title: "立案提请审批",
person: "李警官丨20104110丨厂桥派出所",
},
{
time: "2021.3.15 16:30:59",
title: "审批不通过",
person: "王警官丨20104120丨厂桥派出所",
content:
"项目使用林地初审意见、水务局治理五期工程的审查意见五期工程的审查意见",
},
{
time: "2021.3.15 16:35:59",
title: "立案提请审批",
person: "王警官丨20104121丨厂桥派出所",
},
{
time: "2021.3.15 17:30:59",
title: "审批通过",
person: "王警官丨20104128丨厂桥派出所",
content:
"项目使用林地初审意见、水务局治理五期工程的审查意见五期工程的审查意见",
},
{
time: "2021.3.15 18:35:59",
title: "侦查终结提请审批",
person: "赵警官丨20104152丨厂桥派出所",
},
{
time: "2021.3.15 18:30:59",
title: "侦查终结审批",
person: "王警官丨20104166丨厂桥派出所",
content:
"项目使用林地初审意见、水务局治理五期工程的审查意见五期工程的审查意见",
},
],
dialogVisible: false,
dialogTitleContent: "",
checkResult: true,
checkList: [
{
name: "案件基本信息",
unchecked: "检测案件基本信息",
checking: "正在检测案件基本信息",
checked: "案件基本信息检测完成",
currentCheck: "检测案件基本信息",
checkUrl: "/ajsp/checkAsjjbxx",
queryParame: {
asjbh: this.$route.query.asjbh,
spType: this.$route.query.spType,
},
status: "",
type: ["00", "01", "02", "03"],
children: [
{
name: "立案单位",
id: "ladw",
type: ["00", "01"],
icon: "fa fa-book icon2",
status: "process",
},
{
name: "案件性质",
id: "ajxz",
type: ["00", "01"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "立案日期",
id: "larq",
type: ["00", "01"],
icon: "fa fa-calendar-check-o icon2",
status: "wait ",
},
{
name: "案发时间",
id: "afsj",
type: ["00", "01"],
icon: "fa fa-calendar-check-o icon2",
status: "wait ",
},
{
name: "案件简要情况",
id: "jyaq",
type: ["00", "01"],
icon: "fa fa-edit icon2",
status: "success",
},
// {
// name: '现场勘验编号',
// id: 'xkbh',
// type: ['00', '01'],
// icon: 'fa fa-file-powerpoint-o icon2',
// status: 'error'
// },
{
name: "涉案场所",
id: "sacs",
type: ["00", "01"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "案发地区划",
id: "ajdy",
type: ["00", "01"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "案发地域",
id: "ajdy",
type: ["00", "01"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "侦查终结单位",
id: "zczjdw",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "侦查终结时间",
id: "zczjsj",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "侦查终结依据",
id: "zczjyj",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "破案手段",
id: "pasddm",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "作案手段",
id: "zasd",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
{
name: "发案原因",
id: "fayy",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
],
},
{
name: "案件法律文书",
unchecked: "检测案件法律文书",
checking: "正在检测案件法律文书",
checked: "案件法律文书检测完成",
currentCheck: "检测案件法律文书",
checkUrl: "/ajsp/checkAsjflws",
queryParame: {
asjbh: this.$route.query.asjbh,
spType: this.$route.query.spType,
},
status: "",
type: ["00", "01"],
children: [
// {
// name: '侦查终结报告书',
// id: 'zczjbgs',
// type: ['02', '03'],
// icon: 'fa fa-file icon2',
// status: 'wait'
// },
{
name: "立案决定书",
type: ["00", "01"],
id: "lajds",
icon: "fa fa-paste icon2",
status: "wait",
},
],
},
{
name: "犯罪嫌疑人",
unchecked: "检测涉案犯罪嫌疑人",
checking: "正在检测涉案犯罪嫌疑人",
checked: "涉案犯罪嫌疑人检测完成",
currentCheck: "检测涉案犯罪嫌疑人",
checkUrl: "/ajsp/checkFzxry",
queryParame: {
asjbh: this.$route.query.asjbh,
spType: this.$route.query.spType,
},
type: ["02", "03"],
status: "",
fieldConfig: {
zjhm: "证件号码",
dazt: "到案状态",
xm: "姓名",
xb: "性别",
cssj: "出生时间",
nl: "年龄",
hjlx: "户籍类型",
hyzk: "婚姻状况",
whcd: "文化程度",
dwzy: "地位作用",
ybhrgx: "与被害人关系",
sfqkry: "是否前科人员",
hjdqh: "户籍地区划",
xzzqh: "现住址区划",
zhrq: "抓获日期",
zhddqh: "抓获地区划",
zhdw: "抓获单位",
sfjsb: "是否精神病",
},
children: [
{
name: "人员信息",
type: ["02", "03"],
icon: "fa fa-address-book-o icon2",
status: "wait",
},
],
},
{
name: "案件受害人",
unchecked: "检测案件受害人",
checking: "正在检测案件受害人",
checked: "案件受害人检测完成",
currentCheck: "检测案件受害人",
checkUrl: "/ajsp/checkBhr",
queryParame: {
asjbh: this.$route.query.asjbh,
spType: this.$route.query.spType,
},
status: "",
type: ["00", "01"],
fieldConfig: {
zjhm: "证件号码",
rsshcd: "人身伤害程度",
cssj: "出生时间",
xm: "姓名",
hjdqh: "户籍地区划",
xzzqh: "现住址区划",
},
children: [
{
name: "人员信息",
type: ["00", "01"],
icon: "fa fa-address-book-o icon2",
status: "wait",
},
],
},
{
name: "嫌疑人法律文书",
unchecked: "检测嫌疑人法律文书",
checking: "正在检测嫌疑人法律文书",
checked: "嫌疑人法律文书检测完成",
currentCheck: "检测嫌疑人法律文书",
checkUrl: "/ajsp/checkFzxryFlws",
queryParame: {
asjbh: this.$route.query.asjbh,
spType: this.$route.query.spType,
},
status: "",
type: ["02", "03"],
fieldConfig: {
jlzdbz: "逮捕证或拘留证",
swzm: "死亡证明",
hjzm: "户籍证明",
},
children: [
{
name: "基本信息",
type: ["02", "03"],
icon: "fa fa-file-text-o icon2",
status: "wait",
},
],
},
],
activeCollapseNames: ["案件基本信息"],
};
},
methods: {
saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
const anchor = document.createElement("a");
const body = document.querySelector("body");
anchor.href = window.URL.createObjectURL(blob);
anchor.download = filename;
anchor.style.display = "none";
body.appendChild(anchor);
anchor.click();
body.removeChild(anchor);
window.URL.revokeObjectURL(anchor.href);
}
},
handleDownload(file) {
if (file.url) {
const xhr = new XMLHttpRequest();
xhr.open("GET", file.url, true);
xhr.responseType = "blob";
xhr.onload = () => {
if (xhr.status === 200) {
this.saveAs(xhr.response, file.name);
}
};
xhr.send();
} else if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/vnd.ms-excel",
});
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = file.name;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
});
}
},
handlePictureCardPreview(file) {
if (
file.name.indexOf("png") >= 0 ||
file.name.indexOf("jpg") >= 0 ||
file.name.indexOf("jpeg") >= 0
) {
let url = file.url;
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
strReplace(id, str) {
if (JSON.stringify(str) == "{}") return "";
if (id.indexOf("#") < 0) {
if (str[id]) {
let a = str[id].slice(0, -1).replace("#", "、");
return a;
} else {
return "";
}
} else {
let s = "";
let ids = id.split("#");
str[ids[0]].split("#").forEach((j, index) => {
if(j) {
s += j + `(${str[ids[1]].split("#")[index]})、`;
}
});
return s.slice(0, -1);
}
},
// 当元素滚动条被滚动时运行的脚本
onScroll() {
// var box = document.getElementById('box')
// var t = document.documentElement.scrollTop || document.body.scrollTop
// box.style.top = t + 'px'
var jump = document.querySelectorAll(".step-jump");
var distance =
document.documentElement.scrollTop ||
window.pageYOffset ||
document.body.scrollTop;
jump.forEach((item, index) => {
if (distance >= item.offsetTop) {
this.activeStep = index;
}
});
},
closefilePreview(e) {
// this.filePreview = "";
// this.filePreviewFlag = false;
console.log(e.target.nodeName);
if (
e.target.nodeName != "BUTTON" &&
e.target.nodeName != "I" &&
e.target.nodeName != "SECTION"
) {
this.multiples = 1;
this.deg = 0;
this.filePreviewFlag = false;
} else {
}
},
toDetail(xxzjbh, type) {
if (type == "bhr") {
let routeData = this.$router.resolve({
path: "/ajBhr",
query: { xxzjbh: xxzjbh },
});
window.open(routeData.href, "_blank");
} else {
let routeData = this.$router.resolve({
path: "/ajXyr",
query: { xxzjbh: xxzjbh },
});
window.open(routeData.href, "_blank");
}
},
closePage() {
window.opener = null;
window.open("about:blank", "_top").close();
},
toggle() {
this.isSp = !this.isSp;
},
handleClick(tab) {
if (tab.name == "first") {
this.getBar();
} else if (tab.name == "second") {
this.getFzxyr();
} else if (tab.name == "third") {
this.getBhr();
}
},
//监听滚动
handleScroll(e) {},
//导航菜单切换
handleNav(index, id) {
this.activeIndex = index;
var dom = document.querySelector(id);
$("#asjxq").animate({ scrollTop: dom.offsetTop - 50 }, 200);
},
toSp(spsftg) {
let self = this;
this.$confirm("确认审批?", "审批", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
self.formD.spsftg = spsftg;
self.$refs["queryForm"].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: "正在审批...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
let spType;
let userInfo = window.sessionStorage.getItem("userInfo");
if (userInfo) this.userInfoJson = JSON.parse(userInfo);
if (this.userInfoJson) {
if (this.userInfoJson.grade == "S") {
spType = "05";
} else if (this.userInfoJson.grade == "D") {
spType = "04";
} else if (this.userInfoJson.grade == "B") {
spType = "06";
}
}
addSp({
orderXxzjbh: this.detailObj.orderXxzjbh,
fxDogXxzjbh: this.$route.query.xxzjbh,
glxxzjbhSource: "01",
spyjJyqk: self.formD.spyjJyqk,
spsftgPdbz: spsftg,
spType: spType,
}).then((response) => {
if (response.success === true) {
loading.close();
if (spsftg == "0") {
self.$alert("审批退回", "提示", {
confirmButtonText: "确定",
callback: (action) => {
window.location.reload();
window.open("about:blank", "_top").close();
self.$router.go(-1); //返回上一层
},
});
} else if (spsftg == "1") {
self.$alert("审批通过", "提示", {
confirmButtonText: "确定",
callback: (action) => {
window.location.reload();
window.open("about:blank", "_top").close();
self.$router.go(-1); //返回上一层
},
});
}
} else {
loading.close();
}
});
} else {
self.$message({
type: "error",
message: "请输入必填项",
});
return false;
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
});
},
doQueryRequest(form, cxUrl) {
/*post方法*/
return Http({
url: url.BaseURL + cxUrl,
data: JSON.parse(form),
method: "post",
headers: {
"blade-auth": sessionStorage.getItem("token"),
},
});
},
handleSizeChange() {},
handleCurrentChange() {},
xzlxfz(e) {
e.target.parentNode.childNodes.forEach((obj) => {
obj.classList.remove("cur");
});
e.target.classList.add("cur");
},
getDetail() {
const loading = this.$loading({
lock: true,
text: "正在查询...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
getJobDogDetail({
xxzjbh: this.$route.query.xxzjbh,
}).then((res) => {
loading.close();
if (res.success) {
this.detailObj = res.data.data;
this.detailObj.tbStDogFile1.forEach((e) => {
e.name = e.filename;
if (e.zpnr) {
e.url = e.zpnr;
e.url2 = e.zpnr;
} else {
e.url2 = require("@/assets/img/excel.png");
}
});
this.detailObj.tbStDogFile2.forEach((e) => {
e.name = e.filename;
e.url = e.zpnr;
e.url2 = e.zpnr;
});
}
});
},
/**
* 跳转至现勘编号详情
*/
toXkbh(xkid) {
// let unitcode = JSON.parse(sessionStorage.userInfo).unitcode;
let unitcode = this.$route.query.asjbh;
let dwCode = "";
if (unitcode) {
// let xckyDetailUrl = "http://10.1.2.43:9080/xcky_pic/page/sceneview/intoSceneview.action?functionType=3&id=" + xkid;
let xckyDetailUrl =
"http://xz.xz.ga/xckyxx/dist/index.html#/xckc?XCKYBH=" + xkid;
window.open(xckyDetailUrl, "_blank");
} else {
this.$message({
type: "error",
message: "登录人单位异常",
});
return;
}
// let ip = ''
// if (dwCode == '15') {
// ip = '26.3.4.162:9080'
// } else if (dwCode == '34') {
// ip = '10.124.1.23:9080'
// } else if (dwCode == '62') {
// ip = '10.178.8.210:9080'
// } else if (dwCode == '46') {
// ip = '10.184.14.150'
// } else if (dwCode == '51') {
// ip = '10.64.1.205:9080'
// } else if (dwCode == '66') {
// ip = '10.84.2.99:9080'
// } else if (dwCode == '65') {
// ip = '10.20.2.157:9080'
// } else if (dwCode == '54') {
// ip = '10.188.32.221:9080'
// } else if (dwCode == '61') {
// ip = '10.172.20.44'
// } else if (dwCode == '14') {
// ip = '10.94.65.112:9080'
// }
// if (ip) {
// let xckyDetailUrl = 'http://' + ip + '/xcky_pic/page/sceneview/intoSceneview.action?functionType=3&id=' + xkid
// window.open(xckyDetailUrl, '_blank')
// } else {
// this.$message({
// type: 'error',
// message: '暂时没有接入该地区数据'
// })
// }
},
barhandleCurrentChange(val) {
this.barForm.page = val;
this.getBar();
},
// 报案人信息
getBar() {
let self = this;
self.barForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(JSON.stringify(self.barForm), barURL)
.then((response) => {
if (response.data.success === true) {
self.barxxtableData2 = response.data.data.rows;
self.barTotal = response.data.data.total;
} else {
self.$message({
type: "error",
message: response.data.message,
});
}
});
},
fzxyrhandleCurrentChange(val) {
this.fzxyrForm.page = val;
this.getFzxyr();
},
getFzxyr() {
let self = this;
self.fzxyrtableLoading = true;
self.fzxyrForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(JSON.stringify(self.fzxyrForm), fzxyrURL)
.then((response) => {
if (response.data.success) {
self.fzxyrtableData2 = response.data.data.rows;
self.fzxyrTotal = response.data.data.total;
self.fzxyrtableLoading = false;
self.fzxyrtableData2.forEach((item) => {
if (item.ryzpZjhm == "") {
let params = new FormData();
params.append("zjhm", item.zhfzxyrCyzjZjhm);
self
.doQueryRequests(params, "/ajDetail/getQgryckzp")
.then((res) => {
item.ryzpZjhm = res.data.data.ryzpZjhm;
self.$forceUpdate();
});
}
});
} else {
self.fzxyrtableLoading = false;
self.$message({
type: "error",
message: response.data.message,
});
}
});
},
bhrhandleCurrentChange(val) {
this.bhrForm.page = val;
this.getBhr();
},
getBhr() {
let self = this;
self.bhrtableLoading = true;
self.bhrForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(JSON.stringify(self.bhrForm), bhrURL)
.then((response) => {
if (response.data.success) {
self.bhrtableLoading = false;
self.bhrtableData2 = response.data.data.rows;
self.bhrTotal = response.data.data.total;
self.bhrtableData2.forEach((item) => {
if (item.ryzpZjhm == "") {
let params = new FormData();
params.append("zjhm", item.bhrCyzjZjhm);
self
.doQueryRequests(params, "/ajDetail/getQgryckzp")
.then((res) => {
item.ryzpZjhm = res.data.data.ryzpZjhm;
self.$forceUpdate();
});
}
});
} else {
self.bhrtableLoading = false;
self.$message({
type: "error",
message: response.data.message,
});
}
});
},
doQueryRequests(form, path) {
/*post方法*/
return Http({
url: url.BaseURL + path,
data: form,
method: "post",
headers: {
"blade-auth": sessionStorage.getItem("token"),
"Content-Type": "multipart/form-data",
},
});
},
laspxqhandleCurrentChange(val) {
this.laspxqFormPage = val;
this.getLaspxq();
},
getLaspxq() {
let self = this;
self.laspxqForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(JSON.stringify(self.laspxqForm), laspxqURL)
.then((response) => {
if (response.data.success === true) {
self.laspxqtableData2 = response.data.data.rows;
var codeDic = {
"00": "立案信息审批",
"01": "立案提请审批",
"02": "侦查终结审批",
"03": "侦查终结提请审批",
"04": "部权修改信息省级审批",
"05": "部权修改提请省级审批",
"06": "部权修改信息部级审批",
};
self.laspxqtableData2.forEach((shenPiPrograssItem) => {
shenPiPrograssItem.spType = codeDic[shenPiPrograssItem.spType];
});
self.laspxqTotal = response.data.data.total;
} else {
self.$message({
type: "error",
message: response.data.message,
});
}
});
},
zczjspxqhandleCurrentChange(val) {
this.zczjspxqFormPage = val;
this.getZczjspxq();
},
getZczjspxq() {
let self = this;
self.zczjspxqForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(JSON.stringify(self.zczjspxqForm), laspxqURL)
.then((response) => {
if (response.data.success === true) {
self.zczjspxqtableData2 = response.data.data.rows;
self.zczjspxqTotal = response.data.data.total;
} else {
self.$message({
type: "error",
message: response.data.message,
});
}
});
},
/**
* 数据检查
*/
async sjjc() {
var self = this;
self.dialogVisible = true;
//初始化每个检查项
self.checkList.forEach((groupItem) => {
groupItem.status = "wait";
groupItem.errorShowData = "";
if (groupItem.children && groupItem.children.length > 0) {
groupItem.children.forEach((singleItem) => {
singleItem.status = "wait";
});
}
});
self.activeCollapseNames = ["案件基本信息"];
//检查每个需要检查的数据项
var readyToCheckList = self.checkList.filter((chickItem) => {
return chickItem.type.indexOf(self.spType) >= 0;
});
self.CustomForeach(readyToCheckList, async (e, i) => {
const queryUrl = e.checkUrl;
e.currentCheck = e.checking;
self.dialogTitleContent = e.checking;
self.activeCollapseNames.push(e.name);
e.children[0].status = "process ";
//当折叠框展开时再出发滚动事件 所以用settimeout nextTick不行
setTimeout(() => {
if (self.$refs.sjjcScrollbar) {
switch (e.name) {
case "案件基本信息":
self.$refs.sjjcScrollbar.wrap.scrollTop = 0;
break;
case "案件法律文书":
self.$refs.sjjcScrollbar.wrap.scrollTop =
self.$refs.sjjcScrollbar0[0].$el.offsetHeight;
break;
case "犯罪嫌疑人":
self.$refs.sjjcScrollbar.wrap.scrollTop =
self.$refs.sjjcScrollbar0[0].$el.offsetHeight +
self.$refs.sjjcScrollbar1[0].$el.offsetHeight;
break;
case "案件受害人":
self.$refs.sjjcScrollbar.wrap.scrollTop =
self.$refs.sjjcScrollbar0[0].$el.offsetHeight +
self.$refs.sjjcScrollbar1[0].$el.offsetHeight +
self.$refs.sjjcScrollbar2[0].$el.offsetHeight;
break;
case "嫌疑人法律文书":
self.$refs.sjjcScrollbar.wrap.scrollTop =
self.$refs.sjjcScrollbar0[0].$el.offsetHeight +
self.$refs.sjjcScrollbar1[0].$el.offsetHeight +
self.$refs.sjjcScrollbar2[0].$el.offsetHeight +
self.$refs.sjjcScrollbar3[0].$el.offsetHeight;
break;
}
}
}, 300);
await new Promise((resolve) => {
self
.doQueryRequest(JSON.stringify(e.queryParame), queryUrl)
.then((response) => {
if (response.data.data) {
if (response.data.data.result) {
self.activeCollapseNames.splice(
self.activeCollapseNames.indexOf(e.name),
1
);
self.CustomForeach(
e.children,
async (childrenItem, childrenIndex) => {
await new Promise((sresolve) => {
childrenItem.status = "process ";
setTimeout(() => {
childrenItem.status = "success";
if (childrenIndex == e.children.length - 1) {
e.status = "success";
e.currentCheck = e.checked;
}
sresolve(true);
}, 300);
});
}
);
// e.children.forEach(singleCheckItem => {
// singleCheckItem.status = "success"
// })
} else {
if (e.name == "犯罪嫌疑人") {
var errorMessage = "";
response.data.data.xyrList.forEach((xyrItem, xyrIndex) => {
if (xyrItem.result == false) {
var lostFields = "";
for (let singleFiel in xyrItem.detail) {
if (xyrItem.detail[singleFiel] == "0") {
lostFields += e.fieldConfig[singleFiel] + " ";
}
}
errorMessage +=
"<span style='display: inline-block;width: 50px;'>" +
(xyrItem.xm || xyrIndex + 1) +
"</span>:<strong style='color:red;'>" +
lostFields +
"</strong> 字段必填<br/>";
}
});
self.CustomForeach(
e.children,
async (childrenItem, childrenIndex) => {
await new Promise((sresolve) => {
childrenItem.status = "process";
setTimeout(() => {
childrenItem.status = "error";
if (childrenIndex == e.children.length - 1) {
e.status = "error";
self.checkResult = false;
e.currentCheck = e.checked;
e.errorShowData = errorMessage;
}
sresolve(true);
}, 300);
});
}
);
} else if (e.name == "案件受害人") {
var errorMessage = "";
response.data.data.bhrList.forEach((xyrItem, xyrIndex) => {
if (xyrItem.result == false) {
var lostFields = "";
for (let singleFiel in xyrItem.detail) {
if (xyrItem.detail[singleFiel] == "0") {
lostFields += e.fieldConfig[singleFiel] + " ";
}
}
errorMessage +=
"<span style='display: inline-block;width: 50px;'>" +
(xyrItem.xm || xyrIndex + 1) +
"</span>:<strong style='color:red;'>" +
lostFields +
"</strong> 字段必填<br/>";
}
});
self.CustomForeach(
e.children,
async (childrenItem, childrenIndex) => {
await new Promise((sresolve) => {
childrenItem.status = "process ";
setTimeout(() => {
childrenItem.status = "error";
if (childrenIndex == e.children.length - 1) {
e.status = "error";
self.checkResult = false;
e.currentCheck = e.checked;
e.errorShowData = errorMessage;
}
sresolve(true);
}, 300);
});
}
);
} else if (e.name == "嫌疑人法律文书") {
var errorMessage = "";
response.data.data.xyrList.forEach((xyrItem, xyrIndex) => {
if (xyrItem.result == false) {
var lostFields = "";
for (let singleFiel in xyrItem.detail) {
if (xyrItem.detail[singleFiel] == "0") {
lostFields += e.fieldConfig[singleFiel] + " ";
}
}
errorMessage +=
"<span style='display: inline-block;width: 50px;'>" +
(xyrItem.xm || xyrIndex + 1) +
"</span>:<strong style='color:red;'>" +
lostFields +
"</strong> 字段必填<br/>";
}
});
self.CustomForeach(
e.children,
async (childrenItem, childrenIndex) => {
await new Promise((sresolve) => {
childrenItem.status = "process ";
setTimeout(() => {
childrenItem.status = "error";
if (childrenIndex == e.children.length - 1) {
e.status = "error";
self.checkResult = false;
e.currentCheck = e.checked;
e.errorShowData = errorMessage;
}
sresolve(true);
}, 300);
});
}
);
} else {
self.CustomForeach(
e.children,
async (childrenItem, childrenIndex) => {
if (childrenItem.type.indexOf(self.spType) >= 0) {
await new Promise((sresolve) => {
childrenItem.status = "process ";
setTimeout(() => {
if (response.data.data[childrenItem.id] == "1") {
childrenItem.status = "success";
} else {
childrenItem.status = "error";
}
if (childrenIndex == e.children.length - 1) {
e.status = "error";
self.checkResult = false;
e.currentCheck = e.checked;
}
sresolve(true);
}, 300);
});
}
}
);
// e.children.forEach(singleCheckItem => {
// if (response.data.data[singleCheckItem.id] == "1") {
// singleCheckItem.status = "success"
// } else {
// singleCheckItem.status = "error"
// }
// })
}
}
} else {
self.$message({
type: "error",
message: e.name + "校验异常",
});
e.status = "error";
self.checkResult = false;
}
setTimeout(
() => {
resolve(response);
},
300 *
e.children.filter((cItem) => {
return cItem.type.indexOf(self.spType) >= 0;
}).length
);
});
});
if (i == readyToCheckList.length - 1) {
if (self.checkResult) {
self.dialogTitleContent = "检测结果:数据质量合格。";
} else {
self.dialogTitleContent = "检测结果:数据质量不合格!";
}
}
});
},
// 异步转同步
async CustomForeach(arr, callback) {
const length = arr.length;
const O = Object(arr);
let k = 0;
while (k < length) {
if (k in O) {
const kValue = O[k];
await callback(kValue, k, O);
}
k++;
}
},
/**
* 获取立案法律文书列表
*/
getCaseFile() {
let self = this;
self.laspxqForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(
JSON.stringify({
asjbh: self.$route.query.asjbh,
type: "la",
}),
`/flwsFj/tbstasjflwsCj/getFlwsByAsjbh`
)
.then((response) => {
if (response.data) {
self.caseFileList = response.data.data.asjxxList;
} else {
self.$message({
type: "error",
message: "立案法律文书获取异常",
});
}
});
},
/**
* 获取侦查终结法律文书列表
*/
getCaseFile2() {
let self = this;
self.laspxqForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(
JSON.stringify({
asjbh: self.$route.query.asjbh,
type: "zczj",
}),
`/flwsFj/tbstasjflwsCj/getFlwsByAsjbh`
)
.then((response) => {
if (response.data) {
self.caseFileList2 = response.data.data.asjxxList;
} else {
self.$message({
type: "error",
message: "侦查终结法律文书获取异常",
});
}
});
},
/**
* 获取嫌疑人法律文书列表
*/
getCaseFile3() {
let self = this;
self.laspxqForm.asjbh = self.$route.query.asjbh;
self
.doQueryRequest(
JSON.stringify({
asjbh: self.$route.query.asjbh,
type: "xyr",
}),
`/flwsFj/tbstasjflwsCj/getFlwsByAsjbh`
)
.then((response) => {
if (response.data) {
self.caseFileList3 = response.data.data.asjxxList;
} else {
self.$message({
type: "error",
message: "嫌疑人法律文书获取异常",
});
}
});
},
// 涉案照片视频
getCaseFile4() {
let self = this;
self.laspxqForm.asjbh = self.$route.query.asjbh;
let fjurl = "/tbstAsjFj/tbstasjfj/queryAsjfjxx";
Http.post(
`${url.BaseURL}${fjurl}`,
{
asjbh: self.laspxqForm.asjbh,
},
{
headers: {
"blade-auth": sessionStorage.getItem("token"),
},
}
)
.then((res) => {
if (res.data.success) {
self.caseFileList4 = res.data.data;
}
})
.catch((err) => {
console.log("查询失败");
});
},
downLoadCaseFile(fileItem) {
debugger;
var self = this;
var index = fileItem.flwsDzwjbt.lastIndexOf(".");
const type = fileItem.flwsDzwjbt.substring(index);
if (type == ".pdf") {
Http.get(`${url.BaseURL}/flwsFj/tbstasjflwsCj/getPdfflws`, {
params: { xxzjbh: fileItem.xxzjbh },
headers: {
"Content-Type":
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"blade-auth": sessionStorage.getItem("token"),
},
responseType: "blob",
}).then((res) => {
let binaryData = [];
binaryData.push(res.data);
let pdfUrl = window.URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
);
window.open(pdfUrl);
});
} else if (
// self.loadingpic = true,
type == ".jpg" ||
type == ".jpeg" ||
type == ".png" ||
type == ".JPG" ||
type == ".JPEG" ||
type == ".PNG"
) {
var loadingsJpG = self.$loading({
lock: true,
text: "正在打开...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
Http.post(
`${url.BaseURL}/flwsFj/tbstasjflwsCj/queryFlwsnr`,
{ xxzjbh: fileItem.xxzjbh },
{
headers: {
"Content-Type": "application/json", //'Content-Type':'application/json;charset=UTF-8',
"blade-auth": sessionStorage.getItem("token"),
},
}
).then((res) => {
if (res.data.data.flws && res.data.data.flws.zp) {
loadingsJpG.close();
// self.loadingpic = false,
loadingsJpG.close();
this.filePreview = `data:image/${type.substring(1)};base64,${
res.data.data.flws.zp
}`;
this.filePreviewFlag = true;
} else {
this.$message.error("法律文书不存在");
loadingsJpG.close();
}
});
console.log(this.filePreview);
} else {
var urls = `${url.BaseURL}/flwsFj/tbstasjflwsCj/downloadFlws`;
var params = new FormData();
params.append("xxzjbh", fileItem.xxzjbh);
axios
.post(urls, params, {
responseType: "arraybuffer",
})
.then((res) => {
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = fileItem.flwsDzwjbt;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
});
}
},
downLoadCaseFile2(fileItem) {
var self = this;
var index = fileItem.asjfjDzwjbt.lastIndexOf(".");
const type = fileItem.asjfjDzwjbt.substring(index);
if (type == ".pdf") {
Http.get(`${url.BaseURL}/flwsFj/tbstasjflwsCj/getPdfflws`, {
params: { xxzjbh: fileItem.xxzjbh },
headers: {
"Content-Type":
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"blade-auth": sessionStorage.getItem("token"),
},
responseType: "blob",
}).then((res) => {
let binaryData = [];
binaryData.push(res.data);
let pdfUrl = window.URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
);
window.open(pdfUrl);
});
} else if (
type == ".jpg" ||
type == ".jpeg" ||
type == ".png" ||
type == ".JPG" ||
type == ".JPEG" ||
type == ".PNG"
) {
var loadingsJpG = self.$loading({
lock: true,
text: "正在打开...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
Http.post(
`${url.BaseURL}/tbstAsjFj/tbstasjfj/queryAsjfjnr`,
{ xxzjbh: fileItem.xxzjbh },
{
headers: {
"Content-Type": "application/json", //'Content-Type':'application/json;charset=UTF-8',
"blade-auth": sessionStorage.getItem("token"),
},
}
).then((res) => {
if (res.data.data.asjfjDzwjnr) {
this.filePreviewFlag = true;
loadingsJpG.close();
this.filePreview = `data:image/${type.substring(1)};base64,${
res.data.data.asjfjDzwjnr
}`;
} else {
this.$message.error("法律文书不存在");
loadingsJpG.close();
}
});
} else {
// var urls = `${url.BaseURL}/tbstAsjFj/tbstasjfj/downloadAsjfj`
// var params = new FormData()
// params.append('xxzjbh', fileItem.xxzjbh)
// axios
// .post(urls, params, {
// responseType: 'arraybuffer'
// })
// .then((res) => {
// let blob = new Blob([res.data], {
// type: 'video/mp4'
// })
// // 组装a标签
// let elink = document.createElement('a')
// // 设置下载文件名
// elink.download = fileItem.asjfjDzwjbt
// elink.style.display = 'none'
// elink.href = URL.createObjectURL(blob)
// document.body.appendChild(elink)
// elink.click()
// document.body.removeChild(elink)
// })
Http.get(`${url.BaseURL}/tbstAsjFj/tbstasjfj/downloadAsjfj`, {
params: { xxzjbh: fileItem.xxzjbh },
headers: { "blade-auth": sessionStorage.getItem("token") },
responseType: "blob",
}).then((res) => {
let blobUrl = window.URL.createObjectURL(res.data);
let link = document.createElement("a");
document.body.appendChild(link);
link.style.display = "none";
link.href = blobUrl;
// 设置a标签的下载属性,设置文件名及格式,后缀名最好让后端在数据格式中返回
link.download = fileItem.asjfjDzwjbt;
// 自触发click事件
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(blobUrl);
});
}
},
/**
* 获取文件请求
*/
getGileRequest(form, relurl) {
/*post方法*/
var currentUrl = relurl ? relurl : this.cxUrl;
return Http({
url: url.BaseURL + currentUrl,
data: JSON.parse(form),
method: "post",
responseType: "blob",
headers: {
"blade-auth": sessionStorage.getItem("token"),
},
});
},
toBIgChange(msg) {
this.filePreviewFlag = true;
if (msg == "left") {
this.deg -= 90;
if (this.deg <= -360) {
this.deg = 0;
}
} else if (msg == "min") {
if (this.multiples <= 0.5) {
return;
}
this.multiples -= 0.25;
} else if (msg == "max") {
if (this.multiples >= 3) {
return;
}
this.multiples += 0.25;
} else if (msg == "all") {
(this.multiples = 1), (this.deg = 0);
} else if (msg == "right") {
this.deg += 90;
if (this.deg >= 360) {
this.deg = 0;
}
}
},
},
created() {
let self = this;
self.spsj = new Date().toLocaleString();
self.asjbh = self.$route.query.asjbh;
self.spType = self.$route.query.spType;
self.getDetail();
},
};
</script>
<style lang="scss">
#asjxq {
.dt_menu {
.el-steps--vertical {
cursor: pointer;
}
.el-step__icon.is-text {
border: none;
}
.el-step__icon-inner {
width: 6px;
height: 6px;
background: #dddddd;
color: transparent;
border-radius: 50%;
}
.el-step__line {
background-color: #eaeaea;
}
.el-step__icon {
height: 16px;
}
.el-step__head {
top: 4px;
}
}
}
</style>
<style scoped lang="scss">
@import "~@/assets/spStyle/bootstrap-new.min.css";
@import "~@/assets/spStyle/font-awesome.min.css";
@import "~@/assets/spStyle/style.css";
@import "~@/assets/spStyle/autoCheck.css";
@import "~@/assets/styles/asjDetail.scss";
/deep/ .el-upload-list__item {
overflow: unset !important;
}
/deep/ .el-upload__input {
display: none !important;
}
/deep/ .el-upload--picture-card {
display: none !important;
}
.photoList {
> p {
position: absolute;
width: 100%;
bottom: -30px;
font-size: 13px;
text-align: center;
color: #222222;
text-overflow: ellipsis;
overflow: hidden;
word-wrap: normal;
white-space: nowrap;
}
}
.activeColor {
color: #3670ff;
font-size: 13px;
}
.activeColor1 {
color: #555555;
font-size: 13px;
}
.prive_picture {
z-index: 999;
background: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
.picture {
width: 500px;
height: 600px;
margin-left: -250px;
left: 50%;
top: 10%;
// transform: translateX(-50%);
transform: translateY(-50%);
}
.prive_btn {
z-index: 100;
display: flex;
width: 500px;
justify-content: space-around;
// justify-content
position: relative;
transform: translateY(-50%);
left: 40%;
top: 15%;
}
.btn {
position: absolute;
z-index: 101;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
opacity: 0.8;
cursor: pointer;
box-sizing: border-box;
user-select: none;
left: 50%;
bottom: 30px;
transform: translateX(-50%);
width: 282px;
height: 44px;
padding: 0 23px;
background-color: #606266;
border-color: #fff;
border-radius: 22px;
}
.btnchild {
width: 100%;
height: 100%;
text-align: justify;
cursor: default;
font-size: 23px;
color: #fff;
display: flex;
align-items: center;
justify-content: space-around;
}
}
//数据质量检测弹框
/deep/ .dataCheckDialogClass {
//弹框头部关闭按钮
.el-dialog__header {
height: 80px;
color: #fff;
background: url("~@/assets/img/bg.jpg");
.headerContend {
height: 100%;
align-items: center;
display: flex;
position: relative;
line-height: 82px;
text-align: left;
.text-ing {
display: inline-block;
margin-left: 2px;
width: 390px;
}
.btn-group {
position: relative;
}
}
.el-dialog__headerbtn {
top: 12px !important;
width: 18px;
height: 21px;
border: 1px solid #1899ca;
background: gradient(
linear,
left top,
left bottom,
from(#65a9d7),
to(#3e779d)
);
box-shadow: #000 0 1px 0;
border-top: 1px solid #96d1f8;
border-radius: 4px;
.el-dialog__close {
color: #fff !important;
}
}
}
//滚动条
.el-scrollbar {
.el-scrollbar__wrap {
overflow-x: hidden;
}
//折叠框
.el-collapse {
//折叠框标题
.collapseRowTag {
background: #ffb122;
border-radius: 10px;
width: 22px;
height: 22px;
color: #fff;
display: block;
float: left;
margin-right: 8px;
text-align: center;
font-size: 14px;
line-height: 22px;
}
//折叠框内容
.el-collapse-item__content {
.el-collapse-item__arrow {
transform: rotate(90deg);
}
.el-collapse-item__arrow.is-active {
transform: rotate(-90deg);
}
//步骤条
.el-steps {
flex-wrap: wrap;
.el-step__line {
opacity: 0.2;
}
.el-step {
padding-bottom: 50px;
//等待状态的步骤样式
.el-step__head.is-wait:after {
content: "等待扫描";
position: absolute;
top: 65px;
left: 0;
z-index: 10000;
width: 100px;
height: 25px;
}
//执行中状态的步骤样式
.el-step__head.is-process {
color: #449dff;
border-color: #449dff;
}
.el-step__head.is-process:before {
content: "";
position: absolute;
top: 0;
left: 0;
z-index: 10000;
width: 16px;
height: 44px;
background: url("~@/assets/img/scan.png");
animation: rotate 1.5s linear infinite;
}
.el-step__head.is-process:after {
content: "正在扫描";
position: absolute;
top: 65px;
left: 0;
z-index: 10000;
width: 100px;
height: 25px;
}
.el-step__main {
.el-step__title.is-process {
color: #449dff;
}
}
//结束/成功状态的步骤样式
.el-step__head.is-finish {
color: #67c23a;
border-color: #67c23a;
}
.el-step__head.is-success:after {
content: "合格";
position: absolute;
top: 65px;
left: 0;
z-index: 10000;
background: #67c23a;
color: #fff;
border-radius: 12px;
text-align: center;
width: 70px;
height: 25px;
}
.el-step__main {
.el-step__title.is-finish {
color: #67c23a;
}
}
//结束/成功状态的步骤样式
.el-step__head.is-error:after {
content: "缺失";
position: absolute;
top: 65px;
left: 0;
z-index: 10000;
background: #ff754f;
color: #fff;
border-radius: 12px;
text-align: center;
width: 70px;
height: 25px;
}
}
}
}
}
}
}
</style>
<template>
<div class="listContentClass">
<div class="contents">
<div class="titles" style="width: 72px">查询条件</div>
<el-form :model="formData" ref="formDataRef" :inline="true">
<el-form-item label="芯片号" class="elItemClass">
<el-input
v-model="formData.chipCode"
:clearable="true"
placeholder="请输入芯片号"
></el-input>
</el-form-item>
<el-form-item label="警犬名称" class="elItemClass">
<el-input
v-model="formData.name"
:clearable="true"
placeholder="请输入警犬名称"
></el-input>
</el-form-item>
<el-form-item label="归属单位" class="elItemClass">
<lazy-select-tree-dialog
:sendId="formData.trainingUnit"
:formData="formData"
:currentItem="unitInfo"
/>
</el-form-item>
<el-form-item label="审批状态" class="elItemClass">
<el-select
v-model="formData.spstatus"
:clearable="true"
placeholder="请选择审批状态"
>
<el-option label="审批中" value="01"></el-option>
<el-option label="通过" value="02"></el-option>
<el-option label="未通过" value="03"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="queryBtnsClass">
<el-button
type="text"
size="small"
class="btnStylePub"
@click="handleHeaderSettings"
>
表头配置
</el-button>
<el-button
type="primary"
size="small"
class="btnStylePub"
@click="getLists(1)"
>
查询
</el-button>
<el-button
size="small"
@click="resetForm"
style="margin-right: 0 !important"
class="btnStylePub"
>
重置
</el-button>
</div>
<div class="hengLine"></div>
<div class="resultClass spaceBetween">
<div class="leftC">
<div class="titles" style="display: inline-block; width: 72px">
查询结果
</div>
<span class="infoClass"
>共有 <span class="numColor">{{ total }}</span> 条查询结果,共
<span class="numColor">{{ Math.ceil(total / limit) }}</span>
页;</span
>
</div>
<div class="rightC">
<!-- <el-button
icon="el-icon-plus"
size="small"
type="primary"
plain
class="btnStylePub btnStyle1"
@click="addData"
>新增</el-button> -->
<el-button
size="small"
icon="el-icon-plus"
type="warning"
class="btnStylePub btnStyle2"
@click="batchAdd"
>批量新增</el-button
>
<el-button
size="small"
icon="el-icon-upload2"
style="margin-right: 0 !important"
type="primary"
class="btnStylePub btnStyle3"
@click="exportData"
>导出</el-button
>
</div>
</div>
<el-table
v-loading="tableLoading"
element-loading-text="拼命加载中"
ref="tableRef"
:data="tableData"
tooltip-effect="dark"
max-height="600"
width="100%"
size="small"
class="elTableClass"
>
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<div>
<el-button type="text" size="small" @click="spData(scope.row)">
审批
</el-button>
</div>
</template>
</el-table-column>
<template v-if="colPropArr && colPropArr.length">
<el-table-column
:label="item.label"
:align="setAlign(item.prop)"
show-overflow-tooltip
v-for="item in colPropArr"
:key="item.prop"
>
<template slot-scope="scope">
<span v-if="item.prop === 'name'">{{ scope.row.name }}</span>
<span v-else-if="item.prop === 'chipCode'">{{
scope.row.chipCode
}}</span>
<span v-else-if="item.prop === 'trainingLevelIdForName'">{{
scope.row.trainingLevelIdForName
}}</span>
<span v-else-if="item.prop === 'trainCountForName'">{{
scope.row.trainCountForName
}}</span>
<span v-else-if="item.prop === 'trainingUnit'">{{
scope.row.trainingUnitName
}}</span>
<span v-else-if="item.prop === 'checkUnit'">{{
scope.row.checkUnitName
}}</span>
<span v-else-if="item.prop === 'pxrq'">{{
scope.row.refreshmentKssj && scope.row.refreshmentJssj
? scope.row.refreshmentKssj +
"&nbsp;&nbsp;至&nbsp;&nbsp;" +
scope.row.refreshmentJssj
: ""
}}</span>
<span v-else-if="item.prop === 'checkStaff'">{{
scope.row.checkStaff
}}</span>
<span v-else-if="item.prop === 'trainSubjectForName'">{{
scope.row.trainSubjectForName
}}</span>
<span v-else-if="item.prop === 'remark'">{{
scope.row.remark
}}</span>
<span v-else>{{ scope.row[item.prop] }}</span>
</template>
</el-table-column>
</template>
</el-table>
<div class="pageClass">
<el-pagination
class="elPage"
background
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
:page-size="limit"
layout="prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</div>
<!-- 表头配置 -->
<headerSettings
v-if="showHeaderSettingBox"
:headerSettInfo="headerSettInfo"
@getNewColArr="getNewColArr"
@close="showHeaderSettingBox = false"
></headerSettings>
</div>
</template>
<script>
import {
dogSpQuery,
exportJobDogUrl,
deleteJobDog,
} from "@/api/menuDataApi/jobDogManageApi.js";
import { getJsonDataApi } from "@/utils/getJsonData.js";
import { getCodeName, handleDownFile, getColumns } from "@/utils/mk.js";
import {
getGzqfxglAllColumns,
getGzqfxglDefaultColumns,
} from "@/utils/tableHeaderParams.js";
import LazySelectTreeDialog from "@c/lazy_treeCode_components.vue";
import headerSettings from "@c/headerSettings.vue";
export default {
name: "jobDogManage",
components: {
LazySelectTreeDialog,
headerSettings,
},
data() {
return {
formData: {
chipCode: "",
name: "",
trainingUnit: "",
spstatus: "",
},
tableLoading: false,
tableData: [],
currentPage: 1,
limit: 10,
total: 0,
unitInfo: {
name: "归属单位:",
id: "trainingUnit",
type: "lazyCodeTreeDialog",
value: "",
prop: "checkEmpty",
placeholder: "请选择归属单位",
col: "2",
disabled: false,
codeTree: "CODE_QGUNIT",
codeOptions: [],
},
gzqdjOptions: [],
trainCountOption: [],
zyfxOptions: [],
showHeaderSettingBox: false,
headerSettInfo: {
menuId: "gzqfxManagesp",
allColumns: getGzqfxglAllColumns(),
defaultColumns: getGzqfxglDefaultColumns(),
},
colPropArr: [],
};
},
mounted() {},
async activated() {
this.gzqdjOptions = await getJsonDataApi("CODE_GZQDJ");
this.trainCountOption = await getJsonDataApi("CODE_TRAINCOUNT");
this.zyfxOptions = await getJsonDataApi("CODE_BASEDATA");
let options = await getColumns(this.headerSettInfo.menuId);
if (options?.length) {
this.colPropArr = options;
} else {
this.colPropArr = this.headerSettInfo.defaultColumns;
}
this.getLists(this.currentPage);
},
methods: {
setAlign(val) {
let rightArr = ["trainCountForName"];
if (rightArr.includes(val)) {
return "right";
} else {
return "left";
}
},
resetForm() {
this.formData.chipCode = "";
this.formData.name = "";
this.formData.trainingUnit = "";
this.formData.spstatus = "";
this.getLists(1);
},
getLists(current) {
this.tableLoading = true;
this.currentPage = current;
let params = {
pageNow: current,
pageSize: this.limit,
chipCode: this.formData.chipCode,
name: this.formData.name,
trainingUnit: this.formData.trainingUnit,
spstatus: this.formData.spstatus,
};
dogSpQuery(params)
.then((res) => {
if (res.code === 200 && res.success) {
let datas = res.data.data;
datas.forEach((item) => {
// 处理工作犬等级
item.trainingLevelIdForName = getCodeName(
item.trainingLevelId,
this.gzqdjOptions
);
// 处理培训次数
item.trainCountForName = getCodeName(
item.trainCount,
this.trainCountOption
);
// 处理培训科目
item.trainSubjectForName = "";
if (item.trainSubject) {
let subArr = item.trainSubject.split("#") || [];
if (subArr?.length) {
subArr.forEach((subItem) => {
let result = getCodeName(subItem, this.zyfxOptions);
if (result) {
item.trainSubjectForName =
item.trainSubjectForName + result + "、";
}
});
item.trainSubjectForName = item.trainSubjectForName.substr(
0,
item.trainSubjectForName.length - 1
);
}
}
});
this.tableData = datas;
this.total = res.data.total;
this.tableLoading = false;
return;
}
this.tableLoading = false;
this.tableData = [];
this.total = 0;
})
.catch((e) => {
console.log(e);
this.tableLoading = false;
this.tableData = [];
this.total = 0;
});
},
addData() {
this.$router.push({ name: "jobDogManageAdd" });
},
spData(row) {
this.$router.push({
name: "jobDogManageSp",
query: {
xxzjbh: row.xxzjbh,
},
});
},
deleteData(row) {
this.$confirm(`此操作将永久删除该数据,是否继续?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let params = {
xxzjbh: row.xxzjbh,
};
deleteJobDog(params)
.then((res) => {
if (res.code === 200 && res.success) {
this.$message({
message: "删除成功",
type: "success",
duration: 1000,
});
this.getLists(1);
return;
}
this.$message({
message: res.message,
type: "warning",
duration: 3000,
});
})
.catch(() => {
this.$message({
message: "删除失败",
type: "warning",
duration: 3000,
});
});
})
.catch(() => {
this.$message("已取消删除");
});
},
batchAdd() {
this.$router.push({ name: "jobDogManageBatchAdd" });
},
exportData() {
this.tableLoading = true;
let params = {
pageNow: 1,
pageSize: 99999,
chipCode: this.formData.chipCode,
name: this.formData.name,
trainingUnit: this.formData.trainingUnit,
spstatus: this.formData.spstatus,
};
axios
.post(exportJobDogUrl, JSON.stringify(params), {
headers: { "Content-Type": "application/json" },
responseType: "blob",
})
.then((res) => {
if (!res.data) {
this.tableLoading = false;
return;
}
let obj = {
data: res.data,
filename: "工作犬复训信息.xlsx",
};
handleDownFile(obj);
this.tableLoading = false;
});
},
handleCurrentChange(current) {
this.currentPage = current;
this.getLists(current);
},
// 配置表头
handleHeaderSettings() {
this.showHeaderSettingBox = true;
},
getNewColArr(arr) {
if (arr?.length) {
this.colPropArr = [];
setTimeout(() => {
this.colPropArr = arr;
}, 1);
}
},
},
beforeRouteLeave(to, form, next) {
let toName = to.name;
if (toName !== "jobDogManageEdit") {
this.currentPage = 1;
}
next();
},
};
</script>
<style scoped lang="scss">
@import "../../assets/styles/listContent.scss";
</style>
......@@ -13,7 +13,7 @@
>
<div class="logo">
<img
src="../assets/img/login/logo.png"
src="@/assets/img/logoleft.png"
alt=""
/>
</div>
......
......@@ -178,7 +178,8 @@
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
......@@ -535,7 +536,7 @@ export default {
this.$refs.elImage.clickHandler();
},
handleDownload(file) {
if(file.url) {
if (file.url) {
const xhr = new XMLHttpRequest();
xhr.open("GET", file.url, true);
xhr.responseType = "blob";
......@@ -545,8 +546,8 @@ export default {
}
};
xhr.send();
}else if(file.xxzjbh){
fileUrlDetail({xxzjbh: file.xxzjbh}).then(res => {
} else if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/vnd.ms-excel",
});
......@@ -559,10 +560,11 @@ export default {
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
})
});
}
},
handlePictureCardPreview(file) {
console.log(file);
if (
file.name.indexOf("png") >= 0 ||
file.name.indexOf("jpg") >= 0 ||
......@@ -572,7 +574,17 @@ export default {
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
window.open(file.url);
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
async delPhoto(obj) {
......@@ -701,10 +713,10 @@ export default {
if (datas.tbStDogFile1) {
let arr = datas.tbStDogFile1.map((e) => {
e.name = e.filename;
if(e.zpnr) {
if (e.zpnr) {
e.url = e.zpnr;
e.url2 = e.zpnr;
}else {
} else {
e.url2 = require("@/assets/img/excel.png");
}
return e;
......@@ -765,11 +777,11 @@ export default {
for (let key in params) {
if (key == "file1") {
params[key].forEach((e) => {
if(e.raw) ajParams.append("file1", e.raw);
if (e.raw) ajParams.append("file1", e.raw);
});
} else if (key == "file2") {
params[key].forEach((e) => {
if(e.raw) ajParams.append("file2", e.raw);
if (e.raw) ajParams.append("file2", e.raw);
});
} else {
ajParams.append(key, params[key]);
......@@ -810,11 +822,11 @@ export default {
for (let key in params) {
if (key == "file1") {
params[key].forEach((e) => {
if(e.raw) ajParams.append("file1", e.raw);
if (e.raw) ajParams.append("file1", e.raw);
});
} else if (key == "file2") {
params[key].forEach((e) => {
if(e.raw) ajParams.append("file2", e.raw);
if (e.raw) ajParams.append("file2", e.raw);
});
} else {
ajParams.append(key, params[key]);
......
......@@ -240,7 +240,7 @@
</el-form-item>
<el-form-item
:label="'审批或者获奖材料' + `(${fileList.length})`"
:label="'其他材料' + `(${fileList.length})`"
class="elItemClass2 elDateClass"
prop="file1"
>
......@@ -262,7 +262,8 @@
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
......@@ -293,7 +294,7 @@
<div class="hengLine"></div>
<div class="titles" style="width: 160px">技术人员信息</div>
<div class="titles" style="width: 160px">技术人员信息</div>
<div class="divBoxClass">
<el-form-item
label="身份证号码"
......@@ -606,7 +607,17 @@ export default {
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
window.open(file.url);
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
async delPhoto(obj) {
......
<template>
<div
style="height: 100vh"
id="home_box"
>
<div style="height: 100vh" id="home_box">
<div class="content">
<div
class="leftWrap"
......@@ -15,25 +12,24 @@
>
<img
v-if="isCollapseP == true"
src="../../assets//img/login/logo.png"
src="../../assets/img/login/logo.png"
alt=""
style="width: 30px; margin-left: 25px"
/>
<img
v-else
style="width: 270px;"
src="../../assets/img/login/logoTitle.png"
alt=""
/>
<div v-else style="display: flex;justify-content: center;align-items: center">
<img style="width: 60px" src="@/assets/img/jqlogo.png" alt="" />
<img style="width: 170px" src="@/assets/img/jqTitle.png" alt="" />
</div>
</div>
<left-menu
ref="leftMenu"
:isCollapseP="isCollapseP"
></left-menu>
<left-menu ref="leftMenu" :isCollapseP="isCollapseP"></left-menu>
</div>
<div
class="rightContent"
:style="isCollapseP == true ? 'width: calc(100px - 72px);' : 'width: calc(100px - 300px);'"
:style="
isCollapseP == true
? 'width: calc(100px - 72px);'
: 'width: calc(100px - 300px);'
"
>
<div class="rightTitle">
<div class="leftContentClass">
......@@ -41,10 +37,8 @@
<i
@click="collapse"
:class="
!isCollapseP == true
? 'el-icon-s-fold'
: 'el-icon-s-unfold'
"
!isCollapseP == true ? 'el-icon-s-fold' : 'el-icon-s-unfold'
"
></i>
</div>
<span class="elBreadSpan">
......@@ -60,10 +54,7 @@
</span>
</div>
<div class="rightContentClass">
<div
class="dataDaPingClass"
@click="getHome"
>
<div class="dataDaPingClass" @click="getHome">
<span class="circleClass">
<span class="iconfont icon-shishidapingbeifen_jingquan"></span>
</span>
......@@ -77,20 +68,22 @@
@command="handleCommand"
>
<div class="elDropdownClass">
<img
src="../../assets/img/lj_480.png"
class="imgs"
/>
<img src="../../assets/img/lj_480.png" class="imgs" />
</div>
<el-dropdown-menu
slot="dropdown"
:hide-on-click="false"
>
<el-dropdown-menu slot="dropdown" :hide-on-click="false">
<el-dropdown-item disabled>
<p class="textBox"> <span>姓名:</span> {{ userInfoObj.realname }}</p>
<p class="textBox"> <span>电话:</span> {{ userInfoObj.phone }}</p>
<p class="textBox"> <span>身份证号:</span> {{ userInfoObj.identitycard }}</p>
<p class="textBox"> <span>单位:</span> {{ userInfoObj.unitname }}</p>
<p class="textBox">
<span>姓名:</span> {{ userInfoObj.realname }}
</p>
<p class="textBox">
<span>电话:</span> {{ userInfoObj.phone }}
</p>
<p class="textBox">
<span>身份证号:</span> {{ userInfoObj.identitycard }}
</p>
<p class="textBox">
<span>单位:</span> {{ userInfoObj.unitname }}
</p>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
......@@ -337,6 +330,7 @@ export default {
.headerTitle {
height: 64px;
width: 300px;
text-align: left;
background: #1e2636;
font-size: 18px;
color: #fff;
......@@ -345,10 +339,6 @@ export default {
img {
// width: 36px;
margin-right: 6px;
margin-left: 16px;
margin-top: 6px;
margin-bottom: 6px;
}
}
......
......@@ -105,7 +105,8 @@
v-if="
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
......@@ -354,7 +355,17 @@ export default {
this.dialogImageUrl = url;
this.$refs.elImage.clickHandler();
} else {
window.open(file.url);
if (file.xxzjbh) {
fileUrlDetail({ xxzjbh: file.xxzjbh }).then((res) => {
let blob = new Blob([res], {
type: "application/pdf",
});
const pdfSrc = window.URL.createObjectURL(blob);
window.open(pdfSrc, "_blank");
});
} else {
window.open(file.url, "_blank");
}
}
},
fileChange(file, fileList) {
......@@ -413,8 +424,8 @@ export default {
) {
let datas = res.data.data[0];
if (datas.dwmc1) {
datas.unitCodeName = datas.dwmc1;
if (datas.dwbm) {
datas.unitCodeName = datas.dwbm;
} else {
datas.unitCodeName = "";
}
......@@ -427,7 +438,6 @@ export default {
} else {
datas.selectXzqh = [];
}
this.detailInfo = datas;
if (datas.tbStDogFile1) {
let arr = datas.tbStDogFile1.map((e) => {
......@@ -460,7 +470,8 @@ export default {
if (result) {
let params = {
file1: this.fileList,
dwmc: this.detailInfo.unitCodeName,
dwmc: this.detailInfo.dwmc,
dwbm: this.detailInfo.unitCodeName,
sspq: this.detailInfo.sspq,
dwld: this.detailInfo.dwld,
dwmj: String(this.detailInfo.dwmj),
......
......@@ -15,7 +15,7 @@
class="elItemClass"
>
<lazy-select-tree-dialog
:sendId="formData.dwmc"
:sendId="formData.dwbm"
:formData="formData"
:currentItem="unitInfo"
/>
......@@ -129,13 +129,14 @@
>
<template slot-scope="scope">
<span v-if="item.prop === 'dwmc'">{{ scope.row.dwmc }}</span>
<span v-if="item.prop === 'xzqhForName'">{{ scope.row.xzqhForName }}</span>
<span v-if="item.prop === 'dwld'">{{ scope.row.dwld }}</span>
<span v-if="item.prop === 'dwmj'">{{ scope.row.dwmj ? scope.row.dwmj + ' / 亩' : '' }}</span>
<span v-if="item.prop === 'qs'">{{ scope.row.qs ? scope.row.qs + ' / 间' : '' }}</span>
<span v-if="item.prop === 'dwbzs'">{{ scope.row.dwbzs ? scope.row.dwbzs + ' / 名' : '' }}</span>
<span v-if="item.prop === 'lxr'">{{ scope.row.lxr }}</span>
<span v-if="item.prop === 'lxdh'">{{ scope.row.lxdh }}</span>
<span v-else-if="item.prop === 'xzqhForName'">{{ scope.row.xzqhForName }}</span>
<span v-else-if="item.prop === 'dwld'">{{ scope.row.dwld }}</span>
<span v-else-if="item.prop === 'dwmj'">{{ scope.row.dwmj }}</span>
<span v-else-if="item.prop === 'qs'">{{ scope.row.qs ? scope.row.qs + ' / 间' : '' }}</span>
<span v-else-if="item.prop === 'dwbzs'">{{ scope.row.dwbzs ? scope.row.dwbzs + ' / 名' : '' }}</span>
<span v-else-if="item.prop === 'lxr'">{{ scope.row.lxr }}</span>
<span v-else-if="item.prop === 'lxdh'">{{ scope.row.lxdh }}</span>
<span v-else>{{ scope.row[item.prop] }}</span>
</template>
</el-table-column>
</template>
......@@ -204,7 +205,7 @@ export default {
data() {
return {
formData: {
dwmc: "",
dwbm: "",
},
tableLoading: false,
......@@ -216,7 +217,7 @@ export default {
unitInfo: {
name: "单位名称:",
id: "dwmc",
id: "dwbm",
type: "lazyCodeTreeDialog",
value: "",
prop: "checkEmpty",
......@@ -270,7 +271,7 @@ export default {
},
// 重置
resetForm() {
this.formData.dwmc = "";
this.formData.dwbm = "";
this.getLists(1);
},
......@@ -280,7 +281,7 @@ export default {
let params = {
pageNow: current,
pageSize: this.limit,
dwmc: this.formData.dwmc,
dwbm: this.formData.dwbm,
};
getTeUnitList(params)
.then((res) => {
......@@ -386,7 +387,7 @@ export default {
let params = {
pageNow: 1,
pageSize: 99999,
dwmc: this.formData.dwmc,
dwbm: this.formData.dwbm,
};
axios
.post(exportTeUnitUrl, JSON.stringify(params), {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment