2024-05-14 18:16:17 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="plan-form" :class="{ dark: styleType == 2 }">
|
|
|
|
|
|
<div style="height: 100%">
|
|
|
|
|
|
<vue-scroll>
|
|
|
|
|
|
<div class="wrap">
|
|
|
|
|
|
<div class="left">
|
|
|
|
|
|
<div class="info">
|
|
|
|
|
|
<div class="box-title-danger">
|
|
|
|
|
|
<span>基本信息</span>
|
|
|
|
|
|
<div class="item-status" v-if="isSuperDanger">
|
|
|
|
|
|
<img src="@/assets/images/yu.png" alt="" />
|
|
|
|
|
|
<span>超危</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<!-- <div v-permission="{ key: 'wdgc_end', menuPath: '/project/dangerousBigProject/parameter' }"
|
2024-05-14 18:16:17 +08:00
|
|
|
|
class="close-task">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<el-button
|
2024-05-14 18:16:17 +08:00
|
|
|
|
type="primary"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
v-if="detailData.isEnd == 0"
|
|
|
|
|
|
@click="endDanger"
|
|
|
|
|
|
>结束危大工程</el-button
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
v-else
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
disabled
|
|
|
|
|
|
>危大工程已结束</el-button
|
2024-05-15 18:23:40 +08:00
|
|
|
|
>
|
|
|
|
|
|
<span v-else>危大工程已结束</span>
|
|
|
|
|
|
</div> -->
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<slot name="basicinfo"></slot>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="control-point">
|
2024-05-15 11:57:38 +08:00
|
|
|
|
<div class="box-title" v-if="$slots.gasanalysis">
|
2024-05-18 18:53:34 +08:00
|
|
|
|
{{tableName ? tableName : '气体分析'}}
|
2024-05-14 18:16:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<slot name="gasanalysis"></slot>
|
|
|
|
|
|
<!-- <div class="gasanalysis-table">
|
|
|
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="3">气体取样分析时间</el-col>
|
|
|
|
|
|
<el-col :span="3">12-03 12:00</el-col>
|
|
|
|
|
|
<el-col :span="3">12-03 12:00</el-col>
|
|
|
|
|
|
<el-col :span="3">12-03 12:00</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="3">代表性气体</el-col>
|
|
|
|
|
|
<el-col :span="3">一氧化氢</el-col>
|
|
|
|
|
|
<el-col :span="3">一氧化氢</el-col>
|
|
|
|
|
|
<el-col :span="3">一氧化氢</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="3">分析结果/%</el-col>
|
|
|
|
|
|
<el-col :span="3">50%</el-col>
|
|
|
|
|
|
<el-col :span="3">50%</el-col>
|
|
|
|
|
|
<el-col :span="3">50%</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
</div>
|
2024-05-17 20:13:58 +08:00
|
|
|
|
<!-- v-if="COMPANY != 'longguang'" -->
|
|
|
|
|
|
<div class="others-info">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div class="info-item">
|
|
|
|
|
|
<div class="box-title">
|
|
|
|
|
|
施工进度
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-detail flex">
|
|
|
|
|
|
<div class="plan-content">
|
|
|
|
|
|
当前进度:{{
|
|
|
|
|
|
progressData.length > 0
|
|
|
|
|
|
? progressData[0].progressDescribe
|
|
|
|
|
|
: "- -"
|
|
|
|
|
|
}}
|
|
|
|
|
|
<!-- <div v-if="progressData.length>0 && progressData[0].imageUrl"
|
|
|
|
|
|
style="margin-left: 48px;">
|
|
|
|
|
|
<el-image
|
|
|
|
|
|
v-for="(item,index) in progressData[0].imageUrl.split(',')"
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
style="width: 80px; height: 80px;margin-left: 20px;margin-top: 10px"
|
|
|
|
|
|
:src="fileUrl + item"
|
|
|
|
|
|
:preview-src-list="[fileUrl + item]">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-button size="medium" class="print-btn" @click="dialogVisible = true">历史进度记录</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-detail flex">
|
|
|
|
|
|
<span>现场照片:</span>
|
|
|
|
|
|
<div v-if="progressData.length > 0 && progressData[0].imageUrl">
|
|
|
|
|
|
<el-image v-for="(item, index) in progressData[0].imageUrl.split(
|
|
|
|
|
|
','
|
|
|
|
|
|
)" :key="index" style="width: 80px; height: 80px;" :src="fileUrl + item"
|
|
|
|
|
|
:preview-src-list="[fileUrl + item]">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
|
|
|
<div class="box-title">
|
|
|
|
|
|
安全检查
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="safe-detail flex">
|
|
|
|
|
|
<div class="safe-content">
|
|
|
|
|
|
问题隐患:当前存在{{
|
2024-05-15 18:23:40 +08:00
|
|
|
|
workDetail.hiddenDangerNum
|
2024-05-14 18:16:17 +08:00
|
|
|
|
}}个未销隐患
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-button size="medium" class="print-btn" @click="dialogVisible4 = true">历史隐患记录</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="safe-detail flex">
|
|
|
|
|
|
<div class="safe-content">
|
|
|
|
|
|
排查记录:{{ inspectRecordData.length }}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-button size="medium" class="print-btn" @click="dialogVisible5 = true">历史排查记录</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="bottom">
|
|
|
|
|
|
<div class="info-item">
|
|
|
|
|
|
<div class="box-title">
|
|
|
|
|
|
旁站记录
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-detail flex">
|
|
|
|
|
|
<div class="plan-content">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
施工部位:{{
|
|
|
|
|
|
sideStationData.length > 0
|
|
|
|
|
|
? sideStationData[0].sideStationAddr
|
|
|
|
|
|
: "- -"
|
|
|
|
|
|
}}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
旁站记录: {{
|
|
|
|
|
|
sideStationData.length > 0
|
|
|
|
|
|
? sideStationData[0].buildSituation
|
|
|
|
|
|
: "- -"
|
|
|
|
|
|
}}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div v-if="
|
|
|
|
|
|
sideStationData.length > 0 &&
|
|
|
|
|
|
sideStationData[0].imageUrl
|
|
|
|
|
|
" style="margin-left: 48px;">
|
|
|
|
|
|
<el-image v-for="(item,
|
|
|
|
|
|
index) in sideStationData[0].imageUrl.split(',')" :key="index"
|
|
|
|
|
|
style="width: 80px; height: 80px;margin-left: 20px;margin-top: 10px" :src="fileUrl + item"
|
|
|
|
|
|
:preview-src-list="[fileUrl + item]">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-button size="medium" class="print-btn" @click="dialogVisible2 = true">历史旁站记录</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
|
|
|
<div class="box-title">
|
|
|
|
|
|
<!-- 一般验收 -->
|
|
|
|
|
|
最终验收
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-detail flex">
|
|
|
|
|
|
<div class="plan-content2">
|
|
|
|
|
|
验收结果:{{
|
|
|
|
|
|
checkData.length > 0
|
|
|
|
|
|
? checkData[0].acceptanceResult == undefined || checkData[0].acceptanceResult == null ||
|
|
|
|
|
|
checkData[0].acceptanceResult == ''
|
|
|
|
|
|
? "待确认"
|
|
|
|
|
|
: checkData[0].acceptanceResult == 1 ? '合格' : checkData[0].acceptanceResult == 2 ? '不合格' : "- -"
|
|
|
|
|
|
: ''
|
|
|
|
|
|
}}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-content2">
|
|
|
|
|
|
验收类型:{{
|
|
|
|
|
|
checkData.length > 0
|
|
|
|
|
|
? checkData[0].acceptanceType == 1
|
|
|
|
|
|
? "施工条件验收"
|
|
|
|
|
|
: "危大工程验收"
|
|
|
|
|
|
: "- -"
|
|
|
|
|
|
}}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-button size="medium" class="print-btn" @click="dialogVisible3 = true">历史验收记录</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="plan-detail">
|
|
|
|
|
|
<div class="plan-content">
|
|
|
|
|
|
验收描述:{{
|
|
|
|
|
|
checkData.length > 0
|
|
|
|
|
|
? checkData[0].acceptanceDesc
|
|
|
|
|
|
: "- -"
|
|
|
|
|
|
}}
|
|
|
|
|
|
<div v-if="
|
|
|
|
|
|
checkData.length > 0 &&
|
|
|
|
|
|
checkData[0].photo
|
|
|
|
|
|
" style="margin-left: 48px;">
|
|
|
|
|
|
<!-- v-for="(item, index) in checkData" :key="index" -->
|
|
|
|
|
|
<el-image style="width: 80px; height: 80px;margin-left: 20px;margin-top: 10px"
|
|
|
|
|
|
:src="fileUrl + checkData[0].photo" :preview-src-list="[fileUrl + checkData[0].photo]">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="box-title">
|
|
|
|
|
|
安全措施
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="safety-table">
|
|
|
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="22"> </el-col>
|
|
|
|
|
|
<el-col :span="2">是否涉及</el-col>
|
|
|
|
|
|
<!-- <el-col :span="2">确认人</el-col> -->
|
|
|
|
|
|
</el-row>
|
2024-05-16 18:11:14 +08:00
|
|
|
|
<el-row v-for="(item, index) in workDetail.safeMeasure && JSON.parse(workDetail.safeMeasure) instanceof Array && JSON.parse(workDetail.safeMeasure)" :key="index">
|
|
|
|
|
|
<el-col :span="22">{{index + 1}}.{{item.name}}</el-col>
|
|
|
|
|
|
<el-col :span="2" :class="{'green':item.flag == '是','red':item.flag == '否'}">{{item.flag}}</el-col>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<!-- <el-col :span="2">丁曼容</el-col> -->
|
|
|
|
|
|
</el-row>
|
2024-05-16 18:11:14 +08:00
|
|
|
|
<!-- <el-row>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<el-col :span="22">2.盛装过有毒、可燃物料的受限空间,设备已经过置换、吹扫或蒸煮</el-col>
|
|
|
|
|
|
<el-col :span="2">是</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="22">3.设备通风孔已打开进行自然通风,温度适宜人员作业;必要时采用强制通风或佩戴隔绝式呼吸防护装备,不应采用直接通入氧气或富氧空气的方法补充氧</el-col>
|
|
|
|
|
|
<el-col :span="2" class="red">否</el-col>
|
2024-05-16 18:11:14 +08:00
|
|
|
|
</el-row> -->
|
2024-05-15 18:23:40 +08:00
|
|
|
|
</div>
|
2024-05-15 20:02:29 +08:00
|
|
|
|
<div class="info border-top_1">
|
|
|
|
|
|
<div class="box-title-danger">
|
|
|
|
|
|
<span>其它安全措施</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="info-content">
|
|
|
|
|
|
<el-form class="form-box" :model="workDetail">
|
|
|
|
|
|
<el-form-item label="其它安全措施内容:" :label-width="formLabelWidth">
|
2024-05-16 18:11:14 +08:00
|
|
|
|
{{workDetail.otherSafeMeasure&& JSON.parse(workDetail.otherSafeMeasure) instanceof Array && JSON.parse(workDetail.otherSafeMeasure).map(item => item.content).join(',')}}
|
2024-05-15 20:02:29 +08:00
|
|
|
|
</el-form-item>
|
2024-05-16 18:11:14 +08:00
|
|
|
|
<!-- <el-form-item label="是否涉及:" :label-width="formLabelWidth">
|
2024-05-15 20:02:29 +08:00
|
|
|
|
{{workDetail.acceptTheInformantName}}
|
2024-05-16 18:11:14 +08:00
|
|
|
|
</el-form-item> -->
|
2024-05-15 20:02:29 +08:00
|
|
|
|
<el-form-item label="编制人:" :label-width="formLabelWidth">
|
2024-05-16 18:11:14 +08:00
|
|
|
|
{{workDetail.otherSafeMeasure&& JSON.parse(workDetail.otherSafeMeasure) instanceof Array && JSON.parse(workDetail.otherSafeMeasure).map(item => item.person).join('、')}}
|
2024-05-15 20:02:29 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="info border-top_1">
|
|
|
|
|
|
<div class="box-title-danger">
|
|
|
|
|
|
<span>安全交底人</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="info-content">
|
|
|
|
|
|
<el-form class="form-box" :model="workDetail">
|
|
|
|
|
|
<el-form-item label="安全交底人:" :label-width="formLabelWidth">
|
|
|
|
|
|
{{workDetail.safetyInformantName}}
|
|
|
|
|
|
</el-form-item>
|
2024-05-16 09:27:37 +08:00
|
|
|
|
<el-form-item label="接受交底人:" :label-width="formLabelWidth">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
{{workDetail.acceptTheInformantName}}
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="监护人:" v-if="COMPANY != 'longguang'" :label-width="formLabelWidth">
|
|
|
|
|
|
{{workDetail.guardianName}}
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- <div class="button-box">
|
|
|
|
|
|
<el-button class="cancle-btn" icon="el-icon-circle-close" size="small" @click="cancle">取消</el-button>
|
|
|
|
|
|
<el-button type="primary" icon="el-icon-circle-check" size="small" @click="submit">保存</el-button>
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
</vue-scroll>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-dialog title="历史进度记录" :visible.sync="dialogVisible" width="880px" :modal-append-to-body="false">
|
|
|
|
|
|
<el-table class="tables" :data="progressData" height="500" style="width: 100%;">
|
|
|
|
|
|
<el-table-column prop="progressDescribe" label="进度描述">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="图片">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-image v-if="scope.row.imageUrl" style="width: 50px; height: 50px;"
|
|
|
|
|
|
:src="fileUrl + scope.row.imageUrl.split(',')[0]" :preview-src-list="scope.row.fileList">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createUserName" label="记录人">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createTime" label="记录时间"> </el-table-column>
|
2024-05-18 18:53:34 +08:00
|
|
|
|
<el-table-column label="操作" width="80" v-if="$store.state.userInfo.accountType != 6 || ($store.state.userInfo.userId == workDetail.assignmentPersonInCharge)">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="delete" @click="deleteDangerousEngineeringProgressRecord(scope.row.id)">
|
|
|
|
|
|
<i class="el-icon-delete delete-btn"></i>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<span>删除</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="历史旁站记录" :visible.sync="dialogVisible2" width="880px" :modal-append-to-body="false">
|
|
|
|
|
|
<el-table class="tables" :data="sideStationData" height="500" style="width: 100%;">
|
|
|
|
|
|
<el-table-column prop="sideStationAddr" label="施工部位">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="buildSituation" label="旁站记录">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="图片">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-image v-if="scope.row.imageUrl" style="width: 50px; height: 50px;"
|
|
|
|
|
|
:src="fileUrl + scope.row.imageUrl.split(',')[0]" :preview-src-list="scope.row.fileList">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createUserName" label="记录人">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createTime" label="记录时间"> </el-table-column>
|
2024-05-18 18:53:34 +08:00
|
|
|
|
<el-table-column label="操作" width="80" v-if="$store.state.userInfo.accountType != 6 || ($store.state.userInfo.userId == workDetail.assignmentPersonInCharge)">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="delete" @click="deleteDangerousEngineeringSideStation(scope.row.id)">
|
|
|
|
|
|
<i class="el-icon-delete delete-btn"></i>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<span>删除</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="历史验收记录" :visible.sync="dialogVisible3" width="880px" :modal-append-to-body="false">
|
|
|
|
|
|
<el-table class="tables" :data="checkData" height="500" style="width: 100%;">
|
|
|
|
|
|
<el-table-column prop="acceptanceDesc" label="验收描述">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="验收类型">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
{{
|
|
|
|
|
|
scope.row.acceptanceType == 1 ? "施工条件验收" : "危大工程验收"
|
|
|
|
|
|
}}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="验收结果">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<p v-if="scope.row.acceptanceResult === undefined
|
|
|
|
|
|
|| scope.row.acceptanceResult === null || scope.row.acceptanceResult === ''">待确认</p>
|
|
|
|
|
|
<p v-if="scope.row.acceptanceResult === 1">合格</p>
|
|
|
|
|
|
<p v-if="scope.row.acceptanceResult === 2">不合格</p>
|
|
|
|
|
|
<!-- {{ scope.row.acceptanceResult == 1 ? "合格" : "不合格" }} -->
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="图片">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-image v-if="scope.row.photo" style="width: 50px; height: 50px;"
|
|
|
|
|
|
:src="fileUrl + scope.row.photo.split(',')[0]" :preview-src-list="scope.row.fileList">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="acceptanceUserName" label="记录人">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createTime" label="记录时间"> </el-table-column>
|
2024-05-18 18:53:34 +08:00
|
|
|
|
<el-table-column label="操作" width="80" v-if="$store.state.userInfo.accountType != 6 || ($store.state.userInfo.userId == workDetail.assignmentPersonInCharge)">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="delete" @click="deleteDangerousEngineeringAcceptanceCheck(scope.row.id)">
|
|
|
|
|
|
<i class="el-icon-delete delete-btn" ></i>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<span>删除</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="历史隐患记录" :visible.sync="dialogVisible4" width="1280px" :modal-append-to-body="false">
|
|
|
|
|
|
<el-table class="tables" :data="hiddenDangerData" height="500" style="width: 100%;">
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column align="center" width="200" prop="changeLimitTime" :label="$t('message.quality.inspectionResult') +
|
|
|
|
|
|
'/' +
|
|
|
|
|
|
$t('message.quality.rectificationLimit')
|
|
|
|
|
|
">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-button type="text" v-if="scope.row.status != 6">
|
|
|
|
|
|
{{
|
|
|
|
|
|
scope.row.status == 1
|
|
|
|
|
|
? $t("message.quality.noRectification")
|
|
|
|
|
|
: scope.row.status == 2
|
|
|
|
|
|
? $t("message.quality.afterRectification")
|
|
|
|
|
|
: scope.row.status == 3
|
|
|
|
|
|
? $t("message.quality.toReview")
|
|
|
|
|
|
: scope.row.status == 4
|
|
|
|
|
|
? $t("message.quality.toCheck")
|
|
|
|
|
|
: scope.row.status == 5
|
|
|
|
|
|
? $t("message.quality.qualified")
|
|
|
|
|
|
: scope.row.status == 6
|
|
|
|
|
|
? $t("message.quality.disqualification")
|
|
|
|
|
|
: scope.row.status == ""
|
|
|
|
|
|
? $t("message.quality.qualified")
|
|
|
|
|
|
: ""
|
|
|
|
|
|
}}
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<span style="color: #94979E;" v-else>已撤回</span>
|
|
|
|
|
|
<span class="tableStatus" v-show="scope.row.overTime == true && scope.row.status != 6">超期</span>
|
|
|
|
|
|
<div>{{ scope.row.changeLimitTime }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column align="center" prop="inspectManName" :label="$t('message.quality.rummager') +
|
|
|
|
|
|
'/' +
|
|
|
|
|
|
$t('message.quality.inspectionTime')
|
|
|
|
|
|
" width="180">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<div>{{ scope.row.inspectManName }}</div>
|
|
|
|
|
|
<!-- <div>{{ scope.row.createEnterpriseName }}</div> -->
|
|
|
|
|
|
<div>{{ scope.row.inspectTime }}</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column align="center" prop="dangerItemContent" label="安全问题信息">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="changeName" :label="$t('message.quality.rectificationPeople')">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="reviewName" :label="$t('message.quality.reviewOfThePeople')">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column align="center" prop="verifyManName" :label="$t('message.quality.checkOne')">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 隐患信息 -->
|
|
|
|
|
|
<!-- <el-table-column label="隐患信息" width="300">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<p v-if="scope.row.status != 1">
|
|
|
|
|
|
<el-tag
|
|
|
|
|
|
style="margin-right: 10px"
|
|
|
|
|
|
:type="scope.row.urgentLevel == '1' ? 'primary' : scope.row.urgentLevel == '2' ? 'waring' : scope.row.urgentLevel == '3' ? 'danger' : ''"
|
|
|
|
|
|
effect="dark"
|
|
|
|
|
|
size="mini"
|
|
|
|
|
|
>{{ scope.row.urgentLevel == '1' ? "一般" : scope.row.urgentLevel == '2' ? "严重" : scope.row.urgentLevel == '3' ? "紧要" : "" }}</el-tag
|
|
|
|
|
|
>{{ scope.row.dangerItemContent }}
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p v-else>该区域排查无隐患</p>
|
|
|
|
|
|
<p class="table_bottom_txt">
|
|
|
|
|
|
<span style="margin-right: 10px"
|
|
|
|
|
|
><i
|
|
|
|
|
|
class="el-icon-location-information"
|
|
|
|
|
|
style="margin-right: 6px"
|
|
|
|
|
|
></i
|
|
|
|
|
|
>{{ scope.row.regionName }}</span
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-tag
|
|
|
|
|
|
class="hiddenDangerLevel"
|
|
|
|
|
|
type="info"
|
|
|
|
|
|
effect="dark"
|
|
|
|
|
|
size="mini"
|
|
|
|
|
|
v-if="scope.row.status != 1"
|
|
|
|
|
|
>{{ scope.row.level }}</el-tag
|
|
|
|
|
|
>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column> -->
|
|
|
|
|
|
<!-- 隐患信息 -->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <el-table-column
|
|
|
|
|
|
label="图片"
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-image
|
|
|
|
|
|
v-if="scope.row.imageUrl"
|
|
|
|
|
|
style="width: 50px; height: 50px;"
|
|
|
|
|
|
:src="fileUrl + scope.row.imageUrl.split(',')[0]"
|
|
|
|
|
|
:preview-src-list="scope.row.fileList">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column> -->
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="隐患详情">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<a style="cursor: pointer;color: #409EFF" @click="previewDetail(scope.row)">查看详情</a>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-05-18 18:53:34 +08:00
|
|
|
|
<el-table-column label="操作" width="80" v-if="$store.state.userInfo.accountType != 6 || ($store.state.userInfo.userId == workDetail.assignmentPersonInCharge)">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="delete" @click="deletehiddenDangerInspectRecord(scope.row.id, 1)">
|
|
|
|
|
|
<i class="el-icon-delete delete-btn"></i>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<span>删除</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="历史排查记录" :visible.sync="dialogVisible5" width="1280px" :modal-append-to-body="false">
|
|
|
|
|
|
<el-table class="tables" :data="inspectRecordData" height="500" style="width: 100%;">
|
|
|
|
|
|
<el-table-column label="检查部位">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<!-- <p v-if="scope.row.dangerDesc">{{ scope.row.dangerDesc }}</p>
|
|
|
|
|
|
<p v-else>该区域排查无隐患</p>
|
|
|
|
|
|
<p class="table_bottom_txt">
|
|
|
|
|
|
<el-tag
|
|
|
|
|
|
class="hiddenDangerLevel"
|
|
|
|
|
|
type="info"
|
|
|
|
|
|
effect="dark"
|
|
|
|
|
|
size="mini"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i class="el-icon-location-information"></i>
|
|
|
|
|
|
{{ scope.row.dutyRegion }}
|
|
|
|
|
|
</el-tag>
|
|
|
|
|
|
</p> -->
|
|
|
|
|
|
<p>{{ scope.row.regionName }}</p>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="dangerItemContent" label="排查分类"> </el-table-column>
|
|
|
|
|
|
<el-table-column prop="addedDescription" label="事件描述"> </el-table-column>
|
|
|
|
|
|
<el-table-column label="图片">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-image v-if="scope.row.imageUrl" style="width: 50px; height: 50px;" :src="fileUrl + scope.row.imageUrl"
|
|
|
|
|
|
:preview-src-list="scope.row.fileList">
|
|
|
|
|
|
<!-- :src="fileUrl + scope.row.imageUrl.split(',')[0]" -->
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="inspectManName" label="检查人">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="createTime" width="180" label="检查时间"> </el-table-column>
|
|
|
|
|
|
<el-table-column prop="enterpriseName" label="分包单位"> </el-table-column>
|
2024-05-18 18:53:34 +08:00
|
|
|
|
<el-table-column label="操作" width="80" v-if="$store.state.userInfo.accountType != 6 || ($store.state.userInfo.userId == workDetail.assignmentPersonInCharge)">
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<template slot-scope="scope">
|
2024-05-15 18:23:40 +08:00
|
|
|
|
<div class="delete" @click="deletehiddenDangerInspectRecord(scope.row.id, 2)">
|
|
|
|
|
|
<i class="el-icon-delete delete-btn"></i>
|
2024-05-14 18:16:17 +08:00
|
|
|
|
<span>删除</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog :modal-append-to-body="false" title="查看详情" :visible.sync="dialogVisible6" width="870px"
|
|
|
|
|
|
:close-on-click-modal="false">
|
|
|
|
|
|
<div style="height: 600px">
|
|
|
|
|
|
<vue-scroll>
|
|
|
|
|
|
<div style="width: 800px">
|
|
|
|
|
|
<div class="headerLeft">隐患记录</div>
|
|
|
|
|
|
<div class="back-btn" v-if="
|
|
|
|
|
|
historyDetail.status == 2 &&
|
|
|
|
|
|
rectifyRecordList.length == 0 &&
|
|
|
|
|
|
historyDetail.inspectManId == $store.state.userInfo.userId
|
|
|
|
|
|
" @click="backQuestion(historyDetail)">
|
|
|
|
|
|
<!-- <i class="el-icon-refresh-right"></i>
|
|
|
|
|
|
<span>撤回</span> -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<span v-else-if="historyDetail.overTime == true" style="
|
|
|
|
|
|
color: red;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 89%;
|
|
|
|
|
|
top: 1%;
|
|
|
|
|
|
">超期整改</span>
|
|
|
|
|
|
<div class="detailBox">
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">检查类型:</span>
|
|
|
|
|
|
<span class="value" style="font-weight: 500; color: #5181f6; cursor: pointer">{{
|
|
|
|
|
|
historyDetail.recordType == 1 ? "安全问题" : "排查记录"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">分包单位:</span>
|
|
|
|
|
|
<span class="value" :title="historyDetail.enterpriseName">{{ historyDetail.enterpriseName }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">整改结果:</span>
|
|
|
|
|
|
|
|
|
|
|
|
<span class="value" :style="{
|
|
|
|
|
|
'font-weight': 500,
|
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
|
color:
|
|
|
|
|
|
historyDetail.status == 2
|
|
|
|
|
|
? '#5181f6'
|
|
|
|
|
|
: historyDetail.status == 3
|
|
|
|
|
|
? '#ff8c00'
|
|
|
|
|
|
: historyDetail.status == 4
|
|
|
|
|
|
? '#a020f0'
|
|
|
|
|
|
: historyDetail.status == 5
|
|
|
|
|
|
? '#21c28e'
|
|
|
|
|
|
: historyDetail.status == 6
|
|
|
|
|
|
? '#262D47'
|
|
|
|
|
|
: '',
|
|
|
|
|
|
}">
|
|
|
|
|
|
<span class="radiusD" :style="{
|
|
|
|
|
|
background:
|
|
|
|
|
|
historyDetail.status == 2
|
|
|
|
|
|
? '#5181f6'
|
|
|
|
|
|
: historyDetail.status == 3
|
|
|
|
|
|
? '#ff8c00'
|
|
|
|
|
|
: historyDetail.status == 4
|
|
|
|
|
|
? '#a020f0'
|
|
|
|
|
|
: historyDetail.status == 5
|
|
|
|
|
|
? '#21c28e'
|
|
|
|
|
|
: historyDetail.status == 6
|
|
|
|
|
|
? '#262D47'
|
|
|
|
|
|
: '',
|
|
|
|
|
|
}"></span>
|
|
|
|
|
|
<span>
|
|
|
|
|
|
{{
|
|
|
|
|
|
historyDetail.status == 2
|
|
|
|
|
|
? "待整改"
|
|
|
|
|
|
: historyDetail.status == 3
|
|
|
|
|
|
? "待复查"
|
|
|
|
|
|
: historyDetail.status == 4
|
|
|
|
|
|
? "待核验"
|
|
|
|
|
|
: historyDetail.status == 5
|
|
|
|
|
|
? "合格"
|
|
|
|
|
|
: historyDetail.status == 6
|
|
|
|
|
|
? "已撤回"
|
|
|
|
|
|
: ""
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">检查时间:</span>
|
|
|
|
|
|
<span class="value">{{ historyDetail.inspectTime }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label" style="margin-left: -14px">检查人:</span>
|
|
|
|
|
|
<span class="value" style="margin-left: 25px">{{
|
|
|
|
|
|
historyDetail.inspectManName
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">补充说明:</span>
|
|
|
|
|
|
<span class="value">
|
|
|
|
|
|
{{ historyDetail.dangerDesc }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<el-row :gutter="20" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label" style="margin-left: -14px">核验人:</span>
|
|
|
|
|
|
<span class="value" style="margin-left: 25px">{{
|
|
|
|
|
|
historyDetail.verifyManName
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">问题等级:</span>
|
|
|
|
|
|
<span class="value">{{
|
|
|
|
|
|
historyDetail.level == 1
|
|
|
|
|
|
? "一级"
|
|
|
|
|
|
: historyDetail.level == 2
|
|
|
|
|
|
? "二级"
|
|
|
|
|
|
: historyDetail.level == 3
|
|
|
|
|
|
? "三级"
|
|
|
|
|
|
: "四级"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">检查部位:</span>
|
|
|
|
|
|
<span class="value" :title="historyDetail.regionName">{{
|
|
|
|
|
|
historyDetail.regionName
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">事件描述:</span>
|
|
|
|
|
|
<span class="value">
|
|
|
|
|
|
{{ historyDetail.addedDescription }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">现场整改:</span>
|
|
|
|
|
|
<span class="value" :style="{
|
|
|
|
|
|
color:
|
|
|
|
|
|
historyDetail.status == 1 || historyDetail.status == 5
|
|
|
|
|
|
? '#21c28e'
|
|
|
|
|
|
: '#ff8c00',
|
|
|
|
|
|
}">{{
|
|
|
|
|
|
historyDetail.status == 1 || historyDetail.status == 5
|
|
|
|
|
|
? "已完成"
|
|
|
|
|
|
: "未完成"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">紧急程度:</span>
|
|
|
|
|
|
<span class="value">{{
|
|
|
|
|
|
historyDetail.urgentLevel == 1
|
|
|
|
|
|
? "一般"
|
|
|
|
|
|
: historyDetail.urgentLevel == 2
|
|
|
|
|
|
? "严重"
|
|
|
|
|
|
: historyDetail.urgentLevel == 3
|
|
|
|
|
|
? "紧要"
|
|
|
|
|
|
: ""
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">问题分类:</span>
|
|
|
|
|
|
<span class="value" :title="historyDetail.dangerItemContent">
|
|
|
|
|
|
{{ historyDetail.dangerItemContent }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label" style="margin-left: -14px">责任人:</span>
|
|
|
|
|
|
<span class="value" style="margin-left: 25px">{{
|
|
|
|
|
|
historyDetail.changeName
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">整改要求:</span>
|
|
|
|
|
|
<span class="value" :title="historyDetail.remark">
|
|
|
|
|
|
{{ historyDetail.remark }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">整改时限:</span>
|
|
|
|
|
|
<span class="value">{{ historyDetail.changeLimitTime }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">问题描述:</span>
|
|
|
|
|
|
<span class="value">
|
|
|
|
|
|
{{ historyDetail.problemDescription }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 1">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label" style="margin-left: -14px">复查人:</span>
|
|
|
|
|
|
<span class="value" style="margin-left: 25px">{{
|
|
|
|
|
|
historyDetail.reviewName
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label" style="line-height: 25px">现场视频:</span>
|
|
|
|
|
|
<span style="color: #5181f6; cursor: pointer; margin-top: 3px" class="value"
|
|
|
|
|
|
@click.stop="playerVideo(historyDetail.fileUrl)">
|
|
|
|
|
|
{{ videoName }}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">现场照片:</span>
|
|
|
|
|
|
<span class="value" style="cursor: pointer;">
|
|
|
|
|
|
<!-- <el-image
|
|
|
|
|
|
v-for="(item, index) in parseImage2(
|
|
|
|
|
|
historyDetail.imageUrl
|
|
|
|
|
|
)"
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
style="width: 100px; height: 100px; margin-right: 10px"
|
|
|
|
|
|
:src="item"
|
|
|
|
|
|
:preview-src-list="parseImage2(item.fileUrl)"
|
|
|
|
|
|
@click="openImg(item)"
|
|
|
|
|
|
> -->
|
|
|
|
|
|
<el-image style="width: 100px; height: 100px; margin-right: 10px"
|
|
|
|
|
|
:src="fileUrl + historyDetail.imageUrl" :preview-src-list="parseImage2(historyDetail.fileUrl)"
|
|
|
|
|
|
@click="openImg(fileUrl + historyDetail.imageUrl)">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<!-- <el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12" v-show="historyDetail.recordType == 2">
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">排查分类:</span>
|
|
|
|
|
|
<span class="value" :title="historyDetail.dangerItemContent">{{
|
|
|
|
|
|
historyDetail.dangerItemContent
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row> -->
|
|
|
|
|
|
|
|
|
|
|
|
<div class="headerLeft" v-if="rectifyRecordList.length > 0">
|
|
|
|
|
|
整改&复核记录
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<el-timeline class="detailBox" :reverse="true">
|
|
|
|
|
|
<el-timeline-item :timestamp="item.rectifyTime" placement="top"
|
|
|
|
|
|
v-for="(item, index) in rectifyRecordList" :key="index">
|
|
|
|
|
|
<el-card>
|
|
|
|
|
|
<p class="grid-content">
|
|
|
|
|
|
<span class="label">{{
|
|
|
|
|
|
item.type == 1
|
|
|
|
|
|
? "责任人:"
|
|
|
|
|
|
: item.type == 2
|
|
|
|
|
|
? "复查人:"
|
|
|
|
|
|
: item.type == 3
|
|
|
|
|
|
? "核验人:"
|
|
|
|
|
|
: "无"
|
|
|
|
|
|
}}</span><span class="value">{{ item.createUserName }}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p class="grid-content" v-if="item.type == 1">
|
|
|
|
|
|
<span class="label">整改状态:</span><span class="value">{{
|
|
|
|
|
|
item.status == 2 ? "已整改" : "未整改"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p class="grid-content" v-else-if="item.type == 2">
|
|
|
|
|
|
<span class="label">复查状态:</span><span class="value">{{
|
|
|
|
|
|
item.status == 2 ? "合格" : "不合格"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p class="grid-content" v-else>
|
|
|
|
|
|
<span class="label">核验状态:</span><span class="value">{{
|
|
|
|
|
|
item.status == 2 ? "合格" : "不合格"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p class="grid-content" v-if="item.status == 1">
|
|
|
|
|
|
<span class="label">驳回说明:</span><span class="value">{{ item.additionalRemarks }}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<p class="grid-content" v-if="item.status == 2">
|
|
|
|
|
|
<span class="label">补充说明:</span><span class="value">{{ item.additionalRemarks }}</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<div class="grid-content">
|
|
|
|
|
|
<span class="label">{{
|
|
|
|
|
|
item.type == 1
|
|
|
|
|
|
? "整改照片:"
|
|
|
|
|
|
: item.type == 2
|
|
|
|
|
|
? "复查照片:"
|
|
|
|
|
|
: "核验照片:"
|
|
|
|
|
|
}}</span>
|
|
|
|
|
|
<span class="value" style="cursor: pointer;">
|
|
|
|
|
|
<el-image v-for="(item2, index) in item.fileUrl" :key="index" style="
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
height: 100px;
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
" :src="item2" :preview-src-list="item2.fileUrl" @click="openImg(item2)">
|
|
|
|
|
|
</el-image>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-card>
|
|
|
|
|
|
</el-timeline-item>
|
|
|
|
|
|
</el-timeline>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</vue-scroll>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 视频播放 -->
|
|
|
|
|
|
<el-dialog class="video" :modal-append-to-body="false" :visible.sync="isShow" @close="closeBtn">
|
|
|
|
|
|
<video v-if="isShow || player" width="100%" height="550" controls autoplay style="margin-left: 10px">
|
|
|
|
|
|
<source :src="player" type="video/mp4" />
|
|
|
|
|
|
<source :src="player" type="video/mp4" />
|
|
|
|
|
|
<source :src="player" type="video/mp4" />
|
|
|
|
|
|
您的浏览器不支持 video 标签。
|
|
|
|
|
|
</video>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
// import QRCode from "qrcodejs2";
|
2024-05-14 18:16:17 +08:00
|
|
|
|
import { getselectHiddenDangerRectifyRecordListApi } from "@/assets/js/api/safeManage.js";
|
|
|
|
|
|
import {
|
|
|
|
|
|
selectDangerousEngineeringRecordApi,
|
|
|
|
|
|
selectControlContentListApi,
|
|
|
|
|
|
queryDangerousEngineeringRecordByIdApi,
|
|
|
|
|
|
queryDangerousEngineeringOverApi,
|
|
|
|
|
|
editDangerousEngineeringRecordApi,
|
|
|
|
|
|
selectClassControlContentListApi,
|
|
|
|
|
|
selectDangerousEngineeringProgressRecordApi,
|
|
|
|
|
|
selectDangerousEngineeringSideStationApi,
|
|
|
|
|
|
selectDangerousEngineeringAcceptanceCheckApi,
|
|
|
|
|
|
selectFinalDangerousEngineeringAcceptanceCheckApi,
|
|
|
|
|
|
selectHiddenDangerInspectRecordApi,
|
|
|
|
|
|
selectFinalHiddenDangerInspectRecordApi,
|
|
|
|
|
|
deleteDangerousEngineeringProgressRecordApi,
|
|
|
|
|
|
deleteDangerousEngineeringSideStationApi,
|
|
|
|
|
|
deleteDangerousEngineeringAcceptanceCheckApi,
|
|
|
|
|
|
deletehiddenDangerInspectRecordApi,
|
|
|
|
|
|
deleteFinlahiddenDangerInspectRecordApi,
|
|
|
|
|
|
|
|
|
|
|
|
deleteFinalDangerousEngineeringAcceptanceCheckApi,
|
|
|
|
|
|
} from "@/assets/js/api/dangerousBigProject";
|
|
|
|
|
|
import {
|
|
|
|
|
|
selectSafeRectifyRecordListApi,
|
|
|
|
|
|
} from "@/assets/js/api/quality.js";
|
|
|
|
|
|
import { getCooperatorListApi } from "@/assets/js/api/cooperationUnit";
|
|
|
|
|
|
import {
|
|
|
|
|
|
getEnterpriseInfoList
|
|
|
|
|
|
} from "@/assets/js/api/laborPerson";
|
2024-05-15 18:23:40 +08:00
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
|
getFireSafetyQueryByIdApi
|
|
|
|
|
|
} from "@/assets/js/api/specialWork";
|
|
|
|
|
|
|
2024-05-14 18:16:17 +08:00
|
|
|
|
import moment from "moment";
|
|
|
|
|
|
export default {
|
2024-05-18 18:53:34 +08:00
|
|
|
|
props: ["id", "isSuperDanger", "COMPANY_Type","workDetail","workType","tableName"],
|
2024-05-14 18:16:17 +08:00
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
responsibilityList: [],
|
|
|
|
|
|
ops: {
|
|
|
|
|
|
scrollPanel: {
|
|
|
|
|
|
scrollingX: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
dialogVisible: false,
|
|
|
|
|
|
dialogVisible2: false,
|
|
|
|
|
|
dialogVisible3: false,
|
|
|
|
|
|
dialogVisible4: false,
|
|
|
|
|
|
dialogVisible5: false,
|
|
|
|
|
|
dialogVisible6: false,
|
|
|
|
|
|
styleType: 1,
|
|
|
|
|
|
buildDate: "",
|
|
|
|
|
|
planDate: "",
|
|
|
|
|
|
pickerOptions: {
|
|
|
|
|
|
disabledDate(time) {
|
|
|
|
|
|
return time.getTime() < Date.now() - 8.64e7;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
options2: [],
|
|
|
|
|
|
checkList: [],
|
|
|
|
|
|
formLabelWidth: "180px",
|
|
|
|
|
|
isDisabled: true,
|
|
|
|
|
|
value: false,
|
|
|
|
|
|
headquartersSn: "",
|
|
|
|
|
|
typeOptions: [],
|
|
|
|
|
|
contentList: [],
|
|
|
|
|
|
describeOptions: [],
|
|
|
|
|
|
enterpriseTypeId: 1,
|
|
|
|
|
|
pageSize: 1000,
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
projectSn: "",
|
|
|
|
|
|
options: [],
|
|
|
|
|
|
props: {
|
|
|
|
|
|
multiple: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
props2: {
|
|
|
|
|
|
multiple: true,
|
|
|
|
|
|
value: "id",
|
|
|
|
|
|
label: "describeName",
|
|
|
|
|
|
},
|
|
|
|
|
|
cooperatorList: [],
|
|
|
|
|
|
fileList: [],
|
|
|
|
|
|
fileList2: [],
|
|
|
|
|
|
fileList3: [],
|
|
|
|
|
|
fileUrl: "",
|
|
|
|
|
|
detailData: {},
|
|
|
|
|
|
progressData: [],
|
|
|
|
|
|
sideStationData: [],
|
|
|
|
|
|
checkData: [],
|
|
|
|
|
|
hiddenDangerData: [],
|
|
|
|
|
|
inspectRecordData: [],
|
|
|
|
|
|
detailData: {},
|
|
|
|
|
|
rectifyRecordList: [],
|
|
|
|
|
|
statusArr: ["无需整改", "待整改", "待复查", "合格", "不合格"],
|
|
|
|
|
|
COMPANY: "",
|
|
|
|
|
|
historyDetail: {},
|
|
|
|
|
|
isShow: false,
|
|
|
|
|
|
player: '',
|
|
|
|
|
|
videoName: '',
|
|
|
|
|
|
replyData: {
|
|
|
|
|
|
rectifyTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
|
|
|
fileUrl: "",
|
|
|
|
|
|
additionalRemarks: "",
|
|
|
|
|
|
qualityId: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
fileListRectification: [],
|
|
|
|
|
|
imgList: [],
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
|
|
|
this.COMPANY = this.COMPANY_Type;
|
|
|
|
|
|
this.headquartersSn = this.$store.state.userInfo.headquartersSn;
|
|
|
|
|
|
this.projectSn = this.$store.state.projectSn;
|
|
|
|
|
|
this.fileUrl = this.$store.state.FILEURL;
|
2024-05-15 18:23:40 +08:00
|
|
|
|
// this.queryDetail();
|
|
|
|
|
|
// this.selectClassControlContentList();
|
|
|
|
|
|
// this.getCooperatorList();
|
2024-05-14 18:16:17 +08:00
|
|
|
|
this.selectDangerousEngineeringAcceptanceCheck();
|
|
|
|
|
|
this.selectDangerousEngineeringSideStation();
|
|
|
|
|
|
this.selectDangerousEngineeringProgressRecord();
|
|
|
|
|
|
this.selectHiddenDangerInspectRecord(1);
|
|
|
|
|
|
this.selectHiddenDangerInspectRecord(2);
|
2024-05-15 18:23:40 +08:00
|
|
|
|
// this.$nextTick(() => {
|
|
|
|
|
|
// this.bindQRCode();
|
|
|
|
|
|
// });
|
2024-05-14 18:16:17 +08:00
|
|
|
|
this.getProjectList();
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
//整改记录
|
|
|
|
|
|
selectRectifyRecordList(id) {
|
|
|
|
|
|
selectSafeRectifyRecordListApi({
|
|
|
|
|
|
qualityId: id,
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
this.rectifyRecordList = res.result;
|
|
|
|
|
|
this.rectifyRecordList.forEach((item) => {
|
|
|
|
|
|
if (item.fileUrl) {
|
|
|
|
|
|
this.imgList = [];
|
|
|
|
|
|
if (item.fileUrl.startsWith("[") && item.fileUrl.endsWith("]")) {
|
|
|
|
|
|
let fileListI = JSON.parse(item.fileUrl);
|
|
|
|
|
|
fileListI.forEach((file) => {
|
|
|
|
|
|
let url = file.url;
|
|
|
|
|
|
if (!url.startsWith("http://")) {
|
|
|
|
|
|
url = this.fileUrl + url;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.imgList.push(url);
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
let fileListI = item.fileUrl.split(",");
|
|
|
|
|
|
fileListI.forEach((url) => {
|
|
|
|
|
|
if (!url.startsWith("http://")) {
|
|
|
|
|
|
url = this.fileUrl + url;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.imgList.push(url);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
item.fileUrl = this.imgList;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
item.fileUrl = [];
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
console.log("整改记录-处理后--", this.rectifyRecordList);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
openImg(src) {
|
|
|
|
|
|
window.open(src);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//暂时保留
|
|
|
|
|
|
parseImage22() {
|
|
|
|
|
|
let arr = [];
|
|
|
|
|
|
if (urls) {
|
|
|
|
|
|
arr = urls.split(",");
|
|
|
|
|
|
}
|
|
|
|
|
|
arr.forEach((element, index) => {
|
|
|
|
|
|
arr[index] = this.$store.state.FILEURL + element;
|
|
|
|
|
|
let result = arr[index].substring(0, arr[index].indexOf("*"));
|
|
|
|
|
|
arr[index] = result;
|
|
|
|
|
|
});
|
|
|
|
|
|
return arr;
|
|
|
|
|
|
},
|
|
|
|
|
|
//关闭视频
|
|
|
|
|
|
closeBtn() {
|
|
|
|
|
|
this.isShow = false;
|
|
|
|
|
|
this.player = "";
|
|
|
|
|
|
},
|
|
|
|
|
|
//视频播放
|
|
|
|
|
|
playerVideo(item) {
|
|
|
|
|
|
if (item) {
|
|
|
|
|
|
let index = item.indexOf("*");
|
|
|
|
|
|
let videoUrl = item.substring(index + 1);
|
|
|
|
|
|
console.log("点击", videoUrl);
|
|
|
|
|
|
this.isShow = false;
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
|
this.player = videoUrl;
|
|
|
|
|
|
this.isShow = true;
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$message.error("暂无视频");
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
previewDetail(item) {
|
|
|
|
|
|
this.getRectifyRecordList(item.id);
|
|
|
|
|
|
// this.detailData = item;
|
|
|
|
|
|
this.historyDetail = item;
|
|
|
|
|
|
console.log("historyDetailhistoryDetail", this.historyDetail)
|
|
|
|
|
|
console.log("historyDetailhistoryDetail", this.historyDetail)
|
|
|
|
|
|
console.log("historyDetailhistoryDetail", this.historyDetail)
|
|
|
|
|
|
this.dialogVisible6 = true;
|
|
|
|
|
|
|
|
|
|
|
|
this.videoName = item.fileUrl.split("*")[0];
|
|
|
|
|
|
console.log("新版查看详情", item);
|
|
|
|
|
|
this.selectRectifyRecordList(item.id);
|
|
|
|
|
|
this.replyData = {
|
|
|
|
|
|
rectifyTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
|
|
|
fileUrl: "",
|
|
|
|
|
|
additionalRemarks: "",
|
|
|
|
|
|
};
|
|
|
|
|
|
this.fileListRectification = [];
|
|
|
|
|
|
},
|
|
|
|
|
|
parseImage2(urls) {
|
|
|
|
|
|
let arr = [];
|
|
|
|
|
|
if (urls) {
|
|
|
|
|
|
arr = urls.split(",");
|
|
|
|
|
|
}
|
|
|
|
|
|
arr.forEach((element, index) => {
|
|
|
|
|
|
// arr[index] = this.$store.state.FILEURL + element;
|
|
|
|
|
|
|
|
|
|
|
|
arr[index] = this.$store.state.FILEURL + element;
|
|
|
|
|
|
let result = arr[index].substring(0, arr[index].indexOf("*"));
|
|
|
|
|
|
arr[index] = result;
|
|
|
|
|
|
});
|
|
|
|
|
|
return arr;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//获取企业 || 劳务公司 列表
|
|
|
|
|
|
getProjectList() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
projectSn: this.projectSn,
|
|
|
|
|
|
// enterpriseTypeId: this.enterpriseTypeId,
|
|
|
|
|
|
};
|
|
|
|
|
|
getEnterpriseInfoList(data).then((res) => {
|
|
|
|
|
|
this.responsibilityList = res.result;
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 打印
|
|
|
|
|
|
printBtn() {
|
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
|
// console.log(this.$refs["qrCodeDiv"].innerHTML)
|
|
|
|
|
|
// },100)
|
|
|
|
|
|
// qrCode
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
let printDemo = this.$refs["qrCodeDiv"].innerHTML;
|
|
|
|
|
|
console.log(printDemo);
|
|
|
|
|
|
window.document.body.innerHTML = printDemo;
|
|
|
|
|
|
//没有图片直接打印
|
|
|
|
|
|
window.print();
|
|
|
|
|
|
window.location.reload();
|
|
|
|
|
|
}, 100);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询是否结束
|
|
|
|
|
|
endDanger() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
id: this.id,
|
|
|
|
|
|
};
|
|
|
|
|
|
queryDangerousEngineeringOverApi(data).then((res) => {
|
|
|
|
|
|
console.log(res.result, "----是否结束");
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.queryDetail();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询详情
|
|
|
|
|
|
queryDetail() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
id: this.id,
|
2024-05-17 20:13:58 +08:00
|
|
|
|
type:this.workType,
|
2024-05-14 18:16:17 +08:00
|
|
|
|
};
|
|
|
|
|
|
queryDangerousEngineeringRecordByIdApi(data).then((res) => {
|
|
|
|
|
|
console.log(res.result, "----详情");
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
this.detailData = res.result;
|
|
|
|
|
|
this.buildDate = [];
|
|
|
|
|
|
this.buildDate.push(this.detailData.buildStartTime);
|
|
|
|
|
|
this.buildDate.push(this.detailData.buildEndTime);
|
|
|
|
|
|
if (this.detailData.planStartTime && this.detailData.planEndTime) {
|
|
|
|
|
|
this.planDate = [];
|
|
|
|
|
|
this.planDate.push(this.detailData.planStartTime);
|
|
|
|
|
|
this.planDate.push(this.detailData.planEndTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 层级查询管控要点
|
|
|
|
|
|
selectClassControlContentList() {
|
|
|
|
|
|
selectClassControlContentListApi({ engineeringId: this.id }).then(
|
|
|
|
|
|
(res) => {
|
|
|
|
|
|
console.log(res.result, "------管控要点");
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
this.contentList = res.result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
//生成 二维码
|
|
|
|
|
|
bindQRCode: function () {
|
|
|
|
|
|
document.getElementById("qrCode").innerHTML = "";
|
|
|
|
|
|
let httpUrl = window.location.host.split(":")[0];
|
|
|
|
|
|
// console.log(window.location)
|
|
|
|
|
|
let userId = this.$store.state.userInfo.userId;
|
|
|
|
|
|
let projectSn = this.$store.state.projectSn;
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
id: this.id,
|
|
|
|
|
|
type: "wdgc",
|
|
|
|
|
|
};
|
|
|
|
|
|
new QRCode(this.$refs.qrCodeDiv, {
|
|
|
|
|
|
text: JSON.stringify(data),
|
|
|
|
|
|
width: 144,
|
|
|
|
|
|
height: 144,
|
|
|
|
|
|
colorDark: "#333333", //二维码颜色
|
|
|
|
|
|
colorLight: "#ffffff", //二维码背景色
|
|
|
|
|
|
correctLevel: QRCode.CorrectLevel.L, //容错率,L/M/H
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询进度
|
|
|
|
|
|
selectDangerousEngineeringProgressRecord() {
|
2024-05-17 20:13:58 +08:00
|
|
|
|
console.log(this.$store.state);
|
2024-05-14 18:16:17 +08:00
|
|
|
|
selectDangerousEngineeringProgressRecordApi({
|
|
|
|
|
|
engineeringId: this.id,
|
2024-05-17 20:13:58 +08:00
|
|
|
|
type:this.workType,
|
|
|
|
|
|
assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
|
2024-05-14 18:16:17 +08:00
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
console.log(res.result, "----进度");
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
res.result.forEach((item) => {
|
|
|
|
|
|
item.fileList = [];
|
|
|
|
|
|
if (item.imageUrl && item.imageUrl.split(",").length > 0) {
|
|
|
|
|
|
item.imageUrl.split(",").forEach((itm) => {
|
|
|
|
|
|
item.fileList.push(this.fileUrl + itm);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
this.progressData = res.result;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询一般验收记录
|
|
|
|
|
|
selectDangerousEngineeringAcceptanceCheck() {
|
|
|
|
|
|
// selectDangerousEngineeringAcceptanceCheckApi({
|
|
|
|
|
|
selectFinalDangerousEngineeringAcceptanceCheckApi({
|
|
|
|
|
|
engineeringId: this.id,
|
2024-05-17 20:13:58 +08:00
|
|
|
|
type:this.workType,
|
|
|
|
|
|
assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
|
2024-05-14 18:16:17 +08:00
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
console.log(res.result, "-----最终验收");
|
|
|
|
|
|
console.log(res.result, "-----最终验收");
|
|
|
|
|
|
console.log(res.result, "-----最终验收");
|
|
|
|
|
|
console.log(res.result, "-----最终验收");
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
res.result.forEach((item) => {
|
|
|
|
|
|
item.fileList = [];
|
|
|
|
|
|
if (item.imageUrl && item.imageUrl.split(",").length > 0) {
|
|
|
|
|
|
item.imageUrl.split(",").forEach((itm) => {
|
|
|
|
|
|
item.fileList.push(this.fileUrl + itm);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
this.checkData = res.result;
|
|
|
|
|
|
console.log('最终验收列表checkData', this.checkData)
|
|
|
|
|
|
console.log('最终验收列表checkData', this.checkData)
|
|
|
|
|
|
console.log('最终验收列表checkData', this.checkData)
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
//查询旁站记录
|
|
|
|
|
|
selectDangerousEngineeringSideStation() {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
selectDangerousEngineeringSideStationApi({
|
|
|
|
|
|
engineeringId: this.id,
|
2024-05-17 20:13:58 +08:00
|
|
|
|
type:this.workType,
|
|
|
|
|
|
assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
|
2024-05-15 18:23:40 +08:00
|
|
|
|
}).then(
|
2024-05-14 18:16:17 +08:00
|
|
|
|
(res) => {
|
|
|
|
|
|
console.log(res.result, "-----旁站记录");
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
res.result.forEach((item) => {
|
|
|
|
|
|
item.fileList = [];
|
|
|
|
|
|
if (item.imageUrl && item.imageUrl.split(",").length > 0) {
|
|
|
|
|
|
item.imageUrl.split(",").forEach((itm) => {
|
|
|
|
|
|
item.fileList.push(this.fileUrl + itm);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
this.sideStationData = res.result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询隐患记录
|
|
|
|
|
|
async selectHiddenDangerInspectRecord(type) {
|
|
|
|
|
|
// type 1.隐患记录 2.排查记录
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
recordType: type,
|
|
|
|
|
|
projectSn: this.projectSn,
|
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 1000,
|
|
|
|
|
|
engineeringId: this.id,
|
2024-05-17 20:13:58 +08:00
|
|
|
|
type:this.workType,
|
|
|
|
|
|
assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
|
2024-05-14 18:16:17 +08:00
|
|
|
|
};
|
|
|
|
|
|
// selectHiddenDangerInspectRecordApi(data).then((res) => {
|
|
|
|
|
|
await selectFinalHiddenDangerInspectRecordApi(data).then((res) => {
|
|
|
|
|
|
console.log(res, type);
|
|
|
|
|
|
if (res.code == 200 && res.result) {
|
|
|
|
|
|
res.result.page.records.forEach((item) => {
|
|
|
|
|
|
// item.fileList = [];
|
|
|
|
|
|
// if (item.imageUrl && item.imageUrl.split(",").length > 0) {
|
|
|
|
|
|
// item.imageUrl.split(",").forEach((itm) => {
|
|
|
|
|
|
// item.fileList.push(this.fileUrl + itm);
|
|
|
|
|
|
// });
|
|
|
|
|
|
// }
|
|
|
|
|
|
if (item.imageUrl) {
|
|
|
|
|
|
let index = item.imageUrl.indexOf("*")
|
|
|
|
|
|
if (index !== -1) {
|
|
|
|
|
|
item.imageUrl = item.imageUrl.substring(0, index);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
|
this.hiddenDangerData = res.result.page.records;
|
|
|
|
|
|
console.log("================hiddenDangerData===================")
|
|
|
|
|
|
console.log(this.hiddenDangerData)
|
|
|
|
|
|
console.log("================hiddenDangerData===================")
|
|
|
|
|
|
} else if (type == 2) {
|
|
|
|
|
|
this.inspectRecordData = res.result.page.records;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
//获取整改和复查记录
|
|
|
|
|
|
getRectifyRecordList(inspectId) {
|
|
|
|
|
|
getselectHiddenDangerRectifyRecordListApi({ inspectId: inspectId }).then(
|
|
|
|
|
|
(res) => {
|
|
|
|
|
|
// this.rectifyRecordList = res.result;
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 删除进度记录
|
|
|
|
|
|
deleteDangerousEngineeringProgressRecord(val) {
|
2024-05-16 09:27:37 +08:00
|
|
|
|
if (this.workDetail.finalAcceptanceStatus === 2) {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
this.$message.warning('该项特种作业已闭合,请勿操作')
|
2024-05-14 18:16:17 +08:00
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
2024-05-17 20:13:58 +08:00
|
|
|
|
deleteDangerousEngineeringProgressRecordApi({ id: val, type:this.workType, }).then(
|
2024-05-14 18:16:17 +08:00
|
|
|
|
(res) => {
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
message: "删除成功!",
|
|
|
|
|
|
});
|
|
|
|
|
|
this.selectDangerousEngineeringProgressRecord();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "info",
|
|
|
|
|
|
message: "已取消删除",
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 删除旁站记录
|
|
|
|
|
|
deleteDangerousEngineeringSideStation(val) {
|
2024-05-16 09:27:37 +08:00
|
|
|
|
if (this.workDetail.finalAcceptanceStatus === 2) {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
this.$message.warning('该项特种作业已闭合,请勿操作')
|
2024-05-14 18:16:17 +08:00
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
2024-05-17 20:13:58 +08:00
|
|
|
|
deleteDangerousEngineeringSideStationApi({ id: val, type:this.workType, }).then((res) => {
|
2024-05-14 18:16:17 +08:00
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
message: "删除成功!",
|
|
|
|
|
|
});
|
|
|
|
|
|
this.selectDangerousEngineeringSideStation();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "info",
|
|
|
|
|
|
message: "已取消删除",
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 删除验收记录
|
|
|
|
|
|
deleteDangerousEngineeringAcceptanceCheck(val) {
|
2024-05-16 09:27:37 +08:00
|
|
|
|
if (this.workDetail.finalAcceptanceStatus === 2) {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
this.$message.warning('该项特种作业已闭合,请勿操作')
|
2024-05-14 18:16:17 +08:00
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
// deleteDangerousEngineeringAcceptanceCheckApi({ id: val }).then(
|
2024-05-17 20:13:58 +08:00
|
|
|
|
deleteFinalDangerousEngineeringAcceptanceCheckApi({ id: val, type:this.workType, }).then(
|
2024-05-14 18:16:17 +08:00
|
|
|
|
(res) => {
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
message: "删除成功!",
|
|
|
|
|
|
});
|
|
|
|
|
|
this.selectDangerousEngineeringAcceptanceCheck();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "info",
|
|
|
|
|
|
message: "已取消删除",
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 删除隐患排查记录
|
|
|
|
|
|
deletehiddenDangerInspectRecord(val, type) {
|
2024-05-16 09:27:37 +08:00
|
|
|
|
if (this.workDetail.finalAcceptanceStatus === 2) {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
this.$message.warning('该项特种作业已闭合,请勿操作')
|
2024-05-14 18:16:17 +08:00
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
// deletehiddenDangerInspectRecordApi({ id: val }).then((res) => {
|
2024-05-17 20:13:58 +08:00
|
|
|
|
deleteFinlahiddenDangerInspectRecordApi({ id: val, type:this.workType, }).then((res) => {
|
2024-05-14 18:16:17 +08:00
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
message: "删除成功!",
|
|
|
|
|
|
});
|
|
|
|
|
|
this.selectHiddenDangerInspectRecord(type);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "info",
|
|
|
|
|
|
message: "已取消删除",
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
//获取责任分包单位
|
|
|
|
|
|
getCooperatorList() {
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
projectSn: this.projectSn,
|
|
|
|
|
|
pageNo: this.pageNo,
|
|
|
|
|
|
pageSize: this.pageSize,
|
|
|
|
|
|
enterpriseTypeId: this.enterpriseTypeId,
|
|
|
|
|
|
enterpriseName: "",
|
|
|
|
|
|
};
|
|
|
|
|
|
getCooperatorListApi(data).then((res) => {
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
if (res.result.records.length > 0) {
|
|
|
|
|
|
this.cooperatorList = JSON.parse(
|
|
|
|
|
|
JSON.stringify(res.result.records)
|
|
|
|
|
|
);
|
|
|
|
|
|
this.cooperatorList.forEach((item) => {
|
|
|
|
|
|
item.value = item.enterpriseName;
|
|
|
|
|
|
item.label = item.enterpriseName;
|
|
|
|
|
|
});
|
|
|
|
|
|
this.options = this.cooperatorList;
|
|
|
|
|
|
// console.log(res.result.records)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleUploadSuccess(res, file) {
|
|
|
|
|
|
console.log(res, file);
|
|
|
|
|
|
this.fileList.push({
|
|
|
|
|
|
name: file.name,
|
|
|
|
|
|
url: file.response.data[0].imageUrl,
|
|
|
|
|
|
iconType: this.getFileType(file.name),
|
|
|
|
|
|
});
|
|
|
|
|
|
// this.addProjectForm.layoutImage = this.$store.state.FILEURL + res.data[0].imageUrl;
|
|
|
|
|
|
},
|
|
|
|
|
|
handleUploadSuccess2(res, file) {
|
|
|
|
|
|
console.log(res, file);
|
|
|
|
|
|
this.fileList2.push({
|
|
|
|
|
|
name: file.name,
|
|
|
|
|
|
url: file.response.data[0].imageUrl,
|
|
|
|
|
|
iconType: this.getFileType(file.name),
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleUploadSuccess3(res, file) {
|
|
|
|
|
|
console.log(res, file);
|
|
|
|
|
|
this.fileList3.push({
|
|
|
|
|
|
name: file.name,
|
|
|
|
|
|
url: file.response.data[0].imageUrl,
|
|
|
|
|
|
iconType: this.getFileType(file.name),
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
downLoadFile(url) {
|
|
|
|
|
|
window.open(this.fileUrl + url);
|
|
|
|
|
|
},
|
|
|
|
|
|
removeFile(index, type) {
|
|
|
|
|
|
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
|
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
|
this.fileList.splice(index, 1);
|
|
|
|
|
|
} else if (type == 2) {
|
|
|
|
|
|
this.fileList2.splice(index, 1);
|
|
|
|
|
|
} else if (type == 3) {
|
|
|
|
|
|
this.fileList3.splice(index, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
message: "删除成功!",
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
type: "info",
|
|
|
|
|
|
message: "已取消删除",
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 判断文件类型
|
|
|
|
|
|
getFileType(fileName) {
|
|
|
|
|
|
// 后缀获取
|
|
|
|
|
|
let suffix = "";
|
|
|
|
|
|
// 获取类型结果
|
|
|
|
|
|
let result = "";
|
|
|
|
|
|
try {
|
|
|
|
|
|
const flieArr = fileName.split(".");
|
|
|
|
|
|
suffix = flieArr[flieArr.length - 1];
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
suffix = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
// fileName无后缀返回 false
|
|
|
|
|
|
if (!suffix) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
suffix = suffix.toLocaleLowerCase();
|
|
|
|
|
|
// 图片格式
|
|
|
|
|
|
const imglist = ["png", "jpg", "jpeg", "bmp", "gif"];
|
|
|
|
|
|
// 进行图片匹配
|
|
|
|
|
|
result = imglist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "image";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配txt
|
|
|
|
|
|
const txtlist = ["txt"];
|
|
|
|
|
|
result = txtlist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "txt";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 excel
|
|
|
|
|
|
const excelist = ["xls", "xlsx"];
|
|
|
|
|
|
result = excelist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "excel";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 word
|
|
|
|
|
|
const wordlist = ["doc", "docx"];
|
|
|
|
|
|
result = wordlist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "word";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 pdf
|
|
|
|
|
|
const pdflist = ["pdf"];
|
|
|
|
|
|
result = pdflist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "pdf";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 ppt
|
|
|
|
|
|
const pptlist = ["ppt", "pptx"];
|
|
|
|
|
|
result = pptlist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "ppt";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 视频
|
|
|
|
|
|
const videolist = [
|
|
|
|
|
|
"mp4",
|
|
|
|
|
|
"m2v",
|
|
|
|
|
|
"mkv",
|
|
|
|
|
|
"rmvb",
|
|
|
|
|
|
"wmv",
|
|
|
|
|
|
"avi",
|
|
|
|
|
|
"flv",
|
|
|
|
|
|
"mov",
|
|
|
|
|
|
"m4v",
|
|
|
|
|
|
];
|
|
|
|
|
|
result = videolist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "video";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 匹配 音频
|
|
|
|
|
|
const radiolist = ["mp3", "wav", "wmv"];
|
|
|
|
|
|
result = radiolist.find((item) => item === suffix);
|
|
|
|
|
|
if (result) {
|
|
|
|
|
|
return "radio";
|
|
|
|
|
|
}
|
|
|
|
|
|
// 其他 文件类型
|
|
|
|
|
|
return "other";
|
|
|
|
|
|
},
|
|
|
|
|
|
cancle() {
|
|
|
|
|
|
this.$emit("cancleSave");
|
|
|
|
|
|
},
|
|
|
|
|
|
submit() {
|
|
|
|
|
|
// editDangerousEngineeringRecordApi({
|
|
|
|
|
|
// id: this.detailData.id,
|
|
|
|
|
|
// projectSn: this.projectSn
|
|
|
|
|
|
// }).then(res=>{
|
|
|
|
|
|
// console.log(res)
|
|
|
|
|
|
// if(res.code == 200){
|
|
|
|
|
|
// this.$message.success("添加成功!")
|
|
|
|
|
|
// // this.$emit('cancleSave')
|
|
|
|
|
|
// }
|
|
|
|
|
|
// })
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
2024-05-15 18:23:40 +08:00
|
|
|
|
.border-top_1 {
|
|
|
|
|
|
border-top: 1px solid #eee;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-14 18:16:17 +08:00
|
|
|
|
.safety-table {
|
|
|
|
|
|
padding: 0 20px 10px 20px;
|
|
|
|
|
|
|
|
|
|
|
|
.el-row:first-child {
|
|
|
|
|
|
color: #868490;
|
2024-05-15 20:02:29 +08:00
|
|
|
|
padding-bottom: 8px;
|
2024-05-14 18:16:17 +08:00
|
|
|
|
}
|
2024-05-15 20:02:29 +08:00
|
|
|
|
.el-row:not(:first-child ){
|
2024-05-14 18:16:17 +08:00
|
|
|
|
padding: 8px 0;
|
2024-05-15 20:02:29 +08:00
|
|
|
|
}
|
|
|
|
|
|
.el-row {
|
2024-05-14 18:16:17 +08:00
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
|
|
|
|
.green {
|
|
|
|
|
|
color: green;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.red {
|
|
|
|
|
|
color: red;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-col:not(:first-child) {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tableStatus {
|
|
|
|
|
|
width: 55px;
|
|
|
|
|
|
height: 25px;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
background: red;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
line-height: 25px;
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 18%;
|
|
|
|
|
|
left: 65%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.detailBox {
|
|
|
|
|
|
.grid-content {
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
|
|
|
|
.label {
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
width: 80px;
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.value {
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
width: calc(80% - 80px);
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.headerLeft {
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
background: #ededed;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #616266;
|
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.plan-form {
|
|
|
|
|
|
height: calc(100% - 56px);
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
// border-top: 1px solid #12294F;
|
|
|
|
|
|
border-top: 1px solid #eee;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
|
|
|
|
|
|
.flex {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title-danger {
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
padding-left: 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
>span {
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.item-status {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
|
|
width: 15px;
|
|
|
|
|
|
height: 15px;
|
|
|
|
|
|
margin-right: 5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
span {
|
|
|
|
|
|
margin-right: 5px;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #ea3941;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title-danger::before {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
background: #4181fe;
|
|
|
|
|
|
// height: 30px;
|
|
|
|
|
|
// width: 2px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
// top: 0px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
width: 4px;
|
2024-05-15 18:23:40 +08:00
|
|
|
|
top: 50%;
|
2024-05-14 18:16:17 +08:00
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title {
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
padding-top: 10px;
|
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
padding-left: 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title::before {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
background: #4181fe;
|
|
|
|
|
|
// height: 30px;
|
|
|
|
|
|
// width: 2px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
// top: 10px;
|
|
|
|
|
|
width: 4px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.wrap {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
// height: 100%;
|
|
|
|
|
|
// border-bottom: 1px solid #12294F;
|
|
|
|
|
|
// border-bottom: 1px solid #ccc
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.print-btn {
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
width: 144px;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
line-height: 32px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.left {
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
.info {
|
|
|
|
|
|
// border-bottom: 1px solid #12294F;
|
|
|
|
|
|
border-bottom: 1px solid #eee;
|
|
|
|
|
|
padding-bottom: 8px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
.close-task {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form-box {
|
|
|
|
|
|
width: 70%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
|
|
/deep/.el-form-item {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
padding-right: 10px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// /deep/.el-col-12{
|
|
|
|
|
|
// padding-left: 20px;
|
|
|
|
|
|
// }
|
|
|
|
|
|
/deep/.el-input__inner {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/.el-select {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/.el-cascader {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.qr-box {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.info-content {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.control-point {
|
|
|
|
|
|
// height: 350px;
|
2024-05-15 18:23:40 +08:00
|
|
|
|
// min-height: 330px;
|
2024-05-14 18:16:17 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
|
|
|
|
.checkbox-list {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
|
|
.status {
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.status1 {
|
|
|
|
|
|
color: #67c23a;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.checkbox-item {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
padding-left: 24px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
line-height: 24px;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
|
|
|
|
.checkbox-children {
|
|
|
|
|
|
padding-left: 24px;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
// font-size: 14px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.nodata {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
margin-top: 110px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
// border-top: 1px solid #12294F;
|
|
|
|
|
|
border-top: 1px solid #eee;
|
|
|
|
|
|
|
|
|
|
|
|
.file-form {
|
|
|
|
|
|
padding-left: 20px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
|
|
// height: 658px;
|
|
|
|
|
|
.form-item {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
// align-items: center;
|
|
|
|
|
|
// color: rgba(#fff,0.55);
|
|
|
|
|
|
padding-bottom: 30px;
|
|
|
|
|
|
|
|
|
|
|
|
.switch-lable {
|
|
|
|
|
|
width: 40%;
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
|
// color: rgba(#fff,0.85);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-switch {
|
|
|
|
|
|
margin-right: 12px;
|
|
|
|
|
|
transform: scale(0.9);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form-right {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
padding-right: 12px;
|
|
|
|
|
|
|
|
|
|
|
|
.switch-box {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 25px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.upload-btn {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 86px;
|
|
|
|
|
|
height: 26px;
|
|
|
|
|
|
border: 1px solid #0080f3;
|
|
|
|
|
|
background: #0080f3;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
line-height: 26px;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.file-list {
|
|
|
|
|
|
// border: 1px solid #0080F3;
|
|
|
|
|
|
border: 1px solid #eee;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
/*background: #0A1429;*/
|
|
|
|
|
|
.list-head {
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
line-height: 32px;
|
|
|
|
|
|
/*background: #1F283B;*/
|
|
|
|
|
|
background: #eee;
|
|
|
|
|
|
padding-left: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.item-box {
|
|
|
|
|
|
|
|
|
|
|
|
// height: 300px;
|
|
|
|
|
|
.list-item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 8px 0;
|
|
|
|
|
|
padding-left: 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
margin: 10px 0;
|
|
|
|
|
|
|
|
|
|
|
|
.file-icon {
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 38px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.file-name {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
|
|
span {
|
|
|
|
|
|
display: inherit;
|
|
|
|
|
|
margin-top: 6px;
|
|
|
|
|
|
color: #7cd3de;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-icon-close {
|
|
|
|
|
|
color: #fe6565;
|
|
|
|
|
|
width: 20px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.list-item:hover {
|
|
|
|
|
|
// background: #132C55;
|
|
|
|
|
|
background: #eee;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// .active{
|
|
|
|
|
|
// background: #132C55;
|
|
|
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.others-info {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
|
|
|
|
.top {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
// border-bottom: 1px solid #12294F;
|
|
|
|
|
|
border-bottom: 1px solid #eee;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.plan-detail {
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
// align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.plan-content {
|
|
|
|
|
|
// width: calc(100% - 200px);
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
// align-items: center;
|
|
|
|
|
|
line-height: 32px;
|
|
|
|
|
|
// padding-left: 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
padding-bottom: 20px;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.plan-content2 {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
// padding-left: 20px;
|
|
|
|
|
|
line-height: 32px;
|
|
|
|
|
|
// width:30%
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.safe-detail {
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.print-btn {
|
|
|
|
|
|
margin-top: 0;
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.bottom {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
// border-bottom: 1px solid #12294F;
|
|
|
|
|
|
border-bottom: 1px solid #eee;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.info-item {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.line {
|
|
|
|
|
|
// border-left: 1px solid #12294F;
|
|
|
|
|
|
border-left: 1px solid #eee;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.button-box {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: flex-end;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
// padding-top: 8px;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
padding-right: 20px;
|
|
|
|
|
|
|
|
|
|
|
|
.cancle-btn {
|
|
|
|
|
|
margin-right: 30px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark {
|
|
|
|
|
|
.print-btn {
|
|
|
|
|
|
background: #0d1a34;
|
|
|
|
|
|
border-color: #0080f3;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title {
|
|
|
|
|
|
color: #88e7f0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box-title::before {
|
|
|
|
|
|
background: linear-gradient(to bottom, #88e7f0, #15315f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.button-box {
|
|
|
|
|
|
.cancle-btn {
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
|
/deep/.el-switch__core:after {
|
|
|
|
|
|
background: #0d1a34;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.upload-btn {
|
|
|
|
|
|
border: 1px solid #0080f3;
|
|
|
|
|
|
background: #0d1a34;
|
|
|
|
|
|
// color: rgba(#fff,0.85);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.delete-btn {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.delete-btn:hover {
|
|
|
|
|
|
color: #fe6565;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.delete {
|
2024-05-15 18:23:40 +08:00
|
|
|
|
color: #fe6565;
|
|
|
|
|
|
}
|
2024-05-14 18:16:17 +08:00
|
|
|
|
</style>
|