fuliqi
2024-12-02 d441a339549da0e1280879333f0b22823a603443
src/views/system/work-order/distribute/index.vue
@@ -16,27 +16,44 @@
    <el-row class="op-warp">
      <el-row v-show="showSearch">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="关键词" prop="keyword">
          <el-form-item label="关键字" prop="keyword">
            <el-input
              v-model="queryParams.keyword"
              placeholder="关键词搜索"
              placeholder="工单号/设备名/设备编号搜索"
              clearable
              @keyup.enter.native="page"
              @clear="page"
            />
          </el-form-item>
          <el-form-item label="故障类型" prop="errorTypeList">
            <el-select v-model="queryParams.errorTypeList" multiple placeholder="故障类型" clearable @change="page" @clear="page">
              <el-option v-for="dict in dict.type.error_type"
                         :value="dict.value"
                         :label="dict.label"/>
            </el-select>
            <el-cascader
              v-model="queryParams.errorType"
              :options="errorTypeList"
              :props="{ expandTrigger: 'hover',emitPath: false }"
              :show-all-levels="false"
              @change="page"
              placeholder="故障类型"
              clearable
            ></el-cascader>
          </el-form-item>
          <el-form-item label="下发状态" prop="status">
            <el-select v-model="queryParams.status" @change="page" placeholder="下发状态" clearable>
              <el-option label="未下发" value="WAIT_DISTRIBUTE"/>
              <el-option label="已下发" value="DISTRIBUTED"/>
            </el-select>
          </el-form-item>
          <el-form-item label="时间范围" prop="timeRange" >
            <el-date-picker
              v-model="timeRange"
              type="daterange"
              range-separator="至"
              value-format="yyyy-MM-dd"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              @change="page"
              clearable
            >
            </el-date-picker>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="small" @click="page">搜索</el-button>
@@ -61,7 +78,6 @@
          <span style="font-weight: bold;font-size: 16px">快捷下发</span>
          <el-form ref="fastDistributeForm" :model="fastDistributeForm" :rules="fastDistributeRules" label-width="80px">
            <el-form-item label="快捷方式" prop="fastWay">
              <el-radio v-model="fastDistributeForm.fastWay" label="LAST_HALF_HOUR">最近30分钟</el-radio>
              <el-radio v-model="fastDistributeForm.fastWay" label="LAST_HOUR">最近1小时</el-radio>
              <el-radio v-model="fastDistributeForm.fastWay" label="LAST_TWO_HOUR">最近2小时</el-radio>
              <el-radio v-model="fastDistributeForm.fastWay" label="LAST_DAY">最近1天</el-radio>
@@ -105,6 +121,7 @@
        <el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="工单号" align="center" prop="workOrderNo"/>
          <el-table-column label="国标码" align="center" prop="serialNumber"/>
          <el-table-column label="故障点位" align="center" prop="source">
            <template slot-scope="scope">
              <el-popover
@@ -147,13 +164,13 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="工单来源" prop="source">
        <el-form-item label="故障点位" prop="source">
          <el-select
            v-model="form.source"
            filterable
            remote
            reserve-keyword
            placeholder="请选择来源"
            placeholder="国标码/点位名称搜索"
            :remote-method="remoteGetPoints"
            @change="setPointId"
            :loading="selectLoading">
@@ -184,14 +201,15 @@
</template>
<script>
import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute} from '@/api/platform/work-order'
import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute, errorTypeAll} from '@/api/platform/work-order'
import {workList} from "@/api/platform/unit";
import { pointSelectData } from "@/api/platform/point";
export default {
  dicts: ['error_type'],
  name: 'index',
  name: 'Work-order-distribute',
  data() {
    return {
      errorTypeList: [],  // 用于存储选中的项目ID
      showSearch: true,
      selectedIdsDistributeForm: {
        ids: [],
@@ -213,6 +231,7 @@
      multipleSelection: [],
      // 下发时间范围
      fastTimeRange: [],
      timeRange : null,
      // 下发
      fastDistributeForm: {
        fastWay: null,
@@ -288,6 +307,11 @@
    }
  },
  mounted() {
    const today = new Date();
    const start = today.toISOString().split('T')[0]; // 获取日期部分,格式为 yyyy-MM-dd
    const end = start; // 结束日期也是当天
    this.timeRange = [start, end];
    this.getErrorList()
    this.page();
  },
  computed: {
@@ -296,6 +320,11 @@
    },
  },
  methods: {
    getErrorList() {
      errorTypeAll().then(errorRes => {
        this.errorTypeList = errorRes.data;
      })
    },
    setPointId(selectedValue) {
      const selectedItem = this.pointList.find(item => item.value === selectedValue);
      this.form.serialNumber = selectedItem.id
@@ -312,11 +341,20 @@
    },
    page() {
      this.loading = true;
      this.selectUnit();
      distributeWorkOrder(this.queryParams).then(res => {
        this.workOrderList = res.data.records;
        this.total = res.total;
        this.loading = false;
      if (this.timeRange && this.timeRange.length > 0) {
        this.queryParams.start = this.timeRange[0]
        this.queryParams.end = this.timeRange[1]
      }else {
        this.queryParams.start = null
        this.queryParams.end = null
      }
      distributeWorkOrder(this.queryParams).then(data => {
        workList(this.queryParams).then(res => {
          this.unitList = res.data;
          this.workOrderList = data.data.records;
          this.total = data.total;
          this.loading = false;
        })
      })
    },
    changeUnit(unitId, unitName) {
@@ -378,7 +416,7 @@
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.multipleSelection = selection.map(item => item.id)
      this.multipleSelection = selection.map(item => item.workOrderNo)
    },
    /** 新增按钮操作 */
    handleAdd() {
@@ -404,6 +442,7 @@
          } else {
            addWorkOrder(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.pointList = [];
              this.open = false;
              this.page();
            });
@@ -418,7 +457,7 @@
    },
    // 运维公司下拉数据
    selectUnit() {
      workList().then(res => {
      workList(this.queryParams).then(res => {
        this.unitList = res.data;
      })
    },