audit-question-list.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179
  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. record.resppersonsAccount === getUserInfo().account ||
  626. this.isQuestionRestarterAcmin)
  627. ) {
  628. return (
  629. <span>
  630. <a vOn:click={(evt) => this.questionReboot(record)}>问题重启</a>
  631. </span>
  632. )
  633. }
  634. },
  635. width: '100px',
  636. },
  637. ],
  638. actions: [
  639. {
  640. label: '导出',
  641. permission: null, // 纯前端操作,不需要权限控制
  642. callback: () => {
  643. this.$refs.exportData.exportdata()
  644. },
  645. },
  646. {
  647. label: '批量导出附件',
  648. id: 'exportdataFiles',
  649. permission: null, // 纯前端操作,不需要权限控制
  650. callback: this.exportdataFiles,
  651. },
  652. // {
  653. // label: '导出审计整改台账',
  654. // sdHidden: true,
  655. // id: 'exportQuestion',
  656. // permission: null, // 纯前端操作,不需要权限控制
  657. // callback: this.exportQuestion,
  658. // },
  659. // {
  660. // label: '导出审计情况统计',
  661. // permission: null, // 纯前端操作,不需要权限控制
  662. // callback: this.exportSituationStatistics,
  663. // },
  664. // {
  665. // label: '导出项目整改完成情况',
  666. // permission: null, // 纯前端操作,不需要权限控制
  667. // callback: this.exportResultStatistics,
  668. // },
  669. // {
  670. // label: '导出审计机构基本情况',
  671. // permission: null, // 纯前端操作,不需要权限控制
  672. // callback: this.exportOne,
  673. // },
  674. // {
  675. // label: '导出业务审计情况',
  676. // permission: null, // 纯前端操作,不需要权限控制
  677. // callback: this.exportTwo,
  678. // },
  679. // {
  680. // label: '导出国资委报表',
  681. // permission: null, // 纯前端操作,不需要权限控制
  682. // callback: this.exportThree,
  683. // },
  684. ],
  685. // typeId: null;
  686. advSearchForm: {
  687. projectName: '',
  688. findTtile: '',
  689. auditedUnit: '',
  690. rectStatus: [],
  691. giveOpinion: [],
  692. problemNature: [],
  693. rectType: [],
  694. cancellStatus: [],
  695. planYear: '',
  696. // confirmStatus: [],
  697. },
  698. unitName: '',
  699. StatusOptions: [],
  700. giveOpinions: [],
  701. problemNatureOpinions: [],
  702. rectTypeOpinions: [],
  703. cancellStatusOptions: [],
  704. confirmStatusOptions: [],
  705. isQuestionRestarterAcmin: false,
  706. }
  707. },
  708. mounted() {
  709. // 初始化数据字典信息
  710. this.initDictionaryInfo()
  711. const adminRole = getUserInfo().roles.find((item) => {
  712. return item.code === 'G-1_Question_restart'
  713. })
  714. console.log(adminRole)
  715. this.isQuestionRestarterAcmin = adminRole
  716. },
  717. methods: {
  718. yearChange(value) {
  719. this.year = value
  720. this.formData.planYear = value.format('YYYY')
  721. if (document.getElementsByClassName('ant-calendar-picker-container').length > 0) {
  722. document.getElementsByClassName('ant-calendar-picker-container')[0].style.display = 'none'
  723. }
  724. },
  725. handleEndOpenChange(open) {
  726. this.endOpen = open
  727. },
  728. initDictionaryInfo() {
  729. axios({
  730. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=RECT_STATUS',
  731. method: 'get',
  732. }).then((res) => {
  733. this.StatusOptions = res.data.map((val) => {
  734. return {
  735. id: val.id,
  736. name: val.name,
  737. }
  738. })
  739. })
  740. // 是否属于审计意见书问题
  741. axios({
  742. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  743. method: 'get',
  744. }).then((res) => {
  745. this.giveOpinions = res.data.map((val) => {
  746. return {
  747. id: val.id,
  748. name: val.name,
  749. }
  750. })
  751. })
  752. // 问题性质
  753. axios({
  754. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=IAM_PROBLEM_NATURE',
  755. method: 'get',
  756. }).then((res) => {
  757. this.problemNatureOpinions = res.data.map((val) => {
  758. return {
  759. id: val.id,
  760. name: val.name,
  761. }
  762. })
  763. })
  764. // 整改类型
  765. axios({
  766. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=RECT_TYPE',
  767. method: 'get',
  768. }).then((res) => {
  769. this.rectTypeOpinions = res.data.map((val) => {
  770. return {
  771. id: val.id,
  772. name: val.name,
  773. }
  774. })
  775. })
  776. axios({
  777. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=CANCELL_STATUS',
  778. method: 'get',
  779. }).then((res) => {
  780. if (res.status === 200) {
  781. this.cancellStatusOptions = res.data
  782. }
  783. })
  784. // axios({
  785. // url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=CONFIRMS_STATUS',
  786. // method: 'get',
  787. // }).then((res) => {
  788. // this.confirmStatusOptions = res.data.map((val) => {
  789. // return {
  790. // id: val.id,
  791. // name: val.name,
  792. // }
  793. // })
  794. // })
  795. },
  796. changeunit(values) {
  797. this.unitName = ''
  798. values.forEach((element) => {
  799. this.unitName = element.name
  800. })
  801. },
  802. // 查看
  803. isViewBtn(record) {
  804. // const url = '/audit-question-form?record=' + record.questionId // 新页面要打开的路由地址
  805. // crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  806. // if (refreshFlag) {
  807. // this.refresh()
  808. // }
  809. // })
  810. window.open('#/sd-webflow/done-pages/' + record.instId)
  811. },
  812. // 延期申请(旧 无流程)
  813. // delayApply(record) {
  814. // const url = '/audit-delay-form?record=' + record.questionId // 新页面要打开的路由地址
  815. // crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  816. // if (refreshFlag) {
  817. // this.refresh()
  818. // }
  819. // })
  820. // },
  821. delayApply(record) {
  822. axios({
  823. url:
  824. `api/xcoa-mobile/v1/spicRectifyQuestionDelay/enable-status?rectFeedbackId=` +
  825. record.questionId,
  826. method: 'get',
  827. }).then((res) => {
  828. if (res.data) {
  829. Modal.info({
  830. content: '延期申请未结束',
  831. })
  832. } else {
  833. const url = `/sd-flow-guide?code=SPIC_RECT_DELAY&rectFeedbackId=${record.questionId}`
  834. crossWindowWatcher.waitForChanged(url).then((refreshFlag) => {
  835. if (refreshFlag) {
  836. this.refresh()
  837. }
  838. })
  839. }
  840. })
  841. },
  842. // 问题重启
  843. questionReboot(record) {
  844. Modal.confirm({
  845. title: '确认重启问题吗?',
  846. onOk: () => {
  847. axios({
  848. url: 'api/xcoa-mobile/v1/spic-common/restart-feedback?id=' + record.questionId,
  849. method: 'get',
  850. }).then((res) => {
  851. if (res.data) {
  852. Modal.info({
  853. title: '提示',
  854. content: '重启成功!',
  855. })
  856. this.refresh()
  857. } else {
  858. Modal.warning({
  859. title: '提示',
  860. content: '重启失败,请联系管理员!',
  861. })
  862. }
  863. })
  864. },
  865. })
  866. },
  867. refresh() {
  868. return this.$refs.WTQDDataTable.refresh(true)
  869. },
  870. // 查询
  871. handleSearch() {
  872. this.expressions = []
  873. // 审计发现标题
  874. if (this.formData.findTitle) {
  875. this.expressions.push({
  876. dataType: 'str',
  877. name: 'findTitle',
  878. op: 'like',
  879. stringValue: `%${this.formData.findTitle}%`,
  880. })
  881. }
  882. // 整改责任主体
  883. if (this.formData.auditedUnit) {
  884. this.expressions.push({
  885. dataType: 'str',
  886. name: 'auditedUnitName',
  887. op: 'like',
  888. stringValue: `%${this.unitName}%`,
  889. })
  890. }
  891. // 项目名称
  892. if (this.formData.projectName) {
  893. this.expressions.push({
  894. dataType: 'str',
  895. name: 'projectName',
  896. op: 'like',
  897. stringValue: `%${this.formData.projectName}%`,
  898. })
  899. }
  900. // 整改状态
  901. if (this.formData.rectStatus.length > 0) {
  902. this.expressions.push({
  903. dataType: 'str',
  904. name: 'rectStatus',
  905. op: 'like',
  906. stringValue: `%${this.formData.rectStatus[0].id}%`,
  907. })
  908. }
  909. // 是否属于审计意见书问题
  910. if (this.formData.giveOpinion.length > 0) {
  911. this.expressions.push({
  912. dataType: 'str',
  913. name: 'giveOpinion',
  914. op: 'like',
  915. stringValue: `%${this.formData.giveOpinion[0].id}%`,
  916. })
  917. }
  918. // 问题性质
  919. if (this.formData.problemNature.length > 0) {
  920. this.expressions.push({
  921. dataType: 'str',
  922. name: 'problemNature',
  923. op: 'like',
  924. stringValue: `%${this.formData.problemNature[0].id}%`,
  925. })
  926. }
  927. // 整改类型
  928. if (this.formData.rectType.length > 0) {
  929. this.expressions.push({
  930. dataType: 'str',
  931. name: 'rectType',
  932. op: 'like',
  933. stringValue: `%${this.formData.rectType[0].id}%`,
  934. })
  935. }
  936. // 销号状态
  937. if (this.formData.cancellStatus.length > 0) {
  938. this.expressions.push({
  939. dataType: 'str',
  940. name: 'cancellStatus',
  941. op: 'like',
  942. stringValue: `%${this.formData.cancellStatus[0].id}%`,
  943. })
  944. }
  945. // 项目年份
  946. if (this.formData.planYear.length > 0) {
  947. this.expressions.push({
  948. dataType: 'str',
  949. name: 'planYear',
  950. op: 'eq',
  951. stringValue: `${this.formData.planYear}`,
  952. })
  953. }
  954. // 确认状态
  955. // if (this.formData.confirmStatus.length > 0) {
  956. // this.expressions.push({
  957. // dataType: 'str',
  958. // name: 'confirmStatus',
  959. // op: 'like',
  960. // stringValue: `%${this.formData.confirmStatus[0].id}%`,
  961. // })
  962. // }
  963. // this.expand = false
  964. },
  965. searchedClick() {
  966. this.expand = !this.expand
  967. },
  968. // 重置年份
  969. resetForm() {
  970. // this.formData.confirmStatus = []
  971. this.formData.rectStatus = []
  972. this.formData.giveOpinion = []
  973. this.formData.problemNature = []
  974. this.formData.rectType = []
  975. this.formData.cancellStatus = []
  976. this.advSearchForm.auditedUnit = ''
  977. this.unitName = ''
  978. },
  979. // 导出问题附件
  980. exportdataFiles() {
  981. const selectedRowKeys = this.$refs.WTQDDataTable.getSelectedRowKeys()
  982. if (selectedRowKeys.length === 0) {
  983. Modal.warning({
  984. title: '提示',
  985. content: '请选择要一键导出附件的问题(最多可选择10条)',
  986. })
  987. } else {
  988. const timestamp = new Date().getTime()
  989. console.log(timestamp)
  990. axios({
  991. method: 'get',
  992. url: 'api/xcoa-mobile/v1/spic-common/exportFindFiles/' + selectedRowKeys,
  993. responseType: 'blob',
  994. }).then((res) => {
  995. if (res.data) {
  996. let blob = null
  997. let fileName = res.headers['content-disposition']?.split('fileName=')[1]
  998. if (fileName === null || fileName === undefined) {
  999. fileName = '.zip'
  1000. }
  1001. blob = new Blob([res.data], { type: 'application/zip' })
  1002. const time = moment(moment()).format('yyyyMMDD')
  1003. fileName = '审计问题证明性材料-' + time + '.zip'
  1004. if ('msSaveOrOpenBlob' in navigator) {
  1005. // 适配ie
  1006. window.navigator.msSaveOrOpenBlob(blob, fileName)
  1007. } else {
  1008. // 其他浏览器
  1009. const blobUrl = window.URL.createObjectURL(blob)
  1010. const a = document.createElement('a')
  1011. a.style.display = 'none'
  1012. a.href = blobUrl
  1013. a.setAttribute('download', fileName)
  1014. a.click()
  1015. }
  1016. message.success('导出成功')
  1017. } else {
  1018. message.error('导出失败,请联系系统管理员')
  1019. }
  1020. })
  1021. }
  1022. },
  1023. // 导出审计整改台账
  1024. exportQuestion() {
  1025. axios({
  1026. method: 'post',
  1027. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportRectLedger',
  1028. responseType: 'blob',
  1029. data: {
  1030. unitIds: '',
  1031. dateStart: '',
  1032. dateEnd: '',
  1033. },
  1034. }).then((res) => {
  1035. const url = URL.createObjectURL(res.data)
  1036. download(url, '审计整改台账表.xlsx')
  1037. })
  1038. },
  1039. // 导出审计情况统计
  1040. exportSituationStatistics() {
  1041. axios({
  1042. method: 'post',
  1043. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportSituationStatistics',
  1044. responseType: 'blob',
  1045. data: {
  1046. unitIds: '',
  1047. dateStart: '',
  1048. dateEnd: '',
  1049. },
  1050. }).then((res) => {
  1051. const url = URL.createObjectURL(res.data)
  1052. download(url, '审计情况统计报表.xls')
  1053. })
  1054. },
  1055. // 导出审计项目整改完成情况及成果统计月度
  1056. exportResultStatistics() {
  1057. axios({
  1058. method: 'post',
  1059. url: 'api/xcoa-mobile/v1/spicProblemListExport/exportResultStatistics',
  1060. responseType: 'blob',
  1061. data: {
  1062. unitIds: '',
  1063. dateStart: '',
  1064. dateEnd: '',
  1065. },
  1066. }).then((res) => {
  1067. const url = URL.createObjectURL(res.data)
  1068. download(url, '审计项目整改完成情况及成果统计月度表.xls')
  1069. })
  1070. },
  1071. // 导出单位及内部审计机构基本情况
  1072. exportOne() {
  1073. axios({
  1074. method: 'post',
  1075. url: 'api/xcoa-mobile/v1/iam-audits-statistics/exportIamOrgExcel',
  1076. responseType: 'blob',
  1077. data: {
  1078. unitIds: '',
  1079. dateStart: '',
  1080. dateEnd: '',
  1081. },
  1082. }).then((res) => {
  1083. const url = URL.createObjectURL(res.data)
  1084. download(url, '单位及内部审计机构基本情况表.xls')
  1085. })
  1086. },
  1087. // // 导出单位内部业务审计情况
  1088. exportTwo() {
  1089. axios({
  1090. method: 'post',
  1091. url: 'api/xcoa-mobile/v1/iam-audits-statistics/exportIamDwywExcel',
  1092. responseType: 'blob',
  1093. data: {
  1094. unitIds: '',
  1095. dateStart: '',
  1096. dateEnd: '',
  1097. },
  1098. }).then((res) => {
  1099. const url = URL.createObjectURL(res.data)
  1100. download(url, '单位内部业务审计情况表.xls')
  1101. })
  1102. },
  1103. // 导出单位内部审计工作情况
  1104. exportThree() {
  1105. axios({
  1106. method: 'post',
  1107. url: 'api/xcoa-mobile/v1/iam-auditWork-statistics/exportGZWExcel',
  1108. responseType: 'blob',
  1109. data: {
  1110. unitIds: '',
  1111. dateStart: '',
  1112. dateEnd: '',
  1113. },
  1114. }).then((res) => {
  1115. const url = URL.createObjectURL(res.data)
  1116. download(url, '国资委报表.xls')
  1117. })
  1118. },
  1119. processReq(req) {
  1120. const url = req.url
  1121. if (url === 'api/xcoa-mobile/v1/iamrectifyquestion/all-list') {
  1122. this.exportExpressions = req.data.expressions
  1123. }
  1124. return req
  1125. },
  1126. },
  1127. }
  1128. </script>
  1129. <style module lang="scss">
  1130. @use '@/common/design' as *;
  1131. .btns {
  1132. position: absolute;
  1133. top: 24px;
  1134. right: 20.5px;
  1135. z-index: 100;
  1136. display: none;
  1137. }
  1138. .buttonSpacing {
  1139. margin-left: 5px;
  1140. }
  1141. .advancedQuery {
  1142. :global(.ant-col .ant-form-item-label) {
  1143. width: 35% !important;
  1144. }
  1145. :global(.ant-col .ant-form-item-control-wrapper) {
  1146. width: 60% !important;
  1147. }
  1148. }
  1149. :global(.recitifyrectstatus) {
  1150. :global(.ant-form-item-label) {
  1151. margin-left: 2em;
  1152. }
  1153. }
  1154. </style>