aa3c78735a907877da8345c2d68c956462fef3a3.svn-base 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972
  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;float:left;text-align: center;"
  5. :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  6. <span style="display: flex;justify-content: center;align-items: center;border-bottom: 1px solid #ebeef5;">
  7. <el-button size="mini" :class="tabType==1 ? 'skactive' : 'sknormal'" @click="tabChange('1')">当前数据</el-button>
  8. <!-- <el-button size="mini" :class="tabType==2 ? 'skactive' : 'sknormal'" @click="tabChange('2')">历史数据</el-button>-->
  9. <el-button size="mini" :class="tabType==0 ? 'skactive' : 'sknormal'" @click="tabChange('0')">全部数据</el-button>
  10. </span>
  11. <div class="tree" style="
  12. height: calc(100% - 50px);
  13. width: 100%;
  14. overflow: auto;
  15. display: inline-flex;">
  16. <el-tree
  17. :highlight-current="true"
  18. :data="treeData"
  19. node-key="id"
  20. :expand-on-click-node="false"
  21. @node-click = 'treeNodeClickHandler'
  22. ref="jigou_tree"
  23. >
  24. <div class="custom-tree-node" slot-scope="{ node, data }">
  25. <span style="float:left;">{{ data.pnm}}</span>
  26. </div>
  27. </el-tree>
  28. </div>
  29. </el-aside>
  30. <!-- 主要窗口 -->
  31. <el-main id="dxdcListMainsk" style="padding:5px 20px;">
  32. <el-row>
  33. <el-col :span="24">
  34. <el-form :inline="true" size="mini" class="demo-form-inline" style="padding-left: 10px;">
  35. <el-form-item label="督查状态">
  36. <el-select v-model="dcType" clearable placeholder="督查状态">
  37. <el-option label="未督查" value="0"></el-option>
  38. <el-option label="督查中" value="1"></el-option>
  39. <el-option label="已督查" value="2"></el-option>
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item label="行政区名称">
  43. <addvSearch
  44. v-model="adName"
  45. :maxHeight='300'
  46. :maxWidth='250'
  47. :rootAddCode='curAdcode_long'
  48. :level='"3"'
  49. :nameOrCode="'name'"
  50. ></addvSearch>
  51. </el-form-item>
  52. <el-form-item label="名称">
  53. <el-input v-model="rsvrName" placeholder="名称"></el-input>
  54. </el-form-item>
  55. <el-form-item label="所在组">
  56. <el-autocomplete v-model="groupName" clearable value-key='nm' :fetch-suggestions="querySearchAsync"
  57. placeholder="请输入内容"
  58. @select="handleSelect"></el-autocomplete>
  59. </el-form-item>
  60. <el-form-item label="是否复查" v-if="isJiangXi">
  61. <el-select v-model="repeatId" clearable placeholder="督查状态">
  62. <el-option label="是" value="1"></el-option>
  63. <el-option label="否" value="2"></el-option>
  64. </el-select>
  65. </el-form-item>
  66. <el-form-item label="督查时间">
  67. <div style="display: flex;">
  68. <el-date-picker
  69. v-model="dateRange"
  70. type="daterange"
  71. value-format="yyyy-MM-dd"
  72. style="width:280px"
  73. range-separator="至"
  74. start-placeholder="开始日期"
  75. end-placeholder="结束日期"
  76. ></el-date-picker>
  77. <!-- <el-date-picker v-model="sttm" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
  78. <p style="padding-left: 10px;padding-right: 10px;">至</p>
  79. <el-date-picker v-model="ettm" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> -->
  80. </div>
  81. </el-form-item>
  82. <el-form-item label="对象类型">
  83. <el-select v-model="proType" clearable placeholder="请选择">
  84. <el-option
  85. v-for="item in problemClasslist"
  86. :key="item.value"
  87. :label="item.label"
  88. :value="item.value">
  89. </el-option>
  90. </el-select>
  91. </el-form-item>
  92. <el-form-item>
  93. <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
  94. </el-form-item>
  95. <!-- <el-form-item style="float:right">-->
  96. <!-- <el-button type="success" style="float:right;margin-left:5px"-->
  97. <!-- @click="showPlDialog"-->
  98. <!-- icon="el-icon-upload2"-->
  99. <!-- :disabled="disabled"-->
  100. <!-- >批量填报-->
  101. <!-- </el-button>-->
  102. <!-- <el-button type="success" style="float:right;"-->
  103. <!-- @click="downloadTemplate"-->
  104. <!-- :icon="downIcon"-->
  105. <!-- >下载模板-->
  106. <!-- </el-button>-->
  107. <!-- </el-form-item>-->
  108. </el-form>
  109. </el-col>
  110. </el-row>
  111. <el-table
  112. ref="table"
  113. border
  114. :height="tableHeight"
  115. :data="skDataList"
  116. style="width: 100%"
  117. v-loading="expLoading">
  118. <el-table-column prop="nm" label="名称" show-overflow-tooltip min-width="100"
  119. align="center"></el-table-column>
  120. <el-table-column prop="adFullName" label="地区" show-overflow-tooltip min-width="100"
  121. align="center"></el-table-column>
  122. <el-table-column prop="intm1" label="督查时间" show-overflow-tooltip min-width="100"
  123. align="center"></el-table-column>
  124. <el-table-column
  125. prop="uptm"
  126. label="更新时间"
  127. align="center"
  128. :formatter="formatDate"
  129. min-width="100">
  130. </el-table-column>
  131. <el-table-column
  132. prop="state"
  133. label="督查状态"
  134. align="center"
  135. min-width="80">
  136. <template slot-scope="scope">
  137. <span
  138. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  139. v-if="scope.row.state == 0"
  140. >未督查</span>
  141. <span
  142. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  143. v-if="scope.row.state == 1"
  144. >督查中</span>
  145. <span
  146. style="padding: 3px 10px;background:#63C25E;border-radius:15px;color:rgba(255,255,255,1)"
  147. v-if="scope.row.state == 2"
  148. >已督查</span>
  149. </template>
  150. </el-table-column>
  151. <el-table-column
  152. prop="engScal"
  153. label="工程规模"
  154. :formatter="formatEngScal"
  155. min-width="80">
  156. </el-table-column>
  157. <!-- <el-table-column-->
  158. <!-- prop="hystSite"-->
  159. <!-- min-width="200"-->
  160. <!-- label="水库所在位置">-->
  161. <!-- </el-table-column>-->
  162. <!-- <el-table-column-->
  163. <!-- prop="rsAdmName"-->
  164. <!-- min-width="180"-->
  165. <!-- label="管理单位"-->
  166. <!-- show-overflow-tooltip>-->
  167. <!-- </el-table-column>-->
  168. <!-- <el-table-column-->
  169. <!-- prop="totCap"-->
  170. <!-- label="总库容(万m³)"-->
  171. <!-- align="right"-->
  172. <!-- min-width="130">-->
  173. <!-- </el-table-column>-->
  174. <el-table-column
  175. v-for="(column,index) in fillTableData"
  176. :key="index"
  177. :prop="column.prop"
  178. :label='column.label'
  179. align="center"
  180. min-width="80">
  181. <template slot-scope="scope">
  182. <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row[column.prop] == 0 || !scope.row[column.prop]">
  183. 待填报</p>
  184. <p style="cursor:pointer;color:#fbb56d" v-if="scope.row[column.prop] == 1">未完成</p>
  185. <p style="cursor:pointer;color:#67C23A" v-if="scope.row[column.prop] == 2">已完成</p>
  186. <p style="cursor:pointer;color:#67C23A" v-if="column.prop == 'viewStat' && scope.row[column.prop] != 0">
  187. 已填报</p>
  188. <p style="cursor:pointer;color:#F56C6C;" v-if="column.prop == 'viewStat' && scope.row[column.prop] == 0">
  189. 未填报</p>
  190. </template>
  191. </el-table-column>
  192. <el-table-column align="center" label="操作" min-width="200" fixed="right">
  193. <template slot-scope="scope">
  194. <div style="display: flex;justify-content: center">
  195. <div style="display: flex">
  196. <el-button size="mini" type="success" v-if="scope.row.rgstrId && scope.row.state != '2'" plain @click="toAddMember('编辑',scope.row)">督查</el-button>
  197. <el-button size="mini" type="danger" v-if="scope.row.rgstrId && scope.row.state != '2'" plain @click="deleteMember(scope.row)">删除</el-button>
  198. <el-button size="mini" type="danger" v-if="scope.row.rgstrId && scope.row.state != '2' && isSdPriv(scope.row)" plain @click="submitHandler(scope.row)">提交</el-button>
  199. </div>
  200. <el-button size="mini" style="margin-left: 10px;" type="warning" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="toAddMember('查看',scope.row,true)">查看</el-button>
  201. <div style="padding-left: 10px;">
  202. <el-button size="mini" type="danger" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="revoke(scope.row)">撤回</el-button>
  203. </div>
  204. </div>
  205. </template>
  206. </el-table-column>
  207. </el-table>
  208. <el-pagination background :pager-count="5" :current-page="pageIndex"
  209. :page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100]"
  210. layout="sizes, total, prev, pager, next" :total="total"
  211. @current-change="pageIndexChange" @size-change="handleSizeChange"
  212. ></el-pagination>
  213. </el-main>
  214. <!-- </el-container> -->
  215. <shuiKuTianBao v-if="showShuiKuTianBao" :rowData="rowData" :currentObjectRgstrId="currentObjectRgstrId"
  216. :currentResCode="currentResCode" :currentObjectId="currentObjectId"
  217. :currentObjectName="currentResName"
  218. :currentRsvrNm="currentRsvrNm"
  219. :currentAdCode="currentAdCode"
  220. :pType="pType"
  221. :ifView="ifView"
  222. @cancelHandler="cancelHandler" @addShuiKuSuccess="addShuiKuSuccess"></shuiKuTianBao>
  223. </el-container>
  224. <!-- 添加/编辑人员弹窗 -->
  225. <!-- 上传模板弹窗 -->
  226. <shuiku-tian-bao-pl v-if="showShuiKuTianBaoPl"
  227. :showShuiKuTianBaoPl="showShuiKuTianBaoPl"
  228. :id="currentNodeId"
  229. @closePlDialog="closePlDialog"></shuiku-tian-bao-pl>
  230. <!-- 水库信息查看 -->
  231. <rsvr-info
  232. :currentObjectRgstrId="currentObjectRgstrId"
  233. :currentResCode="currentResCode"
  234. :currentObjectId="currentObjectId"
  235. :currentObjectName="currentResName"
  236. :isJiangXi="isJiangXi"
  237. v-if="showDuchaDetails" @cancelHandler="closeInfoDialog"></rsvr-info>
  238. <!-- 水库督查信息 -->
  239. </div>
  240. </template>
  241. <script>
  242. import request from '../../utils/gw_ajax_request.js'
  243. import {dateFormat} from '../../utils/gw_date.js'
  244. import {getrgstrIdObject, getSKList_fjty} from "../../api/duChaTianBao.js";
  245. import addvSearch from "@widget/addvSearch.vue"
  246. import provTreeList from "../../widgets/provTreeList.vue";
  247. import shuiKuTianBao from "../duChaTianBao/shuiKuTianbao.vue"
  248. import shuikuTianBaoPl from "../duChaTianBao/shuiKuTianbao_piliang.vue"
  249. import rsvrInfo from "../duChaTianBao/shuiku/skInfo/main.vue"
  250. import {curAdcode_long, curAdcode_short} from '@util/global_variable.js'
  251. import {fillColumnForFujian, fillColumnNation,fillColumnNationOld} from '../duChaTianBao/shuiku/forDifferentProvince.js'
  252. import {exportModel} from "@util/gw_exportModel";
  253. import popupSk from "../duChaTianBao/components/popupWindow/sk/main.vue"
  254. export default {
  255. components: {
  256. provTreeList: provTreeList,
  257. shuiKuTianBao: shuiKuTianBao,
  258. shuikuTianBaoPl: shuikuTianBaoPl,
  259. rsvrInfo: rsvrInfo,
  260. addvSearch,
  261. popupSk
  262. },
  263. props: [],
  264. data() {
  265. return {
  266. tabType: "0",
  267. proType: "",
  268. dateRange: [],
  269. lyjg: [],
  270. problemClasslist: [
  271. {
  272. label: "小水库",
  273. value: "小水库"
  274. },
  275. {
  276. label: "大中型水库",
  277. value: "大中型水库"
  278. },
  279. {
  280. label: "在建水利工程",
  281. value: "在建水利工程"
  282. },
  283. {
  284. label: "水闸工程",
  285. value: "水闸工程"
  286. },
  287. {
  288. label: "堤防工程",
  289. value: "堤防工程"
  290. },
  291. {
  292. label: "小水电站",
  293. value: "小水电站"
  294. },
  295. {
  296. label: "水利工程设施水毁修复",
  297. value: "水利工程设施水毁修复"
  298. },
  299. {
  300. label: "山洪灾害监测预警",
  301. value: "山洪灾害监测预警"
  302. },
  303. {
  304. label: "水旱灾害防御",
  305. value: "水旱灾害防御"
  306. },
  307. {
  308. label: "在建涉河建设项目和“清四乱”",
  309. value: "在建涉河建设项目和“清四乱”"
  310. },
  311. {
  312. label: "水利风景区",
  313. value: "水利风景区"
  314. },
  315. ],
  316. engScales: [
  317. {id: '4', name: '小(1)型'},
  318. {id: '5', name: '小(2)型'},
  319. ],
  320. engScale: '',
  321. orgName: '',
  322. groupName: '',
  323. groupId: '',
  324. groups: [],
  325. // sttm:'',
  326. // ettm:'',
  327. adName: '',
  328. treeData: [],
  329. dxdcMainHeight: window.innerHeight - 304,
  330. testHeight: window.innerHeight - 111,
  331. skDataList: [],
  332. pageIndex: 1,
  333. pageSize: 20,
  334. total: 0,
  335. tableHeight: 0,
  336. currentResCode: '',
  337. currentResName: '',
  338. currentObjectId: '',
  339. currentObjectRgstrId: '',
  340. currentObjectInfoObject: null,
  341. showShuiKuTianBao: false,
  342. currentAdCode: '',
  343. currentNodeId: '',
  344. rsvrName: '',
  345. dcType: '',
  346. rowData: '',
  347. disabled: true,
  348. showShuiKuTianBaoPl: false,
  349. downIcon: 'el-icon-download',
  350. expLoading: false,
  351. //
  352. repeatId: '',
  353. showDuchaDetails: false,
  354. zerenrenLabel: '"三个责任人"落实情况',
  355. pType: 128,
  356. fillTableData: [], //根据不同省份赋值
  357. xskInfoDialog: false,
  358. currentDuchaTpe: false,
  359. currentRsCode: '',
  360. xskRgstrId: '',
  361. currentObjId: '',
  362. currentRsName: '',
  363. endTime: '',
  364. curTime: new Date().getTime(),
  365. flage: false,
  366. currentRsvrNm: '',
  367. dataProblemclass: [],
  368. ifView: false
  369. }
  370. },
  371. computed: {
  372. persId() {
  373. return localStorage.getItem("userid")
  374. ? localStorage.getItem("userid")
  375. : "1098101939614724096";
  376. },
  377. isAdmin: function () {
  378. return localStorage.getItem("isAdmin") ? localStorage.getItem("isAdmin") : ''
  379. },
  380. currentRlcode() {
  381. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  382. },
  383. isJiangXi() {
  384. return this.currentRlcode.indexOf('36') == '0' ? true : false
  385. },
  386. curAdcode_short() {
  387. return curAdcode_short
  388. },
  389. curAdcode_long() {
  390. return curAdcode_long
  391. },
  392. persType() {
  393. return localStorage.getItem("persType") ? localStorage.getItem("persType") : ''
  394. },
  395. isSc(){
  396. if(localStorage.getItem('currentRlcode').substring(0,2)=="51"){
  397. return true;
  398. }else{
  399. return false;
  400. }
  401. },
  402. isSd(){
  403. if(localStorage.getItem('currentRlcode').substring(0,2)=="37"){
  404. return true;
  405. }else{
  406. return false;
  407. }
  408. }
  409. },
  410. mounted() {
  411. this.getLeftTreeData();
  412. this.$nextTick(function () {
  413. this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 50;
  414. let _self = this;
  415. window.onresize = function () {
  416. _self.tableHeight = window.innerHeight - _self.$refs.table.$el.offsetTop - 50
  417. }
  418. })
  419. this.getSkDataList();
  420. this.getAllGroup();
  421. this.fillTableData = fillColumnNation;
  422. if (this.currentRlcode.indexOf('63') == '0' || this.currentRlcode.indexOf('66') == '0') {
  423. this.fillTableData = fillColumnForFujian
  424. }
  425. if (this.currentRlcode.indexOf('53') == '0') {
  426. this.fillTableData = fillColumnNationOld
  427. }
  428. },
  429. activated() {
  430. this.getprolist();
  431. this.currentNodeId = "";
  432. this.rsvrName = "";
  433. this.dcType = "";
  434. this.getSkDataList();
  435. },
  436. watch: {
  437. currentNodeId(n, o) {
  438. this.getSkDataList();
  439. },
  440. groupName(n, o) {
  441. if (n == '') {
  442. this.groupId = '';
  443. }
  444. },
  445. // endTime(n, o) {
  446. // this.flage = this.endTime ? (eval(this.endTime) < eval(this.curTime) ? true : false) : false
  447. // }
  448. },
  449. methods: {
  450. async getprolist(){
  451. await request.post('/bis/insp/pblmP/list').then(res=>{
  452. if(res.success){
  453. this.dataProblemclass = res.data
  454. }
  455. this.$nextTick(() => {
  456. if (this.dataProblemclass && this.dataProblemclass.length > 0) {
  457. const firstNodeId = this.dataProblemclass[0].id;
  458. this.$refs.myTree.setCurrentKey(firstNodeId);
  459. // if (this.$refs.myTree.getCurrentNode()) {
  460. // this.treeNodeClickHandler(this.$refs.myTree.getCurrentNode());
  461. // }
  462. }
  463. });
  464. })
  465. },
  466. isSdPriv(row){
  467. if(this.isSd){
  468. return (this.ownPriv('tmanage') || (!this.ownPriv('tmanage') && row.timeout=='1'))
  469. }
  470. return true;
  471. },
  472. tabChange(tabType) {
  473. this.tabType = tabType;
  474. this.currentNodeId = "";
  475. this.groupName = "";
  476. this.groupId = "";
  477. this.getAllGroup();
  478. this.getLeftTreeData();
  479. this.getSkDataList();
  480. },
  481. //获取所有的组
  482. getAllGroup() {
  483. var _self = this;
  484. request.get('/dc/user/getGroupByPersid', {
  485. params: {
  486. 'persid': this.persId,
  487. 'ptype': '128',
  488. 'tabType': this.tabType
  489. }
  490. }).then((res) => {
  491. if (res.success) {
  492. _self.groups = res.data;
  493. }
  494. })
  495. },
  496. querySearchAsync(queryString, cb) {
  497. var restaurants = this.groups;
  498. var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
  499. clearTimeout(this.timeout);
  500. this.timeout = setTimeout(() => {
  501. cb(results);
  502. }, 1500 * Math.random());
  503. },
  504. createStateFilter(queryString) {
  505. return (state) => {
  506. return (state.nm.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
  507. };
  508. },
  509. handleSelect(item) {
  510. console.log(item);
  511. this.groupId = item.id;
  512. },
  513. getLeftTreeData() {
  514. var _self = this;
  515. _self.lyjg = [];
  516. request.get('/dc/organization/base/getAllNode', {
  517. params: {
  518. 'userId': this.persId,
  519. 'orgType': '128',
  520. 'tabType': this.tabType
  521. }
  522. }).then((res) => {
  523. let data = res.data
  524. data.forEach(ele => {
  525. if (ele.pid == null || ele.pid == '') {
  526. ele.pid = '001'
  527. }
  528. if (ele.id.length == 6) {
  529. _self.lyjg.push(ele);
  530. }
  531. });
  532. data = _self.getTrees(data)
  533. // _self.flage = this.getBoolDate(data[0].sttm,data[0].entm);
  534. _self.treeData = data;
  535. // _self.endTime = data[0]['entm']
  536. })
  537. },
  538. getBoolDate(sttm,entm){
  539. if(sttm==null && entm==null){
  540. return true;
  541. }
  542. if(sttm!=null && entm!=null && (sttm<=new Date().getTime() && new Date().getTime()<=entm)){
  543. return true;
  544. }
  545. if(sttm==null || entm==null){
  546. if(sttm==null && new Date().getTime()<=entm){
  547. return true;
  548. }
  549. if(entm==null && sttm<=new Date().getTime()){
  550. return true;
  551. }
  552. }
  553. return false;
  554. },
  555. //格式化树形数据
  556. getTrees(list) {
  557. //@wxcwater重写方法 适应多个树
  558. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  559. let _self = this;
  560. list.forEach((item, index) => {
  561. item['pidLength'] = item.pid && item.pid != '' ? item.pid.length : 0;
  562. if (highLevelLength > item.pidLength) {
  563. highLevelLength = item.pidLength;
  564. }
  565. });
  566. console.log(highLevelLength);
  567. let heightLevelNode = [];
  568. list.forEach((item, index) => {
  569. if (highLevelLength >= item.pidLength) {
  570. heightLevelNode.push(item);
  571. }
  572. });
  573. list.forEach((item, index) => {
  574. heightLevelNode.forEach((pItem) => {
  575. _self.addTreeNode(pItem, item);
  576. });
  577. });
  578. console.log(heightLevelNode);
  579. return heightLevelNode;
  580. },
  581. addTreeNode: function (treeNode, leafNode) {
  582. let _self = this;
  583. if (!treeNode.hasOwnProperty('children')) {
  584. treeNode['children'] = [];
  585. }
  586. if (leafNode.pid == treeNode.id) {
  587. treeNode.children.push(leafNode);
  588. return;
  589. }
  590. treeNode.children.forEach((item) => {
  591. _self.addTreeNode(item, leafNode);
  592. });
  593. },
  594. treeNodeClickHandler: function (data, node, tree) {
  595. // this.endTime = data['entm']
  596. this.currentNodeId = data.id;
  597. if(this.currentNodeId.length==12){
  598. this.groupId = data.id;
  599. this.groupName = data.pnm;
  600. }
  601. // this.flage = this.getBoolDate(data[0].sttm,data[0].entm);
  602. },
  603. provTreeSelectChangeHandler: function (params) {
  604. this.currentAdCode = params.likeCode;
  605. this.getSkDataList();
  606. },
  607. formatDate(row, column) {
  608. if (row.uptm) {
  609. return (dateFormat(row.uptm, 'yyyy-MM-dd'));
  610. }
  611. },
  612. formatEngScal(row, column) {
  613. let engScal = row.engScal;
  614. let _engScal = '其他';
  615. switch (engScal) {
  616. case '1' :
  617. _engScal = '大(1)型';
  618. break;
  619. case '2' :
  620. _engScal = '大(2)型';
  621. break;
  622. case '3' :
  623. _engScal = '中型';
  624. break;
  625. case '4' :
  626. _engScal = '小(1)型';
  627. break;
  628. case '5' :
  629. _engScal = '小(2)型';
  630. break;
  631. case '9' :
  632. _engScal = '其他';
  633. break;
  634. }
  635. return _engScal;
  636. },
  637. getSkDataList: function () {
  638. let paramStartDate = '';
  639. let paramEndDate = '';
  640. if (this.dateRange && this.dateRange.length > 1 && this.dateRange[0] != '' && this.dateRange[1] != '') {
  641. paramStartDate = this.dateRange[0];
  642. paramEndDate = this.dateRange[1];
  643. }
  644. let paramsData = {
  645. "type": this.proType,
  646. 'presId': this.persId,
  647. "pType": "128",
  648. "pageSize": this.pageSize,
  649. 'pageNum': this.pageIndex,
  650. 'id': this.currentNodeId,
  651. 'rsName': this.rsvrName,
  652. 'state': this.dcType,
  653. 'adName': this.adName,
  654. 'sttm': paramStartDate,
  655. 'entm': paramEndDate,
  656. 'riverId': this.orgName,
  657. 'engScal': this.engScale,
  658. 'groupId': this.groupId,
  659. 'tabType': this.tabType
  660. }
  661. if (this.currentRlcode.indexOf('36') == '0') {
  662. paramsData['repeatId'] = this.repeatId
  663. }
  664. this.expLoading = true;
  665. getSKList_fjty(paramsData).then(
  666. (res) => {
  667. console.log(res);
  668. res.data.list.forEach((item) => {
  669. if (item.intm) {
  670. item.intm1 = dateFormat(item.intm, 'yyyy-MM-dd');
  671. }
  672. })
  673. this.skDataList = res.data.list;
  674. this.total = res.data.total;
  675. this.expLoading = false;
  676. }
  677. );
  678. },
  679. onSubmit() {
  680. this.getSkDataList();
  681. },
  682. skCancelHandler() {
  683. this.xskInfoDialog = false
  684. },
  685. toCheck(type, rowData) {
  686. this.currentDuchaTpe = true;
  687. this.xskInfoDialog = true;
  688. this.xskRgstrId = rowData.rgstrId;
  689. this.currentRsCode = rowData.code;
  690. this.currentObjId = rowData.objId;
  691. this.currentRsName = rowData.nm;
  692. this.$nextTick(() => {
  693. if (this.$refs['xskTianBaoRef']) {
  694. this.$refs['xskTianBaoRef'].showDialog();
  695. }
  696. })
  697. },
  698. toAddMember(type, rowData, ifView) {
  699. var _self = this;
  700. this.rowData = rowData;
  701. // ;
  702. console.log(rowData);
  703. // getrgstrIdObject(rowData.code,rowData.objId,_self.pageIndex).then(
  704. // (res) =>{
  705. // console.log(res);
  706. _self.currentResCode = this.rowData.code;
  707. _self.currentObjectId = this.rowData.objId;
  708. _self.currentObjectRgstrId = this.rowData.rgstrId;
  709. _self.currentResName = this.rowData.nm;
  710. _self.currentRsvrNm = this.rowData.rsvrNm;
  711. _self.currentAdCode = this.rowData.adCode;
  712. _self.ifView = ifView;
  713. _self.showShuiKuTianBao = true;
  714. // 获取完成
  715. // },
  716. // (err) =>{
  717. // }
  718. // );
  719. },
  720. cancelHandler() {
  721. this.showShuiKuTianBao = false;
  722. },
  723. addShuiKuSuccess() {
  724. this.getSkDataList();
  725. // this.showShuiKuTianBao = false;
  726. },
  727. deleteMember(obj) {
  728. console.log(obj);
  729. var _self = this;
  730. // /dc/insp/rsvrRgstr/delete/{id}
  731. this.$confirm('此操作将督查对象从列表中删除,确认删除该水库吗?', '提示', {
  732. confirmButtonText: '确定',
  733. cancelButtonText: '取消',
  734. type: 'warning'
  735. }).then(() => {
  736. request.get(`/supervision/plan/cleanObjDataByObjId?objType=128&objId=${obj.objId}`).then((res) => {
  737. if (res.success) {
  738. _self.pageIndexChange();
  739. _self.$message.success('删除成功')
  740. } else {
  741. _self.$message.error(res.message)
  742. }
  743. });
  744. }).catch(() => {
  745. });
  746. },
  747. submitHandler(rowData) {
  748. console.log(rowData)
  749. var _self = this;
  750. getrgstrIdObject(rowData.code, rowData.objId).then(
  751. (res) => {
  752. if (this.currentRlcode.indexOf('63') == '0' || this.currentRlcode.indexOf('66') == '0' || this.currentRlcode.indexOf('53') == '0') {
  753. if (res.data.presStat != '2') {
  754. this.$message({
  755. message: '三个责任人"落实情况填报未完成!',
  756. type: 'warning'
  757. });
  758. return
  759. }
  760. else if (res.data.safeStat != '2' && !(this.currentRlcode.indexOf('53') == '0')) {
  761. this.$message({
  762. message: '安全管理三级责任人填报未完成!',
  763. type: 'warning'
  764. });
  765. return
  766. }
  767. else if (res.data.baseStat != '2') {
  768. this.$message({
  769. message: '三个重点环节"落实情况填报未完成!',
  770. type: 'warning'
  771. });
  772. return
  773. } else if (res.data.reverStat != '2') {
  774. this.$message({
  775. message: '水库工程实体填报未完成',
  776. type: 'warning'
  777. });
  778. return
  779. } else if (res.data.resRunStat != '2') {
  780. this.$message({
  781. message: '运行管理情况填报未完成',
  782. type: 'warning'
  783. });
  784. return
  785. } else if (res.data.benefitStat != '2') {
  786. this.$message({
  787. message: '效益发挥情况填报未完成',
  788. type: 'warning'
  789. });
  790. return
  791. }
  792. }else{
  793. // if (res.data.chkInfoStat != '2') {
  794. // this.$message({
  795. // message: '水库检查情况填报未完成!',
  796. // type: 'warning'
  797. // });
  798. // return
  799. // } else
  800. // if (res.data.rectStat != '2') {
  801. // this.$message({
  802. // message: '整改情况填报填报未完成!',
  803. // type: 'warning'
  804. // });
  805. // return
  806. // }
  807. }
  808. this.$confirm('请确认所有信息填报完毕?', '提示', {
  809. confirmButtonText: '确定',
  810. cancelButtonText: '取消',
  811. type: 'warning'
  812. }).then(() => {
  813. let formObj = {
  814. "rgstrId": rowData.rgstrId,
  815. "state": "2"
  816. }
  817. request.post('/dc/insp/rsvrRgstr/update', formObj).then((res) => {
  818. if (res.success) {
  819. _self.addShuiKuSuccess();
  820. _self.$message.success("提交成功");
  821. } else {
  822. _self.cancelHandler();
  823. }
  824. });
  825. }).catch(() => {
  826. });
  827. }, (err) => {
  828. });
  829. },
  830. revoke(rowData) {
  831. var _self = this;
  832. this.$confirm('确定要撤回当前信息吗?', '提示', {
  833. confirmButtonText: '确定',
  834. cancelButtonText: '取消',
  835. type: 'warning'
  836. }).then(() => {
  837. let formObj = {
  838. "rgstrId": rowData.rgstrId,
  839. "state": "1"
  840. }
  841. request.post('/dc/insp/rsvrRgstr/update', formObj).then((res) => {
  842. if (res.success) {
  843. _self.addShuiKuSuccess();
  844. _self.$message.success("撤回成功");
  845. } else {
  846. _self.cancelHandler();
  847. }
  848. });
  849. }).catch(() => {
  850. });
  851. },
  852. pageIndexChange(val) {
  853. console.log(val);
  854. this.pageIndex = val;
  855. this.getSkDataList();
  856. },
  857. handleSizeChange(val) {
  858. this.pageSize = val;
  859. this.getSkDataList();
  860. },
  861. // 下载填报模板
  862. async downloadTemplate() {
  863. let url = '/pdcApi/dc/impExcel/downloadTemplate/sk?userId=' + this.persId + '&id=' + this.currentNodeId;
  864. let downloadName = "小水库填报模板.xls";
  865. let type = "get";
  866. await exportModel(type, url, downloadName);
  867. this.disabled = false;
  868. },
  869. showPlDialog() {
  870. this.showShuiKuTianBaoPl = true
  871. },
  872. closePlDialog(val) {
  873. this.showShuiKuTianBaoPl = false
  874. },
  875. // 新需求 点击复查显示以前的督查信息
  876. toShowDuchaDetail(row) {
  877. this.currentResCode = row.code;
  878. this.currentObjectId = row.objId;
  879. this.currentObjectRgstrId = row.rgstrId;
  880. this.currentResName = row.nm;
  881. this.showDuchaDetails = true
  882. },
  883. closeInfoDialog() {
  884. this.showDuchaDetails = false
  885. },
  886. // 加入复查
  887. joinRecheck(row) {
  888. let _self = this
  889. let data = {
  890. regerId: row.rgstrId,
  891. type: '1'
  892. }
  893. this.$confirm('确定加入复查吗?', '提示', {
  894. confirmButtonText: '确定',
  895. cancelButtonText: '取消',
  896. type: 'warning'
  897. }).then(() => {
  898. request.post(`/bis/insp/repeat/check/log`, data).then((res) => {
  899. if (res.success) {
  900. _self.$message.success('已加入复查')
  901. _self.getSkDataList();
  902. } else {
  903. _self.$message.error(res.message)
  904. }
  905. }).catch(err => {
  906. _self.$message.error(res.message)
  907. });
  908. }).catch(() => {
  909. });
  910. }
  911. },
  912. };
  913. </script>
  914. <style>
  915. .skactive {
  916. background: #3f8eff !important;
  917. color: white !important;
  918. margin-top: 5px;
  919. margin-bottom: 5px;
  920. }
  921. .sknormal {
  922. background: white;
  923. margin-top: 5px;
  924. margin-bottom: 5px;
  925. }
  926. .el-table .warning-row {
  927. background: oldlace;
  928. }
  929. .el-table .success-row {
  930. background: #f0f9eb;
  931. }
  932. #dxdcListMainsk {
  933. overflow-y: hidden;
  934. }
  935. </style>