audit-dossier-form.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <audit-form-top-banner
  3. :handel-save-form="filingflag ? saveForm : null"
  4. @handelSaveForm="saveForm"
  5. >
  6. <sd-detail-form
  7. ref="docform"
  8. form-id="iamDossierData"
  9. page-id="audit/archives/iamDossierData"
  10. :record-id="this.$route.query.record ? parseInt(this.$route.query.record) : null"
  11. :class="$style.form"
  12. :read-only="readOnly"
  13. @close="close(true)"
  14. @saved="saved"
  15. >
  16. <template v-slot="{ model, fields }">
  17. <table>
  18. <tr>
  19. <td style="border:none;padding-left:5px">
  20. <audit-advanced-group
  21. :expand="templateExpand"
  22. :expand-str="'templateExpand'"
  23. :group-label="'基本信息'"
  24. tablestyle="''"
  25. @changedClick="changedClick"
  26. ></audit-advanced-group>
  27. </td>
  28. </tr>
  29. </table>
  30. <table v-show="templateExpand">
  31. <tr>
  32. <!-- 文件名称 -->
  33. <sd-form-item-td name="docTitle" />
  34. <!-- 文件编号 -->
  35. <sd-form-item-td name="oanumber" />
  36. </tr>
  37. <tr>
  38. <!-- 备注 -->
  39. <sd-form-item-td name="remarks" :colspan="3">
  40. <a-textarea v-model="model.remarks" :rows="3" />
  41. </sd-form-item-td>
  42. </tr>
  43. <tr>
  44. <!-- 附件 -->
  45. <sd-form-item-td name="attachment" :colspan="3">
  46. <template v-slot:read-and-edit="{ editable }">
  47. <sd-attachment
  48. v-model="model.attachment"
  49. :group-id="JSON.parse(fields.attachment.value).value"
  50. :read-only="!editable"
  51. ></sd-attachment>
  52. </template>
  53. </sd-form-item-td>
  54. </tr>
  55. <tr>
  56. <!-- 编制人员 -->
  57. <sd-form-item-td name="creatorName" />
  58. <!-- 编制日期 -->
  59. <sd-form-item-td name="creationTime" />
  60. </tr>
  61. </table>
  62. </template>
  63. </sd-detail-form>
  64. </audit-form-top-banner>
  65. </template>
  66. <script>
  67. import { getUserInfo } from '@/common/store-mixin'
  68. import axios from '@/common/services/axios-instance'
  69. import crossWindowWatcher from '@/common/services/cross-window-watcher'
  70. import auditFormTopBanner from '../../components/audit-form-top-banner'
  71. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  72. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  73. import components from './_import-components/audit-dossier-form-import'
  74. export default {
  75. name: 'AuditDossierForm',
  76. metaInfo: {
  77. title: '案卷资料',
  78. },
  79. components: {
  80. ...components,
  81. auditAdvancedGroup,
  82. auditFormTopBanner,
  83. },
  84. mixins: [auditAdvancedGroupMixins],
  85. data() {
  86. return {
  87. saveFlag: true,
  88. filingflag: true,
  89. templateExpand: true,
  90. readOnly: false,
  91. }
  92. },
  93. created() {
  94. const userInfo = getUserInfo()
  95. const userInfoName = this.$route.query.userInfoName
  96. const fileState = this.$route.query.fileState
  97. const fromFlag = this.$route.query.fromFlag
  98. if (fromFlag === 'projectList') {
  99. this.readOnly = false
  100. this.filingflag = true
  101. } else if (userInfo.name === userInfoName) {
  102. if (fileState === 'FILING') {
  103. this.readOnly = false
  104. this.filingflag = true
  105. } else {
  106. this.readOnly = true
  107. this.filingflag = false
  108. }
  109. } else {
  110. axios({
  111. url: 'api/xcoa-mobile/v1/iamarchivesmaintain/findHasPermission',
  112. method: 'post',
  113. }).then((res) => {
  114. if (res.data !== true || fileState !== 'FILING') {
  115. this.readOnly = true
  116. this.filingflag = false
  117. }
  118. })
  119. }
  120. },
  121. methods: {
  122. close(flag) {
  123. crossWindowWatcher.notifyChange(this.$route.fullPath, flag)
  124. window.close()
  125. },
  126. // 保存
  127. saveForm() {
  128. this.$refs.docform.validateFields().then(() => {
  129. const archivesId = this.$route.query.archivesId
  130. const parentId = this.$route.query.parentId
  131. this.$refs.docform.setFieldValue('archivesId', archivesId)
  132. this.$refs.docform.setFieldValue('parentId', parentId)
  133. this.$refs.docform.saveBtnClick()
  134. })
  135. },
  136. saved() {
  137. this.close(true)
  138. },
  139. },
  140. }
  141. </script>
  142. <style module lang="scss">
  143. @import '@/webflow/sd-flow-form.scss';
  144. </style>