Merge branch 'dev_xd' of http://62.234.3.186:3000/jiangyq/YZProjectCloud into dev_xd
commit
e6cc6dbf52
|
@ -21,17 +21,17 @@ public class GreenCarbonItem extends BaseEntity
|
||||||
@Excel(name = "ID(有ID进行更新,无ID进行增加)")
|
@Excel(name = "ID(有ID进行更新,无ID进行增加)")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Excel(name = "公司")
|
|
||||||
private String compName;
|
private String compName;
|
||||||
/** 公司主键 */
|
/** 公司主键 */
|
||||||
@Excel(name = "公司ID")
|
|
||||||
private Long comId;
|
private Long comId;
|
||||||
@Excel(name = "分包单位")
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
/** $column.columnComment */
|
/** $column.columnComment */
|
||||||
|
|
||||||
/** 分包单位 */
|
/** 分包单位 */
|
||||||
@Excel(name = "分包单位ID")
|
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
/** 碳因子类型 */
|
/** 碳因子类型 */
|
||||||
|
|
|
@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
left join sys_user_ext ex on u.user_id=ex.user_id
|
left join sys_user_ext ex on u.user_id=ex.user_id
|
||||||
where u.del_flag = '0' and u.user_type= '00'
|
where u.del_flag = '0'
|
||||||
<if test="userId != null and userId != 0">
|
<if test="userId != null and userId != 0">
|
||||||
AND u.user_id = #{userId}
|
AND u.user_id = #{userId}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import com.yanzhu.common.core.utils.poi.ExcelUtil;
|
import com.yanzhu.common.core.utils.poi.ExcelUtil;
|
||||||
import com.yanzhu.common.core.web.controller.BaseController;
|
import com.yanzhu.common.core.web.controller.BaseController;
|
||||||
import com.yanzhu.common.core.web.domain.AjaxResult;
|
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||||
|
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -80,12 +82,20 @@ public class GreenCarbonItemController extends BaseController
|
||||||
@RequiresPermissions("manage:greenCarbonItem:import")
|
@RequiresPermissions("manage:greenCarbonItem:import")
|
||||||
@Log(title = "碳因子管理", businessType = BusinessType.IMPORT)
|
@Log(title = "碳因子管理", businessType = BusinessType.IMPORT)
|
||||||
@PostMapping("/import")
|
@PostMapping("/import")
|
||||||
public AjaxResult importData(HttpServletResponse response,MultipartFile file) throws Exception {
|
public AjaxResult importData(HttpServletResponse response, MultipartFile file, HttpServletRequest request) throws Exception {
|
||||||
ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class);
|
ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class);
|
||||||
List<GreenCarbonItem> list= util.importExcel(file.getInputStream());
|
List<GreenCarbonItem> list= util.importExcel(file.getInputStream());
|
||||||
GreenCarbonItem where=new GreenCarbonItem();
|
GreenCarbonItem where=new GreenCarbonItem();
|
||||||
List<GreenCarbonItem> findList;
|
List<GreenCarbonItem> findList;
|
||||||
|
long prjId= NumberUtil.parseLong(request.getParameter("prjId"),0l);
|
||||||
|
long comId= NumberUtil.parseLong(request.getParameter("comId"),0l);
|
||||||
for (GreenCarbonItem item : list){
|
for (GreenCarbonItem item : list){
|
||||||
|
if(prjId==0||comId==0){
|
||||||
|
item.setRemark("无效的项目ID或租户ID");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
item.setProjectId(prjId);
|
||||||
|
item.setComId(comId);
|
||||||
if(item.getId()==null|| item.getId().equals(0l)){
|
if(item.getId()==null|| item.getId().equals(0l)){
|
||||||
where.setComId(item.getComId());
|
where.setComId(item.getComId());
|
||||||
where.setProjectId(item.getProjectId());
|
where.setProjectId(item.getProjectId());
|
||||||
|
@ -93,7 +103,12 @@ public class GreenCarbonItemController extends BaseController
|
||||||
where.setCarbonFactorType(item.getCarbonFactorType());
|
where.setCarbonFactorType(item.getCarbonFactorType());
|
||||||
findList=greenCarbonItemService.selectGreenCarbonItemList(where);
|
findList=greenCarbonItemService.selectGreenCarbonItemList(where);
|
||||||
if(findList.size()>0){
|
if(findList.size()>0){
|
||||||
item.setRemark("当前项目已存在相同数据!");
|
findList.stream().forEach(item1->{
|
||||||
|
item1.setUnit(item.getUnit());
|
||||||
|
item1.setCarbonFactor(item.getCarbonFactor());
|
||||||
|
greenCarbonItemService.updateGreenCarbonItem(item1);
|
||||||
|
});
|
||||||
|
item.setRemark("修改成功!当前项目已存在相同数据!");
|
||||||
} else{
|
} else{
|
||||||
greenCarbonItemService.insertGreenCarbonItem(item);
|
greenCarbonItemService.insertGreenCarbonItem(item);
|
||||||
item.setRemark("增加成功!");
|
item.setRemark("增加成功!");
|
||||||
|
@ -103,8 +118,8 @@ public class GreenCarbonItemController extends BaseController
|
||||||
if(old==null){
|
if(old==null){
|
||||||
item.setRemark("无效ID");
|
item.setRemark("无效ID");
|
||||||
}else{
|
}else{
|
||||||
where.setComId(item.getComId());
|
where.setComId(old.getComId());
|
||||||
where.setProjectId(item.getProjectId());
|
where.setProjectId(old.getProjectId());
|
||||||
where.setCarbonName(item.getCarbonName());
|
where.setCarbonName(item.getCarbonName());
|
||||||
where.setCarbonFactorType(item.getCarbonFactorType());
|
where.setCarbonFactorType(item.getCarbonFactorType());
|
||||||
findList = greenCarbonItemService.selectGreenCarbonItemList(where);
|
findList = greenCarbonItemService.selectGreenCarbonItemList(where);
|
||||||
|
|
|
@ -36,14 +36,14 @@
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
|
||||||
v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button>
|
v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5" v-if="userStore.currentPrjId">
|
||||||
<el-upload ref="uploadRef" :limit="1" accept=".xlsx" :headers="upload.headers" v-hasPermi="['manage:greenCarbonItem:import']"
|
<el-upload ref="uploadRef" :limit="1" accept=".xlsx" :headers="upload.headers" v-hasPermi="['manage:greenCarbonItem:import']"
|
||||||
:action="upload.url" :disabled="upload.isUploading"
|
:action="upload.url" :disabled="upload.isUploading"
|
||||||
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true">
|
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true">
|
||||||
<el-button type="primary" v-loading="upload.isUploading" >导入</el-button>
|
<el-button type="primary" v-loading="upload.isUploading" >导入</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5" v-if="userStore.currentPrjId">
|
||||||
<el-button type="success" plain icon="Download" @click="handleExport"
|
<el-button type="success" plain icon="Download" @click="handleExport"
|
||||||
v-hasPermi="['manage:greenCarbonItem:export']">导出</el-button>
|
v-hasPermi="['manage:greenCarbonItem:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -132,7 +132,7 @@
|
||||||
</el-table>
|
</el-table>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer" style="text-align: center;">
|
<div class="dialog-footer" style="text-align: center;">
|
||||||
<el-button type="primary" @click="data.openImport=false">确 定</el-button>
|
<el-button type="primary" @click="doImportOk">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
@ -364,10 +364,15 @@ const handleFileSuccess = (response, file, fileList) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function doImportOk(){
|
||||||
|
data.openImport=false
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
getProjectList(()=>{
|
getProjectList(()=>{
|
||||||
getList();
|
getList();
|
||||||
|
upload.url=import.meta.env.VITE_APP_BASE_API + "/manage/greenCarbonItem/import?prjId="+userStore.currentPrjId+"&comId="+userStore.currentComId;
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style type="scss">
|
<style type="scss">
|
||||||
|
|
|
@ -94,11 +94,17 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="三级安全教育" align="center" class-name="small-padding fixed-width" width="100">
|
<el-table-column label="三级安全教育" align="center" class-name="small-padding fixed-width" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.subDeptType=='4' || scope.row.subDeptType=='5'">
|
<div v-if="scope.row.subDeptType == '4' || scope.row.subDeptType == '5'">
|
||||||
<el-button v-if="scope.row.eduStatus=='0'" link type="primary" icon="Link" @click="handleDownloadFile(scope.row)">查看</el-button>
|
<el-button v-if="scope.row.eduStatus == '0'" link type="primary" icon="Link"
|
||||||
<el-button v-if="scope.row.eduStatus!='0'" link type="warning" disabled>未完成</el-button>
|
@click="handleDownloadFile(scope.row)">查看</el-button>
|
||||||
|
<el-button v-if="scope.row.eduStatus != '0'" link type="warning" disabled>未完成</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-button v-if="scope.row.subDeptType!='4' && scope.row.subDeptType!='5'" link disabled> - </el-button>
|
<el-button v-if="scope.row.subDeptType != '4' && scope.row.subDeptType != '5'" link disabled> - </el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="人员岗位" align="center" prop="craftPost">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ getWorkType(scope.row.workType) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="状态" align="center" prop="useStatus">
|
<el-table-column label="状态" align="center" prop="useStatus">
|
||||||
|
@ -114,7 +120,7 @@
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']" v-if="1==2">删除</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']" v-if="1 == 2">删除</el-button>
|
||||||
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-if="scope.row.useStatus == 0"
|
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-if="scope.row.useStatus == 0"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">离场</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">离场</el-button>
|
||||||
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-else
|
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-else
|
||||||
|
@ -129,11 +135,11 @@
|
||||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
<!-- 添加或修改分包单位工人对话框 -->
|
<!-- 添加或修改分包单位工人对话框 -->
|
||||||
<el-drawer v-model="open" size="960px" class="edit-drawer">
|
<el-drawer v-model="open" size="960px" class="edit-drawer" >
|
||||||
<template #header>
|
<template #header>
|
||||||
<div style="position: relative;">{{ title }}</div>
|
<div style="position: relative;">{{ title }}</div>
|
||||||
</template>
|
</template>
|
||||||
<el-form ref="proProjectInfoSubdeptsUsersRef" :model="form" :rules="rules" label-width="120px"
|
<el-form v-loading="loading" ref="proProjectInfoSubdeptsUsersRef" :model="form" :rules="rules" label-width="120px"
|
||||||
style="position: relative;">
|
style="position: relative;">
|
||||||
|
|
||||||
<el-row v-if="data.phoneState || true">
|
<el-row v-if="data.phoneState || true">
|
||||||
|
@ -166,7 +172,7 @@
|
||||||
<image-upload v-model="form.faceImage" :limit="1" class="face-image" @change="doImageUpload(3)" />
|
<image-upload v-model="form.faceImage" :limit="1" class="face-image" @change="doImageUpload(3)" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="姓名" prop="userName">
|
<el-form-item label="姓名" prop="userName">
|
||||||
<el-input v-model="form.userName" placeholder="请输入姓名" />
|
<el-input v-model="form.userName" placeholder="请输入姓名" />
|
||||||
|
@ -183,30 +189,31 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<div style="width: 100%;">
|
<div style="width: 100%;">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="联系电话" prop="userPhone">
|
<el-form-item label="联系电话" prop="userPhone">
|
||||||
<el-input v-model="form.userPhone" disabled v-if="data.mode == 'edit'" placeholder="请输入联系电话"
|
<el-input v-model="form.userPhone" disabled v-if="data.mode == 'edit'" placeholder="请输入联系电话"
|
||||||
minlength="11" maxlength="11" style="width: 150px;" />
|
minlength="11" maxlength="11" style="width: 150px;" />
|
||||||
<el-input v-model="form.userPhone" v-else placeholder="请输入联系电话" minlength="11" maxlength="11"
|
<el-input v-model="form.userPhone" v-else placeholder="请输入联系电话" minlength="11" maxlength="11"
|
||||||
style="width: 150px;" />
|
style="width: 150px;" />
|
||||||
<el-button type="primary" v-if="data.mode != 'edit' && false" style="margin-left:10px;"
|
<el-button type="primary" v-if="data.mode != 'edit' && false" style="margin-left:10px;"
|
||||||
@click="queryPhone">查询</el-button>
|
@click="queryPhone">查询</el-button>
|
||||||
<span style="margin-left:10px;color:#999;">此电话号码将用作登录</span>
|
<span style="margin-left:10px;color:#999;">此电话号码将用作登录</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="form.userPost==66">
|
||||||
<el-form-item label="用户岗位" prop="workType">
|
<el-form-item label="用户岗位" prop="workType">
|
||||||
<el-select v-model="form.userWorkType" style="width:40%" @change="doWorkTypeChange">
|
<el-select v-model="form.userWorkType" style="width:40%" @change="doWorkTypeChange">
|
||||||
<el-option v-for="item in data.prjWorkCategories" :key="item" :label="item"
|
<el-option v-for="item in data.prjWorkCategories" :key="item" :label="item"
|
||||||
:value="item" ></el-option>
|
:value="item"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="form.workType" placeholder="请选择用户岗位" style="width:calc(60% - 12px);margin-left:10px;">
|
<el-select v-model="form.workType" placeholder="请选择用户岗位"
|
||||||
<el-option v-for="item in data.prjWorkTypes" :key="item.value" :label="item.label"
|
style="width:calc(60% - 12px);margin-left:10px;">
|
||||||
:value="item.value" ></el-option>
|
<el-option v-for="item in data.prjWorkTypes" :key="item.value" :label="item.label"
|
||||||
</el-select>
|
:value="item.value"></el-option>
|
||||||
</el-form-item>
|
</el-select>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
</el-row>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="班组名称" prop="subDeptGroup">
|
<el-form-item label="班组名称" prop="subDeptGroup">
|
||||||
|
@ -225,8 +232,8 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="工种" v-if="data.isManager" prop="craftPost">
|
<el-form-item label="工种" v-if="data.isManager" prop="craftPost">
|
||||||
<el-select v-model="form.craftPost">
|
<el-select v-model="form.craftPost">
|
||||||
<el-option v-for="dict in data.craftPostList" :key="dict.value"
|
<el-option v-for="dict in data.craftPostList" :key="dict.value" :label="dict.label"
|
||||||
:label="dict.label" :value="dict.value" />
|
:value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工种" v-else>
|
<el-form-item label="工种" v-else>
|
||||||
|
@ -241,7 +248,8 @@
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="12"><el-form-item label="性别">
|
<el-col :span="12"><el-form-item label="性别">
|
||||||
<el-radio-group v-model="form.sex">
|
<el-radio-group v-model="form.sex">
|
||||||
<el-radio v-for="(dict, idx) in sys_user_sex" :key="idx" :label="dict.label" :value="dict.value">{{ dict.label }}</el-radio>
|
<el-radio v-for="(dict, idx) in sys_user_sex" :key="idx" :label="dict.label" :value="dict.value">{{
|
||||||
|
dict.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="12"><el-form-item label="文件程度">
|
<el-col :span="12"><el-form-item label="文件程度">
|
||||||
|
@ -275,11 +283,11 @@
|
||||||
<el-input v-model="form.bankOffice" placeholder="请输入开户网点" />
|
<el-input v-model="form.bankOffice" placeholder="请输入开户网点" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
|
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer" v-loading="loading">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -297,9 +305,9 @@ import useUserStore from '@/store/modules/user'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { sys_use_status, pro_craft_type, sys_is_del, pro_craft_post, certificate_type, educational_type,sys_user_sex,user_work_type } =
|
const { sys_use_status, pro_craft_type, sys_is_del, pro_craft_post, certificate_type, educational_type, sys_user_sex, user_work_type } =
|
||||||
proxy.useDict('sys_use_status', 'pro_craft_type', 'sys_is_del', 'pro_craft_post', 'certificate_type',
|
proxy.useDict('sys_use_status', 'pro_craft_type', 'sys_is_del', 'pro_craft_post', 'certificate_type',
|
||||||
'educational_type','sys_user_sex','user_work_type');
|
'educational_type', 'sys_user_sex', 'user_work_type');
|
||||||
|
|
||||||
const proProjectInfoSubdeptsUsersList = ref([]);
|
const proProjectInfoSubdeptsUsersList = ref([]);
|
||||||
const open = ref(false);
|
const open = ref(false);
|
||||||
|
@ -343,13 +351,12 @@ const data = reactive({
|
||||||
illnessStatus: null,
|
illnessStatus: null,
|
||||||
supIllnessStatus: null,
|
supIllnessStatus: null,
|
||||||
isDel: null,
|
isDel: null,
|
||||||
userWorkType:null,
|
userWorkType: null,
|
||||||
workType:null,
|
workType: null,
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
subDeptId: [{ required: true, trigger: ['blur', 'change'], message: "请选择所属单位" }],
|
subDeptId: [{ required: true, trigger: ['blur', 'change'], message: "请选择所属单位" }],
|
||||||
userName: [{ required: true, trigger: ['blur', 'change'], message: "请输入姓名" }],
|
userName: [{ required: true, trigger: ['blur', 'change'], message: "请输入姓名" }],
|
||||||
workType: [{ required: true, trigger: ['blur', 'change'], message: "请选择用户岗位" }],
|
|
||||||
userPhone: [
|
userPhone: [
|
||||||
{ required: true, trigger: ['blur', 'change'], message: "请输入手机号码" },
|
{ required: true, trigger: ['blur', 'change'], message: "请输入手机号码" },
|
||||||
{ min: 11, max: 11, message: '请输入有效手机号码', trigger: 'blur' },
|
{ min: 11, max: 11, message: '请输入有效手机号码', trigger: 'blur' },
|
||||||
|
@ -370,10 +377,10 @@ const data = reactive({
|
||||||
userInfo: null,
|
userInfo: null,
|
||||||
mode: '',
|
mode: '',
|
||||||
editData: null,
|
editData: null,
|
||||||
craftPostList:[],
|
craftPostList: [],
|
||||||
prjWorkTypeObj:{},
|
prjWorkTypeObj: {},
|
||||||
prjWorkCategories:[],//项目人员岗位大类
|
prjWorkCategories: [],//项目人员岗位大类
|
||||||
prjWorkTypes:[],//项目人员岗位类型
|
prjWorkTypes: [],//项目人员岗位类型
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
@ -391,7 +398,7 @@ function handleEnter(row) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function doWorkTypeChange(){
|
function doWorkTypeChange() {
|
||||||
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType]
|
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType]
|
||||||
}
|
}
|
||||||
//批量入场,批量离场
|
//批量入场,批量离场
|
||||||
|
@ -410,40 +417,40 @@ function handleBatchEnterState(state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//图片上传
|
//图片上传
|
||||||
function doImageUpload(type) {
|
function doImageUpload(type) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
let url='';
|
let url = '';
|
||||||
form.value.identificationCard = form.value.certificatePhoto1 && form.value.certificatePhoto2 && form.value.faceImage ? "yes" : ''
|
form.value.identificationCard = form.value.certificatePhoto1 && form.value.certificatePhoto2 && form.value.faceImage ? "yes" : ''
|
||||||
if(type==1){
|
if (type == 1) {
|
||||||
url=form.value.certificatePhoto1;
|
url = form.value.certificatePhoto1;
|
||||||
if(url){
|
if (url) {
|
||||||
url=location.origin+url;
|
url = location.origin + url;
|
||||||
//url="http://62.234.3.186/statics/2025/01/19/4491f170cd1609142f9a6f097cbf681f_20250119000046A004.jpg"
|
//url="http://62.234.3.186/statics/2025/01/19/4491f170cd1609142f9a6f097cbf681f_20250119000046A004.jpg"
|
||||||
proxy.$http.get(`/system/tools/id/front?url=${url}`).then(d=>{
|
proxy.$http.get(`/system/tools/id/front?url=${url}`).then(d => {
|
||||||
form.value.userName=form.value.userName||d.data.name||'';
|
form.value.userName = form.value.userName || d.data.name || '';
|
||||||
form.value.certificateCode=form.value.certificateCode||d.data.cardId||'';
|
form.value.certificateCode = form.value.certificateCode || d.data.cardId || '';
|
||||||
form.value.address=form.value.address||d.data.address||'';
|
form.value.address = form.value.address || d.data.address || '';
|
||||||
from.value.nativePlace=form.value.native||d.data.native||'';
|
from.value.nativePlace = form.value.native || d.data.native || '';
|
||||||
let nation=d.data.nation||"";
|
let nation = d.data.nation || "";
|
||||||
if(nation){
|
if (nation) {
|
||||||
let tmps= data.nationOpts.filter(it=>it.indexOf(nation)>=0);
|
let tmps = data.nationOpts.filter(it => it.indexOf(nation) >= 0);
|
||||||
if(tmps.length>0){
|
if (tmps.length > 0) {
|
||||||
form.value.nation=form.value.nation||tmps[0]||'';
|
form.value.nation = form.value.nation || tmps[0] || '';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
let sex=d.data.sex||'';
|
|
||||||
if(sex){
|
|
||||||
form.value.sex=form.value.sex||(sex=='男'?0:1);
|
|
||||||
}
|
}
|
||||||
let birthDay=d.data.birthDay;
|
let sex = d.data.sex || '';
|
||||||
if(birthDay && birthDay.length==8){
|
if (sex) {
|
||||||
birthDay=birthDay.substr(0,4)+"-"+birthDay.substr(4,2)+"-"+birthDay.substr(6);
|
form.value.sex = form.value.sex || (sex == '男' ? 0 : 1);
|
||||||
form.value.birthDay=form.value.birthDay||birthDay;
|
|
||||||
}
|
}
|
||||||
|
let birthDay = d.data.birthDay;
|
||||||
|
if (birthDay && birthDay.length == 8) {
|
||||||
|
birthDay = birthDay.substr(0, 4) + "-" + birthDay.substr(4, 2) + "-" + birthDay.substr(6);
|
||||||
|
form.value.birthDay = form.value.birthDay || birthDay;
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}else if(type==2){
|
} else if (type == 2) {
|
||||||
/*
|
/*
|
||||||
url=form.value.certificatePhoto2;
|
url=form.value.certificatePhoto2;
|
||||||
if(url){
|
if(url){
|
||||||
|
@ -561,7 +568,9 @@ function reset() {
|
||||||
contactPhone: '',//紧急联系人电话
|
contactPhone: '',//紧急联系人电话
|
||||||
bankName: '',//工资卡银行
|
bankName: '',//工资卡银行
|
||||||
bankCardNo: '',//工资卡号
|
bankCardNo: '',//工资卡号
|
||||||
bankOffice: '',//开户网点
|
bankOffice: '',//开户网点
|
||||||
|
userWorkType: '',//岗位大类
|
||||||
|
workType: '',//岗位大类
|
||||||
};
|
};
|
||||||
proxy.resetForm("proProjectInfoSubdeptsUsersRef");
|
proxy.resetForm("proProjectInfoSubdeptsUsersRef");
|
||||||
data.phoneState = "";
|
data.phoneState = "";
|
||||||
|
@ -621,18 +630,18 @@ function doDeptGroupChange() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let tmps = data.deptGroups.filter(d => d.id == form.value.subDeptGroup);
|
let tmps = data.deptGroups.filter(d => d.id == form.value.subDeptGroup);
|
||||||
if (tmps.length > 0 ) {
|
if (tmps.length > 0) {
|
||||||
let dg = tmps[0];
|
let dg = tmps[0];
|
||||||
form.value.groupName = dg.groupName;
|
form.value.groupName = dg.groupName;
|
||||||
form.value.craftTypeName = getCraftType(dg.craftType);
|
form.value.craftTypeName = getCraftType(dg.craftType);
|
||||||
form.value.craftPostName = getCraftPost(dg.craftPost);
|
form.value.craftPostName = getCraftPost(dg.craftPost);
|
||||||
if(dg.craftType==3){
|
if (dg.craftType == 3) {
|
||||||
let subDepts=data.subdepts.filter(d=>d.id==dg.subDeptId)
|
let subDepts = data.subdepts.filter(d => d.id == dg.subDeptId)
|
||||||
let subDeptType=subDepts.length>0?subDepts[0].subDeptType||'':'';
|
let subDeptType = subDepts.length > 0 ? subDepts[0].subDeptType || '' : '';
|
||||||
subDeptType=`,${subDeptType},`
|
subDeptType = `,${subDeptType},`
|
||||||
data.craftPostList=pro_craft_post.value.filter(d=>d.remark.indexOf(subDeptType)>=0 && d.elTagClass==3)
|
data.craftPostList = pro_craft_post.value.filter(d => d.remark.indexOf(subDeptType) >= 0 && d.elTagClass == 3)
|
||||||
}
|
}
|
||||||
if(data.mode != 'edit'){
|
if (data.mode != 'edit') {
|
||||||
form.value.craftPost = dg.craftPost
|
form.value.craftPost = dg.craftPost
|
||||||
}
|
}
|
||||||
form.value.craftType = dg.craftType;
|
form.value.craftType = dg.craftType;
|
||||||
|
@ -694,6 +703,7 @@ function handleAdd() {
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "添加劳务人员信息";
|
title.value = "添加劳务人员信息";
|
||||||
reset();
|
reset();
|
||||||
|
loading.value=true;
|
||||||
loadSubDepts(() => {
|
loadSubDepts(() => {
|
||||||
data.editData = null;
|
data.editData = null;
|
||||||
data.mode = 'add';
|
data.mode = 'add';
|
||||||
|
@ -703,6 +713,7 @@ function handleAdd() {
|
||||||
form.value.projectName = userStore.currentProName;
|
form.value.projectName = userStore.currentProName;
|
||||||
form.value.nation = data.nationOpts[0];
|
form.value.nation = data.nationOpts[0];
|
||||||
form.value.sex = "0";
|
form.value.sex = "0";
|
||||||
|
loading.value=false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -714,6 +725,7 @@ function handleUpdate(row) {
|
||||||
data.editData = row;
|
data.editData = row;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "修改劳务人员信息";
|
title.value = "修改劳务人员信息";
|
||||||
|
loading.value=true;
|
||||||
loadSubDepts(() => {
|
loadSubDepts(() => {
|
||||||
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
||||||
let obj = JSON.parse(JSON.stringify(response.data));
|
let obj = JSON.parse(JSON.stringify(response.data));
|
||||||
|
@ -734,13 +746,20 @@ function handleUpdate(row) {
|
||||||
obj.certificatePhoto2 = obj.info.certificatePhoto2;
|
obj.certificatePhoto2 = obj.info.certificatePhoto2;
|
||||||
obj.faceImage = obj.userPicture;
|
obj.faceImage = obj.userPicture;
|
||||||
obj.educationalType = obj.degreeGrade
|
obj.educationalType = obj.degreeGrade
|
||||||
form.value = obj;
|
obj.userPost=obj.userPost;
|
||||||
|
form.value = obj;
|
||||||
form.value.userId = obj.userId;
|
form.value.userId = obj.userId;
|
||||||
form.value.projectId = row.projectId;
|
form.value.projectId = row.projectId;
|
||||||
form.value.projectName = row.projectName;
|
form.value.projectName = row.projectName;
|
||||||
|
form.value.workType = form.value.workType ? "" + form.value.workType : "";
|
||||||
|
let tmps = user_work_type.value.filter(d => d.value == form.value.workType);
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
form.value.userWorkType = tmps[0].remark;
|
||||||
|
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType];
|
||||||
|
}
|
||||||
//showEditUser(obj.user);
|
//showEditUser(obj.user);
|
||||||
data.phoneState = "edit";
|
data.phoneState = "edit";
|
||||||
|
loading.value=false;
|
||||||
doImageUpload();
|
doImageUpload();
|
||||||
|
|
||||||
//doDeptGroupChange();
|
//doDeptGroupChange();
|
||||||
|
@ -748,7 +767,6 @@ function handleUpdate(row) {
|
||||||
doSubDeptChange();
|
doSubDeptChange();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
form.value.craftPost = response.data.craftPost;
|
form.value.craftPost = response.data.craftPost;
|
||||||
console.log("++++++>",form.value.craftPost)
|
|
||||||
}, 400)
|
}, 400)
|
||||||
|
|
||||||
}, 400);
|
}, 400);
|
||||||
|
@ -756,6 +774,15 @@ function handleUpdate(row) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getWorkType(wt) {
|
||||||
|
if (wt) {
|
||||||
|
let tmps = user_work_type.value.filter(d => d.value == wt);
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
return tmps[0].remark + " - " + tmps[0].label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
function showEditUser(user) {
|
function showEditUser(user) {
|
||||||
user = user || {};
|
user = user || {};
|
||||||
let info = tryToJson(user?.userInfos || "{}")
|
let info = tryToJson(user?.userInfos || "{}")
|
||||||
|
@ -827,6 +854,7 @@ function submitForm() {
|
||||||
userInfos: JSON.stringify(info),
|
userInfos: JSON.stringify(info),
|
||||||
craftType: form.value.craftType,
|
craftType: form.value.craftType,
|
||||||
craftPost: form.value.craftPost,
|
craftPost: form.value.craftPost,
|
||||||
|
workType: form.value.workType,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (form.value.id != null) {
|
if (form.value.id != null) {
|
||||||
|
@ -859,7 +887,7 @@ function handleDelete(row) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 打开三级安全教育承诺书 */
|
/** 打开三级安全教育承诺书 */
|
||||||
function handleDownloadFile(row){
|
function handleDownloadFile(row) {
|
||||||
proxy.$download.resource(row.eduFilePath);
|
proxy.$download.resource(row.eduFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -869,21 +897,21 @@ function handleExport() {
|
||||||
...queryParams.value
|
...queryParams.value
|
||||||
}, `proProjectInfoSubdeptsUsers_${new Date().getTime()}.xlsx`)
|
}, `proProjectInfoSubdeptsUsers_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
function getUserWorkType(){
|
function getUserWorkType() {
|
||||||
let obj={};
|
let obj = {};
|
||||||
user_work_type.value.filter(d=>d.elTagClass=="项目人员").forEach(d=>{
|
user_work_type.value.filter(d => d.elTagClass == "项目人员").forEach(d => {
|
||||||
let bigType=d.remark;
|
let bigType = d.remark;
|
||||||
d.value=""+d.value;
|
d.value = "" + d.value;
|
||||||
if(!obj[bigType]){
|
if (!obj[bigType]) {
|
||||||
obj[bigType]=[];
|
obj[bigType] = [];
|
||||||
data.prjWorkCategories.push(bigType);
|
data.prjWorkCategories.push(bigType);
|
||||||
}
|
}
|
||||||
obj[bigType].push(d);
|
obj[bigType].push(d);
|
||||||
});
|
});
|
||||||
data.prjWorkTypeObj=obj;
|
data.prjWorkTypeObj = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSubDepts(()=>{
|
loadSubDepts(() => {
|
||||||
getUserWorkType();
|
getUserWorkType();
|
||||||
});
|
});
|
||||||
getList();
|
getList();
|
||||||
|
|
|
@ -80,6 +80,11 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber"
|
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber"
|
||||||
v-if="columns[5].visible" width="120" />
|
v-if="columns[5].visible" width="120" />
|
||||||
|
<el-table-column label="人员岗位" align="center" prop="craftPost">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ getWorkType(scope.row.workType) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="用户状态" align="center" key="status" v-if="columns[6].visible">
|
<el-table-column label="用户状态" align="center" key="status" v-if="columns[6].visible">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
|
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
|
||||||
|
@ -123,7 +128,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="所属部门" prop="deptId">
|
<el-form-item label="所属部门" prop="deptId">
|
||||||
<el-tree-select ref="selTreeDept" v-if="data.mode=='add'" v-model="form.deptId" :data="deptOptions"
|
<el-tree-select ref="selTreeDept" v-if="data.mode == 'add'" v-model="form.deptId" :data="deptOptions"
|
||||||
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
|
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
|
||||||
placeholder="请选择所属部门" check-strictly style="width:100%" @change="handleChangeDept" />
|
placeholder="请选择所属部门" check-strictly style="width:100%" @change="handleChangeDept" />
|
||||||
<el-tag type="primary" v-else>{{ form.dept?.deptName }}</el-tag>
|
<el-tag type="primary" v-else>{{ form.dept?.deptName }}</el-tag>
|
||||||
|
@ -132,9 +137,8 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="用户姓名" prop="nickName">
|
<el-form-item label="用户姓名" prop="nickName">
|
||||||
<el-input v-model="form.nickName" placeholder="请输入用户名称" maxlength="30"
|
<el-input v-model="form.nickName" placeholder="请输入用户名称" maxlength="30" style="width: 150px;" />
|
||||||
style="width: 150px;" />
|
<!--
|
||||||
<!--
|
|
||||||
<el-button v-if="data.mode == 'add' && !data.editUser" type="primary" style="margin-left: 10px;"
|
<el-button v-if="data.mode == 'add' && !data.editUser" type="primary" style="margin-left: 10px;"
|
||||||
@click="doQueryUserByName">查询</el-button>
|
@click="doQueryUserByName">查询</el-button>
|
||||||
<el-button v-if="data.editUser" type="success" style="margin-left: 10px;"
|
<el-button v-if="data.editUser" type="success" style="margin-left: 10px;"
|
||||||
|
@ -163,7 +167,8 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="登录密码" prop="password">
|
<el-form-item label="登录密码" prop="password">
|
||||||
<el-input v-model="form.password" placeholder="请输入登录密码" type="password" maxlength="20"
|
<el-input v-model="form.password" placeholder="请输入登录密码" type="password" maxlength="20"
|
||||||
:disabled="form.userId" :show-password="!form.userId" autocomplete="new-password" disableautocomplete />
|
:disabled="form.userId" :show-password="!form.userId" autocomplete="new-password"
|
||||||
|
disableautocomplete />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
@ -184,19 +189,22 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="用户岗位" prop="workType">
|
<el-form-item label="用户岗位" prop="workType">
|
||||||
<el-select v-model="form.workType" v-if="form.userType=='00'" placeholder="请选择用户岗位" style="width:100%">
|
<el-select v-model="form.workType" v-if="form.userType == '00'" placeholder="请选择用户岗位"
|
||||||
|
style="width:100%">
|
||||||
<el-option v-for="item in data.sysWorkTypes" :key="item.value" :label="item.label"
|
<el-option v-for="item in data.sysWorkTypes" :key="item.value" :label="item.label"
|
||||||
:value="item.value" ></el-option>
|
:value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-select v-model="form.userWorkType" v-if="form.userType!='00'" style="width:40%" @change="doWorkTypeChange">
|
<el-select v-model="form.userWorkType" v-if="form.userType != '00'" style="width:40%"
|
||||||
|
@change="doWorkTypeChange">
|
||||||
<el-option v-for="item in data.prjWorkCategories" :key="item" :label="item"
|
<el-option v-for="item in data.prjWorkCategories" :key="item" :label="item"
|
||||||
:value="item" ></el-option>
|
:value="item"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="form.workType" v-if="form.userType!='00'" placeholder="请选择用户岗位" style="width:calc(60% - 12px);margin-left:10px;">
|
<el-select v-model="form.workType" v-if="form.userType != '00'" placeholder="请选择用户岗位"
|
||||||
|
style="width:calc(60% - 12px);margin-left:10px;">
|
||||||
<el-option v-for="item in data.prjWorkTypes" :key="item.value" :label="item.label"
|
<el-option v-for="item in data.prjWorkTypes" :key="item.value" :label="item.label"
|
||||||
:value="item.value" ></el-option>
|
:value="item.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
@ -247,7 +255,7 @@
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitFileForm" >确 定</el-button>
|
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||||
<el-button @click="upload.open = false">取 消</el-button>
|
<el-button @click="upload.open = false">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -265,7 +273,7 @@ import { onMounted } from "vue";
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { sys_user_type, sys_normal_disable, sys_user_sex,user_work_type } = proxy.useDict("sys_user_type", "sys_normal_disable", "sys_user_sex","user_work_type");
|
const { sys_user_type, sys_normal_disable, sys_user_sex, user_work_type } = proxy.useDict("sys_user_type", "sys_normal_disable", "sys_user_sex", "user_work_type");
|
||||||
|
|
||||||
const userList = ref([]);
|
const userList = ref([]);
|
||||||
const open = ref(false);
|
const open = ref(false);
|
||||||
|
@ -313,7 +321,7 @@ const columns = ref([
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
loading:false,
|
loading: false,
|
||||||
form: {},
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
|
@ -340,10 +348,10 @@ const data = reactive({
|
||||||
},
|
},
|
||||||
editUser: null,
|
editUser: null,
|
||||||
mode: '',
|
mode: '',
|
||||||
sysWorkTypes:[], //系统人员岗位类型
|
sysWorkTypes: [], //系统人员岗位类型
|
||||||
prjWorkTypeObj:{},
|
prjWorkTypeObj: {},
|
||||||
prjWorkCategories:[],//项目人员岗位大类
|
prjWorkCategories: [],//项目人员岗位大类
|
||||||
prjWorkTypes:[],//项目人员岗位类型
|
prjWorkTypes: [],//项目人员岗位类型
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
@ -361,8 +369,8 @@ watch(deptName, val => {
|
||||||
function getDeptTree() {
|
function getDeptTree() {
|
||||||
deptTreeSelect().then(response => {
|
deptTreeSelect().then(response => {
|
||||||
deptOptions.value = response.data;
|
deptOptions.value = response.data;
|
||||||
defaultEK.value.push(response.data[0].id);
|
defaultEK.value.push(response.data[0].id);
|
||||||
getUserWorkType();
|
getUserWorkType();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
//用于用户增加的查询
|
//用于用户增加的查询
|
||||||
|
@ -377,7 +385,7 @@ function doQueryUser() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function doWorkTypeChange(){
|
function doWorkTypeChange() {
|
||||||
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType]
|
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType]
|
||||||
}
|
}
|
||||||
function doQueryUserByName() {
|
function doQueryUserByName() {
|
||||||
|
@ -437,12 +445,12 @@ function doRoleChange() {
|
||||||
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
form.value.workType='';
|
form.value.workType = '';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (form.value.userType == 99) {
|
if (form.value.userType == 99) {
|
||||||
data.rules = {
|
data.rules = {
|
||||||
|
|
||||||
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
||||||
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
||||||
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
||||||
|
@ -454,7 +462,7 @@ function doRoleChange() {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data.rules = {
|
data.rules = {
|
||||||
|
|
||||||
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
||||||
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
||||||
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
||||||
|
@ -599,12 +607,12 @@ function reset() {
|
||||||
remark: undefined,
|
remark: undefined,
|
||||||
postIds: [],
|
postIds: [],
|
||||||
roleIds: [],
|
roleIds: [],
|
||||||
userType:'00',
|
userType: '00',
|
||||||
userWorkType:undefined,
|
userWorkType: undefined,
|
||||||
workType: undefined,
|
workType: undefined,
|
||||||
};
|
};
|
||||||
form.value.userWorkType=data.prjWorkCategories[0];
|
form.value.userWorkType = data.prjWorkCategories[0];
|
||||||
data.prjWorkTypes=data.prjWorkTypeObj[form.value.userWorkType];
|
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType];
|
||||||
proxy.resetForm("userRef");
|
proxy.resetForm("userRef");
|
||||||
data.mode = ''
|
data.mode = ''
|
||||||
};
|
};
|
||||||
|
@ -650,12 +658,12 @@ function handleUpdate(row) {
|
||||||
postOptions.value = response.posts;
|
postOptions.value = response.posts;
|
||||||
form.value.postIds = response.postIds;
|
form.value.postIds = response.postIds;
|
||||||
form.value.roleIds = response.roleIds;
|
form.value.roleIds = response.roleIds;
|
||||||
form.value.workType=form.value.workType?""+form.value.workType:"";
|
form.value.workType = form.value.workType ? "" + form.value.workType : "";
|
||||||
if(form.value.userType=='99'){
|
if (form.value.userType == '99') {
|
||||||
let tmps=user_work_type.value.filter(d=>d.value==form.value.workType);
|
let tmps = user_work_type.value.filter(d => d.value == form.value.workType);
|
||||||
if(tmps.length>0){
|
if (tmps.length > 0) {
|
||||||
form.value.userWorkType=tmps[0].remark;
|
form.value.userWorkType = tmps[0].remark;
|
||||||
data.prjWorkTypes=data.prjWorkTypeObj[form.value.userWorkType];
|
data.prjWorkTypes = data.prjWorkTypeObj[form.value.userWorkType];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
open.value = true;
|
open.value = true;
|
||||||
|
@ -666,6 +674,16 @@ function handleUpdate(row) {
|
||||||
handleChangeDept(row.deptId);
|
handleChangeDept(row.deptId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function getWorkType(wt) {
|
||||||
|
if (wt) {
|
||||||
|
let tmps = user_work_type.value.filter(d => d.value == wt);
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
return tmps[0].remark ? tmps[0].remark + " - " + tmps[0].label : tmps[0].label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
/** 根据单位选择角色 */
|
/** 根据单位选择角色 */
|
||||||
function handleChangeDept(value) {
|
function handleChangeDept(value) {
|
||||||
form.value.roleIds = [];
|
form.value.roleIds = [];
|
||||||
|
@ -695,7 +713,7 @@ const getCompId = () => {
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
data.loading=true;
|
data.loading = true;
|
||||||
proxy.$refs["userRef"].validate(valid => {
|
proxy.$refs["userRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
form.value.userName = form.value.nickName;
|
form.value.userName = form.value.nickName;
|
||||||
|
@ -705,7 +723,7 @@ function submitForm() {
|
||||||
open.value = false;
|
open.value = false;
|
||||||
getList();
|
getList();
|
||||||
data.mode = ""
|
data.mode = ""
|
||||||
data.loading=false;
|
data.loading = false;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
addUser(form.value).then(response => {
|
addUser(form.value).then(response => {
|
||||||
|
@ -713,28 +731,28 @@ function submitForm() {
|
||||||
open.value = false;
|
open.value = false;
|
||||||
getList();
|
getList();
|
||||||
data.mode = ""
|
data.mode = ""
|
||||||
data.loading=false;
|
data.loading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
data.loading=false;
|
data.loading = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
function getUserWorkType(){
|
function getUserWorkType() {
|
||||||
data.sysWorkTypes=user_work_type.value.filter(d=>d.elTagClass=="系统人员");
|
data.sysWorkTypes = user_work_type.value.filter(d => d.elTagClass == "系统人员");
|
||||||
let obj={};
|
let obj = {};
|
||||||
user_work_type.value.filter(d=>d.elTagClass=="项目人员").forEach(d=>{
|
user_work_type.value.filter(d => d.elTagClass == "项目人员").forEach(d => {
|
||||||
let bigType=d.remark;
|
let bigType = d.remark;
|
||||||
d.value=""+d.value;
|
d.value = "" + d.value;
|
||||||
if(!obj[bigType]){
|
if (!obj[bigType]) {
|
||||||
obj[bigType]=[];
|
obj[bigType] = [];
|
||||||
data.prjWorkCategories.push(bigType);
|
data.prjWorkCategories.push(bigType);
|
||||||
}
|
}
|
||||||
obj[bigType].push(d);
|
obj[bigType].push(d);
|
||||||
});
|
});
|
||||||
data.prjWorkTypeObj=obj;
|
data.prjWorkTypeObj = obj;
|
||||||
}
|
}
|
||||||
getDeptTree();
|
getDeptTree();
|
||||||
getList();
|
getList();
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue