xiangpei
2024-03-05 886b5efb69b16112276a163b606c2c00ac0d225b
工单优化
2个文件已修改
306 ■■■■ 已修改文件
src/api/platform/work-order.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/index.vue 302 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/work-order.js
@@ -4,8 +4,8 @@
export function listWorkOrder(query) {
  return request({
    url: '/work-order/page',
    method: 'get',
    params: query
    method: 'post',
    data: query
  })
}
src/views/system/work-order/index.vue
@@ -1,16 +1,19 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
      <el-form-item label="工单号" prop="workOrderNo">
        <el-input
          v-model="queryParams.workOrderNo"
          placeholder="请输入工单号"
          clearable
          @clear="handleQuery"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="运维处理时间">
        <el-date-picker
          clearable
          @clear="handleQuery"
          v-model="daterangeYwHandleTime"
          style="width: 240px"
          value-format="yyyy-MM-dd"
@@ -27,27 +30,27 @@
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['x:work-order:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['x:work-order:edit']"
        >修改</el-button>
      </el-col>
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="primary"-->
<!--          plain-->
<!--          icon="el-icon-plus"-->
<!--          size="mini"-->
<!--          @click="handleAdd"-->
<!--          v-hasPermi="['x:work-order:add']"-->
<!--        >新增</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="success"-->
<!--          plain-->
<!--          icon="el-icon-edit"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="handleUpdate"-->
<!--          v-hasPermi="['x:work-order:edit']"-->
<!--        >修改</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="danger"
@@ -74,38 +77,48 @@
    <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="unitId" />
      <el-table-column label="运维人员" align="center" prop="ywPeopleId" />
      <el-table-column label="运维处理时间" align="center" prop="ywHandleTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.ywHandleTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="工单号" align="center" prop="workOrderNo" width="170"/>
      <el-table-column label="运维单位" align="center" prop="unitName" width="150"/>
      <el-table-column label="运维人员" align="center" prop="ywPeopleName" />
      <el-table-column label="运维处理时间" align="center" prop="ywHandleTime" width="180"/>
      <el-table-column label="运维结果" align="center" prop="ywResult" />
      <el-table-column label="运维情况" align="center" prop="ywCondition" />
      <el-table-column label="运维检测结果" align="center" prop="ywCheckResult" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
      <el-table-column label="运维情况" align="center" prop="ywCondition" width="150"/>
      <el-table-column label="运维检测结果" align="center" prop="ywCheckResult" width="230"/>
      <el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
      <el-table-column label="操作" fixed="right" width="150"  align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
<!--          <el-button-->
<!--            size="mini"-->
<!--            type="text"-->
<!--            icon="el-icon-edit"-->
<!--            @click="handleUpdate(scope.row)"-->
<!--            v-hasPermi="['x:work-order:edit']"-->
<!--          >修改</el-button>-->
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['x:work-order:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            @click="handleAuditing(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >删除</el-button>
          >审核</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleYwCondition(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >运维情况</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleYwResult(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >运维结果</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleCheckResult(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >检测结果</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -117,6 +130,95 @@
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <el-dialog title="工单审核" :visible.sync="auditingOpen" width="500px" append-to-body>
      <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="auditingForm.workOrderNo" disabled  />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="auditingForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="auditingForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="审核结果" prop="auditingResult">
          <el-radio v-model="auditingForm.auditingResult" label="pass">通过</el-radio>
          <el-radio v-model="auditingForm.auditingResult" label="return">驳回</el-radio>
        </el-form-item>
        <el-form-item label="审核备注" prop="auditingRemark">
          <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitAuditing">确 定</el-button>
        <el-button @click="cancelAuditing">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="运维情况记录" :visible.sync="ywConditionOpen" width="500px" append-to-body>
      <el-form ref="ywConditionForm" :model="ywConditionForm" :rules="ywConditionRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="ywConditionForm.workOrderNo" disabled  />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="ywConditionForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="ywConditionForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维情况" prop="ywCondition">
          <el-input v-model="ywConditionForm.ywCondition" type="textarea" maxlength="150" show-word-limit/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitYwCondition">确 定</el-button>
        <el-button @click="cancelYwCondition">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="运维结果记录" :visible.sync="ywResultOpen" width="500px" append-to-body>
      <el-form ref="ywResultForm" :model="ywResultForm" :rules="ywResultRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="ywResultForm.workOrderNo" disabled  />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="ywResultForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="ywResultForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维结果" prop="ywResult">
          <el-input v-model="ywResultForm.ywResult" type="textarea" maxlength="150" show-word-limit/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitYwResult">确 定</el-button>
        <el-button @click="cancelYwResult">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="运维检测结果" :visible.sync="checkResultOpen" width="500px" append-to-body>
      <el-form ref="ywResultForm" :model="checkResultForm" :rules="checkResultRules" label-width="120px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="checkResultForm.workOrderNo" disabled  />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="checkResultForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="checkResultForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维检测结果" prop="ywCheckResult">
          <el-input v-model="checkResultForm.ywCheckResult" type="textarea" maxlength="150" show-word-limit/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitYwResult">确 定</el-button>
        <el-button @click="cancelYwResult">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 添加或修改运维工单对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
@@ -187,31 +289,115 @@
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        workOrderNo: [
          { required: true, message: "工单号不能为空", trigger: "blur" }
      // 审核表单
      auditingForm: {},
      auditingOpen: false,
      // 运维情况表单
      ywConditionForm: {},
      ywConditionOpen: false,
      // 运维结果表单
      ywResultForm: {
      },
      ywResultOpen: false,
      // 运维检测结果
      checkResultForm: {
      },
      checkResultOpen: false,
      // 审核表单校验
      auditingRules: {
        auditingResult: [
          { required: true, message: "审核结果不能为空", trigger: "blur" }
        ],
        unitId: [
          { required: true, message: "运维单位不能为空", trigger: "change" }
      },
      // 运维情况校验
      ywConditionRules: {
        ywCondition: [
          { required: true, message: "运维情况不能为空", trigger: "blur" }
        ],
      }
      },
      // 运维结果校验
      ywResultRules: {
        ywResult: [
          { required: true, message: "运维结果不能为空", trigger: "blur" }
        ],
      },
      // 运维检测结果校验
      checkResultRules: {
        ywCheckResult: [
          { required: true, message: "运维检测结果不能为空", trigger: "blur" }
        ],
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    // 审核按钮
    handleAuditing(row) {
      this.auditingForm = row;
      this.auditingOpen = true;
    },
    // 运维情况按钮
    handleYwCondition(row) {
      this.ywConditionForm = row;
      this.ywConditionOpen = true;
    },
    // 运维结果按钮
    handleYwResult(row) {
      this.ywResultForm = row;
      this.ywResultOpen = true;
    },
    // 运维检测结果按钮
    handleCheckResult(row) {
      this.checkResultForm = row;
      this.checkResultOpen = true;
    },
    // 提交审核
    submitAuditing() {
      // todo
    },
    // 取消审核
    cancelAuditing() {
      this.auditingForm = {};
      this.auditingOpen = false;
    },
    // 提交运维情况
    submitYwCondition() {
      // todo
    },
    cancelYwCondition() {
      this.ywConditionForm = {};
      this.ywConditionOpen = false;
    },
    // 提交运维结果
    submitYwResult() {
      // todo
    },
    cancelYwResult() {
      this.ywResultForm = {};
      this.ywResultOpen = false;
    },
    // 提交检测结果
    submitCheckResult() {
      // todo
    },
    cancelCheckResult() {
      this.checkResultForm = {};
      this.checkResultOpen = false;
    },
    /** 查询运维工单列表 */
    getList() {
      this.loading = true;
      this.queryParams.params = {};
      if (null != this.daterangeYwHandleTime && '' != this.daterangeYwHandleTime) {
        this.queryParams.params["beginYwHandleTime"] = this.daterangeYwHandleTime[0];
        this.queryParams.params["endYwHandleTime"] = this.daterangeYwHandleTime[1];
        this.queryParams["start"] = this.daterangeYwHandleTime[0];
        this.queryParams["end"] = this.daterangeYwHandleTime[1];
      }
      listWorkOrder(this.queryParams).then(response => {
        this.workOrderList = response.rows;
        this.workOrderList = response.data;
        this.total = response.total;
        this.loading = false;
      });