5c8ec8ddf2de3405fa4e1c856b105fc907971b02.svn-base 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  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. <!--20200518 by wangby-->
  6. <el-row :gutter="24" type="flex" justify="start" class="notice_title">
  7. <el-col :span="20">
  8. <el-form :inline="true" size="small" class="demo-form-inline" label-width="80px">
  9. <el-form-item label="年度" size="mini">
  10. <el-select
  11. v-model="searchForm.year"
  12. clearable
  13. collapse-tags>
  14. <el-option
  15. v-for="item in yearList"
  16. :key="item.id"
  17. :label="item.year"
  18. :value="item.year">
  19. </el-option>
  20. </el-select>
  21. </el-form-item>
  22. <el-form-item label="责任处室" size="mini">
  23. <el-select
  24. ref="refSelectNotice"
  25. v-model="searchForm.departId"
  26. clearable
  27. collapse-tags>
  28. <el-option
  29. v-for="item in orgList"
  30. :key="item.id"
  31. :label="item.departNm"
  32. :value="item.id">
  33. </el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item label="状态" size="mini">
  37. <el-select v-model="searchForm.state" clearable collapse-tags>
  38. <el-option
  39. v-for="item in planState"
  40. :key="item.value"
  41. :label="item.label"
  42. :value="item.value">
  43. </el-option>
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item label="事项名称">
  47. <el-input v-model="searchForm.wokerNm" placeholder="请输入事项名称" clearable></el-input>
  48. </el-form-item>
  49. </el-form>
  50. </el-col>
  51. <el-col :span="4" style="text-align: end;">
  52. <el-button type="warning" @click="getTableData">查询</el-button>
  53. </el-col>
  54. </el-row>
  55. <div>
  56. <div class="table_title">
  57. <h2>监督检查工作计划</h2>
  58. <div>
  59. <el-button type="success" @click="addCheckPlan">添加监督检查计划</el-button>
  60. <el-button type="primary" @click="exportCheckPlan">导出检查计划</el-button>
  61. </div>
  62. </div>
  63. <el-table
  64. border
  65. ref="multipleTable"
  66. :height="tableHeight"
  67. :data="tableData"
  68. tooltip-effect="dark"
  69. style="width: 100%"
  70. v-loading="loading">
  71. <el-table-column align="center" type="index" label="序号" min-width="25">
  72. <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>
  73. </el-table-column>
  74. <el-table-column label="事项名称" align="center">
  75. <el-table-column
  76. header-align="center"
  77. align="center"
  78. min-width="150"
  79. prop="wokerNm"
  80. label="事项名称"
  81. show-overflow-tooltip
  82. ></el-table-column>
  83. <el-table-column
  84. header-align="center"
  85. align="center"
  86. min-width="150"
  87. prop="workerNmDesc"
  88. label="详细名称"
  89. show-overflow-tooltip
  90. ></el-table-column>
  91. </el-table-column>
  92. <el-table-column
  93. header-align="center"
  94. align="center"
  95. min-width="200"
  96. prop="content"
  97. label="督查内容"
  98. show-overflow-tooltip>
  99. </el-table-column>
  100. <el-table-column
  101. header-align="center"
  102. align="center"
  103. min-width="160"
  104. prop="checkWay"
  105. label="检查方式"
  106. show-overflow-tooltip
  107. :formatter="checkWayFormatter"
  108. ></el-table-column>
  109. <el-table-column
  110. header-align="center"
  111. align="center"
  112. min-width="200"
  113. prop="checkRelay"
  114. label="检查依据"
  115. show-overflow-tooltip
  116. ></el-table-column>
  117. <el-table-column
  118. header-align="center"
  119. align="center"
  120. min-width="100"
  121. prop="departNm"
  122. label="责任处室"
  123. show-overflow-tooltip
  124. ></el-table-column>
  125. <el-table-column
  126. header-align="center"
  127. align="center"
  128. min-width="130"
  129. prop="checkSttdDate"
  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="checkEndDate"
  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="state"
  146. label="状态"
  147. :formatter="stateFormatter"
  148. show-overflow-tooltip
  149. ></el-table-column>
  150. <el-table-column
  151. align="center"
  152. min-width="260"
  153. label="操作"
  154. fixed="right">
  155. <template slot-scope="scope">
  156. <span style="margin-left: 10px;">
  157. <el-button type="success" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  158. </span>
  159. <span v-if="scope.row.state == '1' && scope.row.isCheck == '1'" style="margin-left: 10px;">
  160. <el-button type="warning" size="mini" @click.stop="checkClick(scope.row)">审核</el-button>
  161. </span>
  162. <span v-if="scope.row.state == '2' && scope.row.isRect == '1'">
  163. <el-button type="primary" size="mini" @click.stop="feedbackClick(scope.row)">反馈</el-button>
  164. <el-button type="danger" size="mini" @click.stop="deleteRow(scope.row)">删除</el-button>
  165. </span>
  166. </template>
  167. </el-table-column>
  168. </el-table>
  169. <el-pagination
  170. style="margin: 10px auto"
  171. background
  172. :pager-count="5"
  173. :current-page="pageNum"
  174. :page-size="pageSize"
  175. :page-sizes="[10, 20, 30, 40, 50, 100]"
  176. layout="sizes, total, prev, pager, next"
  177. :total="total"
  178. @current-change="handleCurrentChange"
  179. @size-change="handleSizeChange"
  180. ></el-pagination>
  181. </div>
  182. </el-card>
  183. </el-main>
  184. <!-- 添加问题弹框 -->
  185. <el-dialog
  186. class="outerDialog custom_dialog"
  187. :title="titleText + '监督检查计划'"
  188. width="60%"
  189. :visible.sync="addPlanDialog">
  190. <addPlan v-if="addPlanDialog" @closeDialog="closeDialogaddPlan" :RowId="RowId" :titleText="titleText"></addPlan>
  191. </el-dialog>
  192. </el-container>
  193. </template>
  194. <script>
  195. import request from '@util/gw_ajax_request'
  196. import {dateFormat} from '@util/gw_date';
  197. import {hostUrl} from '@util/global_variable.js'
  198. import {exportModel} from "@util/gw_exportModel";
  199. import addPlan from './dialogCom/addPlan'
  200. export default {
  201. name: "rectificationNotice",
  202. props: [],
  203. data() {
  204. return {
  205. cardHeight: window.innerHeight - 120,
  206. tableData: [],
  207. tableHeight: window.innerHeight - 320,
  208. loading: false,
  209. pageSize: 20,
  210. pageNum: 1,
  211. formLabelWidth: '120px',
  212. planState: [
  213. {label: '待审核',value: '1'},
  214. {label: '待反馈',value: '2'},
  215. {label: '已下发',value: '3'}
  216. ],
  217. orgList: [],
  218. gwComFileList: [],
  219. year: '',
  220. searchForm: {
  221. "pageSize": 20,
  222. "pageNum": 1
  223. },
  224. total: null,
  225. yearList: [],
  226. titleText: '添加',
  227. header: {
  228. 'persId': localStorage.getItem('userid'),
  229. 'accessToken': localStorage.getItem('accessToken')
  230. },
  231. fileList: [],
  232. url: null,
  233. addPlanDialog: false,
  234. RowId: null,
  235. }
  236. },
  237. components: {
  238. addPlan,
  239. },
  240. computed: {
  241. persId() {
  242. return localStorage.getItem("userid")
  243. ? localStorage.getItem("userid")
  244. : "1098101939614724096";
  245. },
  246. orgId() {
  247. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  248. },
  249. },
  250. activated() {
  251. this.$nextTick(() => {
  252. this.getYear();
  253. this.getTableData();
  254. this.getOrgList();
  255. })
  256. },
  257. methods: {
  258. getYear(){
  259. request.get(`/tac/pblm/rect/getYear/${this.persId}`)
  260. .then(res =>{
  261. if(res.success){
  262. this.yearList = res.data;
  263. }
  264. })
  265. .catch(err =>{
  266. console.log(err);
  267. })
  268. },
  269. getTableData(){
  270. request.post('/bis/zhejiang/check/plan/pagePlan',this.searchForm).then(res=>{
  271. if(res.success){
  272. this.tableData = res.data.list
  273. this.total = res.data.total
  274. }else{
  275. this.$message.warning(res.message)
  276. }
  277. })
  278. },
  279. // 获取责任处室列表
  280. getOrgList(){
  281. request.post('/bis/zhejiang/check/depart/list',{}).then(res=>{
  282. if(res.success){
  283. this.orgList = res.data
  284. }else{
  285. this.$message.warning(res.message)
  286. }
  287. })
  288. },
  289. // 添加检查计划
  290. addCheckPlan(){
  291. this.titleText = "添加";
  292. this.addPlanDialog = true;
  293. },
  294. // 查看计划详情
  295. lookOver(row) {
  296. this.titleText = "查看";
  297. this.RowId = row.id;
  298. this.addPlanDialog = true;
  299. },
  300. // 审核
  301. checkClick(row){
  302. this.titleText = "审核";
  303. this.RowId = row.id;
  304. this.addPlanDialog = true;
  305. },
  306. // 反馈
  307. feedbackClick(row){
  308. this.titleText = "反馈";
  309. this.RowId = row.id;
  310. this.addPlanDialog = true;
  311. },
  312. // 删除计划
  313. deleteRow(row) {
  314. this.$confirm('确定要删除该数据, 是否继续?', '提示', {
  315. confirmButtonText: '确定',
  316. cancelButtonText: '取消',
  317. type: 'warning'
  318. }).then(() => {
  319. request.get(`/bis/zhejiang/check/plan/del/${row.id}`)
  320. .then(res => {
  321. if (res.success) {
  322. this.$message.success("删除成功");
  323. this.getTableData();
  324. } else {
  325. this.$message.warning(res.message);
  326. }
  327. })
  328. .catch(err => {
  329. console.log(err);
  330. })
  331. }).catch(() => {
  332. this.$message({
  333. type: 'info',
  334. message: '已取消删除'
  335. });
  336. });
  337. },
  338. // 关闭弹窗
  339. closeDialogaddPlan(val){
  340. this.addPlanDialog = false;
  341. if(val){
  342. this.getTableData();
  343. }
  344. },
  345. handleSizeChange(val) {
  346. this.searchForm.pageSize = val;
  347. this.getTableData();
  348. },
  349. handleCurrentChange(val) {
  350. this.searchForm.pageNum = val;
  351. this.getTableData();
  352. },
  353. // 格式化
  354. checkWayFormatter(val){
  355. switch (val.checkWay){
  356. case '1':
  357. return '明查';
  358. break;
  359. case '2':
  360. return '暗访';
  361. break;
  362. case '3':
  363. return '明查暗访相结合';
  364. break;
  365. default:
  366. return ''
  367. }
  368. },
  369. stateFormatter(val){
  370. switch (val.state){
  371. case '1':
  372. return '待审核';
  373. break;
  374. case '2':
  375. return '待反馈';
  376. break;
  377. case '3':
  378. return '已下发';
  379. break;
  380. default:
  381. return ''
  382. }
  383. },
  384. // 导出检查计划
  385. async exportCheckPlan(){
  386. let url = "/pdcApi/bis/zhejiang/check/plan/export";
  387. let type = "post";
  388. let exportName = "监督检查工作计划.xls"
  389. let result = await exportModel(type, url, exportName, JSON.stringify({}));
  390. }
  391. },
  392. watch: {
  393. }
  394. }
  395. </script>
  396. <style lang="scss">
  397. .check_plan_zj{
  398. .table_title{
  399. margin-bottom: 10px;
  400. overflow: hidden;
  401. h2{
  402. text-align: center;
  403. }
  404. div{
  405. float: right;
  406. }
  407. }
  408. .notice_title{
  409. .el-input--mini .el-input__inner,.el-select-dropdown__list{
  410. width: 8vw;
  411. }
  412. }
  413. .rowClassP{
  414. span {
  415. color: #3399ff;
  416. margin-left: 15px;
  417. cursor: pointer;
  418. }
  419. }
  420. }
  421. </style>