repairDetail.vue 9.77 KB
<template>
  <view class="container">
    <checkOption v-if="openOption" :itemData="itemData" @close="handleClose"></checkOption>
    <view class="" v-else>
      <Navbar title="查看详情" canBack></Navbar>
      <view class="basisCardCss mr10" v-if="mode === 'aj'">
        <basisCellCard title="安检信息" :list="ajResultList">
          <checkItem ref="checkItemRef" :rhaj="rhaj" v-if="isOpen"></checkItem>
        </basisCellCard>
      </view>
      <view class="basisCardCss mr10" v-if="mode === 'aj'">
        <basisCellCard title="用户信息" :list="ajUserInformation"></basisCellCard>
      </view>
      <view class="basisCardCss mr10" v-if="mode === 'wx'">
        <basisCellCard title="报修信息" :list="repairInfoList"></basisCellCard>
      </view>
      <view class="otherCardCss mr10" v-if="mode === 'wx'">
        <basisCellCard title="下单信息" :list="orderInfoList"></basisCellCard>
      </view>
      <view class="otherCardCss mr10" v-if="pageType=='ycl'">
        <basisCellCard title="维修结果" :list="repairResultList"></basisCellCard>
      </view>
    </view>
  </view>
</template>

<script>
import basisCellCard from '@/components/basisCellCard/basisCellCard'
import checkItem from './components/checkItem.vue'
import checkOption from './components/checkOption.vue'

export default {
  name: 'repairDetail',
  components: {
    basisCellCard,
    checkItem,
    checkOption
  },
  data() {
    return {
      repairInfoList: [{
        name: '报修类型',
        value: '',
        key: 'fBxlx',
      }, {
        name: '问题描述',
        value: '',
        key: 'fWtms',
      }, {
        name: '问题图片',
        type: 'photoList',
        value: [],
        key: 'fWttp',
      }, {
        name: '状态',
        value: '待上门',
        color: '#EA5504',
        type: 'statusText',
        key: 'fZt',
      }, {
        name: '上报时间',
        value: '2023.07.04 18:00:00',
        key: 'fXdsj',
      }],
      orderInfoList: [{
        name: '工单号',
        value: '1598651451389413984189',
        key: 'fGdh',
      }, {
        name: '订单类型',
        value: '',
        key: 'fGdlx',
      }, {
        name: '下单时间',
        value: '',
        key: 'fXdsj',
      }, {
        name: '联系人',
        value: '',
        key: 'fLxr',
      }, {
        name: '联系方式',
        value: '',
        key: 'fLxrdh',
      }, {
        name: '联系地址',
        value: '',
        key: 'fLxdzsf',
      }],
      repairResultList: [{
        name: '上报结果',
        value: '正常维修',
        key: 'fWxjgms',
      }, {
        name: '问题描述',
        value: '',
        key: 'fWxjgbz',
      }, {
        name: '问题照片',
        value: [],
        type: 'photoList',
        key: 'fWxjgtp',
      }],
      ajResultList: [{
        name: '现场图片',
        value: [],
        type: 'photoList',
        key: 'fAjxctp',
      },
        {
          name: '状态',
          value: '',
          key: 'fAjzt',
        }, {
          name: '安检时间',
          value: '',
          key: 'fAjsj',
        },
      ],
      ajUserInformation: [{
        name: '用户信息',
        value: '',
        key: 'fHymc',
      }, {
        name: '联系方式',
        value: '',
        key: 'fHydh',
      }, {
        name: '联系地址',
        value: "",
		// key: 'fLxdz',
        key: 'fAjdz',
      }],
      qpData: {},
      pageType: '',
      mode: "", //查看模式
      repairOrderId: '',
      pageInfo: {},
      query: {},
      openOption: false,
      isOpen: false,
      rhaj: {
        lq: {},
        syhj: {},
        syxw: {},
        rsqsnaz: {},
        pgzf: {},
        rqpxlbjzz: {}
      },
    };
  },
  onLoad(data) {
    console.log('打印data',data);
    if (data.type) {
      this.pageType = data.type
    }
    if (data.mode) {
      this.mode = data.mode
    }
    if (data.id) {
      this.repairOrderId = data.id;
    }
    this.getQpxxData();

    uni.$on('chekItemData', (item) => {
      this.openOption = true;
      this.itemData = item;
      // console.log('checkItem传递的值:' + JSON.stringify(this.itemData));
    });
  },
  methods: {
    async getQpxxData() {
      if (this.mode === 'wx') {
        this.getWxData()
      } else {
        this.getAjData();
      }
    },
    async getWxData() {
      let query = {
        id: this.repairOrderId
      }
      const result = await this.$api.repairOrderApi.getRepairDetail(query);
      console.log('维修详情', JSON.parse(JSON.stringify(result.value)));
      let {
        code,
        value
      } = result;
      if (code === 200) {
        let photoList = JSON.parse(value.fWttp);
        let photoArray = [];
		// await Promise.all(photoList.map(async (item) => {
		//     let photoItem = await this.$getPhotoUrl(item.response.fileId);
		//     console.log("photoItem", photoItem);
		//     photoArray.push({
		//       type: 'photoList',
		//       url: photoItem,
		//       fileId: item.response.fileId
		//     });
		// }));
        photoList.map(async (item) => {
          let photoItem = await this.$getPhotoUrl(item.response.fileId);
		  console.log("photoItem",photoItem);
          photoArray.push({
            type: 'photoList',
            url: photoItem,
            fileId: item.response.fileId
          })
        });
		    value.fWttp = photoArray;
        console.log("图片",value.fWttp);
        // value.fLxdz = value.fLxdzsf + ' ' + value.fLxdzs + ' ' + value.fLxdzq + ' ' + value.fLxdzjd + ' ' + value.fLxdzxxdz;
        this.repairInfoList = await this.$assignValues(value, this.repairInfoList);
        this.orderInfoList = await this.$assignValues(value, this.orderInfoList);


        this.orderInfoList.forEach(d => {
          if (d.name == "联系地址") {
            d.value = value.fLxdzsf + ' ' + value.fLxdzs + ' ' + value.fLxdzq + ' ' + value.fLxdzjd + ' ' + value.fLxdzxxdz;
          }
        })
        if (this.pageType == 'ycl') {
          let clphotoList = JSON.parse(value.fWxjgtp);
          let clphotoArray = [];
          clphotoList.map(async (item) => {
            let photoItem = await this.$getPhotoUrl(item.response.fileId);
            clphotoArray.push({
              type: 'photoList',
              url: photoItem,
              fileId: item.response.fileId
            })
          });
          value.fWxjgtp = clphotoArray;
		      console.log(value);
          this.repairResultList = await this.$assignValues(value, this.repairResultList);
        }
        console.log('打印value', this.repairInfoList);
      }
    },
    async getAjData() {
      const result = await this.$api.repairOrderApi.getRhajDetail(this.repairOrderId);
      console.log('入户安检详情', JSON.parse(JSON.stringify(result.value)));

      let {
        code,
        value
      } = result;
      if (code === 200) {
        let photoArray = [];
		    let photoList = value.fXcpz? JSON.parse(value.fXcpz):[];
		    console.log("photoList",photoList);
        photoList.map(async (item) => {
          let photoItem = await this.$getPhotoUrl(item.response.fileId);
          photoArray.push({
            type: 'photoList',
            url: photoItem,
            fileId: item
          })
        });
        value.fAjxctp = photoArray;
        if (this.pageType == 'ycl') {
          let clphotoList = JSON.parse(value.fWxjgtp);
          let clphotoArray = [];
          clphotoList.map(async (item) => {
            let photoItem = await this.$getPhotoUrl(item.response.fileId);
            clphotoArray.push({
              type: 'photoList',
              url: photoItem,
              fileId: item.response.fileId
            })
          });
          value.fWxjgtp = clphotoArray;
          console.log(value);
          this.repairResultList = await this.$assignValues(value, this.repairResultList);
        }
        this.ajResultList = await this.$assignValues(value, this.ajResultList);
        this.ajUserInformation = await this.$assignValues(value, this.ajUserInformation);
        console.log("this.ajResultList", this.ajResultList);
      }
      let sslxMap = value.sslxMap;
      console.log(sslxMap);
      for (let i in sslxMap) {
        if (i === '漏气') {
          this.rhaj.lq = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '漏气'
            }
          })
        } else if (i === '使用环境') {
          this.rhaj.syhj = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '使用环境'
            }
          })
        } else if (i === '使用行为') {
          this.rhaj.syxw = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '使用行为'
            }
          })
        } else if (i === '热水器(室内安装)') {
          this.rhaj.rsqsnaz = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '热水器(室内安装)'
            }
          })
        } else if (i === '瓶、管、灶、阀') {
          this.rhaj.pgzf = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '瓶、管、灶、阀'
            }
          })
        } else if (i === '燃气泄漏报警装置') {
          this.rhaj.rqpxlbjzz = sslxMap[i].map(item => {
            return {
              bt: item.fBt,
              jcjg: item.fJcjg,
              sslx: '燃气泄漏报警装置'
            }
          })
        }
      }
      this.isOpen = true;
      console.log("入户安检", this.rhaj);
    },
    handleClose() {
      this.openOption = false;
    },
  }
}
</script>

<style lang="scss">
.container {
  padding-bottom: 10px;
}

.mr10 {
  margin: 10px;
}
</style>