audit-rectfeedback-form.vue 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900
  1. <template>
  2. <div :class="[$style.odrForm, $style.rectprojectForm]">
  3. <sd-webflow
  4. ref="flow"
  5. :validate-form="validForm"
  6. :removed-tabs="['sdRelatedDoc']"
  7. @actionBtnClick="actionBtnClick"
  8. >
  9. <template v-slot:form="{ model, fields, FlowData }">
  10. <table>
  11. <tr>
  12. <td style="border:none">
  13. <audit-advanced-group
  14. :expand="infoExpand"
  15. :expand-str="'infoExpand'"
  16. :group-label="'整改跟踪单'"
  17. tablestyle="''"
  18. @changedClick="changedClick"
  19. ></audit-advanced-group>
  20. </td>
  21. </tr>
  22. </table>
  23. <table v-show="infoExpand">
  24. <colgroup>
  25. <col style="width: 180px;"/>
  26. <col />
  27. <col style="width: 180px;"/>
  28. <col
  29. /></colgroup>
  30. <tr>
  31. <!-- 项目名称 -->
  32. <sd-form-item-td name="projectName">
  33. <span>{{ model.projectName }}</span>
  34. </sd-form-item-td>
  35. <sd-form-item-td name="projectSource">
  36. <span>{{ model.projectSource }}</span>
  37. </sd-form-item-td>
  38. </tr>
  39. <tr>
  40. <!-- 项目code -->
  41. <sd-form-item-td name="projectCode" readonly :label="'项目编号'" />
  42. <!-- 整改责任主体名称 -->
  43. <sd-form-item-td name="auditedUnitName" readonly :label="'整改责任主体'" />
  44. </tr>
  45. <tr>
  46. <!-- 项目id -->
  47. <sd-form-item-td name="projectId" :colspan="3" :hidden="true" />
  48. </tr>
  49. <tr>
  50. <!-- 整改责任主体联系人名称 -->
  51. <sd-form-item-td name="auditedContactsName" readonly />
  52. <!-- 整改跟踪人名称 -->
  53. <sd-form-item-td name="resppersonsName" :label="'整改跟踪人'" />
  54. </tr>
  55. <tr>
  56. <!-- 整改计划反馈截止日期 -->
  57. <sd-form-item-td name="expectFinishDate" :colspan="3" readonly />
  58. </tr>
  59. <tr>
  60. <!-- 整改要求 -->
  61. <sd-form-item-td name="requirement" :colspan="3" readonly />
  62. </tr>
  63. <tr>
  64. <!-- 整改要求附件 -->
  65. <sd-form-item-td name="rectattach" :colspan="3">
  66. <template v-slot:read-and-edit="{ editable }">
  67. <sd-attachment
  68. v-model="model.rectattach"
  69. :read-only="true"
  70. :group-id="JSON.parse(fields.rectattach.value).value"
  71. ></sd-attachment>
  72. </template>
  73. </sd-form-item-td>
  74. </tr>
  75. </table>
  76. <table>
  77. <tr
  78. ><td :colspan="4">
  79. <sd-form-item name="iamWorkRectCarryOutList" :label="null">
  80. <template v-slot:read-and-edit="{ editable }">
  81. <audit-advanced-group
  82. :expand="findExpand"
  83. :expand-str="'findExpand'"
  84. :group-label="'审计发现问题'"
  85. @changedClick="changedClick"
  86. ><template>
  87. <!-- :read-only="FlowData.attrs.rectplanproject$findedit ? !editable : false" -->
  88. <audit-rectchild-table
  89. ref="findtable"
  90. v-model="model.iamWorkRectCarryOutList"
  91. label=""
  92. :read-only="!editable"
  93. :findinfoeditable="findinfoeditable"
  94. :fields="
  95. [
  96. {
  97. caption: '序号',
  98. name: 'sortNum',
  99. dataType: 'number',
  100. attr: {},
  101. },
  102. {
  103. caption: '操作',
  104. name: 'opt',
  105. dataType: 'action',
  106. attr: {},
  107. },
  108. ].concat(Array.from(fields.iamWorkRectCarryOutList.attr.dync))
  109. "
  110. :columns="FlowData.attrs.rectplanproject$findedit ? Columnswcz : Columns"
  111. :flagpage="true"
  112. :fnrowclick="fnrowclick"
  113. >
  114. <template v-slot:opt="{ index }">
  115. <a @click="fnlszg(index, $event)">落实整改</a>
  116. </template>
  117. <!-- form 表示这部分是子表组件的form插槽 -->
  118. <template v-slot:form="{ model, fields }">
  119. <table>
  120. <tr>
  121. <td style="padding-left:5px">
  122. <audit-advanced-group
  123. :expand="findinfoExpand"
  124. :expand-str="'findinfoExpand'"
  125. :group-label="'审计发现-基本信息'"
  126. tablestyle="''"
  127. @changedClick="changedClick"
  128. ></audit-advanced-group>
  129. </td>
  130. </tr>
  131. </table>
  132. <table>
  133. <colgroup>
  134. <col style="width: 12%;" />
  135. <col style="width: 38%;" />
  136. <col style="width: 12%;" />
  137. <col style="width: 38%;" />
  138. </colgroup>
  139. <tr v-show="findinfoExpand">
  140. <!-- 审计发现标题 -->
  141. <sd-form-item-td
  142. name="findingTitle"
  143. :label="'审计发现标题'"
  144. style="width:50%"
  145. >
  146. {{ model.findingTitle }}
  147. </sd-form-item-td>
  148. <!-- 审计发现编号 -->
  149. <sd-form-item-td
  150. name="findingCode"
  151. :label="'审计发现编号'"
  152. style="width:50%"
  153. >
  154. {{ model.findingCode }}
  155. </sd-form-item-td>
  156. </tr>
  157. <tr v-show="findinfoExpand">
  158. <!-- 审计发现类别 -->
  159. <sd-form-item-td name="findType" :colspan="3">
  160. <template v-slot:read-and-edit="{ editable }">
  161. {{ fngetjson(model.findType) }}
  162. </template>
  163. </sd-form-item-td>
  164. </tr>
  165. <tr v-show="findinfoExpand">
  166. <!-- 审计发现描述 -->
  167. <sd-form-item-td name="findDesc" :colspan="3">
  168. {{ model.findDesc }}
  169. </sd-form-item-td>
  170. </tr>
  171. <tr v-show="findinfoExpand">
  172. <!-- 审计建议描述 -->
  173. <sd-form-item-td name="suggestion" :colspan="3">
  174. {{ model.suggestion }}
  175. </sd-form-item-td>
  176. </tr>
  177. <tr v-show="findinfoExpand">
  178. <!-- 问题责任部门 -->
  179. <sd-form-item-td name="responsibleDept" :label="'问题责任部门'">
  180. {{ model.responsibleDept }}
  181. </sd-form-item-td>
  182. <!-- 所属业务部 -->
  183. <sd-form-item-td name="businessProcess">
  184. <!-- {{ model.businessProcess }} -->
  185. {{ fngetlabel(fields.businessProcess, model.businessProcess) }}
  186. </sd-form-item-td>
  187. </tr>
  188. <tr v-show="findinfoExpand">
  189. <!-- 是否问责 -->
  190. <sd-form-item-td name="whetherOrderDuty">
  191. <!-- {{ model.whetherOrderDuty }} -->
  192. {{ fngetlabel(fields.whetherOrderDuty, model.whetherOrderDuty) }}
  193. </sd-form-item-td>
  194. <!-- 问责要求 -->
  195. <sd-form-item-td name="orderDutyAsk">
  196. {{ model.orderDutyAsk }}
  197. </sd-form-item-td>
  198. </tr>
  199. <tr>
  200. <td style="padding-left:5px" colspan="4">
  201. <audit-advanced-group
  202. :expand="findinfoplanExpand"
  203. :expand-str="'findinfoplanExpand'"
  204. :group-label="'审计发现-整改计划信息'"
  205. tablestyle="''"
  206. @changedClick="changedClick"
  207. ></audit-advanced-group>
  208. </td>
  209. </tr>
  210. <tr v-show="findinfoplanExpand">
  211. <!-- 整改责任人 -->
  212. <sd-form-item-td
  213. name="responsibleDeptName"
  214. :label="'整改责任部门名称'"
  215. >
  216. <span>{{ model.responsibleDeptName }}</span>
  217. </sd-form-item-td>
  218. <!-- 直接责任人 -->
  219. <sd-form-item-td name="directResponsible">
  220. <span>{{ model.directResponsible }}</span>
  221. </sd-form-item-td>
  222. </tr>
  223. <tr v-show="findinfoplanExpand">
  224. <!-- 领导责任人 -->
  225. <sd-form-item-td name="leaderResponsible">
  226. <span>{{ model.leaderResponsible }}</span>
  227. </sd-form-item-td>
  228. <!-- 共同责任部门 -->
  229. <sd-form-item-td name="commonDutyDepart">
  230. <span>{{ model.commonDutyDepart }}</span>
  231. </sd-form-item-td>
  232. </tr>
  233. <tr v-show="findinfoplanExpand">
  234. <!-- 完成日期 -->
  235. <td class="ant-form-item-label ant-form-item-label"
  236. ><label title="拟整改完成日期" class=""> 拟整改完成日期 </label></td
  237. >
  238. <td>
  239. <span>{{ model.finishDate | sdDateFormat('YYYY-MM-DD') }}</span></td
  240. >
  241. </tr>
  242. <tr v-show="findinfoplanExpand">
  243. <!-- 措施 -->
  244. <td class="ant-form-item-label ant-form-item-label"
  245. ><label title="拟整改措施" class=""> 拟整改措施 </label></td
  246. >
  247. <td colspan="3">
  248. <span>{{ model.measure }}</span></td
  249. >
  250. </tr>
  251. <tr v-show="findinfoplanExpand">
  252. <!-- 说明 -->
  253. <sd-form-item-td :colspan="3" name="remark">
  254. <span>{{ model.remark }}</span>
  255. </sd-form-item-td>
  256. </tr>
  257. <tr>
  258. <td style="padding-left:5px" colspan="4">
  259. <audit-advanced-group
  260. :expand="findinfolsExpand"
  261. :expand-str="'findinfolsExpand'"
  262. :group-label="'审计发现-整改落实'"
  263. tablestyle="''"
  264. @changedClick="changedClick"
  265. ></audit-advanced-group>
  266. </td>
  267. </tr>
  268. <tr v-show="findinfolsExpand && !findinfoeditable">
  269. <!--整改状态 -->
  270. <td class="ant-form-item-label ant-form-item-label"
  271. ><label title="整改状态" class=""> 整改状态 </label></td
  272. >
  273. <td>
  274. <span>{{
  275. fngetlabel(fields.rectStatus, model.rectStatus)
  276. }}</span></td
  277. >
  278. <!-- 整改完成日期 -->
  279. <sd-form-item-td
  280. v-if="model.rectStatus === '03'"
  281. name="rectFinishDate"
  282. >
  283. <span>{{ model.rectFinishDate | sdDateFormat('YYYY-MM-DD') }}</span>
  284. </sd-form-item-td> </tr
  285. ><tr
  286. v-show="
  287. findinfolsExpand && !findinfoeditable && model.rectStatus === '01'
  288. "
  289. >
  290. <!-- 是否超期未整改 -->
  291. <sd-form-item-td name="isTrue">
  292. <span>{{ fngetlabel(fields.isTrue, model.isTrue) }}</span>
  293. </sd-form-item-td>
  294. <!-- 超期原因 -->
  295. <sd-form-item-td
  296. v-if="model.isTrue === '1' || model.isTrue === 1"
  297. name="overdueReason"
  298. >
  299. <span>{{ model.overdueReason }}</span>
  300. </sd-form-item-td>
  301. </tr>
  302. <tr
  303. v-if="
  304. findinfolsExpand &&
  305. !findinfoeditable &&
  306. model.rectStatus !== '04' &&
  307. model.rectStatus !== '03'
  308. "
  309. >
  310. <!-- 预计整改完成日期 -->
  311. <sd-form-item-td name="expectedCompleteDate" :colspan="3">
  312. <span>{{
  313. model.expectedCompleteDate | sdDateFormat('YYYY-MM-DD')
  314. }}</span>
  315. </sd-form-item-td>
  316. </tr>
  317. <tr v-show="findinfolsExpand && !findinfoeditable">
  318. <td class="ant-form-item-label ant-form-item-label"
  319. ><label title="整改情况说明" class=""> 整改情况说明 </label></td
  320. >
  321. <td colspan="3">
  322. <span>{{ model.description }}</span></td
  323. >
  324. </tr>
  325. <tr v-show="findinfolsExpand && !findinfoeditable">
  326. <!-- 完成日期 -->
  327. <sd-form-item-td name="rectMoneyType">
  328. <span>{{
  329. fngetlabel(fields.rectMoneyType, model.rectMoneyType)
  330. }}</span>
  331. </sd-form-item-td>
  332. <sd-form-item-td name="rectMoneySum">
  333. <span>{{ model.rectMoneySum }}</span>
  334. </sd-form-item-td>
  335. </tr>
  336. <tr v-show="findinfolsExpand && !findinfoeditable">
  337. <!-- 成果利用 -->
  338. <sd-form-item-td name="resultUse">
  339. <span>{{ fngetlabel(fields.resultUse, model.resultUse) }}</span>
  340. </sd-form-item-td>
  341. <!-- 成果利用数量 -->
  342. <sd-form-item-td name="resultUseSum">
  343. <span>{{ model.resultUseSum }}</span>
  344. </sd-form-item-td>
  345. </tr>
  346. <tr v-show="findinfolsExpand && !findinfoeditable">
  347. <!-- 处分信息 -->
  348. <sd-form-item-td name="punishInfo">
  349. <span>{{ fngetlabel(fields.punishInfo, model.punishInfo) }}</span>
  350. </sd-form-item-td>
  351. <!-- 处分人数 -->
  352. <sd-form-item-td name="punishSum">
  353. <span>{{ model.punishSum }}</span>
  354. </sd-form-item-td>
  355. </tr>
  356. <tr v-show="findinfolsExpand && !findinfoeditable">
  357. <!-- 向司法机关移送或报案线索 -->
  358. <sd-form-item-td name="transferToJustice">
  359. <span>{{ model.transferToJustice }}</span>
  360. </sd-form-item-td>
  361. <!-- 涉案人员 -->
  362. <sd-form-item-td name="personInvolved">
  363. <span>{{ model.personInvolved }}</span>
  364. </sd-form-item-td>
  365. </tr>
  366. <tr v-if="findinfolsExpand && !findinfoeditable">
  367. <sd-form-item-td name="attachment" :colspan="3">
  368. <template>
  369. <sd-attachment
  370. v-model="model.attachment"
  371. :group-id="groupId"
  372. :read-only="true"
  373. />
  374. </template>
  375. </sd-form-item-td>
  376. </tr>
  377. <!-- edit -->
  378. <tr v-show="findinfolsExpand && findinfoeditable">
  379. <!-- 整改状态 -->
  380. <sd-form-item-td name="rectStatus" @change="changestatus(model)" />
  381. <!-- 整改完成日期 -->
  382. <sd-form-item-td
  383. v-if="model.rectStatus === '03'"
  384. name="rectFinishDate"
  385. />
  386. </tr>
  387. <tr
  388. v-if="
  389. findinfolsExpand && findinfoeditable && model.rectStatus === '01'
  390. "
  391. >
  392. <!-- 是否超期未整改 -->
  393. <sd-form-item-td name="isTrue">
  394. <span>{{ fngetlabel(fields.isTrue, model.isTrue) }}</span>
  395. </sd-form-item-td>
  396. <td
  397. v-if="model.isTrue === '1' || model.isTrue === 1"
  398. class="ant-form-item-label ant-form-item-label"
  399. ><label title="超期原因" class="ant-form-item-required">
  400. 超期原因
  401. </label></td
  402. >
  403. <td v-if="model.isTrue === '1' || model.isTrue === 1">
  404. <a-form-model-item
  405. prop="overdueReason"
  406. :label="null"
  407. :rules="[
  408. { required: true, message: '请输入超期原因', trigger: 'blur' },
  409. ]"
  410. >
  411. <a-textarea v-model="model.overdueReason" :rows="3" />
  412. </a-form-model-item>
  413. </td>
  414. </tr>
  415. <tr
  416. v-if="
  417. findinfolsExpand &&
  418. findinfoeditable &&
  419. model.rectStatus !== '04' &&
  420. model.rectStatus !== '03'
  421. "
  422. >
  423. <!-- 预计整改完成日期 -->
  424. <sd-form-item-td name="expectedCompleteDate" :colspan="3" />
  425. </tr>
  426. <tr v-show="findinfolsExpand && findinfoeditable">
  427. <!-- 整改情况说明 -->
  428. <sd-form-item-td name="description" :colspan="3">
  429. <a-textarea v-model="model.description" :rows="3" />
  430. </sd-form-item-td>
  431. </tr>
  432. <tr v-show="findinfolsExpand && findinfoeditable">
  433. <!-- 完成日期 -->
  434. <sd-form-item-td name="rectMoneyType" />
  435. <sd-form-item-td name="rectMoneySum" />
  436. </tr>
  437. <tr v-show="findinfolsExpand && findinfoeditable">
  438. <!-- 成果利用 -->
  439. <sd-form-item-td name="resultUse" />
  440. <!-- 成果利用数量 -->
  441. <sd-form-item-td name="resultUseSum" />
  442. </tr>
  443. <tr v-show="findinfolsExpand && findinfoeditable">
  444. <!-- 处分信息 -->
  445. <sd-form-item-td name="punishInfo" />
  446. <!-- 处分人数 -->
  447. <sd-form-item-td name="punishSum" />
  448. </tr>
  449. <tr v-show="findinfolsExpand && findinfoeditable">
  450. <!-- 向司法机关移送或报案线索 -->
  451. <sd-form-item-td name="transferToJustice" />
  452. <!-- 涉案人员 -->
  453. <sd-form-item-td name="personInvolved" />
  454. </tr>
  455. <tr v-if="findinfolsExpand && findinfoeditable">
  456. <!-- 附件 -->
  457. <sd-form-item-td name="attachment" :colspan="3">
  458. <template v-slot:read-and-edit="{ editable }">
  459. <sd-attachment
  460. v-model="model.attachment"
  461. :group-id="
  462. typeof JSON.parse(fields.attachment.value) === 'object'
  463. ? JSON.parse(fields.attachment.value).value
  464. : fields.attachment.value
  465. "
  466. :read-only="!editable"
  467. />
  468. </template>
  469. </sd-form-item-td>
  470. </tr>
  471. <tr>
  472. <td colspan="4" style="padding-left: 5px;">
  473. <span style="color:#40a9ff">历史反馈记录</span>
  474. </td>
  475. </tr>
  476. <tr>
  477. <td :colspan="4" style="border:none">
  478. <table style="width:100%">
  479. <tr>
  480. <td width="5.8%" style="text-align:center">序号</td
  481. ><td style="text-align:center">反馈日期</td
  482. ><td style="text-align:center">反馈状态</td>
  483. </tr>
  484. <tr
  485. v-for="(fk, index) in model.historyIamWorkRectCarryOutEntities"
  486. :key="index"
  487. >
  488. <td style="text-align:center">{{ index + 1 }}</td
  489. ><td style="text-align:center"
  490. ><a @click="fnopenfk(fngetnr(fk, 'id'))">{{
  491. fngetnr(fk, 'lastModifiedTime') | sdDateFormat('YYYY-MM-DD')
  492. }}</a></td
  493. ><td style="text-align:center">{{
  494. fngetlabel(fields.rectStatus, fngetnr(fk, 'rectStatus'))
  495. }}</td>
  496. </tr>
  497. </table>
  498. </td>
  499. </tr>
  500. </table>
  501. </template>
  502. </audit-rectchild-table>
  503. </template>
  504. </audit-advanced-group>
  505. </template>
  506. <!-- input-fieldName 表示这部分是子表行显示的插槽,fieldName是字段名 - ->
  507. <! -- <template v-slot:input-name="{ field, text }">
  508. <span>自定义{{ text }}</span>
  509. </template> -->
  510. </sd-form-item></td
  511. >
  512. </tr>
  513. </table>
  514. </template>
  515. </sd-webflow>
  516. </div>
  517. </template>
  518. <script>
  519. import { Modal } from 'ant-design-vue'
  520. import auditRectchildTable from '../rectplanproject/table/audit-rectchild-table.vue'
  521. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  522. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  523. import components from './_import-components/audit-rectfeedback-form-import'
  524. export default {
  525. name: 'AuditRectfeedbackForm',
  526. metaInfo: {
  527. title: '整改反馈',
  528. },
  529. components: {
  530. ...components,
  531. auditAdvancedGroup,
  532. auditRectchildTable,
  533. },
  534. mixins: [auditAdvancedGroupMixins],
  535. data() {
  536. return {
  537. visibleY: false,
  538. visibleZ: false,
  539. projectId: '',
  540. infoExpand: true,
  541. findExpand: true,
  542. findinfoExpand: true,
  543. findinfoplanExpand: true,
  544. findinfoeditable: false,
  545. groupId: '',
  546. findrectfeedback: false,
  547. findinfolsExpand: true,
  548. Columns: [
  549. {
  550. title: '序号',
  551. dataIndex: 'sortNum',
  552. width: '80px',
  553. customRender: (text, record, index) => `${index + 1}`,
  554. sdHidden: false,
  555. },
  556. { title: '问题标题', dataIndex: 'findingTitle', sdHidden: false, width: '20%' },
  557. { title: '问题编号', dataIndex: 'findingCode', sdHidden: false, width: '200px' },
  558. { title: '拟整改完成日期', dataIndex: 'finishDate', sdHidden: false },
  559. { title: '整改状态', dataIndex: 'rectStatus', sdHidden: false, width: '100px' },
  560. { title: '整改完成日期', dataIndex: 'rectFinishDate', sdHidden: false },
  561. {
  562. title: '拟整情况说明',
  563. dataIndex: 'description',
  564. sdHidden: false,
  565. width: '25%',
  566. },
  567. {
  568. title: '操作',
  569. dataIndex: 'opt',
  570. sdHidden: true,
  571. },
  572. ],
  573. Columnswcz: [
  574. {
  575. title: '序号',
  576. dataIndex: 'sortNum',
  577. width: '80px',
  578. customRender: (text, record, index) => `${index + 1}`,
  579. sdHidden: false,
  580. },
  581. { title: '问题标题', dataIndex: 'findingTitle', sdHidden: false, width: '15%' },
  582. { title: '问题编号', dataIndex: 'findingCode', sdHidden: false, width: '200px' },
  583. { title: '拟整改完成日期', dataIndex: 'finishDate', sdHidden: false },
  584. { title: '整改状态', dataIndex: 'rectStatus', sdHidden: false, width: '100px' },
  585. { title: '整改完成日期', dataIndex: 'rectFinishDate', sdHidden: false },
  586. {
  587. title: '拟整情况说明',
  588. dataIndex: 'description',
  589. sdHidden: false,
  590. width: '20%',
  591. },
  592. {
  593. title: '操作',
  594. dataIndex: 'opt',
  595. sdHidden: false,
  596. },
  597. ],
  598. historycarryoutcolumns: [
  599. {
  600. title: '序号',
  601. dataIndex: 'sortNum',
  602. width: '50px',
  603. customRender: (text, record, index) => `${index + 1}`,
  604. sdHidden: false,
  605. },
  606. {
  607. title: '反馈日期',
  608. dataIndex: 'rectFinishDate',
  609. sdHidden: false,
  610. },
  611. {
  612. title: '反馈状态',
  613. dataIndex: 'rectStatus',
  614. sdHidden: false,
  615. },
  616. {
  617. dataIndex: 'rectFeedbackId',
  618. sdHidden: true,
  619. },
  620. {
  621. dataIndex: 'mark',
  622. sdHidden: true,
  623. },
  624. ],
  625. }
  626. },
  627. mounted() {
  628. if (this.$refs.flow.FlowData) {
  629. this.findrectfeedback = this.fngetfindedit()
  630. const obj = this.$refs.flow.FlowData.processFormData.processFormPropertyValues.find(
  631. (item) => item.name === 'iamWorkRectCarryOutList'
  632. )
  633. const no = JSON.parse(obj.value)
  634. no.forEach((item) => {
  635. if (
  636. typeof item.attachment === 'string' &&
  637. typeof JSON.parse(item.attachment) !== 'object'
  638. ) {
  639. item.attachment = JSON.stringify({ value: parseFloat(item.attachment) + '' })
  640. }
  641. if (typeof item.isTrue === 'number') {
  642. item.isTrue = item.isTrue.toString()
  643. }
  644. // 转json格式,确保最后一次存的是可以直接格式化的json字符串
  645. if (typeof item.historyIamWorkRectCarryOutEntities === 'string') {
  646. item.historyIamWorkRectCarryOutEntitiesJson = JSON.parse(
  647. item.historyIamWorkRectCarryOutEntities
  648. )
  649. } else {
  650. item.historyIamWorkRectCarryOutEntitiesJson = item.historyIamWorkRectCarryOutEntities
  651. }
  652. while (typeof item.historyIamWorkRectCarryOutEntitiesJson === 'string') {
  653. item.historyIamWorkRectCarryOutEntitiesJson = JSON.parse(
  654. item.historyIamWorkRectCarryOutEntitiesJson
  655. )
  656. }
  657. // 在转换为json字符串
  658. item.historyIamWorkRectCarryOutEntities = JSON.stringify(
  659. item.historyIamWorkRectCarryOutEntitiesJson
  660. )
  661. })
  662. this.$refs.flow.setFieldValue('iamWorkRectCarryOutList', no)
  663. if (this.$refs.flow.getFieldValue('projectId') !== '') {
  664. this.projectId = this.$refs.flow.getFieldValue('projectId')
  665. }
  666. }
  667. },
  668. methods: {
  669. fngetlabel(obj, val) {
  670. if (obj.attr.selectListItem) {
  671. const o = obj.attr.selectListItem.find((item) => item.value === val)
  672. if (o) {
  673. return o.label
  674. } else {
  675. if (val !== undefined) {
  676. const o = obj.attr.selectListItem.find(
  677. (item) => item.value.toString() === val.toString()
  678. )
  679. if (o) {
  680. return o.label
  681. } else {
  682. return val
  683. }
  684. } else {
  685. return val
  686. }
  687. }
  688. } else {
  689. return val
  690. }
  691. },
  692. fngetfindedit() {
  693. if (this.$refs.flow !== undefined) {
  694. if (this.$refs.flow.FlowData.attrs.rectplanproject$findedit !== undefined) {
  695. if (this.$refs.flow.FlowData.attrs.rectplanproject$findedit === true) {
  696. return true
  697. } else {
  698. return false
  699. }
  700. } else {
  701. return false
  702. }
  703. } else {
  704. return false
  705. }
  706. },
  707. fngetjson(data) {
  708. if (data !== undefined && data !== '') {
  709. if (typeof JSON.parse(data) === 'object') {
  710. return JSON.parse(data).text
  711. } else {
  712. return data
  713. }
  714. } else {
  715. return ''
  716. }
  717. },
  718. validForm() {
  719. // return true
  720. const child = this.$refs.flow.getFieldValue('iamWorkRectCarryOutList')
  721. if (child === undefined || child.length === 0) {
  722. Modal.warning({
  723. title: '提示',
  724. content: '请增加至少一条审计发现问题!',
  725. })
  726. return Promise.resolve(false)
  727. }
  728. const findinfoeditable = this.$refs.flow.FlowData.attrs.rectplanproject$findedit
  729. if (findinfoeditable) {
  730. // console.log('--校验判断 是否动态子表填写完毕')
  731. let flag = true
  732. child.forEach((c) => {
  733. if (c.rectStatus === '' || c.rectStatus === null || c.rectStatus === undefined) {
  734. flag = false
  735. }
  736. if (c.description === '' || c.description === null || c.description === undefined) {
  737. flag = false
  738. }
  739. })
  740. if (flag) {
  741. return Promise.resolve(true)
  742. } else {
  743. Modal.warning({
  744. title: '提示',
  745. content: '请完善反馈列表中的信息!',
  746. })
  747. return Promise.resolve(false)
  748. }
  749. } else {
  750. return Promise.resolve(true)
  751. }
  752. },
  753. actionBtnClick(evt, { button, FlowData }) {},
  754. // 问题发现
  755. showselectfind() {
  756. this.$refs.selectfind.projectId = this.projectId
  757. if (this.projectId !== '') {
  758. this.$refs.selectfind.filterExpressions = [
  759. {
  760. dataType: 'long',
  761. name: 'projectId',
  762. op: 'eq',
  763. longValue: parseInt(this.projectId),
  764. },
  765. ]
  766. }
  767. this.visibleZ = !this.visibleZ
  768. },
  769. Selectedfind(keys, findlist) {
  770. findlist.forEach((item) => {
  771. item.findingTitle = item.findTitle
  772. item.findingCode = item.findCode
  773. item.responsibleDeptName = item.auditedUnitNames
  774. })
  775. this.$refs.flow.setFieldValue('iamWorkFindRectplanList', findlist)
  776. },
  777. // 项目选择器列表
  778. mxRelSelect() {
  779. this.visibleY = !this.visibleY
  780. },
  781. listMxSelected(keys, keyinfos, key) {
  782. this.projectId = keyinfos[0].id
  783. this.$refs.flow.setFieldValue('projectId', keyinfos[0].id)
  784. this.$refs.flow.setFieldValue('projectName', keyinfos[0].projectTitle)
  785. this.$refs.flow.setFieldValue('projectCode', keyinfos[0].projectCode)
  786. const unitsname = keyinfos[0].auditedUnitNames
  787. const unitscode = keyinfos[0].auditedUnitCodes
  788. const vname = unitsname.split(',')
  789. const vcode = unitscode.split(',')
  790. const vunits = []
  791. vname.forEach((item, index) => {
  792. vunits.push({
  793. type: 'Group',
  794. code: vcode[index].toString(),
  795. name: vname[index].toString(),
  796. })
  797. })
  798. this.$refs.flow.setFieldValue('auditedUnit', vunits)
  799. if (key === '1') {
  800. this.$refs.flow.setFieldValue('projectSource', '内部项目')
  801. } else {
  802. this.$refs.flow.setFieldValue('projectSource', '外部项目')
  803. }
  804. },
  805. fnlszg(index, event) {
  806. this.findinfoeditable = true
  807. this.$refs.findtable.editlsfk(index, true)
  808. event.stopPropagation()
  809. },
  810. fnrowclick(record) {
  811. this.findinfoeditable = false
  812. if (typeof record.attachment === 'object') {
  813. this.groupId = record.attachment.value
  814. } else if (typeof JSON.parse(record.attachment) === 'object') {
  815. this.groupId = JSON.parse(record.attachment).value
  816. } else {
  817. this.groupId = record.attachment
  818. }
  819. },
  820. fngetattach(obj) {
  821. if (typeof obj === 'object') {
  822. if (obj.length === 0) {
  823. return 0
  824. } else {
  825. return obj.value
  826. }
  827. } else {
  828. return obj
  829. }
  830. },
  831. changestatus(model) {
  832. const now = new Date()
  833. model.isTrue = '0'
  834. if (model.rectStatus === '01') {
  835. const rq = new Date(model.finishDate)
  836. if (rq < now) {
  837. model.isTrue = '1'
  838. }
  839. model.rectFinishDate = null
  840. } else if (model.rectStatus === '03') {
  841. model.expectedCompleteDate = null
  842. } else if (model.rectStatus === '04') {
  843. model.expectedCompleteDate = null
  844. model.rectFinishDate = null
  845. } else {
  846. model.rectFinishDate = null
  847. }
  848. if (model.isTrue === '0') {
  849. model.overdueReason = ''
  850. }
  851. },
  852. fnopenhistoryrecify() {
  853. return false
  854. },
  855. fnopenfk(id) {
  856. const url = '#/audit-question-feedback-form?record=' + id + '&history=1'
  857. window.open(url)
  858. },
  859. fngetnr(obj, item) {
  860. if (obj === undefined) {
  861. return ''
  862. } else {
  863. if (obj.length === undefined) {
  864. return obj[item]
  865. } else if (obj.length > 0) {
  866. return obj[obj.length - 1][item]
  867. } else {
  868. return ''
  869. }
  870. }
  871. },
  872. },
  873. }
  874. </script>
  875. <style module lang="scss">
  876. @use '@/common/design' as *;
  877. .btnselect {
  878. position: relative;
  879. float: right;
  880. .batchselect {
  881. z-index: 100;
  882. margin-right: 190px;
  883. }
  884. }
  885. :global(.ant-modal-content) {
  886. :global(.ant-input-number) {
  887. width: 100%;
  888. }
  889. }
  890. </style>