audit-question-list.vue 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165
  1. <template>
  2. <div>
  3. <a-card>
  4. <div :class="[$style.btns]">
  5. <audit-advanced-export
  6. ref="exportData"
  7. :class-style="[$style.buttonSpacing]"
  8. :v-if="true"
  9. :config-id="111"
  10. :expressions="exportExpressions"
  11. :exclebxh="false"
  12. ></audit-advanced-export>
  13. </div>
  14. <!-- 高级搜索组件 -->
  15. <audit-advanced-query
  16. :class="$style.advancedQuery"
  17. :expand="expand"
  18. :search-data="formData"
  19. :ref-name="searchform"
  20. :search-style="{ height: '210px', left: '20px', top: '60px' }"
  21. :search-fun="handleSearch"
  22. @searchedClick="searchedClick"
  23. @resetForm="resetForm"
  24. >
  25. <template>
  26. <a-row>
  27. <a-col :span="8">
  28. <a-form-model-item :label="'审计发现标题'" prop="findTitle">
  29. <a-input v-model="formData.findTitle" allow-clear />
  30. </a-form-model-item>
  31. </a-col>
  32. <a-col :span="8">
  33. <a-form-model-item :label="'项目名称'" prop="projectName">
  34. <a-input v-model="formData.projectName" allow-clear />
  35. </a-form-model-item>
  36. </a-col>
  37. <a-col :span="8">
  38. <a-form-model-item :label="'整改责任主体'" prop="auditedUnit">
  39. <sd-group-picker
  40. ref="unitSelect"
  41. v-model="formData.auditedUnit"
  42. :single="true"
  43. :read-only="false"
  44. @change="changeunit"
  45. />
  46. </a-form-model-item>
  47. </a-col>
  48. </a-row>
  49. <a-row>
  50. <a-col :span="8">
  51. <a-form-model-item :label="'整改状态'" prop="rectStatus">
  52. <sd-select
  53. v-model="formData.rectStatus"
  54. :allow-clear="true"
  55. :options="StatusOptions"
  56. />
  57. </a-form-model-item>
  58. </a-col>
  59. <a-col :span="8">
  60. <a-form-model-item :label="'是否属于审计意见书问题'" prop="giveOpinion">
  61. <sd-select
  62. v-model="formData.giveOpinion"
  63. :allow-clear="true"
  64. :options="giveOpinions"
  65. />
  66. </a-form-model-item>
  67. </a-col>
  68. <a-col :span="8">
  69. <a-form-model-item :label="'问题性质'" prop="problemNature">
  70. <sd-select
  71. v-model="formData.problemNature"
  72. :allow-clear="true"
  73. :options="problemNatureOpinions"
  74. />
  75. </a-form-model-item>
  76. </a-col>
  77. <!-- <a-col :span="8">
  78. <div :class="$style.buttonContent">
  79. <a-button :loading="exportLoading" type="primary" @click="exportQuestion"
  80. >导出审计整改台账</a-button
  81. >
  82. </div>
  83. </a-col> -->
  84. </a-row>
  85. <a-row>
  86. <a-col :span="8">
  87. <a-form-model-item :label="'整改类型'" prop="rectType">
  88. <sd-select
  89. v-model="formData.rectType"
  90. :allow-clear="true"
  91. :options="rectTypeOpinions"
  92. />
  93. </a-form-model-item>
  94. </a-col>
  95. <a-col :span="8">
  96. <a-form-model-item :label="'销\u2002号\u2002状\u2002态\u2002'" prop="cancellStatus">
  97. <sd-select
  98. v-model="formData.cancellStatus"
  99. :allow-clear="true"
  100. :options="cancellStatusOptions"
  101. />
  102. </a-form-model-item>
  103. </a-col>
  104. <a-col :span="8">
  105. <a-form-model-item label="项目年份" prop="planYear">
  106. <a-date-picker
  107. v-model="formData.planYear"
  108. mode="year"
  109. picker="YYYY"
  110. format="YYYY"
  111. :allow-clear="false"
  112. placeholder="选择年度"
  113. :input-read-only="true"
  114. :value="year"
  115. :open="endOpen"
  116. @panelChange="yearChange"
  117. @openChange="handleEndOpenChange"
  118. ></a-date-picker>
  119. </a-form-model-item>
  120. </a-col>
  121. </a-row>
  122. <!-- <a-row>
  123. <a-col :span="12" class="recitifyrectstatus">
  124. <a-form-model-item :label="'确认状态'" prop="confirmStatus">
  125. <sd-select
  126. v-model="formData.confirmStatus"
  127. :allow-clear="true"
  128. :options="confirmStatusOptions"
  129. />
  130. </a-form-model-item>
  131. </a-col>
  132. </a-row> -->
  133. </template>
  134. </audit-advanced-query>
  135. <sd-data-table-ex
  136. ref="WTQDDataTable"
  137. :projectlist="true"
  138. :filter-expressions="expressions"
  139. :columns="columns"
  140. :actions="actions"
  141. form-id="iamrectifyquestion"
  142. data-url="api/xcoa-mobile/v1/iamrectifyquestion/all-list"
  143. :search-fields="[
  144. 'findTitle',
  145. 'projectName',
  146. 'auditedUnitName',
  147. 'rectStatus',
  148. // 'confirmStatus',
  149. ]"
  150. show-selection
  151. :show-advance-query="true"
  152. :process-req="processReq"
  153. @searchbtnClick="searchbtnClick"
  154. >
  155. <div slot="isLink" slot-scope="text, record">
  156. <a @click="isViewBtn(record)">{{ text }}</a>
  157. </div>
  158. </sd-data-table-ex>
  159. </a-card>
  160. </div>
  161. </template>
  162. <script>
  163. import { message, Modal } from 'ant-design-vue'
  164. import moment from 'moment'
  165. import { getUserInfo } from '@/common/store-mixin'
  166. import axios from '@/common/services/axios-instance'
  167. import TableColumnTypes from '@/common/services/table-column-types'
  168. import crossWindowWatcher from '@/common/services/cross-window-watcher'
  169. import auditAdvancedQueryMixins from '../../components/audit-advanced-query-mixins'
  170. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  171. import auditAdvancedQuery from '../../components/audit-advanced-query.vue'
  172. import auditAdvancedExport from '../../components/audit-advanced-export'
  173. import components from './_import-components/audit-question-list-import'
  174. import download from '@/common/services/download'
  175. export default {
  176. name: 'AuditQuestionList',
  177. metaInfo: {
  178. title: '整改问题清单列表',
  179. },
  180. components: {
  181. ...components,
  182. auditAdvancedQuery,
  183. auditAdvancedExport,
  184. },
  185. mixins: [auditAdvancedQueryMixins, auditAdvancedGroupMixins],
  186. data() {
  187. return {
  188. endOpen: false,
  189. year: null,
  190. expand: false,
  191. searchform: 'searchform',
  192. expressions: [],
  193. exportExpressions: [],
  194. formData: {
  195. projectName: '',
  196. findTtile: '',
  197. auditedUnit: '',
  198. rectStatus: '',
  199. giveOpinion: '',
  200. rectType: '',
  201. cancellStatus: '',
  202. endType: '',
  203. problemNature: '',
  204. planYear: '',
  205. // confirmStatus: '',
  206. },
  207. columns: [
  208. {
  209. title: '序号',
  210. dataIndex: 'sortNumber',
  211. width: '80px',
  212. customRender: (text, record, index) => `${index + 1}`,
  213. },
  214. {
  215. title: 'id',
  216. dataIndex: 'id',
  217. sdHidden: true,
  218. },
  219. {
  220. title: 'questionId',
  221. dataIndex: 'questionId',
  222. sdHidden: true,
  223. },
  224. {
  225. title: '问题名称(定性描述)',
  226. dataIndex: 'findTitle',
  227. width: '300px',
  228. scopedSlots: { customRender: 'isLink' },
  229. },
  230. {
  231. title: '问题编号',
  232. dataIndex: 'findCode',
  233. defaultSortOrder: 'descend',
  234. sorter: true,
  235. sortDirections: ['ascend', 'descend'],
  236. width: '200px',
  237. },
  238. {
  239. title: '审计依据',
  240. dataIndex: 'iamBasis',
  241. width: '220px',
  242. sdCandidate: true,
  243. },
  244. {
  245. title: '项目名称',
  246. dataIndex: 'projectName',
  247. sorter: true,
  248. sortDirections: ['ascend', 'descend'],
  249. width: '380px',
  250. },
  251. {
  252. title: '整改要求',
  253. dataIndex: 'requirement',
  254. width: '220px',
  255. sdCandidate: true,
  256. },
  257. {
  258. title: '问题性质',
  259. dataIndex: 'problemNatureStr',
  260. width: '100px',
  261. },
  262. {
  263. title: '是否属于审计意见书问题',
  264. dataIndex: 'giveOpinion',
  265. width: '200px',
  266. },
  267. {
  268. title: '审计处理意见',
  269. dataIndex: 'handleSuggestion',
  270. width: '220px',
  271. sdCandidate: true,
  272. },
  273. {
  274. title: '整改责任主体',
  275. dataIndex: 'auditedUnitName',
  276. width: '220px',
  277. },
  278. {
  279. title: '计划完成日期',
  280. dataIndex: 'draftFinishDate',
  281. sdRender: TableColumnTypes.date,
  282. width: '170px',
  283. },
  284. {
  285. title: '整改状态',
  286. dataIndex: 'rectStatus',
  287. sorter: true,
  288. sortDirections: ['ascend', 'descend'],
  289. width: '100px',
  290. },
  291. {
  292. title: '是否超期未整改',
  293. dataIndex: 'isTrue',
  294. width: '150px',
  295. sdHidden: true,
  296. },
  297. {
  298. title: '整改完成日期',
  299. dataIndex: 'finishDate',
  300. sdRender: TableColumnTypes.date,
  301. width: '170px',
  302. },
  303. {
  304. title: '销号状态',
  305. dataIndex: 'cancellStatus',
  306. width: '150px',
  307. },
  308. // {
  309. // title: '确认状态',
  310. // dataIndex: 'confirmStatus',
  311. // width: '100px',
  312. // sdHidden: true,
  313. // },
  314. {
  315. title: '结束/发布标记(流程是否结束)',
  316. dataIndex: 'endType',
  317. width: '100px',
  318. sdHidden: true,
  319. },
  320. {
  321. title: '流程实例id',
  322. dataIndex: 'instId',
  323. width: '100px',
  324. sdHidden: true,
  325. },
  326. {
  327. dataIndex: 'auditedContactsAccount',
  328. sdHidden: true,
  329. },
  330. // {
  331. // title: '审计发现问题整改(金额类)(万元)',
  332. // children: [
  333. {
  334. title: '调整会计账目',
  335. dataIndex: 'adjustAccounts',
  336. width: '200px',
  337. sdCandidate: true,
  338. },
  339. {
  340. title: '收回资金:增加收入数额',
  341. dataIndex: 'recoveryFunds',
  342. width: '250px',
  343. sdCandidate: true,
  344. },
  345. {
  346. title: '收回资金:督促清理往来款项收回资金',
  347. dataIndex: 'avoidingWasteAmount',
  348. width: '350px',
  349. sdCandidate: true,
  350. },
  351. {
  352. title: '收回资金:其他',
  353. dataIndex: 'reduceInvestmentAmount',
  354. width: '220px',
  355. sdCandidate: true,
  356. },
  357. {
  358. title: '挽回损失:节约成本费用(开支)数额',
  359. dataIndex: 'costSavingAmount',
  360. width: '350px',
  361. sdCandidate: true,
  362. },
  363. {
  364. title: '挽回损失:工程审减金额',
  365. dataIndex: 'engineeringReduction',
  366. width: '220px',
  367. sdCandidate: true,
  368. },
  369. {
  370. title: '挽回损失:清退不当得利',
  371. dataIndex: 'improperClearanceAmount',
  372. width: '220px',
  373. sdCandidate: true,
  374. },
  375. {
  376. title: '挽回损失:其他',
  377. dataIndex: 'recoveryLossAmount',
  378. width: '220px',
  379. sdCandidate: true,
  380. },
  381. {
  382. title: '归还原资金渠道',
  383. dataIndex: 'repaymentChannels',
  384. width: '220px',
  385. sdCandidate: true,
  386. },
  387. {
  388. title: '补缴税费',
  389. dataIndex: 'paymentTaxesFees',
  390. width: '220px',
  391. sdCandidate: true,
  392. },
  393. {
  394. title: '其他',
  395. dataIndex: 'otherAmount',
  396. width: '220px',
  397. sdCandidate: true,
  398. },
  399. // ],
  400. // },
  401. // {
  402. // title: '审计发现问题整改(非金额类)(个)',
  403. // children: [
  404. {
  405. title: '新建制度、流程、标准(项)',
  406. dataIndex: 'newItems',
  407. width: '300px',
  408. sdCandidate: true,
  409. },
  410. {
  411. title: '修订制度、流程、标准(项)',
  412. dataIndex: 'reviseItems',
  413. width: '300px',
  414. sdCandidate: true,
  415. },
  416. // ],
  417. // },
  418. // {
  419. // title: '追责问责处理情况',
  420. // children: [
  421. {
  422. title: '移送纪检监察部门案件线索(件)',
  423. dataIndex: 'transferMonitorClue',
  424. width: '300px',
  425. sdCandidate: true,
  426. },
  427. {
  428. title: '追责问责人次',
  429. dataIndex: 'personNum',
  430. width: '220px',
  431. sdCandidate: true,
  432. },
  433. {
  434. title: '组织处理:批评教育',
  435. dataIndex: 'dealWayOne',
  436. width: '220px',
  437. sdCandidate: true,
  438. },
  439. {
  440. title: '组织处理:责令书面检查',
  441. dataIndex: 'dealWayTwo',
  442. width: '220px',
  443. sdCandidate: true,
  444. },
  445. {
  446. title: '组织处理:通报批评',
  447. dataIndex: 'dealWayThree',
  448. width: '220px',
  449. sdCandidate: true,
  450. },
  451. {
  452. title: '组织处理:诫勉',
  453. dataIndex: 'dealWayFour',
  454. width: '220px',
  455. sdCandidate: true,
  456. },
  457. {
  458. title: '组织处理:停职',
  459. dataIndex: 'dealWayFive',
  460. width: '220px',
  461. sdCandidate: true,
  462. },
  463. {
  464. title: '组织处理:调离工作岗位',
  465. dataIndex: 'dealWaySix',
  466. width: '220px',
  467. sdCandidate: true,
  468. },
  469. {
  470. title: '组织处理:降职',
  471. dataIndex: 'dealWaySeven',
  472. width: '220px',
  473. sdCandidate: true,
  474. },
  475. {
  476. title: '组织处理:改任非领导职务',
  477. dataIndex: 'dealWayEight',
  478. width: '220px',
  479. sdCandidate: true,
  480. },
  481. {
  482. title: '组织处理:责令辞职',
  483. dataIndex: 'dealWayNine',
  484. width: '220px',
  485. sdCandidate: true,
  486. },
  487. {
  488. title: '组织处理:免职',
  489. dataIndex: 'dealWayTen',
  490. width: '220px',
  491. sdCandidate: true,
  492. },
  493. {
  494. title: '扣减薪酬',
  495. dataIndex: 'dealWayEleven',
  496. width: '220px',
  497. sdCandidate: true,
  498. },
  499. {
  500. title: '禁入限制',
  501. dataIndex: 'dealWayTwelve',
  502. width: '220px',
  503. sdCandidate: true,
  504. },
  505. {
  506. title: '经济处罚金额(万元)',
  507. dataIndex: 'amountSum',
  508. width: '220px',
  509. sdCandidate: true,
  510. },
  511. // ],
  512. // },
  513. // {
  514. // title: '根据审计建议给予党纪、政务和内部纪律处分',
  515. // children: [
  516. {
  517. title: '合计',
  518. dataIndex: 'mentNum',
  519. width: '220px',
  520. sdCandidate: true,
  521. },
  522. {
  523. title: '党纪处分:警告',
  524. dataIndex: 'dealMannerOne',
  525. width: '220px',
  526. sdCandidate: true,
  527. },
  528. {
  529. title: '党纪处分:严重警告',
  530. dataIndex: 'dealMannerTwo',
  531. width: '220px',
  532. sdCandidate: true,
  533. },
  534. {
  535. title: '党纪处分:撤销党内职务',
  536. dataIndex: 'dealMannerThree',
  537. width: '220px',
  538. sdCandidate: true,
  539. },
  540. {
  541. title: '党纪处分:留党察看',
  542. dataIndex: 'dealMannerFour',
  543. width: '220px',
  544. sdCandidate: true,
  545. },
  546. {
  547. title: '党纪处分:开除党籍',
  548. dataIndex: 'dealMannerFive',
  549. width: '220px',
  550. sdCandidate: true,
  551. },
  552. {
  553. title: '政务处分:警告',
  554. dataIndex: 'dealMannerSix',
  555. width: '220px',
  556. sdCandidate: true,
  557. },
  558. {
  559. title: '政务处分:记过',
  560. dataIndex: 'dealMannerSeven',
  561. width: '220px',
  562. sdCandidate: true,
  563. },
  564. {
  565. title: '政务处分:记大过',
  566. dataIndex: 'dealMannerEight',
  567. width: '220px',
  568. sdCandidate: true,
  569. },
  570. {
  571. title: '政务处分:降级',
  572. dataIndex: 'dealMannerNine',
  573. width: '220px',
  574. sdCandidate: true,
  575. },
  576. {
  577. title: '政务处分:撤职',
  578. dataIndex: 'dealMannerTen',
  579. width: '220px',
  580. sdCandidate: true,
  581. },
  582. {
  583. title: '政务处分:开除',
  584. dataIndex: 'dealMannerEleven',
  585. width: '220px',
  586. sdCandidate: true,
  587. },
  588. {
  589. title: '内部纪律处分',
  590. dataIndex: 'dealMannerTwelve',
  591. width: '220px',
  592. sdCandidate: true,
  593. },
  594. // ],
  595. // },
  596. {
  597. title: '向司法机关移送或报告案件线索',
  598. dataIndex: 'accountability',
  599. width: '300px',
  600. sdCandidate: true,
  601. },
  602. {
  603. title: '其中:涉案人员',
  604. dataIndex: 'otherItems',
  605. width: '300px',
  606. sdCandidate: true,
  607. },
  608. {
  609. title: '操作',
  610. dataIndex: 'opt',
  611. aligen: 'center',
  612. customRender: (text, record, index) => {
  613. // if (record.rectStatus !== '已整改' && record.rectStatus !== '风险接受') {
  614. // // if (record.endType === '5' && record.problemNature === 'wt') {
  615. // return (
  616. // <span>
  617. // <a vOn:click={(evt) => this.delayApply(record)}>延期申请</a>
  618. // </span>
  619. // )
  620. // }
  621. if (
  622. record.endType === '5' &&
  623. record.problemNature === 'wt' &&
  624. record.auditedContactsAccount === getUserInfo().account
  625. ) {
  626. return (
  627. <span>
  628. <a vOn:click={(evt) => this.questionReboot(record)}>问题重启</a>
  629. </span>
  630. )
  631. }
  632. },
  633. width: '100px',
  634. },
  635. ],
  636. actions: [
  637. {
  638. label: '导出',
  639. permission: null, // 纯前端操作,不需要权限控制
  640. callback: () => {
  641. this.$refs.exportData.exportdata()
  642. },
  643. },
  644. {
  645. label: '批量导出附件',
  646. id: 'exportdataFiles',
  647. permission: null, // 纯前端操作,不需要权限控制
  648. callback: this.exportdataFiles,
  649. },
  650. // {
  651. // label: '导出审计整改台账',
  652. // sdHidden: true,
  653. // id: 'exportQuestion',
  654. // permission: null, // 纯前端操作,不需要权限控制
  655. // callback: this.exportQuestion,
  656. // },
  657. // {
  658. // label: '导出审计情况统计',
  659. // permission: null, // 纯前端操作,不需要权限控制
  660. // callback: this.exportSituationStatistics,
  661. // },
  662. // {
  663. // label: '导出项目整改完成情况',
  664. // permission: null, // 纯前端操作,不需要权限控制
  665. // callback: this.exportResultStatistics,
  666. // },
  667. // {
  668. // label: '导出审计机构基本情况',
  669. // permission: null, // 纯前端操作,不需要权限控制
  670. // callback: this.exportOne,
  671. // },
  672. // {
  673. // label: '导出业务审计情况',
  674. // permission: null, // 纯前端操作,不需要权限控制
  675. // callback: this.exportTwo,
  676. // },
  677. // {
  678. // label: '导出国资委报表',
  679. // permission: null, // 纯前端操作,不需要权限控制
  680. // callback: this.exportThree,
  681. // },
  682. ],
  683. // typeId: null;
  684. advSearchForm: {
  685. projectName: '',
  686. findTtile: '',
  687. auditedUnit: '',
  688. rectStatus: [],
  689. giveOpinion: [],
  690. problemNature: [],
  691. rectType: [],
  692. cancellStatus: [],
  693. planYear: '',
  694. // confirmStatus: [],
  695. },
  696. unitName: '',
  697. StatusOptions: [],
  698. giveOpinions: [],
  699. problemNatureOpinions: [],
  700. rectTypeOpinions: [],
  701. cancellStatusOptions: [],
  702. confirmStatusOptions: [],
  703. }
  704. },
  705. mounted() {
  706. // 初始化数据字典信息
  707. this.initDictionaryInfo()
  708. },
  709. methods: {
  710. yearChange(value) {
  711. this.year = value
  712. this.formData.planYear = value.format('YYYY')
  713. if (document.getElementsByClassName('ant-calendar-picker-container').length > 0) {
  714. document.getElementsByClassName('ant-calendar-picker-container')[0].style.display = 'none'
  715. }
  716. },
  717. handleEndOpenChange(open) {
  718. this.endOpen = open
  719. },
  720. initDictionaryInfo() {
  721. axios({
  722. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=RECT_STATUS',
  723. method: 'get',
  724. }).then((res) => {
  725. this.StatusOptions = res.data.map((val) => {
  726. return {
  727. id: val.id,
  728. name: val.name,
  729. }
  730. })
  731. })
  732. // 是否属于审计意见书问题
  733. axios({
  734. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  735. method: 'get',
  736. }).then((res) => {
  737. this.giveOpinions = res.data.map((val) => {
  738. return {
  739. id: val.id,
  740. name: val.name,
  741. }
  742. })
  743. })
  744. // 问题性质
  745. axios({
  746. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=IAM_PROBLEM_NATURE',
  747. method: 'get',
  748. }).then((res) => {
  749. this.problemNatureOpinions = res.data.map((val) => {
  750. return {
  751. id: val.id,
  752. name: val.name,
  753. }
  754. })
  755. })
  756. // 整改类型
  757. axios({
  758. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=RECT_TYPE',
  759. method: 'get',
  760. }).then((res) => {
  761. this.rectTypeOpinions = res.data.map((val) => {
  762. return {
  763. id: val.id,
  764. name: val.name,
  765. }
  766. })
  767. })
  768. axios({
  769. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=CANCELL_STATUS',
  770. method: 'get',
  771. }).then((res) => {
  772. if (res.status === 200) {
  773. this.cancellStatusOptions = res.data
  774. }
  775. })
  776. // axios({
  777. // url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=CONFIRMS_STATUS',
  778. // method: 'get',
  779. // }).then((res) => {
  780. // this.confirmStatusOptions = res.data.map((val) => {
  781. // return {
  782. // id: val.id,
  783. // name: val.name,
  784. // }
  785. // })
  786. // })
  787. },
  788. changeunit(values) {
  789. this.unitName = ''
  790. values.forEach((element) => {
  791. this.unitName = element.name
  792. })
  793. },
  794. // 查看
  795. isViewBtn(record) {
  796. // const url = '/audit-question-form?record=' + record.questionId // 新页面要打开的路由地址
  797. // crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  798. // if (refreshFlag) {
  799. // this.refresh()
  800. // }
  801. // })
  802. window.open('#/sd-webflow/done-pages/' + record.instId)
  803. },
  804. // 延期申请(旧 无流程)
  805. // delayApply(record) {
  806. // const url = '/audit-delay-form?record=' + record.questionId // 新页面要打开的路由地址
  807. // crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  808. // if (refreshFlag) {
  809. // this.refresh()
  810. // }
  811. // })
  812. // },
  813. delayApply(record) {
  814. axios({
  815. url:
  816. `api/xcoa-mobile/v1/spicRectifyQuestionDelay/enable-status?rectFeedbackId=` +
  817. record.questionId,
  818. method: 'get',
  819. }).then((res) => {
  820. if (res.data) {
  821. Modal.info({
  822. content: '延期申请未结束',
  823. })
  824. } else {
  825. const url = `/sd-flow-guide?code=SPIC_RECT_DELAY&rectFeedbackId=${record.questionId}`
  826. crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  827. if (refreshFlag) {
  828. this.refresh()
  829. }
  830. })
  831. }
  832. })
  833. },
  834. // 问题重启
  835. questionReboot(record) {
  836. axios({
  837. url: 'api/xcoa-mobile/v1/spic-common/restart-feedback?id=' + record.questionId,
  838. method: 'get',
  839. }).then((res) => {
  840. if (res.data) {
  841. Modal.info({
  842. title: '提示',
  843. content: '重启成功!',
  844. })
  845. this.refresh()
  846. } else {
  847. Modal.warning({
  848. title: '提示',
  849. content: '重启失败,请联系管理员!',
  850. })
  851. }
  852. })
  853. },
  854. refresh() {
  855. return this.$refs.WTQDDataTable.refresh(true)
  856. },
  857. // 查询
  858. handleSearch() {
  859. this.expressions = []
  860. // 审计发现标题
  861. if (this.formData.findTitle) {
  862. this.expressions.push({
  863. dataType: 'str',
  864. name: 'findTitle',
  865. op: 'like',
  866. stringValue: `%${this.formData.findTitle}%`,
  867. })
  868. }
  869. // 整改责任主体
  870. if (this.formData.auditedUnit) {
  871. this.expressions.push({
  872. dataType: 'str',
  873. name: 'auditedUnitName',
  874. op: 'like',
  875. stringValue: `%${this.unitName}%`,
  876. })
  877. }
  878. // 项目名称
  879. if (this.formData.projectName) {
  880. this.expressions.push({
  881. dataType: 'str',
  882. name: 'projectName',
  883. op: 'like',
  884. stringValue: `%${this.formData.projectName}%`,
  885. })
  886. }
  887. // 整改状态
  888. if (this.formData.rectStatus.length > 0) {
  889. this.expressions.push({
  890. dataType: 'str',
  891. name: 'rectStatus',
  892. op: 'like',
  893. stringValue: `%${this.formData.rectStatus[0].id}%`,
  894. })
  895. }
  896. // 是否属于审计意见书问题
  897. if (this.formData.giveOpinion.length > 0) {
  898. this.expressions.push({
  899. dataType: 'str',
  900. name: 'giveOpinion',
  901. op: 'like',
  902. stringValue: `%${this.formData.giveOpinion[0].id}%`,
  903. })
  904. }
  905. // 问题性质
  906. if (this.formData.problemNature.length > 0) {
  907. this.expressions.push({
  908. dataType: 'str',
  909. name: 'problemNature',
  910. op: 'like',
  911. stringValue: `%${this.formData.problemNature[0].id}%`,
  912. })
  913. }
  914. // 整改类型
  915. if (this.formData.rectType.length > 0) {
  916. this.expressions.push({
  917. dataType: 'str',
  918. name: 'rectType',
  919. op: 'like',
  920. stringValue: `%${this.formData.rectType[0].id}%`,
  921. })
  922. }
  923. // 销号状态
  924. if (this.formData.cancellStatus.length > 0) {
  925. this.expressions.push({
  926. dataType: 'str',
  927. name: 'cancellStatus',
  928. op: 'like',
  929. stringValue: `%${this.formData.cancellStatus[0].id}%`,
  930. })
  931. }
  932. // 项目年份
  933. if (this.formData.planYear.length > 0) {
  934. this.expressions.push({
  935. dataType: 'str',
  936. name: 'planYear',
  937. op: 'eq',
  938. stringValue: `${this.formData.planYear}`,
  939. })
  940. }
  941. // 确认状态
  942. // if (this.formData.confirmStatus.length > 0) {
  943. // this.expressions.push({
  944. // dataType: 'str',
  945. // name: 'confirmStatus',
  946. // op: 'like',
  947. // stringValue: `%${this.formData.confirmStatus[0].id}%`,
  948. // })
  949. // }
  950. // this.expand = false
  951. },
  952. searchedClick() {
  953. this.expand = !this.expand
  954. },
  955. // 重置年份
  956. resetForm() {
  957. // this.formData.confirmStatus = []
  958. this.formData.rectStatus = []
  959. this.formData.giveOpinion = []
  960. this.formData.problemNature = []
  961. this.formData.rectType = []
  962. this.formData.cancellStatus = []
  963. this.advSearchForm.auditedUnit = ''
  964. this.unitName = ''
  965. },
  966. // 导出问题附件
  967. exportdataFiles() {
  968. const selectedRowKeys = this.$refs.WTQDDataTable.getSelectedRowKeys()
  969. if (selectedRowKeys.length === 0) {
  970. Modal.warning({
  971. title: '提示',
  972. content: '请选择要一键导出附件的问题(最多可选择10条)',
  973. })
  974. } else {
  975. const timestamp = new Date().getTime()
  976. console.log(timestamp)
  977. axios({
  978. method: 'get',
  979. url: 'api/xcoa-mobile/v1/spic-common/exportFindFiles/' + selectedRowKeys,
  980. responseType: 'blob',
  981. }).then((res) => {
  982. if (res.data) {
  983. let blob = null
  984. let fileName = res.headers['content-disposition']?.split('fileName=')[1]
  985. if (fileName === null || fileName === undefined) {
  986. fileName = '.zip'
  987. }
  988. blob = new Blob([res.data], { type: 'application/zip' })
  989. const time = moment(moment()).format('yyyyMMDD')
  990. fileName = '审计问题证明性材料-' + time + '.zip'
  991. if ('msSaveOrOpenBlob' in navigator) {
  992. // 适配ie
  993. window.navigator.msSaveOrOpenBlob(blob, fileName)
  994. } else {
  995. // 其他浏览器
  996. const blobUrl = window.URL.createObjectURL(blob)
  997. const a = document.createElement('a')
  998. a.style.display = 'none'
  999. a.href = blobUrl
  1000. a.setAttribute('download', fileName)
  1001. a.click()
  1002. }
  1003. message.success('导出成功')
  1004. } else {
  1005. message.error('导出失败,请联系系统管理员')
  1006. }
  1007. })
  1008. }
  1009. },
  1010. // 导出审计整改台账
  1011. exportQuestion() {
  1012. axios({
  1013. method: 'post',
  1014. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportRectLedger',
  1015. responseType: 'blob',
  1016. data: {
  1017. unitIds: '',
  1018. dateStart: '',
  1019. dateEnd: '',
  1020. },
  1021. }).then((res) => {
  1022. const url = URL.createObjectURL(res.data)
  1023. download(url, '审计整改台账表.xlsx')
  1024. })
  1025. },
  1026. // 导出审计情况统计
  1027. exportSituationStatistics() {
  1028. axios({
  1029. method: 'post',
  1030. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportSituationStatistics',
  1031. responseType: 'blob',
  1032. data: {
  1033. unitIds: '',
  1034. dateStart: '',
  1035. dateEnd: '',
  1036. },
  1037. }).then((res) => {
  1038. const url = URL.createObjectURL(res.data)
  1039. download(url, '审计情况统计报表.xls')
  1040. })
  1041. },
  1042. // 导出审计项目整改完成情况及成果统计月度
  1043. exportResultStatistics() {
  1044. axios({
  1045. method: 'post',
  1046. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportResultStatistics',
  1047. responseType: 'blob',
  1048. data: {
  1049. unitIds: '',
  1050. dateStart: '',
  1051. dateEnd: '',
  1052. },
  1053. }).then((res) => {
  1054. const url = URL.createObjectURL(res.data)
  1055. download(url, '审计项目整改完成情况及成果统计月度表.xls')
  1056. })
  1057. },
  1058. // 导出单位及内部审计机构基本情况
  1059. exportOne() {
  1060. axios({
  1061. method: 'post',
  1062. url: 'api/xcoa-mobile/v1/iam-audits-statistics/exportIamOrgExcel',
  1063. responseType: 'blob',
  1064. data: {
  1065. unitIds: '',
  1066. dateStart: '',
  1067. dateEnd: '',
  1068. },
  1069. }).then((res) => {
  1070. const url = URL.createObjectURL(res.data)
  1071. download(url, '单位及内部审计机构基本情况表.xls')
  1072. })
  1073. },
  1074. // // 导出单位内部业务审计情况
  1075. exportTwo() {
  1076. axios({
  1077. method: 'post',
  1078. url: 'api/xcoa-mobile/v1/iam-audits-statistics/exportIamDwywExcel',
  1079. responseType: 'blob',
  1080. data: {
  1081. unitIds: '',
  1082. dateStart: '',
  1083. dateEnd: '',
  1084. },
  1085. }).then((res) => {
  1086. const url = URL.createObjectURL(res.data)
  1087. download(url, '单位内部业务审计情况表.xls')
  1088. })
  1089. },
  1090. // 导出单位内部审计工作情况
  1091. exportThree() {
  1092. axios({
  1093. method: 'post',
  1094. url: 'api/xcoa-mobile/v1/iam-auditWork-statistics/exportGZWExcel',
  1095. responseType: 'blob',
  1096. data: {
  1097. unitIds: '',
  1098. dateStart: '',
  1099. dateEnd: '',
  1100. },
  1101. }).then((res) => {
  1102. const url = URL.createObjectURL(res.data)
  1103. download(url, '国资委报表.xls')
  1104. })
  1105. },
  1106. processReq(req) {
  1107. const url = req.url
  1108. if (url === 'api/xcoa-mobile/v1/iamrectifyquestion/all-list') {
  1109. this.exportExpressions = req.data.expressions
  1110. }
  1111. return req
  1112. },
  1113. },
  1114. }
  1115. </script>
  1116. <style module lang="scss">
  1117. @use '@/common/design' as *;
  1118. .btns {
  1119. position: absolute;
  1120. top: 24px;
  1121. right: 20.5px;
  1122. z-index: 100;
  1123. display: none;
  1124. }
  1125. .buttonSpacing {
  1126. margin-left: 5px;
  1127. }
  1128. .advancedQuery {
  1129. :global(.ant-col .ant-form-item-label) {
  1130. width: 35% !important;
  1131. }
  1132. :global(.ant-col .ant-form-item-control-wrapper) {
  1133. width: 60% !important;
  1134. }
  1135. }
  1136. :global(.recitifyrectstatus) {
  1137. :global(.ant-form-item-label) {
  1138. margin-left: 2em;
  1139. }
  1140. }
  1141. </style>