5e517f4e145bc992c0f1094f46c243b2c72e4a4a.svn-base 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. <template>
  2. <el-container class="monthReport">
  3. <el-card class="box-card" :style="{'height': cardHeight + 'px','overflow-y':'auto'}">
  4. <h2 class="title_monthReport">月汇总统计</h2>
  5. <el-form :inline="true" size="mini" class="demo-form-inline" label-width="120px">
  6. <el-form-item label="计划年月">
  7. <el-date-picker
  8. v-model="dateRange"
  9. type="monthrange"
  10. clearable
  11. value-format="yyyy-MM"
  12. range-separator="至"
  13. start-placeholder="开始月"
  14. end-placeholder="结束月">
  15. </el-date-picker>
  16. </el-form-item>
  17. <el-form-item label="组织处室(单位)" v-if="isShow">
  18. <el-input v-model="searchForm.leadDep" placeholder="组织处室(单位)" clearable></el-input>
  19. </el-form-item>
  20. <el-form-item label="监督检查事项" v-if="isShow">
  21. <el-select v-model="objTypeParam" multiple collapse-tags placeholder="监督检查事项" clearable>
  22. <el-option
  23. v-for="item in dcTypeList"
  24. :key="item.code"
  25. :label="item.inspName"
  26. :value="item.inspType">
  27. </el-option>
  28. </el-select>
  29. </el-form-item>
  30. <el-form-item label="开展方式" v-if="isShow">
  31. <el-select v-model="chkFormParam" multiple collapse-tags placeholder="开展方式" clearable>
  32. <el-option v-for="item in chkFormArr" :label="item.label" :value="item.value"></el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item style="float:right;">
  36. <el-button type="primary" size="mini" @click="searchBtn" style="margin-left: 10px;">查询</el-button>
  37. <el-button type="primary" size="mini" @click="exportExcel">导出</el-button>
  38. </el-form-item>
  39. </el-form>
  40. <div>
  41. <el-table
  42. v-show="isShow"
  43. border
  44. ref="table"
  45. :height="tableHeight"
  46. show-summary
  47. :summary-method="getSummaries"
  48. :data="tableData"
  49. tooltip-effect="dark"
  50. style="width: 100%"
  51. v-loading="loading">
  52. <el-table-column align="center" type="index" label="序号" width="80">
  53. <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>
  54. </el-table-column>
  55. <el-table-column
  56. header-align="center"
  57. align="center"
  58. min-width="200"
  59. prop="objTypeNm"
  60. label="监督检查事项"
  61. show-overflow-tooltip
  62. ></el-table-column>
  63. <el-table-column
  64. header-align="center"
  65. align="center"
  66. min-width="200"
  67. prop="leadDep"
  68. label="组织处室(单位)"
  69. show-overflow-tooltip
  70. ></el-table-column>
  71. <el-table-column
  72. header-align="center"
  73. align="center"
  74. min-width="200"
  75. prop="chkFormNm"
  76. label="开展方式"
  77. show-overflow-tooltip
  78. ></el-table-column>
  79. <el-table-column
  80. header-align="center"
  81. align="center"
  82. min-width="120"
  83. prop="sttm"
  84. :formatter="formatDateRang"
  85. label="计划开展时间"
  86. show-overflow-tooltip
  87. ></el-table-column>
  88. <el-table-column
  89. header-align="center"
  90. align="center"
  91. width="120"
  92. prop="chkGroup"
  93. label="检查组次"
  94. show-overflow-tooltip
  95. ></el-table-column>
  96. <el-table-column
  97. header-align="center"
  98. align="center"
  99. prop="chkPers"
  100. width="120"
  101. label="检查人次"
  102. show-overflow-tooltip
  103. ></el-table-column>
  104. <el-table-column
  105. header-align="center"
  106. align="center"
  107. width="200"
  108. prop="chkLeder"
  109. label="厅领导参加检查人次"
  110. show-overflow-tooltip
  111. ></el-table-column>
  112. <el-table-column
  113. header-align="center"
  114. align="center"
  115. prop="chkNote"
  116. width="300"
  117. label="监督检查开展情况"
  118. show-overflow-tooltip
  119. ></el-table-column>
  120. <el-table-column
  121. header-align="center"
  122. align="center"
  123. width="120"
  124. prop="chkPblm"
  125. label="检查发现问题数"
  126. show-overflow-tooltip
  127. ></el-table-column>
  128. <el-table-column
  129. header-align="center"
  130. align="center"
  131. width="120"
  132. prop="trainNum"
  133. label="当月培训期次"
  134. show-overflow-tooltip
  135. ></el-table-column>
  136. <el-table-column
  137. header-align="center"
  138. align="center"
  139. width="120"
  140. prop="trainPers"
  141. label="参加培训人数"
  142. show-overflow-tooltip
  143. ></el-table-column>
  144. <el-table-column
  145. header-align="center"
  146. align="center"
  147. prop="isFinish"
  148. width="300"
  149. :formatter="isFFormat"
  150. label="是否完成年度计划"
  151. show-overflow-tooltip
  152. ></el-table-column>
  153. <el-table-column
  154. align="center"
  155. min-width="260"
  156. label="操作"
  157. v-if="ownPriv('manage') && rowData.state!='1'"
  158. fixed="right">
  159. <template slot-scope="scope">
  160. <el-button type="success" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  161. <el-button type="success" size="mini" v-if="rowData.state!='1'" @click.stop="edit(scope.row)">编辑</el-button>
  162. <el-button type="danger" size="mini" v-if="rowData.state!='1'" @click.stop="deleteData(scope.row.id)">删除</el-button>
  163. </template>
  164. </el-table-column>
  165. </el-table>
  166. <el-table
  167. border
  168. show-summary
  169. :summary-method="getSummaries"
  170. v-show="!isShow"
  171. ref="multipleTable"
  172. :height="tableHeight"
  173. :data="tableData"
  174. tooltip-effect="dark"
  175. style="width: 100%"
  176. v-loading="loading">
  177. <el-table-column align="center" type="index" label="序号" min-width="80">
  178. <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>
  179. </el-table-column>
  180. <!-- <el-table-column-->
  181. <!-- header-align="center"-->
  182. <!-- align="center"-->
  183. <!-- min-width="200"-->
  184. <!-- prop="ordr"-->
  185. <!-- label="序号"-->
  186. <!-- show-overflow-tooltip-->
  187. <!-- ></el-table-column>-->
  188. <el-table-column
  189. header-align="center"
  190. align="center"
  191. min-width="200"
  192. prop="unitName"
  193. label="填报处室"
  194. show-overflow-tooltip
  195. ></el-table-column>
  196. <el-table-column
  197. header-align="center"
  198. align="center"
  199. min-width="200"
  200. prop="year"
  201. label="填报年度"
  202. show-overflow-tooltip
  203. ></el-table-column>
  204. <el-table-column
  205. header-align="center"
  206. align="center"
  207. min-width="200"
  208. prop="mnth"
  209. label="填报月份"
  210. show-overflow-tooltip
  211. ></el-table-column>
  212. <el-table-column
  213. header-align="center"
  214. align="center"
  215. min-width="200"
  216. prop=""
  217. label="现场检查情况"
  218. show-overflow-tooltip
  219. >
  220. <el-table-column
  221. header-align="center"
  222. align="center"
  223. min-width="200"
  224. prop="ptype"
  225. label="检查形式"
  226. show-overflow-tooltip
  227. >
  228. <template slot-scope="scope">
  229. <span>{{scope.row.ptype=='0'?'暗访':scope.row.ptype=='1'?'明查':scope.row.ptype=='2'?'线上':''}}</span>
  230. </template>
  231. </el-table-column>
  232. <el-table-column
  233. header-align="center"
  234. align="center"
  235. min-width="200"
  236. prop="tm"
  237. :formatter="formatDateNew"
  238. label="检查时间"
  239. show-overflow-tooltip
  240. ></el-table-column>
  241. <el-table-column
  242. header-align="center"
  243. align="center"
  244. min-width="200"
  245. prop=""
  246. label="监管任务"
  247. show-overflow-tooltip
  248. >
  249. <el-table-column
  250. header-align="center"
  251. align="center"
  252. min-width="200"
  253. prop="prjSize"
  254. label="检查工程数量"
  255. show-overflow-tooltip
  256. ></el-table-column>
  257. <el-table-column
  258. header-align="center"
  259. align="center"
  260. min-width="200"
  261. prop="depSize"
  262. label="被检查单位数量"
  263. show-overflow-tooltip
  264. ></el-table-column>
  265. </el-table-column>
  266. <el-table-column
  267. header-align="center"
  268. align="center"
  269. min-width="200"
  270. prop="chkSize"
  271. label="检查组次"
  272. show-overflow-tooltip
  273. ></el-table-column>
  274. <el-table-column
  275. header-align="center"
  276. align="center"
  277. min-width="200"
  278. prop="leadSize"
  279. label="有厅领导带队的次数"
  280. show-overflow-tooltip
  281. ></el-table-column>
  282. <el-table-column
  283. header-align="center"
  284. align="center"
  285. min-width="200"
  286. prop="chkDaySize"
  287. label="监督检查工日"
  288. show-overflow-tooltip
  289. ></el-table-column>
  290. <el-table-column
  291. header-align="center"
  292. align="center"
  293. min-width="200"
  294. prop="feedBackSize"
  295. label="书面反馈意见份数"
  296. show-overflow-tooltip
  297. ></el-table-column>
  298. <el-table-column
  299. header-align="center"
  300. align="center"
  301. min-width="200"
  302. prop="pblmSize"
  303. label="发现问题数量(条)"
  304. show-overflow-tooltip
  305. ></el-table-column>
  306. </el-table-column>
  307. <el-table-column
  308. header-align="center"
  309. align="center"
  310. min-width="200"
  311. prop=""
  312. label="问题整改情况"
  313. show-overflow-tooltip
  314. >
  315. <el-table-column
  316. header-align="center"
  317. align="center"
  318. min-width="200"
  319. prop="mendSize"
  320. label="要求整改问题数量(条)"
  321. show-overflow-tooltip
  322. ></el-table-column>
  323. <el-table-column
  324. header-align="center"
  325. align="center"
  326. min-width="200"
  327. prop="mendCmpSize"
  328. label="本月完成整改问题数量(条)"
  329. show-overflow-tooltip
  330. ></el-table-column>
  331. <el-table-column
  332. header-align="center"
  333. align="center"
  334. min-width="200"
  335. prop="mendCmpTatSize"
  336. label="累计完成整改问题数量(条)"
  337. show-overflow-tooltip
  338. ></el-table-column>
  339. <el-table-column
  340. header-align="center"
  341. align="center"
  342. min-width="200"
  343. prop="mendCmpRatio"
  344. label="问题累计整改率(%)"
  345. show-overflow-tooltip
  346. ></el-table-column>
  347. </el-table-column>
  348. <el-table-column
  349. header-align="center"
  350. align="center"
  351. min-width="200"
  352. prop=""
  353. label="实施责任追究情况"
  354. show-overflow-tooltip
  355. >
  356. <el-table-column
  357. header-align="center"
  358. align="center"
  359. min-width="200"
  360. prop="accuntDep"
  361. label="被追责单位/主体"
  362. show-overflow-tooltip
  363. ></el-table-column>
  364. <el-table-column
  365. header-align="center"
  366. align="center"
  367. min-width="200"
  368. prop="accuntText"
  369. label="追责事由"
  370. show-overflow-tooltip
  371. ></el-table-column>
  372. <el-table-column
  373. header-align="center"
  374. align="center"
  375. min-width="200"
  376. prop="acuntTm"
  377. :formatter="formatDate"
  378. label="追责时间"
  379. show-overflow-tooltip
  380. ></el-table-column>
  381. <el-table-column
  382. header-align="center"
  383. align="center"
  384. min-width="200"
  385. prop="accuntNote"
  386. label="追责情况"
  387. show-overflow-tooltip
  388. ></el-table-column>
  389. </el-table-column>
  390. </el-table>
  391. </div>
  392. </el-card>
  393. </el-container>
  394. </template>
  395. <script>
  396. import {exportModel} from "@util/gw_exportModel";
  397. import request from '@util/gw_ajax_request'
  398. import receiver from "./receiver"
  399. export default {
  400. name: "",
  401. props: ['rowData'],
  402. data() {
  403. return {
  404. detailObj:{},
  405. chkFormArr:[{
  406. label:"暗访",
  407. value:"1"
  408. },{
  409. label:"明察",
  410. value:"2"
  411. },{
  412. label:"书面",
  413. value:"3"
  414. },{
  415. label:"四不两直",
  416. value:"4"
  417. }],
  418. objTypeParam:[],
  419. objTypeList:[],
  420. chkFormParam:[],
  421. chkFormList:[],
  422. cardHeight: window.innerHeight - 130,
  423. dcTypeList:[],
  424. detailDialogVisible:false,
  425. dateRange:[],
  426. dateRange1:[],
  427. dialogT:"",
  428. monthDialogVisible:true,
  429. addDialogVisible:false,
  430. tableHeight:window.innerHeight-300,
  431. tableData:[],
  432. loading:false,
  433. pageNum:1,
  434. pageSize:10,
  435. total:0,
  436. searchForm:{
  437. chkYearId:"",
  438. sttm:"",
  439. entm:"",
  440. leadDep:"",
  441. objType:"",
  442. chkForm:""
  443. },
  444. YM:"",
  445. orgIdDefault:"",
  446. addForm:{
  447. chkYearId:"",
  448. objType:"",
  449. leadDep:"",
  450. sttm:"",
  451. entm:"",
  452. chkForm:"",
  453. chkMnth:"",
  454. chkNote:"",
  455. chkGroup:"",
  456. chkPers:"",
  457. chkPblm:"",
  458. chkLeder:"",
  459. trainNum:"",
  460. trainPers:"",
  461. nextPlan:"",
  462. note:"",
  463. isFinish:""
  464. }
  465. }
  466. },
  467. filters:{
  468. ChkForm(val){
  469. return val=="1"?"暗访":val=="2"?"明察":val=="3"?"书面":val=="4"?"四不两直":"";
  470. }
  471. },
  472. components: {
  473. receiver
  474. },
  475. computed: {
  476. persId() {
  477. return localStorage.getItem("userid")
  478. ? localStorage.getItem("userid")
  479. : "1098101939614724096";
  480. },
  481. orgId() {
  482. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  483. },
  484. organCode() {
  485. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  486. },
  487. isShow(){
  488. if(this.organCode.substring(0,2)=="44"){
  489. return false;
  490. }
  491. if(this.organCode.substring(0,2)=="37"){
  492. return true;
  493. }
  494. }
  495. },
  496. created(){
  497. this.getTypes();
  498. },
  499. mounted() {
  500. this.initTableData();
  501. },
  502. methods: {
  503. getTypes() {
  504. var _self = this;
  505. request.get(`/bis/insp/rel/org/insp/type/getInspTypeByOrgId/${this.orgId}`)
  506. .then(res => {
  507. if (res.success) {
  508. _self.dcTypeList = res.data;
  509. }
  510. })
  511. },
  512. getSummaries(param) {
  513. const { columns, data } = param;
  514. const sums = [];
  515. columns.forEach((column, index) => {
  516. if (index === 0) {
  517. sums[index] = '总计';
  518. return;
  519. }
  520. const values = data.map(item => Number(item[column.property]));
  521. if (column.property=='chkPers' || column.property=='chkPblm' || column.property=='chkLeder' || column.property=='trainNum' || column.property=='chkGroup' || column.property=='trainPers' ||
  522. column.property=='prjSize' || column.property=='depSize' || column.property=='chkSize' || column.property=='leadSize' || column.property=='chkDaySize' || column.property=='feedBackSize' || column.property=='pblmSize' ||
  523. column.property=='mendSize' || column.property=='mendCmpSize' || column.property=='mendCmpTatSize' || column.property=='chkDaySize') {
  524. sums[index] = values.reduce((prev, curr) => {
  525. const value = Number(curr);
  526. if (!isNaN(value)) {
  527. return prev + curr;
  528. } else {
  529. return prev;
  530. }
  531. }, 0);
  532. sums[index] += '';
  533. } else {
  534. sums[index] = '';
  535. }
  536. });
  537. return sums;
  538. },
  539. closeDetailDialog(){
  540. this.detailDialogVisible = false;
  541. },
  542. lookOver(obj){
  543. this.detailObj = obj;
  544. var tm = "";
  545. if(this.detailObj.sttm){
  546. tm = this.formatDate(this.detailObj,{property:"sttm"},null,null)
  547. }
  548. if(this.detailObj.entm){
  549. tm += "~"+this.formatDate(this.detailObj,{property:"entm"},null,null)
  550. }
  551. this.detailObj.tm = tm;
  552. this.detailDialogVisible = true;
  553. },
  554. closeDialog(){
  555. this.$emit('closeDialogMonth')
  556. },
  557. formatDate(row, column, cellValue, index){
  558. var dateF = row[column.property];
  559. if(dateF){
  560. var date = new Date(dateF);
  561. return date.getFullYear()+"-"+((date.getMonth()+1)>9?(date.getMonth()+1):'0'+(date.getMonth()+1))+"-"+date.getDate();
  562. }
  563. return "";
  564. },
  565. formatDateRange(row, column, cellValue, index){
  566. var dateF = row[column.property];
  567. if(dateF){
  568. var date = new Date(dateF);
  569. return date.getFullYear()+"-"+((date.getMonth()+1)>9?(date.getMonth()+1):'0'+(date.getMonth()+1));
  570. }
  571. return "";
  572. },
  573. formatDateNew(row, column, cellValue, index){
  574. return this.formatDateRange({tm:row.tm},{property:"tm"},null,null)+"~"+this.formatDateRange({em:row.em},{property:"em"},null,null);
  575. },
  576. formatDateRang(row, column, cellValue, index){
  577. var tm = "";
  578. if(row.sttm){
  579. tm = this.formatDate(row,{property:"sttm"},null,null)
  580. }
  581. if(row.entm){
  582. tm += "~"+this.formatDate(row,{property:"entm"},null,null)
  583. }
  584. return tm;
  585. },
  586. chkFormFormat(row, column, cellValue, index){
  587. var labelList = [];
  588. this.chkFormArr.forEach((item)=>{
  589. row.chkForm.split(",").forEach((item1)=>{
  590. if(item.value==item1){
  591. labelList.push(item.label);
  592. }
  593. })
  594. })
  595. return labelList.join(",");
  596. },
  597. isFFormat(row, column, cellValue, index){
  598. return row.isFinish=="1"?"是":row.isFinish=="0"?"否":"";
  599. },
  600. objTypeF(row, column, cellValue, index){
  601. var labelList = [];
  602. this.dcTypeList.forEach((item)=>{
  603. row.objType.split(",").forEach((item1)=>{
  604. if(item.inspType==item1){
  605. labelList.push(item.inspName);
  606. }
  607. })
  608. })
  609. return labelList.join(",");
  610. },
  611. async exportExcel() {
  612. this.searchForm.persId = this.persId;
  613. if(this.objTypeParam && this.objTypeParam.length>0){
  614. this.searchForm.objType = this.objTypeParam.join(",");
  615. }else{
  616. this.searchForm.objType = "";
  617. }
  618. if(this.chkFormParam && this.chkFormParam.length>0){
  619. this.searchForm.chkForm = this.chkFormParam.join(",");
  620. }else{
  621. this.searchForm.chkForm = "";
  622. }
  623. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  624. this.searchForm.sttm = this.dateRange[0];
  625. this.searchForm.entm = this.dateRange[1];
  626. }else{
  627. this.searchForm.sttm = "";
  628. this.searchForm.entm = "";
  629. }
  630. let url = "/pdcApi/bis/insp/plan/year/exportMonth";
  631. let type = "POST";
  632. let exportName = "月进展情况.xls"
  633. let result = await exportModel(type, url, exportName,JSON.stringify(this.searchForm));
  634. },
  635. deleteData(id){
  636. var _self = this;
  637. this.$confirm('确定删除该条数据吗, 是否继续?', '提示', {
  638. confirmButtonText: '确定',
  639. cancelButtonText: '取消',
  640. type: 'warning'
  641. }).then(() => {
  642. request.post('/bis/insp/plan/year/prg/delete/'+id).then(res=>{
  643. if(res.success){
  644. _self.initTableData();
  645. }else{
  646. _self.$message.warning(res.message);
  647. }
  648. })
  649. }).catch(() => {
  650. this.$message({
  651. type: 'info',
  652. message: '已取消删除'
  653. });
  654. });
  655. },
  656. edit(row){
  657. var obj = JSON.stringify(row);
  658. this.addDialogVisible = true;
  659. this.addForm = JSON.parse(obj);
  660. this.objTypeList = this.addForm.objType?this.addForm.objType.split(","):[];
  661. this.chkFormList = this.addForm.chkForm?this.addForm.chkForm.split(","):[];
  662. this.dateRange1 = [this.addForm.sttm,this.addForm.entm];
  663. this.dialogT = "编辑";
  664. },
  665. addSubmit(){
  666. if(!this.objTypeList || this.objTypeList.length==0){
  667. this.$message.warning("请选择监督检查事项");
  668. return;
  669. }
  670. if(!this.addForm.leadDep){
  671. this.$message.warning("请输入组织处室(单位)");
  672. return;
  673. }
  674. if(!this.chkFormList || this.chkFormList.length==0){
  675. this.$message.warning("请选择开展方式");
  676. return;
  677. }
  678. if(!this.dateRange1 || this.dateRange1.length==0){
  679. this.$message.warning("请选择计划开展时间");
  680. return;
  681. }
  682. if(!this.addForm.chkGroup){
  683. this.$message.warning("请输入检查组次");
  684. return;
  685. }
  686. if(!this.addForm.chkPers){
  687. this.$message.warning("请输入检查人次");
  688. return;
  689. }
  690. if(!this.addForm.chkLeder){
  691. this.$message.warning("请输入厅领导参加检查人次");
  692. return;
  693. }
  694. if(!this.addForm.chkNote){
  695. this.$message.warning("请输入监督检查开展情况");
  696. return;
  697. }
  698. if(!this.addForm.chkPblm){
  699. this.$message.warning("请输入检查发现问题数");
  700. return;
  701. }
  702. if(!this.addForm.trainNum){
  703. this.$message.warning("请输入当月培训期次");
  704. return;
  705. }
  706. if(!this.addForm.trainPers){
  707. this.$message.warning("请输入参加培训人数");
  708. return;
  709. }
  710. if(!this.addForm.isFinish){
  711. this.$message.warning("请选择是否完成年度计划");
  712. return;
  713. }
  714. this.addForm.chkYearId = this.rowData.id;
  715. this.addForm.sttm = this.dateRange1[0];
  716. this.addForm.entm = this.dateRange1[1];
  717. this.addForm.objType = this.objTypeList.join(",");
  718. this.addForm.chkForm = this.chkFormList.join(",");
  719. var labelList = [];
  720. this.chkFormArr.forEach((item)=>{
  721. this.chkFormList.forEach((item1)=>{
  722. if(item.value==item1){
  723. labelList.push(item.label);
  724. }
  725. })
  726. })
  727. this.addForm.chkFormNm = labelList.join(",");
  728. labelList = [];
  729. this.dcTypeList.forEach((item)=>{
  730. this.objTypeList.forEach((item1)=>{
  731. if(item.inspType==item1){
  732. labelList.push(item.inspName);
  733. }
  734. })
  735. })
  736. this.addForm.objTypeNm = labelList.join(",");
  737. var _self = this;
  738. request.post('/bis/insp/plan/year/prg/',this.addForm).then(res=>{
  739. if(res.success){
  740. _self.$message.success("保存成功");
  741. _self.addDialogVisible = false;
  742. _self.addForm = {};
  743. _self.objTypeList = [];
  744. _self.chkFormList = [];
  745. _self.dateRange1 = [];
  746. _self.initTableData();
  747. }else{
  748. _self.$message.warning(res.message);
  749. }
  750. })
  751. },
  752. selectOrgChange(data){
  753. this.addForm.unitName = data.name;
  754. },
  755. clearRecv(){
  756. this.addForm.unitName = "";
  757. },
  758. closeAddDialog(){
  759. this.addDialogVisible = false;
  760. },
  761. initTableData(){
  762. this.searchForm.persId = this.persId;
  763. if(this.objTypeParam && this.objTypeParam.length>0){
  764. this.searchForm.objType = this.objTypeParam.join(",");
  765. }else{
  766. this.searchForm.objType = "";
  767. }
  768. if(this.chkFormParam && this.chkFormParam.length>0){
  769. this.searchForm.chkForm = this.chkFormParam.join(",");
  770. }else{
  771. this.searchForm.chkForm = "";
  772. }
  773. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  774. this.searchForm.sttm = this.dateRange[0];
  775. this.searchForm.entm = this.dateRange[1];
  776. }else{
  777. this.searchForm.sttm = "";
  778. this.searchForm.entm = "";
  779. }
  780. this.loading = true;
  781. var _self = this;
  782. request.post(`/bis/insp/plan/year/findListByMonth`,this.searchForm).then(res=>{
  783. if(res.success){
  784. _self.tableData = res.data;
  785. _self.loading = false;
  786. _self.$nextTick(()=>{
  787. _self.$refs.table.doLayout();
  788. })
  789. }else{
  790. _self.$message.warning(res.message)
  791. }
  792. })
  793. },
  794. handleCurrentChange(val){
  795. this.pageNum = val;
  796. this.initTableData();
  797. },
  798. searchBtn(){
  799. this.initTableData();
  800. },
  801. addBtn(){
  802. this.addForm = {};
  803. this.objTypeList = [];
  804. this.chkFormList = [];
  805. this.dateRange1 = [];
  806. this.addDialogVisible = true;
  807. this.dialogT = "添加"
  808. }
  809. }
  810. }
  811. </script>
  812. <style lang="scss" scoped>
  813. .monthReport >>>.el-dialog{
  814. margin-top: 10vh !important;
  815. }
  816. table{
  817. width: 100%;
  818. height:100%;
  819. border-collapse: collapse;
  820. margin-bottom: 30px;
  821. }
  822. table tr td{
  823. border:1px solid #cecece;
  824. height:35px;
  825. text-indent: 15px;
  826. padding-right: 15px;
  827. }
  828. table tr td:first-child{
  829. background: #f2f1f1;
  830. width: 260px;
  831. text-align: right;
  832. }
  833. .monthReport{
  834. width: 100%;
  835. height:90%;
  836. margin: 0;
  837. padding: 0;
  838. }
  839. .box-card{
  840. width: calc(100% - 60px);
  841. height:calc(100% - 20px);
  842. margin: 0 auto;
  843. margin-top: 10px;
  844. }
  845. .title_monthReport{
  846. text-align: center;
  847. padding: 10px;
  848. }
  849. .note_monthReport{
  850. width: 100%;
  851. background-color: rgba(255, 251, 230, 1);
  852. box-sizing: border-box;
  853. border-width: 1px;
  854. border-style: solid;
  855. border-color: rgba(255, 229, 143, 1);
  856. color: rgba(0, 0, 0, 0.447058823529412);
  857. font-size: 14px;
  858. padding: 10px;
  859. }
  860. .note_monthReport p:first-child{
  861. font-size: 16px !important;
  862. }
  863. .monthReport{
  864. .demo-form-inline{
  865. .el-form-item{
  866. margin-bottom: 5px;
  867. margin-top: 8px;
  868. }
  869. }
  870. }
  871. </style>