jiangping
2025-04-10 38d365df7bd3e0db5e097cc4b73f173bdb149134
代码初始化
已添加22个文件
已修改3个文件
755 ■■■■ 文件已修改
admin/src/assets/avatar/man.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/avatar/woman.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_func1.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_func2.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_func3.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_func4.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_icon1.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_icon2.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_icon3.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/home_icon4.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_chaosong.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_dangqian.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_duoren.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_grey.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_jujue.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/ic_tongguo.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/shengyin.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/style/variables.scss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/task/bg_shenhe@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/task/bg_shenhe_chexiao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/task/bg_shenhe_fail@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/task/bg_shenhe_pass@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWorkorderDetailSheWindow.vue 579 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWorkorderDetailSheWindow1.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/workorderShe.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/avatar/man.png
admin/src/assets/avatar/woman.png
admin/src/assets/icons/home_func1.png
admin/src/assets/icons/home_func2.png
admin/src/assets/icons/home_func3.png
admin/src/assets/icons/home_func4.png
admin/src/assets/icons/home_icon1.png
admin/src/assets/icons/home_icon2.png
admin/src/assets/icons/home_icon3.png
admin/src/assets/icons/home_icon4.png
admin/src/assets/icons/ic_chaosong.png
admin/src/assets/icons/ic_dangqian.png
admin/src/assets/icons/ic_duoren.png
admin/src/assets/icons/ic_grey.png
admin/src/assets/icons/ic_jujue.png
admin/src/assets/icons/ic_tongguo.png
admin/src/assets/icons/shengyin.png
admin/src/assets/style/variables.scss
@@ -7,6 +7,14 @@
// é¡µé¢æœ€å°å®½åº¦
$page-min-width: 1000px;
$primary-color:  #2080f7;
$primaryColor:  #2080f7;
$primary-title-start-color: #3582ff;
$primary-title-color: #216EcE;
$primary-color-sel: #1659ac;
$primary-color-hover: #1562e2;
$icon-background-color: #186acf;
// å­—体
$font-color: #282828; // é¢œè‰²
$font-size: 12px; // å¤§å°
admin/src/assets/task/bg_shenhe@2x.png
admin/src/assets/task/bg_shenhe_chexiao@2x.png
admin/src/assets/task/bg_shenhe_fail@2x.png
admin/src/assets/task/bg_shenhe_pass@2x.png
admin/src/components/business/OperaWorkorderDetailSheWindow.vue
@@ -1,124 +1,114 @@
<template>
  <GlobalWindow
    :title="title"
    width="60%"
      width="80%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="所属分类编(关联category)" prop="categoryId">
        <el-input v-model="form.categoryId" placeholder="请输入所属分类编(关联category)" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0待确认/待初审 1待分配/待终审 2待处理  3 å·²æ’¤å›ž 4已处理" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0待确认/待初审 1待分配/待终审 2待处理  3 å·²æ’¤å›ž 4已处理" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="类型 0位置责任人 1班长 2物业主管 3工程师 4SHE负责人 5SHE工单邮箱抄送人" prop="type">
        <el-input v-model="form.type" placeholder="请输入类型 0位置责任人 1班长 2物业主管 3工程师 4SHE负责人 5SHE工单邮箱抄送人" v-trim/>
      </el-form-item>
      <el-form-item label="上报人员编码(关联member)" prop="memberId">
        <el-input v-model="form.memberId" placeholder="请输入上报人员编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="部门编码" prop="companyId">
        <el-input v-model="form.companyId" placeholder="请输入部门编码" v-trim/>
      </el-form-item>
      <el-form-item label="上报时间" prop="submitDate">
        <el-input v-model="form.submitDate" placeholder="请输入上报时间" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员类型 0本人 1同事 2供应商" prop="memberType">
        <el-input v-model="form.memberType" placeholder="请输入SHE涉及人员类型 0本人 1同事 2供应商" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员企业编码集合" prop="memberQwids">
        <el-input v-model="form.memberQwids" placeholder="请输入SHE涉及人员企业编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员供应商集合" prop="memberNames">
        <el-input v-model="form.memberNames" placeholder="请输入SHE涉及人员供应商集合" v-trim/>
      </el-form-item>
      <el-form-item label="发生地点/位置编码(关联category)" prop="localtionId">
        <el-input v-model="form.localtionId" placeholder="请输入发生地点/位置编码(关联category)" v-trim/>
      </el-form-item>
      <el-form-item label="是否外部就医 0否 1是" prop="outJiuyi">
        <el-input v-model="form.outJiuyi" placeholder="请输入是否外部就医 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否医务室 0否 1是" prop="isYiwushi">
        <el-input v-model="form.isYiwushi" placeholder="请输入是否医务室 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否受伤 0否 1是" prop="isHurted">
        <el-input v-model="form.isHurted" placeholder="请输入是否受伤 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否和工作相关" prop="workRelated">
        <el-input v-model="form.workRelated" placeholder="请输入是否和工作相关" v-trim/>
      </el-form-item>
      <el-form-item label="事件说明" prop="eventInfo">
        <el-input v-model="form.eventInfo" placeholder="请输入事件说明" v-trim/>
      </el-form-item>
      <el-form-item label="邮件通知人员编码集合" prop="emialMemberIds">
        <el-input v-model="form.emialMemberIds" placeholder="请输入邮件通知人员编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="企业微信通知人员编码集合" prop="qwnoticeMemberIds">
        <el-input v-model="form.qwnoticeMemberIds" placeholder="请输入企业微信通知人员编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="发现时间" prop="happenTime">
        <el-input v-model="form.happenTime" placeholder="请输入发现时间" v-trim/>
      </el-form-item>
      <el-form-item label="风险类型(关联category)" prop="typeId">
        <el-date-picker v-model="form.typeId" value-format="yyyy-MM-dd" placeholder="请输入风险类型(关联category)"></el-date-picker>
      </el-form-item>
      <el-form-item label="风险描述" prop="riskInfo">
        <el-input v-model="form.riskInfo" placeholder="请输入风险描述" v-trim/>
      </el-form-item>
      <el-form-item label="当前物业主管编码(关联member)" prop="managerId">
        <el-input v-model="form.managerId" placeholder="请输入当前物业主管编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="当前处理人员编码(关联member)" prop="dealerId">
        <el-input v-model="form.dealerId" placeholder="请输入当前处理人员编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="分配时间" prop="dispatchTime">
        <el-date-picker v-model="form.dispatchTime" value-format="yyyy-MM-dd" placeholder="请输入分配时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="分配备注" prop="dispatchInfo">
        <el-input v-model="form.dispatchInfo" placeholder="请输入分配备注" v-trim/>
      </el-form-item>
      <el-form-item label="处理时间" prop="dealTime">
        <el-date-picker v-model="form.dealTime" value-format="yyyy-MM-dd" placeholder="请输入处理时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="处理备注" prop="dealInfo">
        <el-input v-model="form.dealInfo" placeholder="请输入处理备注" v-trim/>
      </el-form-item>
      <el-form-item label="DCA问题编码" prop="problemId">
        <el-input v-model="form.problemId" placeholder="请输入DCA问题编码" v-trim/>
      </el-form-item>
      <el-form-item label="DCA问题数量" prop="problemNum">
        <el-input v-model="form.problemNum" placeholder="请输入DCA问题数量" v-trim/>
      </el-form-item>
      <el-form-item label="位置地点路径名称" prop="locationName">
        <el-input v-model="form.locationName" placeholder="请输入位置地点路径名称" v-trim/>
      </el-form-item>
      <el-form-item label="工单号" prop="code">
        <el-input v-model="form.code" placeholder="请输入工单号" v-trim/>
      </el-form-item>
    </el-form>
      @confirm="confirm">
    <div class="modal_wrap">
      <div class="modal_content">
        <div class="header">
          <img v-if="info.status == '3'" class="head_bg"
               src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
          <img v-else-if="info.status == '4'" class="head_bg"
               src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
          <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
          <div class="left">
            <div class="h1">{{ cateList[type] }}</div>
            <div class="time">提交时间:{{ info.createDate }}</div>
          </div>
          <div class="right"  :class="{ scs: info.status == '4', msg: info.status == '3' }">{{   statusMap[info.status] }}</div>
        </div>
        <div class="info">
          <div class="title">访客预约信息</div>
          <div class="list">
            <div class="item">
              <div class="label">被访人</div>
              <div class="value">{{ info.visitUserName }}</div>
            </div>
            <div class="item">
              <div class="label">来访时间</div>
              <div class="value">{{ info.visitTime }}</div>
            </div>
            <div class="item">
              <div class="label">来访事由</div>
              <div class="value">{{ info.visitReason }}</div>
            </div>
            <div class="item">
              <div class="label">随行车辆</div>
              <div class="value">{{ info.carNos }}</div>
            </div>
            <div class="item">
              <div class="label">涉及施工作业</div>
              <div class="value">{{ info.type == "0" ? "否" : "是" }}</div>
            </div>
            <div class="item">
              <div class="label">施工内容</div>
              <div class="value">{{ info.constructionReason }}</div>
            </div>
          </div>
        </div>
      </div>
      <div class="side">
        <div class="side_title">操作历史</div>
        <div class="list" v-if=" info.logList != null && info.logList.length != 0
        ">
          <div class="item" v-for="(item, index) in infologList" :key="item.id">
            <div class="separate" v-if="index < info.logList.length - 1"></div>
            <div class="info">
              <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
              <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
              <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
              <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
              <div style="display: inline" v-if="item.approveType != 1">
                <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
                <img v-if="item.faceImg == null || item.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
                     alt="" />
              </div>
              <div style="display: inline" v-if="item.approveType == 1">
                <img v-if="item.type != 1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
                <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
              </div>
              <div class="content">
                <div class="line">
                  <div class="name">{{ item.title }}</div>
                  <div class="time">{{ item.checkDate }}</div>
                </div>
                <div class="line">
                  <div class="company">
                    {{ item.memberName }}
                    <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
                      ï¼ˆ<span :class="{ padding: item.statusInfo == '处理中' || item.status == '1' }">{{
                        item.statusInfo || ""
                      }}</span>)
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div v-if="
              item.approveType != 1 &&
              item.checkInfo != null &&
              item.checkInfo != ''
            " class="remark">
              {{ item.checkInfo || "" }}
            </div>
            <div v-if="item.approveType == 1" class="childList">
              <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
                     alt="" />
                <span> {{ item1.memberName }}</span>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!--  -->
    <template v-slot:footer>
      <el-button @click="close">返回</el-button>
    </template>
  </GlobalWindow>
</template>
@@ -131,31 +121,352 @@
  components: { GlobalWindow },
  data () {
    return {
      // è¡¨å•数据
      form: { },
      // éªŒè¯è§„则
      rules: {
      }
    }
      id: '',
      type: null,
      title: '工单详情',
      info: {},
      statusMap: {
        0: '待审核',
        1: '处理中',
        2: '已同意',
        3: '已拒绝',
        4: '已取消',
  },
  created () {
    this.config({
      api: '/business/workorder',
      'field.id': 'id'
    })
      cateList: {
        0: 'SHE事件工单',
        1: '跌绊滑事件工单',
        2: 'DCA事件提交记录',
        3: 'DCA事件工单'
      }
    }
  },
  methods:{
    /**
     * æ‰“开窗口
     *
     * @param title çª—口标题
     * @param target è¡Œå¯¹è±¡ï¼ˆä»…编辑需该参数)
     */
    open (title, target) {
      this.title = title
      this.visible = true
      this.form = target
      this.info = target
      this.type = this.info.type
    },
    close () {
      this.visible = false
    },
    getDetail () {
      const { id, type } = this
      switch (type) {
      case 0:
        getVisitedDetail({ id }).then(res => {
          this.info = res
          if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
            this.info.approveDateVO.approveList.forEach(item => {
              if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
                item.title = item.approveList[0].title
                item.faceImg = item.approveList[0].faceImg
                item.memberName = item.approveList[0].memberName
                item.statusInfo = item.approveList[0].statusInfo
                item.approveList = []
    }
            })
          }
        })
        break
      default:
        break
      }
    },
    reject () { },
    handleAvatarSuccess () { },
    beforeAvatarUpload () { }
  }
}
</script>
<style lang="scss" scoped>
@import "@/assets/style/variables.scss";
.upload_box {
  width: 84px;
  height: 84px;
  border-radius: 4px;
  background-color: #f7f7f7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #999999;
  border: 1px solid #e4e4e4;
  .icon {
    font-size: 24px;
  }
  .text {
    font-size: 12px;
  }
}
.side_title {
  font-weight: 600;
  font-size: 18px;
  color: #111111;
  margin-bottom: 20px;
  margin-left: 20px;
  margin-top: 20px;
}
.modal_wrap {
  display: flex;
  height: 100%;
  .modal_content {
    flex: 1;
    padding: 0px 30px;
    border-radius: 8px;
    overflow: hidden;
    height: 100%;
    .title {
      font-weight: 600;
      font-size: 18px;
      color: #333333;
      margin-bottom: 20px;
      margin-top: 30px;
    }
    .info {
      .list {
        display: flex;
        flex-wrap: wrap;
        .item {
          display: flex;
          width: 40%;
          margin-bottom: 20px;
          &:nth-of-type(2n) {
            width: 60%;
          }
          .label {
            color: #888888;
            width: 100px;
          }
          .value {
            color: #111111;
          }
        }
      }
    }
    .header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 20px 30px;
      margin: 0 -30px;
      border-radius: 8px 8px 0 0;
      position: relative;
      .head_bg {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        z-index: 9;
      }
      .h1 {
        font-weight: 600;
        font-size: 22px;
        color: #111111;
        margin-bottom: 8px;
      }
      .time {
        font-size: 14px;
        color: #999999;
      }
      .right {
        height: 40px;
        font-size: 16px;
        color: #ffffff;
        line-height: 40px;
        padding: 0 20px;
        background: #207ff7;
        box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
        border-radius: 16px 0px 16px 0px;
        position: relative;
        z-index: 99;
      }
      .scs {
        background-color: #00BA67;
      }
      .msg {
        background-color: #ED4545;
      }
    }
    .table_info {
      .name_wrap {
        display: flex;
        align-items: center;
        .avatar {
          width: 40px;
          height: 40px;
          border-radius: 50%;
          margin-right: 12px;
        }
        .content {
          .line {
            display: flex;
          }
          .tag {
            color: #b2cbf9;
            border: 1px solid #b2cbf9;
            padding: 0px 4px;
            border-radius: 4px;
            margin-left: 6px;
          }
        }
      }
    }
  }
  .side {
    height: 100%;
    width: 420px;
    background: #ffffff;
    border-left: 20px solid #f7f7f7;
    .list {
      .item {
        padding: 8px 0;
        position: relative;
        .separate {
          position: absolute;
          border-left: 2px dashed #cccccc;
          left: 31px;
          height: calc(100% - 30px);
          top: 49px;
        }
        .avatar {
          width: 40px;
          height: 40px;
          border-radius: 50%;
          margin: 0 12px 0 16px;
          //border: 1px solid;
        }
        .childList {
          display: flex;
          flex-wrap: wrap;
          margin-left: 100px;
        }
        .company {
          font-size: 13px;
          color: #888888;
          .status {
            color: $primaryColor;
          }
        }
        .m_content {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          margin-bottom: 4px;
        }
        .info {
          display: flex;
          align-items: center;
          margin-left: 20px;
          .icon {
            position: relative;
            z-index: 11;
            color: #53b76f;
            font-size: 24px;
          }
          .icon1 {
            position: relative;
            z-index: 11;
            color: deepskyblue;
            font-size: 24px;
          }
          .icon2 {
            position: relative;
            z-index: 11;
            color: #dc362e;
            font-size: 24px;
          }
          .iconnew {
            width: 24px;
            height: 24px;
          }
          .icon3 {
            position: relative;
            z-index: 11;
            color: gray;
            font-size: 24px;
          }
          .content {
            flex: 1;
            .line {
              display: flex;
              justify-content: space-between;
              align-content: center;
              margin-bottom: 6px;
              .status {
                color: #888888;
              }
              .padding {
                color: $primaryColor;
              }
              .name {
                font-weight: 600;
                font-size: 16px;
                color: #111111;
              }
              .time {
                color: #888888;
              }
            }
          }
        }
        .remark {
          background: #f7f7f7;
          border-radius: 4px;
          padding: 13px 15px;
          color: #666666;
          margin-left: 100px;
        }
      }
    }
  }
}
</style>
admin/src/components/business/OperaWorkorderDetailSheWindow1.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
<template>
  <GlobalWindow
    :title="title"
    width="60%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="所属分类编(关联category)" prop="categoryId">
        <el-input v-model="form.categoryId" placeholder="请输入所属分类编(关联category)" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0待确认/待初审 1待分配/待终审 2待处理  3 å·²æ’¤å›ž 4已处理" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0待确认/待初审 1待分配/待终审 2待处理  3 å·²æ’¤å›ž 4已处理" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="类型 0位置责任人 1班长 2物业主管 3工程师 4SHE负责人 5SHE工单邮箱抄送人" prop="type">
        <el-input v-model="form.type" placeholder="请输入类型 0位置责任人 1班长 2物业主管 3工程师 4SHE负责人 5SHE工单邮箱抄送人" v-trim/>
      </el-form-item>
      <el-form-item label="上报人员编码(关联member)" prop="memberId">
        <el-input v-model="form.memberId" placeholder="请输入上报人员编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="部门编码" prop="companyId">
        <el-input v-model="form.companyId" placeholder="请输入部门编码" v-trim/>
      </el-form-item>
      <el-form-item label="上报时间" prop="submitDate">
        <el-input v-model="form.submitDate" placeholder="请输入上报时间" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员类型 0本人 1同事 2供应商" prop="memberType">
        <el-input v-model="form.memberType" placeholder="请输入SHE涉及人员类型 0本人 1同事 2供应商" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员企业编码集合" prop="memberQwids">
        <el-input v-model="form.memberQwids" placeholder="请输入SHE涉及人员企业编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="SHE涉及人员供应商集合" prop="memberNames">
        <el-input v-model="form.memberNames" placeholder="请输入SHE涉及人员供应商集合" v-trim/>
      </el-form-item>
      <el-form-item label="发生地点/位置编码(关联category)" prop="localtionId">
        <el-input v-model="form.localtionId" placeholder="请输入发生地点/位置编码(关联category)" v-trim/>
      </el-form-item>
      <el-form-item label="是否外部就医 0否 1是" prop="outJiuyi">
        <el-input v-model="form.outJiuyi" placeholder="请输入是否外部就医 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否医务室 0否 1是" prop="isYiwushi">
        <el-input v-model="form.isYiwushi" placeholder="请输入是否医务室 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否受伤 0否 1是" prop="isHurted">
        <el-input v-model="form.isHurted" placeholder="请输入是否受伤 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="是否和工作相关" prop="workRelated">
        <el-input v-model="form.workRelated" placeholder="请输入是否和工作相关" v-trim/>
      </el-form-item>
      <el-form-item label="事件说明" prop="eventInfo">
        <el-input v-model="form.eventInfo" placeholder="请输入事件说明" v-trim/>
      </el-form-item>
      <el-form-item label="邮件通知人员编码集合" prop="emialMemberIds">
        <el-input v-model="form.emialMemberIds" placeholder="请输入邮件通知人员编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="企业微信通知人员编码集合" prop="qwnoticeMemberIds">
        <el-input v-model="form.qwnoticeMemberIds" placeholder="请输入企业微信通知人员编码集合" v-trim/>
      </el-form-item>
      <el-form-item label="发现时间" prop="happenTime">
        <el-input v-model="form.happenTime" placeholder="请输入发现时间" v-trim/>
      </el-form-item>
      <el-form-item label="风险类型(关联category)" prop="typeId">
        <el-date-picker v-model="form.typeId" value-format="yyyy-MM-dd" placeholder="请输入风险类型(关联category)"></el-date-picker>
      </el-form-item>
      <el-form-item label="风险描述" prop="riskInfo">
        <el-input v-model="form.riskInfo" placeholder="请输入风险描述" v-trim/>
      </el-form-item>
      <el-form-item label="当前物业主管编码(关联member)" prop="managerId">
        <el-input v-model="form.managerId" placeholder="请输入当前物业主管编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="当前处理人员编码(关联member)" prop="dealerId">
        <el-input v-model="form.dealerId" placeholder="请输入当前处理人员编码(关联member)" v-trim/>
      </el-form-item>
      <el-form-item label="分配时间" prop="dispatchTime">
        <el-date-picker v-model="form.dispatchTime" value-format="yyyy-MM-dd" placeholder="请输入分配时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="分配备注" prop="dispatchInfo">
        <el-input v-model="form.dispatchInfo" placeholder="请输入分配备注" v-trim/>
      </el-form-item>
      <el-form-item label="处理时间" prop="dealTime">
        <el-date-picker v-model="form.dealTime" value-format="yyyy-MM-dd" placeholder="请输入处理时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="处理备注" prop="dealInfo">
        <el-input v-model="form.dealInfo" placeholder="请输入处理备注" v-trim/>
      </el-form-item>
      <el-form-item label="DCA问题编码" prop="problemId">
        <el-input v-model="form.problemId" placeholder="请输入DCA问题编码" v-trim/>
      </el-form-item>
      <el-form-item label="DCA问题数量" prop="problemNum">
        <el-input v-model="form.problemNum" placeholder="请输入DCA问题数量" v-trim/>
      </el-form-item>
      <el-form-item label="位置地点路径名称" prop="locationName">
        <el-input v-model="form.locationName" placeholder="请输入位置地点路径名称" v-trim/>
      </el-form-item>
      <el-form-item label="工单号" prop="code">
        <el-input v-model="form.code" placeholder="请输入工单号" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
export default {
  name: 'OperaWorkorderWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      // è¡¨å•数据
      form: { },
      // éªŒè¯è§„则
      rules: {
      }
    }
  },
  created () {
    this.config({
      api: '/business/workorder',
      'field.id': 'id'
    })
  },
  methods:{
    /**
     * æ‰“开窗口
     *
     * @param title çª—口标题
     * @param target è¡Œå¯¹è±¡ï¼ˆä»…编辑需该参数)
     */
    open (title, target) {
      this.title = title
      this.visible = true
      this.form = target
    }
  }
}
</script>
admin/src/views/business/workorderShe.vue
@@ -35,13 +35,13 @@
        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="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>
@@ -83,8 +83,7 @@
            </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="createDate" label="创建时间" min-width="150px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
          label="操作"