dev_xd
姜玉琦 2025-02-15 14:58:19 +08:00
parent 25e1882b4c
commit 849401501a
11 changed files with 50 additions and 22 deletions

View File

@ -55,6 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="craftType != null and craftType != ''"> and psg.craft_type = #{craftType}</if> <if test="craftType != null and craftType != ''"> and psg.craft_type = #{craftType}</if>
<if test="craftPost != null and craftPost != ''"> and psg.craft_post = #{craftPost}</if> <if test="craftPost != null and craftPost != ''"> and psg.craft_post = #{craftPost}</if>
<if test="useStatus != null and useStatus != ''"> and psg.use_status = #{useStatus}</if> <if test="useStatus != null and useStatus != ''"> and psg.use_status = #{useStatus}</if>
<if test='activeTags == "finished"'> and ps.approve_status <![CDATA[ >= ]]> 100</if>
and psg.is_del != 2 and psg.is_del != 2
</where> </where>
order by psg.id desc order by psg.id desc

View File

@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="useStatus != null and useStatus != ''"> and ps.use_status = #{useStatus}</if> <if test="useStatus != null and useStatus != ''"> and ps.use_status = #{useStatus}</if>
<if test="approveStatus != null "> and ps.approve_status = #{approveStatus}</if> <if test="approveStatus != null "> and ps.approve_status = #{approveStatus}</if>
<if test="subDeptLeaderPhone != null and subDeptLeaderPhone != ''"> and ps.sub_dept_leader_phone = #{subDeptLeaderPhone}</if> <if test="subDeptLeaderPhone != null and subDeptLeaderPhone != ''"> and ps.sub_dept_leader_phone = #{subDeptLeaderPhone}</if>
<if test='activeTags == "finished"'> and ps.approve_status <![CDATA[ >= ]]> 100</if>
and ps.is_del = 0 and ps.is_del = 0
</where> </where>
order by ps.id desc order by ps.id desc

View File

@ -197,6 +197,7 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService
this.insertProRole(UserTypeEnums.SJDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.SJDWRY.getInfo(),proProjectInfo.getId(),null); this.insertProRole(UserTypeEnums.SJDWRY.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.SJDWRY.getInfo(),proProjectInfo.getId(),null);
this.insertProRole(UserTypeEnums.OTHERS.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.OTHERS.getInfo(),proProjectInfo.getId(),null); this.insertProRole(UserTypeEnums.OTHERS.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.OTHERS.getInfo(),proProjectInfo.getId(),null);
loadingProjectsCache(); loadingProjectsCache();
return res; return res;
}else{ }else{
throw new ServiceException("项目信息保存失败!!!"); throw new ServiceException("项目信息保存失败!!!");

View File

@ -340,7 +340,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query); List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(specialGroups) && specialGroups.size()>0){ if(StringUtils.isNotEmpty(specialGroups)){
ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0); ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0);
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName()); specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode()); specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());
@ -504,8 +504,6 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(Objects.isNull(parUsers)){ if(Objects.isNull(parUsers)){
throw new ServiceException("用户信息异常...请重新扫码"); throw new ServiceException("用户信息异常...请重新扫码");
} }
proProjectInfoSubdeptsUsers.setComId(parUsers.getComId()); proProjectInfoSubdeptsUsers.setComId(parUsers.getComId());
proProjectInfoSubdeptsUsers.setProjectId(parUsers.getProjectId()); proProjectInfoSubdeptsUsers.setProjectId(parUsers.getProjectId());
proProjectInfoSubdeptsUsers.setSubDeptId(parUsers.getSubDeptId()); proProjectInfoSubdeptsUsers.setSubDeptId(parUsers.getSubDeptId());
@ -548,7 +546,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query); List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(specialGroups) && specialGroups.size()>0){ if(StringUtils.isNotEmpty(specialGroups)){
ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0); ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0);
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName()); specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode()); specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());

View File

@ -370,7 +370,7 @@ Page({
}, },
success: function (res) { success: function (res) {
const filePath = res.tempFilePath const filePath = res.tempFilePath
let fpt = filePath.split("."); let fpt = path.split(".");
wx.openDocument({ wx.openDocument({
filePath: filePath, filePath: filePath,
fileType: fpt[fpt.length - 1], fileType: fpt[fpt.length - 1],

View File

@ -299,7 +299,7 @@
<van-col span="8"><text class="color_purple">安全承诺书</text></van-col> <van-col span="8"><text class="color_purple">安全承诺书</text></van-col>
<van-col span="16" class="color_blue"> <van-col span="16" class="color_blue">
<view class="files"> <view class="files">
<text data-set="{{subDeptUserData.eduFilePath}}" style="word-wrap: break-word;" bindtap='downFile'>点击下载安全承诺书</text> <text data-set="{{subDeptUserData.eduFilePath}}" style="word-wrap: break-word;" bindtap='downFile'>点击查看安全承诺书</text>
</view> </view>
</van-col> </van-col>
</van-row> </van-row>

View File

@ -293,7 +293,7 @@ Page({
}, },
success: function (res) { success: function (res) {
const filePath = res.tempFilePath const filePath = res.tempFilePath
let fpt = filePath.split("."); let fpt = path.split(".");
wx.openDocument({ wx.openDocument({
filePath: filePath, filePath: filePath,
fileType: fpt[fpt.length - 1], fileType: fpt[fpt.length - 1],

View File

@ -826,8 +826,8 @@ if (this.data.userPost == "1") {
// 示例 url并非真实存在 // 示例 url并非真实存在
url: _baseUrl + '/file/NoSecurity/download?fileName=' + _eduFilePath, url: _baseUrl + '/file/NoSecurity/download?fileName=' + _eduFilePath,
success: function (res) { success: function (res) {
const filePath = res.tempFilePath const filePath = res.tempFilePath;
const fileTypes = filePath.split("."); const fileTypes = _eduFilePath.split(".");
wx.openDocument({ wx.openDocument({
filePath: filePath, filePath: filePath,
fileType: fileTypes[fileTypes.length - 1], fileType: fileTypes[fileTypes.length - 1],
@ -1203,10 +1203,14 @@ if (this.data.userPost == "1") {
let obj = await this.syncUploadImage(item); let obj = await this.syncUploadImage(item);
findCardOcrFront(obj.data.data.url).then(res =>{ findCardOcrFront(obj.data.data.url).then(res =>{
if(res.code==200){ if(res.code==200){
if(res.data.nation.indexOf("族")<0){
res.data.nation = res.data.nation+"族";
}
this.setData({ this.setData({
"form.userName": res.data.name, "form.userName": res.data.name,
"form.cardCode": res.data.cardId, "form.cardCode": res.data.cardId,
"form.nativePlace": res.data.nation, "form.nation": res.data.nation,
"form.nativePlace": res.data.native,
"form.address": res.data.address "form.address": res.data.address
}) })
if(!res.data.name || !res.data.cardId){ if(!res.data.name || !res.data.cardId){

View File

@ -262,7 +262,7 @@
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">地址</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">地址</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<textarea class="add_textarea" placeholder="请填写籍贯地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" /> <textarea class="add_textarea" placeholder="请填写地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
@ -404,7 +404,7 @@
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">地址</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">地址</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<textarea class="add_textarea" placeholder="请填写籍贯地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" /> <textarea class="add_textarea" placeholder="请填写地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
@ -526,15 +526,21 @@
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">籍贯民族</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">民族</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<input placeholder="请填写籍贯民族" placeholder-style="color:#6777aa;" bindinput="inputOriginNative" class="inspect_input_fill_in" disabled maxlength="30" model:value="{{form.nativePlace}}" /> <input placeholder="请填写民族" placeholder-style="color:#6777aa;" bindinput="inputOriginNation" class="inspect_input_fill_in" disabled maxlength="30" model:value="{{form.nation}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">籍贯地址</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">籍贯</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<textarea class="add_textarea" placeholder="请填写籍贯地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" /> <input placeholder="请填写籍贯" placeholder-style="color:#6777aa;" bindinput="inputOriginNative" class="inspect_input_fill_in" disabled maxlength="30" model:value="{{form.nativePlace}}" />
</view>
</view>
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">地址</view>
<view class="inspect_info_content">
<textarea class="add_textarea" placeholder="请填写地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">

View File

@ -224,6 +224,7 @@ const data = reactive({
craftType: null, craftType: null,
craftPost: null, craftPost: null,
approveStatus: null, approveStatus: null,
activeTags: "finished"
}, },
rules: { rules: {
subDeptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }], subDeptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],

View File

@ -92,6 +92,12 @@
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" /> <dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="二维码" align="center" prop="qrCode" width="80">
<template #default="scope">
<image-preview v-if="scope.row.qrCode" :src="scope.row.qrCode" :width="50" :height="50" />
<span v-if="!scope.row.qrCode"> - </span>
</template>
</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'">
@ -115,7 +121,7 @@
</el-table-column> </el-table-column>
<!-- <el-table-column label="出生日期" align="center" prop="info.birthDayStr" v-if="false" /> <!-- <el-table-column label="出生日期" align="center" prop="info.birthDayStr" v-if="false" />
<el-table-column label="籍贯" align="center" prop="info.nativePlace" v-if="false" /> --> <el-table-column label="籍贯" align="center" prop="info.nativePlace" v-if="false" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
<template #default="scope"> <template #default="scope">
<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>
@ -125,8 +131,10 @@
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
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">进场</el-button> v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">进场</el-button>
<el-button link type="primary" icon="Refresh" @click="handleFileSign_0(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">重新生成文件</el-button>
<el-button v-if="isSign(scope.row)" link type="primary" icon="StarFilled" @click="handleFileSign(scope.row)" <el-button v-if="isSign(scope.row)" link type="primary" icon="StarFilled" @click="handleFileSign(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">重新签名</el-button> v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">文件重新签名</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -494,8 +502,8 @@ function getList() {
loading.value = true; loading.value = true;
queryParams.value.comId = userStore.currentComId; queryParams.value.comId = userStore.currentComId;
queryParams.value.projectId = userStore.currentPrjId; queryParams.value.projectId = userStore.currentPrjId;
queryParams.value.activeTags = "finished";
listProProjectInfoSubdeptsUsers(queryParams.value).then(response => { listProProjectInfoSubdeptsUsers(queryParams.value).then(response => {
proProjectInfoSubdeptsUsersList.value = (response.rows || []).map(d => { proProjectInfoSubdeptsUsersList.value = (response.rows || []).map(d => {
d.info = tryToJson(d.userInfos || "{}") d.info = tryToJson(d.userInfos || "{}")
d.user = d.user || {}; d.user = d.user || {};
@ -504,7 +512,6 @@ function getList() {
d.info.birthDayStr = birthDay; d.info.birthDayStr = birthDay;
d.info.age = dayjs(new Date()).diff(d.info.birthDay, 'year'); d.info.age = dayjs(new Date()).diff(d.info.birthDay, 'year');
} }
return d; return d;
}); });
total.value = response.total; total.value = response.total;
@ -575,7 +582,7 @@ function doSubDeptChange(type) {
return; return;
} }
} }
listProProjectInfoSubdeptsGroup({ subDeptId: type == "query" ? queryParams.value.subDeptId : form.value.subDeptId, pageNum: 1, pageSize: 100 }).then(d => { listProProjectInfoSubdeptsGroup({ subDeptId: type == "query" ? queryParams.value.subDeptId : form.value.subDeptId, pageNum: 1, pageSize: 100, activeTags: "finished" }).then(d => {
if (type == "query") { if (type == "query") {
data.queryDeptGroups = d.rows || []; data.queryDeptGroups = d.rows || [];
} else { } else {
@ -658,7 +665,7 @@ function handleSelectionChange(selection) {
} }
function loadSubDepts(cb) { function loadSubDepts(cb) {
listProProjectInfoSubdepts({ projectId: userStore.currentPrjId, pageNum: 1, pageSize: 100 }).then(d => { listProProjectInfoSubdepts({ projectId: userStore.currentPrjId, pageNum: 1, pageSize: 100, activeTags: "finished" }).then(d => {
data.subdepts = d.rows || []; data.subdepts = d.rows || [];
if (data.subdepts.length > 0) { if (data.subdepts.length > 0) {
setTimeout(() => { setTimeout(() => {
@ -785,6 +792,15 @@ function handleFileSign(row){
}); });
} }
function handleFileSign_0(row){
fileSign(row.id).then(res =>{
if(res.code==200){
proxy.$modal.msgSuccess("重新生成文件成功");
getList();
}
});
}
function getWorkType(wt) { function getWorkType(wt) {
if (wt) { if (wt) {
let tmps = user_work_type.value.filter(d => d.value == wt); let tmps = user_work_type.value.filter(d => d.value == wt);