detail.vue 3.1 KB

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