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="craftPost != null and craftPost != ''"> and psg.craft_post = #{craftPost}</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
</where>
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="approveStatus != null "> and ps.approve_status = #{approveStatus}</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
</where>
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.OTHERS.getKeys()+"_"+proProjectInfo.getId(),UserTypeEnums.OTHERS.getInfo(),proProjectInfo.getId(),null);
loadingProjectsCache();
return res;
}else{
throw new ServiceException("项目信息保存失败!!!");

View File

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

View File

@ -370,7 +370,7 @@ Page({
},
success: function (res) {
const filePath = res.tempFilePath
let fpt = filePath.split(".");
let fpt = path.split(".");
wx.openDocument({
filePath: filePath,
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="16" class="color_blue">
<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>
</van-col>
</van-row>

View File

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

View File

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

View File

@ -262,7 +262,7 @@
<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}}" />
<textarea class="add_textarea" placeholder="请填写地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" />
</view>
</view>
<view class="inspect_info_list">
@ -404,7 +404,7 @@
<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}}" />
<textarea class="add_textarea" placeholder="请填写地址" placeholder-style="color:#6777aa;" maxlength="64" disabled bindblur="inputOriginAddress" model:value="{{form.address}}" />
</view>
</view>
<view class="inspect_info_list">
@ -526,15 +526,21 @@
</view>
</view>
<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">
<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 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">
<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 class="inspect_info_list">

View File

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

View File

@ -92,6 +92,12 @@
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
</template>
</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">
<template #default="scope">
<div v-if="scope.row.subDeptType == '4' || scope.row.subDeptType == '5'">
@ -115,7 +121,7 @@
</el-table-column>
<!-- <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" 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">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
@ -125,8 +131,10 @@
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">离场</el-button>
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-else
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)"
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">重新签名</el-button>
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">文件重新签名</el-button>
</template>
</el-table-column>
</el-table>
@ -494,8 +502,8 @@ function getList() {
loading.value = true;
queryParams.value.comId = userStore.currentComId;
queryParams.value.projectId = userStore.currentPrjId;
queryParams.value.activeTags = "finished";
listProProjectInfoSubdeptsUsers(queryParams.value).then(response => {
proProjectInfoSubdeptsUsersList.value = (response.rows || []).map(d => {
d.info = tryToJson(d.userInfos || "{}")
d.user = d.user || {};
@ -504,7 +512,6 @@ function getList() {
d.info.birthDayStr = birthDay;
d.info.age = dayjs(new Date()).diff(d.info.birthDay, 'year');
}
return d;
});
total.value = response.total;
@ -575,7 +582,7 @@ function doSubDeptChange(type) {
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") {
data.queryDeptGroups = d.rows || [];
} else {
@ -658,7 +665,7 @@ function handleSelectionChange(selection) {
}
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 || [];
if (data.subdepts.length > 0) {
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) {
if (wt) {
let tmps = user_work_type.value.filter(d => d.value == wt);