contract-detail.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <!-- <el-dialog
  3. title="查看"
  4. width="70%"
  5. :close-on-click-modal="false"
  6. :visible.sync="visible"> -->
  7. <div>
  8. <div class="my-title">查看</div>
  9. <div style="margin-left: 20px;margin-right: 20px">
  10. <!-- 工作流 -->
  11. <div v-show="dataForm.workFlowBusinessExt">
  12. <el-steps :active="dataForm.workFlowBusinessExt&&dataForm.workFlowBusinessExt.workFlowProcessStepList?dataForm.workFlowBusinessExt.workFlowProcessStepList.length + 2:0" align-center style="margin-bottom: 20px">
  13. <template v-for="(item, i) in stepList">
  14. <el-step :icon="item.icon" :title="item.title" :description="item.description"></el-step>
  15. </template>
  16. </el-steps>
  17. <el-collapse style="margin-bottom: 20px">
  18. <el-collapse-item>
  19. <template slot="title">
  20. <span style="color: red">审批日志(展开查看更多):</span>
  21. </template>
  22. <template v-for="(item, i) in logList">
  23. <div>{{++i}}:{{item.approverName}} {{item.createTime}} {{item.approvalValue}}</div>
  24. </template>
  25. </el-collapse-item>
  26. </el-collapse>
  27. </div>
  28. <div v-if="isFlow">
  29. <approve-component ref="approve" @approveFinished="approveFinished"/>
  30. </div>
  31. <e-desc title="基本信息" column="3">
  32. <e-desc-item label="评审编码">{{dataForm.reCode}}</e-desc-item>
  33. <e-desc-item label="沟通编码">{{dataForm.coCode}}</e-desc-item>
  34. <e-desc-item label="评审类别">{{dataForm.reTypeValue}}</e-desc-item>
  35. <e-desc-item label="客户名称">{{dataForm.customerName}}</e-desc-item>
  36. <e-desc-item label="联系人" span="2">{{dataForm.bizManagerName}}</e-desc-item>
  37. <e-desc-item label="备注说明" span="3">{{dataForm.notes}}</e-desc-item>
  38. <e-desc-item label="与产品有关要求的明确性、符合性" span="3">
  39. 1、顾客对产品的要求与潜在要求是否明确 -- {{ dataForm.part11 ? '是' : '否' }}
  40. <br>
  41. 2、合同的合法性、完性整性、规范性 -- {{ dataForm.part12 ? '是' : '否' }}
  42. </e-desc-item>
  43. <e-desc-item label="风险控制能力" span="3">
  44. 1、图样和技术要求能否满足生产要求,产品服务和培训能否满足要求 -- {{ dataForm.part21 ? '是' : '否' }}
  45. <br>
  46. 2、外购器材风险的控制情况,能否保障生产 -- {{ dataForm.part22 ? '是' : '否' }}
  47. <br>
  48. 3、质量控制情况能否满足要求(生产、检验和验收设备能否满足要求) -- {{ dataForm.part23 ? '是' : '否' }}
  49. <br>
  50. 4、财务能否满足生产要求(成本、价格、结算方式与付款能否接受) -- {{ dataForm.part24 ? '是' : '否' }}
  51. <br>
  52. 5、规格数量能否满足,运输、交货方式能否满足,生产进度能否满足 -- {{ dataForm.part25 ? '是' : '否' }}
  53. </e-desc-item>
  54. <e-desc-item label="满足规定要求的能力" span="3">
  55. 项目组对履行承诺的风险(包括技术、质量、生产能力、进度、经费)识别: {{ dataForm.part31 === 1 ? '高' : dataForm.part31 === 2 ? '中' : '低' }}
  56. <br>
  57. 控制能力: {{ dataForm.part32 === 1 ? '可控' : dataForm.part32 === 2 ? '基本可控' : '不可控' }}
  58. <br>
  59. 采取措施: {{ dataForm.takeStep || '无' }}
  60. </e-desc-item>
  61. </e-desc>
  62. <e-desc title="沟通信息表附件">
  63. <upload-component :display="true" :display-title="false" :accept="'*'" :file-obj-list="fileList1"/>
  64. </e-desc>
  65. <e-desc title="合同评审表">
  66. <upload-component :display="true" :display-title="false" :accept="'*'" :file-obj-list="fileList"/>
  67. </e-desc>
  68. </div>
  69. <span slot="footer" class="dialog-footer">
  70. <el-button @click="onChose">返回</el-button>
  71. </span>
  72. </div>
  73. <!-- </el-dialog> -->
  74. </template>
  75. <script>
  76. import EDesc from '../common/e-desc'
  77. import EDescItem from '../common/e-desc-item'
  78. import { geTreDetail } from '@/api/cus'
  79. import uploadComponent from '../common/upload-component'
  80. import { dealStepData, dealStepLogs } from '@/api/util'
  81. import ApproveComponent from '../common/approve-component'
  82. export default {
  83. name: 'contract-detail',
  84. components: {
  85. EDesc, EDescItem, uploadComponent, ApproveComponent
  86. },
  87. data () {
  88. return {
  89. visible: false,
  90. isFlow: false,
  91. id: 0,
  92. dataForm: {},
  93. cusRCommProductVOS: [],
  94. fileList: [],
  95. fileList1: [],
  96. stepList: [],
  97. logList: []
  98. }
  99. },
  100. methods: {
  101. onChose () {
  102. this.$emit('onChose')
  103. },
  104. async init (id, businessType) {
  105. this.visible = true
  106. this.isFlow = !!(businessType && businessType !== '')
  107. this.id = id || 0
  108. this.dataForm = {}
  109. this.cusRCommProductVOS = []
  110. this.fileList = []
  111. this.fileList1 = []
  112. this.stepList = []
  113. this.logList = []
  114. this.getDetails(businessType)
  115. },
  116. getDetails (businessType) {
  117. geTreDetail(this.id).then(({data}) => {
  118. if (data && data.code === '200') {
  119. this.dataForm = data.data
  120. // 流程图展示
  121. if (data.data.workFlowBusinessExt) {
  122. dealStepData(data.data.workFlowBusinessExt.workFlowProcessStepList, this.stepList)
  123. dealStepLogs(data.data.workFlowBusinessExt.processLogList, this.logList)
  124. }
  125. // 合同评审表附件显示
  126. this.fileList = []
  127. data.data.attachList.forEach((item) => {
  128. this.fileList.push({
  129. name: item.fileName,
  130. url: item.url,
  131. id: item.url
  132. })
  133. })
  134. // 沟通信息表附件显示
  135. this.fileList1 = []
  136. data.data.communicationAttachList.forEach((item) => {
  137. this.fileList1.push({
  138. name: item.fileName,
  139. url: item.url,
  140. id: item.url
  141. })
  142. })
  143. // 初始化审批Form
  144. this.showApproveForm(businessType, this.id)
  145. }
  146. })
  147. },
  148. // 初始化审批Form
  149. showApproveForm (businessType, businessId) {
  150. if (this.isFlow) {
  151. this.$nextTick(() => {
  152. this.$refs.approve.init(businessType, businessId)
  153. })
  154. }
  155. },
  156. // 审批完成
  157. approveFinished () {
  158. this.onChose()
  159. this.$emit('approveFinished')
  160. }
  161. }
  162. }
  163. </script>
  164. <style scoped>
  165. .my-line{
  166. border-bottom: 1px solid #c0c4cc;
  167. margin-bottom: 10px;
  168. }
  169. .title{
  170. padding: 10px 0 ;
  171. }
  172. </style>