4716c340b3ef39ccc3334ce5f99761d7b48fc88a.svn-base 33 KB

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