jiangping
2025-06-26 2edf3f1fd9505cbdd435524d316e7558b25f6760
admin/src/views/business/workorderDcaChild.vue
@@ -4,18 +4,18 @@
    <div slot="search-form">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="观察主题" prop="typeId">
          <el-select v-model="searchForm.typeId" @change="changeType" style="width: 120px">
          <el-select v-model="searchForm.typeId" placeholder="一级主题" clearable @change="changeType" style="width: 120px">
          <el-option  clearable filterable
              v-for="item in categorys"
              :key="item.id"
              :label="item.name"
              :value="item.id">
          </el-option>
          </el-select> -
          </el-select>
        </el-form-item>
        <el-form-item label="" prop="categoryId">
          <el-select v-model="searchForm.categoryId" @change="search" style="width: 120px">
          <el-option  clearable filterable
          <el-select v-model="searchForm.categoryId" clearable  placeholder="二级主题"  style="width: 120px"  @change="search" >
          <el-option   filterable
              v-for="item in categorys1"
              :key="item.id"
              :label="item.name"
@@ -24,10 +24,37 @@
          </el-select>
        </el-form-item>
        <el-form-item label="上报人员" prop="memberName">
          <el-input v-model="searchForm.memberName" clearable placeholder="人员姓名或手机号" @keypress.enter.native="search"></el-input>
          <el-input v-model="searchForm.memberName" style="width: 150px"  clearable placeholder="姓名或手机号" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="工单号" prop="code">
          <el-input v-model="searchForm.code" clearable placeholder="请输入工单号" @keypress.enter.native="search"></el-input>
          <el-input v-model="searchForm.code" style="width: 120px"  clearable placeholder="工单号" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="状态描述" prop="status">
          <el-select v-model="searchForm.status" placeholder="请选择" clearable  @change="search" >
            <el-option label="待分配WTS" value="0"></el-option>
<!--
            <el-option label="待分配任务" value="1"></el-option>
-->
            <el-option label="待工程师处理" value="2"></el-option>
            <el-option label="SHE关闭" value="3"></el-option>
            <el-option label="WTS关闭" value="4"></el-option>
            <el-option label="工程师关闭" value="5"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="提交时间" prop="queryStartTime">
          <el-date-picker type="datetime" v-model="searchForm.queryStartTime" value-format="yyyy-MM-dd HH:mm:ss"
                          placeholder="开始时间" @change="changeRadio" />
        </el-form-item>
        <el-form-item label="" prop="queryEndTime">
          <el-date-picker type="datetime" v-model="searchForm.queryEndTime" value-format="yyyy-MM-dd HH:mm:ss"
                          placeholder="结束时间" @change="changeRadio" />
        </el-form-item>
        <el-form-item label="" prop="radio">
          <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
            <el-radio-button label="0">当天</el-radio-button>
            <el-radio-button label="1">近7天</el-radio-button>
            <el-radio-button label="2">近30天</el-radio-button>
          </el-radio-group>
        </el-form-item>
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
@@ -47,7 +74,7 @@
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column prop="code"  label="工单号" min-width="150px" fixed>
        <el-table-column prop="code"  label="工单号" min-width="160px" fixed>
          <template slot-scope="{row}">
            <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('DCA事件工单详情', row)" >{{ row.code || '-'}}</span>
          </template>
@@ -56,9 +83,6 @@
          <template slot-scope="{row}"> {{row.typeName}}/{{row.categoryName}}
          </template>
        </el-table-column>
<!--
        <el-table-column prop="categoryName" label="二级主题" min-width="100px"></el-table-column>
-->
        <el-table-column prop="problemTitle" label="不符合项" min-width="250px"></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
@@ -67,9 +91,15 @@
            <span :class="'statusInfo'+row.status" v-else>处理中</span>
          </template>
        </el-table-column>
        <el-table-column prop="statusInfo" label="状态描述" min-width="100px">
          <template slot-scope="{row}">
            <span :class="'statusInfo'+row.status" >{{ row.statusName}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="locationName" label="位置" min-width="150px"></el-table-column>
        <el-table-column prop="submitDate" label="上报时间" min-width="150px"></el-table-column>
        <el-table-column prop="happenTime" label="发现时间" min-width="150px"></el-table-column>
        <el-table-column prop="eventInfo" label="不符合原因" min-width="250px"  show-overflow-tooltip ></el-table-column>
        <el-table-column prop="memberName" label="上报人员" min-width="150px">
          <template slot-scope="{row}">
            <span v-if="row.memberPhone" >{{row.memberName}}/{{row.memberPhone }}</span>
@@ -108,6 +138,7 @@
import Pagination from '@/components/common/Pagination'
import OperaWorkorderDetailDcaInfoWindow from '@/components/business/OperaWorkorderDetailDcaInfoWindow'
import { allList } from '@/api/business/category'
import {timeForMat} from "@/utils/util";
export default {
  name: 'Workorder',
  extends: BaseTable,
@@ -116,6 +147,9 @@
    return {
      // 搜索
      searchForm: {
        queryStartTime: null,
        queryEndTime: null,
        radio: null,
        type: '2',
        memberName: '',
        memberCompanyId: '',
@@ -123,6 +157,7 @@
        categoryId: '',
        typeId: '',
        code: '',
        status: null,
        categoryList: []
      },
      categoryprops: {
@@ -146,6 +181,26 @@
    this.search()
  },
  methods: {
    changeRadio(e) {
      if (e === '0') {
        this.searchForm.queryStartTime = timeForMat(0)[0]
        this.searchForm.queryEndTime = timeForMat(0)[1]
      } else if (e === '1') {
        this.searchForm.queryStartTime = timeForMat(6)[0]
        this.searchForm.queryEndTime = timeForMat(6)[1]
      } else if (e === '2') {
        this.searchForm.queryStartTime = timeForMat(29)[0]
        this.searchForm.queryEndTime = timeForMat(29)[1]
      } else {
        this.searchForm.radio = ''
      }
      if (this.searchForm.queryStartTime && this.searchForm.endTime && new Date(this.searchForm.startTime).getTime() > new Date(this.searchForm.endTime).getTime()) {
        this.$message.error('开始时间不能大于结束时间')
        this.searchForm.queryStartTime = ''
        return
      }
      this.search()
    },
    changeType(){
      this.search()
      this.categorys1 = []