9f594f96d10a081d8304ac2edbc7dbc8061ff63e.svn-base 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. <template>
  2. <!-- 弹出窗 -->
  3. <el-dialog title="添加督查对象" width="60%" @close="closeDuChaDuiXiangDialog" :visible.sync="dialogFormVisible"
  4. :close-on-click-modal="false"
  5. :modal-append-to-body="true"
  6. :append-to-body="true">
  7. <el-container>
  8. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  9. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">督查对象</p>
  10. <el-form style="padding:10px">
  11. <div>
  12. <el-form size="mini" :inline="true" class="demo-form-inline">
  13. <el-form-item label="供水工程名称">
  14. <el-input
  15. style="width:140px;"
  16. v-model="searchNameOfRsName"
  17. clearable
  18. placeholder="请输入供水工程名称"
  19. ></el-input>
  20. </el-form-item>
  21. <el-form-item label="工程类型">
  22. <el-select style="width:200px;" v-model="engScal" clearable placeholder="请选择">
  23. <el-option label="万人工程" value="1"></el-option>
  24. <el-option label="千人工程" value="2"></el-option>
  25. <el-option label="千人以下集中供水工程" value="3"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item>
  29. <el-button type="primary" @click="refreshCurrentShow">查询</el-button>
  30. </el-form-item>
  31. <el-form-item>
  32. <el-button type="primary" @click="toAddNewRsvr">添加新供水工程</el-button>
  33. </el-form-item>
  34. </el-form>
  35. <el-table
  36. border
  37. v-loading="loading"
  38. :data="currentShowList"
  39. tooltip-effect="dark"
  40. style="width: 100%"
  41. @selection-change="handleSelectionChange"
  42. >
  43. <el-table-column align="center" type="selection" width="60"></el-table-column>
  44. <el-table-column align="center" prop="index" label="序号" min-width="40"></el-table-column>
  45. <el-table-column
  46. align="center"
  47. show-overflow-tooltip
  48. prop="cwsName"
  49. label="供水工程名称"
  50. min-width="100"
  51. ></el-table-column>
  52. <el-table-column
  53. align="center"
  54. show-overflow-tooltip
  55. prop="cwsLoc"
  56. label="所在地点"
  57. min-width="100"
  58. ></el-table-column>
  59. <el-table-column
  60. align="center"
  61. show-overflow-tooltip
  62. prop="engType"
  63. label="工程类型"
  64. :formatter="engScalFormatter"
  65. min-width="80"
  66. ></el-table-column>
  67. </el-table>
  68. <div
  69. class="block"
  70. style="display:flex;flex-direction:row;justify-content:center;align-items:center;padding-top: 5px;background-color: #fff;"
  71. >
  72. <el-pagination
  73. small
  74. @current-change="handleCurrentChange"
  75. :pager-count="5"
  76. :current-page.sync="pageIndex"
  77. :page-size="pageSize"
  78. layout="total, prev, pager, next"
  79. :total="total"
  80. ></el-pagination>
  81. </div>
  82. </div>
  83. </el-form>
  84. </el-main>
  85. </el-container>
  86. <div slot="footer" class="dialog-footer">
  87. <el-button @click="closeDuChaDuiXiangDialog">取 消</el-button>
  88. <el-button type="primary" @click="saveChange">确 定</el-button>
  89. </div>
  90. <el-dialog title="添加新供水工程" :visible.sync="addRsvrVisible" append-to-body width="40%" >
  91. <el-form label-width="200px" :model="formObj" :rules="rules" ref="formObj">
  92. <el-form-item label="工程名称" prop="rsName">
  93. <el-input v-model="formObj.rsName" clearable autocomplete="off" style="width:60%;"></el-input>
  94. </el-form-item>
  95. <!--<el-form-item label="行政区域" required>-->
  96. <!--<div>-->
  97. <!--<el-select v-model="provName" placeholder="选择省" @change="provChange" style="width:20%">-->
  98. <!--<el-option-->
  99. <!--v-for="item in provList"-->
  100. <!--:key="item.adCode"-->
  101. <!--:label="item.adName"-->
  102. <!--:value="item.adCode">-->
  103. <!--</el-option>-->
  104. <!--</el-select>-->
  105. <!--<el-select v-model="cityName" placeholder="选择市" @change="cityChange" style="width:20%">-->
  106. <!--<el-option-->
  107. <!--v-for="item in cityList"-->
  108. <!--:key="item.adCode"-->
  109. <!--:label="item.adName"-->
  110. <!--:value="item.adCode">-->
  111. <!--</el-option>-->
  112. <!--</el-select>-->
  113. <!--<el-select v-model="countryName" placeholder="选择县" @change="countryChange" style="width:20%">-->
  114. <!--<el-option-->
  115. <!--v-for="item in countryList"-->
  116. <!--:key="item.adCode"-->
  117. <!--:label="item.adName"-->
  118. <!--:value="item.adCode">-->
  119. <!--</el-option>-->
  120. <!--</el-select>-->
  121. <!--</div>-->
  122. <!--</el-form-item>-->
  123. <el-form-item label="所在地点" prop="location">
  124. <el-input v-model="formObj.location" clearable autocomplete="off" style="width:60%;"></el-input>
  125. </el-form-item>
  126. <el-form-item label="工程类型" prop="engType">
  127. <el-select v-model="formObj.engType" clearable placeholder="请选择" autocomplete="off" style="width:60%;">
  128. <el-option label="万人工程" value="1"></el-option>
  129. <el-option label="千人工程" value="2"></el-option>
  130. <el-option label="千人以下集中供水工程" value="3"></el-option>
  131. </el-select>
  132. </el-form-item>
  133. </el-form>
  134. <div slot="footer" class="dialog-footer">
  135. <el-button @click="addRsvrVisible = false">取 消</el-button>
  136. <el-button type="primary" @click="addNewRsvr('formObj')">确 定</el-button>
  137. </div>
  138. </el-dialog>
  139. </el-dialog>
  140. </template>
  141. <script>
  142. import request from '@util/gw_ajax_request'
  143. import provTreeList from "@widget/provTreeList.vue";
  144. import {
  145. getObjListNotInspGroupId,
  146. addDcAndObjRel
  147. } from "@api/duChaDuiXiang_xsk_API.js";
  148. export default {
  149. components: {
  150. provTreeList: provTreeList,
  151. provTreeListQy: resolve => {
  152. require(['@widget/provTreeList_quyu.vue'], resolve)
  153. },
  154. },
  155. props: ["dczId", "dczName", "plnaId", "objType", "rowData","villageAdCode"],
  156. data() {
  157. return {
  158. addOnce: false,
  159. objTypeName: '小水库',
  160. xsk: true,
  161. ncys: false,
  162. shgc: false,
  163. dxs: false,
  164. searchNameOfRsName: "",
  165. searchNameOfAdName: "",
  166. searchNameOfwtdstNm: "",
  167. addLevel: "",
  168. rsAdmDep: "",
  169. engScal: "",
  170. wtdstState: "",
  171. engLevel: "",
  172. wtdstType: "",
  173. stnm: '',
  174. pageIndex: 1,
  175. pageSize: 10,
  176. total: 0,
  177. currentShowList: [],
  178. dialogFormVisible: true,
  179. formLabelWidth: "120",
  180. addArr: "",
  181. addName: "",
  182. addLttd: "",
  183. addLgtd: "",
  184. multipleSelection: [],
  185. searchProvTreeListCode: "",
  186. qyDataList: [],
  187. loading: false,
  188. showLeftTree: true,
  189. addRsvrVisible: false,
  190. formObj: {
  191. "rsName": "",
  192. "rsAdmName": "",
  193. "rsLoc": "",
  194. "location": "",
  195. "engType": ""
  196. },
  197. areasList: [],
  198. props: {
  199. value: 'id',
  200. label: 'label',
  201. children: 'cities'
  202. },
  203. rules: {
  204. rsName: [
  205. {required: true, message: '请输入工程名称', trigger: 'blur'},
  206. ],
  207. location: [
  208. {required: true, message: '请输入所在地点', trigger: 'blur'}
  209. ],
  210. engType: [
  211. {required: true, message: '请选择工程类型', trigger: 'blur'}
  212. ]
  213. },
  214. provList: [],
  215. cityList: [],
  216. countryList: [],
  217. provName: '',
  218. cityName: '',
  219. countryName: '',
  220. provNames: '',
  221. cityNames: '',
  222. countryNames: '',
  223. curSelectItem: 0
  224. }
  225. },
  226. watch: {
  227. dczId: function (n, o) {
  228. this.searchProvTreeListCode = "";
  229. },
  230. qyDataList(n, o) {
  231. if (this.qyDataList.length == 0) {
  232. this.showLeftTree = false;
  233. } else {
  234. this.showLeftTree = true;
  235. }
  236. console.log("区域树" + n.length + this.showLeftTree + this.objType);
  237. if (this.objType == '1') {
  238. this.getTableData_sk();
  239. this.getAreaList()
  240. } else if (this.objType == '5') {
  241. this.getTableData_dxs();
  242. }
  243. }
  244. },
  245. mounted() {
  246. this.getTableData_sk();
  247. },
  248. computed: {
  249. userId: function () {
  250. return localStorage.getItem("userid") ? localStorage.getItem("userid") : '1098101939614724096'
  251. },
  252. },
  253. methods: {
  254. changeCurrentObjSelectName(item) {
  255. this.objType = item;
  256. },
  257. selectChange(val) {
  258. console.log(val);
  259. this.objType = val;
  260. },
  261. engScalFormatter: function (row, column) {
  262. return row.engType == 1 ? "万人工程" :
  263. row.engType == 2 ? "千人工程" :
  264. row.engType == 3 ? "千人以下集中供水工程" : ""
  265. },
  266. wtdstStateFormatter: function (row, column) {
  267. return row.wtdstState == 1 ? "已修复" : "未修复";
  268. },
  269. rsAdmDepFormatter: function (row, column) {
  270. return row.rsAdmDep == 1
  271. ? "水利部门"
  272. : row.rsAdmDep == 2
  273. ? "电力部门"
  274. : row.rsAdmDep == 3
  275. ? "农业部门"
  276. : row.rsAdmDep == 4
  277. ? "林业部门"
  278. : row.rsAdmDep == 5
  279. ? "城建部门"
  280. : row.rsAdmDep == 6
  281. ? "航运部门"
  282. : row.rsAdmDep == 7
  283. ? "环保部门"
  284. : "其他部门";
  285. },
  286. adGradFormatter: function (row, column) {
  287. return row.adGrad == 1
  288. ? "国家级"
  289. : row.adGrad == 2
  290. ? "省级"
  291. : row.adGrad == 3
  292. ? "地市级"
  293. : row.adGrad == 4
  294. ? "县级"
  295. : row.adGrad == 5
  296. ? "乡级"
  297. : row.adGrad == 6
  298. ? "村"
  299. : "村组";
  300. },
  301. adNameFormatter: function (row, column) {
  302. return row.adName;
  303. },
  304. adFullNameFormatter: function (row, column) {
  305. return row.adFullName;
  306. },
  307. adCodeFormatter: function (row, column) {
  308. return row.adCode;
  309. },
  310. saveChange() {
  311. this.addObjectChange();
  312. },
  313. treeDataEmit(item) {
  314. this.qyDataList = item;
  315. if (this.qyDataList.length == 0) {
  316. this.showLeftTree = false;
  317. } else {
  318. this.showLeftTree = true;
  319. }
  320. },
  321. getTableData_sk() {
  322. var _self = this;
  323. // if(_self.qyDataList.length == 0){
  324. // _self.showLeftTree = false;
  325. // }else{
  326. // _self.showLeftTree = true;
  327. // }
  328. _self.loading = true;
  329. // var str = '';
  330. // for(var i=0;i<_self.qyDataList.length;i++){
  331. // str+= _self.qyDataList[i].adCode+',';
  332. // }
  333. // str = str.substring(0,str.length-1);
  334. // var obj = {
  335. // "adcd": str,
  336. // "rsName": _self.searchNameOfRsName,
  337. // "engScal": _self.engScal,
  338. // "id": _self.userId,
  339. // "groupId":_self.dczId,
  340. // "pageNum":_self.pageIndex,
  341. // "pageSize":_self.pageSize
  342. // }
  343. let obj = {
  344. "adCode": _self.rowData.adCode,
  345. "engType": _self.engScal,
  346. "name": _self.searchNameOfRsName,
  347. "pageNum": _self.pageIndex,
  348. "pageSize": _self.pageSize,
  349. "regstrId": _self.rowData.rgstrId
  350. }
  351. request.post('/bis/insp/vill2021/cws/pageNotDC', obj).then((res) => {
  352. _self.loading = false;
  353. _self.currentShowList = res.data.list;
  354. _self.currentShowList.forEach((element, index) => {
  355. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  356. });
  357. _self.total = res.data.total;
  358. })
  359. },
  360. handleSelectionChange(val) {
  361. this.multipleSelection = val;
  362. },
  363. handleCurrentChange(val) {
  364. console.log(`当前页: ${val}`);
  365. this.refreshCurrentShow();
  366. },
  367. refreshCurrentShow: function () {
  368. this.getTableData_sk();
  369. },
  370. addObjectChange: function () {
  371. const length = this.multipleSelection.length;
  372. for (let i = 0; i < length; i++) {
  373. this.addArr += this.multipleSelection[i].cwsCode + ";";
  374. }
  375. this.addArr = this.addArr.substr(0, this.addArr.length - 1);
  376. try {
  377. let obj = {
  378. "adCode": this.villageAdCode,
  379. "cwsIds": this.addArr,
  380. "regstrId": this.rowData.rgstrId
  381. }
  382. request.post(`/bis/insp/vill2021/cws/addBatch`,obj)
  383. .then(res =>{
  384. if(res.success){
  385. this.dialogFormVisible = false;
  386. this.$message.success("添加成功");
  387. this.$emit("addSuccess");
  388. _self.addArr = "";
  389. }else{
  390. this.$message.warning(res.message);
  391. }
  392. })
  393. } catch (e) {
  394. alert("暂无数据");
  395. }
  396. },
  397. toAddNewRsvr() {
  398. this.cityList = [];
  399. this.countryList = [];
  400. this.provList = [];
  401. this.provName = "";
  402. this.cityName = "";
  403. this.countryName = "";
  404. for (var obj in this.formObj) {
  405. this.formObj[obj] = '';
  406. }
  407. this.addRsvrVisible = true;
  408. this.curSelectItem = null;
  409. // this.getAreaList();
  410. },
  411. addNewRsvr(formName) {
  412. let obj = {
  413. "addvcd": this.rowData.adCode,
  414. "cwsName": this.formObj.rsName,
  415. "cwsLoc": this.formObj.location,
  416. "engType": this.formObj.engType,
  417. }
  418. this.$refs[formName].validate((valid) => {
  419. if (valid) {
  420. request.post('/dc/att/cwsBase/insert', obj).then(res => {
  421. if (res.success) {
  422. this.$message.success('添加成功')
  423. this.getTableData_sk();
  424. this.addRsvrVisible = false
  425. } else {
  426. _this.$message.error(res.message)
  427. }
  428. }).catch(res => {
  429. this.$message.error(res.message)
  430. })
  431. } else {
  432. console.log('error submit!!');
  433. return false;
  434. }
  435. });
  436. },
  437. getAreaList(val) {
  438. let adCode = ''
  439. if (!val) {
  440. adCode = '000000000000'
  441. } else {
  442. adCode = val
  443. }
  444. request.get('/dc/ad/base/getAdData', {params: {'adCode': adCode}}).then(res => {
  445. if (res.success) {
  446. if (this.curSelectItem == 1) {
  447. this.cityList = res.data
  448. } else if (this.curSelectItem == 2) {
  449. this.countryList = res.data
  450. } else {
  451. this.provList = res.data
  452. }
  453. }
  454. })
  455. },
  456. handleItemChange(val) {
  457. this.getAreaList(val)
  458. },
  459. provChange(val) {
  460. this.curSelectItem = 1
  461. this.cityName = ''
  462. this.countryName = ''
  463. this.formObj.admDiv = val
  464. this.provList.forEach(ele => {
  465. if (ele.adCode == this.provName) {
  466. this.provNames = ele.adName
  467. }
  468. })
  469. this.formObj.location = this.provNames
  470. this.getAreaList(val)
  471. },
  472. cityChange(val) {
  473. this.curSelectItem = 2;
  474. if (val && val != '') {
  475. this.formObj.admDiv = val
  476. this.countryName = ''
  477. this.cityList.forEach(ele => {
  478. if (ele.adCode == this.cityName) {
  479. this.cityNames = ele.adName
  480. }
  481. })
  482. this.formObj.location = this.provNames + this.cityNames
  483. this.getAreaList(val)
  484. }
  485. },
  486. countryChange(val) {
  487. if (val && val != '') {
  488. this.formObj.admDiv = val
  489. this.countryList.forEach(ele => {
  490. if (ele.adCode == this.countryName) {
  491. this.countryNames = ele.adName
  492. }
  493. })
  494. this.formObj.location = this.provNames + this.cityNames + this.countryNames
  495. }
  496. },
  497. closeDuChaDuiXiangDialog() {
  498. this.dialogFormVisible = false;
  499. this.$emit("closeDuChaDuiXiangDialog");
  500. }
  501. }
  502. };
  503. </script>
  504. <style>
  505. </style>