MrShi
2025-04-11 3a45da15c947c2d478a44a51bd0f926647b1b841
company/src/components/business/dispatchReview.vue
@@ -1,61 +1,64 @@
<template>
    <GlobalWindow
        :title="title"
        width="50%"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
    >
        <div class="box">
            <div class="box_label">保险方案:平安保险雇主责任险B版</div>
            <el-table
                :data="tableData"
                border
                style="width: 100%">
                <el-table-column
                    prop="date"
                    label="日期">
                </el-table-column>
                <el-table-column
                    prop="name"
                    label="姓名">
                </el-table-column>
                <el-table-column
                    prop="address"
                    label="地址">
                </el-table-column>
            </el-table>
      <!--    驳回退回申请    -->
      <div class="form">
        <div class="form_item">
          <div class="form_item_label"><span>*</span>审核说明:</div>
          <div class="form_item_val">
            <el-input type="textarea" v-model="checkInfo" :rows="2" placeholder="请输入"></el-input>
          </div>
        </div>
        <!--    驳回退回申请    -->
        <el-dialog
            title="审核确认"
            :visible.sync="visible5"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label"><span>*</span>审核说明:</div>
                    <div class="form_item_val">
                        <el-input type="textarea" :rows="2" placeholder="请输入"></el-input>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible5 = false">取 消</el-button>
                <el-button type="primary" @click="visible5 = false">确 定</el-button>
            </span>
        </el-dialog>
        <template v-slot:footer>
            <el-button type="primary" @click="visible5 = true">审核通过</el-button>
            <el-button @click="visible5 = true">审核退回</el-button>
        </template>
      </div>
       <div class="box" v-for="(item, index) in duSolutionList" :key="index">
        <div   class="box_label">保险方案:{{item.solutionName}}</div>
        <el-table
          v-if="item.duWorktypeList && item.duWorktypeList.length>0"
          :data="item.duWorktypeList"
          border
          style="width: 100%">
          <el-table-column label="序号" width="80px">
            <template slot-scope="scope">
              <span>{{scope.$index + 1}}</span>
            </template>
          </el-table-column>
          <el-table-column
            prop="workTypeName"
            label="所属工种">
          </el-table-column>
          <el-table-column
            prop="name"
            label="操作视频">
            <template slot-scope="{row}">
              <video loop controls width="150px" height="150px" :src="row.videoUrlFull" v-if="row.videoUrlFull"></video>
            </template>
          </el-table-column>
          <el-table-column
            label="状态">
            <template slot-scope="{row}">
              <span :class="'du-status'+row.status" v-if="row.status === 0">待审核</span>
              <span :class="'du-status'+row.status"  v-if="row.status === 1">审核通过</span>
              <span :class="'du-status'+row.status"  v-if="row.status === 2">审核不通过</span>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <template v-slot:footer>
        <el-button type="primary" @click="doSubmit(1)">审核通过</el-button>
        <el-button type="danger" @click="doSubmit(2)">审核退回</el-button>
        <el-button @click="visible=false">取消</el-button>
      </template>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import {checkWorktype} from "@/api/business/dispatchUnit";
    export default {
        name: 'dispatchReview',
        extends: BaseOpera,
@@ -63,10 +66,11 @@
        data () {
            return {
                // 表单数据
              checkInfo:'',
                form: {
                    id: null,
                    editDate: ''
                  duSolutionList:[]
                },
              duSolutionList:[],
                // 验证规则
                rules: {
                },
@@ -81,6 +85,49 @@
            })
        },
        methods: {
          open(title, target){
            this.title=title
            this.visible=true
            this.form ={}
            this.checkInfo=''
            this.form = target
            this.duSolutionList=[]
            var duSolutionList = this.form.duSolutionList;
            duSolutionList.forEach(item => {
                var worktyps = item.duWorktypeList;
                var flag = 0;
              var tempworktyps = new Array();
                worktyps.forEach(item1 => {
                   if(item1.status == null || item1.status == 0){
                     //如果是待审核工种
                     flag = 1;
                     tempworktyps.push(item1);
                   }
                })
              if(flag ==1){
                this.duSolutionList.push({duWorktypeList:tempworktyps,solutionName:item.solutionName})
              }
            })
            console.log(this.form)
          },
          doSubmit(type){
            if (!this.checkInfo) {
              this.$message.warning('请输入审核说明!')
              return
            }
            this.$dialog.messageConfirm('确认进行该操作吗?')
              .then(() => {
                this.isWorking = true
                checkWorktype({id:this.form.id,checkInfo:this.checkInfo,worktypeStatus:type})
                  .then(response => {
                    this.visible = false
                    this.$emit('success')
                  }).catch(err => {
                    this.$tip.apiFailed(err)
                  })
              })
          }
        }
    }
@@ -101,6 +148,7 @@
        display: flex;
        align-items: center;
        flex-direction: column;
      margin-bottom: 50px;
        .form_span {
            width: 100%;
            display: flex;
@@ -122,13 +170,13 @@
            width: 100%;
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            margin-bottom: 50px;
            &:last-child {
                margin: 0 !important;
            }
            .form_item_label {
                flex-shrink: 0;
                width: 170px;
                //width: 170px;
                color: black;
                font-size: 14px;
                span {