update code

dev
lijun 2024-10-30 22:13:47 +08:00
parent 5546c225ea
commit 9a4f8fb373
3 changed files with 224 additions and 717 deletions

View File

@ -1,112 +1,47 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="problemArea">
<el-input
v-model="queryParams.problemArea"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择所属项目" filterable clearable>
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="隐患分类" prop="createUser">
<el-select
v-model="queryParams.roleTypes"
multiple
placeholder="请选择隐患分类"
clearable
collapse-tags
>
<el-option
v-for="dict in roleTypeOpts"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.roleTypes" multiple placeholder="请选择隐患分类" clearable collapse-tags>
<el-option v-for="dict in roleTypeOpts" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="隐患描述" prop="workParts">
<el-input
v-model="queryParams.workParts"
placeholder="请输入隐患描述"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.workParts" placeholder="请输入隐患描述" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="隐患类型" prop="dangerType">
<el-select v-model="queryParams.dangerType" placeholder="隐患类型" clearable>
<el-option
v-for="dict in dict.type.ssp_aqyhlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in dict.type.ssp_aqyhlx" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="整改用户" prop="lordSent">
<el-input
v-model="queryParams.lordSent"
placeholder="请输入整改人姓名/联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.lordSent" placeholder="请输入整改人姓名/联系方式" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="提交用户" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入提交人姓名/联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.createBy" placeholder="请输入提交人姓名/联系方式" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-select
v-model="queryParams.projectDeptId"
placeholder="请选择责任主体"
clearable
>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="提交时间">
<el-date-picker
v-model="daterangeMarksTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeMarksTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button
icon="el-icon-download"
size="mini"
v-hasPermi="['trouble:sspProblemmodify:export']"
@click="handleExport"
>导出</el-button
>
<el-button icon="el-icon-download" size="mini" v-hasPermi="['trouble:sspProblemmodify:export']"
@click="handleExport">导出</el-button>
</el-form-item>
</el-form>
@ -162,28 +97,13 @@
<el-tab-pane :label="tabs.dqr" name="dqr"></el-tab-pane>
<el-tab-pane :label="tabs.ycl" name="ycl"></el-tab-pane>
<el-tab-pane :label="tabs.zgcs" name="zgcs"></el-tab-pane>
<el-table
v-loading="loading"
:data="sspProblemmodifyList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="40" align="center" v-if="false" />
<el-table-column
label="项目名称"
align="center"
prop="problemArea"
width="200"
show-overflow-tooltip
/>
<el-table-column label="项目名称" align="center" prop="problemArea" width="200" show-overflow-tooltip />
<el-table-column label="隐患图片" align="center" property="path" width="220">
<template slot-scope="scope">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="scope.row.marksPicture + '.min.jpg'"
@click="onPreview(scope.row.smarkUrl)"
>
<el-image ref="preview" style="width: 200px; height: 100px" :src="scope.row.marksPicture + '.min.jpg'"
@click="onPreview(scope.row.smarkUrl)">
</el-image>
</template>
</el-table-column>
@ -192,36 +112,14 @@
<dict-tag :options="dict.type.ssp_aqyhlx" :value="scope.row.dangerType" />
</template>
</el-table-column>
<el-table-column
label="隐患描述"
align="center"
prop="workParts"
width="100"
show-overflow-tooltip
/>
<el-table-column
label="整改要求"
align="center"
prop="changeInfo"
width="200"
show-overflow-tooltip
/>
<el-table-column
label="整改截至时间"
align="center"
prop="nickedTime"
width="135"
>
<el-table-column label="隐患描述" align="center" prop="workParts" width="100" show-overflow-tooltip />
<el-table-column label="整改要求" align="center" prop="changeInfo" width="200" show-overflow-tooltip />
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="135">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.nickedTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="隐患整改人"
align="left"
width="120"
show-overflow-tooltip
>
<el-table-column label="隐患整改人" align="left" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.lordSent }}</div>
<div>{{ scope.row.lordSentUser }}</div>
@ -246,10 +144,7 @@
</el-table-column>
<el-table-column label="流程状态" align="center" prop="checkState">
<template slot-scope="scope">
<dict-tag
:options="dict.type.smz_ssp_checkstate"
:value="scope.row.checkState"
/>
<dict-tag :options="dict.type.smz_ssp_checkstate" :value="scope.row.checkState" />
</template>
</el-table-column>
<el-table-column label="复检人" align="left" width="120" show-overflow-tooltip>
@ -275,25 +170,13 @@
</div>
</template>
</el-table-column>
<el-table-column
label="抄送人"
align="left"
prop="copySend"
width="120"
show-overflow-tooltip
>
<el-table-column label="抄送人" align="left" prop="copySend" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.copySend }}</div>
<div>{{ scope.row.copySendUser }}</div>
</template>
</el-table-column>
<el-table-column
label="提交用户"
align="left"
prop="createUser"
width="120"
show-overflow-tooltip
>
<el-table-column label="提交用户" align="left" prop="createUser" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.createBy }}</div>
<div>{{ scope.row.createUser }}</div>
@ -301,16 +184,12 @@
</el-table-column>
<el-table-column label="提交时间" align="center" prop="createTime" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}</span>
<span>{{
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}")
}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="120"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
<template slot-scope="scope">
<!-- <el-button v-if="scope.row.marksVideo != null && scope.row.marksVideo != ''"
size="mini"
@ -319,54 +198,23 @@
@click="handlePlay(scope.row)"
v-hasPermi="['trouble:sspMarks:query']"
>视频</el-button> -->
<el-button
v-if="getIsModify(scope.row)"
size="mini"
type="text"
icon="el-icon-check"
@click="handleModify(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:edit']"
>处理</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-notebook-2"
@click="handleDetail(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:query']"
>详情</el-button
>
<el-button
v-if="getIsVdel(scope.row)"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['work:sspProblemmodify:remove']"
>删除</el-button
>
<el-button v-if="getIsModify(scope.row)" size="mini" type="text" icon="el-icon-check"
@click="handleModify(scope.row)" v-hasPermi="['trouble:sspProblemmodify:edit']">处理</el-button>
<el-button size="mini" type="text" icon="el-icon-notebook-2" @click="handleDetail(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:query']">详情</el-button>
<el-button v-if="getIsVdel(scope.row)" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['work:sspProblemmodify:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-tabs>
<!-- 添加或修改安全整改对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="500px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目id" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入项目id" />
@ -399,13 +247,8 @@
<el-input v-model="form.nickedArea" placeholder="请输入留痕定位" />
</el-form-item>
<el-form-item label="留痕时间" prop="nickedTime">
<el-date-picker
clearable
v-model="form.nickedTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择留痕时间"
>
<el-date-picker clearable v-model="form.nickedTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择留痕时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序名称" prop="processName">
@ -442,23 +285,10 @@
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="srcList" />
<sspProblemmodifyAuditinfoDrawer ref="sspProblemmodifyAuditinfoDrawer" />
<modifyProblemDrawer ref="modifyProblemDrawer" :closeCallBack="getList" />
<el-dialog
title="视频播放"
:visible.sync="openVideo"
width="980px"
:before-close="cancelVideo"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<video
ref="video"
:src="videoSrc"
controls="controls"
autoplay="autoplay"
poster="../../../assets/images/video_loading.gif"
style="max-height: 550px"
/>
<el-dialog title="视频播放" :visible.sync="openVideo" width="980px" :before-close="cancelVideo" append-to-body
:close-on-click-modal="false" :close-on-press-escape="false">
<video ref="video" :src="videoSrc" controls="controls" autoplay="autoplay"
poster="../../../assets/images/video_loading.gif" style="max-height: 550px" />
<div slot="footer" class="dialog-footer">
<el-button @click="cancelVideo"> </el-button>
</div>
@ -567,6 +397,7 @@ export default {
{ label: "总包单位", value: 7 },
],
myMinRoles: [],
projectOptions: [],
isAdmin: false,
nowUser: "",
};
@ -574,7 +405,10 @@ export default {
created() {
this.nowUser = this.$store.getters.name;
this.myMinRoles = this.$store.getters.roles;
if (this.myMinRoles.includes("admin") || this.myMinRoles.includes("super")) {
if (
this.myMinRoles.includes("admin") ||
this.myMinRoles.includes("super")
) {
this.isAdmin = true;
}
this.queryParams.activeName = this.activeName;
@ -582,6 +416,9 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
onPreview(urls) {
@ -756,7 +593,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
handleLog(row) {
this.$refs.sspProblemmodifyAuditinfoDrawer.show(row);

View File

@ -1,109 +1,46 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属项目" prop="projectId" v-if="showPro">
<el-select
v-model="queryParams.projectId"
placeholder="请选择所属项目"
filterable
clearable
>
<el-option
v-for="(item, index) in projectOptions"
:key="index"
:label="item.projectName"
:value="item.id"
>
<el-select v-model="queryParams.projectId" placeholder="请选择所属项目" filterable clearable>
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.deptId" placeholder="请选择责任主体" clearable>
<el-option
v-for="dict in projectDeptOptions"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-option v-for="dict in projectDeptOptions" :key="dict.deptId" :label="dict.deptName"
:value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="问题分类"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-form-item label="问题分类" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.roleTypes" placeholder="请选择问题分类" clearable>
<el-option
v-for="dict in roleTypeOpts"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in roleTypeOpts" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="整改人" prop="lordSent">
<el-input
v-model="queryParams.lordSent"
placeholder="请输入整改人姓名/联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.lordSent" placeholder="请输入整改人姓名/联系方式" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']"
>新增</el-button
>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-sort"
size="mini"
@click="dataSynchronization"
:disabled="single"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']"
>数据同步</el-button
>
<el-button type="warning" plain icon="el-icon-sort" size="mini" @click="dataSynchronization" :disabled="single"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">数据同步</el-button>
</el-col>
<el-col :span="1.5">
<el-tooltip content="Top center" placement="批量提交选择的数据!">
<el-button
type="success"
plain
icon="el-icon-finished"
size="mini"
@click="batchSubmitForm"
:disabled="multiple"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']"
>批量提交</el-button
>
<el-button type="success" plain icon="el-icon-finished" size="mini" @click="batchSubmitForm"
:disabled="multiple" v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">批量提交</el-button>
</el-tooltip>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@ -115,21 +52,11 @@
</template>
</el-alert>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-table
v-loading="loading"
:data="smzSspProblemmodifyDraftList"
:row-class-name="rowIndex"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="smzSspProblemmodifyDraftList" :row-class-name="rowIndex"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50" />
<el-table-column
label="问题图片"
header-align="center"
align="left"
prop="smarkUrl"
width="240"
>
<el-table-column label="问题图片" header-align="center" align="left" prop="smarkUrl" width="240">
<template slot-scope="scope">
<image-upload v-model="scope.row.smarkUrl" :limit="9" :isShowTip="false" />
</template>
@ -137,19 +64,10 @@
<el-table-column label="所属项目" align="center" prop="problemArea" width="180">
<template slot-scope="scope">
<div v-if="scope.row.id != null">{{ scope.row.problemArea }}</div>
<el-select
v-if="scope.row.id == null"
v-model="scope.row.projectId"
placeholder="请选择所属项目"
filterable
@change="changeProject($event, scope.row)"
>
<el-option
v-for="(item, index) in projectOptions"
:key="index"
:label="item.projectName"
:value="item.id"
>
<el-select v-if="scope.row.id == null" v-model="scope.row.projectId" placeholder="请选择所属项目" filterable
@change="changeProject($event, scope.row)">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName"
:value="item.id">
</el-option>
</el-select>
</template>
@ -158,47 +76,26 @@
<template slot-scope="scope">
<el-row style="line-height: 36px; margin-bottom: 5px">
<el-select v-model="scope.row.problemType" placeholder="请选择问题类型">
<el-option
v-for="dict in dict.type.smz_problem_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in dict.type.smz_problem_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-row>
<el-row style="line-height: 36px; margin-bottom: 5px">
<el-select
v-model="scope.row.dangerType"
placeholder="请选择隐患类型"
>
<el-option
v-for="dict in dict.type.ssp_aqyhlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<el-select v-model="scope.row.dangerType" placeholder="请选择隐患类型">
<el-option v-for="dict in dict.type.ssp_aqyhlx" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-row>
</template>
</el-table-column>
<el-table-column label="施工部位" align="center" prop="workParts" width="180">
<template slot-scope="scope">
<el-input
v-model="scope.row.workParts"
placeholder="请输入施工部位"
type="textarea"
:rows="3"
/>
<el-input v-model="scope.row.workParts" placeholder="请输入施工部位" type="textarea" :rows="3" />
</template>
</el-table-column>
<el-table-column label="整改要求" align="center" prop="changeInfo" width="180">
<template slot-scope="scope">
<el-input
v-model="scope.row.changeInfo"
placeholder="请输入整改要求"
type="textarea"
:rows="3"
/>
<el-input v-model="scope.row.changeInfo" placeholder="请输入整改要求" type="textarea" :rows="3" />
</template>
</el-table-column>
<el-table-column label="问题人员" align="center" prop="lordSentUser" width="260">
@ -206,23 +103,12 @@
<el-row style="line-height: 36px; margin-bottom: 5px">
<el-col :span="6">整改人</el-col>
<el-col :span="18">
<el-select
v-model="scope.row.lordSentUser"
placeholder="请选择整改人"
style="width: 100%"
@change="selectLordSentUser($event, scope.row)"
>
<el-option-group
v-for="group in findProjectAllUnitUser(scope.row.projectId)"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
<el-select v-model="scope.row.lordSentUser" placeholder="请选择整改人" style="width: 100%"
@change="selectLordSentUser($event, scope.row)">
<el-option-group v-for="group in findProjectAllUnitUser(scope.row.projectId)" :key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '">
<el-option v-for="item in group.userinfoList" :key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '" :value="item.phonenumber">
</el-option>
</el-option-group>
</el-select>
@ -231,24 +117,12 @@
<el-row style="line-height: 36px; margin-bottom: 5px">
<el-col :span="6">抄送人</el-col>
<el-col :span="18">
<el-select
v-model="scope.row.copySendUser"
placeholder="请选择抄送人"
multiple filterable
style="width: 100%"
@change="selectCopySendUser($event, scope.row)"
>
<el-option-group
v-for="group in findProjectAllUnitUser(scope.row.projectId)"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
<el-select v-model="scope.row.copySendUser" placeholder="请选择抄送人" multiple filterable style="width: 100%"
@change="selectCopySendUser($event, scope.row)">
<el-option-group v-for="group in findProjectAllUnitUser(scope.row.projectId)" :key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '">
<el-option v-for="item in group.userinfoList" :key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '" :value="item.phonenumber">
</el-option>
</el-option-group>
</el-select>
@ -257,23 +131,12 @@
<el-row style="line-height: 36px; margin-bottom: 5px">
<el-col :span="6">复检人</el-col>
<el-col :span="18">
<el-select
v-model="scope.row.recheckSendUser"
placeholder="请选择复检人"
style="width: 100%"
@change="selectRecheckSendUser($event, scope.row)"
>
<el-option-group
v-for="group in findProjectAllUnitFjUser(scope.row.projectId)"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
<el-select v-model="scope.row.recheckSendUser" placeholder="请选择复检人" style="width: 100%"
@change="selectRecheckSendUser($event, scope.row)">
<el-option-group v-for="group in findProjectAllUnitFjUser(scope.row.projectId)"
:key="group.unitId + ''" :label="group.unitName + ' [' + group.unitTypeName + '] '">
<el-option v-for="item in group.userinfoList" :key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '" :value="item.phonenumber">
</el-option>
</el-option-group>
</el-select>
@ -281,19 +144,9 @@
</el-row>
</template>
</el-table-column>
<el-table-column
label="整改截至时间"
align="center"
prop="nickedTime"
width="180"
>
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="180">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.nickedTime"
type="date"
placeholder="选择截至时间"
style="width: 160px"
>
<el-date-picker v-model="scope.row.nickedTime" type="date" placeholder="选择截至时间" style="width: 160px">
</el-date-picker>
</template>
</el-table-column>
@ -305,47 +158,22 @@
<el-tag type="info">{{ scope.row.createUserDeptName }}</el-tag>
</div>
<div>
<i class="el-icon-alarm-clock"></i
>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}
<i class="el-icon-alarm-clock"></i>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}
</div>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="70"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="70">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
@click="submitForm(scope.row)"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:edit']"
>提交</el-button
>
<el-button
class="bt2"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:remove']"
>删除</el-button
>
<el-button size="mini" type="text" icon="el-icon-edit-outline" @click="submitForm(scope.row)"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:edit']">提交</el-button>
<el-button class="bt2" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['trouble:smzSspProblemmodifyDraft:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
@ -359,7 +187,7 @@ import {
export default {
name: "SmzPshProblemmodifyDraft",
dicts: ["ssp_aqyhlx","smz_problem_type"],
dicts: ["ssp_aqyhlx", "smz_problem_type"],
data() {
return {
//
@ -611,7 +439,7 @@ export default {
rows.push(row);
}
this.loading = true;
for (let i = 0; i < rows.length; i++){
for (let i = 0; i < rows.length; i++) {
rows[i].copySendUser = rows[i].copySendUser.toString();
}
batchUpdateSmzSspProblemmodifyDraft(rows).then((response) => {
@ -634,7 +462,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
} else {
let that = this;
//
@ -646,7 +474,7 @@ export default {
.then(() => {
that.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
}
},
/** 行内序号 */
@ -714,27 +542,27 @@ export default {
let data = this.smzSspProblemmodifyDraftList;
let row = data[indexs - 1];
for (let i = 0; i < data.length; i++) {
if (data[i].index != row.index){
if(!data[i].projectId){
if (data[i].index != row.index) {
if (!data[i].projectId) {
data[i].projectId = row.projectId;
data[i].problemArea = row.problemArea;
data[i].problemType = row.problemType;
data[i].lordSent = row.lordSent;
data[i].lordSentUser = row.lordSentUser;
data[i].copySend = row.copySend;
data[i].copySendUser = row.copySendUser;
data[i].recheckSend = row.recheckSend;
data[i].recheckSendUser = row.recheckSendUser;
data[i].nickedTime = row.nickedTime;
}else if(data[i].projectId == row.projectId){
data[i].lordSentUser = row.lordSentUser;
data[i].copySend = row.copySend;
data[i].copySendUser = row.copySendUser;
data[i].recheckSend = row.recheckSend;
data[i].recheckSendUser = row.recheckSendUser;
data[i].nickedTime = row.nickedTime;
} else if (data[i].projectId == row.projectId) {
data[i].problemType = row.problemType;
data[i].lordSent = row.lordSent;
data[i].lordSentUser = row.lordSentUser;
data[i].copySend = row.copySend;
data[i].copySendUser = row.copySendUser;
data[i].recheckSend = row.recheckSend;
data[i].recheckSendUser = row.recheckSendUser;
data[i].nickedTime = row.nickedTime;
data[i].lordSentUser = row.lordSentUser;
data[i].copySend = row.copySend;
data[i].copySendUser = row.copySendUser;
data[i].recheckSend = row.recheckSend;
data[i].recheckSendUser = row.recheckSendUser;
data[i].nickedTime = row.nickedTime;
}
}
}
@ -766,7 +594,7 @@ export default {
createUserDeptName: this.$store.getters.dept.deptName,
createTime: this.$dt(new Date()).format("YYYY-MM-DD HH:mm:ss"),
isDel: 0,
problemType:'1',
problemType: '1',
};
this.smzSspProblemmodifyDraftList.push(row);
this.changeProject(row.projectId, row);
@ -819,14 +647,17 @@ export default {
height: 100px !important;
line-height: 100px !important;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 100px !important;
height: 100px !important;
}
.bt2 {
padding-left: 0px !important;
margin-left: 0px !important;
}
.tips {
padding: 8px 16px;
background-color: #ecf8ff !important;

View File

@ -1,112 +1,49 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="problemArea">
<el-input
v-model="queryParams.problemArea"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择所属项目" filterable clearable>
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="隐患分类" prop="roleTypes">
<el-select
v-model="queryParams.roleTypes"
multiple
placeholder="请选择隐患分类"
clearable
collapse-tags
>
<el-option
v-for="dict in roleTypeOpts"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.roleTypes" multiple placeholder="请选择隐患分类" clearable collapse-tags>
<el-option v-for="dict in roleTypeOpts" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="隐患描述" prop="workParts">
<el-input
v-model="queryParams.workParts"
placeholder="请输入隐患描述"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.workParts" placeholder="请输入隐患描述" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="隐患类型" prop="dangerType">
<el-select v-model="queryParams.dangerType" placeholder="隐患类型" clearable>
<el-option
v-for="dict in dict.type.ssp_zlyhlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in dict.type.ssp_zlyhlx" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="整改用户" prop="lordSent">
<el-input
v-model="queryParams.lordSent"
placeholder="请输入整改人姓名/联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.lordSent" placeholder="请输入整改人姓名/联系方式" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="提交用户" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入提交人姓名/联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.createBy" placeholder="请输入提交人姓名/联系方式" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-select
v-model="queryParams.projectDeptId"
placeholder="请选择责任主体"
clearable
>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="提交时间">
<el-date-picker
v-model="daterangeMarksTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeMarksTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button
icon="el-icon-download"
size="mini"
v-hasPermi="['trouble:sspProblemmodify:export']"
@click="handleExport"
>导出</el-button
>
<el-button icon="el-icon-download" size="mini" v-hasPermi="['trouble:sspProblemmodify:export']"
@click="handleExport">导出</el-button>
</el-form-item>
</el-form>
@ -162,29 +99,14 @@
<el-tab-pane :label="tabs.dqr" name="dqr"></el-tab-pane>
<el-tab-pane :label="tabs.ycl" name="ycl"></el-tab-pane>
<el-tab-pane :label="tabs.zgcs" name="zgcs"></el-tab-pane>
<el-table
v-loading="loading"
:data="sspProblemmodifyList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="40" align="center" v-if="false" />
<el-table-column
label="项目名称"
align="center"
prop="problemArea"
width="200"
fixed="left"
show-overflow-tooltip
/>
<el-table-column label="项目名称" align="center" prop="problemArea" width="200" fixed="left"
show-overflow-tooltip />
<el-table-column label="隐患图片" align="center" property="path" width="220">
<template slot-scope="scope">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="scope.row.marksPicture + '.min.jpg'"
@click="onPreview(scope.row.smarkUrl)"
>
<el-image ref="preview" style="width: 200px; height: 100px" :src="scope.row.marksPicture + '.min.jpg'"
@click="onPreview(scope.row.smarkUrl)">
</el-image>
</template>
</el-table-column>
@ -193,36 +115,14 @@
<dict-tag :options="dict.type.ssp_zlyhlx" :value="scope.row.dangerType" />
</template>
</el-table-column>
<el-table-column
label="隐患描述"
align="center"
prop="workParts"
width="100"
show-overflow-tooltip
/>
<el-table-column
label="整改要求"
align="center"
prop="changeInfo"
width="200"
show-overflow-tooltip
/>
<el-table-column
label="整改截至时间"
align="center"
prop="nickedTime"
width="135"
>
<el-table-column label="隐患描述" align="center" prop="workParts" width="100" show-overflow-tooltip />
<el-table-column label="整改要求" align="center" prop="changeInfo" width="200" show-overflow-tooltip />
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="135">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.nickedTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="隐患整改人"
align="left"
width="120"
show-overflow-tooltip
>
<el-table-column label="隐患整改人" align="left" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.lordSent }}</div>
<div>{{ scope.row.lordSentUser }}</div>
@ -247,10 +147,7 @@
</el-table-column>
<el-table-column label="流程状态" align="center" prop="checkState">
<template slot-scope="scope">
<dict-tag
:options="dict.type.smz_ssp_checkstate"
:value="scope.row.checkState"
/>
<dict-tag :options="dict.type.smz_ssp_checkstate" :value="scope.row.checkState" />
</template>
</el-table-column>
<el-table-column label="复检人" align="left" width="120" show-overflow-tooltip>
@ -276,25 +173,13 @@
</div>
</template>
</el-table-column>
<el-table-column
label="抄送人"
align="left"
prop="copySend"
width="120"
show-overflow-tooltip
>
<el-table-column label="抄送人" align="left" prop="copySend" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.copySend }}</div>
<div>{{ scope.row.copySendUser }}</div>
</template>
</el-table-column>
<el-table-column
label="提交用户"
align="left"
prop="createUser"
width="120"
show-overflow-tooltip
>
<el-table-column label="提交用户" align="left" prop="createUser" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.createBy }}</div>
<div>{{ scope.row.createUser }}</div>
@ -302,16 +187,12 @@
</el-table-column>
<el-table-column label="提交时间" align="center" prop="createTime" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}</span>
<span>{{
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}")
}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="120"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="120">
<template slot-scope="scope">
<!-- <el-button v-if="scope.row.marksVideo != null && scope.row.marksVideo != ''"
size="mini"
@ -320,54 +201,23 @@
@click="handlePlay(scope.row)"
v-hasPermi="['trouble:sspMarks:query']"
>视频</el-button> -->
<el-button
v-if="getIsModify(scope.row)"
size="mini"
type="text"
icon="el-icon-check"
@click="handleModify(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:edit']"
>处理</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-notebook-2"
@click="handleDetail(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:query']"
>详情</el-button
>
<el-button
v-if="getIsVdel(scope.row)"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['work:sspProblemmodify:remove']"
>删除</el-button
>
<el-button v-if="getIsModify(scope.row)" size="mini" type="text" icon="el-icon-check"
@click="handleModify(scope.row)" v-hasPermi="['trouble:sspProblemmodify:edit']">处理</el-button>
<el-button size="mini" type="text" icon="el-icon-notebook-2" @click="handleDetail(scope.row)"
v-hasPermi="['trouble:sspProblemmodify:query']">详情</el-button>
<el-button v-if="getIsVdel(scope.row)" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['work:sspProblemmodify:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-tabs>
<!-- 添加或修改质量整改对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="500px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目id" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入项目id" />
@ -400,13 +250,8 @@
<el-input v-model="form.nickedArea" placeholder="请输入留痕定位" />
</el-form-item>
<el-form-item label="留痕时间" prop="nickedTime">
<el-date-picker
clearable
v-model="form.nickedTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择留痕时间"
>
<el-date-picker clearable v-model="form.nickedTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择留痕时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序名称" prop="processName">
@ -442,24 +287,11 @@
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="srcList" />
<sspProblemmodifyAuditinfoDrawer ref="sspProblemmodifyAuditinfoDrawer" />
<modifyProblemDrawer ref="modifyProblemDrawer" :closeCallBack="getList"/>
<el-dialog
title="视频播放"
:visible.sync="openVideo"
width="980px"
:before-close="cancelVideo"
:close-on-click-modal="false"
:close-on-press-escape="false"
append-to-body
>
<video
ref="video"
:src="videoSrc"
controls="controls"
autoplay="autoplay"
poster="../../../assets/images/video_loading.gif"
style="max-height: 550px"
/>
<modifyProblemDrawer ref="modifyProblemDrawer" :closeCallBack="getList" />
<el-dialog title="视频播放" :visible.sync="openVideo" width="980px" :before-close="cancelVideo"
:close-on-click-modal="false" :close-on-press-escape="false" append-to-body>
<video ref="video" :src="videoSrc" controls="controls" autoplay="autoplay"
poster="../../../assets/images/video_loading.gif" style="max-height: 550px" />
<div slot="footer" class="dialog-footer">
<el-button @click="cancelVideo"> </el-button>
</div>
@ -478,7 +310,7 @@ import {
} from "@/api/trouble/sspProblemmodify";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
import sspProblemmodifyAuditinfoDrawer from "./sspProblemmodifyAuditinfoDrawer.vue";
import modifyProblemDrawer from './modifyProblemDrawer.vue';
import modifyProblemDrawer from "./modifyProblemDrawer.vue";
export default {
name: "SspProblemmodify",
@ -568,14 +400,18 @@ export default {
{ label: "总包单位", value: 7 },
],
myMinRoles: [],
projectOptions: [],
isAdmin: false,
nowUser:"",
nowUser: "",
};
},
created() {
this.nowUser = this.$store.getters.name;
this.myMinRoles = this.$store.getters.roles;
if (this.myMinRoles.includes("admin") || this.myMinRoles.includes("super")) {
if (
this.myMinRoles.includes("admin") ||
this.myMinRoles.includes("super")
) {
this.isAdmin = true;
}
this.queryParams.activeName = this.activeName;
@ -583,6 +419,9 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
onPreview(urls) {
@ -757,7 +596,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 查看详情 */
handleDetail(row) {
@ -775,33 +614,33 @@ export default {
},
/** 是否可处理 */
getIsModify(row) {
if(row.checkState==0 || row.checkState==3){
if(this.isAdmin || this.nowUser==row.lordSentUser){
if (row.checkState == 0 || row.checkState == 3) {
if (this.isAdmin || this.nowUser == row.lordSentUser) {
return true;
}else{
} else {
return false;
}
}else if(row.checkState==1){
if(this.isAdmin || this.nowUser==row.recheckSendUser){
} else if (row.checkState == 1) {
if (this.isAdmin || this.nowUser == row.recheckSendUser) {
return true;
}else{
} else {
return false;
}
}else{
} else {
return false;
}
},
/** 处理操作 */
handleModify(row){
handleModify(row) {
this.$refs.modifyProblemDrawer.show(row);
},
/** 是否可删除 */
getIsVdel(row) {
if(this.isAdmin){
if (this.isAdmin) {
return true;
}else if(this.nowUser==row.createUser && row.checkState!=4){
} else if (this.nowUser == row.createUser && row.checkState != 4) {
return true;
}else{
} else {
return false;
}
},