185b031e8bd679c84ca6f99f9eef755e2cfa0440.svn-base 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. <template>
  2. <!-- 弹出窗 -->
  3. <el-dialog title="添加督查对象" :visible.sync="dialogFormVisible" width="80%" modal-append-to-body append-to-body >
  4. <el-container>
  5. <!--<el-aside width="200px" style="border:1px solid #d5d5ff">-->
  6. <!--<p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">-->
  7. <!--<i class="el-icon-share"></i>所属机构-->
  8. <!--</p>-->
  9. <!--<provTreeListQy-->
  10. <!--ref="provTreeListQyRef"-->
  11. <!--v-show="showLeftTree"-->
  12. <!--:ddczId='dczId'-->
  13. <!--rootCode="000000"-->
  14. <!--rootType="1"-->
  15. <!--style="max-height:485px;"-->
  16. <!--@treeDataEmit="treeDataEmit"-->
  17. <!--@provTreeSelectChange="provTreeSelectChangeHandler_qy">-->
  18. <!--</provTreeListQy>-->
  19. <!--</el-aside>-->
  20. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  21. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">督查对象</p>
  22. <el-form style="padding:10px">
  23. <div>
  24. <el-form size="mini" :inline="true" class="demo-form-inline">
  25. <el-form-item label="对象名称">
  26. <el-input
  27. style="width:160px;"
  28. v-model="searchNameOfSzName"
  29. clearable
  30. placeholder="请输入对象名称"
  31. ></el-input>
  32. </el-form-item>
  33. <el-form-item label="超标洪水防御对象类型">
  34. <el-select v-model="formObj.type" placeholder="选择超标洪水防御对象类型" clearable style="width:100%;">
  35. <el-option
  36. v-for="item in typeList"
  37. :key="item.value"
  38. :label="item.label"
  39. :value="item.value">
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item>
  44. <el-button type="primary" @click="refreshCurrentShow">查询</el-button>
  45. <el-button type="primary" @click="addRsvrVisible=true">新增对象</el-button>
  46. </el-form-item>
  47. <!--<el-form-item>-->
  48. <!--<el-button type="primary" @click="toAddNewRsvr">添加对象</el-button>-->
  49. <!--</el-form-item>-->
  50. </el-form>
  51. <el-table
  52. border
  53. v-loading="loading"
  54. :data="currentShowList"
  55. tooltip-effect="dark"
  56. style="width: 100%"
  57. @selection-change="handleSelectionChange">
  58. <el-table-column align="center" type="selection" width="60"></el-table-column>
  59. <el-table-column align="center" prop="index" label="序号" min-width="40"></el-table-column>
  60. <el-table-column
  61. align="center"
  62. show-overflow-tooltip
  63. prop="nm"
  64. label="对象名称"
  65. min-width="100"
  66. ></el-table-column>
  67. <!--<el-table-column-->
  68. <!--align="center"-->
  69. <!--show-overflow-tooltip-->
  70. <!--prop="pro"-->
  71. <!--label="所属省份"-->
  72. <!--min-width="100"-->
  73. <!--&gt;</el-table-column>-->
  74. <!--<el-table-column-->
  75. <!--align="center"-->
  76. <!--show-overflow-tooltip-->
  77. <!--prop="orgId"-->
  78. <!--label="督查组织单位"-->
  79. <!--min-width="80"-->
  80. <!--&gt;</el-table-column>-->
  81. <el-table-column
  82. align="center"
  83. show-overflow-tooltip
  84. prop="type"
  85. label="超标洪水防御对象类型"
  86. :formatter="typeFormatter"
  87. min-width="100"
  88. ></el-table-column>
  89. </el-table>
  90. <div
  91. class="block"
  92. style="display:flex;flex-direction:row;justify-content:center;align-items:center;padding-top: 5px;background-color: #fff;"
  93. >
  94. <el-pagination
  95. small
  96. @current-change="handleCurrentChange"
  97. :pager-count="5"
  98. :current-page.sync="pageIndex"
  99. :page-size="pageSize"
  100. layout="total, prev, pager, next"
  101. :total="total"
  102. ></el-pagination>
  103. </div>
  104. </div>
  105. </el-form>
  106. </el-main>
  107. <el-dialog title="添加新对象" :visible.sync="addRsvrVisible" append-to-body>
  108. <el-form label-width="120px" :model="formObj" ref="formObj">
  109. <el-form-item label="超标洪水防御名称" required>
  110. <el-input v-model="formObj.name" autocomplete="off" style="width:70%;"></el-input>
  111. </el-form-item>
  112. <el-form-item label="超标洪水防御对象类型">
  113. <el-select v-model="formObj.type" placeholder="选择超标洪水防御对象类型" clearable style="width:70%;">
  114. <el-option
  115. v-for="item in typeList"
  116. :key="item.value"
  117. :label="item.label"
  118. :value="item.value">
  119. </el-option>
  120. </el-select>
  121. </el-form-item>
  122. <el-form-item label="所属省份" required>
  123. <div v-if="showLocSelect">
  124. <el-select v-model="provName" placeholder="选择省" @change="provChange" style="width:20%">
  125. <el-option
  126. v-for="item in provList"
  127. :key="item.adCode"
  128. :label="item.adName"
  129. :value="item.adCode">
  130. </el-option>
  131. </el-select>
  132. &#x3000;<span v-if="showLocSelect" @click="showLocSelect = false"
  133. style="color: #009fff;font-size:12px;cursor:pointer">取消</span>
  134. </div>
  135. <div v-else>
  136. <el-input v-model="formObj.pro" readonly autocomplete="off"
  137. style="width:70%;"></el-input>&#x3000;<span @click="showLocSelect = true"
  138. style="color: #009fff;font-size:12px;cursor:pointer">选择</span>
  139. </div>
  140. </el-form-item>
  141. </el-form>
  142. <div slot="footer" class="dialog-footer">
  143. <el-button @click="addRsvrVisible = false">取 消</el-button>
  144. <el-button type="primary" @click="addNewRsvr('formObj')">确 定</el-button>
  145. </div>
  146. </el-dialog>
  147. </el-container>
  148. <div slot="footer" class="dialog-footer">
  149. <el-button @click="dialogFormVisible = false">取 消</el-button>
  150. <el-button type="primary" @click="saveChange">确 定</el-button>
  151. </div>
  152. </el-dialog>
  153. </template>
  154. <script>
  155. import request from '@util/gw_ajax_request.js';
  156. import provTreeList from "@widget/provTreeList.vue";
  157. import {
  158. getObjListNotInspGroupId,
  159. addDcAndObjRel
  160. } from "@api/duChaDuiXiang_xsk_API.js";
  161. import {getSupObjListNotInspGroupIdCbhs} from '@api/duChaPlan.js'
  162. export default {
  163. components: {
  164. provTreeList: provTreeList,
  165. provTreeListQy: resolve => {
  166. require(['@widget/provTreeList_quyu.vue'], resolve)
  167. },
  168. },
  169. props: ["dczId", "dczName", "plnaId", "objType","adCodes","isNewPlan","isNew"],
  170. computed: {},
  171. data() {
  172. return {
  173. addOnce: false,
  174. searchNameOfSzName: "",
  175. searchNameOfAdName: "",
  176. searchNameOfwtdstNm: "",
  177. rsAdmDep: "",
  178. engScal: "",
  179. wtdstState: "",
  180. engLevel: "",
  181. wtdstType: "",
  182. stnm: '',
  183. pageIndex: 1,
  184. pageSize: 10,
  185. total: 0,
  186. currentShowList: [],
  187. dialogFormVisible: false,
  188. formLabelWidth: "120",
  189. addArr: "",
  190. addName: "",
  191. addLttd: "",
  192. addLgtd: "",
  193. multipleSelection: [],
  194. searchProvTreeListCode: "",
  195. qyDataList: [],
  196. loading: false,
  197. showLeftTree: true,
  198. addRsvrVisible: false,
  199. formObj: {
  200. bas: "",//所属流域 ,
  201. name: "",//对象名称* ,
  202. ord: "",//顺序 ,
  203. orgId: "",//督查组织单位 ,
  204. pro: "",//所属省份 ,
  205. type: "",//对象类型*
  206. },
  207. typeList: [
  208. {
  209. value: "1",
  210. label: "流域内大江大河"
  211. },
  212. {
  213. value: "2",
  214. label: "流域内跨省大江大河重要支流"
  215. },
  216. {
  217. value: "3",
  218. label: "非跨省大江大河重要支流和其他重要河流"
  219. },
  220. {
  221. value: "4",
  222. label: "全国重点防洪城市"
  223. },
  224. {
  225. value: "5",
  226. label: "全国重要防洪城市"
  227. },
  228. ],
  229. difangdengji: [
  230. {
  231. value: "1",
  232. label: "1级"
  233. },
  234. {
  235. value: "2",
  236. label: "2级"
  237. },
  238. {
  239. value: "3",
  240. label: "3级"
  241. },
  242. {
  243. value: "4",
  244. label: "4级"
  245. },
  246. {
  247. value: "5",
  248. label: "5级"
  249. },
  250. {
  251. value: "6",
  252. label: "5级以下"
  253. }
  254. ],
  255. props: {
  256. value: 'id',
  257. label: 'label',
  258. children: 'cities'
  259. },
  260. provList: [],
  261. cityList: [],
  262. countryList: [],
  263. showLocSelect: false,
  264. provName: '',
  265. cityName: '',
  266. countryName: '',
  267. provNames: '',
  268. cityNames: '',
  269. countryNames: '',
  270. }
  271. },
  272. watch: {
  273. dczId: function (n, o) {
  274. this.searchProvTreeListCode = "";
  275. },
  276. objType: function (n, o) {
  277. this.searchProvTreeListCode = "";
  278. this.objType = n;
  279. },
  280. qyDataList(n, o) {
  281. if (this.qyDataList.length == 0) {
  282. this.showLeftTree = false;
  283. } else {
  284. this.showLeftTree = true;
  285. }
  286. console.log("区域树" + n.length + this.showLeftTree + this.objType);
  287. this.getTableData_sz();
  288. // this.getAreaList()
  289. }
  290. },
  291. mounted() {
  292. this.getTableData_sz();
  293. this.getAreaList()
  294. },
  295. computed: {
  296. userId: function () {
  297. return localStorage.getItem("userid") ? localStorage.getItem("userid") : '1098101939614724096'
  298. },
  299. orgId(){
  300. return localStorage.getItem('orgId') ? localStorage.getItem('orgId') : "";
  301. }
  302. },
  303. methods: {
  304. typeFormatter(row, column) {
  305. return row.type == '1' ? "流域内大江大河" :
  306. row.type == '2' ? "流域内跨省大江大河重要支流" :
  307. row.type == '3' ? "非跨省大江大河重要支流和其他重要河流" :
  308. row.type == '4' ? "全国重点防洪城市" :
  309. row.type == '5' ? "全国重要防洪城市" : '';
  310. },
  311. rsAdmDepFormatter: function (row, column) {
  312. return row.rsAdmDep == 1
  313. ? "水利部门"
  314. : row.rsAdmDep == 2
  315. ? "电力部门"
  316. : row.rsAdmDep == 3
  317. ? "农业部门"
  318. : row.rsAdmDep == 4
  319. ? "林业部门"
  320. : row.rsAdmDep == 5
  321. ? "城建部门"
  322. : row.rsAdmDep == 6
  323. ? "航运部门"
  324. : row.rsAdmDep == 7
  325. ? "环保部门"
  326. : "其他部门";
  327. },
  328. showDialog() {
  329. this.dialogFormVisible = true;
  330. if (this.$refs['provTreeListQyRef']) {
  331. this.$refs['provTreeListQyRef'].getQyList();
  332. }
  333. this.getTableData_sz();
  334. },
  335. saveChange() {
  336. this.addObjectChange();
  337. },
  338. treeDataEmit(item) {
  339. this.qyDataList = item;
  340. if (this.qyDataList.length == 0) {
  341. this.showLeftTree = false;
  342. } else {
  343. this.showLeftTree = true;
  344. }
  345. },
  346. getTableData_sz() {
  347. var _self = this;
  348. if (_self.qyDataList.length == 0) {
  349. _self.showLeftTree = false;
  350. } else {
  351. _self.showLeftTree = true;
  352. }
  353. _self.loading = true;
  354. var str = '';
  355. for (var i = 0; i < _self.qyDataList.length; i++) {
  356. str += _self.qyDataList[i].adCode + ',';
  357. }
  358. str = str.substring(0, str.length - 1);
  359. getSupObjListNotInspGroupIdCbhs(str, _self.dczId, '', _self.pageSize, _self.pageIndex, '30', _self.searchNameOfSzName).then((res) => {
  360. _self.loading = false;
  361. _self.currentShowList = res.data.list;
  362. _self.currentShowList.forEach((element, index) => {
  363. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  364. });
  365. _self.total = res.data.total;
  366. })
  367. },
  368. getTableData_sz1() {
  369. var _self = this;
  370. getSupObjListNotInspGroupIdCbhs(_self.searchProvTreeListCode, _self.dczId, '', _self.pageSize, _self.pageIndex, '30', _self.searchNameOfSzName, _self.formObj.type , _self.orgId).then((res) => {
  371. _self.loading = false;
  372. _self.currentShowList = res.data.list;
  373. _self.currentShowList.forEach((element, index) => {
  374. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  375. });
  376. _self.total = res.data.total;
  377. })
  378. },
  379. handleSelectionChange(val) {
  380. this.multipleSelection = val;
  381. },
  382. handleCurrentChange(val) {
  383. console.log(`当前页: ${val}`);
  384. this.refreshCurrentShow();
  385. },
  386. refreshCurrentShow: function () {
  387. if (this.searchProvTreeListCode) {
  388. this.getTableData_sz1();
  389. } else {
  390. this.getTableData_sz();
  391. }
  392. },
  393. toAddNewRsvr() {
  394. for(var obj in this.formObj){
  395. this.formObj[obj] = '';
  396. }
  397. this.addRsvrVisible = true;
  398. },
  399. getAreaList(val) {
  400. let areaParams = {
  401. adName: "",
  402. id: this.dczId,
  403. pageNum: 1,
  404. pageSize: 10000
  405. }
  406. let adCode = ''
  407. if (!val) {
  408. adCode = '000000000000'
  409. } else {
  410. adCode = val
  411. }
  412. request.get('/dc/ad/base/getAdData', {params: {'adCode': adCode}}).then(res => {
  413. if (res.success) {
  414. if (this.curSelectItem == 1) {
  415. this.cityList = res.data
  416. } else if (this.curSelectItem == 2) {
  417. this.countryList = res.data
  418. } else {
  419. this.provList = res.data
  420. }
  421. }
  422. })
  423. },
  424. provChange(val) {
  425. this.curSelectItem = 1
  426. this.cityName = ''
  427. this.countryName = ''
  428. this.formObj.adCode = val
  429. this.provList.forEach(ele => {
  430. if (ele.adCode == this.provName) {
  431. this.provNames = ele.adName
  432. }
  433. })
  434. this.formObj.pro = this.provNames
  435. // this.getAreaList(val)
  436. },
  437. cityChange(val) {
  438. this.curSelectItem = 2
  439. if (val && val != '') {
  440. this.formObj.adCode = val
  441. this.countryName = ''
  442. this.cityList.forEach(ele => {
  443. if (ele.adCode == this.cityName) {
  444. this.cityNames = ele.adName
  445. }
  446. })
  447. this.formObj.adName = this.provNames + this.cityNames
  448. this.getAreaList(val)
  449. }
  450. },
  451. countryChange(val) {
  452. if (val && val != '') {
  453. this.formObj.adCode = val
  454. this.countryList.forEach(ele => {
  455. if (ele.adCode == this.countryName) {
  456. this.countryNames = ele.adName
  457. }
  458. })
  459. this.formObj.adName = this.provNames + this.cityNames + this.countryNames
  460. }
  461. },
  462. addNewRsvr(formName) {
  463. let _this = this
  464. if (!this.formObj.name) {
  465. this.$message.warning('请输入对象名称')
  466. return
  467. }
  468. if (!this.formObj.type) {
  469. this.$message.warning('请输入对象类型')
  470. return
  471. }
  472. if (!this.provName) {
  473. this.$message.warning('请选择省')
  474. return
  475. }
  476. this.formObj.pro = this.provName;
  477. this.$refs[formName].validate((valid) => {
  478. if (valid) {
  479. request.post('/att/efp/base', this.formObj).then(res => {
  480. if (res.success) {
  481. _this.$message.success('添加成功')
  482. _this.getTableData_sz1();
  483. _this.formObj = {};
  484. _this.addRsvrVisible = false;
  485. } else {
  486. _this.$message.error(res.message)
  487. }
  488. }).catch(res => {
  489. _this.$message.error('请求错误' + res.message)
  490. })
  491. } else {
  492. console.log('error submit!!');
  493. return false;
  494. }
  495. });
  496. },
  497. addObjectChange: function () {
  498. //提交当前选中对象
  499. var _self = this;
  500. var names = [];
  501. if (_self.addOnce) {
  502. _self.addOnce = false;
  503. return;
  504. }
  505. _self.addOnce = true
  506. var objArr = [];
  507. var objIds = [];
  508. const length = _self.multipleSelection.length;
  509. for (let i = 0; i < length; i++) {
  510. var obj = {};
  511. obj['code'] = _self.multipleSelection[i].id;
  512. obj['name'] = _self.multipleSelection[i].nm;
  513. obj['ptype'] = '30';
  514. objArr.push(obj);
  515. objIds.push(_self.multipleSelection[i].id);
  516. }
  517. if(this.isNewPlan){
  518. var obj = {
  519. persid: this.userId,
  520. nm: this.dczName,
  521. id: this.dczId,
  522. persAllAreaDtoList: [],
  523. persAllDtoList: [],
  524. persAllObjDtoList: objArr
  525. };
  526. this.addOnce = false;
  527. this.dialogFormVisible = false;
  528. this.$message.success("选择成功");
  529. this.$emit("addSuccess",{obj:obj,names:names.join(",")});
  530. return;
  531. }
  532. try {
  533. request.post("/supervision/plan/insertSupervisionObj", {
  534. persid: this.userId,
  535. nm: this.dczName,
  536. id: this.dczId,
  537. persAllAreaDtoList: [],
  538. persAllDtoList: [],
  539. persAllObjDtoList: objArr
  540. }).then(response => {
  541. if (response.success == true) {
  542. if(this.isNew){
  543. _self.addOnce = false;
  544. _self.$message.success("添加成功");
  545. _self.$emit('addSuccess',{listArr:objArr,listIds:objIds});
  546. _self.dialogFormVisible = false;
  547. }else {
  548. _self.addOnce = false;
  549. _self.dialogFormVisible = false;
  550. _self.$message.success("添加成功");
  551. _self.$emit("addSuccess");
  552. }
  553. }
  554. });
  555. } catch (e) {
  556. alert("暂无数据");
  557. }
  558. },
  559. provTreeSelectChangeHandler: function (params) {
  560. this.searchProvTreeListCode = params.code;
  561. this.getTableData_sz1();
  562. },
  563. provTreeSelectChangeHandler_qy(params) {
  564. this.searchProvTreeListCode = params.code;
  565. this.getTableData_sz1();
  566. },
  567. }
  568. };
  569. </script>
  570. <style>
  571. </style>