audit-planchange-form.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
  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 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: '20px',
  425. customRender: (text, record, index) => `${index + 1}`,
  426. },
  427. {
  428. dataIndex: 'id',
  429. sdHidden: true,
  430. },
  431. {
  432. title: '企业名称',
  433. dataIndex: 'name',
  434. width: '300px',
  435. },
  436. {
  437. title: '类型',
  438. dataIndex: 'category',
  439. width: '150px',
  440. },
  441. {
  442. title: '住所',
  443. dataIndex: 'address',
  444. width: '100px',
  445. },
  446. ],
  447. expressions: [],
  448. }
  449. },
  450. mounted() {
  451. this.initPlanChangeInfo()
  452. this.initProjectInfo()
  453. this.initDictionaryInfo()
  454. var _this = this
  455. logUtil.$on('modifyLogCustomData', function (modifyLogData) {
  456. _this.modifyLogCustomData(modifyLogData)
  457. })
  458. },
  459. methods: {
  460. modifyLogCustomData(modifyLogData) {
  461. // 修改modifyLogData中的元素
  462. return modifyLogData
  463. },
  464. actionBtnClick(evt, { button, FlowData }) {
  465. // if(this.$refs.flow.getFieldValue('externalUnitIds')){
  466. // this.$refs.flow.setFieldValue('externalUnitIds',JSON.stringify(this.$refs.flow.getFieldValue('externalUnitIds')))
  467. // }
  468. FlowData.processFormData.processFormPropertyValues.forEach((item) => {
  469. if (item.name === 'attachment') {
  470. item.value = this.projectGroupId
  471. }
  472. })
  473. if (button.fakeId === 'save') {
  474. evt.waitUntil(
  475. new Promise((resolve, reject) => {
  476. const auditType = this.$refs.flow.getFieldValue('auditType')
  477. if (auditType === '' || auditType === undefined || auditType === null) {
  478. // Message.warn('审计类型为空')
  479. this.$refs.flow.validateField('auditType').then((res) => {
  480. console.log(res)
  481. })
  482. evt.preventDefault()
  483. resolve()
  484. } else {
  485. resolve()
  486. }
  487. })
  488. )
  489. }
  490. },
  491. // 初始化计划变更信息
  492. initPlanChangeInfo() {
  493. let changeType = null
  494. if (JSON.stringify(this.$route.query) !== '{}') {
  495. this.oper = JSON.parse(this.$route.query.extParams).oper
  496. this.planYear = JSON.parse(this.$route.query.extParams).planYear
  497. if (this.oper === 'create') {
  498. changeType = '01'
  499. } else if (this.oper === 'edit' || this.oper === 'cancel') {
  500. if (this.oper === 'edit') {
  501. changeType = '02'
  502. }
  503. if (this.oper === 'cancel') {
  504. changeType = '03'
  505. }
  506. const projectId = JSON.parse(this.$route.query.extParams).projectId
  507. this.$refs.flow.setFieldValue('projectId', projectId)
  508. }
  509. this.$refs.flow.setFieldValue('changeType', changeType)
  510. this.$refs.flow.setFieldValue('planYear', this.planYear)
  511. AuditService.getPlanByPlanYear(this.planYear).then((res) => {
  512. // 通过计划年度获取计划信息
  513. if (res.data !== null && res.data !== '') {
  514. this.$refs.flow.setFieldValue(
  515. 'planTitle',
  516. res.data[0].planYear + res.data[0].unitName + '审计计划'
  517. )
  518. }
  519. })
  520. }
  521. },
  522. // 初始化项目信息
  523. initProjectInfo() {
  524. const projectId = this.$refs.flow.getFieldValue('projectId')
  525. const newProjectId = this.$refs.flow.getFieldValue('newProjectId')
  526. const tempProjectId = this.$refs.flow.getFieldValue('tempProjectid')
  527. const endType = this.$refs.flow.getFieldValue('endType')
  528. const changeType = this.$refs.flow.getFieldValue('changeType')
  529. if (projectId || newProjectId || tempProjectId) {
  530. let id = newProjectId
  531. if (projectId && !newProjectId) {
  532. id = projectId
  533. }
  534. if (tempProjectId && changeType === '02') {
  535. id = tempProjectId
  536. }
  537. AuditService.getProjectInfoById(id).then((res) => {
  538. // 获取项目信息·
  539. if (res.data) {
  540. this.$refs.flow.setFieldValue('projectTitle', res.data.projectTitle)
  541. this.$refs.flow.setFieldValue('projectCode', res.data.projectCode)
  542. this.$refs.flow.setFieldValue('auditType', res.data.auditType)
  543. this.$refs.flow.setFieldValue(
  544. 'projectPrincipalId',
  545. this.initAdvancedField(
  546. res.data.projectPrincipalAccount,
  547. res.data.projectPrincipalName,
  548. 'User'
  549. )
  550. )
  551. this.$refs.flow.setFieldValue('projectPrincipalName', res.data.projectPrincipalName)
  552. this.$refs.flow.setFieldValue(
  553. 'auditedUnitIds',
  554. this.initAdvancedField(res.data.auditedUnitCodes, res.data.auditedUnitNames, 'Group')
  555. )
  556. this.$refs.flow.setFieldValue('auditedUnitNames', res.data.auditedUnitNames)
  557. if (res.data.externalUnitCodes) {
  558. this.$refs.flow.setFieldValue(
  559. 'externalUnitIds',
  560. this.initAdvancedField(
  561. res.data.externalUnitCodes,
  562. res.data.externalUnitNames,
  563. 'Group'
  564. )
  565. )
  566. // if (changeType === '03') {
  567. // this.$refs.flow.setFieldValue(
  568. // 'externalUnitIds',
  569. // JSON.stringify(
  570. // this.initAdvancedField(
  571. // res.data.externalUnitCodes,
  572. // res.data.externalUnitNames,
  573. // 'Group'
  574. // )
  575. // )
  576. // )
  577. // }
  578. this.$refs.flow.setFieldValue('externalUnitNames', res.data.externalUnitNames)
  579. }
  580. this.$refs.flow.setFieldValue('auditMode', res.data.auditMode)
  581. this.$refs.flow.setFieldValue('auditBasis', res.data.auditBasis)
  582. this.$refs.flow.setFieldValue('auditedUser', res.data.auditedUser)
  583. this.$refs.flow.setFieldValue('auditObjective', res.data.auditObjective)
  584. this.$refs.flow.setFieldValue('projectContent', res.data.projectContent)
  585. this.$refs.flow.setFieldValue('planDays', res.data.planDays)
  586. this.$refs.flow.setFieldValue('whetherFinance', res.data.whetherFinance)
  587. this.$refs.flow.setFieldValue('whetherOverseas', res.data.whetherOverseas)
  588. this.$refs.flow.setFieldValue('whetherAuditCoverage', res.data.whetherAuditCoverage)
  589. this.$refs.flow.setFieldValue(
  590. 'secondAuditDeptPerson',
  591. this.initAdvancedField(
  592. res.data.secondAuditDeptPersonAccount,
  593. res.data.secondAuditDeptPersonName,
  594. 'User'
  595. )
  596. )
  597. this.$refs.flow.setFieldValue(
  598. 'secondAuditDeptPersonName',
  599. res.data.secondAuditDeptPersonName
  600. )
  601. this.$refs.flow.setFieldValue(
  602. 'planStartTime',
  603. res.data.planStartTime === null
  604. ? res.data.planStartTime
  605. : moment(res.data.planStartTime)
  606. )
  607. this.$refs.flow.setFieldValue(
  608. 'planEndTime',
  609. res.data.planEndTime === null ? res.data.planEndTime : moment(res.data.planEndTime)
  610. )
  611. this.$refs.flow.setFieldValue(
  612. 'groupLeaderId',
  613. this.initAdvancedField(res.data.groupLeaderAccount, res.data.groupLeaderName, 'User')
  614. )
  615. this.$refs.flow.setFieldValue('groupLeaderName', res.data.groupLeaderName)
  616. this.$refs.flow.setFieldValue('projectSource', res.data.projectSource)
  617. this.$refs.flow.setFieldValue('exPersonnelNum', res.data.exPersonnelNum)
  618. if (endType === 5) {
  619. this.$refs.flow.setFieldValue(
  620. 'predictedCost',
  621. res.data.predictedCost === null
  622. ? res.data.predictedCost
  623. : parseFloat(res.data.predictedCost).toFixed(2)
  624. )
  625. } else {
  626. this.$refs.flow.setFieldValue('predictedCost', res.data.predictedCost)
  627. }
  628. this.$refs.flow.setFieldValue('projectRemarks', res.data.projectRemarks)
  629. let attachment = res.data.attachment
  630. if (!attachment.includes('value')) {
  631. attachment = '{"value": "' + attachment + '"}'
  632. }
  633. this.projectGroupId = JSON.parse(attachment).value
  634. const attachArry = []
  635. attachArry.push(attachment)
  636. this.$refs.flow.setFieldValue('attachment', attachArry)
  637. // 重新获取一下附件
  638. setTimeout(() => {
  639. if (this.$refs.planAtta) this.$refs.planAtta.getFileList()
  640. })
  641. this.$refs.flow.setFieldValue(
  642. 'title',
  643. this.$refs.flow.getFieldValue('projectTitle') + '的变更申请'
  644. )
  645. this.showAttachment = true
  646. }
  647. })
  648. } else {
  649. this.$refs.flow.setFieldValue('auditMode', '01')
  650. this.$refs.flow.setFieldValue('auditBasis', '01')
  651. this.$refs.flow.setFieldValue('projectSource', '01')
  652. this.showAttachment = true
  653. }
  654. },
  655. initDictionaryInfo() {
  656. const changeType = this.$refs.flow.getFieldValue('changeType')
  657. if (changeType === '03') {
  658. // 只有取消操作才获取数据字典类型数据
  659. axios({
  660. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_METHOD',
  661. method: 'get',
  662. }).then((res) => {
  663. if (res.status === 200) {
  664. this.auditModeOptions = res.data
  665. }
  666. })
  667. axios({
  668. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_BASIS',
  669. method: 'get',
  670. }).then((res) => {
  671. if (res.status === 200) {
  672. this.auditBasisOptions = res.data
  673. }
  674. })
  675. axios({
  676. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_SOURCE',
  677. method: 'get',
  678. }).then((res) => {
  679. if (res.status === 200) {
  680. this.projectSourceOptions = res.data
  681. }
  682. })
  683. }
  684. axios({
  685. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=PRODUCT_IAM_AUDIT_TYPE',
  686. method: 'get',
  687. }).then((res) => {
  688. if (res.status === 200) {
  689. this.auditTypeOptions = res.data
  690. }
  691. })
  692. axios({
  693. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  694. method: 'get',
  695. }).then((res) => {
  696. if (res.status === 200) {
  697. this.whetherFinanceOptions = res.data
  698. }
  699. })
  700. axios({
  701. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  702. method: 'get',
  703. }).then((res) => {
  704. if (res.status === 200) {
  705. this.whetherOverseasOptions = res.data
  706. }
  707. })
  708. axios({
  709. url: 'api/xcoa-mobile/v1/iam-law/dictionary?key=WHETHER',
  710. method: 'get',
  711. }).then((res) => {
  712. if (res.status === 200) {
  713. this.whetherAuditCoverageOptions = res.data
  714. }
  715. })
  716. },
  717. // 初始化高级字段信息
  718. initAdvancedField(codeArryData, nameArryData, type) {
  719. const resultDataArry = []
  720. let codeArry = []
  721. let nameArry = []
  722. if (codeArryData !== null) {
  723. codeArry = codeArryData.split(',')
  724. }
  725. if (nameArryData != null) {
  726. nameArry = nameArryData.split(',')
  727. }
  728. for (let i = 0; i < codeArry.length; i++) {
  729. resultDataArry.push({
  730. type: type,
  731. code: codeArry[i],
  732. name: nameArry[i],
  733. })
  734. }
  735. return resultDataArry
  736. },
  737. getFormFieldValue(name) {
  738. const objArry = this.$refs.flow.getFieldValue(name)
  739. if (objArry !== undefined) {
  740. if (objArry.length > 0) {
  741. let result = ''
  742. objArry.forEach((e) => {
  743. result += e.name + ','
  744. })
  745. return result.substr(0, result.length - 1)
  746. }
  747. }
  748. return ''
  749. },
  750. getFormSelectFieldValue(name, value) {
  751. let result = ''
  752. if (value !== undefined) {
  753. if (name === 'auditType') {
  754. const resultArry = this.auditTypeOptions.filter((e) => {
  755. return e.id === value
  756. })
  757. if (resultArry.length > 0) {
  758. result = resultArry[0].name
  759. }
  760. }
  761. if (name === 'auditMode') {
  762. const resultArry = this.auditModeOptions.filter((e) => {
  763. return e.id === value
  764. })
  765. if (resultArry.length > 0) {
  766. result = resultArry[0].name
  767. }
  768. }
  769. if (name === 'auditBasis') {
  770. const resultArry = this.auditBasisOptions.filter((e) => {
  771. return e.id === value
  772. })
  773. if (resultArry.length > 0) {
  774. result = resultArry[0].name
  775. }
  776. }
  777. if (name === 'projectSource') {
  778. const resultArry = this.projectSourceOptions.filter((e) => {
  779. return e.id === value
  780. })
  781. if (resultArry.length > 0) {
  782. result = resultArry[0].name
  783. }
  784. }
  785. if (name === 'whetherFinance') {
  786. const resultArry = this.whetherFinanceOptions.filter((e) => {
  787. return e.id === value
  788. })
  789. if (resultArry.length > 0) {
  790. result = resultArry[0].name
  791. }
  792. }
  793. if (name === 'whetherOverseas') {
  794. const resultArry = this.whetherOverseasOptions.filter((e) => {
  795. return e.id === value
  796. })
  797. if (resultArry.length > 0) {
  798. result = resultArry[0].name
  799. }
  800. }
  801. if (name === 'whetherAuditCoverage') {
  802. const resultArry = this.whetherAuditCoverageOptions.filter((e) => {
  803. return e.id === value
  804. })
  805. if (resultArry.length > 0) {
  806. result = resultArry[0].name
  807. }
  808. }
  809. }
  810. return result
  811. },
  812. getFormTimeField(value) {
  813. return moment(value).format('YYYY-MM-DD')
  814. },
  815. getDay() {
  816. const planStartTime = this.$refs.flow.getFieldValue('planStartTime')
  817. const planEndTime = this.$refs.flow.getFieldValue('planEndTime')
  818. if (planStartTime !== undefined && planEndTime !== undefined) {
  819. const planDays =
  820. (new Date(moment(planEndTime).format('YYYY/MM/DD')).getTime() -
  821. new Date(moment(planStartTime).format('YYYY/MM/DD')).getTime()) /
  822. 1000 /
  823. 60 /
  824. 60 /
  825. 24
  826. this.$refs.flow.setFieldValue('planDays', planDays + 1)
  827. } else {
  828. this.$refs.flow.setFieldValue('planDays', undefined)
  829. }
  830. },
  831. setTitle(model) {
  832. this.$refs.flow.setFieldValue('title', model.projectTitle + '的变更申请')
  833. },
  834. // 展示选择列表
  835. showselectexternal() {
  836. this.modalvisible = !this.modalvisible
  837. },
  838. // 弹出窗确认
  839. handleOk() {
  840. this.showselectexternal()
  841. // 获取别选择的行信息
  842. const selectInfo = this.$refs.externalTable.getSelectedRows()
  843. const list = []
  844. selectInfo.forEach((item) => {
  845. const obj = {
  846. title: item.name,
  847. id: item.id,
  848. code: item.id,
  849. name: item.name,
  850. text: item.name,
  851. type: 'Group',
  852. props: {},
  853. }
  854. list.push(obj)
  855. })
  856. this.$refs.flow.setFieldValue('externalUnitIds', list)
  857. },
  858. // 弹出窗取消
  859. handleCancel() {
  860. this.showselectexternal()
  861. },
  862. },
  863. }
  864. </script>
  865. <style module lang="scss">
  866. @use '@/common/design' as *;
  867. .odrForm {
  868. /* :global .sd-page-title {
  869. display: none;
  870. } */
  871. :global(.header_sd-child-table_common) {
  872. right: 100px !important;
  873. }
  874. .btnexcel {
  875. position: relative;
  876. top: 4px;
  877. float: right;
  878. .batchexcel {
  879. z-index: 100;
  880. margin-left: 10px;
  881. }
  882. }
  883. :global(.ant-form-item-label > label) {
  884. width: 100% !important;
  885. white-space: normal;
  886. }
  887. :global(.ant-input-number) {
  888. width: 100% !important;
  889. }
  890. :global(.ant-form-item-label) {
  891. width: 165px !important;
  892. }
  893. }
  894. </style>