姜玉琦 2024-11-09 00:05:23 +08:00
commit 752daf1d28
5 changed files with 227 additions and 720 deletions

View File

@ -1095,7 +1095,6 @@ public class AttendanceJgwTask {
String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd"); String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd");
String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-30),"yyyy-MM-dd"); String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-30),"yyyy-MM-dd");
syncAttendanceData(dtStart,dtEnd); syncAttendanceData(dtStart,dtEnd);
syncAttendanceData(dtStart,dtEnd);
} }

View File

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

View File

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

View File

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

View File

@ -148,7 +148,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="serverid != null "> and serverid = #{serverid}</if> <if test="serverid != null "> and serverid = #{serverid}</if>
<if test="workerId != null "> and workerId = #{workerId}</if> <if test="workerId != null "> and workerId = #{workerId}</if>
<if test="attendanceOutTime!=null and attendanceOutTime!=''"> <if test="attendanceOutTime!=null and attendanceOutTime!=''">
and date(attendance_out_time) &lt;=date(#{attendanceOutTime}) and (date(attendance_out_time) &lt;=date(#{attendanceOutTime}) or date(attendance_time) &lt;=date(#{attendanceOutTime}))
</if> </if>
<if test="teamId != null "> and teamId = #{teamId}</if> <if test="teamId != null "> and teamId = #{teamId}</if>
@ -175,7 +175,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="scanPhoto != null and scanPhoto != ''"> and scanPhoto like concat('%', #{scanPhoto}, '%')</if> <if test="scanPhoto != null and scanPhoto != ''"> and scanPhoto like concat('%', #{scanPhoto}, '%')</if>
<if test="workerName != null and workerName != ''"> and workerName like concat('%', #{workerName}, '%')</if> <if test="workerName != null and workerName != ''"> and workerName like concat('%', #{workerName}, '%')</if>
<if test="isDel != null "> and is_del = #{isDel}</if> <if test="isDel != null "> and is_del = #{isDel}</if>
<if test="attendanceTime != null and attendanceTime != ''"> and date(attendance_time) &gt;= date(#{attendanceTime})</if> <if test="attendanceTime != null and attendanceTime != ''"> and
(date(attendance_time) &gt;= date(#{attendanceTime}) or date(attendance_out_time) &gt;= date(#{attendanceTime}) )</if>
<if test="identification != null and identification != ''"> and identification = #{identification}</if> <if test="identification != null and identification != ''"> and identification = #{identification}</if>
</where> </where>
order by id desc order by id desc