cube-contract-form.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <template>
  2. <audit-form-top-banner :handel-save-form="saveForm" :form-data="mode" @handelSaveForm="saveForm">
  3. <sd-detail-form
  4. ref="docform"
  5. form-id="iamCubeContract"
  6. page-id="cube/contract/iamCubeContract"
  7. :record-id="this.$route.query.record ? parseInt(this.$route.query.record) : null"
  8. :class="$style.form"
  9. @close="close(true)"
  10. @saved="saved"
  11. @sdFormReady="sdFormReady"
  12. >
  13. <template v-slot="{ model, fields }">
  14. <table
  15. ><tr
  16. ><td style="padding-left:5px;border:none">
  17. <audit-advanced-group
  18. :expand="cubeExpand"
  19. :expand-str="'cubeExpand'"
  20. :group-label="'基本信息'"
  21. tablestyle="''"
  22. @changedClick="changedClick"
  23. ></audit-advanced-group> </td></tr
  24. ></table>
  25. <table v-show="cubeExpand">
  26. <colgroup>
  27. <col style="width: 200px;" />
  28. <col />
  29. <col style="width: 200px;" />
  30. <col />
  31. </colgroup>
  32. <tr>
  33. <!-- 合同名称 -->
  34. <sd-form-item-td name="contractName" :colspan="3" />
  35. </tr>
  36. <tr>
  37. <!-- 合同正文 -->
  38. <sd-form-item-td name="contractFile" :colspan="3" />
  39. </tr>
  40. <tr>
  41. <!-- 合同编号 -->
  42. <sd-form-item-td name="contractCode" />
  43. <!-- 合同类型 -->
  44. <sd-form-item-td name="contractTypeCode" label="合同类型">
  45. <template v-slot:read-and-edit>
  46. <a-select
  47. v-model="model.contractTypeCode"
  48. :options="typeOptions"
  49. @change="typeChange"
  50. ></a-select>
  51. </template>
  52. </sd-form-item-td>
  53. <!-- 合同类型中文 -->
  54. <sd-form-item-td name="contractType" :hidden="true"> </sd-form-item-td>
  55. </tr>
  56. <tr>
  57. <!-- 合同金额 -->
  58. <sd-form-item-td name="contractAmount">
  59. <a-input-number
  60. v-model="model.contractAmount"
  61. :min="0"
  62. :precision="2"
  63. style="width: 100%;"
  64. ></a-input-number>
  65. <template v-slot:read>
  66. {{
  67. model.contractAmount === undefined
  68. ? model.contractAmount
  69. : model.contractAmount.toFixed(2)
  70. }}
  71. </template>
  72. </sd-form-item-td>
  73. <!-- 签订日期 -->
  74. <sd-form-item-td name="signDate" />
  75. </tr>
  76. <tr>
  77. <!-- 合作方名称 -->
  78. <sd-form-item-td name="partnerName" :colspan="3" />
  79. </tr>
  80. </table>
  81. </template>
  82. </sd-detail-form>
  83. </audit-form-top-banner>
  84. </template>
  85. <script>
  86. import { sdLocalStorage } from '@/common/services/storage-service'
  87. import { Modal } from '@/common/one-ui'
  88. import cubeServices from '@product/iam/cube/cube-services'
  89. import axios from '@/common/services/axios-instance'
  90. import { Message } from 'ant-design-vue'
  91. import crossWindowWatcher from '@/common/services/cross-window-watcher'
  92. import auditFormTopBanner from '../../components/audit-form-top-banner'
  93. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  94. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  95. import components from './_import-components/cube-contract-form-import'
  96. export default {
  97. name: 'CubeContractForm',
  98. metaInfo: {
  99. title: '合同信息录入',
  100. },
  101. components: {
  102. ...components,
  103. auditAdvancedGroup,
  104. auditFormTopBanner,
  105. },
  106. mixins: [auditAdvancedGroupMixins],
  107. data() {
  108. return {
  109. mode: null,
  110. cubeExpand: true,
  111. typeOptions: [],
  112. }
  113. },
  114. created() {},
  115. methods: {
  116. // 合同类型选择后,赋值中文
  117. typeChange(val) {
  118. const text = this.typeOptions.find((item) => {
  119. return item.value === val
  120. }).label
  121. this.$refs.docform.setFieldValue('contractType', text)
  122. },
  123. // 页面加载完成后
  124. sdFormReady() {
  125. this.mode = this.$refs.docform.formData.mode
  126. cubeServices.checkCubeToken('review').then((res) => {
  127. if (!res) {
  128. Modal.warning({
  129. title: '提示',
  130. content: '未开启CUBE集成功能参数或单点认证失败,请联系管理员',
  131. })
  132. return false
  133. }
  134. const cubeJson = JSON.parse(sdLocalStorage.getItem('cube') || '{}')
  135. axios({
  136. url:
  137. 'api/xcoa-mobile/v1/iamcubecontract/findFileCode?accessToken=' + cubeJson.review_token,
  138. }).then((res) => {
  139. this.typeOptions = res.data.map((item) => {
  140. return {
  141. value: item.code,
  142. label: item.text,
  143. }
  144. })
  145. })
  146. })
  147. },
  148. close(flag) {
  149. crossWindowWatcher.notifyChange(this.$route.fullPath, flag)
  150. window.close()
  151. },
  152. // 保存
  153. saveForm() {
  154. this.$refs.docform.validateFields().then(() => {
  155. Message.success('保存成功').then(() => {
  156. this.$refs.docform.saveBtnClick()
  157. })
  158. })
  159. },
  160. saved() {
  161. this.close(true)
  162. },
  163. },
  164. }
  165. </script>
  166. <style module lang="scss">
  167. @import '@/webflow/sd-flow-form.scss';
  168. </style>