detail.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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="detailsCompletion" key="detailsCompletion"></el-tab-pane>
  7. <el-tab-pane :label="`支付费用`" name="payFee" key="payFee"></el-tab-pane>
  8. <el-tab-pane v-if="EvaluationShow" label="评价信息" name="Evaluation" key="Evaluation"> </el-tab-pane>
  9. <el-tab-pane v-if="SettleAccountsShow" label="费用结算" name="SettleAccounts" key="SettleAccounts"> </el-tab-pane>
  10. <el-tab-pane v-if="PartsApplicationShow" label="配件申请" name="PartsApplication" key="PartsApplication">
  11. </el-tab-pane>
  12. </el-tabs>
  13. <div class="view_div">
  14. <div
  15. :style="{
  16. height: activeName === 'workOrderInfo' ? '100%' : '0px',
  17. overflow: activeName === 'workOrderInfo' ? '' : 'hidden'
  18. }"
  19. >
  20. <workOrderInfo :id="id" ref="workOrderInfo" :workOrderType="workOrderType" />
  21. </div>
  22. <OperationDetail v-if="activeName == 'operationDetails'" :id="id" ref="operationDetails" />
  23. <CompletionDetails v-if="activeName == 'detailsCompletion'" :id="id" ref="detailsCompletion" />
  24. <Payment v-if="activeName == 'payFee'" :id="id" ref="payFee" :workOrderType="workOrderType" />
  25. <Evaluation v-if="activeName == 'Evaluation' && EvaluationShow" :id="id" ref="Evaluation" />
  26. <SettleAccounts v-if="activeName == 'SettleAccounts' && SettleAccountsShow" :id="id" ref="SettleAccounts" />
  27. <PartsApplication
  28. v-if="activeName == 'PartsApplication' && PartsApplicationShow"
  29. :id="id"
  30. ref="PartsApplication"
  31. />
  32. </div>
  33. </div>
  34. </template>
  35. <script>
  36. import workOrderInfo from './detailModule/workOrderInfo/index.vue'
  37. import OperationDetail from './detailModule/OperationDetail/index.vue'
  38. import CompletionDetails from './detailModule/CompletionDetails/index.vue'
  39. import Payment from './detailModule/Payment/index.vue'
  40. import Evaluation from './detailModule/Evaluation/index.vue'
  41. import SettleAccounts from './detailModule/SettleAccounts/index.vue'
  42. import PartsApplication from './detailModule/PartsApplication/index.vue'
  43. import { orderBaseDetail } from '@/api/workOrderPool.js'
  44. export default {
  45. components: {
  46. workOrderInfo,
  47. OperationDetail,
  48. CompletionDetails,
  49. Payment,
  50. Evaluation,
  51. SettleAccounts,
  52. PartsApplication
  53. },
  54. props: {
  55. id: {
  56. type: [String, Number],
  57. default: null
  58. },
  59. workOrderType: {
  60. type: [Number],
  61. default: null
  62. }
  63. },
  64. data() {
  65. return {
  66. activeName: this?.$route?.params?.pagePam || 'workOrderInfo',
  67. EvaluationShow: false,
  68. SettleAccountsShow: false,
  69. PartsApplicationShow: true
  70. }
  71. },
  72. created() {
  73. orderBaseDetail({
  74. orderBaseId: this.id
  75. }).then(res => {
  76. if (!~['DYY', 'DSHPG', 'DWDPG', 'DJD', 'FWZ', 'YQX'].indexOf(res.data.orderStatus)) {
  77. this.EvaluationShow = true
  78. this.SettleAccountsShow = true
  79. }
  80. })
  81. },
  82. methods: {
  83. handleClick(tab, event) {}
  84. }
  85. }
  86. </script>
  87. <style lang="scss" scoped>
  88. .yemiansize {
  89. height: calc(100vh - 140px) !important;
  90. overflow: hidden;
  91. & > ::v-deep .el-tabs:nth-child(1) {
  92. & > .el-tabs__header:nth-child(1) {
  93. margin-bottom: 0 !important;
  94. }
  95. }
  96. .view_div {
  97. height: calc(100% - 42px) !important;
  98. overflow-y: auto;
  99. }
  100. }
  101. </style>