showDialog.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <template>
  2. <el-dialog title="订单详情" :visible.sync="dialogVisible" width="50%" top="7vh" v-loading="loading"
  3. :destroy-on-close="true">
  4. <el-form :model="form" :label-position="formLabelWidth" label-width="120px" size="mini"
  5. style="max-height: 66vh; overflow-y: scroll;">
  6. <el-form-item label="下单时间">
  7. <el-input v-model="form.paidAt" disabled></el-input>
  8. </el-form-item>
  9. <el-form-item label="订单编号">
  10. <el-input v-model="form.orderNo" disabled></el-input>
  11. </el-form-item>
  12. <el-form-item label="订单金额">
  13. <el-input v-model="form.totalFee" disabled></el-input>
  14. </el-form-item>
  15. <el-form-item label="订单状态">
  16. <el-input v-model="form.status" disabled></el-input>
  17. </el-form-item>
  18. <el-form-item label="收件人信息">
  19. <BaseTable :columns='columns1' :condition='[]' ref="table1" :injectData="[form]" size="small">
  20. </BaseTable>
  21. </el-form-item>
  22. <el-form-item label="商品信息">
  23. <BaseTable :columns='columns2' :condition='[]' ref="table2" :injectData="form.orderItems" size="small">
  24. </BaseTable>
  25. </el-form-item>
  26. <el-form-item label="备注">
  27. <el-input v-model="form.remark" type="textarea" disabled></el-input>
  28. </el-form-item>
  29. </el-form>
  30. </el-dialog>
  31. </template>
  32. <script>
  33. import BaseTable from "./order-BaseTable.vue"
  34. import moment from 'moment'
  35. export default {
  36. name: 'showDialog',
  37. components: { BaseTable, },
  38. data() {
  39. return {
  40. dialogVisible: false,
  41. loading: true,
  42. columns1: [{
  43. title: "姓名",
  44. dataIndex: "addressName",
  45. }, {
  46. title: "电话",
  47. dataIndex: "addressPhone",
  48. }, {
  49. title: "地址",
  50. dataIndex: "addressText",
  51. },],
  52. columns2: [{
  53. title: "图标",
  54. dataIndex: "goodsCover",
  55. scopedSlots: { customRender: (label, row, index) => `${row.goodsCover}` },
  56. }, {
  57. title: "名称",
  58. dataIndex: "goodsName",
  59. }, {
  60. title: "价格",
  61. dataIndex: "goodsPrice",
  62. }, {
  63. title: "数量",
  64. dataIndex: "goodsAmount",
  65. }, {
  66. title: "小计",
  67. dataIndex: "totalPrice",
  68. }],
  69. form: {
  70. paidAt: "",
  71. orderNo: '',
  72. totalFee: 0,
  73. status: '',
  74. addressName: '',
  75. addressPhone: '',
  76. addressText: '',
  77. remark: '',
  78. orderItems: []
  79. },
  80. formLabelWidth: '120px'
  81. };
  82. },
  83. methods: {
  84. show({ id }) {
  85. this.$http({
  86. url: '/orderItem/show',
  87. method: 'post',
  88. data: { id },
  89. params: { id }
  90. }).then(
  91. ({ data }) => {
  92. // this.form
  93. // this.$set(this.form,)
  94. Object.keys(this.form).forEach(key => {
  95. this.form[key] = data[key]
  96. })
  97. this.form.paidAt = moment(this.form.paidAt).format("yyyy-MM-DD HH:mm:ss")
  98. this.loading = false
  99. }
  100. )
  101. this.dialogVisible = true;
  102. }
  103. }
  104. }
  105. </script>