jiangping
2025-06-06 a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea
admin/src/views/workorder/components/detail.vue
@@ -1,6 +1,6 @@
<template>
  <GlobalWindow width="100%" title="工单详情" :visible.sync="visible" :confirm-working="isWorking" @close="close"
    @confirm="confirm">
  <GlobalWindow width="100%" title="工单详情" :withFooter="withFooter" :visible.sync="visible" :confirm-working="isWorking"
    @confirm="confirm" @close="closeView">
    <div class="main">
      <div class="title">
        <div class="title_left">
@@ -11,7 +11,7 @@
            <div class="status gray" v-if="info.dealStatus == 2">已处理</div>
          </div>
        </div>
        <el-button>查看问题上报</el-button>
        <el-button v-if="info.origin === 1 && isShow" @click="openWT">查看问题上报</el-button>
      </div>
      <div class="main_content">
        <div class="list">
@@ -26,6 +26,11 @@
          <div class="item">
            <div class="la">工单分类</div>
            <div class="val">{{ info.categoryName }}</div>
          </div>
          <div class="item">
            <div class="la">来源</div>
            <div class="val" v-if="info.origin === 0">自建</div>
            <div class="val" v-if="info.origin === 1">问题转工单</div>
          </div>
          <div class="item">
            <div class="la">上报人</div>
@@ -166,6 +171,8 @@
          </div>
        </template>
      </el-form>
      <!--  问题上报详情  -->
      <ProblemReportingDetails ref="problem_Reporting_Details" @close="closeDetails" />
    </div>
  </GlobalWindow>
</template>
@@ -173,19 +180,24 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
// import ProblemReportingDetails from './problemReportingDetails'
// import ProblemReportingDetails from '@/views/workorder/components/problemReportingDetails'
import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder'
import { getByWorkorderId } from '@/api/ywProblem'
import { getUserList } from '@/api/system/user'
import { Message, Loading } from 'element-ui'
import { mapState } from 'vuex'
import dayjs from 'dayjs'
export default {
  name: 'detail',
  components: {
    GlobalWindow
    GlobalWindow,
    ProblemReportingDetails: () => import('./problemReportingDetails')
  },
  extends: BaseOpera,
  data() {
    return {
      id: '',
      visible: false,
      param: {
        dealType: 0
      },
@@ -201,17 +213,49 @@
      uploadData: {
        folder: 'YW_WORKORDER_FILE'
      },
      isShow: true,
      test: false
    }
  },
  computed: {
    userInfo() {
      return this.$store.state.userInfo
    },
    withFooter() {
      if (this.info) {
        return this.info.dealStatus === 0 || (this.info.dealStatus === 1 && (this.userInfo.id === this.info.dealUserId));
      } else {
        return false;
      }
    }
  },
  created() {
    this.getStaff()
  },
  methods: {
    closeDetails() {
      console.log('1')
      this.test = false
    },
    closeView() {
      this.$emit('close')
      this.visible = false
    },
    open (title, target, show) {
      this.title = title
      this.isShow = show
      this.id = target.workorderId
      this.getDetail()
    },
    openWT() {
      getByWorkorderId(this.id)
        .then(res => {
          this.test = true
          this.$nextTick(() => {
            this.$refs.problem_Reporting_Details.open('问题上报详情', res, false)
          })
        })
    },
    confirm() {
      this.$refs['form'].validate((valid) => {
        if (valid) {
@@ -241,6 +285,7 @@
        if (this.info.dealStatus == 1) {
          this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
        }
        this.visible = true
      })
    },
    getStaff() {