detail.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <div class="yemiansize">
  3. <el-tabs v-model="activeName" type="card" :lazy="true" @tab-click="handleClick">
  4. <el-tab-pane label="工单信息" name="workOrderInfo" key="workOrderInfo"> </el-tab-pane>
  5. <el-tab-pane label="操作明细" name="operationDetails" key="operationDetails"> </el-tab-pane>
  6. <el-tab-pane label="通话记录" name="CallLog" key="CallLog"> </el-tab-pane>
  7. <el-tab-pane label="完工明细" name="detailsCompletion" key="detailsCompletion"></el-tab-pane>
  8. <el-tab-pane label="支付费用" name="payFee" key="payFee"></el-tab-pane>
  9. <el-tab-pane v-if="EvaluationShow" label="评价信息" name="Evaluation" key="Evaluation"> </el-tab-pane>
  10. <el-tab-pane v-if="SettleAccountsShow" label="费用结算" name="SettleAccounts" key="SettleAccounts"> </el-tab-pane>
  11. <el-tab-pane v-if="PartsApplicationShow" label="配件申请" name="PartsApplication" key="PartsApplication">
  12. </el-tab-pane>
  13. </el-tabs>
  14. <div class="view_div">
  15. <div
  16. :style="{
  17. height: activeName === 'workOrderInfo' ? '100%' : '0px',
  18. overflow: activeName === 'workOrderInfo' ? '' : 'hidden'
  19. }"
  20. >
  21. <workOrderInfo :id="id" ref="workOrderInfo" :workOrderType="workOrderType" />
  22. </div>
  23. <OperationDetail v-if="activeName == 'operationDetails'" :id="id" ref="operationDetails" />
  24. <CallLog v-if="activeName == 'CallLog'" :id="id" ref="CallLog" />
  25. <CompletionDetails v-if="activeName == 'detailsCompletion'" :id="id" ref="detailsCompletion" />
  26. <Payment v-if="activeName == 'payFee'" :id="id" ref="payFee" :workOrderType="workOrderType" />
  27. <Evaluation v-if="activeName == 'Evaluation' && EvaluationShow" :id="id" ref="Evaluation" />
  28. <SettleAccounts v-if="activeName == 'SettleAccounts' && SettleAccountsShow" :id="id" ref="SettleAccounts" />
  29. <PartsApplication
  30. v-if="activeName == 'PartsApplication' && PartsApplicationShow"
  31. :id="id"
  32. ref="PartsApplication"
  33. />
  34. </div>
  35. </div>
  36. </template>
  37. <script>
  38. import workOrderInfo from './detailModule/workOrderInfo/index.vue'
  39. import OperationDetail from './detailModule/OperationDetail/index.vue'
  40. import CompletionDetails from './detailModule/CompletionDetails/index.vue'
  41. import Payment from './detailModule/Payment/index.vue'
  42. import Evaluation from './detailModule/Evaluation/index.vue'
  43. import SettleAccounts from './detailModule/SettleAccounts/index.vue'
  44. import PartsApplication from './detailModule/PartsApplication/index.vue'
  45. import CallLog from './detailModule/CallLog/index.vue'
  46. import { orderBaseDetail } from '@/api/workOrderPool.js'
  47. export default {
  48. components: {
  49. workOrderInfo,
  50. OperationDetail,
  51. CompletionDetails,
  52. Payment,
  53. Evaluation,
  54. SettleAccounts,
  55. PartsApplication,
  56. CallLog
  57. },
  58. props: {
  59. id: {
  60. type: [String, Number],
  61. default: null
  62. },
  63. workOrderType: {
  64. type: [Number],
  65. default: null
  66. }
  67. },
  68. data() {
  69. return {
  70. activeName: this?.$route?.params?.pagePam || 'workOrderInfo',
  71. EvaluationShow: false,
  72. SettleAccountsShow: false,
  73. PartsApplicationShow: true,
  74. isThreeOrder: false
  75. }
  76. },
  77. created() {
  78. orderBaseDetail({
  79. orderBaseId: this.id
  80. }).then(res => {
  81. this.isThreeOrder = res?.data?.isThreeOrder
  82. if (
  83. !['DYY'].includes(res?.data?.orderStatus) &&
  84. ![
  85. 'DSHPG',
  86. 'CJ',
  87. 'YPD',
  88. 'DXSPD',
  89. 'DZBPG',
  90. 'DWDSPGP',
  91. 'DXSSPGP',
  92. 'DTJXSSPGP',
  93. 'DZBSPGP',
  94. 'DFZXPD',
  95. 'DFZXSPGP',
  96. 'XSBH',
  97. 'TJXSBH',
  98. 'ZBBH',
  99. 'FZXBH',
  100. 'FL'
  101. ].includes(res?.data?.orderStatus) &&
  102. !['DWDPG', 'DWDPD', 'WDBH'].includes(res?.data?.orderStatus) &&
  103. !['DJD', 'DSM', 'YZP'].includes(res?.data?.orderStatus) &&
  104. !['FWZ', 'GCSZT', 'BFWG'].includes(res?.data?.orderStatus) &&
  105. !['YQX', 'FWZT', 'YCGB', 'FWQX'].includes(res?.data?.orderStatus)
  106. ) {
  107. this.EvaluationShow = true
  108. this.SettleAccountsShow = true
  109. }
  110. if (this?.$route?.params?.pagePam === 'Evaluation' && this.EvaluationShow === false) {
  111. this.activeName = 'workOrderInfo'
  112. }
  113. })
  114. },
  115. methods: {
  116. handleClick(tab, event) {}
  117. }
  118. }
  119. </script>
  120. <style lang="scss" scoped>
  121. .yemiansize {
  122. height: calc(100vh - 85px) !important;
  123. overflow: hidden;
  124. & > ::v-deep .el-tabs:nth-child(1) {
  125. & > .el-tabs__header:nth-child(1) {
  126. margin-bottom: 0 !important;
  127. }
  128. }
  129. .view_div {
  130. height: calc(100% - 42px) !important;
  131. overflow-y: auto;
  132. }
  133. }
  134. </style>