dad9e52702a126edde3250c3ca5c3e5065a7a5a7.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. <template>
  2. <!-- 弹出窗 -->
  3. <el-dialog title="添加督查对象" :visible.sync="dialogFormVisible" width="80%" @close="closeWindowEvent" 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" :model="formInline" class="demo-form-inline">
  33. <el-form-item label="对象名称">
  34. <el-input
  35. style="width:140px;"
  36. v-model="formInline.utName"
  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-form-item>
  44. <el-form-item>
  45. <el-button type="primary" @click="toAddNewRsvr">添加新对象</el-button>
  46. </el-form-item>
  47. </el-form>
  48. <el-table
  49. border
  50. v-loading="loading"
  51. :data="currentShowList"
  52. tooltip-effect="dark"
  53. style="width: 100%"
  54. @selection-change="handleSelectionChange"
  55. >
  56. <el-table-column align="center" type="selection" width="60"></el-table-column>
  57. <el-table-column align="center" prop="index" label="序号" min-width="40"></el-table-column>
  58. <el-table-column
  59. align="center"
  60. show-overflow-tooltip
  61. prop="nm"
  62. label="项目名称"
  63. min-width="100"
  64. ></el-table-column>
  65. <el-table-column
  66. align="center"
  67. show-overflow-tooltip
  68. prop="type"
  69. label="工程类型"
  70. min-width="100"
  71. ></el-table-column>
  72. <el-table-column
  73. align="center"
  74. show-overflow-tooltip
  75. prop="adName"
  76. label="行政区划"
  77. min-width="100"
  78. ></el-table-column>
  79. <el-table-column
  80. align="center"
  81. show-overflow-tooltip
  82. prop="location"
  83. label="位置"
  84. min-width="100"
  85. ></el-table-column>
  86. </el-table>
  87. <div
  88. class="block"
  89. style="display:flex;flex-direction:row;justify-content:center;align-items:center;padding-top: 5px;background-color: #fff;"
  90. >
  91. <el-pagination
  92. small
  93. @current-change="handleCurrentChange"
  94. :pager-count="5"
  95. :current-page.sync="pageIndex"
  96. :page-size="pageSize"
  97. layout="total, prev, pager, next"
  98. :total="total"
  99. ></el-pagination>
  100. </div>
  101. </div>
  102. <!-- </el-form-item> -->
  103. </el-form>
  104. </el-main>
  105. </el-container>
  106. <el-dialog title="添加新对象" :visible.sync="addRsvrVisible" append-to-body>
  107. <el-form label-width="220px" :model="formObj" :rules="rules" ref="formObj">
  108. <el-form-item label="项目名称" required >
  109. <el-input v-model="formObj.name" autocomplete="off" style="width:70%;"></el-input>
  110. </el-form-item>
  111. <el-form-item label="项目编号" required >
  112. <el-input v-model="formObj.code" autocomplete="off" style="width:70%;"></el-input>
  113. </el-form-item>
  114. <el-form-item label="项目类型" required >
  115. <el-input v-model="formObj.type" 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.location" autocomplete="off" style="width:70%;"></el-input>
  147. </el-form-item>
  148. <el-form-item label="经度">
  149. <el-input v-model="formObj.gdX" autocomplete="off" style="width:70%;"></el-input>
  150. </el-form-item>
  151. <el-form-item label="纬度">
  152. <el-input v-model="formObj.gdY" autocomplete="off" style="width:70%;"></el-input>
  153. </el-form-item>
  154. </el-form>
  155. <div slot="footer" class="dialog-footer">
  156. <el-button @click="addRsvrVisible = false">取 消</el-button>
  157. <el-button type="primary" @click="addNewRsvr('formObj')">确 定</el-button>
  158. </div>
  159. </el-dialog>
  160. <div slot="footer" class="dialog-footer">
  161. <el-button @click="dialogFormVisible = false">取 消</el-button>
  162. <el-button type="primary" @click="saveChange">确 定</el-button>
  163. </div>
  164. </el-dialog>
  165. </template>
  166. <script>
  167. import request from '@util/gw_ajax_request.js';
  168. import provTreeList from "@widget/provTreeList.vue";
  169. import {getObjListNotInspGroupId} from "@api/duChaDuiXiang_xsk_API.js";
  170. import {getTdfjList,addDcAndObjRel,getOtherTableData} from "@api/duChaDuiXiang_tdfj_API.js";
  171. export default {
  172. components: {
  173. provTreeList: provTreeList,
  174. provTreeListQy:resolve => {require(['@widget/provTreeList_quyu.vue'],resolve)},
  175. },
  176. props: ["dczId", "dczName", "plnaId", "objType","adCodes","isNewPlan"],
  177. computed: {},
  178. data() {
  179. return {
  180. formInline:{
  181. name:'',
  182. },
  183. addOnce:false,
  184. objTypeName:'节水',
  185. searchNameOfRsName: "",
  186. searchNameOfAdName: "",
  187. searchNameOfwtdstNm: "",
  188. addLevel: "",
  189. rsAdmDep: "",
  190. engScal: "",
  191. wtdstState: "",
  192. engLevel: "",
  193. wtdstType: "",
  194. stnm:'',
  195. pageIndex: 1,
  196. pageSize: 10,
  197. total: 0,
  198. currentShowList: [],
  199. dialogFormVisible: false,
  200. formLabelWidth: "120",
  201. addArr: "",
  202. addName:"",
  203. addLttd:"",
  204. addLgtd:"",
  205. multipleSelection: [],
  206. searchProvTreeListCode: "",
  207. qyDataList:[],
  208. loading:false,
  209. showLeftTree:true,
  210. addRsvrVisible: false,
  211. formObj: {
  212. adCode:"",
  213. adName:"",
  214. name:"",
  215. code:"",
  216. type:"",
  217. location:"",
  218. gdX:"",
  219. gdY:""
  220. },
  221. areasList:[],
  222. gongchengguimo:[
  223. {
  224. value: "4",
  225. label: "小(1)型"
  226. },
  227. {
  228. value: "5",
  229. label: "小(2)型"
  230. }
  231. ],
  232. zhubaleixing:[
  233. {
  234. value: "1",
  235. label: "混凝土坝"
  236. },
  237. {
  238. value: "2",
  239. label: "碾压混凝土坝"
  240. },
  241. {
  242. value: "3",
  243. label: "浆砌石坝"
  244. },
  245. {
  246. value: "4",
  247. label: "土坝"
  248. },
  249. {
  250. value: "5",
  251. label: "堆石坝"
  252. },
  253. {
  254. value: "6",
  255. label: "挡水坝"
  256. },
  257. {
  258. value: "7",
  259. label: "其他"
  260. }
  261. ],
  262. initLoacData: [{
  263. label: '江苏',
  264. cities: []
  265. }, {
  266. label: '浙江',
  267. cities: []
  268. }],
  269. props: {
  270. value: 'id',
  271. label: 'label',
  272. children: 'cities'
  273. },
  274. rules: {
  275. rsName: [
  276. { required: true, message: '请输入水库名称', trigger: 'blur' },
  277. ],
  278. rsAdmName: [
  279. { required: true, message: '请输入管理单位', trigger: 'blur' }
  280. ],
  281. compDate: [
  282. { required: true, message: '请选择完成时间', trigger: 'blur' }
  283. ]
  284. },
  285. provList: [],
  286. cityList: [],
  287. countryList: [],
  288. provName: '',
  289. cityName: '',
  290. countryName: '',
  291. provNames: '',
  292. cityNames: '',
  293. countryNames: '',
  294. curSelectItem: 0
  295. }
  296. },
  297. watch: {
  298. dczId: function(n, o) {
  299. this.searchProvTreeListCode = "";
  300. },
  301. objType: function(n, o) {
  302. this.searchProvTreeListCode = "";
  303. }
  304. },
  305. mounted() {
  306. },
  307. computed:{
  308. userId:function(){
  309. return localStorage.getItem("userid")? localStorage.getItem("userid"): '1098101939614724096'
  310. },
  311. },
  312. methods: {
  313. changeCurrentObjSelectName(item){
  314. this.objType = item;
  315. },
  316. selectChange(val){
  317. console.log(val);
  318. this.objType = val;
  319. },
  320. utTypeFormatter: function(row, column) {
  321. return row.type == 1 ? "钢铁企业" :
  322. row.type == 2 ? "高校" :"宾馆";
  323. },
  324. utPptFormatter: function(row, column) {
  325. return row.utPpt == 1
  326. ? "节水型": "非节水型";
  327. },
  328. adNameFormatter:function(row,column){
  329. return row.adName;
  330. },
  331. adFullNameFormatter:function(row,column){
  332. return row.adFullName;
  333. },
  334. adCodeFormatter:function(row,column){
  335. return row.adCode;
  336. },
  337. showDialog() {
  338. this.dialogFormVisible = true;
  339. this.getAreaList();
  340. if(this.$refs['provTreeListQyRef']){
  341. this.$refs['provTreeListQyRef'].getQyList();
  342. }
  343. this.getTableData_sk();
  344. },
  345. saveChange() {
  346. this.addObjectChange();
  347. },
  348. treeDataEmit(item){
  349. if(item.length == 0){
  350. this.showLeftTree = false;
  351. }else{
  352. this.showLeftTree = true;
  353. }
  354. },
  355. getTableData_dxs(){
  356. var _self = this;
  357. if(_self.qyDataList.length == 0){
  358. _self.showLeftTree = false;
  359. }else{
  360. _self.showLeftTree = true;
  361. }
  362. _self.loading = true;
  363. var str = '';
  364. for(var i=0;i<_self.qyDataList.length;i++){
  365. str+= _self.qyDataList[i].adCode+',';
  366. }
  367. str = str.substring(0,str.length-1)
  368. var obj = {
  369. "adcd": str,
  370. "adnm":'',
  371. "groupId": _self.dczId,
  372. "stcd": '',
  373. "stnm":_self.stnm,
  374. "sttp":'',
  375. "pageNum":_self.pageIndex,
  376. "pageSize":_self.pageSize
  377. }
  378. request.post('/dc/insp/obj/getGrwNotInGroup',obj).then((res)=>{
  379. _self.loading = false;
  380. _self.currentShowList = res.data.list;
  381. _self.currentShowList.forEach((element, index) => {
  382. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  383. });
  384. _self.total = res.data.total;
  385. })
  386. },
  387. getTableData_sk(){
  388. var _self = this;
  389. getTdfjList(_self.pageIndex,_self.pageSize,_self.objType,_self.formInline.utName,_self.dczId,_self.searchProvTreeListCode).then((response)=>{
  390. _self.loading = false;
  391. _self.currentShowList = response.data.list;
  392. _self.currentShowList.forEach((element, index) => {
  393. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  394. });
  395. _self.total = response.data.total;
  396. })
  397. },
  398. handleSelectionChange(val) {
  399. this.multipleSelection = val;
  400. },
  401. handleCurrentChange(val) {
  402. console.log(`当前页: ${val}`);
  403. this.refreshCurrentShow();
  404. },
  405. refreshCurrentShow: function() {
  406. this.getTableData_sk();
  407. },
  408. addObjectChange: function() {
  409. //提交当前选中对象
  410. var _self = this;
  411. var names = [];
  412. if(_self.addOnce){
  413. _self.addOnce = false;
  414. return;
  415. }
  416. _self.addOnce = true
  417. var objArr = [];
  418. const length = _self.multipleSelection.length;
  419. for (let i = 0; i < length; i++) {
  420. var obj = {};
  421. obj['code'] = _self.multipleSelection[i].code;
  422. obj['name'] = _self.multipleSelection[i].nm;
  423. obj['ptype'] = _self.objType;
  424. objArr.push(obj);
  425. names.push(_self.multipleSelection[i].nm);
  426. }
  427. if(this.isNewPlan){
  428. var obj = {
  429. persid :this.userId,
  430. nm: this.dczName,
  431. id: this.dczId,
  432. persAllAreaDtoList: [],
  433. persAllDtoList: [],
  434. persAllObjDtoList: objArr
  435. };
  436. this.addOnce = false;
  437. this.dialogFormVisible = false;
  438. this.$message.success("选择成功");
  439. this.$emit("addSuccess",{obj:obj,names:names.join(",")});
  440. return;
  441. }
  442. try {
  443. request.post("/supervision/plan/insertSupervisionObj", {
  444. persid :this.userId,
  445. nm: this.dczName,
  446. id: this.dczId,
  447. persAllAreaDtoList: [],
  448. persAllDtoList: [],
  449. persAllObjDtoList: objArr
  450. }).then(response => {
  451. if (response.success == true) {
  452. _self.addOnce = false;
  453. _self.dialogFormVisible = false;
  454. _self.$message.success("添加成功");
  455. _self.$emit("addSuccess");
  456. }
  457. });
  458. } catch (e) {
  459. alert("暂无数据");
  460. }
  461. },
  462. provTreeSelectChangeHandler: function(params) {
  463. this.searchProvTreeListCode = params.code;
  464. this.getTableData_sk();
  465. },
  466. provTreeSelectChangeHandler_qy(params){
  467. this.searchProvTreeListCode = params.code;
  468. this.getTableData_sk();
  469. },
  470. getTableData_dxs1(){
  471. var _self = this;
  472. var obj = {
  473. "adcd": _self.searchProvTreeListCode,
  474. "adnm":'',
  475. "groupId": _self.dczId,
  476. "stcd": '',
  477. "stnm":_self.stnm,
  478. "sttp":'',
  479. "pageNum":_self.pageIndex,
  480. "pageSize":_self.pageSize
  481. }
  482. request.post('/dc/insp/obj/getGrwNotInGroup',obj).then((res)=>{
  483. _self.loading = false;
  484. _self.currentShowList = res.data.list;
  485. _self.currentShowList.forEach((element, index) => {
  486. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  487. });
  488. _self.total = res.data.total;
  489. })
  490. },
  491. getTableData_sk1(){
  492. var _self = this;
  493. getTdfjList(_self.pageIndex,_self.pageSize,_self.objType,_self.formInline.utName,_self.dczId,_self.searchProvTreeListCode).then((response)=>{
  494. _self.loading = false;
  495. _self.currentShowList = response.data.list;
  496. _self.currentShowList.forEach((element, index) => {
  497. element["index"] = _self.pageSize * (_self.pageIndex - 1) + index + 1;
  498. });
  499. _self.total = response.data.total;
  500. })
  501. },
  502. toAddNewRsvr(){
  503. this.addRsvrVisible = true
  504. },
  505. addNewRsvr(formName){
  506. let _this = this
  507. if(!this.formObj.name){
  508. this.$message.warning('请输入项目名称')
  509. return
  510. }
  511. if(!this.formObj.code){
  512. this.$message.warning('请输入项目编号')
  513. return
  514. }
  515. if(!this.formObj.type){
  516. this.$message.warning('请输入工程类型')
  517. return
  518. }
  519. if(!this.provName){
  520. this.$message.warning('请选择省份')
  521. return
  522. }
  523. if(!this.cityName){
  524. this.$message.warning('请选择市区')
  525. return
  526. }
  527. if(!this.countryName){
  528. this.$message.warning('请选择区县')
  529. return
  530. }
  531. this.$refs[formName].validate((valid) => {
  532. if (valid) {
  533. request.post('/att/prd/cstr/proj/base',this.formObj).then(res=>{
  534. if(res.success){
  535. _this.$message.success('添加成功')
  536. this.getTableData_sk();
  537. _this.addRsvrVisible = false;
  538. _this.provName = "";
  539. _this.cityName = "";
  540. _this.countryName = "";
  541. _this.formObj = {};
  542. }else{
  543. _this.$message.error(res.message)
  544. }
  545. }).catch(res=>{
  546. _this.$message.error('请求错误'+ res.message)
  547. })
  548. } else {
  549. console.log('error submit!!');
  550. return false;
  551. }
  552. });
  553. },
  554. getAreaList(val){
  555. let areaParams = {
  556. adName: "",
  557. id: this.dczId,
  558. pageNum: 1,
  559. pageSize: 10000
  560. }
  561. let adCode = ''
  562. if(!val){
  563. adCode = '000000000000'
  564. }else{
  565. adCode = val
  566. }
  567. request.get('/dc/ad/base/getAdData',{params:{'adCode':adCode}}).then(res=>{
  568. if(res.success){
  569. if(this.curSelectItem == 1){
  570. this.cityList = res.data
  571. }else if(this.curSelectItem == 2){
  572. this.countryList = res.data
  573. }else{
  574. this.provList = res.data
  575. }
  576. }
  577. })
  578. },
  579. handleItemChange(val){
  580. this.getAreaList(val)
  581. },
  582. provChange(val){
  583. this.curSelectItem = 1
  584. this.cityName = ''
  585. this.countryName = ''
  586. this.formObj.admDiv = val
  587. this.provList.forEach(ele=>{
  588. if(ele.adCode == this.provName){
  589. this.provNames = ele.adName
  590. }
  591. })
  592. this.formObj.adName = this.provNames
  593. this.getAreaList(val)
  594. },
  595. cityChange(val){
  596. this.curSelectItem = 2
  597. if(val && val != ''){
  598. this.formObj.admDiv = val
  599. this.countryName = ''
  600. this.cityList.forEach(ele=>{
  601. if(ele.adCode == this.cityName){
  602. this.cityNames = ele.adName
  603. }
  604. })
  605. this.formObj.adName = this.provNames + this.cityNames
  606. this.getAreaList(val)
  607. }
  608. },
  609. countryChange(val){
  610. if(val && val != ''){
  611. this.formObj.admDiv = val
  612. this.countryList.forEach(ele=>{
  613. if(ele.adCode == this.countryName){
  614. this.countryNames = ele.adName
  615. }
  616. })
  617. this.formObj.adName = this.provNames + this.cityNames + this.countryNames
  618. this.formObj.adCode = val
  619. }
  620. },
  621. closeWindowEvent(){
  622. this.formObj.adCode = ""
  623. }
  624. }
  625. };
  626. </script>
  627. <style>
  628. </style>