jiangping
2025-04-17 9b00b80c926b3d1b38b7ef9b682ee097345dde3f
admin/src/views/business/workorderShe.vue
@@ -3,19 +3,31 @@
    <!-- 搜索表单 -->
    <div slot="search-form">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="伤害类型" prop="typeId">
          <el-cascader  v-model="searchForm.categoryList" :options="categorys" @change="handleChangeCategory" :show-all-levels="false"
        <el-form-item label="伤害类型" prop="typeIdPath">
<!--          <el-cascader  v-model="searchForm.categoryList" :options="categorys" @change="handleChangeCategory" :show-all-levels="false"
                        clearable filterable :props="categoryprops"  >
            <template slot-scope="{ node, data }">
              <span>{{ data.name }}</span> <!-- 自定义显示内容 -->
              <span>{{ data.name }}</span> &lt;!&ndash; 自定义显示内容 &ndash;&gt;
            </template>
          </el-cascader>
          </el-cascader>-->
          <treeselect
              style="width: 150px"
              v-model="searchForm.typeIdPath"
              placeholder="伤害类型"
              clearable
              :options="categorys"
              :normalizer="normalizeOptions"
              :default-expand-level="1"
              @input="search"
              noChildrenText="没有子选项"
              noOptionsText="没有可选项"
              noResultsText="没有匹配的结果" />
        </el-form-item>
        <el-form-item label="上报人员" prop="memberName">
          <el-input v-model="searchForm.memberName" placeholder="人员姓名或手机号" @keypress.enter.native="search"></el-input>
          <el-input v-model="searchForm.memberName" clearable placeholder="人员姓名或手机号" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="工单号" prop="code">
          <el-input v-model="searchForm.code" placeholder="请输入工单号" @keypress.enter.native="search"></el-input>
          <el-input v-model="searchForm.code" clearable placeholder="请输入工单号" @keypress.enter.native="search"></el-input>
        </el-form-item>
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
@@ -35,27 +47,20 @@
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column prop="code"  label="工单号" min-width="100px" fixed>
        <el-table-column prop="code"  label="工单号" min-width="150px" fixed>
          <template slot-scope="{row}">
            <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('SHE事件工单详情', row)" >{{ row.code || '-'}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="typeName" label="伤害类型" min-width="100px"></el-table-column>
        <el-table-column prop="submitDate" label="上报时间" min-width="100px"></el-table-column>
        <el-table-column prop="typeNamePath" label="伤害类型" min-width="100px"></el-table-column>
        <el-table-column prop="submitDate" label="上报时间" min-width="150px"></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.status ==0">待处理</span>
            <span v-else-if="row.status ==4">已处理</span>
            <span v-else-if="row.status ==3">已关闭</span>
            <span v-else>处理中</span>
            <span :class="'statusInfo'+row.status" v-if="row.status ==0">待处理</span>
            <span :class="'statusInfo'+row.status" v-else-if="row.status ==3 ||row.status ==4||row.status ==5">已处理</span>
            <span :class="'statusInfo'+row.status" v-else>处理中</span>
          </template>
        </el-table-column>
        <el-table-column prop="memberName" label="上报人员" min-width="100px">
          <template slot-scope="{row}">
            <span >{{row.memberName}} - {{row.memberPhone||''}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="companyName" label="所在部门" min-width="100px"></el-table-column>
        <el-table-column prop="memberType" label="涉及人员" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.memberType == 2">供应商-{{row.memberNames}}</span>
@@ -63,17 +68,19 @@
            <span v-else>本人</span>
          </template>
        </el-table-column>
        <el-table-column prop="localtionName" label="发生地点" min-width="100px"></el-table-column>
        <el-table-column prop="happenTime" label="发现时间" min-width="150px"></el-table-column>
        <el-table-column prop="locationName" label="发生地点" min-width="200px"></el-table-column>
        <el-table-column prop="remark" label="具体位置" min-width="100px"></el-table-column>
          <el-table-column prop="outJiuyi" label="就医情况" min-width="100px">
            <template slot-scope="{row}">
              <span v-if="row.outJiuyi == 1">外部就医-
                  <span v-if="row.isYiwushi == 1">医务室-
                     <span v-if="row.isHurted == 1">受伤</span>
                     <span v-else>未受伤</span>
              <span v-if="row.outJiuyi == 0">非外部就医-
                  <span v-if="row.isYiwushi == 0">非医务室-
                     <span v-if="row.isHurted == 0">未受伤</span>
                     <span v-else>受伤</span>
                  </span>
                   <span v-else>非医务室</span>
                   <span v-else>医务室</span>
              </span>
              <span v-else>非外部就医</span>
              <span v-else>外部就医</span>
            </template>
          </el-table-column>
          <el-table-column prop="workRelated" label="和工作相关" min-width="100px">
@@ -82,9 +89,15 @@
              <span v-else>否</span>
            </template>
          </el-table-column>
        <el-table-column prop="eventInfo" label="事件说明" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column prop="eventInfo" label="事件说明" min-width="200px"></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>
            <span v-else >{{row.memberName}} </span>
          </template>
        </el-table-column>
        <el-table-column prop="companyName" label="所属部门" min-width="150px"></el-table-column>
        <el-table-column prop="createDate" label="提交时间" min-width="150px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
          label="操作"
@@ -92,7 +105,7 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaWorkorderWindow.open('SHE事件工单详情', row)" icon="el-icon-edit" >查看详情</el-button>
            <el-button type="text" @click="$refs.operaWorkorderWindow.open('SHE事件工单详情', row)" icon="el-icon-zoom-out" >查看详情</el-button>
          <!--<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:workorder:delete']">删除</el-button>-->
          </template>
        </el-table-column>
@@ -127,7 +140,8 @@
        memberName: '',
        memberCompanyId: '',
        localtionId: '',
        typeId: '',
        typeId: null,
        typeIdPath: null,
        code: '',
        categoryList: []
      },
@@ -151,6 +165,17 @@
    this.search()
  },
  methods: {
    normalizeOptions(node) {
      if (node.childList && !node.childList.length) {
        // 去掉children=[]的children属性
        delete node.childList;
      }
      return {
        id: node.idPath,
        label: node.name,
        children: node.childList,
      };
    },
    handleChangeCategory (value) {
      if (this.searchForm.categoryList && this.searchForm.categoryList.length >= 1) {
        this.searchForm.typeId = this.searchForm.categoryList[this.searchForm.categoryList.length - 1]