72eb4b41d49edb66df26051e08d5d2a58a08baa1.svn-base 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. <template>
  2. <div style="height:100%;width:100%;">
  3. <el-container style="height:100%;width:100%;">
  4. <el-aside width="320px" style="border-right:2px solid #d5d5ff;float:left" :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  5. <tb-left-tree orgType="025" @treeNodeClickHandler="treeNodeClickHandler" @organList="getOrganList" @changeTabType="changeTabType"></tb-left-tree>
  6. </el-aside>
  7. <!-- 主要窗口 -->
  8. <el-main id="dxdcListMaintdfj" style="padding:5px 20px;">
  9. <el-row>
  10. <el-col :span="24">
  11. <el-form :inline="true" size="mini" class="demo-form-inline" style="padding-left: 10px;">
  12. <el-form-item label="督查状态">
  13. <el-select v-model="dcType" clearable placeholder="督查状态">
  14. <el-option label="未督查" value="0"></el-option>
  15. <el-option label="督查中" value="1"></el-option>
  16. <el-option label="已督查" value="2"></el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item label="行政区名称">
  20. <addvSearch
  21. v-model="adName"
  22. :maxHeight='300'
  23. :maxWidth='250'
  24. :rootAddCode='"000000000000"'
  25. :level='"3"'
  26. :nameOrCode="'name'"
  27. ></addvSearch>
  28. </el-form-item>
  29. <el-form-item label="项目名称">
  30. <el-input v-model="name" placeholder="项目名称" clearable></el-input>
  31. </el-form-item>
  32. <el-form-item label="所在组">
  33. <el-autocomplete v-model="groupName" clearable value-key='nm' :fetch-suggestions="querySearchAsync" placeholder="请输入内容"
  34. @select="handleSelect"></el-autocomplete>
  35. </el-form-item>
  36. <el-form-item label="督查时间">
  37. <div style="display: flex;">
  38. <el-date-picker
  39. v-model="dateRange"
  40. type="daterange"
  41. value-format="yyyy-MM-dd"
  42. style="width:100%"
  43. range-separator="至"
  44. start-placeholder="开始日期"
  45. end-placeholder="结束日期"
  46. ></el-date-picker>
  47. </div>
  48. </el-form-item>
  49. <el-form-item style="float:right">
  50. <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
  51. <el-button type="success" @click="reFresh" icon="el-icon-refresh">刷新</el-button>
  52. <!--<el-button type="success" style="float:right;margin-left:5px"-->
  53. <!--@click="showPlDialog"-->
  54. <!--icon="el-icon-upload2"-->
  55. <!--:disabled="disabled"-->
  56. <!--&gt;批量填报</el-button>-->
  57. <!--<el-button type="success" style="float:right;"-->
  58. <!--@click="downloadTemplate"-->
  59. <!--:icon="downIcon"-->
  60. <!--&gt;下载模板</el-button>-->
  61. </el-form-item>
  62. </el-form>
  63. </el-col>
  64. </el-row>
  65. <el-table
  66. ref="table"
  67. border
  68. :height="tableHeight"
  69. :data="tdfjDataList"
  70. style="width: 100%"
  71. v-loading="expLoading">
  72. <el-table-column prop="nm" label="项目名称" min-width="130" align="center" fixed="left"></el-table-column>
  73. <el-table-column prop="province" label="省" v-if="isXj" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  74. <el-table-column prop="city" :label="ownAdName" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  75. <el-table-column prop="county" label="县" v-if="isXj" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  76. <el-table-column prop="groupName" label="所在组" show-overflow-tooltip min-width="150" align="center"></el-table-column>
  77. <el-table-column prop="intm" label="创建时间" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  78. <el-table-column
  79. prop="uptm"
  80. label="修改时间"
  81. align="center"
  82. min-width="100">
  83. </el-table-column>
  84. <el-table-column
  85. prop="wtdstState"
  86. label="督查状态"
  87. align="center"
  88. min-width="130">
  89. <template slot-scope="scope">
  90. <span
  91. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  92. v-if="scope.row.wtdstState == '0' || !scope.row.wtdstState">未督查</span>
  93. <span
  94. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  95. v-if="scope.row.wtdstState == '1'">督查中</span>
  96. <span
  97. style="padding: 3px 10px;background:#63C25E;border-radius:15px;color:rgba(255,255,255,1)"
  98. v-if="scope.row.wtdstState == '2'">已督查</span>
  99. </template>
  100. </el-table-column>
  101. <el-table-column
  102. prop="waterPriceIsMade"
  103. label="水价相关政策制定情况"
  104. align="center"
  105. min-width="130">
  106. <template slot-scope="scope">
  107. <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.waterPriceIsMade == 0 || !scope.row.waterPriceIsMade">待填报</p>
  108. <p style="cursor:pointer;color:#67C23A" v-if="scope.row.waterPriceIsMade == 1">未完成</p>
  109. <p style="cursor:pointer;color:#67C23A" v-if="scope.row.waterPriceIsMade == 2">已完成</p>
  110. </template>
  111. </el-table-column>
  112. <!--<el-table-column-->
  113. <!--prop="waterSafeOrPay"-->
  114. <!--label="农饮安全水费收缴水质保障"-->
  115. <!--align="center"-->
  116. <!--min-width="130">-->
  117. <!--<template slot-scope="scope">-->
  118. <!--<p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.waterSafeOrPay == 0 || !scope.row.waterSafeOrPay">待填报</p>-->
  119. <!--<p style="cursor:pointer;color:#67C23A" v-if="scope.row.waterSafeOrPay == 1">未完成</p>-->
  120. <!--<p style="cursor:pointer;color:#67C23A" v-if="scope.row.waterSafeOrPay == 2">已完成</p>-->
  121. <!--</template>-->
  122. <!--</el-table-column>-->
  123. <el-table-column align="center" label="操作" min-width="220" fixed="right" v-if="hasPriv('manage')">
  124. <template slot-scope="scope">
  125. <el-button size="mini" type="success" v-if="!scope.row.rgstrId" plain @click="toAddMember('填报',scope.row)">填报</el-button>
  126. <el-button size="mini" type="success" v-if="scope.row.rgstrId" plain @click="toAddMember('编辑',scope.row)">编辑</el-button>
  127. <el-button size="mini" type="danger" plain @click="deleteMember(scope.row)">删除</el-button>
  128. <el-button size="mini" type="danger" plain @click="submitHandler(scope.row)">提交</el-button>
  129. </template>
  130. </el-table-column>
  131. </el-table>
  132. <el-pagination background :pager-count="5" :current-page="pageIndex"
  133. :page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100]"
  134. layout="sizes, total, prev, pager, next" :total="total"
  135. @current-change="pageIndexChange" @size-change="handleSizeChange"
  136. ></el-pagination>
  137. </el-main>
  138. <!-- </el-container> -->
  139. <xinRenYinTianBao v-if="showxinRenYinTianBao" :rowData="rowData" :currentObjectRgstrId="currentObjectRgstrId" :currentObjectId="currentObjectId"
  140. :currentObjectName="currentResName"
  141. @cancelHandler="cancelHandler" @addxinRenYinSuccess="addxinRenYinSuccess"></xinRenYinTianBao>
  142. </el-container>
  143. <!-- 添加/编辑人员弹窗 -->
  144. </div>
  145. </template>
  146. <script>
  147. import request from '@util/gw_ajax_request.js'
  148. import {dateFormat} from '@util/gw_date.js'
  149. import provTreeList from "@widget/provTreeList.vue";
  150. import xinRenYinTianBao from "./renyinNew/xinRenYinTianBao.vue"
  151. import addvSearch from "@widget/addvSearch.vue"
  152. import tbLeftTree from "./dctb_lefttree.vue"
  153. export default {
  154. components: {
  155. provTreeList: provTreeList,
  156. xinRenYinTianBao:xinRenYinTianBao,
  157. addvSearch,
  158. tbLeftTree
  159. },
  160. props: [],
  161. data() {
  162. return {
  163. dateRange:[],
  164. lyjg:[],
  165. engScale:'',
  166. orgName:'',
  167. groupName:'',
  168. groupId:'',
  169. groups:[],
  170. // sttm:'',
  171. // ettm:'',
  172. adName:'',
  173. treeData:[],
  174. dxdcMainHeight: window.innerHeight - 304,
  175. testHeight: window.innerHeight - 111,
  176. tdfjDataList: [],
  177. pageIndex:1,
  178. pageSize:20,
  179. total:0,
  180. tableHeight:0,
  181. currentResCode:'',
  182. currentResName:'',
  183. currentObjectId:'',
  184. currentObjectRgstrId:'',
  185. currentObjectInfoObject:null,
  186. showxinRenYinTianBao:false,
  187. currentAdCode:'',
  188. currentNodeId:'',
  189. rsvrName:'',
  190. dcType:'',
  191. sjState:'',
  192. rowData:'',
  193. disabled:true,
  194. showxinRenYinTianBaoPl:false,
  195. downIcon:'el-icon-download',
  196. expLoading:false,
  197. dataStat: '',
  198. name: '',
  199. state: '',
  200. tabType:"0"
  201. };
  202. },
  203. computed: {
  204. persId() {
  205. return localStorage.getItem("userid")
  206. ? localStorage.getItem("userid")
  207. : "1098101939614724096";
  208. },
  209. isAdmin:function(){
  210. return localStorage.getItem("isAdmin")? localStorage.getItem("isAdmin"): ''
  211. },
  212. hasPriv(){
  213. return this.ownPriv
  214. }
  215. },
  216. mounted() {
  217. this.$nextTick(function () {
  218. this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 50;
  219. let _self = this;
  220. window.onresize = function() {
  221. _self.tableHeight = window.innerHeight - _self.$refs.table.$el.offsetTop - 50
  222. }
  223. })
  224. this.getTdfjDataList();
  225. this.getAllGroup();
  226. },
  227. activated(){
  228. },
  229. watch: {
  230. currentNodeId(n,o){
  231. this.getTdfjDataList();
  232. },
  233. groupName(n,o){
  234. if(n==''){
  235. this.groupId = '';
  236. }
  237. },
  238. },
  239. methods: {
  240. changeTabType(tabType){
  241. this.tabType = tabType;
  242. this.currentNodeId = "";
  243. this.getTdfjDataList();
  244. this.getAllGroup();
  245. },
  246. reFresh(){
  247. this.currentNodeId = "";
  248. this.rsvrName = "";
  249. this.dcType = "";
  250. this.getTdfjDataList();
  251. },
  252. //获取所有的组
  253. getAllGroup(){
  254. var _self = this;
  255. request.get('/dc/user/getGroupByPersid',{params:{'persid':this.persId,'ptype':'025','tabType':this.tabType}}).then((res)=>{
  256. if(res.success){
  257. _self.groups = res.data;
  258. }
  259. })
  260. },
  261. querySearchAsync(queryString, cb) {
  262. var restaurants = this.groups;
  263. var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
  264. clearTimeout(this.timeout);
  265. this.timeout = setTimeout(() => {
  266. cb(results);
  267. }, 1500 * Math.random());
  268. },
  269. createStateFilter(queryString) {
  270. return (state) => {
  271. return (state.nm.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
  272. };
  273. },
  274. handleSelect(item) {
  275. console.log(item);
  276. this.groupId = item.id;
  277. },
  278. getOrganList(data){
  279. this.lyjg = data
  280. },
  281. treeNodeClickHandler(data){
  282. this.currentNodeId = data.id;
  283. },
  284. provTreeSelectChangeHandler:function(params){
  285. this.currentAdCode = params.likeCode;
  286. this.getTdfjDataList();
  287. },
  288. formatDate(row,column){
  289. if(row.uptm){
  290. return (dateFormat(row.uptm,'yyyy-MM-dd'));
  291. }
  292. },
  293. getTdfjDataList:function(){
  294. this.expLoading = true;
  295. let paramStartDate = '';
  296. let paramEndDate = '';
  297. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  298. paramStartDate = this.dateRange[0];
  299. paramEndDate = this.dateRange[1];
  300. }
  301. let params = {
  302. "sttm": paramStartDate,
  303. "entm": paramEndDate,
  304. "pageSize": this.pageSize,
  305. "pageNum": this.pageIndex,
  306. "groupId": this.groupId,
  307. "name": this.name,
  308. "state": this.dcType,
  309. "pType": 25,
  310. "adName": this.adName,
  311. "presId": this.persId,
  312. "plnaId": this.currentNodeId,
  313. "tabType":this.tabType
  314. };
  315. // /bis/insp/fsc/rgstr/list/page
  316. request.post(`/bis/new/vill/rgstr/findPageByType`,params).then(res =>{
  317. if(res.success){
  318. this.expLoading = false;
  319. if(res.data.list){
  320. res.data.list.forEach((item)=>{
  321. if(item.intm && item.uptm){
  322. item.intm = item.intm.substr(0,10);
  323. item.uptm = item.uptm.substr(0,10);
  324. }
  325. })
  326. }
  327. this.tdfjDataList = res.data.list;
  328. this.total = res.data.total;
  329. }
  330. })
  331. },
  332. onSubmit(){
  333. this.getTdfjDataList();
  334. },
  335. toAddMember(type,rowData){
  336. var _self = this;
  337. this.rowData = rowData;
  338. console.log(rowData);
  339. _self.currentObjectId = this.rowData.objId;
  340. _self.currentObjectRgstrId = this.rowData.regstrId;
  341. _self.currentResName = this.rowData.nm;
  342. _self.currentResCode = this.rowData.code;
  343. _self.showxinRenYinTianBao = true;
  344. },
  345. cancelHandler(){
  346. this.showxinRenYinTianBao = false;
  347. this.getTdfjDataList();
  348. },
  349. addxinRenYinSuccess(){
  350. this.getTdfjDataList();
  351. },
  352. deleteMember(obj){
  353. console.log(obj);
  354. var _self = this;
  355. // /dc/insp/rsvrRgstr/delete/{id}
  356. this.$confirm('此操作将删除该条相关的所有已填报的信息和问题,确认删除该条数据吗?', '提示', {
  357. confirmButtonText: '确定',
  358. cancelButtonText: '取消',
  359. type: 'warning'
  360. }).then(() => {
  361. request.get(`/supervision/plan/cleanObjDataByObjId?objType=25&objId=${obj.objId}`).then((res)=>{
  362. if(res.success){
  363. _self.pageIndexChange();
  364. _self.$message.success('删除成功')
  365. }else{
  366. _self.$message.error(res.message)
  367. }
  368. });
  369. }).catch(() => {
  370. });
  371. },
  372. submitHandler(rowData){
  373. console.log(rowData)
  374. var _self = this;
  375. if(rowData.waterPriceIsMade != '2'){
  376. this.$message.warning('水价相关政策制定情况未填报完成')
  377. return
  378. }
  379. // if(rowData.waterSafeOrPay != '2'){
  380. // this.$message.warning('农饮安全和供水工程情况')
  381. // return
  382. // }
  383. this.$confirm('请确认所有信息填报完毕?', '提示', {
  384. confirmButtonText: '确定',
  385. cancelButtonText: '取消',
  386. type: 'warning'
  387. }).then(() => {
  388. let formObj = {
  389. "id":rowData.regstrId,
  390. "state":"2"
  391. }
  392. request.post('/bis/new/vill/rgstr', formObj).then((res) => {
  393. if (res.success) {
  394. _self.addxinRenYinSuccess();
  395. _self.$message.success("提交成功");
  396. } else {
  397. _self.cancelHandler();
  398. }
  399. });
  400. }).catch(() => {
  401. });
  402. },
  403. pageIndexChange(val){
  404. console.log(val);
  405. this.pageIndex = val;
  406. this.getTdfjDataList();
  407. },
  408. handleSizeChange(val){
  409. this.pageSize = val;
  410. this.getTdfjDataList();
  411. },
  412. // 下载填报模板
  413. downloadTemplate(){
  414. this.downloadTemplateSet();
  415. this.disabled = false;
  416. },
  417. downloadTemplateSet(){
  418. let paramStartDate = '';
  419. let paramEndDate = '';
  420. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  421. paramStartDate = this.dateRange[0];
  422. paramEndDate = this.dateRange[1];
  423. }
  424. let href = `/pdcApi/bis/insp/fsc/pblm/downTemplate?fileName=pblmFsc.xlsx&adName=${this.adName}&name=${this.name}&state=${this.dcType}&entm=${paramEndDate}sttm=${paramStartDate}&presId=${this.persId}&startRow=1`;
  425. const a = document.createElement('a'); // 创建a标签
  426. a.setAttribute('download', '特定飞检填报模板.xls');// download属性
  427. a.setAttribute('href', href);// href链接
  428. a.click();// 自执行点击事件
  429. },
  430. showPlDialog(){
  431. this.showxinRenYinTianBaoPl = true
  432. },
  433. closePlDialog(val){
  434. this.showxinRenYinTianBaoPl = false
  435. },
  436. uploadSuccess(){
  437. this.showxinRenYinTianBaoPl = false;
  438. this.getTdfjDataList();
  439. }
  440. },
  441. };
  442. </script>
  443. <style>
  444. .el-table .warning-row {
  445. background: oldlace;
  446. }
  447. .el-table .success-row {
  448. background: #f0f9eb;
  449. }
  450. #dxdcListMaintdfj{
  451. overflow-y: hidden;
  452. }
  453. </style>