39b8f6b044eff62510342fd56217ad4e288d5c15.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. <template>
  2. <!-- 弹出窗 -->
  3. <el-dialog
  4. title="添加督查对象"
  5. :visible.sync="dialogFormVisible"
  6. width="80%"
  7. modal-append-to-body
  8. append-to-body
  9. @close="closeFatherDialogEvent"
  10. >
  11. <el-container>
  12. <el-aside
  13. width="200px"
  14. style="border:1px solid #d5d5ff"
  15. >
  16. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">
  17. <i class="el-icon-share"></i>所属机构
  18. </p>
  19. <provTreeListQy
  20. ref="provTreeListQyRef"
  21. v-show="showLeftTree"
  22. :ddczId="dczId"
  23. rootCode="000000"
  24. :adCodes="adCodes"
  25. rootType="1"
  26. style="max-height:485px;"
  27. @treeDataEmit="treeDataEmit"
  28. @provTreeSelectChange="provTreeSelectChangeHandler_qy"
  29. ></provTreeListQy>
  30. <provTreeList
  31. v-show="!showLeftTree"
  32. rootCode="000000"
  33. rootType="1"
  34. style="max-height:485px;"
  35. @provTreeSelectChange="provTreeSelectChangeHandler"
  36. ></provTreeList>
  37. </el-aside>
  38. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  39. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">督查对象</p>
  40. <el-form
  41. :inline="true"
  42. :model="formInline"
  43. class="demo-form-inline"
  44. >
  45. <!-- <span>督查类别</span>
  46. <du-cha-type-select
  47. key="thirdSelect"
  48. @getOrgType3="getOrgType"
  49. :orgType="objType"
  50. @changeOrgType3="changeOrgType"
  51. ref="dcTypeSelect_wrsAndWswmSpe"
  52. :level="3"
  53. ></du-cha-type-select> -->
  54. <el-form-item label="行政区名称">
  55. <el-input
  56. v-model="formInline.name"
  57. placeholder="项目名称"
  58. clearable
  59. ></el-input>
  60. </el-form-item>
  61. <el-form-item>
  62. <el-button
  63. type="primary"
  64. @click="onSubmit"
  65. >查询</el-button>
  66. <!-- <el-button type="primary" @click="toAddNewTdfj">添加新项目</el-button> -->
  67. </el-form-item>
  68. </el-form>
  69. <el-table
  70. border
  71. :height="tableHeight"
  72. v-loading="loading"
  73. :data="currentShowList"
  74. tooltip-effect="dark"
  75. style="width: 100%"
  76. @selection-change="handleSelectionChange"
  77. >
  78. <el-table-column
  79. align="center"
  80. type="selection"
  81. width="60"
  82. ></el-table-column>
  83. <el-table-column
  84. align="center"
  85. prop="index"
  86. label="序号"
  87. min-width="40"
  88. ></el-table-column>
  89. <el-table-column
  90. align="center"
  91. show-overflow-tooltip
  92. prop="nm"
  93. label="行政区名称"
  94. min-width="100"
  95. ></el-table-column>
  96. <el-table-column
  97. align="center"
  98. show-overflow-tooltip
  99. prop="location"
  100. label="行政区地址"
  101. min-width="100"
  102. ></el-table-column>
  103. </el-table>
  104. <el-pagination
  105. small
  106. @current-change="handleCurrentChange"
  107. :pager-count="5"
  108. :current-page.sync="pageNum"
  109. :page-size="pageSize"
  110. layout="total, prev, pager, next"
  111. :total="total"
  112. ></el-pagination>
  113. </el-main>
  114. </el-container>
  115. <div
  116. slot="footer"
  117. class="dialog-footer"
  118. >
  119. <el-button @click="cancel()">取 消</el-button>
  120. <el-button
  121. type="primary"
  122. :loading="addOnce"
  123. :disabled="addOnce"
  124. @click="saveChange"
  125. >确 定</el-button>
  126. </div>
  127. </el-dialog>
  128. </template>
  129. <script>
  130. import request from '../../utils/gw_ajax_request.js'
  131. import provTreeList from '../../widgets/provTreeList.vue'
  132. import addvSearch from '../../widgets/addvSearch.vue'
  133. import {
  134. getTdfjList,
  135. addDcAndObjRel,
  136. getOtherTableData,
  137. } from '../../api/duChaDuiXiang_tdfj_API.js'
  138. import { getLyjglistSz } from '../../api/duChaTianBao.js'
  139. export default {
  140. components: {
  141. provTreeList: provTreeList,
  142. addvSearch,
  143. provTreeListQy: (resolve) => {
  144. require(['../../widgets/provTreeList_quyu.vue'], resolve)
  145. },
  146. },
  147. props: ['dczId', 'dczName', 'plnaId', 'objType', 'duChaType',"adCodes","isNewPlan"],
  148. data () {
  149. return {
  150. qyDataList: [],
  151. addOtherTableData: false,
  152. // currentOtherTableRow:{},
  153. otherDcdxTableDataLists: [],
  154. pageNumOther: 1,
  155. pageSizeOther: 10,
  156. totalOther: 0,
  157. otherTable: false,
  158. addOnce: false,
  159. addArr: '',
  160. addName: '',
  161. addLttd: '',
  162. addLgtd: '',
  163. lyjg: [], //流域机构
  164. addTdfjVisible: false,
  165. loading: true,
  166. loadingOther: true,
  167. currentShowList: [],
  168. multipleSelection: [],
  169. pageNum: 1,
  170. pageSize: 10,
  171. total: 0,
  172. dialogFormVisible: false,
  173. showLeftTree: true,
  174. searchProvTreeListCode: '',
  175. formInline: {
  176. name: '',
  177. type: '',
  178. },
  179. formObjOther: {
  180. name: '',
  181. type: '',
  182. },
  183. formObj: {
  184. name: '',
  185. code: '',
  186. type: '',
  187. location: '',
  188. centerX: '',
  189. centerY: '',
  190. admOrg: '',
  191. adCode: '',
  192. },
  193. }
  194. },
  195. watch: {
  196. searchProvTreeListCode (n, o) {
  197. this.searchProvTreeListCode = n
  198. this.getTableData()
  199. },
  200. dczId (n, o) {
  201. this.dczId = n
  202. },
  203. qyDataList (n, o) {
  204. if (this.qyDataList.length == 0) {
  205. this.showLeftTree = false
  206. } else {
  207. this.showLeftTree = true
  208. }
  209. this.getTableData()
  210. },
  211. },
  212. mounted () {
  213. this.$emit('updateStatus')
  214. },
  215. computed: {
  216. userId: function () {
  217. return localStorage.getItem('userid')
  218. ? localStorage.getItem('userid')
  219. : '1098101939614724096'
  220. },
  221. tableHeight () {
  222. if (window.innerWidth <= 1366) {
  223. return window.innerHeight - 300
  224. } else {
  225. return window.innerHeight - 510
  226. }
  227. },
  228. },
  229. methods: {
  230. getOrgType (data) { },
  231. changeOrgType (data) {
  232. console.log('call changeOrgType' + data)
  233. this.$emit('updateDxType', data)
  234. },
  235. treeDataEmit (item) {
  236. this.qyDataList = item
  237. if (this.qyDataList.length == 0) {
  238. this.showLeftTree = false
  239. } else {
  240. this.showLeftTree = true
  241. }
  242. },
  243. onSubmit () {
  244. this.getTableData()
  245. },
  246. onSubmitOther () {
  247. this.getOtherTableDataLists()
  248. },
  249. showDialog (dczIdSelf, tableCurrentRowType = null, yqList) {
  250. // this.qyDataList = yqList;
  251. // this.dczId = dczIdSelf;
  252. // this.tableCurrentRowType = tableCurrentRowType;
  253. console.log('in fs showDialog')
  254. this.dialogFormVisible = true
  255. if (this.$refs['provTreeListQyRef']) {
  256. this.$refs['provTreeListQyRef'].getQyList()
  257. }
  258. this.getTableData()
  259. this.getLyjgList()
  260. },
  261. //获取流域机构数据
  262. getLyjgList () {
  263. var _self = this
  264. getLyjglistSz().then((res) => {
  265. _self.lyjg = res.data
  266. })
  267. },
  268. provTreeSelectChangeHandler: function (params) {
  269. this.searchProvTreeListCode = params.code
  270. this.formObj.adCode = params.code
  271. },
  272. handleCurrentChange (val) {
  273. console.log(`当前页: ${val}`)
  274. this.getTableData()
  275. },
  276. handleCurrentChangeOther (val) {
  277. console.log(`当前页: ${val}`)
  278. this.getOtherTableDataLists()
  279. },
  280. handleSelectionChange (val) {
  281. this.multipleSelection = val
  282. },
  283. getTableData () {
  284. var _self = this
  285. if (_self.qyDataList.length == 0) {
  286. _self.showLeftTree = false
  287. } else {
  288. _self.showLeftTree = true
  289. }
  290. _self.loading = true
  291. if (_self.qyDataList.length > 1) {
  292. var str = ''
  293. for (var i = 0; i < _self.qyDataList.length; i++) {
  294. str += _self.qyDataList[i].adCode + ','
  295. }
  296. str = str.substring(0, str.length - 1)
  297. _self.searchProvTreeListCode = str
  298. } else {
  299. _self.searchProvTreeListCode = _self.searchProvTreeListCode
  300. }
  301. getTdfjList(
  302. _self.pageNum,
  303. _self.pageSize,
  304. 101,
  305. _self.formInline.name,
  306. _self.dczId,
  307. _self.searchProvTreeListCode
  308. ).then((response) => {
  309. _self.loading = false
  310. _self.currentShowList = response.data.list
  311. _self.currentShowList.forEach((element, index) => {
  312. element['index'] =
  313. _self.pageSize * (_self.pageNum - 1) + index + 1
  314. })
  315. _self.total = response.data.total
  316. })
  317. },
  318. getOtherTableDataLists () {
  319. var _self = this
  320. let obj = {
  321. type: _self.formObj.type,
  322. pageNum: _self.pageNumOther,
  323. pageSize: _self.pageSizeOther,
  324. adCode: _self.formObj.adCode,
  325. name: _self.formObjOther.name,
  326. }
  327. getOtherTableData(obj).then((response) => {
  328. _self.loadingOther = false
  329. _self.otherDcdxTableDataLists = response.data.list
  330. _self.otherDcdxTableDataLists.forEach((element, index) => {
  331. element['index'] =
  332. _self.pageSizeOther * (_self.pageNumOther - 1) +
  333. index +
  334. 1
  335. })
  336. _self.totalOther = response.data.total
  337. })
  338. },
  339. otherTableRowClickEvent (val) {
  340. // val = val;
  341. this.formObj.name = val.name
  342. this.formObj.location = val.location
  343. this.formObj.centerX = val.centerX
  344. this.formObj.centerY = val.centerY
  345. this.formObj.admOrg = val.admOrg
  346. this.formObj.adCode = val.adCode
  347. },
  348. toAddNewTdfj () {
  349. this.addTdfjVisible = true
  350. // this.formObj.engScal = this.gongchengguimo[0].value
  351. // this.formObj.rsType = this.zhubaleixing[0].value
  352. },
  353. addNewTdfj (formName) {
  354. let _this = this
  355. this.formObj['persId'] = this.userId
  356. // if(this.searchProvTreeListCode != ""){
  357. // this.formObj.adCode = this.searchProvTreeListCode;
  358. // }
  359. request
  360. .post('/att/fsc/base', this.formObj)
  361. .then((res) => {
  362. if (res.success) {
  363. _this.$message.success('添加成功')
  364. this.addTdfjVisible = false
  365. this.getTableData()
  366. _this.addRsvrVisible = false
  367. this.putEmptyObj()
  368. } else {
  369. _this.$message.error(res.message)
  370. }
  371. })
  372. .catch((res) => {
  373. _this.$message.error('请求错误' + res.message)
  374. })
  375. },
  376. saveChange () {
  377. this.addObjectChange()
  378. },
  379. addObjectChange: function () {
  380. //提交当前选中对象
  381. var _self = this
  382. var names = [];
  383. if (_self.addOnce) {
  384. _self.addOnce = false
  385. return
  386. }
  387. _self.addOnce = true
  388. var objArr = []
  389. const length = _self.multipleSelection.length
  390. for (let i = 0; i < length; i++) {
  391. var obj = {}
  392. obj['code'] = _self.multipleSelection[i].id
  393. obj['name'] = _self.multipleSelection[i].nm
  394. obj['ptype'] = '101'
  395. objArr.push(obj)
  396. names.push(_self.multipleSelection[i].nm);
  397. }
  398. if(this.isNewPlan){
  399. var obj = {
  400. persid: this.userId,
  401. nm: this.dczName,
  402. id: this.dczId,
  403. persAllAreaDtoList: [],
  404. persAllDtoList: [],
  405. persAllObjDtoList: objArr,
  406. };
  407. this.addOnce = false;
  408. this.dialogFormVisible = false;
  409. this.$message.success("选择成功");
  410. this.$emit("addSuccess",{obj:obj,names:names.join(",")});
  411. return;
  412. }
  413. try {
  414. request
  415. .post('/supervision/plan/insertSupervisionObj', {
  416. persid: this.userId,
  417. nm: this.dczName,
  418. id: this.dczId,
  419. persAllAreaDtoList: [],
  420. persAllDtoList: [],
  421. persAllObjDtoList: objArr,
  422. })
  423. .then((response) => {
  424. if (response.success == true) {
  425. _self.addOnce = false
  426. _self.dialogFormVisible = false
  427. _self.$message.success('添加成功')
  428. _self.$emit('addSuccess')
  429. }
  430. })
  431. } catch (e) {
  432. alert('暂无数据')
  433. }
  434. },
  435. formatType (row, column) {
  436. let type = row.type
  437. let _type = '水利工程运行'
  438. switch (type) {
  439. case '1':
  440. _type = '水库'
  441. break
  442. case '2':
  443. _type = '水闸'
  444. break
  445. case '3':
  446. _type = '人饮'
  447. break
  448. case '4':
  449. _type = '水利工程建设'
  450. break
  451. }
  452. return _type
  453. },
  454. putEmptyObj () {
  455. this.formObj = {
  456. name: '',
  457. code: '',
  458. type: '',
  459. location: '',
  460. centerX: '',
  461. centerY: '',
  462. admOrg: '',
  463. }
  464. },
  465. cancel () {
  466. this.putEmptyObj()
  467. this.formObjOther.name = ''
  468. this.formInline.name = ''
  469. this.$refs.dcTypeSelect_wrsAndWswmSpe.init(this.duChaType)
  470. this.searchProvTreeListCode = ''
  471. this.dialogFormVisible = false
  472. },
  473. addReadyHave () {
  474. if (this.formObj.type == '') {
  475. this.$message.warning('请先选择检查分类!')
  476. } else {
  477. this.addOtherTableData = true
  478. this.otherTable = true
  479. this.getOtherTableDataLists()
  480. }
  481. },
  482. changeOtherTableData () {
  483. this.getOtherTableDataLists()
  484. this.formObj.name = ''
  485. this.formObj.location = ''
  486. this.formObj.centerX = ''
  487. this.formObj.centerY = ''
  488. this.formObj.admOrg = ''
  489. },
  490. addTdfjVisibleCancel () {
  491. this.addTdfjVisible = false
  492. this.addOtherTableData = false
  493. this.otherTable = false
  494. this.formObj.type = ''
  495. this.formObj.name = ''
  496. this.formObj.location = ''
  497. this.formObj.centerX = ''
  498. this.formObj.centerY = ''
  499. this.formObj.admOrg = ''
  500. this.formObj.adCode = ''
  501. },
  502. closeAddNewObj () {
  503. this.addOtherTableData = false
  504. this.otherTable = false
  505. this.formObj.type = ''
  506. this.formObj.name = ''
  507. this.formObj.location = ''
  508. this.formObj.centerX = ''
  509. this.formObj.centerY = ''
  510. this.formObj.admOrg = ''
  511. this.formObj.adCode = ''
  512. },
  513. closeFatherDialogEvent () {
  514. this.putEmptyObj()
  515. this.formInline.name = ''
  516. this.$refs.dcTypeSelect_wrsAndWswmSpe.init(this.duChaType)
  517. this.searchProvTreeListCode = ''
  518. },
  519. addvTreeNodeClickEvent (item) {
  520. this.formObj.adCode = item.id
  521. this.getOtherTableDataLists()
  522. },
  523. provTreeSelectChangeHandler_qy (params) {
  524. this.qyDataList.length = 1
  525. this.searchProvTreeListCode = params.code
  526. this.formObj.adCode = params.code
  527. this.getTableData()
  528. },
  529. },
  530. }
  531. </script>
  532. <style>
  533. .demo-form-inline {
  534. padding: 10px;
  535. }
  536. </style>