c003186d6aac30acdf8566f5ff80ab2ca59d166b.svn-base 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. <template>
  2. <el-container class="check_plan_zj">
  3. <el-main>
  4. <el-card class="box-card" :style="{'height': cardHeight + 'px','overflow-y':'auto'}">
  5. <el-row :gutter="24" type="flex" justify="start" class="notice_title">
  6. <el-col :span="20">
  7. <el-form :inline="true" size="small" class="demo-form-inline" label-width="80px">
  8. <el-form-item label="年度" size="mini">
  9. <el-date-picker
  10. v-model="searchForm.chkYear"
  11. type="year"
  12. format="yyyy"
  13. value-format="yyyy"
  14. placeholder="选择年度">
  15. </el-date-picker>
  16. </el-form-item>
  17. <el-form-item label="支撑单位" size="mini">
  18. <el-input v-model="searchForm.chkDep" placeholder="请输入支撑单位" clearable></el-input>
  19. </el-form-item>
  20. <el-form-item label="项目" size="mini">
  21. <el-input v-model="searchForm.chkItem" placeholder="请输入项目" clearable></el-input>
  22. </el-form-item>
  23. <el-form-item label="事项名称">
  24. <el-input v-model="searchForm.chkMatter" placeholder="请输入事项名称" clearable></el-input>
  25. </el-form-item>
  26. <el-form-item>
  27. <el-button type="primary" @click="searchBtn">查询</el-button>
  28. </el-form-item>
  29. </el-form>
  30. </el-col>
  31. </el-row>
  32. <div>
  33. <div class="table_title">
  34. <h2>监督检查工作计划</h2>
  35. <div>
  36. <el-button type="success" @click="addFormBtn">添加监督检查计划</el-button>
  37. <el-button type="primary" @click="downloadPlan">导出检查计划</el-button>
  38. <el-button type="primary" @click="downloadSum">导出检查计划汇总表</el-button>
  39. <el-button type="primary" @click="downloadTemplate">下载模板</el-button>
  40. <span style="padding-left: 10px;">
  41. <common-upload-auto-simple
  42. ref="Import306"
  43. :limit=1
  44. :url="`/pdcApi/bis/insp/plan/chk/impExl`"
  45. @uploadOver="uploadOver"
  46. :accept="'.xls'"
  47. style="margin:auto;"
  48. comment=".xls格式,不超过2MB(自动上传)"
  49. fileDesc="导入"
  50. ></common-upload-auto-simple>
  51. </span>
  52. </div>
  53. </div>
  54. <el-table
  55. border
  56. ref="multipleTable"
  57. :height="tableHeight"
  58. :data="tableData"
  59. tooltip-effect="dark"
  60. style="width: 100%"
  61. v-loading="loading">
  62. <el-table-column align="center" type="index" label="序号" min-width="25">
  63. <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>
  64. </el-table-column>
  65. <el-table-column
  66. header-align="center"
  67. align="center"
  68. min-width="50"
  69. prop="chkYear"
  70. label="年度"
  71. show-overflow-tooltip
  72. ></el-table-column>
  73. <el-table-column label="事项名称" align="center">
  74. <el-table-column
  75. header-align="center"
  76. align="center"
  77. min-width="150"
  78. prop="chkItem"
  79. label="项目"
  80. show-overflow-tooltip
  81. ></el-table-column>
  82. <el-table-column
  83. header-align="center"
  84. align="center"
  85. min-width="150"
  86. prop="chkMatter"
  87. label="监管事项"
  88. show-overflow-tooltip
  89. ></el-table-column>
  90. </el-table-column>
  91. <el-table-column
  92. header-align="center"
  93. align="center"
  94. min-width="200"
  95. prop="chkBatch"
  96. label="批次"
  97. show-overflow-tooltip>
  98. </el-table-column>
  99. <el-table-column
  100. header-align="center"
  101. align="center"
  102. min-width="160"
  103. prop="chkTm"
  104. label="计划时间"
  105. show-overflow-tooltip
  106. ></el-table-column>
  107. <el-table-column label="检查地区" align="center">
  108. <el-table-column
  109. header-align="center"
  110. align="center"
  111. min-width="200"
  112. prop="chkCity"
  113. label="市(州)"
  114. show-overflow-tooltip
  115. ></el-table-column>
  116. <el-table-column
  117. header-align="center"
  118. align="center"
  119. min-width="100"
  120. prop="chkCounty"
  121. label="县"
  122. show-overflow-tooltip
  123. ></el-table-column>
  124. </el-table-column>
  125. <el-table-column
  126. header-align="center"
  127. align="center"
  128. min-width="130"
  129. prop="chkContent"
  130. label="主要检查内容"
  131. show-overflow-tooltip>
  132. </el-table-column>
  133. <el-table-column
  134. header-align="center"
  135. align="center"
  136. min-width="130"
  137. prop="chkDep"
  138. label="支撑单位"
  139. show-overflow-tooltip>
  140. </el-table-column>
  141. <el-table-column
  142. header-align="center"
  143. align="center"
  144. min-width="100"
  145. prop="chkType"
  146. label="开展方式"
  147. show-overflow-tooltip
  148. ></el-table-column>
  149. <el-table-column
  150. align="center"
  151. min-width="260"
  152. label="操作"
  153. fixed="right">
  154. <template slot-scope="scope">
  155. <el-button type="success" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  156. <el-button type="success" size="mini" @click.stop="edit(scope.row)">编辑</el-button>
  157. <el-button type="danger" size="mini" @click.stop="deleteData(scope.row.id)">删除</el-button>
  158. </template>
  159. </el-table-column>
  160. </el-table>
  161. <el-pagination
  162. style="margin: 10px auto"
  163. background
  164. :pager-count="5"
  165. :current-page="pageNum"
  166. :page-size="pageSize"
  167. :page-sizes="[10, 20, 30, 40, 50, 100]"
  168. layout="sizes, total, prev, pager, next"
  169. :total="total"
  170. @current-change="handleCurrentChange"
  171. @size-change="handleSizeChange"
  172. ></el-pagination>
  173. </div>
  174. </el-card>
  175. </el-main>
  176. <el-dialog
  177. class="outerDialog custom_dialog"
  178. :title="dialogT+'监督检查计划'"
  179. width="60%"
  180. @close="closeAddDialog"
  181. v-if="addDialogVisible"
  182. :visible.sync="addDialogVisible">
  183. <div style="width: 100%;height:100%;">
  184. <el-form ref="addForm" label-width="200px">
  185. <el-form-item label="选择年度" required>
  186. <el-date-picker
  187. v-model="addForm.chkYear"
  188. type="year"
  189. format="yyyy"
  190. value-format="yyyy"
  191. placeholder="选择年度">
  192. </el-date-picker>
  193. </el-form-item>
  194. <el-form-item label="项目" required>
  195. <el-input v-model="addForm.chkItem" placeholder="请输入项目"></el-input>
  196. </el-form-item>
  197. <el-form-item label="监管事项" required>
  198. <el-input v-model="addForm.chkMatter" placeholder="请输入监管事项"></el-input>
  199. </el-form-item>
  200. <el-form-item label="批次" required>
  201. <el-input v-model="addForm.chkBatch" placeholder="请输入批次"></el-input>
  202. </el-form-item>
  203. <el-form-item label="计划时间(月)" required>
  204. <el-input v-model="addForm.chkTm" placeholder="请输入月份"></el-input>
  205. </el-form-item>
  206. <el-form-item label="检查市(州)" required>
  207. <el-input v-model="addForm.chkCity" placeholder="请输入市(州)"></el-input>
  208. </el-form-item>
  209. <el-form-item label="县" required>
  210. <el-input v-model="addForm.chkCounty" placeholder="请输入县"></el-input>
  211. </el-form-item>
  212. <el-form-item label="主要检查内容" required>
  213. <el-input v-model="addForm.chkContent" placeholder="请输入主要检查内容"></el-input>
  214. </el-form-item>
  215. <el-form-item label="支撑单位" required>
  216. <el-input v-model="addForm.chkDep" placeholder="请输入支撑单位"></el-input>
  217. </el-form-item>
  218. <el-form-item label="开展方式" required>
  219. <el-input v-model="addForm.chkType" placeholder="请输入开展方式"></el-input>
  220. </el-form-item>
  221. <el-form-item style="text-align: center">
  222. <el-button type="primary" @click="addSubmit" style="margin-bottom: 30px;">确定</el-button>
  223. </el-form-item>
  224. </el-form>
  225. </div>
  226. </el-dialog>
  227. <el-dialog
  228. class="outerDialog custom_dialog"
  229. :title="'监督检查计划详细'"
  230. width="40%"
  231. @close="closeDetailDialog"
  232. v-if="detailDialogVisible"
  233. :visible.sync="detailDialogVisible">
  234. <div style="width: 100%;height:100%;overflow: auto;">
  235. <table>
  236. <tr><td>年度</td><td>{{detailObj.chkYear}}</td></tr>
  237. <tr><td>项目</td><td>{{detailObj.chkItem}}</td></tr>
  238. <tr><td>监管事项</td><td>{{detailObj.chkMatter}}</td></tr>
  239. <tr><td>批次</td><td>{{detailObj.chkBatch}}</td></tr>
  240. <tr><td>计划时间(月)</td><td>{{detailObj.chkTm}}</td></tr>
  241. <tr><td>检查市(州)</td><td>{{detailObj.chkCity}}</td></tr>
  242. <tr><td>县</td><td>{{detailObj.chkCounty}}</td></tr>
  243. <tr><td>主要检查内容</td><td>{{detailObj.chkContent}}</td></tr>
  244. <tr><td>支撑单位</td><td>{{detailObj.chkDep}}</td></tr>
  245. <tr><td>开展方式</td><td>{{detailObj.chkType}}</td></tr>
  246. </table>
  247. </div>
  248. </el-dialog>
  249. </el-container>
  250. </template>
  251. <script>
  252. import {exportModel} from "@util/gw_exportModel";
  253. import request from '@util/gw_ajax_request'
  254. import CommonUploadAutoSimple from "../../../widgets/common-upload-auto-simple";
  255. export default {
  256. name: "",
  257. props: [],
  258. data() {
  259. return {
  260. cardHeight: window.innerHeight - 130,
  261. tableData: [],
  262. tableHeight: window.innerHeight - 350,
  263. loading: false,
  264. pageSize: 20,
  265. pageNum: 1,
  266. total:0,
  267. formLabelWidth: '120px',
  268. searchForm:{
  269. chkYear:"",
  270. chkDep:"",
  271. chkItem:"",
  272. chkMatter:""
  273. },
  274. addDialogVisible:false,
  275. detailDialogVisible:false,
  276. isAddFalg:true,
  277. detailObj:{},
  278. dialogT:"",
  279. addForm:{
  280. chkYear:"",
  281. chkItem:"",
  282. chkMatter:"",
  283. chkBatch:"",
  284. chkTm:"",
  285. chkCity:"",
  286. chkCounty:"",
  287. chkContent:"",
  288. chkDep:"",
  289. chkType:""
  290. },
  291. updateForm:{
  292. id:"",
  293. chkYear:"",
  294. chkItem:"",
  295. chkMatter:"",
  296. chkBatch:"",
  297. chkTm:"",
  298. chkCity:"",
  299. chkCounty:"",
  300. chkContent:"",
  301. chkDep:"",
  302. chkType:""
  303. }
  304. }
  305. },
  306. components: {
  307. CommonUploadAutoSimple
  308. },
  309. computed: {
  310. persId() {
  311. return localStorage.getItem("userid")
  312. ? localStorage.getItem("userid")
  313. : "1098101939614724096";
  314. },
  315. orgId() {
  316. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  317. },
  318. organCode() {
  319. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  320. },
  321. },
  322. mounted() {
  323. this.initTableData();
  324. },
  325. methods: {
  326. uploadOver(){
  327. this.initTableData();
  328. },
  329. async downloadPlan() {
  330. if (!this.searchForm.chkYear) {
  331. this.$message.warning("请选择年份");
  332. return;
  333. }
  334. if (!this.searchForm.chkDep) {
  335. this.$message.warning("请输入支撑单位");
  336. return;
  337. }
  338. let url = "/pdcApi/bis/insp/plan/chk/export/checkList";
  339. let type = "post";
  340. let exportName = "检查计划表.xls"
  341. let param = JSON.stringify({chkYear:this.searchForm.chkYear,chkDep:this.searchForm.chkDep});
  342. let result = await exportModel(type, url, exportName,param);
  343. },
  344. async downloadSum() {
  345. if (!this.searchForm.chkYear) {
  346. this.$message.warning("请选择年份");
  347. return;
  348. }
  349. let url = "/pdcApi/bis/insp/plan/chk/export/checkList";
  350. let type = "post";
  351. let exportName = "检查计划汇总表.xls"
  352. let param = JSON.stringify({chkYear:this.searchForm.chkYear});
  353. let result = await exportModel(type, url, exportName, param);
  354. },
  355. async downloadTemplate() {
  356. let url = "/pdcApi/bis/insp/plan/chk/getExl";
  357. let type = "get";
  358. let exportName = "年度检查计划模板.xls"
  359. let result = await exportModel(type, url, exportName, null);
  360. },
  361. lookOver(obj){
  362. this.detailObj = obj;
  363. this.detailDialogVisible = true;
  364. },
  365. deleteData(id){
  366. var _self = this;
  367. this.$confirm('确定删除该条数据吗, 是否继续?', '提示', {
  368. confirmButtonText: '确定',
  369. cancelButtonText: '取消',
  370. type: 'warning'
  371. }).then(() => {
  372. request.post('/bis/insp/plan/chk/delete/'+id).then(res=>{
  373. if(res.success){
  374. _self.initTableData();
  375. }else{
  376. _self.$message.warning(res.message);
  377. }
  378. })
  379. }).catch(() => {
  380. this.$message({
  381. type: 'info',
  382. message: '已取消删除'
  383. });
  384. });
  385. },
  386. edit(row){
  387. var obj = JSON.stringify(row);
  388. this.addDialogVisible = true;
  389. this.addForm = JSON.parse(obj);
  390. this.addForm.chkYear = JSON.stringify(this.addForm.chkYear);
  391. this.isAddFalg = false;
  392. this.dialogT = "编辑";
  393. },
  394. addSubmit(){
  395. if(this.addForm.chkYear=="" || this.addForm.chkYear==undefined){
  396. this.$message.warning("请选择年份");
  397. return;
  398. }
  399. if(this.addForm.chkItem=="" || this.addForm.chkItem==undefined){
  400. this.$message.warning("请输入项目");
  401. return;
  402. }
  403. if(this.addForm.chkMatter=="" || this.addForm.chkMatter==undefined){
  404. this.$message.warning("请输入监管事项");
  405. return;
  406. }
  407. if(this.addForm.chkBatch=="" || this.addForm.chkBatch==undefined){
  408. this.$message.warning("请输入批次");
  409. return;
  410. }
  411. if(this.addForm.chkTm=="" || this.addForm.chkTm==undefined){
  412. this.$message.warning("请输入计划时间月");
  413. return;
  414. }
  415. if(this.addForm.chkCity=="" || this.addForm.chkCity==undefined){
  416. this.$message.warning("请输入市(州)");
  417. return;
  418. }
  419. if(this.addForm.chkCounty=="" || this.addForm.chkCounty==undefined){
  420. this.$message.warning("请输入县");
  421. return;
  422. }
  423. if(this.addForm.chkContent=="" || this.addForm.chkContent==undefined){
  424. this.$message.warning("请输入检查内容");
  425. return;
  426. }
  427. if(this.addForm.chkDep=="" || this.addForm.chkDep==undefined){
  428. this.$message.warning("请输入支撑单位");
  429. return;
  430. }
  431. if(this.addForm.chkType=="" || this.addForm.chkType==undefined){
  432. this.$message.warning("请输入开展方式");
  433. return;
  434. }
  435. var _self = this;
  436. request.post('/bis/insp/plan/chk',this.addForm).then(res=>{
  437. if(res.success){
  438. _self.$message.success("保存成功");
  439. _self.addDialogVisible = false;
  440. _self.addForm = {};
  441. _self.initTableData();
  442. }else{
  443. _self.$message.warning(res.message);
  444. }
  445. })
  446. },
  447. closeAddDialog(){
  448. this.addDialogVisible = false;
  449. },
  450. closeDetailDialog(){
  451. this.detailDialogVisible = false;
  452. },
  453. addFormBtn(){
  454. this.addDialogVisible = true;
  455. this.addForm = {};
  456. this.isAddFalg = true;
  457. this.dialogT = "添加";
  458. },
  459. searchBtn(){
  460. this.initTableData();
  461. },
  462. initTableData(){
  463. this.searchForm.pageNum = this.pageNum;
  464. this.searchForm.pageSize = this.pageSize;
  465. var _self = this;
  466. request.post('/bis/insp/plan/chk/listOfPage',this.searchForm).then(res=>{
  467. if(res.success){
  468. _self.tableData = res.data.list;
  469. _self.total = res.data.total;
  470. }else{
  471. this.$message.warning(res.message)
  472. }
  473. })
  474. },
  475. handleCurrentChange(val){
  476. this.pageNum = val;
  477. this.initTableData();
  478. },
  479. handleSizeChange(val){
  480. this.pageSize = val;
  481. this.initTableData();
  482. }
  483. }
  484. }
  485. </script>
  486. <style lang="scss" scoped>
  487. table{
  488. width: 100%;
  489. height:100%;
  490. border-collapse: collapse;
  491. margin-bottom: 30px;
  492. }
  493. table tr td{
  494. border:1px solid #cecece;
  495. height:35px;
  496. text-indent: 15px;
  497. padding-right: 15px;
  498. }
  499. table tr td:first-child{
  500. background: #f2f1f1;
  501. width: 120px;
  502. text-align: right;
  503. }
  504. .check_plan_zj{
  505. width: 100%;
  506. height:100%;
  507. margin: 0;
  508. padding: 0;
  509. .table_title{
  510. margin-bottom: 10px;
  511. overflow: hidden;
  512. h2{
  513. text-align: center;
  514. }
  515. div{
  516. float: right;
  517. }
  518. }
  519. .notice_title{
  520. .el-input--mini .el-input__inner,.el-select-dropdown__list{
  521. width: 8vw;
  522. }
  523. }
  524. .rowClassP{
  525. span {
  526. color: #3399ff;
  527. margin-left: 15px;
  528. cursor: pointer;
  529. }
  530. }
  531. }
  532. </style>