741bed79fd96a000638d77e2eaaabc81802c006e.svn-base 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853
  1. <template>
  2. <div style="height:100%;width:100%;">
  3. <!-- <h3 style="text-align: center;margin: 10px 0 20px;">{{title}}</h3> -->
  4. <el-container style="height:100%;width:100%;">
  5. <el-aside width="20%" :height="asideHeight" style="padding-right: 10px">
  6. <div :style="{'height': asideHeight + 'px','overflow': 'auto'}" class="left_tree">
  7. <el-card class="box-card" style="min-height: 99%">
  8. <div slot="header" class="clearfix">
  9. <span>督查组</span>
  10. </div>
  11. <el-tree ref="jigou_tree" :data="groupTreeData" show-checkbox :props="defaultProps" :expand-on-click-node="false" @check-change="handleCheckChange">
  12. <div class="custom-tree-node" slot-scope="{ node, data }">
  13. <span style="float:left;">{{data.name}}</span>
  14. </div>
  15. </el-tree>
  16. </el-card>
  17. </div>
  18. </el-aside>
  19. <el-aside width="30%" :height="asideHeight">
  20. <div :style="{'height': asideHeight + 'px','overflow': 'auto'}" class="left_tree">
  21. <el-card class="box-card" style="min-height: 99%">
  22. <div slot="header" class="clearfix">
  23. <span>工程信息</span>
  24. <!-- <el-button style="float: right; padding: 3px 0" type="text" @click="batchImport">批量导入</el-button> -->
  25. <!-- 水利工程基础信息批量导入弹窗 -->
  26. <slgc-tian-bao-pl v-if="showGongChengTianBaoPl" @closePlDialog="closePlDialog"></slgc-tian-bao-pl>
  27. </div>
  28. <el-tree :data="treeData" :props="defaultProps" :expand-on-click-node="false" @node-click="handleNodeClick">
  29. <span class="custom-tree-node" slot-scope="{ node }">
  30. <span>{{ node.label }}</span>
  31. <span>
  32. <!-- <el-button
  33. type="text"
  34. size="mini"
  35. v-if="node.level == 1"
  36. @click="() => toCorrect(data,node)">
  37. 纠错
  38. </el-button>
  39. <el-button
  40. type="text"
  41. size="mini"
  42. v-if="node.level == 1"
  43. @click="() => toAddBiaoDuan(data)">
  44. 添加标段
  45. </el-button>
  46. <el-button
  47. type="text"
  48. size="mini"
  49. v-if="node.level == 2"
  50. @click="() => toEditBiaoDuan(data)">
  51. 编辑
  52. </el-button>
  53. <el-button
  54. type="text"
  55. size="mini"
  56. v-if="node.level == 2"
  57. @click="() => delete_biaoDuan(data,node)">
  58. 删除
  59. </el-button>
  60. <el-button
  61. type="text"
  62. size="mini"
  63. v-if="node.level == 2"
  64. @click="() => toAddUnit(data)">
  65. 添加单位
  66. </el-button>
  67. <el-button
  68. type="text"
  69. size="mini"
  70. v-if="node.level == 3"
  71. @click="() => toEditUnit(data)">
  72. 编辑
  73. </el-button>
  74. <el-button
  75. type="text"
  76. size="mini"
  77. v-if="node.level == 3"
  78. @click="() => delete_unit(data,node)">
  79. 删除
  80. </el-button> -->
  81. </span>
  82. </span>
  83. </el-tree>
  84. </el-card>
  85. </div>
  86. </el-aside>
  87. <el-main id="dxdcListMainsk" style="width: 49%;padding:0 0 0 10px;">
  88. <div class="flex_wrapper">
  89. <!-- 工程问题清单 -->
  90. <project-problem :villType="'8'" :currentRow="currentRow" :unitProblemInfo="unitProblemInfo" :showAddBtn="showAddBtn" :adCodes="adCodes"></project-problem>
  91. </div>
  92. </el-main>
  93. </el-container>
  94. <!-- 工程纠错 -->
  95. <el-dialog :title="'基本信息纠错'" :visible.sync="correct_Dialog">
  96. <div style="text-align: right; margin-bottom: 10px;">
  97. <el-button type="warning" @click="imageClick">影像</el-button>
  98. <el-button type="warning" @click="recentAppearance">近期面貌</el-button>
  99. </div>
  100. <el-form label-width="130px">
  101. <el-form-item label="工程名称">
  102. <el-input v-model="project.nm" clearable readonly></el-input>
  103. </el-form-item>
  104. <el-form-item label="工程类型">
  105. <el-input v-model="projectType" clearable readonly></el-input>
  106. </el-form-item>
  107. <el-form-item label="开工时间" required>
  108. <el-date-picker
  109. v-model="project.stwktm"
  110. align="right"
  111. type="year"
  112. value-format="yyyy"
  113. placeholder="选择年"
  114. ></el-date-picker>
  115. </el-form-item>
  116. <el-form-item label="计划工期" required>
  117. <el-input v-model="project.plantm" clearable>
  118. <template slot="append">月</template>
  119. </el-input>
  120. </el-form-item>
  121. <el-form-item label="概算批复总投资" required>
  122. <el-input v-model="project.estapp" clearable>
  123. <template slot="append">亿元</template>
  124. </el-input>
  125. </el-form-item>
  126. </el-form>
  127. <div slot="footer" class="dialog-footer">
  128. <el-button @click="correct_Dialog = false">取 消</el-button>
  129. <el-button type="primary" @click="saveCorrect">确 定</el-button>
  130. </div>
  131. </el-dialog>
  132. <!-- 添加/编辑标段 -->
  133. <el-dialog :title="dialogType + '标段'" :visible.sync="biaoduan_Dialog">
  134. <el-form label-width="120px">
  135. <el-form-item label="标段名称" required>
  136. <el-input v-model="biaoduan.nm" clearable></el-input>
  137. </el-form-item>
  138. <el-form-item label="所属省份" required>
  139. <el-select v-model="biaoduan.adCode" placeholder="请选择">
  140. <el-option :label="item.adName" :value="item.adCode" v-for="(item,index) in provList" :key="index"></el-option>
  141. </el-select>
  142. </el-form-item>
  143. <el-form-item label="所属流域" required>
  144. <el-select v-model="biaoduan.orgId" placeholder="请选择">
  145. <el-option :label="item.pnm" :value="item.id" v-for="(item,index) in waterShedList" :key="index"></el-option>
  146. </el-select>
  147. </el-form-item>
  148. <el-form-item label="经度">
  149. <el-input v-model="biaoduan.lgtd" clearable></el-input>
  150. </el-form-item>
  151. <el-form-item label="纬度">
  152. <el-input v-model="biaoduan.lttd" clearable></el-input>
  153. </el-form-item>
  154. </el-form>
  155. <div slot="footer" class="dialog-footer">
  156. <el-button @click="biaoduan_Dialog = false">取 消</el-button>
  157. <el-button type="primary" @click="add_biaoDuan">确 定</el-button>
  158. </div>
  159. </el-dialog>
  160. <!-- 添加/编辑责任单位 -->
  161. <el-dialog :title="dialogType + '责任单位'" :visible.sync="unit_Dialog">
  162. <el-form label-width="120px">
  163. <el-form-item label="单位名称" required>
  164. <el-input v-model="unit.nm" clearable></el-input>
  165. </el-form-item>
  166. <el-form-item label="单位性质" required>
  167. <el-select v-model="unit.nature" placeholder="请选择">
  168. <el-option :label="item.name" :value="item.value" v-for="(item,index) in natureList" :key="index"></el-option>
  169. </el-select>
  170. </el-form-item>
  171. <el-form-item label="建管模式" required>
  172. <el-select v-model="unit.government" placeholder="请选择">
  173. <el-option :label="item.name" :value="item.value" v-for="(item,index) in modeList" :key="index"></el-option>
  174. </el-select>
  175. </el-form-item>
  176. </el-form>
  177. <div slot="footer" class="dialog-footer">
  178. <el-button @click="unit_Dialog = false">取 消</el-button>
  179. <el-button type="primary" @click="add_unit">确 定</el-button>
  180. </div>
  181. </el-dialog>
  182. <!--近期面貌弹窗-->
  183. <theRecentAppearance v-if="jqmmShow" @jqmmDialogClose="jqmmDialog" :jqmmShow="jqmmShow" :jqmmEngId="jqmmEngId" :dialogTitle="slgcjsName + '近期面貌'"></theRecentAppearance>
  184. <!--影像弹窗-->
  185. <el-dialog :title="slgcjsName + '影像'" :visible.sync="imageShow" append-to-body :close-on-click-modal="false" width="60%">
  186. <div style="height: 60vh;">
  187. <mapLocation ref="mapRef" v-if="imageShow" :gdX="centerX" :gdY="centerY"></mapLocation>
  188. </div>
  189. </el-dialog>
  190. </div>
  191. </template>
  192. <script>
  193. import request from "../../../utils/gw_ajax_request.js";
  194. import { dateFormat } from "../../../utils/gw_date.js";
  195. import {getTrees} from '@util/gw_formatTree'
  196. import provTreeList from "../../../widgets/provTreeList.vue";
  197. import projectProblem from "./gongChengProjectProblem.vue";
  198. import projectBuild from '../../duChaTianBao/project/jianshe.vue';
  199. import projectOperate from '../../duChaTianBao/project/yunxing.vue';
  200. import slgcTianBaoPl from '../../duChaTianBao/slgcTianBao_piliang.vue';
  201. import theRecentAppearance from '../../duChaDuiXiang/theRecentAppearance';
  202. import mapLocation from '../../../views/duChaTianBao/mapLocation';
  203. export default {
  204. components: {
  205. provTreeList: provTreeList,
  206. projectProblem: projectProblem,
  207. projectOperate: projectOperate,
  208. projectBuild: projectBuild,
  209. slgcTianBaoPl: slgcTianBaoPl,
  210. theRecentAppearance: theRecentAppearance,
  211. mapLocation:mapLocation
  212. },
  213. props: [],
  214. data() {
  215. return {
  216. asideHeight: window.innerHeight - 106,
  217. tableHeight: window.innerHeight - 256,
  218. treeData: [],
  219. defaultProps: {
  220. children: 'children',
  221. label: 'pnm'
  222. },
  223. searchObj:{
  224. "engScal": '2'
  225. },
  226. project: {
  227. nm: "",
  228. ptype: "",
  229. stwktm: "",
  230. plantm: "",
  231. estapp: ""
  232. },
  233. currentRow: {},
  234. pageIndex: 1,
  235. pageSize: 20,
  236. total: 0,
  237. dialogType: "添加",
  238. correct_Dialog: false,
  239. showProblemDialog: false,
  240. typeOfProject: '2',
  241. title: '水利工程建设情况检查填报',
  242. showGongChengTianBaoPl: false,
  243. //
  244. waterShedList: [],
  245. provList: [],
  246. unitList: [],
  247. biaoduan:{
  248. nm: '',
  249. adCode: '',
  250. orgId: '',
  251. lgtd: '',
  252. lttd: ''
  253. },
  254. unit:{
  255. nm: '',
  256. nature: '',
  257. government: ''
  258. },
  259. natureList: [
  260. {name: '项目法人(建设单位)',value: '1'},
  261. {name: '勘察设计单位',value: '2'},
  262. {name: '监理单位',value: '3'},
  263. {name: '施工单位',value: '4'},
  264. {name: '金属结构及机电设备安装单位',value: '5'},
  265. {name: '安全监测单位',value: '6'},
  266. {name: '质量检测单位',value: '7'}
  267. ],
  268. modeList: [
  269. {name: '直管',value: '1'},
  270. {name: '代建',value: '2'}
  271. ],
  272. biaoduan_Dialog: false,
  273. unit_Dialog: false,
  274. isClicked: true,
  275. showProblemDialog: false,
  276. unitProblemInfo: {
  277. nature: '1',
  278. codes: '',
  279. secId: ''
  280. },
  281. jqmmShow: false,
  282. imageShow: false,
  283. jqmmEngId: '',
  284. slgcjsName: '',
  285. centerX: 0,
  286. centerY: 0,
  287. //
  288. groupTreeData: [],
  289. plnaId: '004', //督查组id
  290. showAddBtn: false,
  291. adCodes: []
  292. };
  293. },
  294. computed: {
  295. persId() {
  296. return localStorage.getItem("userid")
  297. ? localStorage.getItem("userid")
  298. : "1098101939614724096";
  299. },
  300. projectType() {
  301. let val = this.project.ptype;
  302. if (val != "0" && !val) {
  303. return "";
  304. }
  305. if (val == "0") {
  306. return "重大农业节水工程";
  307. } else if (val == "1") {
  308. return "重大引调水工程";
  309. } else if (val == "2") {
  310. return "重点水源工程";
  311. } else if (val == "3") {
  312. return "江河湖泊治理骨干工程";
  313. } else if (val == "4") {
  314. return "新建大型灌区工程";
  315. } else if (val == "5") {
  316. return "非水利部下达投资计划";
  317. } else if (val == "6") {
  318. return "全部由地方投资";
  319. } else if (val == "7") {
  320. return "其他项目";
  321. } else {
  322. return "未知项目";
  323. }
  324. }
  325. },
  326. mounted() {
  327. this.getGroupData();
  328. },
  329. activated() {
  330. // this.getDataList();
  331. },
  332. methods: {
  333. //获取工程列表信息
  334. getDataList() {
  335. let paramObj = {
  336. type: "empwt",
  337. presId: this.persId,
  338. pageSize: this.pageSize,
  339. pageNum: this.pageIndex,
  340. adCodes: this.adCodes.toString()
  341. // plnaId: this.plnaId
  342. }
  343. Object.assign(this.searchObj,paramObj)
  344. request
  345. .post(`/dc/insp/rsvrRgstr/list/tree`, this.searchObj)
  346. .then(res => {
  347. if (res.success) {
  348. this.treeData = res.data;
  349. if (this.treeData.length) {
  350. this.currentRow = this.treeData[0];
  351. this.addRegister()
  352. }
  353. }
  354. });
  355. },
  356. // 工程信息纠错
  357. toCorrect(row,node) {
  358. this.currentRow = row
  359. request.get(`/bis/insp/empwtprj/base/${row.code}`).then(res => {
  360. if (res.success) {
  361. this.project = res.data;
  362. if(this.project.stwktm){
  363. this.project.stwktm = this.project.stwktm.toString();
  364. }else {
  365. this.project.stwktm = "";
  366. }
  367. this.slgcjsName = this.project.nm;
  368. this.jqmmEngId = this.currentRow.id;
  369. this.centerX = this.project.lgtdPc;
  370. this.centerY = this.project.lttdPc;
  371. }
  372. });
  373. this.correct_Dialog = true;
  374. },
  375. saveCorrect() {
  376. this.project.persId = this.persId;
  377. //校验计划工期和概算批复总投资,实际应根据实际业务进行校验
  378. if(this.project.plantm < 0 || this.project.plantm > 1200){
  379. this.$message.error('计划工期的范围应在0-1200之间,请重新填写!');
  380. this.project.plantm = '';
  381. return;
  382. };
  383. if(this.project.estapp < 0 || this.project.estapp > 9999 ){
  384. this.$message.error('概算批复总投资的范围应在0-9999之间,请重新填写!');
  385. this.project.estapp = '';
  386. return;
  387. };
  388. request
  389. .post(`/bis/insp/empwtprj/base/update`, this.project)
  390. .then(res => {
  391. if (res.success) {
  392. this.$message.success("修改成功");
  393. this.correct_Dialog = false;
  394. this.getDataList();
  395. } else {
  396. this.$message.error(res.message);
  397. }
  398. })
  399. .catch(error => {
  400. this.$message.error(res.message);
  401. });
  402. },
  403. addRegister(){
  404. let paramObj = {
  405. "code": this.currentRow.code,
  406. "objId": this.currentRow.objId,
  407. "nodeId": this.currentRow.nodeId,
  408. "recPersId": this.persId,
  409. "id": this.currentRow.id
  410. }
  411. request
  412. .post(`/bis/insp/key/register/add`, paramObj)
  413. .then(res => {
  414. if (res.success && res.data) {
  415. this.currentRow.id = res.data.id
  416. } else {
  417. this.$message.error(res.message);
  418. }
  419. })
  420. .catch(error => {
  421. this.$message.error(res.message);
  422. });
  423. },
  424. formatDate(row, column) {
  425. if (row.uptm) {
  426. return dateFormat(row.uptm, "yyyy-MM-dd");
  427. }
  428. },
  429. pageIndexChange(val) {
  430. this.pageIndex = val;
  431. this.getDataList();
  432. },
  433. handleSizeChange(val) {
  434. this.pageSize = val;
  435. this.getDataList();
  436. },
  437. batchImport(){
  438. this.showGongChengTianBaoPl = true
  439. },
  440. closePlDialog(){
  441. this.showGongChengTianBaoPl = false
  442. },
  443. //树节点点击事件
  444. handleNodeClick(data,node) {
  445. if(node.level == 3){
  446. this.showAddBtn = true
  447. request.get(`/bis/insp/key/reg/sec/unit/${data.id}`).then((res) => {
  448. if(res.success){
  449. let data = res.data
  450. data['codes'] = ''
  451. data['secId'] = ''
  452. this.unitProblemInfo = data
  453. }else{
  454. this.$message.error(res.message)
  455. }
  456. });
  457. this.currentRow = node.parent.parent.data
  458. }else if(node.level == 1){
  459. this.showAddBtn = false
  460. this.unitProblemInfo.codes = data.code
  461. this.unitProblemInfo.secId = ''
  462. this.unitProblemInfo.id = ''
  463. }else{
  464. this.showAddBtn = false
  465. this.unitProblemInfo.secId = data.id
  466. this.unitProblemInfo.codes = ''
  467. this.unitProblemInfo.id = ''
  468. }
  469. },
  470. // 添加标段
  471. toAddBiaoDuan(row){
  472. this.dialogType = '添加'
  473. this.currentRow = row
  474. this.addRegister()
  475. this.getWatershedList()
  476. this.getprovList('000000000000')
  477. this.biaoduan = {
  478. nm: '',
  479. adCode: '',
  480. orgId: '',
  481. lgtd: '',
  482. lttd: ''
  483. }
  484. this.biaoduan_Dialog = true
  485. },
  486. toEditBiaoDuan(row){
  487. this.dialogType = '编辑'
  488. this.currentRow = row
  489. this.getWatershedList()
  490. this.getprovList('000000000000')
  491. request.get(`/bis/insp/key/register/section/${row.id}`).then((res) => {
  492. if(res.success){
  493. this.biaoduan = res.data;
  494. this.biaoduan_Dialog = true
  495. }else{
  496. this.$message.error(res.message)
  497. }
  498. });
  499. },
  500. add_biaoDuan(){
  501. if(!this.biaoduan.nm){
  502. this.$message.warning('请填写标段名称')
  503. return
  504. }
  505. if(!this.biaoduan.adCode){
  506. this.$message.warning('请选择所属省份')
  507. return
  508. }
  509. if(!this.biaoduan.orgId){
  510. this.$message.warning('请选择所属流域')
  511. return
  512. }
  513. if(this.isClicked){
  514. this.isClicked = false
  515. if(this.dialogType == '添加'){
  516. this.biaoduan.objId = this.currentRow.objId
  517. this.biaoduan.regId = this.currentRow.id
  518. this.biaoduan.persId = this.persId
  519. request.post(`/bis/insp/key/register/section/add`,this.biaoduan).then((res) => {
  520. if(res.success){
  521. this.$message.success(this.dialogType + '成功')
  522. //向树节点追加已添加的新标段
  523. const newChild = { id: res.data.id, objId: res.data.objId, pnm: res.data.nm, children: [] };
  524. if (!this.currentRow.children) {
  525. this.$set(this.currentRow, 'children', []);
  526. }
  527. this.currentRow.children.push(newChild);
  528. this.biaoduan_Dialog = false
  529. setTimeout(()=> {
  530. this.isClicked = true
  531. }, 1000);
  532. }else{
  533. this.$message.error(res.message)
  534. }
  535. }).catch(error=>{
  536. this.$message.error(res.message)
  537. });
  538. }else{
  539. request.post(`/bis/insp/key/register/section/update`,this.biaoduan).then((res) => {
  540. if(res.success){
  541. this.$message.success(this.dialogType + '成功')
  542. //编辑成功后改变树节点显示的标段名称
  543. this.currentRow.pnm = res.data.nm
  544. this.biaoduan_Dialog = false
  545. setTimeout(()=> {
  546. this.isClicked = true
  547. }, 1000);
  548. }else{
  549. this.$message.error(res.message)
  550. }
  551. }).catch(error=>{
  552. this.$message.error(res.message)
  553. });
  554. }
  555. }
  556. },
  557. delete_biaoDuan(row,node){
  558. this.$confirm('确认删除当前标段吗?', '提示', {
  559. confirmButtonText: '确定',
  560. cancelButtonText: '取消',
  561. type: 'warning'
  562. }).then(() => {
  563. request.post(`/bis/insp/key/register/section/delete/${row.id}`).then(res=>{
  564. if(res.success){
  565. this.$message.success('删除成功')
  566. const parent = node.parent;
  567. const children = parent.data.children || parent.data;
  568. const index = children.findIndex(d => d.id === row.id);
  569. children.splice(index, 1);
  570. }else{
  571. this.$message.error(res.message)
  572. }
  573. })
  574. }).catch(() => {
  575. });
  576. },
  577. // 添加责任单位
  578. toAddUnit(row){
  579. this.dialogType = '添加'
  580. this.currentBiaoDuanRow = row
  581. this.unit = {
  582. nm: '',
  583. nature: '',
  584. government: ''
  585. }
  586. this.unit_Dialog = true
  587. },
  588. toEditUnit(row){
  589. this.dialogType = '编辑'
  590. this.currentBiaoDuanRow = row
  591. request.get(`/bis/insp/key/reg/sec/unit/${row.id}`).then((res) => {
  592. if(res.success){
  593. this.unit = res.data;
  594. this.unit_Dialog = true
  595. }else{
  596. this.$message.error(res.message)
  597. }
  598. });
  599. },
  600. add_unit(){
  601. if(!this.unit.nm){
  602. this.$message.warning('请填写单位名称')
  603. return
  604. }
  605. if(!this.unit.nature){
  606. this.$message.warning('请选择单位性质')
  607. return
  608. }
  609. if(!this.unit.government){
  610. this.$message.warning('请选择建管模式')
  611. return
  612. }
  613. if(this.isClicked){
  614. this.isClicked = false
  615. if(this.dialogType == '添加'){
  616. this.unit.persId = this.persId
  617. this.unit.secId = this.currentBiaoDuanRow.id
  618. request.post(`/bis/insp/key/reg/sec/unit/add`,this.unit).then((res) => {
  619. if(res.success){
  620. this.$message.success(this.dialogType + '成功')
  621. //向树节点追加已添加的新单位
  622. const newChild = { id: res.data.id, objId: res.data.objId, pnm: res.data.nm, children: [] };
  623. if (!this.currentBiaoDuanRow.children) {
  624. this.$set(this.currentBiaoDuanRow, 'children', []);
  625. }
  626. this.currentBiaoDuanRow.children.push(newChild);
  627. this.unit_Dialog = false
  628. setTimeout(()=> {
  629. this.isClicked = true
  630. }, 1000);
  631. }else{
  632. this.$message.error(res.message)
  633. }
  634. }).catch(error=>{
  635. this.$message.error(res.message)
  636. });
  637. }else{
  638. request.post(`/bis/insp/key/reg/sec/unit/update`,this.unit).then((res) => {
  639. if(res.success){
  640. this.$message.success(this.dialogType + '成功')
  641. //编辑成功后改变树节点显示的标段名称
  642. this.currentBiaoDuanRow.pnm = res.data.nm
  643. this.unit_Dialog = false
  644. setTimeout(()=> {
  645. this.isClicked = true
  646. }, 1000);
  647. }else{
  648. this.$message.error(res.message)
  649. }
  650. }).catch(error=>{
  651. this.$message.error(res.message)
  652. });
  653. }
  654. }
  655. },
  656. delete_unit(row,node){
  657. this.$confirm('确认删除当前单位吗?', '提示', {
  658. confirmButtonText: '确定',
  659. cancelButtonText: '取消',
  660. type: 'warning'
  661. }).then(() => {
  662. request.post(`/bis/insp/key/reg/sec/unit/delete/${row.id}`).then(res=>{
  663. if(res.success){
  664. this.$message.success('删除成功')
  665. const parent = node.parent;
  666. const children = parent.data.children || parent.data;
  667. const index = children.findIndex(d => d.id === row.id);
  668. children.splice(index, 1);
  669. }else{
  670. this.$message.error(res.message)
  671. }
  672. })
  673. }).catch(() => {
  674. });
  675. },
  676. //获取流域信息
  677. getWatershedList(){
  678. request.get(`/dc/insp/base/getInspByPid?pid=''`).then((res) => {
  679. if(res.success){
  680. this.waterShedList = res.data;
  681. }
  682. }
  683. );
  684. },
  685. // 获取省份列表
  686. getprovList(adCode){
  687. request.get('/dc/ad/base/getAdData',{params:{'adCode': adCode}}).then(res=>{
  688. if(res.success){
  689. this.provList = res.data
  690. }else{
  691. this.$message.info(res.message)
  692. }
  693. })
  694. },
  695. // 近期面貌
  696. recentAppearance(){
  697. this.jqmmShow = true;
  698. // this.jqmmShow += 1;
  699. },
  700. jqmmDialog(){
  701. this.jqmmShow = false;
  702. },
  703. // 影像
  704. imageClick(){
  705. if(!this.centerX && !this.centerY){
  706. this.$message.warning('暂无经纬度信息!');
  707. return false;
  708. }
  709. this.imageShow = true;
  710. },
  711. // 点击督查组
  712. getGroupData(){
  713. // let params = {
  714. // userId: this.persId,
  715. // orgType: '004'
  716. // }
  717. request.get(`/bis/insp/BisInspConfigOrgAd/getAdByPersId/${this.persId}/4`).then(res=>{
  718. if(res.success){
  719. let data = res.data;
  720. data = getTrees(data);
  721. // this.groupTreeData = data[0].children;
  722. this.groupTreeData = data;
  723. if(data[0].id != '004'){
  724. this.plnaId = this.groupTreeData[0].id
  725. }
  726. // this.getDataList();
  727. }else{
  728. this.$message.warning(res.message)
  729. }
  730. })
  731. },
  732. groupHandleNodeClick(data,node){
  733. this.plnaId = data.id
  734. this.getDataList();
  735. },
  736. handleCheckChange() {
  737. this.adCodes = [];
  738. let nodes = this.$refs.jigou_tree.getCheckedNodes();
  739. nodes.forEach(item => {
  740. this.adCodes.push(item.id);
  741. });
  742. },
  743. },
  744. watch:{
  745. typeOfProject(val){
  746. this.title = val == '2' ? '水利工程建设情况检查填报' : '水利工程运行情况检查填报'
  747. this.searchObj.engScal = val
  748. this.getDataList()
  749. },
  750. adCodes(val) {
  751. if(val.length){
  752. this.getDataList();
  753. }
  754. }
  755. },
  756. filters: {
  757. pType(val) {
  758. if (val != "0" && !val) {
  759. return "";
  760. }
  761. if (val == "0") {
  762. return "重大农业节水工程";
  763. } else if (val == "1") {
  764. return "重大引调水工程";
  765. } else if (val == "2") {
  766. return "重点水源工程";
  767. } else if (val == "3") {
  768. return "江河湖泊治理骨干工程";
  769. } else if (val == "4") {
  770. return "新建大型灌区工程";
  771. } else if (val == "5") {
  772. return "非水利部下达投资计划";
  773. } else if (val == "6") {
  774. return "全部由地方投资";
  775. } else if (val == "7") {
  776. return "其他项目";
  777. } else {
  778. return "未知项目";
  779. }
  780. },
  781. nature(val) {
  782. if (val != "0" && !val) {
  783. return "";
  784. }
  785. if (val == "1") {
  786. return "项目法人(建设单位)";
  787. } else if (val == "2") {
  788. return "勘察设计单位";
  789. } else if (val == "3") {
  790. return "监理单位";
  791. } else if (val == "4") {
  792. return "施工单位";
  793. } else if (val == "5") {
  794. return "金属结构及机电设备安装单位";
  795. } else if (val == "6") {
  796. return "安全监测单位";
  797. } else if (val == "7") {
  798. return "质量检测单位";
  799. } else {
  800. return "其它";
  801. }
  802. },
  803. government(val) {
  804. if (val != "0" && !val) {
  805. return "";
  806. }
  807. if (val == "1") {
  808. return "直管";
  809. } else if (val == "2") {
  810. return "代建";
  811. }
  812. }
  813. }
  814. };
  815. </script>
  816. <style lang="scss">
  817. #dcdxHeader {
  818. padding: 15px 20px;
  819. }
  820. #dxdcFooter {
  821. text-align: center;
  822. }
  823. #dxdcAside {
  824. border: 1px solid #d5d5ff;
  825. }
  826. .el-table .warning-row {
  827. background: oldlace;
  828. }
  829. .el-table .success-row {
  830. background: #f0f9eb;
  831. }
  832. .left_tree .custom-tree-node {
  833. flex: 1;
  834. display: flex;
  835. align-items: center;
  836. justify-content: space-between;
  837. font-size: 14px;
  838. padding-right: 8px;
  839. }
  840. </style>