f9f0c19c491e599a685eddedc31db97e0d08456d.svn-base 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. <template>
  2. <div style="height:100%;width:100%;">
  3. <el-container style="height:100%;width:100%;">
  4. <el-aside width="320px" style="border-right:2px solid #d5d5ff;text-align: center" :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  5. <el-button size="mini" :class="tabType==1 ? 'skactive' : 'sknormal'" @click="tabChange('1')">当前数据</el-button>
  6. <!-- <el-button size="mini" :class="tabType==2 ? 'skactive' : 'sknormal'" @click="tabChange('2')">历史数据</el-button>-->
  7. <el-button size="mini" :class="tabType==0 ? 'skactive' : 'sknormal'" @click="tabChange('0')">全部数据</el-button>
  8. <div class="tree" style="
  9. height: calc(100% - 50px);
  10. width: 100%;
  11. overflow: auto;
  12. display: inline-flex;">
  13. <el-tree
  14. :highlight-current="true"
  15. style="height:100%;"
  16. :data="treeData"
  17. node-key="id"
  18. :expand-on-click-node="false"
  19. @node-click = 'treeNodeClickHandler'
  20. ref="jigou_tree"
  21. >
  22. <div class="custom-tree-node" slot-scope="{ node, data }">
  23. <span style="float:left;">{{ data.pnm}}
  24. </span>
  25. </div>
  26. </el-tree>
  27. </div>
  28. </el-aside>
  29. <!-- 主要窗口 -->
  30. <el-main id="dxdcListMainsk" style="padding:5px 20px;">
  31. <el-row>
  32. <el-col :span="24">
  33. <el-form :inline="true" size="mini" class="demo-form-inline" style="padding-left: 10px;">
  34. <el-form-item label="督查状态">
  35. <el-select v-model="dcType" clearable placeholder="督查状态">
  36. <el-option label="未督查" value="0"></el-option>
  37. <el-option label="督查中" value="1"></el-option>
  38. <el-option label="已督查" value="2"></el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item label="行政区名称">
  42. <addvSearch
  43. v-model="adName"
  44. :maxHeight='300'
  45. :maxWidth='250'
  46. :rootAddCode='curAdcode_long'
  47. :level='"3"'
  48. :nameOrCode="'name'"
  49. ></addvSearch>
  50. </el-form-item>
  51. <el-form-item label="对象名称">
  52. <el-input v-model="depName" placeholder="对象名称"></el-input>
  53. </el-form-item>
  54. <el-form-item label="所在组">
  55. <el-autocomplete v-model="groupName" clearable value-key='nm' :fetch-suggestions="querySearchAsync" placeholder="请输入内容"
  56. @select="handleSelect"></el-autocomplete>
  57. </el-form-item>
  58. <el-form-item label="督查时间">
  59. <div style="display: flex;">
  60. <el-date-picker
  61. v-model="dateRange"
  62. type="daterange"
  63. value-format="yyyy-MM-dd"
  64. style="width:280px"
  65. range-separator="至"
  66. start-placeholder="开始日期"
  67. end-placeholder="结束日期"
  68. ></el-date-picker>
  69. </div>
  70. </el-form-item>
  71. <el-form-item>
  72. <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
  73. </el-form-item>
  74. </el-form>
  75. </el-col>
  76. </el-row>
  77. <el-table
  78. ref="table"
  79. border
  80. :height="tableHeight"
  81. :data="skDataList"
  82. style="width: 100%"
  83. v-loading="expLoading">
  84. <el-table-column prop="adName" label="行政区划" show-overflow-tooltip min-width="150" align="center"></el-table-column>
  85. <el-table-column prop="nm" label="对象名称" min-width="200" align="center" ></el-table-column>
  86. <!-- <el-table-column-->
  87. <!-- align="center"-->
  88. <!-- show-overflow-tooltip-->
  89. <!-- prop="leglPers"-->
  90. <!-- label="项目法人"-->
  91. <!-- min-width="120"-->
  92. <!-- ></el-table-column>-->
  93. <el-table-column prop="groupName" label="所在组" show-overflow-tooltip min-width="120" align="center"></el-table-column>
  94. <el-table-column prop="intm1" label="督查时间" show-overflow-tooltip min-width="120" align="center"></el-table-column>
  95. <el-table-column prop="uptm" label="更新时间" align="center" :formatter="formatDate" min-width="120"></el-table-column>
  96. <el-table-column
  97. prop="unitStat"
  98. label="取用水情况检查"
  99. align="center"
  100. min-width="120">
  101. <template slot-scope="scope">
  102. <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.unitStat == 0 || !scope.row.unitStat">待填报</p>
  103. <p style="cursor:pointer;color:#fbb56d" v-if="scope.row.unitStat == 1">未完成</p>
  104. <p style="cursor:pointer;color:#67C23A" v-if="scope.row.unitStat == 2">已完成</p>
  105. </template>
  106. </el-table-column>
  107. <el-table-column
  108. prop="state"
  109. label="督查状态"
  110. align="center"
  111. min-width="130">
  112. <template slot-scope="scope">
  113. <span
  114. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  115. v-if="scope.row.state == 0"
  116. >未督查</span>
  117. <span
  118. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  119. v-if="scope.row.state == 1"
  120. >督查中</span>
  121. <span
  122. style="padding: 3px 10px;background:#63C25E;border-radius:15px;color:rgba(255,255,255,1)"
  123. v-if="scope.row.state == 2"
  124. >已督查</span>
  125. </template>
  126. </el-table-column>
  127. <el-table-column align="center" label="操作" min-width="360" fixed="right" v-if="ownPriv('manage') || ownPriv('revoke')">
  128. <template slot-scope="scope">
  129. <div style="display: flex;justify-content: center">
  130. <div v-if="ownPriv('manage')">
  131. <el-button size="mini" type="success" v-if="scope.row.rgstrId " plain @click="toAddMember('编辑',scope.row)" :disabled="scope.row.state == '2'">督查</el-button>
  132. <el-button size="mini" type="danger" v-if="scope.row.rgstrId" plain @click="deleteMember(scope.row)" :disabled="scope.row.state == '2'">删除</el-button>
  133. <el-button size="mini" type="danger" v-if="scope.row.rgstrId" plain @click="submitHandler(scope.row)" :disabled="scope.row.state == '2'">提交</el-button>
  134. </div>
  135. <el-button size="mini" type="warning" style="margin-left: 10px;" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="toCheck(scope.row)">查看</el-button>
  136. <div v-if="ownPriv('revoke')" style="padding-left: 10px;">
  137. <el-button size="mini" type="warning" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="revoke(scope.row)">撤回</el-button>
  138. </div>
  139. </div>
  140. </template>
  141. </el-table-column>
  142. </el-table>
  143. <el-pagination background :pager-count="5" :current-page="pageIndex"
  144. :page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100]"
  145. layout="sizes, total, prev, pager, next" :total="total"
  146. @current-change="pageIndexChange" @size-change="handleSizeChange"
  147. ></el-pagination>
  148. </el-main>
  149. <!-- 填报 -->
  150. <qyshqsqkTab v-if="showShuiKuTianBao" :rowData="rowData" :currentObjectRgstrId="currentObjectRgstrId"
  151. :currentResCode="currentResCode" :currentObjectId="currentObjectId"
  152. :currentObjectName="currentResName"
  153. :pType="pType"
  154. :openType="openType"
  155. @cancelHandler="cancelHandler" @addShuiKuSuccess="addShuiKuSuccess"></qyshqsqkTab>
  156. </el-container>
  157. </div>
  158. </template>
  159. <script>
  160. import request from '../../utils/gw_ajax_request.js'
  161. import {dateFormat} from '../../utils/gw_date.js'
  162. import {getList_qyshqysqk} from "../../api/duChaTianBao.js";
  163. import addvSearch from "@widget/addvSearch.vue"
  164. import provTreeList from "../../widgets/provTreeList.vue";
  165. import qyshqsqkTab from "../duChaTianBao/qyshqsqkTab.vue"
  166. import {curAdcode_short,curAdcode_long} from '@util/global_variable.js'
  167. export default {
  168. components: {
  169. provTreeList: provTreeList,
  170. qyshqsqkTab:qyshqsqkTab,
  171. addvSearch
  172. },
  173. props: [],
  174. data() {
  175. return {
  176. openType:false,
  177. tabType:"0",//0全部数据,1当前数据,2历史数据
  178. dateRange:[],
  179. lyjg:[],
  180. utTypeL:[
  181. {id:'1',name:'企业'},
  182. {id:'2',name:'机关'},
  183. {id:'3',name:'学校'},
  184. {id:'4',name:'2019整改'},
  185. {id:'5',name:'政府机关'}
  186. ],
  187. utPptL:[
  188. {id:'1',name:'节水型'},
  189. {id:'2',name:'非节水型'}
  190. ],
  191. depName:"",
  192. wintCode:"",
  193. engScale:'',
  194. orgName:'',
  195. groupName:'',
  196. groupId:'',
  197. groups:[],
  198. // sttm:'',
  199. // ettm:'',
  200. adName:'',
  201. treeData:[],
  202. dxdcMainHeight: window.innerHeight - 304,
  203. testHeight: window.innerHeight - 111,
  204. skDataList: [],
  205. pageIndex:1,
  206. pageSize:20,
  207. total:0,
  208. tableHeight:0,
  209. currentResCode:'',
  210. currentResName:'',
  211. currentObjectId:'',
  212. currentObjectRgstrId:'',
  213. currentObjectInfoObject:null,
  214. showShuiKuTianBao:false,
  215. currentAdCode:'',
  216. currentNodeId:'',
  217. rsvrName:'',
  218. dcType:'',
  219. rowData:'',
  220. disabled:true,
  221. showShuiKuTianBaoPl:false,
  222. downIcon:'el-icon-download',
  223. expLoading:false,
  224. //
  225. repeatId: '',
  226. showDuchaDetails: false,
  227. zerenrenLabel: '"三个责任人"落实情况',
  228. pType: 126,
  229. fillTableData: [], //根据不同省份赋值
  230. xskInfoDialog: false,
  231. currentDuchaTpe: false,
  232. currentRsCode: '',
  233. xskRgstrId:'',
  234. currentObjId:'',
  235. currentRsName:'',
  236. endTime: '',
  237. curTime: new Date().getTime(),
  238. flage: false,
  239. unitList:[{label:"企业",value:"1"},{label:"机关",value:"2"},{label:"学校",value:"3"},{label:"医院",value:"4"},{label:"宾馆",value:"5"},{label:"高校",value:"6"},{label:"其他",value:"7"}],
  240. industryList:[{label:"节水型",value:"1"},{label:"非节水型",value:"2"}]
  241. };
  242. },
  243. computed: {
  244. persId() {
  245. return localStorage.getItem("userid")
  246. ? localStorage.getItem("userid")
  247. : "1098101939614724096";
  248. },
  249. isAdmin:function(){
  250. return localStorage.getItem("isAdmin")? localStorage.getItem("isAdmin"): ''
  251. },
  252. currentRlcode(){
  253. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  254. },
  255. isJiangXi(){
  256. return this.currentRlcode.indexOf('36') == '0' ? true :false
  257. },
  258. curAdcode_short(){
  259. return curAdcode_short
  260. },
  261. curAdcode_long(){
  262. return curAdcode_long
  263. }
  264. },
  265. mounted() {
  266. this.$nextTick(function () {
  267. this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 50;
  268. let _self = this;
  269. window.onresize = function() {
  270. _self.tableHeight = window.innerHeight - _self.$refs.table.$el.offsetTop - 50
  271. }
  272. })
  273. this.getSkDataList();
  274. this.getAllGroup();
  275. },
  276. activated(){
  277. this.getLeftTreeData();
  278. this.currentNodeId = "";
  279. this.rsvrName = "";
  280. this.dcType = "";
  281. this.getSkDataList();
  282. },
  283. watch: {
  284. currentNodeId(n,o){
  285. this.getSkDataList();
  286. },
  287. groupName(n,o){
  288. if(n==''){
  289. this.groupId = '';
  290. }
  291. },
  292. endTime(n,o){
  293. this.flage = this.endTime ? (eval(this.endTime) < eval(this.curTime) ? true : false) : false
  294. }
  295. },
  296. methods: {
  297. industryFormat(row, column){
  298. var name = "";
  299. this.industryList.forEach((item,index) =>{
  300. if(row[column.property] == item.value){
  301. name = item.label;
  302. }
  303. })
  304. return name;
  305. },
  306. unitFormat(row, column){
  307. var name = "";
  308. this.unitList.forEach((item,index) =>{
  309. if(row[column.property] == item.value){
  310. name = item.label;
  311. }
  312. })
  313. return name;
  314. },
  315. tabChange(tabType){
  316. this.tabType = tabType;
  317. this.currentNodeId = "";
  318. this.getAllGroup();
  319. this.getLeftTreeData();
  320. this.getSkDataList();
  321. },
  322. //获取所有的组
  323. getAllGroup(){
  324. var _self = this;
  325. request.get('/dc/user/getGroupByPersid',{params:{'persid':this.persId,'ptype':this.pType,'tabType':this.tabType}}).then((res)=>{
  326. if(res.success){
  327. _self.groups = res.data;
  328. }
  329. })
  330. },
  331. querySearchAsync(queryString, cb) {
  332. var restaurants = this.groups;
  333. var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
  334. clearTimeout(this.timeout);
  335. this.timeout = setTimeout(() => {
  336. cb(results);
  337. }, 1500 * Math.random());
  338. },
  339. createStateFilter(queryString) {
  340. return (state) => {
  341. return (state.nm.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
  342. };
  343. },
  344. handleSelect(item) {
  345. console.log(item);
  346. this.groupId = item.id;
  347. },
  348. getLeftTreeData(){
  349. var _self = this;
  350. _self.lyjg = [];
  351. request.get('/dc/organization/base/getAllNode',{params:{'userId':this.persId,'orgType':this.pType,'tabType':this.tabType}}).then((res)=>{
  352. let data = res.data
  353. data.forEach(ele => {
  354. if(ele.pid == null || ele.pid == ''){
  355. ele.pid = '126'
  356. }
  357. if(ele.id.length == 6){
  358. _self.lyjg.push(ele);
  359. }
  360. });
  361. data = _self.getTrees(data)
  362. _self.treeData = data;
  363. _self.endTime = data[0]['entm']
  364. })
  365. },
  366. //格式化树形数据
  367. getTrees(list) {
  368. //@wxcwater重写方法 适应多个树
  369. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  370. let _self =this;
  371. list.forEach((item,index)=>{
  372. item['pidLength'] = item.pid&&item.pid!=''?item.pid.length:0;
  373. if(highLevelLength>item.pidLength){
  374. highLevelLength = item.pidLength;
  375. }
  376. });
  377. console.log(highLevelLength);
  378. let heightLevelNode = [];
  379. list.forEach((item,index)=>{
  380. if(highLevelLength>=item.pidLength){
  381. heightLevelNode.push(item);
  382. }
  383. });
  384. list.forEach((item,index)=>{
  385. heightLevelNode.forEach((pItem)=>{
  386. _self.addTreeNode(pItem,item);
  387. });
  388. });
  389. console.log(heightLevelNode);
  390. return heightLevelNode;
  391. },
  392. addTreeNode:function(treeNode,leafNode){
  393. let _self = this;
  394. if(!treeNode.hasOwnProperty('children')){
  395. treeNode['children'] = [];
  396. }
  397. if(leafNode.pid == treeNode.id){
  398. treeNode.children.push(leafNode);
  399. return;
  400. }
  401. treeNode.children.forEach((item) => {
  402. _self.addTreeNode(item,leafNode);
  403. });
  404. },
  405. treeNodeClickHandler:function(data,node,tree){
  406. this.endTime = data['entm']
  407. this.currentNodeId = data.id;
  408. },
  409. provTreeSelectChangeHandler:function(params){
  410. this.currentAdCode = params.likeCode;
  411. this.getSkDataList();
  412. },
  413. formatDate(row,column){
  414. if(row.uptm){
  415. return (dateFormat(row.uptm,'yyyy-MM-dd'));
  416. }
  417. },
  418. getSkDataList:function(){
  419. let paramStartDate = '';
  420. let paramEndDate = '';
  421. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  422. paramStartDate = this.dateRange[0];
  423. paramEndDate = this.dateRange[1];
  424. }
  425. let paramsData = {
  426. 'presId': this.persId,
  427. "pType": this.pType,
  428. "pageSize": this.pageSize,
  429. 'pageNum': this.pageIndex,
  430. 'id': this.currentNodeId,
  431. 'nm': this.depName,
  432. 'state': this.dcType,
  433. 'adName': this.adName,
  434. 'sttm': paramStartDate,
  435. 'entm': paramEndDate,
  436. 'riverId': this.orgName,
  437. 'wintCode': this.wintCode,
  438. 'groupId': this.groupId,
  439. 'tabType': this.tabType
  440. }
  441. getList_qyshqysqk(paramsData).then(
  442. (res) => {
  443. console.log(res);
  444. res.data.list.forEach((item)=>{
  445. if(item.intm){
  446. item.intm1 = dateFormat(item.intm,'yyyy-MM-dd');
  447. }
  448. })
  449. this.skDataList = res.data.list;
  450. this.total = res.data.total;
  451. this.$nextTick(() => {
  452. this.$refs.table.doLayout();
  453. });
  454. }
  455. );
  456. },
  457. onSubmit(){
  458. this.getSkDataList();
  459. },
  460. skCancelHandler() {
  461. this.xskInfoDialog = false
  462. },
  463. toCheck(rowData){
  464. var _self = this;
  465. this.rowData = rowData;
  466. _self.currentResCode = this.rowData.code;
  467. _self.currentObjectId = this.rowData.objId;
  468. _self.currentObjectRgstrId = this.rowData.rgstrId;
  469. _self.currentResName = this.rowData.nm;
  470. _self.showShuiKuTianBao = true;
  471. _self.openType = false;
  472. this.$nextTick(() => {
  473. if (this.$refs['xskTianBaoRef']) {
  474. this.$refs['xskTianBaoRef'].showDialog();
  475. }
  476. })
  477. },
  478. toAddMember(type,rowData){
  479. var _self = this;
  480. this.rowData = rowData;
  481. _self.currentResCode = this.rowData.code;
  482. _self.currentObjectId = this.rowData.objId;
  483. _self.currentObjectRgstrId = this.rowData.rgstrId;
  484. _self.currentResName = this.rowData.nm;
  485. _self.showShuiKuTianBao = true;
  486. _self.openType = true;
  487. },
  488. cancelHandler(){
  489. this.showShuiKuTianBao = false;
  490. },
  491. addShuiKuSuccess(){
  492. this.getSkDataList();
  493. },
  494. deleteMember(obj){
  495. var _self = this;
  496. this.$confirm('此操作将督查对象从列表中删除,确认删除该对象吗?', '提示', {
  497. confirmButtonText: '确定',
  498. cancelButtonText: '取消',
  499. type: 'warning'
  500. }).then(() => {
  501. request.get(`/supervision/plan/cleanObjDataByObjId?objType=${this.pType}&objId=${obj.objId}`).then((res)=>{
  502. if(res.success){
  503. _self.pageIndexChange();
  504. _self.$message.success('删除成功')
  505. }else{
  506. _self.$message.error(res.message)
  507. }
  508. });
  509. }).catch(() => {
  510. });
  511. },
  512. revoke(rowData){
  513. var _self = this;
  514. this.$confirm('确定要撤销当前信息吗?', '提示', {
  515. confirmButtonText: '确定',
  516. cancelButtonText: '取消',
  517. type: 'warning'
  518. }).then(() => {
  519. let formObj = {
  520. "rgstrId":rowData.rgstrId,
  521. "state":"1"
  522. }
  523. request.post('/bis/insp/jswiu2024/', formObj).then((res) => {
  524. if (res.success) {
  525. _self.addShuiKuSuccess();
  526. _self.$message.success("提交成功");
  527. } else {
  528. _self.cancelHandler();
  529. }
  530. });
  531. }).catch(() => {
  532. });
  533. },
  534. submitHandler(rowData){
  535. // if(rowData.unitStat!="2"){
  536. // this.$message.warning("取用水情况检查填报未完成!");
  537. // return;
  538. // }
  539. var _self = this;
  540. this.$confirm('请确认所有信息填报完毕?', '提示', {
  541. confirmButtonText: '确定',
  542. cancelButtonText: '取消',
  543. type: 'warning'
  544. }).then(() => {
  545. let formObj = {
  546. "rgstrId":rowData.rgstrId,
  547. "state":"2"
  548. }
  549. request.post('/bis/insp/jswiu2024/', formObj).then((res) => {
  550. if (res.success) {
  551. _self.addShuiKuSuccess();
  552. _self.$message.success("提交成功");
  553. } else {
  554. _self.cancelHandler();
  555. }
  556. });
  557. }).catch(() => {
  558. });
  559. },
  560. pageIndexChange(val){
  561. console.log(val);
  562. this.pageIndex = val;
  563. this.getSkDataList();
  564. },
  565. handleSizeChange(val){
  566. this.pageSize = val;
  567. this.getSkDataList();
  568. },
  569. showPlDialog(){
  570. this.showShuiKuTianBaoPl = true
  571. },
  572. closePlDialog(val){
  573. this.showShuiKuTianBaoPl = false
  574. },
  575. // 新需求 点击复查显示以前的督查信息
  576. toShowDuchaDetail(row){
  577. this.currentResCode = row.code;
  578. this.currentObjectId = row.objId;
  579. this.currentObjectRgstrId = row.rgstrId;
  580. this.currentResName = row.nm;
  581. this.showDuchaDetails = true
  582. },
  583. closeInfoDialog(){
  584. this.showDuchaDetails = false
  585. }
  586. },
  587. };
  588. </script>
  589. <style>
  590. .skactive{
  591. background: #3f8eff !important;
  592. color:white !important;
  593. margin-top: 5px;
  594. margin-bottom: 5px;
  595. }
  596. .sknormal{
  597. background: white;
  598. margin-top: 5px;
  599. margin-bottom: 5px;
  600. }
  601. .el-table .warning-row {
  602. background: oldlace;
  603. }
  604. .el-table .success-row {
  605. background: #f0f9eb;
  606. }
  607. #dxdcListMainsk{
  608. overflow-y: hidden;
  609. }
  610. </style>