audit-planchange-form.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939
  1. <template>
  2. <div :class="$style.odrForm">
  3. <sd-webflow ref="flow" :removed-tabs="['sdRelatedDoc']" @actionBtnClick="actionBtnClick">
  4. <template v-slot:form="{ model, fields }">
  5. <table>
  6. <tr>
  7. <td style=" padding-left: 5px;border: none">
  8. <audit-advanced-group
  9. :expand="planchangeExpand"
  10. :expand-str="'planchangeExpand'"
  11. :group-label="'变更信息'"
  12. tablestyle="''"
  13. @changedClick="changedClick"
  14. ></audit-advanced-group>
  15. </td>
  16. </tr>
  17. </table>
  18. <table v-show="planchangeExpand">
  19. <colgroup>
  20. <col style="width: 185px" />
  21. <col />
  22. <col style="width: 185px" />
  23. <col />
  24. </colgroup>
  25. <tr>
  26. <sd-form-item-td name="planTitle">
  27. <span>{{ model.planTitle }}</span>
  28. </sd-form-item-td>
  29. <sd-form-item-td name="changeType">
  30. <a-select
  31. v-model="model.changeType"
  32. :disabled="true"
  33. show-search
  34. option-filter-prop="children"
  35. >
  36. <a-select-option
  37. v-for="(item, index) in fields.changeType.attr.selectListItem"
  38. :key="index"
  39. :value="item.value"
  40. >
  41. {{ item.label }}
  42. </a-select-option>
  43. </a-select>
  44. </sd-form-item-td>
  45. </tr>
  46. <tr>
  47. <sd-form-item-td name="changeReson" :colspan="3">
  48. <a-textarea v-model="model.changeReson" :rows="3" />
  49. </sd-form-item-td>
  50. </tr>
  51. <tr>
  52. <!-- 编制人员 -->
  53. <sd-form-item-td name="creatorName" />
  54. <!-- 编制日期 -->
  55. <sd-form-item-td name="creationTime" />
  56. </tr>
  57. </table>
  58. <table>
  59. <tr>
  60. <td style=" padding-left: 5px;border: none">
  61. <audit-advanced-group
  62. :expand="projectExpand"
  63. :expand-str="'projectExpand'"
  64. :group-label="'项目信息'"
  65. tablestyle="''"
  66. @changedClick="changedClick"
  67. ></audit-advanced-group>
  68. </td>
  69. </tr>
  70. </table>
  71. <table v-show="projectExpand">
  72. <colgroup>
  73. <col style="width: 185px" />
  74. <col />
  75. <col style="width: 185px" />
  76. <col />
  77. </colgroup>
  78. <tr>
  79. <sd-form-item-td
  80. v-if="model.changeType !== '03'"
  81. name="projectTitle"
  82. @keyup="setTitle(model)"
  83. ></sd-form-item-td>
  84. <sd-form-item-td v-if="model.changeType === '03'" name="projectTitle">
  85. {{ model.projectTitle }}
  86. </sd-form-item-td>
  87. <!-- <sd-form-item-td v-if="model.changeType !== '03'" name="auditType"></sd-form-item-td> -->
  88. <sd-form-item-td
  89. v-if="
  90. model.changeType === '03' ||
  91. (model.projectCode !== '' &&
  92. model.projectCode !== null &&
  93. model.projectCode !== undefined)
  94. "
  95. name="auditType"
  96. >
  97. {{ getFormSelectFieldValue('auditType', model.auditType) }}
  98. </sd-form-item-td>
  99. <sd-form-item-td v-else name="auditType"></sd-form-item-td>
  100. </tr>
  101. <tr class="bklabeloverflow">
  102. <sd-form-item-td
  103. v-if="model.changeType !== '03'"
  104. label="项目负责人"
  105. name="projectPrincipalId"
  106. >
  107. <sd-user-picker
  108. v-model="model.projectPrincipalId"
  109. :single="true"
  110. :read-only="false"
  111. />
  112. </sd-form-item-td>
  113. <sd-form-item-td
  114. v-if="model.changeType === '03'"
  115. label="项目负责人"
  116. name="projectPrincipalName"
  117. >
  118. <span>{{ model.projectPrincipalName }}</span>
  119. </sd-form-item-td>
  120. <sd-form-item-td v-if="model.changeType !== '03'" name="projectCode">
  121. <a-input
  122. v-model="model.projectCode"
  123. :disabled="true"
  124. placeholder="系统自动生成"
  125. ></a-input>
  126. </sd-form-item-td>
  127. <sd-form-item-td v-if="model.changeType === '03'" name="projectCode">
  128. {{ model.projectCode }}
  129. </sd-form-item-td>
  130. </tr>
  131. <tr>
  132. <sd-form-item-td
  133. v-if="model.changeType !== '03'"
  134. name="auditedUnitIds"
  135. :colspan="3"
  136. ></sd-form-item-td>
  137. <sd-form-item-td v-if="model.changeType === '03'" name="auditedUnitNames" :colspan="3">
  138. <span>{{ model.auditedUnitNames }}</span>
  139. </sd-form-item-td>
  140. <!-- <sd-form-item-td v-if="model.changeType !== '03'" name="auditBasis"></sd-form-item-td>
  141. <sd-form-item-td v-if="model.changeType === '03'" name="auditBasis">
  142. <span>{{ getFormSelectFieldValue('auditBasis', model.auditBasis) }}</span>
  143. </sd-form-item-td> -->
  144. </tr>
  145. <tr>
  146. <sd-form-item-td v-if="model.changeType !== '03'" name="auditMode"></sd-form-item-td>
  147. <sd-form-item-td v-if="model.changeType === '03'" name="auditMode">
  148. <span>{{ getFormSelectFieldValue('auditMode', model.auditMode) }}</span>
  149. </sd-form-item-td>
  150. <sd-form-item-td
  151. v-if="
  152. (model.changeType !== '03' && model.auditType === '03') ||
  153. (model.changeType !== '03' && model.auditType === '04')
  154. "
  155. name="auditedUser"
  156. ></sd-form-item-td>
  157. <sd-form-item-td
  158. v-if="
  159. (model.changeType === '03' && model.auditType === '03') ||
  160. (model.changeType === '03' && model.auditType === '04')
  161. "
  162. name="auditedUser"
  163. >
  164. {{ model.auditedUser }}
  165. </sd-form-item-td>
  166. </tr>
  167. <tr>
  168. <sd-form-item-td
  169. v-if="model.changeType !== '03' && model.auditMode === '02'"
  170. name="externalUnitIds"
  171. :colspan="3"
  172. >
  173. <template v-slot:read-and-edit="{ editable }">
  174. <AuditGroupPicker
  175. v-if="editable"
  176. v-model="model.externalUnitIds"
  177. :read-only="false"
  178. :selectclick="showselectexternal"
  179. />
  180. <span v-else>{{ model.externalUnitNames }}</span>
  181. </template>
  182. </sd-form-item-td>
  183. <sd-form-item-td
  184. v-if="model.changeType === '03' && model.auditMode === '02'"
  185. name="externalUnitNames"
  186. :colspan="3"
  187. >
  188. <span>{{ model.externalUnitNames }}</span>
  189. </sd-form-item-td>
  190. </tr>
  191. <!-- <tr>
  192. <sd-form-item-td v-if="model.changeType !== '03'" name="auditObjective" :colspan="3">
  193. <a-textarea v-model="model.auditObjective" :rows="3" />
  194. </sd-form-item-td>
  195. <sd-form-item-td v-if="model.changeType === '03'" name="auditObjective" :colspan="3">
  196. {{ model.auditObjective }}
  197. </sd-form-item-td>
  198. </tr> -->
  199. <tr>
  200. <sd-form-item-td v-if="model.changeType !== '03'" name="projectContent" :colspan="3">
  201. <a-textarea v-model="model.projectContent" :rows="3" />
  202. </sd-form-item-td>
  203. <sd-form-item-td v-if="model.changeType === '03'" name="projectContent" :colspan="3">
  204. {{ model.projectContent }}
  205. </sd-form-item-td>
  206. </tr>
  207. <tr>
  208. <sd-form-item-td v-if="model.changeType === '03'" name="whetherFinance" hidden="true">
  209. <span>{{ getFormSelectFieldValue('whetherFinance', model.whetherFinance) }}</span>
  210. </sd-form-item-td>
  211. <sd-form-item-td
  212. v-if="model.changeType !== '03'"
  213. name="whetherFinance"
  214. hidden="true"
  215. ></sd-form-item-td>
  216. <sd-form-item-td v-if="model.changeType === '03'" name="whetherOverseas" hidden="true">
  217. <span>{{ getFormSelectFieldValue('whetherOverseas', model.whetherOverseas) }}</span>
  218. </sd-form-item-td>
  219. <sd-form-item-td
  220. v-if="model.changeType !== '03'"
  221. name="whetherOverseas"
  222. hidden="true"
  223. ></sd-form-item-td>
  224. </tr>
  225. <tr class="bklabeloverflow">
  226. <sd-form-item-td v-if="model.changeType === '03'" name="whetherAuditCoverage">
  227. <span>{{
  228. getFormSelectFieldValue('whetherAuditCoverage', model.whetherAuditCoverage)
  229. }}</span>
  230. </sd-form-item-td>
  231. <sd-form-item-td
  232. v-if="model.changeType !== '03'"
  233. name="whetherAuditCoverage"
  234. ></sd-form-item-td>
  235. <!-- <sd-form-item-td v-if="model.changeType === '03'" name="isPlanIn">
  236. <span>{{ getFormSelectFieldValue('isPlanIn', model.isPlanIn) }}</span>
  237. </sd-form-item-td>
  238. <sd-form-item-td v-if="model.changeType !== '03'" name="isPlanIn"></sd-form-item-td> -->
  239. </tr>
  240. <tr>
  241. <sd-form-item-td
  242. v-if="model.changeType !== '03'"
  243. name="planStartTime"
  244. @change="getDay"
  245. ></sd-form-item-td>
  246. <sd-form-item-td v-if="model.changeType === '03'" name="planStartTime">
  247. <span>{{ getFormTimeField(model.planStartTime) }}</span>
  248. </sd-form-item-td>
  249. <sd-form-item-td
  250. v-if="model.changeType !== '03'"
  251. name="planEndTime"
  252. range-after="planStartTime"
  253. @change="getDay"
  254. ></sd-form-item-td>
  255. <sd-form-item-td v-if="model.changeType === '03'" name="planEndTime">
  256. <span>{{ getFormTimeField(model.planEndTime) }}</span>
  257. </sd-form-item-td>
  258. </tr>
  259. <tr>
  260. <sd-form-item-td v-if="model.changeType !== '03'" name="planDays" />
  261. <sd-form-item-td v-if="model.changeType === '03'" name="planDays">
  262. {{ model.planDays }}
  263. </sd-form-item-td>
  264. </tr>
  265. <tr>
  266. <sd-form-item-td v-if="model.changeType !== '03'" name="groupLeaderId" :colspan="3">
  267. <sd-user-picker v-model="model.groupLeaderId" :single="true" :read-only="false" />
  268. </sd-form-item-td>
  269. <sd-form-item-td v-if="model.changeType === '03'" name="groupLeaderName" :colspan="3">
  270. <span>{{ model.groupLeaderName }}</span>
  271. </sd-form-item-td>
  272. <!-- <sd-form-item-td
  273. v-if="model.changeType !== '03'"
  274. name="projectSource"
  275. component="a-select"
  276. ></sd-form-item-td>
  277. <sd-form-item-td v-if="model.changeType === '03'" name="projectSource">
  278. <span>{{ getFormSelectFieldValue('projectSource', model.projectSource) }}</span>
  279. </sd-form-item-td> -->
  280. </tr>
  281. <!-- <tr>
  282. <sd-form-item-td
  283. v-if="model.changeType !== '03'"
  284. name="exPersonnelNum"
  285. ></sd-form-item-td>
  286. <sd-form-item-td v-if="model.changeType === '03'" name="exPersonnelNum">
  287. {{ model.exPersonnelNum }}
  288. </sd-form-item-td>
  289. <sd-form-item-td v-if="model.changeType !== '03'" name="predictedCost">
  290. <a-input-number
  291. v-model="model.predictedCost"
  292. :min="0"
  293. :precision="2"
  294. style="width: 100%"
  295. ></a-input-number>
  296. </sd-form-item-td>
  297. <sd-form-item-td v-if="model.changeType === '03'" name="predictedCost">
  298. {{
  299. model.predictedCost === null
  300. ? model.predictedCost
  301. : parseFloat(model.predictedCost).toFixed(2)
  302. }}
  303. </sd-form-item-td>
  304. </tr> -->
  305. <!-- <tr>
  306. <sd-form-item-td
  307. v-if="model.changeType !== '03'"
  308. name="secondAuditDeptPerson"
  309. :colspan="3"
  310. >
  311. <sd-user-picker
  312. v-model="model.secondAuditDeptPerson"
  313. :single="true"
  314. :read-only="false"
  315. :colspan="3"
  316. />
  317. </sd-form-item-td>
  318. <sd-form-item-td v-if="model.changeType === '03'" name="secondAuditDeptPersonName">
  319. <span>{{ model.secondAuditDeptPersonName }}</span>
  320. </sd-form-item-td>
  321. </tr> -->
  322. <tr v-show="showAttachment">
  323. <sd-form-item-td v-if="model.changeType !== '03'" name="attachment" :colspan="3">
  324. <template v-slot:read-and-edit="{ editable }">
  325. <sd-attachment
  326. ref="planAtta"
  327. v-model="model.attachment"
  328. list-type="list"
  329. :group-id="projectGroupId"
  330. :read-only="!editable"
  331. />
  332. </template>
  333. </sd-form-item-td>
  334. <sd-form-item-td v-if="model.changeType === '03'" name="attachment" :colspan="3">
  335. <template v-slot:read-and-edit>
  336. <sd-attachment
  337. ref="planAtta"
  338. v-model="model.attachment"
  339. list-type="text"
  340. :group-id="projectGroupId"
  341. :read-only="true"
  342. :uploadable="false"
  343. />
  344. </template>
  345. </sd-form-item-td>
  346. </tr>
  347. <tr>
  348. <sd-form-item-td v-if="model.changeType !== '03'" name="projectRemarks" :colspan="3">
  349. <a-textarea v-model="model.projectRemarks" :rows="3" />
  350. </sd-form-item-td>
  351. <sd-form-item-td v-if="model.changeType === '03'" name="projectRemarks" :colspan="3">
  352. {{ model.projectRemarks }}
  353. </sd-form-item-td>
  354. </tr>
  355. </table>
  356. <a-modal
  357. :visible="modalvisible"
  358. title="请选择"
  359. width="1200px"
  360. :body-style="{
  361. minHeight: '700px',
  362. }"
  363. :destroy-on-close="true"
  364. @ok="handleOk"
  365. @cancel="handleCancel"
  366. >
  367. <sd-data-table-ex
  368. ref="externalTable"
  369. check-type="checkbox"
  370. :filter-expressions="expressions"
  371. :columns="modalcolumns"
  372. form-id="iamExternalBase"
  373. page-id="audit/auditsource/extrnal/iamExternalBase"
  374. :search-fields="['name', 'code', 'address']"
  375. show-selection
  376. >
  377. </sd-data-table-ex>
  378. </a-modal>
  379. </template>
  380. </sd-webflow>
  381. </div>
  382. </template>
  383. <script>
  384. import moment from 'moment'
  385. import AuditService from '@product/iam/audit/plan/audit-service'
  386. import AuditGroupPicker from '../../components/picker/audit-group-picker.vue'
  387. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  388. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  389. import components from './_import-components/audit-planchange-form-import'
  390. import axios from '@/common/services/axios-instance'
  391. import logUtil from '@/common/services/log-util'
  392. import TableColumnTypes from '@/common/services/table-column-types'
  393. export default {
  394. name: 'AuditPlanchangeForm',
  395. metaInfo: {
  396. title: '审计计划项目变更',
  397. },
  398. components: {
  399. ...components,
  400. auditAdvancedGroup,
  401. AuditGroupPicker,
  402. },
  403. mixins: [auditAdvancedGroupMixins],
  404. data() {
  405. return {
  406. oper: '',
  407. planYear: '',
  408. planchangeExpand: true,
  409. projectExpand: true,
  410. showAttachment: false,
  411. auditTypeOptions: [],
  412. auditModeOptions: [],
  413. auditBasisOptions: [],
  414. projectSourceOptions: [],
  415. whetherFinanceOptions: [],
  416. whetherOverseasOptions: [],
  417. whetherAuditCoverageOptions: [],
  418. projectGroupId: new Date().getTime(), // 附件默认值
  419. modalvisible: false,
  420. modalcolumns: [
  421. {
  422. title: '序号',
  423. dataIndex: 'sortNumber',
  424. width: '70px',
  425. customRender: (text, record, index) => `${index + 1}`,
  426. },
  427. {
  428. dataIndex: 'id',
  429. sdHidden: true,
  430. },
  431. {
  432. title: '企业名称',
  433. dataIndex: 'name',
  434. // sdClickable: true, // 列内容是否可点击
  435. scopedSlots: { customRender: 'islink' },
  436. },
  437. {
  438. title: '类型',
  439. dataIndex: 'category',
  440. width: '160px',
  441. },
  442. {
  443. title: '统一社会信用代码',
  444. dataIndex: 'code',
  445. width: '180px',
  446. },
  447. {
  448. title: '住所',
  449. dataIndex: 'address',
  450. width: '70px',
  451. },
  452. {
  453. title: '企业状态',
  454. sorter: true,
  455. dataIndex: 'status',
  456. },
  457. {
  458. title: '当前所参与项目',
  459. dataIndex: 'joinProject',
  460. width: '180px',
  461. scopedSlots: { customRender: 'isProject' },
  462. },
  463. {
  464. title: '编制人员',
  465. dataIndex: 'authName',
  466. width: '120px',
  467. },
  468. {
  469. title: '编制日期',
  470. dataIndex: 'authTime',
  471. sorter: true,
  472. defaultSortOrder: 'descend',
  473. sdRender: TableColumnTypes.date,
  474. },
  475. ],
  476. expressions: [],
  477. }
  478. },
  479. mounted() {
  480. this.initPlanChangeInfo()
  481. this.initProjectInfo()
  482. this.initDictionaryInfo()
  483. var _this = this
  484. logUtil.$on('modifyLogCustomData', function(modifyLogData) {
  485. _this.modifyLogCustomData(modifyLogData)
  486. })
  487. },
  488. methods: {
  489. modifyLogCustomData(modifyLogData) {
  490. // 修改modifyLogData中的元素
  491. return modifyLogData
  492. },
  493. actionBtnClick(evt, { button, FlowData }) {
  494. // if(this.$refs.flow.getFieldValue('externalUnitIds')){
  495. // this.$refs.flow.setFieldValue('externalUnitIds',JSON.stringify(this.$refs.flow.getFieldValue('externalUnitIds')))
  496. // }
  497. FlowData.processFormData.processFormPropertyValues.forEach((item) => {
  498. if (item.name === 'attachment') {
  499. item.value = this.projectGroupId
  500. }
  501. })
  502. if (button.fakeId === 'save') {
  503. evt.waitUntil(
  504. new Promise((resolve, reject) => {
  505. const auditType = this.$refs.flow.getFieldValue('auditType')
  506. if (auditType === '' || auditType === undefined || auditType === null) {
  507. // Message.warn('审计类型为空')
  508. this.$refs.flow.validateField('auditType').then((res) => {
  509. console.log(res)
  510. })
  511. evt.preventDefault()
  512. resolve()
  513. } else {
  514. resolve()
  515. }
  516. })
  517. )
  518. }
  519. },
  520. // 初始化计划变更信息
  521. initPlanChangeInfo() {
  522. let changeType = null
  523. if (JSON.stringify(this.$route.query) !== '{}') {
  524. this.oper = JSON.parse(this.$route.query.extParams).oper
  525. this.planYear = JSON.parse(this.$route.query.extParams).planYear
  526. if (this.oper === 'create') {
  527. changeType = '01'
  528. } else if (this.oper === 'edit' || this.oper === 'cancel') {
  529. if (this.oper === 'edit') {
  530. changeType = '02'
  531. }
  532. if (this.oper === 'cancel') {
  533. changeType = '03'
  534. }
  535. const projectId = JSON.parse(this.$route.query.extParams).projectId
  536. this.$refs.flow.setFieldValue('projectId', projectId)
  537. }
  538. this.$refs.flow.setFieldValue('changeType', changeType)
  539. this.$refs.flow.setFieldValue('planYear', this.planYear)
  540. AuditService.getPlanByPlanYear(this.planYear).then((res) => {
  541. // 通过计划年度获取计划信息
  542. if (res.data !== null && res.data !== '') {
  543. this.$refs.flow.setFieldValue(
  544. 'planTitle',
  545. res.data[0].planYear + res.data[0].unitName + '审计计划'
  546. )
  547. }
  548. })
  549. }
  550. },
  551. // 初始化项目信息
  552. initProjectInfo() {
  553. const projectId = this.$refs.flow.getFieldValue('projectId')
  554. const newProjectId = this.$refs.flow.getFieldValue('newProjectId')
  555. const tempProjectId = this.$refs.flow.getFieldValue('tempProjectid')
  556. const endType = this.$refs.flow.getFieldValue('endType')
  557. const changeType = this.$refs.flow.getFieldValue('changeType')
  558. if (projectId || newProjectId || tempProjectId) {
  559. let id = newProjectId
  560. if (projectId && !newProjectId) {
  561. id = projectId
  562. }
  563. if (tempProjectId && changeType === '02') {
  564. id = tempProjectId
  565. }
  566. AuditService.getProjectInfoById(id).then((res) => {
  567. // 获取项目信息·
  568. if (res.data) {
  569. this.$refs.flow.setFieldValue('projectTitle', res.data.projectTitle)
  570. this.$refs.flow.setFieldValue('projectCode', res.data.projectCode)
  571. this.$refs.flow.setFieldValue('auditType', res.data.auditType)
  572. this.$refs.flow.setFieldValue(
  573. 'projectPrincipalId',
  574. this.initAdvancedField(
  575. res.data.projectPrincipalAccount,
  576. res.data.projectPrincipalName,
  577. 'User'
  578. )
  579. )
  580. this.$refs.flow.setFieldValue('projectPrincipalName', res.data.projectPrincipalName)
  581. this.$refs.flow.setFieldValue(
  582. 'auditedUnitIds',
  583. this.initAdvancedField(res.data.auditedUnitCodes, res.data.auditedUnitNames, 'Group')
  584. )
  585. this.$refs.flow.setFieldValue('auditedUnitNames', res.data.auditedUnitNames)
  586. if (res.data.externalUnitCodes) {
  587. this.$refs.flow.setFieldValue(
  588. 'externalUnitIds',
  589. this.initAdvancedField(
  590. res.data.externalUnitCodes,
  591. res.data.externalUnitNames,
  592. 'Group'
  593. )
  594. )
  595. // if (changeType === '03') {
  596. // this.$refs.flow.setFieldValue(
  597. // 'externalUnitIds',
  598. // JSON.stringify(
  599. // this.initAdvancedField(
  600. // res.data.externalUnitCodes,
  601. // res.data.externalUnitNames,
  602. // 'Group'
  603. // )
  604. // )
  605. // )
  606. // }
  607. this.$refs.flow.setFieldValue('externalUnitNames', res.data.externalUnitNames)
  608. }
  609. this.$refs.flow.setFieldValue('auditMode', res.data.auditMode)
  610. this.$refs.flow.setFieldValue('auditBasis', res.data.auditBasis)
  611. this.$refs.flow.setFieldValue('auditedUser', res.data.auditedUser)
  612. this.$refs.flow.setFieldValue('auditObjective', res.data.auditObjective)
  613. this.$refs.flow.setFieldValue('projectContent', res.data.projectContent)
  614. this.$refs.flow.setFieldValue('planDays', res.data.planDays)
  615. this.$refs.flow.setFieldValue('whetherFinance', res.data.whetherFinance)
  616. this.$refs.flow.setFieldValue('whetherOverseas', res.data.whetherOverseas)
  617. this.$refs.flow.setFieldValue('whetherAuditCoverage', res.data.whetherAuditCoverage)
  618. this.$refs.flow.setFieldValue(
  619. 'secondAuditDeptPerson',
  620. this.initAdvancedField(
  621. res.data.secondAuditDeptPersonAccount,
  622. res.data.secondAuditDeptPersonName,
  623. 'User'
  624. )
  625. )
  626. this.$refs.flow.setFieldValue(
  627. 'secondAuditDeptPersonName',
  628. res.data.secondAuditDeptPersonName
  629. )
  630. this.$refs.flow.setFieldValue(
  631. 'planStartTime',
  632. res.data.planStartTime === null
  633. ? res.data.planStartTime
  634. : moment(res.data.planStartTime)
  635. )
  636. this.$refs.flow.setFieldValue(
  637. 'planEndTime',
  638. res.data.planEndTime === null ? res.data.planEndTime : moment(res.data.planEndTime)
  639. )
  640. this.$refs.flow.setFieldValue(
  641. 'groupLeaderId',
  642. this.initAdvancedField(res.data.groupLeaderAccount, res.data.groupLeaderName, 'User')
  643. )
  644. this.$refs.flow.setFieldValue('groupLeaderName', res.data.groupLeaderName)
  645. this.$refs.flow.setFieldValue('projectSource', res.data.projectSource)
  646. this.$refs.flow.setFieldValue('exPersonnelNum', res.data.exPersonnelNum)
  647. if (endType === 5) {
  648. this.$refs.flow.setFieldValue(
  649. 'predictedCost',
  650. res.data.predictedCost === null
  651. ? res.data.predictedCost
  652. : parseFloat(res.data.predictedCost).toFixed(2)
  653. )
  654. } else {
  655. this.$refs.flow.setFieldValue('predictedCost', res.data.predictedCost)
  656. }
  657. this.$refs.flow.setFieldValue('projectRemarks', res.data.projectRemarks)
  658. let attachment = res.data.attachment
  659. if (!attachment.includes('value')) {
  660. attachment = '{"value": "' + attachment + '"}'
  661. }
  662. this.projectGroupId = JSON.parse(attachment).value
  663. const attachArry = []
  664. attachArry.push(attachment)
  665. this.$refs.flow.setFieldValue('attachment', attachArry)
  666. // 重新获取一下附件
  667. setTimeout(() => {
  668. if (this.$refs.planAtta) this.$refs.planAtta.getFileList()
  669. })
  670. this.$refs.flow.setFieldValue(
  671. 'title',
  672. this.$refs.flow.getFieldValue('projectTitle') + '的变更申请'
  673. )
  674. this.showAttachment = true
  675. }
  676. })
  677. } else {
  678. this.$refs.flow.setFieldValue('auditMode', '01')
  679. this.$refs.flow.setFieldValue('auditBasis', '01')
  680. this.$refs.flow.setFieldValue('projectSource', '01')
  681. this.showAttachment = true
  682. }
  683. },
  684. initDictionaryInfo() {
  685. const changeType = this.$refs.flow.getFieldValue('changeType')
  686. if (changeType === '03') {
  687. // 只有取消操作才获取数据字典类型数据
  688. axios({
  689. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_METHOD',
  690. method: 'get',
  691. }).then((res) => {
  692. if (res.status === 200) {
  693. this.auditModeOptions = res.data
  694. }
  695. })
  696. axios({
  697. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_BASIS',
  698. method: 'get',
  699. }).then((res) => {
  700. if (res.status === 200) {
  701. this.auditBasisOptions = res.data
  702. }
  703. })
  704. axios({
  705. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_SOURCE',
  706. method: 'get',
  707. }).then((res) => {
  708. if (res.status === 200) {
  709. this.projectSourceOptions = res.data
  710. }
  711. })
  712. }
  713. axios({
  714. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_TYPE',
  715. method: 'get',
  716. }).then((res) => {
  717. if (res.status === 200) {
  718. this.auditTypeOptions = res.data
  719. }
  720. })
  721. axios({
  722. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  723. method: 'get',
  724. }).then((res) => {
  725. if (res.status === 200) {
  726. this.whetherFinanceOptions = res.data
  727. }
  728. })
  729. axios({
  730. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  731. method: 'get',
  732. }).then((res) => {
  733. if (res.status === 200) {
  734. this.whetherOverseasOptions = res.data
  735. }
  736. })
  737. axios({
  738. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  739. method: 'get',
  740. }).then((res) => {
  741. if (res.status === 200) {
  742. this.whetherAuditCoverageOptions = res.data
  743. }
  744. })
  745. },
  746. // 初始化高级字段信息
  747. initAdvancedField(codeArryData, nameArryData, type) {
  748. const resultDataArry = []
  749. let codeArry = []
  750. let nameArry = []
  751. if (codeArryData !== null) {
  752. codeArry = codeArryData.split(',')
  753. }
  754. if (nameArryData != null) {
  755. nameArry = nameArryData.split(',')
  756. }
  757. for (let i = 0; i < codeArry.length; i++) {
  758. resultDataArry.push({
  759. type: type,
  760. code: codeArry[i],
  761. name: nameArry[i],
  762. })
  763. }
  764. return resultDataArry
  765. },
  766. getFormFieldValue(name) {
  767. const objArry = this.$refs.flow.getFieldValue(name)
  768. if (objArry !== undefined) {
  769. if (objArry.length > 0) {
  770. let result = ''
  771. objArry.forEach((e) => {
  772. result += e.name + ','
  773. })
  774. return result.substr(0, result.length - 1)
  775. }
  776. }
  777. return ''
  778. },
  779. getFormSelectFieldValue(name, value) {
  780. let result = ''
  781. if (value !== undefined) {
  782. if (name === 'auditType') {
  783. const resultArry = this.auditTypeOptions.filter((e) => {
  784. return e.id === value
  785. })
  786. if (resultArry.length > 0) {
  787. result = resultArry[0].name
  788. }
  789. }
  790. if (name === 'auditMode') {
  791. const resultArry = this.auditModeOptions.filter((e) => {
  792. return e.id === value
  793. })
  794. if (resultArry.length > 0) {
  795. result = resultArry[0].name
  796. }
  797. }
  798. if (name === 'auditBasis') {
  799. const resultArry = this.auditBasisOptions.filter((e) => {
  800. return e.id === value
  801. })
  802. if (resultArry.length > 0) {
  803. result = resultArry[0].name
  804. }
  805. }
  806. if (name === 'projectSource') {
  807. const resultArry = this.projectSourceOptions.filter((e) => {
  808. return e.id === value
  809. })
  810. if (resultArry.length > 0) {
  811. result = resultArry[0].name
  812. }
  813. }
  814. if (name === 'whetherFinance') {
  815. const resultArry = this.whetherFinanceOptions.filter((e) => {
  816. return e.id === value
  817. })
  818. if (resultArry.length > 0) {
  819. result = resultArry[0].name
  820. }
  821. }
  822. if (name === 'whetherOverseas') {
  823. const resultArry = this.whetherOverseasOptions.filter((e) => {
  824. return e.id === value
  825. })
  826. if (resultArry.length > 0) {
  827. result = resultArry[0].name
  828. }
  829. }
  830. if (name === 'whetherAuditCoverage') {
  831. const resultArry = this.whetherAuditCoverageOptions.filter((e) => {
  832. return e.id === value
  833. })
  834. if (resultArry.length > 0) {
  835. result = resultArry[0].name
  836. }
  837. }
  838. }
  839. return result
  840. },
  841. getFormTimeField(value) {
  842. return moment(value).format('YYYY-MM-DD')
  843. },
  844. getDay() {
  845. const planStartTime = this.$refs.flow.getFieldValue('planStartTime')
  846. const planEndTime = this.$refs.flow.getFieldValue('planEndTime')
  847. if (planStartTime !== undefined && planEndTime !== undefined) {
  848. const planDays =
  849. (new Date(moment(planEndTime).format('YYYY/MM/DD')).getTime() -
  850. new Date(moment(planStartTime).format('YYYY/MM/DD')).getTime()) /
  851. 1000 /
  852. 60 /
  853. 60 /
  854. 24
  855. this.$refs.flow.setFieldValue('planDays', planDays + 1)
  856. } else {
  857. this.$refs.flow.setFieldValue('planDays', undefined)
  858. }
  859. },
  860. setTitle(model) {
  861. this.$refs.flow.setFieldValue('title', model.projectTitle + '的变更申请')
  862. },
  863. // 展示选择列表
  864. showselectexternal() {
  865. this.modalvisible = !this.modalvisible
  866. },
  867. // 弹出窗确认
  868. handleOk() {
  869. this.showselectexternal()
  870. // 获取别选择的行信息
  871. const selectInfo = this.$refs.externalTable.getSelectedRows()
  872. const list = []
  873. selectInfo.forEach((item) => {
  874. const obj = {
  875. title: item.name,
  876. id: item.id,
  877. code: item.id,
  878. name: item.name,
  879. text: item.name,
  880. type: 'Group',
  881. props: {},
  882. }
  883. list.push(obj)
  884. })
  885. this.$refs.flow.setFieldValue('externalUnitIds', list)
  886. },
  887. // 弹出窗取消
  888. handleCancel() {
  889. this.showselectexternal()
  890. },
  891. },
  892. }
  893. </script>
  894. <style module lang="scss">
  895. @use '@/common/design' as *;
  896. .odrForm {
  897. /* :global .sd-page-title {
  898. display: none;
  899. } */
  900. :global(.header_sd-child-table_common) {
  901. right: 100px !important;
  902. }
  903. .btnexcel {
  904. position: relative;
  905. top: 4px;
  906. float: right;
  907. .batchexcel {
  908. z-index: 100;
  909. margin-left: 10px;
  910. }
  911. }
  912. :global(.ant-form-item-label > label) {
  913. width: 100% !important;
  914. white-space: normal;
  915. }
  916. :global(.ant-input-number) {
  917. width: 100% !important;
  918. }
  919. :global(.ant-form-item-label) {
  920. width: 165px !important;
  921. }
  922. }
  923. </style>