提交代码

dev_xds
姜玉琦 2023-08-12 21:32:32 +08:00
parent ce13a2840b
commit 3e85b7e7b3
7 changed files with 523 additions and 88 deletions

View File

@ -198,17 +198,25 @@
<el-button size="mini" type="text" icon="el-icon-time" @click="prjProcessMgr(scope.row)" v-hasPermi="['project:surProject:edit']"></el-button> <el-button size="mini" type="text" icon="el-icon-time" @click="prjProcessMgr(scope.row)" v-hasPermi="['project:surProject:edit']"></el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['project:surProject:edit']"></el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['project:surProject:edit']"></el-button>
<el-button size="mini" type="text" icon="el-icon-user-solid" @click="handleProjectUserinfo(scope.row)" v-hasPermi="['project:surProjectUserInfo:add']"></el-button> <el-button size="mini" type="text" icon="el-icon-user-solid" @click="handleProjectUserinfo(scope.row)" v-hasPermi="['project:surProjectUserInfo:add']"></el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['project:surProject:remove']"> <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:assess:list','project:build_node_data:list','work:workTrain:list','work:emergencyDrill:list','project:surProjectSpecial:list','project:surProject:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button> <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多操作</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleAssess" icon="el-icon-coordinate" <el-dropdown-item command="handleAssess" icon="el-icon-coordinate"
v-hasPermi="['system:assess:list']">季度考核管理</el-dropdown-item> v-hasPermi="['system:assess:list']">季度考核管理</el-dropdown-item>
<el-dropdown-item command="handleBuildNode" icon="el-icon-data-analysis" <el-dropdown-item command="handleBuildNode" icon="el-icon-data-analysis"
v-hasPermi="['project:build_node_data:list']">计划节点管理</el-dropdown-item> v-hasPermi="['project:build_node_data:list']">计划节点管理</el-dropdown-item>
<el-dropdown-item command="handlePshProblemmodify" icon="el-icon-first-aid-kit"
v-hasPermi="['trouble:sspProblemmodify:list']">安全隐患排查</el-dropdown-item>
<el-dropdown-item command="handleSspProblemmodify" icon="el-icon-first-aid-kit"
v-hasPermi="['trouble:sspProblemmodify:list']">质量隐患排查</el-dropdown-item>
<el-dropdown-item command="handleWorkTrain" icon="el-icon-notebook-2" <el-dropdown-item command="handleWorkTrain" icon="el-icon-notebook-2"
v-hasPermi="['work:workTrain:add']">专项培训</el-dropdown-item> v-hasPermi="['work:workTrain:list']">项目专项培训</el-dropdown-item>
<el-dropdown-item command="handleEmergencyDrill" icon="el-icon-first-aid-kit" <el-dropdown-item command="handleEmergencyDrill" icon="el-icon-first-aid-kit"
v-hasPermi="['work:emergencyDrill:add']">应急演练</el-dropdown-item> v-hasPermi="['work:emergencyDrill:list']">项目应急演练</el-dropdown-item>
<el-dropdown-item command="handleProjectSpecial" icon="el-icon-first-aid-kit"
v-hasPermi="['project:surProjectSpecial:list']">项目特种人员</el-dropdown-item>
<el-dropdown-item command="handleProjectAttendance" icon="el-icon-first-aid-kit"
v-hasPermi="['project:surProjectAttendance:list']">项目出勤记录</el-dropdown-item>
<el-dropdown-item command="handleDelete" icon="el-icon-delete" <el-dropdown-item command="handleDelete" icon="el-icon-delete"
v-hasPermi="['project:surProject:remove']">删除项目</el-dropdown-item> v-hasPermi="['project:surProject:remove']">删除项目</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
@ -461,6 +469,10 @@
size="50%" size="50%"
:visible.sync="emergencyDrillDrawerVisible" :visible.sync="emergencyDrillDrawerVisible"
:form-data="formData"></emergencyDrillDrawer> :form-data="formData"></emergencyDrillDrawer>
<surProjectSpecialDrawer
size="50%"
:visible.sync="projectSpecialDrawerVisible"
:form-data="formData"></surProjectSpecialDrawer>
</div> </div>
</template> </template>
@ -473,11 +485,12 @@ import AssessDrawer from '../surProjectQuarterlyAssess/assessDrawer.vue'
import buildNodeDrawer from '../surBuildNode/buildNodeDrawer.vue' import buildNodeDrawer from '../surBuildNode/buildNodeDrawer.vue'
import workTrainDrawer from '../../work/workTrain/workTrainDrawer.vue' import workTrainDrawer from '../../work/workTrain/workTrainDrawer.vue'
import emergencyDrillDrawer from '../../work/emergencyDrill/emergencyDrillDrawer.vue' import emergencyDrillDrawer from '../../work/emergencyDrill/emergencyDrillDrawer.vue'
import surProjectSpecialDrawer from '../surProjectSpecial/surProjectSpecialDrawer.vue'
export default { export default {
name: "SurProject", name: "SurProject",
components:{ components:{
ProjectScheduleDlg,projectUserInfoDrawer,BaiduMap,AssessDrawer,buildNodeDrawer,workTrainDrawer,emergencyDrillDrawer ProjectScheduleDlg,projectUserInfoDrawer,BaiduMap,AssessDrawer,buildNodeDrawer,workTrainDrawer,emergencyDrillDrawer,surProjectSpecialDrawer
}, },
dicts: ['sys_check_state','sur_project_xmjd', 'project_build_type', 'sys_common_isdel', 'project_category','project_level','sur_project_weight'], dicts: ['sys_check_state','sur_project_xmjd', 'project_build_type', 'sys_common_isdel', 'project_category','project_level','sur_project_weight'],
data() { data() {
@ -485,6 +498,7 @@ export default {
projectUserInfoDrawerVisible: false, projectUserInfoDrawerVisible: false,
workTrainDrawerVisible: false, workTrainDrawerVisible: false,
emergencyDrillDrawerVisible: false, emergencyDrillDrawerVisible: false,
projectSpecialDrawerVisible: false,
// //
loading: true, loading: true,
// //
@ -693,6 +707,9 @@ export default {
case "handleEmergencyDrill": case "handleEmergencyDrill":
this.handleEmergencyDrill(row); this.handleEmergencyDrill(row);
break; break;
case "handleProjectSpecial":
this.handleProjectSpecial(row);
break;
default: default:
break; break;
} }
@ -790,6 +807,11 @@ export default {
this.formData.projectId = row.id; this.formData.projectId = row.id;
this.formData.projectName = row.projectName; this.formData.projectName = row.projectName;
this.emergencyDrillDrawerVisible = true; this.emergencyDrillDrawerVisible = true;
},
handleProjectSpecial(row){
this.formData.projectId = row.id;
this.formData.projectName = row.projectName;
this.projectSpecialDrawerVisible = true;
} }
} }
}; };

View File

@ -1,31 +1,23 @@
<template> <template>
<div class="app-container"> <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"> <el-form-item label="项目名称" prop="projectName">
<el-input <el-input
v-model="queryParams.projectId" v-model="queryParams.projectName"
placeholder="请输入项目主键" placeholder="请输入项目名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="人员姓名" prop="name">
<el-input
v-model="queryParams.deptId"
placeholder="请输入部门主键"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
placeholder="请输入姓名" placeholder="请输入人员姓名"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否有证" prop="isCredential"> <el-form-item label="是否有证" prop="isCredential">
<el-select v-model="queryParams.isCredential" placeholder="请选择是否有证书" clearable> <el-select v-model="queryParams.isCredential" placeholder="请选择是否有证书" clearable>
<el-option <el-option
v-for="dict in dict.type.sys_yes_no" v-for="dict in dict.type.sys_yes_no"
@ -35,26 +27,15 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="证书过期时间"> <el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-date-picker <el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
v-model="daterangeCredentialExpirationTime" <el-option
style="width: 240px" v-for="dict in depts"
value-format="yyyy-MM-dd" :key="dict.deptId"
type="daterange" :label="dict.deptName"
range-separator="-" :value="dict.deptId"
start-placeholder="开始日期" ></el-option>
end-placeholder="结束日期" </el-select>
></el-date-picker>
</el-form-item>
<el-form-item label="删除标识" prop="isDel">
<el-select v-model="queryParams.isDel" placeholder="请选择删除标识" clearable>
<el-option
v-for="dict in dict.type.sys_common_isdel"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</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> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -63,7 +44,7 @@
</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" type="primary"
plain plain
@ -72,7 +53,7 @@
@click="handleAdd" @click="handleAdd"
v-hasPermi="['project:surProjectSpecial:add']" v-hasPermi="['project:surProjectSpecial:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
@ -110,29 +91,25 @@
<el-table v-loading="loading" :data="surProjectSpecialList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="surProjectSpecialList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" /> <el-table-column label="项目名称" align="center" prop="projectName" width="220" show-overflow-tooltip />
<el-table-column label="项目主键" align="center" prop="projectId" /> <el-table-column label="提交单位" align="center" prop="deptName" />
<el-table-column label="部门主键" align="center" prop="deptId" /> <el-table-column label="人员姓名" align="center" prop="name" />
<el-table-column label="姓名" align="center" prop="name" /> <el-table-column label="性别" align="center" prop="sex" >
<el-table-column label="性别" align="center" prop="sex" /> <template slot-scope="scope">
<el-table-column label="年龄" align="center" prop="age" /> <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
<el-table-column label="身份证号" align="center" prop="idNumber" /> </template>
</el-table-column>
<el-table-column label="是否有证书" align="center" prop="isCredential"> <el-table-column label="是否有证书" align="center" prop="isCredential">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCredential"/> <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCredential"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="证书编号" align="center" prop="credentialNumber" /> <el-table-column label="证书编号" align="center" prop="credentialNumber" width="200" show-overflow-tooltip/>
<el-table-column label="证书过期时间" align="center" prop="credentialExpirationTime" width="180"> <el-table-column label="证书过期时间" align="center" prop="credentialExpirationTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.credentialExpirationTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.credentialExpirationTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="删除标识" align="center" prop="isDel">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
@ -165,23 +142,24 @@
<!-- 添加或修改项目特种人员对话框 --> <!-- 添加或修改项目特种人员对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<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="项目主键" prop="projectId"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectId" placeholder="请输入项目主键" /> <el-input v-model="form.projectName" placeholder="请输入项目名称" disabled/>
</el-form-item> </el-form-item>
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="人员姓名" prop="name">
<el-input v-model="form.deptId" placeholder="请输入部门主键" /> <el-input v-model="form.name" placeholder="请输入人员姓名" />
</el-form-item> </el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="性别" prop="sex">
<el-input v-model="form.name" placeholder="请输入姓名" /> <el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%;">
</el-form-item> <el-option
<el-form-item label="年龄" prop="age"> v-for="dict in dict.type.sys_user_sex"
<el-input v-model="form.age" placeholder="请输入年龄" /> :key="dict.value"
</el-form-item> :label="dict.label"
<el-form-item label="身份证号" prop="idNumber"> :value="dict.value"
<el-input v-model="form.idNumber" placeholder="请输入身份证号" /> ></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否有证书" prop="isCredential"> <el-form-item label="是否有证书" prop="isCredential">
<el-select v-model="form.isCredential" placeholder="请选择是否有证书"> <el-select v-model="form.isCredential" placeholder="请选择是否有证书" style="width: 100%;" @change="credentialChange">
<el-option <el-option
v-for="dict in dict.type.sys_yes_no" v-for="dict in dict.type.sys_yes_no"
:key="dict.value" :key="dict.value"
@ -190,10 +168,10 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="证书编号" prop="credentialNumber"> <el-form-item label="证书编号" prop="credentialNumber" v-show="credential">
<el-input v-model="form.credentialNumber" placeholder="请输入证书编号" /> <el-input v-model="form.credentialNumber" placeholder="请输入证书编号" />
</el-form-item> </el-form-item>
<el-form-item label="证书过期时间" prop="credentialExpirationTime"> <el-form-item label="证书过期时间" prop="credentialExpirationTime" v-show="credential">
<el-date-picker clearable <el-date-picker clearable
v-model="form.credentialExpirationTime" v-model="form.credentialExpirationTime"
type="date" type="date"
@ -201,16 +179,6 @@
placeholder="请选择证书过期时间"> placeholder="请选择证书过期时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="删除标识" prop="isDel">
<el-select v-model="form.isDel" placeholder="请选择删除标识">
<el-option
v-for="dict in dict.type.sys_common_isdel"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
@ -228,7 +196,7 @@ import { listSurProjectSpecial, getSurProjectSpecial, delSurProjectSpecial, addS
export default { export default {
name: "SurProjectSpecial", name: "SurProjectSpecial",
dicts: ['sys_yes_no', 'sys_common_isdel'], dicts: ['sys_yes_no', 'sys_user_sex'],
data() { data() {
return { return {
// //
@ -261,18 +229,50 @@ export default {
isCredential: null, isCredential: null,
credentialExpirationTime: null, credentialExpirationTime: null,
isDel: null, isDel: null,
projectDeptId: null
}, },
depts:null,
credential: false,
// //
form: {}, form: {},
// //
rules: { rules: {
name: [
{ required: true, message: "请输入人员姓名", trigger: "blur" },
{ maxlength: 20, message: "人员姓名最多20字符", trigger: "blur" }
],
sex: [
{ required: true, message: "请选择人员性别", trigger: "blur" }
],
isCredential: [
{ required: true, message: "请选择是否有证书", trigger: "blur" }
],
credentialNumber: [
{ required: false, message: "请输入证书编号", trigger: "blur" },
{ maxlength: 50, message: "证书编号最多50字符", trigger: "blur" }
],
credentialExpirationTime: [
{ required: true, message: "请选择证书过期时间", trigger: "blur" }
],
remark: [
{ required: false, message: "请输入备注", trigger: "blur" },
{ maxlength: 200, message: "备注最多200字符", trigger: "blur" }
]
} }
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.$api.publics.getZgsDeptList().then(d=>{
this.depts=d?.data||[];
})
}, },
methods: { methods: {
//
credentialChange(ev){
debugger
console.log(ev.value);
},
/** 查询项目特种人员列表 */ /** 查询项目特种人员列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -343,6 +343,11 @@ export default {
const id = row.id || this.ids const id = row.id || this.ids
getSurProjectSpecial(id).then(response => { getSurProjectSpecial(id).then(response => {
this.form = response.data; this.form = response.data;
if(this.form.isCredential=="Y"){
this.credential = true;
}else{
this.credential = false;
}
this.open = true; this.open = true;
this.title = "修改项目特种人员"; this.title = "修改项目特种人员";
}); });

View File

@ -0,0 +1,355 @@
<template>
<div class="app-container">
<el-drawer v-bind="$attrs" v-if="onOpen" v-on="$listeners" @opened="onOpen" @close="onClose" style="padding-left: 20px;">
<el-row :gutter="10" class="mb8" style="margin-left: 25px; margin-top:10px;">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['project:surProjectSpecial:add']"
>添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['project:surProjectSpecial:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['project:surProjectSpecial:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="surProjectSpecialList" style="margin-left: 20px;margin-right: 20px;" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="提交单位" align="center" prop="deptName" width="150" show-overflow-tooltip/>
<el-table-column label="人员姓名" align="center" prop="name" width="80" show-overflow-tooltip/>
<el-table-column label="性别" align="center" prop="sex" width="60">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="是否有证书" align="center" prop="isCredential" width="90">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCredential"/>
</template>
</el-table-column>
<el-table-column label="证书编号" align="center" prop="credentialNumber" show-overflow-tooltip/>
<el-table-column label="证书过期时间" align="center" prop="credentialExpirationTime" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.credentialExpirationTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" width="150" show-overflow-tooltip/>
<el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:surProjectSpecial:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectSpecial: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"
/>
<el-dialog :title="title" v-if="open" :visible.sync="open" width="680px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectName" placeholder="请输入项目名称" disabled/>
</el-form-item>
<el-form-item label="人员姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入人员姓名" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否有证书" prop="isCredential">
<el-select v-model="form.isCredential" placeholder="请选择是否有证书" style="width: 100%;" @change="credentialChange">
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="证书编号" prop="credentialNumber" v-show="credential">
<el-input v-model="form.credentialNumber" placeholder="请输入证书编号" />
</el-form-item>
<el-form-item label="证书过期时间" prop="credentialExpirationTime" v-show="credential">
<el-date-picker clearable
v-model="form.credentialExpirationTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择证书过期时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</el-drawer>
</div>
</template>
<script>
import { listSurProjectSpecial, getSurProjectSpecial, delSurProjectSpecial, addSurProjectSpecial, updateSurProjectSpecial } from "@/api/project/surProjectSpecial";
export default {
components: {},
props: {
formData: {
projectId: String,
projectName: String
}
},
dicts: ['sys_yes_no', 'sys_user_sex'],
data() {
return {
//
loading: true,
//
ids: [],
//
total: 0,
//
single: true,
//
multiple: true,
//
showSearch: true,
//
open: false,
//
title: "",
credential: false,
surProjectSpecialList: [],
//
queryParams: {
pageNum: 1,
pageSize: 20,
projectId: null
},
//
form: {},
//
rules: {
name: [
{ required: true, message: "请输入人员姓名", trigger: "blur" },
{ maxlength: 20, message: "人员姓名最多20字符", trigger: "blur" }
],
sex: [
{ required: true, message: "请选择人员性别", trigger: "blur" }
],
isCredential: [
{ required: true, message: "请选择是否有证书", trigger: "blur" }
],
credentialNumber: [
{ required: false, message: "请输入证书编号", trigger: "blur" },
{ maxlength: 50, message: "证书编号最多50字符", trigger: "blur" }
],
credentialExpirationTime: [
{ required: false, message: "请选择证书过期时间", trigger: "blur" }
],
remark: [
{ required: false, message: "请输入备注", trigger: "blur" },
{ maxlength: 200, message: "备注最多200字符", trigger: "blur" }
]
}
}
},
computed: {},
watch: {
formData: {
handler(value) {
this.formData = value
},
immediate: true
}
},
created() {
},
mounted() {
},
beforeDestroy() {
},
methods: {
//
credentialChange(val){
if(val=="Y"){
this.credential = true;
this.rules.credentialNumber[0].required = true;
this.rules.credentialExpirationTime[0].required = true;
}else{
this.credential = false;
this.credentialNumber = null;
this.credentialExpirationTime = null;
this.rules.credentialNumber[0].required = false;
this.rules.credentialExpirationTime[0].required = false;
}
console.log("12312312");
},
onOpen() {
this.getList();
},
onClose() {},
/** 查询特种人员列表 */
getList() {
if(this.formData.projectId){
this.loading = true;
this.queryParams.projectId = this.formData.projectId;
listSurProjectSpecial(this.queryParams).then(response => {
this.surProjectSpecialList = response.rows;
this.total = response.total;
this.loading = false;
});
}
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
//
reset() {
this.form = {
id: null,
projectId: null,
deptId: null,
name: null,
sex: null,
age: null,
idNumber: null,
isCredential: null,
credentialNumber: null,
credentialExpirationTime: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.credential = false;
this.form.projectId=this.formData.projectId;
this.form.projectName=this.formData.projectName;
this.open = true;
this.title = "添加特种人员";
},
//
cancel() {
this.open = false;
this.reset();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getSurProjectSpecial(id).then(response => {
this.form = response.data;
if(this.form.isCredential=="Y"){
this.credential = true;
}else{
this.credential = false;
}
this.open = true;
this.title = "修改项目特种人员";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSurProjectSpecial(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSurProjectSpecial(this.form).then(response => {
this.$modal.msgSuccess("添加成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除特种人员编号为"' + ids + '"的数据项?').then(function() {
return delSurProjectSpecial(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
}
}
</script>
<style lang="scss" scoped>
@import '@/styles/mixin.scss';
::v-deep .el-drawer__header {
display: none;
}
@include action-bar;
.json-editor{
height: calc(100vh - 33px);
}
</style>

View File

@ -2,6 +2,10 @@ package com.yanzhu.jh.project.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -34,6 +38,9 @@ public class SurProjectWorkSpecialController extends BaseController
@Autowired @Autowired
private ISurProjectWorkSpecialService surProjectWorkSpecialService; private ISurProjectWorkSpecialService surProjectWorkSpecialService;
@Autowired
private ISysDeptService sysDeptService;
/** /**
* *
*/ */
@ -42,6 +49,13 @@ public class SurProjectWorkSpecialController extends BaseController
public TableDataInfo list(SurProjectWorkSpecial surProjectWorkSpecial) public TableDataInfo list(SurProjectWorkSpecial surProjectWorkSpecial)
{ {
startPage(); startPage();
surProjectWorkSpecial.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZGS.getCode().equals(surProjectWorkSpecial.getNowRole())){
surProjectWorkSpecial.setNowDept(Convert.toStr(sysDeptService.getZGSDeptId(getDeptId())));
}else{
surProjectWorkSpecial.setNowDept(Convert.toStr(getDeptId()));
}
surProjectWorkSpecial.setNowUser(Convert.toStr(getUserId()));
List<SurProjectWorkSpecial> list = surProjectWorkSpecialService.selectSurProjectWorkSpecialList(surProjectWorkSpecial); List<SurProjectWorkSpecial> list = surProjectWorkSpecialService.selectSurProjectWorkSpecialList(surProjectWorkSpecial);
return getDataTable(list); return getDataTable(list);
} }
@ -54,6 +68,13 @@ public class SurProjectWorkSpecialController extends BaseController
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, SurProjectWorkSpecial surProjectWorkSpecial) public void export(HttpServletResponse response, SurProjectWorkSpecial surProjectWorkSpecial)
{ {
surProjectWorkSpecial.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZGS.getCode().equals(surProjectWorkSpecial.getNowRole())){
surProjectWorkSpecial.setNowDept(Convert.toStr(sysDeptService.getZGSDeptId(getDeptId())));
}else{
surProjectWorkSpecial.setNowDept(Convert.toStr(getDeptId()));
}
surProjectWorkSpecial.setNowUser(Convert.toStr(getUserId()));
List<SurProjectWorkSpecial> list = surProjectWorkSpecialService.selectSurProjectWorkSpecialList(surProjectWorkSpecial); List<SurProjectWorkSpecial> list = surProjectWorkSpecialService.selectSurProjectWorkSpecialList(surProjectWorkSpecial);
ExcelUtil<SurProjectWorkSpecial> util = new ExcelUtil<SurProjectWorkSpecial>(SurProjectWorkSpecial.class); ExcelUtil<SurProjectWorkSpecial> util = new ExcelUtil<SurProjectWorkSpecial>(SurProjectWorkSpecial.class);
util.exportExcel(response, list, "项目特种人员数据"); util.exportExcel(response, list, "项目特种人员数据");

View File

@ -61,6 +61,9 @@ public class SurProjectWorkSpecial extends BaseEntity
@Excel(name = "删除标识") @Excel(name = "删除标识")
private String isDel; private String isDel;
private String projectName;
private String deptName;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -161,6 +164,22 @@ public class SurProjectWorkSpecial extends BaseEntity
return isDel; return isDel;
} }
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -54,6 +54,7 @@ public class SurProjectWorkSpecialServiceImpl implements ISurProjectWorkSpecialS
public int insertSurProjectWorkSpecial(SurProjectWorkSpecial surProjectWorkSpecial) public int insertSurProjectWorkSpecial(SurProjectWorkSpecial surProjectWorkSpecial)
{ {
surProjectWorkSpecial.setCreateBy(SecurityUtils.getUsername()); surProjectWorkSpecial.setCreateBy(SecurityUtils.getUsername());
surProjectWorkSpecial.setDeptId(SecurityUtils.getDeptId());
surProjectWorkSpecial.setCreateTime(DateUtils.getNowDate()); surProjectWorkSpecial.setCreateTime(DateUtils.getNowDate());
return surProjectWorkSpecialMapper.insertSurProjectWorkSpecial(surProjectWorkSpecial); return surProjectWorkSpecialMapper.insertSurProjectWorkSpecial(surProjectWorkSpecial);
} }

View File

@ -21,6 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="projectName" column="projectName" />
<result property="deptName" column="dept_name" />
</resultMap> </resultMap>
<sql id="selectSurProjectWorkSpecialVo"> <sql id="selectSurProjectWorkSpecialVo">
@ -28,14 +30,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectSurProjectWorkSpecialList" parameterType="SurProjectWorkSpecial" resultMap="SurProjectWorkSpecialResult"> <select id="selectSurProjectWorkSpecialList" parameterType="SurProjectWorkSpecial" resultMap="SurProjectWorkSpecialResult">
<include refid="selectSurProjectWorkSpecialVo"/> select spwp.id, spwp.project_id, spwp.dept_id, spwp.name, spwp.sex, spwp.age, spwp.id_number, spwp.is_credential, spwp.credential_number, spwp.credential_expiration_time, spwp.is_del, spwp.create_by, spwp.create_time, spwp.update_by, spwp.update_time, spwp.remark, sp.projectName, sd.dept_name from sur_project_work_special spwp
left join sur_project sp on sp.id = spwp.project_id
left join sys_dept sd on sd.dept_id = spwp.dept_id
<where> <where>
<if test="projectId != null "> and project_id = #{projectId}</if> <if test="projectId != null "> and spwp.project_id = #{projectId}</if>
<if test="deptId != null "> and dept_id = #{deptId}</if> <if test="deptId != null "> and spwp.dept_id = #{deptId}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> <if test="name != null and name != ''"> and spwp.name like concat('%', #{name}, '%')</if>
<if test="isCredential != null and isCredential != ''"> and is_credential = #{isCredential}</if> <if test="projectName != null and projectName != ''"> and sp.projectName like concat('%', #{projectName}, '%')</if>
<if test="params.beginCredentialExpirationTime != null and params.beginCredentialExpirationTime != '' and params.endCredentialExpirationTime != null and params.endCredentialExpirationTime != ''"> and credential_expiration_time between #{params.beginCredentialExpirationTime} and #{params.endCredentialExpirationTime}</if> <if test="isCredential != null and isCredential != ''"> and spwp.is_credential = #{isCredential}</if>
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if> <if test="params.beginCredentialExpirationTime != null and params.beginCredentialExpirationTime != '' and params.endCredentialExpirationTime != null and params.endCredentialExpirationTime != ''"> and spwp.credential_expiration_time between #{params.beginCredentialExpirationTime} and #{params.endCredentialExpirationTime}</if>
<if test="isDel != null and isDel != ''"> and spwp.is_del = #{isDel}</if>
<!-- 查询条件-项目部门 -->
<if test="projectDeptId != null "> and sp.deptId = #{projectDeptId}</if>
<!--子部门数据-->
<if test='nowRole == "4"'> and sp.deptId = #{nowDept}</if>
<!--监理单位/总包公司/分包单位查询当前关联数据-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> and sp.id in (select spui.projectId from sur_project_unit_info spui where spui.unitId = #{nowDept})</if>
<if test='nowRole == "99"'> and sp.id in (select spu.project_id from sur_project_userinfo spu where spu.user_id = #{nowUser} and spu.is_del=0)</if>
</where> </where>
</select> </select>