contract-detail.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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="activeNo" finish-status="success" 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. <el-collapse v-model="activeNames">
  32. <el-collapse-item name="1">
  33. <template slot="title">
  34. <h3 style="color: blue">基本信息:</h3>
  35. </template>
  36. <e-desc column="3">
  37. <e-desc-item label="评审编码">{{dataForm.reCode}}</e-desc-item>
  38. <e-desc-item label="沟通编码">{{dataForm.coCode}}</e-desc-item>
  39. <e-desc-item label="评审类别">{{dataForm.reTypeValue}}</e-desc-item>
  40. <e-desc-item label="客户名称">{{dataForm.customerName}}</e-desc-item>
  41. <e-desc-item label="联系人">{{dataForm.contact}}</e-desc-item>
  42. <e-desc-item label="合同号">{{dataForm.contractCode}}</e-desc-item>
  43. <e-desc-item label="备注说明" span="3">{{dataForm.notes}}</e-desc-item>
  44. <e-desc-item label="与物料有关要求的明确性、符合性" span="3">
  45. 1、顾客对物料的要求与潜在要求是否明确 -- {{ dataForm.part11 && Number(dataForm.part11) === 1 ? '是' : '否' }}
  46. <br>
  47. 2、合同的合法性、完性整性、规范性 -- {{ dataForm.part12 && Number(dataForm.part12) === 1 ? '是' : '否' }}
  48. </e-desc-item>
  49. <e-desc-item label="风险控制能力" span="3">
  50. 1、图样和技术要求能否满足生产要求,物料服务和培训能否满足要求 -- {{ dataForm.part21 && Number(dataForm.part21) === 1 ? '是' : '否' }}
  51. <br>
  52. 2、外购器材风险的控制情况,能否保障生产 -- {{ dataForm.part22 && Number(dataForm.part22) === 1 ? '是' : '否' }}
  53. <br>
  54. 3、质量控制情况能否满足要求(生产、检验和验收设备能否满足要求) -- {{ dataForm.part23 && Number(dataForm.part23) === 1 ? '是' : '否' }}
  55. <br>
  56. 4、财务能否满足生产要求(成本、价格、结算方式与付款能否接受) -- {{ dataForm.part24 && Number(dataForm.part24) === 1 ? '是' : '否' }}
  57. <br>
  58. 5、规格数量能否满足,运输、交货方式能否满足,生产进度能否满足 -- {{ dataForm.part25 && Number(dataForm.part25) === 1 ? '是' : '否' }}
  59. </e-desc-item>
  60. <e-desc-item label="满足规定要求的能力" span="3">
  61. 项目组对履行承诺的风险(包括技术、质量、生产能力、进度、经费)识别: {{ Number(dataForm.part31) === 1 ? '高' : Number(dataForm.part31) === 2 ? '中' : '低' }}
  62. <br>
  63. 控制能力: {{ Number(dataForm.part32) === 1 ? '可控' : Number(dataForm.part32) === 2 ? '基本可控' : '不可控' }}
  64. <br>
  65. 采取措施: {{ dataForm.takeStep || '无' }}
  66. </e-desc-item>
  67. </e-desc>
  68. </el-collapse-item>
  69. <el-collapse-item name="2">
  70. <template slot="title">
  71. <h3 style="color: blue">合同评审表:</h3>
  72. </template>
  73. <upload-component :display="true" :display-title="false" :accept="'*'" :file-obj-list="fileList"/>
  74. </el-collapse-item>
  75. <el-collapse-item name="3">
  76. <template slot="title">
  77. <h3 style="color: blue">合同沟通信息:</h3>
  78. </template>
  79. <div style="margin-top: 20px" v-if="isCommVisible">
  80. <communicate-detail ref="commDetail"/>
  81. </div>
  82. </el-collapse-item>
  83. </el-collapse>
  84. </div>
  85. <span slot="footer" class="dialog-footer">
  86. <el-button @click="onChose">返回</el-button>
  87. </span>
  88. </div>
  89. <!-- </el-dialog> -->
  90. </template>
  91. <script>
  92. import EDesc from '../common/e-desc'
  93. import EDescItem from '../common/e-desc-item'
  94. import { geTreDetail } from '@/api/cus'
  95. import uploadComponent from '../common/upload-component'
  96. import { dealStepData, dealStepLogs } from '@/api/util'
  97. import ApproveComponent from '../common/approve-component'
  98. import CommunicateDetail from '@/views/modules/cus/communicate-detail'
  99. export default {
  100. name: 'contract-detail',
  101. components: {
  102. CommunicateDetail,
  103. EDesc,
  104. EDescItem,
  105. uploadComponent,
  106. ApproveComponent
  107. },
  108. data () {
  109. return {
  110. activeNames: ['1', '2', '3'],
  111. visible: false,
  112. isCommVisible: false,
  113. isFlow: false,
  114. id: 0,
  115. dataForm: {},
  116. cusRCommProductVOS: [],
  117. fileList: [],
  118. fileList1: [],
  119. activeNo: 0,
  120. stepList: [],
  121. logList: []
  122. }
  123. },
  124. methods: {
  125. onChose () {
  126. this.isCommVisible = false
  127. this.$emit('onChose')
  128. },
  129. async init (id, businessType) {
  130. this.visible = true
  131. this.isFlow = !!(businessType && businessType !== '')
  132. this.id = id || 0
  133. this.dataForm = {}
  134. this.cusRCommProductVOS = []
  135. this.fileList = []
  136. this.fileList1 = []
  137. this.stepList = []
  138. this.logList = []
  139. this.getDetails(businessType)
  140. },
  141. getDetails (businessType) {
  142. geTreDetail(this.id).then(({data}) => {
  143. if (data && data.code === '200') {
  144. this.dataForm = data.data
  145. // 流程图展示
  146. if (data.data.workFlowBusinessExt) {
  147. dealStepData(data.data.workFlowBusinessExt.workFlowProcessStepList, this.stepList)
  148. dealStepLogs(data.data.workFlowBusinessExt.processLogList, this.logList)
  149. }
  150. if (data.data.workFlowProcessStepList) {
  151. this.activeNo = Number(data.data.workFlowProcessStepList.activeNo)
  152. }
  153. // 合同评审表附件显示
  154. this.fileList = []
  155. data.data.attachList.forEach((item) => {
  156. this.fileList.push({
  157. name: item.fileName,
  158. url: item.url,
  159. id: item.url
  160. })
  161. })
  162. // 沟通信息表附件显示
  163. this.fileList1 = []
  164. if (data.data.communicationAttachList) {
  165. data.data.communicationAttachList.forEach((item) => {
  166. this.fileList1.push({
  167. name: item.fileName,
  168. url: item.url,
  169. id: item.url
  170. })
  171. })
  172. }
  173. // 获取沟通详情
  174. if (data.data.cusCommunicationExt) {
  175. let id = data.data.cusCommunicationExt.coId
  176. this.isCommVisible = true
  177. this.$nextTick(() => {
  178. this.$refs.commDetail.init(id, null, true)
  179. })
  180. }
  181. // 初始化审批Form
  182. this.showApproveForm(businessType, this.id)
  183. }
  184. })
  185. },
  186. // 初始化审批Form
  187. showApproveForm (businessType, businessId) {
  188. if (this.isFlow) {
  189. this.$nextTick(() => {
  190. this.$refs.approve.init(businessType, businessId)
  191. })
  192. }
  193. },
  194. // 审批完成
  195. approveFinished () {
  196. this.onChose()
  197. this.$emit('approveFinished')
  198. }
  199. }
  200. }
  201. </script>
  202. <style scoped>
  203. .my-line{
  204. border-bottom: 1px solid #c0c4cc;
  205. margin-bottom: 10px;
  206. }
  207. .title{
  208. padding: 10px 0 ;
  209. }
  210. </style>