18a5c5b4379863db52cfd1a2da6cfb7ab0c763d0.svn-base 21 KB

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