小程序举牌验收功能开发
parent
10685555ec
commit
e9cadabf56
|
@ -119,7 +119,9 @@ public class ProProjectCheckedServiceImpl implements IProProjectCheckedService
|
||||||
@Override
|
@Override
|
||||||
public int updateProProjectChecked(ProProjectChecked proProjectChecked)
|
public int updateProProjectChecked(ProProjectChecked proProjectChecked)
|
||||||
{
|
{
|
||||||
proProjectChecked.setMainImage(proProjectChecked.getImageUrls().split(",")[0]);
|
if(StringUtils.isNotBlank(proProjectChecked.getImageUrls())) {
|
||||||
|
proProjectChecked.setMainImage(proProjectChecked.getImageUrls().split(",")[0]);
|
||||||
|
}
|
||||||
proProjectChecked.setUpdateBy(SecurityContextHolder.getUserName());
|
proProjectChecked.setUpdateBy(SecurityContextHolder.getUserName());
|
||||||
proProjectChecked.setUpdateTime(DateUtils.getNowDate());
|
proProjectChecked.setUpdateTime(DateUtils.getNowDate());
|
||||||
int rows = proProjectCheckedMapper.updateProProjectChecked(proProjectChecked);
|
int rows = proProjectCheckedMapper.updateProProjectChecked(proProjectChecked);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4338"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#5A98D2" p-id="4339"></path><path d="M739.555556 568.888889H284.444444c-34.133333 0-56.888889-22.755556-56.888888-56.888889s22.755556-56.888889 56.888888-56.888889h455.111112c34.133333 0 56.888889 22.755556 56.888888 56.888889s-22.755556 56.888889-56.888888 56.888889z" fill="#FFFFFF" p-id="4340"></path><path d="M512 796.444444c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888s56.888889 22.755556 56.888889 56.888888v455.111112c0 34.133333-22.755556 56.888889-56.888889 56.888888z" fill="#FFFFFF" p-id="4341"></path></svg>
|
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4973"><path d="M512 75.09333333c240.29866667 0 436.90666667 196.608 436.90666667 436.90666667s-196.608 436.90666667-436.90666667 436.90666667-436.90666667-196.608-436.90666667-436.90666667 196.608-436.90666667 436.90666667-436.90666667m0-72.81777778C228.01066667 2.27555555 2.27555555 228.01066667 2.27555555 512s225.73511111 509.72444445 509.72444445 509.72444445 509.72444445-225.73511111 509.72444445-509.72444445-225.73511111-509.72444445-509.72444445-509.72444445z" fill="#333333" p-id="4974"></path><path d="M293.54666667 512m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777777 0 36.40888889 36.40888889 0 1 0-72.81777777 0Z" fill="#333333" p-id="4975"></path><path d="M730.45333333 512m-36.40888888 0a36.40888889 36.40888889 0 1 0 72.81777777 0 36.40888889 36.40888889 0 1 0-72.81777777 0Z" fill="#333333" p-id="4976"></path><path d="M512 293.54666667m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777778 0 36.40888889 36.40888889 0 1 0-72.81777778 0Z" fill="#333333" p-id="4977"></path><path d="M512 730.45333333m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777778 0 36.40888889 36.40888889 0 1 0-72.81777778 0Z" fill="#333333" p-id="4978"></path><path d="M293.54666667 475.59111111h436.90666666v72.81777778H293.54666667z" fill="#333333" p-id="4979"></path><path d="M475.59111111 293.54666667h72.81777778v436.90666666h-72.81777778z" fill="#333333" p-id="4980"></path></svg>
|
Before Width: | Height: | Size: 859 B After Width: | Height: | Size: 1.5 KiB |
|
@ -1 +0,0 @@
|
||||||
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4973"><path d="M512 75.09333333c240.29866667 0 436.90666667 196.608 436.90666667 436.90666667s-196.608 436.90666667-436.90666667 436.90666667-436.90666667-196.608-436.90666667-436.90666667 196.608-436.90666667 436.90666667-436.90666667m0-72.81777778C228.01066667 2.27555555 2.27555555 228.01066667 2.27555555 512s225.73511111 509.72444445 509.72444445 509.72444445 509.72444445-225.73511111 509.72444445-509.72444445-225.73511111-509.72444445-509.72444445-509.72444445z" fill="#333333" p-id="4974"></path><path d="M293.54666667 512m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777777 0 36.40888889 36.40888889 0 1 0-72.81777777 0Z" fill="#333333" p-id="4975"></path><path d="M730.45333333 512m-36.40888888 0a36.40888889 36.40888889 0 1 0 72.81777777 0 36.40888889 36.40888889 0 1 0-72.81777777 0Z" fill="#333333" p-id="4976"></path><path d="M512 293.54666667m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777778 0 36.40888889 36.40888889 0 1 0-72.81777778 0Z" fill="#333333" p-id="4977"></path><path d="M512 730.45333333m-36.40888889 0a36.40888889 36.40888889 0 1 0 72.81777778 0 36.40888889 36.40888889 0 1 0-72.81777778 0Z" fill="#333333" p-id="4978"></path><path d="M293.54666667 475.59111111h436.90666666v72.81777778H293.54666667z" fill="#333333" p-id="4979"></path><path d="M475.59111111 293.54666667h72.81777778v436.90666666h-72.81777778z" fill="#333333" p-id="4980"></path></svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,14 @@
|
||||||
|
<svg
|
||||||
|
class="icon"
|
||||||
|
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
p-id="3934"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M668.372415 709.5061V586.853479a314.4939 314.4939 0 1 0-314.4939 0V709.5061H39.384615l78.623475 157.24695h786.23475l78.623475-157.24695zM511.125465 159.141776a157.24695 157.24695 0 1 1-157.24695 157.24695 157.24695 157.24695 0 0 1 157.24695-157.24695zM118.00809 945.376525h786.23475v78.623475H118.00809z"
|
||||||
|
fill="#272536"
|
||||||
|
p-id="3935"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 574 B |
|
@ -34,7 +34,7 @@ Page({
|
||||||
technicianUserName: "",
|
technicianUserName: "",
|
||||||
supervise: '',
|
supervise: '',
|
||||||
superviseUser: "", //监理专员
|
superviseUser: "", //监理专员
|
||||||
superviseUserName: ""
|
superviseUserName: "",
|
||||||
},
|
},
|
||||||
projectUserInfo: {},
|
projectUserInfo: {},
|
||||||
projectId: "",
|
projectId: "",
|
||||||
|
@ -44,6 +44,10 @@ Page({
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
total: 0,
|
total: 0,
|
||||||
listData: [],
|
listData: [],
|
||||||
|
//驳回信息
|
||||||
|
checkResult: -1,
|
||||||
|
approveStatus: -1,
|
||||||
|
checkImgs: [],
|
||||||
//任务计划
|
//任务计划
|
||||||
picker: false,
|
picker: false,
|
||||||
planOptions: [],
|
planOptions: [],
|
||||||
|
@ -283,8 +287,12 @@ Page({
|
||||||
form.technicianUserName = data.technicianUserName;
|
form.technicianUserName = data.technicianUserName;
|
||||||
form.superviseUser = data.superviseUser;
|
form.superviseUser = data.superviseUser;
|
||||||
form.superviseUserName = data.superviseUserName;
|
form.superviseUserName = data.superviseUserName;
|
||||||
|
let checkImgs = (data.checkingFiles ? data.checkingFiles.split(",") : []).map(img => config.baseImgUrl + img);
|
||||||
this.setData({
|
this.setData({
|
||||||
|
checkResult: data.checkResult,
|
||||||
|
checkImgs: checkImgs,
|
||||||
imageInfoData: imgs,
|
imageInfoData: imgs,
|
||||||
|
approveStatus: data.approveStatus,
|
||||||
form: {
|
form: {
|
||||||
...form
|
...form
|
||||||
}
|
}
|
||||||
|
@ -337,8 +345,8 @@ Page({
|
||||||
}
|
}
|
||||||
let taskInfo = {
|
let taskInfo = {
|
||||||
id: form.task.id,
|
id: form.task.id,
|
||||||
name: form.task.taskName,
|
name: form.task.taskName || form.task.name,
|
||||||
full: form.task.fullPath
|
full: form.task.fullPath || form.task.full
|
||||||
}
|
}
|
||||||
postData.workingPosition = JSON.stringify(taskInfo);
|
postData.workingPosition = JSON.stringify(taskInfo);
|
||||||
let fileUrls = await uploadFiles(this.data.imageInfoData);
|
let fileUrls = await uploadFiles(this.data.imageInfoData);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
"usingComponents": {},
|
"usingComponents": {},
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"styleIsolation": "apply-shared"
|
||||||
}
|
}
|
|
@ -1,47 +1,36 @@
|
||||||
/* pageage/project_checked/add/index.wxss */
|
.mt40 {
|
||||||
.project-checked-add {
|
margin-top: 40rpx;
|
||||||
.max_content_scroll {
|
}
|
||||||
color: #89a4eb;
|
|
||||||
font-size: 28rpx;
|
|
||||||
padding: 60rpx 30rpx 30rpx;
|
|
||||||
width: calc(100% - 60rpx);
|
|
||||||
position: relative;
|
|
||||||
top: 140rpx;
|
|
||||||
|
|
||||||
.mt40 {
|
.mt20 {
|
||||||
margin-top: 40rpx;
|
margin-top: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-info {
|
.gd_max {
|
||||||
background-color: #514f4f8a;
|
padding: 10rpx 20rpx 0;
|
||||||
color: #888;
|
}
|
||||||
margin-top: 16rpx;
|
|
||||||
line-height: 60rpx;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
padding: 0rpx 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rectifier_title {
|
.add-info {
|
||||||
position: relative;
|
background-color: #514f4f8a;
|
||||||
background: #27304f;
|
color: #888;
|
||||||
border-radius: 15rpx;
|
margin-top: 16rpx;
|
||||||
text-align: center;
|
line-height: 60rpx;
|
||||||
padding: 20rpx 15rpx;
|
border-radius: 30rpx;
|
||||||
}
|
padding: 0rpx 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.rectifier_close {
|
.h80 {
|
||||||
position: absolute;
|
height: 80rpx;
|
||||||
width: 50rpx;
|
}
|
||||||
height: 50rpx;
|
|
||||||
right: 20rpx;
|
|
||||||
top: 12rpx;
|
|
||||||
line-height: 60rpx;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.add_textarea {
|
.approve-status {
|
||||||
height: 60rpx;
|
position: absolute;
|
||||||
}
|
top: 0rpx;
|
||||||
|
right: 50rpx;
|
||||||
|
z-index: 99;
|
||||||
|
|
||||||
|
.code_label {
|
||||||
|
font-size: 40rpx;
|
||||||
|
padding: 4rpx 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,27 +1,35 @@
|
||||||
<wxs module="format" src="/utils/format.wxs"></wxs>
|
<wxs module="format" src="/utils/format.wxs"></wxs>
|
||||||
<view class="project-checked-add">
|
|
||||||
<view class="header_title">
|
<view class="header_title">
|
||||||
<view class="header_title_row">
|
<view class="header_title_row">
|
||||||
<van-row>
|
<van-row>
|
||||||
<van-col span="4">
|
<van-col span="4">
|
||||||
<view class="header_img" bindtap="returnToPage">
|
<view class="header_img" bindtap="returnToPage">
|
||||||
<image src="/images/left.png"></image>
|
<image src="/images/left.png"></image>
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="15">
|
<van-col span="15">
|
||||||
<view class="header_name">增加项目举牌验收</view>
|
<view class="header_name">增加项目举牌验收</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<scroll-view class="max_content_scroll" type="list" scroll-y style="padding: 30rpx">
|
</view>
|
||||||
<project-select init="{{ initData }}" bindchange="onProjectSelect" id="projectSel"></project-select>
|
<scroll-view class="max_content_scroll" type="list" scroll-y>
|
||||||
|
|
||||||
|
<project-select init="{{ initData }}" bindchange="onProjectSelect" id="projectSel"></project-select>
|
||||||
|
<view class="gd_max">
|
||||||
|
|
||||||
<view class="mt40">分包单位</view>
|
<view class="mt40">分包单位</view>
|
||||||
<view class="add-info">{{ projectUserInfo.subDeptName }}</view>
|
<view class="add-info">{{ projectUserInfo.subDeptName }}</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<view class="mt40 markers inspect_info_title">工程部位</view>
|
<view class="mt40 markers inspect_info_title">工程部位</view>
|
||||||
|
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
|
|
||||||
|
|
||||||
<textarea class="add_textarea" placeholder="请填写选择工程计划" placeholder-style="color:#6777aa;" bindtap="openPicker"
|
<textarea class="add_textarea" placeholder="请填写选择工程计划" placeholder-style="color:#6777aa;" bindtap="openPicker"
|
||||||
disabled model:value="{{ form.taskName }}" />
|
disabled model:value="{{ form.taskName }}" />
|
||||||
<van-popup show="{{ picker }}" bind:close="closePicker" position="bottom">
|
<van-popup show="{{ picker }}" bind:close="closePicker" position="bottom">
|
||||||
|
@ -43,6 +51,24 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view wx:if="{{ approveStatus == 3 }}" style="position: relative;">
|
||||||
|
<view class="approve-status">
|
||||||
|
<view wx:if="{{ approveStatus == 3 }}" class="code_label code_label_red">已驳回</view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">验收结果</view>
|
||||||
|
<textarea class="add_textarea h80" disabled model:value="{{ checkResult==1?'合格':'不合格' }}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">三方验收照片</view>
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:for="{{checkImgs}}" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{item}}" src="{{item+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
<view class="markers inspect_info_title">技术专员</view>
|
<view class="markers inspect_info_title">技术专员</view>
|
||||||
|
@ -57,23 +83,23 @@
|
||||||
selectValue="{{form.supervise}}"></voucher-select>
|
selectValue="{{form.supervise}}"></voucher-select>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="mt40 markers inspect_info_title">结果描述</view>
|
|
||||||
|
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
|
<view class="markers inspect_info_title">结果描述</view>
|
||||||
<textarea class="add_textarea" placeholder="请填写结果描述" placeholder-style="color:#6777aa;"
|
<textarea class="add_textarea" placeholder="请填写结果描述" placeholder-style="color:#6777aa;"
|
||||||
model:value="{{ form.intro }}" maxlength="200" bindinput="onIntroInput" />
|
model:value="{{ form.intro }}" maxlength="200" bindinput="onIntroInput" />
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="mt40 markers inspect_info_title">验收时间</view>
|
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
|
<view class=" markers inspect_info_title">验收时间</view>
|
||||||
<voucher-date counts="5" placeholder="请选择完成时间" minDate="{{ minDate }}" maxDate="{{ maxDate }}"
|
<voucher-date counts="5" placeholder="请选择完成时间" minDate="{{ minDate }}" maxDate="{{ maxDate }}"
|
||||||
model:value="{{ form.checkingDate }}" bindchange="onInputTime"
|
model:value="{{ form.checkingDate }}" bindchange="onInputTime"
|
||||||
currentDate="{{ form.checkingDate }}"></voucher-date>
|
currentDate="{{ form.checkingDate }}"></voucher-date>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="mt40 markers inspect_info_title">验收照片</view>
|
|
||||||
|
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
|
<view class=" markers inspect_info_title">验收照片</view>
|
||||||
<view class="inspect_info_content" style="margin-left: 10px">
|
<view class="inspect_info_content" style="margin-left: 10px">
|
||||||
<file-uploader bindimages="onImagesArr" fileUrlArray="{{imageInfoData}}"></file-uploader>
|
<file-uploader bindimages="onImagesArr" fileUrlArray="{{imageInfoData}}"></file-uploader>
|
||||||
</view>
|
</view>
|
||||||
|
@ -83,5 +109,5 @@
|
||||||
<view class="problem_submit_to_btn" bindtap="returnToPage">取消</view>
|
<view class="problem_submit_to_btn" bindtap="returnToPage">取消</view>
|
||||||
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="submitSave">确认</view>
|
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="submitSave">确认</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</view>
|
||||||
</view>
|
</scroll-view>
|
|
@ -1,16 +1,13 @@
|
||||||
/* pageage/project_checked/add/index.wxss */
|
.mt40 {
|
||||||
.project-checked-add .max_content_scroll {
|
|
||||||
color: #89a4eb;
|
|
||||||
font-size: 28rpx;
|
|
||||||
padding: 60rpx 30rpx 30rpx;
|
|
||||||
width: calc(100% - 60rpx);
|
|
||||||
position: relative;
|
|
||||||
top: 140rpx;
|
|
||||||
}
|
|
||||||
.project-checked-add .max_content_scroll .mt40 {
|
|
||||||
margin-top: 40rpx;
|
margin-top: 40rpx;
|
||||||
}
|
}
|
||||||
.project-checked-add .max_content_scroll .add-info {
|
.mt20 {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.gd_max {
|
||||||
|
padding: 10rpx 20rpx 0;
|
||||||
|
}
|
||||||
|
.add-info {
|
||||||
background-color: #514f4f8a;
|
background-color: #514f4f8a;
|
||||||
color: #888;
|
color: #888;
|
||||||
margin-top: 16rpx;
|
margin-top: 16rpx;
|
||||||
|
@ -18,22 +15,16 @@
|
||||||
border-radius: 30rpx;
|
border-radius: 30rpx;
|
||||||
padding: 0rpx 30rpx;
|
padding: 0rpx 30rpx;
|
||||||
}
|
}
|
||||||
.project-checked-add .max_content_scroll .rectifier_title {
|
.h80 {
|
||||||
position: relative;
|
height: 80rpx;
|
||||||
background: #27304f;
|
|
||||||
border-radius: 15rpx;
|
|
||||||
text-align: center;
|
|
||||||
padding: 20rpx 15rpx;
|
|
||||||
}
|
}
|
||||||
.project-checked-add .max_content_scroll .rectifier_close {
|
.approve-status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 50rpx;
|
top: 0rpx;
|
||||||
height: 50rpx;
|
right: 50rpx;
|
||||||
right: 20rpx;
|
z-index: 99;
|
||||||
top: 12rpx;
|
|
||||||
line-height: 60rpx;
|
|
||||||
text-align: center;
|
|
||||||
}
|
}
|
||||||
.project-checked-add .max_content_scroll .add_textarea {
|
.approve-status .code_label {
|
||||||
height: 60rpx;
|
font-size: 40rpx;
|
||||||
|
padding: 4rpx 20rpx;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,9 @@ import fmt from "../../../utils/date.js";
|
||||||
import { getToken, getUserInfo } from "../../../utils/auth";
|
import { getToken, getUserInfo } from "../../../utils/auth";
|
||||||
import { uploadFiles } from "../../../utils/upload.js";
|
import { uploadFiles } from "../../../utils/upload.js";
|
||||||
import { tryToJson } from '../../../utils/tools'
|
import { tryToJson } from '../../../utils/tools'
|
||||||
|
import {
|
||||||
|
findDictCache,
|
||||||
|
} from '../../../api/publics'
|
||||||
import {
|
import {
|
||||||
getProjectChecked,
|
getProjectChecked,
|
||||||
findPlanDatas,
|
findPlanDatas,
|
||||||
|
@ -24,6 +27,9 @@ Page({
|
||||||
projectId: "",
|
projectId: "",
|
||||||
projectName: "",
|
projectName: "",
|
||||||
initData: {},
|
initData: {},
|
||||||
|
isApprove: false,
|
||||||
|
checkResult: null,
|
||||||
|
checkingFiles: [],
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,7 +50,28 @@ Page({
|
||||||
id: app.globalData.useProjectId,
|
id: app.globalData.useProjectId,
|
||||||
text: app.globalData.useProjectName,
|
text: app.globalData.useProjectName,
|
||||||
},
|
},
|
||||||
|
isApprove: options.type == "approve",
|
||||||
});
|
});
|
||||||
|
if (options.id) {
|
||||||
|
//加载数据
|
||||||
|
this.loadData(options.id);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
app.toast("参数错误!");
|
||||||
|
this.doBack(false)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onCheckResultChange(e) {
|
||||||
|
this.setData({
|
||||||
|
checkResult: e.detail
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
// 上传图片
|
||||||
|
onImagesArr(e) {
|
||||||
|
this.setData({
|
||||||
|
imageInfoData: e.detail
|
||||||
|
})
|
||||||
},
|
},
|
||||||
doBack(isRefresh) {
|
doBack(isRefresh) {
|
||||||
/*返回列表页面并刷新*/
|
/*返回列表页面并刷新*/
|
||||||
|
@ -58,56 +85,65 @@ Page({
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
returnToPage: function (isRefresh) {
|
//展示图片
|
||||||
|
showImg: function (e) {
|
||||||
|
let img = e.target.dataset.set;
|
||||||
|
wx.previewImage({
|
||||||
|
urls: img.split(','),
|
||||||
|
current: 0
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*加载数据
|
||||||
|
*/
|
||||||
|
loadData(id) {
|
||||||
|
wx.showLoading({
|
||||||
|
title: '加载中...',
|
||||||
|
})
|
||||||
|
getProjectChecked(id).then(res => {
|
||||||
|
let data = res.data || {};
|
||||||
|
let task = tryToJson(data.workingPosition, {});
|
||||||
|
let imgs = (data.imageUrls ? data.imageUrls.split(",") : []).map(img => config.baseImgUrl + img);
|
||||||
|
let checkImgs = (data.checkingFiles ? data.checkingFiles.split(",") : []).map(img => config.baseImgUrl + img);
|
||||||
|
data.images = imgs;
|
||||||
|
data.taskName = task.full;
|
||||||
|
data.checkImgs = checkImgs;
|
||||||
|
this.setData({
|
||||||
|
rowData: data,
|
||||||
|
imageInfoData: checkImgs,
|
||||||
|
})
|
||||||
|
wx.hideLoading()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
returnToPage: function (isRefresh) {
|
||||||
this.doBack(false)
|
this.doBack(false)
|
||||||
},
|
},
|
||||||
/**
|
async submitSave(e) {
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
let approveStatus = e.target.dataset.set;
|
||||||
*/
|
if (!this.data.checkResult) {
|
||||||
onReady() {
|
app.toast("请选择审批结果!");
|
||||||
|
return false;
|
||||||
},
|
}
|
||||||
|
if (this.data.imageInfoData.length == 0) {
|
||||||
/**
|
app.toast("请上传图片!");
|
||||||
* 生命周期函数--监听页面显示
|
return;
|
||||||
*/
|
}
|
||||||
onShow() {
|
let fileUrls = await uploadFiles(this.data.imageInfoData);
|
||||||
|
debugger
|
||||||
},
|
let postData = {
|
||||||
|
id: this.data.rowData.id,
|
||||||
/**
|
approveStatus: approveStatus,
|
||||||
* 生命周期函数--监听页面隐藏
|
checkResult: this.data.checkResult,
|
||||||
*/
|
checkingFiles: fileUrls.join(","),
|
||||||
onHide() {
|
};
|
||||||
|
try {
|
||||||
},
|
await updateProjectChecked(postData);
|
||||||
|
app.toast("保存成功!");
|
||||||
/**
|
this.doBack(true);
|
||||||
* 生命周期函数--监听页面卸载
|
} catch (error) {
|
||||||
*/
|
console.error('保存失败:', error);
|
||||||
onUnload() {
|
app.toast("保存失败,请重试");
|
||||||
|
}
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
|
||||||
*/
|
|
||||||
onPullDownRefresh() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面上拉触底事件的处理函数
|
|
||||||
*/
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户点击右上角分享
|
|
||||||
*/
|
|
||||||
onShareAppMessage() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
"usingComponents": {},
|
"usingComponents": {},
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"styleIsolation": "apply-shared"
|
||||||
}
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
.mt40 {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt20 {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gd_max {
|
||||||
|
padding: 10rpx 20rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-info {
|
||||||
|
background-color: #514f4f8a;
|
||||||
|
color: #888;
|
||||||
|
margin-top: 16rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
padding: 0rpx 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h80 {
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-status {
|
||||||
|
position: absolute;
|
||||||
|
top: 120rpx;
|
||||||
|
right: 50rpx;
|
||||||
|
|
||||||
|
.code_label {
|
||||||
|
font-size: 40rpx;
|
||||||
|
padding: 4rpx 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.radio-item {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.problem_submit_to {
|
||||||
|
padding: 40rpx 0rpx;
|
||||||
|
}
|
|
@ -1,17 +1,116 @@
|
||||||
<wxs module="format" src="/utils/format.wxs"></wxs>
|
<wxs module="format" src="/utils/format.wxs"></wxs>
|
||||||
<view class="project-checked-info">
|
|
||||||
<view class="header_title">
|
<view class="header_title">
|
||||||
<view class="header_title_row">
|
<view class="header_title_row">
|
||||||
<van-row>
|
<van-row>
|
||||||
<van-col span="4">
|
<van-col span="4">
|
||||||
<view class="header_img" bindtap="returnToPage">
|
<view class="header_img" bindtap="returnToPage">
|
||||||
<image src="/images/left.png"></image>
|
<image src="/images/left.png"></image>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="15">
|
||||||
|
<view class="header_name">项目举牌验收-详情</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<scroll-view class="max_content_scroll" type="list" scroll-y>
|
||||||
|
<project-select init="{{ initData }}" bindchange="onProjectSelect" id="projectSel"></project-select>
|
||||||
|
|
||||||
|
<view class="gd_max">
|
||||||
|
<view class="mt40">分包单位</view>
|
||||||
|
<view class="add-info">{{ projectUserInfo.subDeptName }}</view>
|
||||||
|
|
||||||
|
<view class="approve-status">
|
||||||
|
<view wx:if="{{ rowData.approveStatus == 1 }}" class="code_label code_label_yellow">待审批</view>
|
||||||
|
<view wx:if="{{ rowData.approveStatus == 3 }}" class="code_label code_label_red">已驳回</view>
|
||||||
|
<view wx:if="{{ rowData.approveStatus == 4 || rowData.approveStatus == 100}}"
|
||||||
|
class="code_label code_label_green">已完成
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content 480">
|
||||||
|
<view class=" inspect_info_title">工程部位</view>
|
||||||
|
<textarea class="add_textarea h80" disabled model:value="{{ rowData.taskName }}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">班组长</view>
|
||||||
|
<textarea class="add_textarea h80" disabled
|
||||||
|
model:value="{{ rowData.groupDeptUserName + '('+rowData.groupDeptUser+')'}}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">技术专员</view>
|
||||||
|
<textarea class="add_textarea h80" disabled
|
||||||
|
model:value="{{ rowData.technicianUserName + '('+rowData.technicianUser+')'}}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">监理员</view>
|
||||||
|
<textarea class="add_textarea h80" disabled
|
||||||
|
model:value="{{ rowData.superviseUserName + '('+rowData.superviseUser+')'}}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">结果描述</view>
|
||||||
|
<textarea class="add_textarea" disabled model:value="{{ rowData.intro }}" />
|
||||||
|
</view>
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">验收时间</view>
|
||||||
|
<textarea class="add_textarea h80" disabled model:value="{{ rowData.checkingDate }}" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">验收照片</view>
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:for="{{rowData.images}}" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{item}}" src="{{item+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view wx:if="{{rowData.approveStatus == 4 || rowData.approveStatus == 100}}">
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" inspect_info_title">三方验收照片</view>
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:for="{{rowData.checkImgs}}" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{item}}" src="{{item+'.min.jpg'}}"></image>
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</view>
|
||||||
<van-col span="15">
|
</view>
|
||||||
<view class="header_name">项目举牌验收-详情</view>
|
|
||||||
</van-col>
|
<view class="inspect_info_content">
|
||||||
</van-row>
|
<view class=" inspect_info_title">验收结果</view>
|
||||||
|
<textarea class="add_textarea h80" disabled model:value="{{ rowData.checkResult==1?'合格':'不合格' }}" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view wx:if="{{isApprove}}">
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class="markers inspect_info_title">审批结果</view>
|
||||||
|
<van-radio-group class="radio-group add_textarea h80" model:value="{{ checkResult }}"
|
||||||
|
bind:change="onCheckResultChange" direction="horizontal">
|
||||||
|
<van-radio class="radio-item" name="1" shape="square" icon-size="50rpx">合格</van-radio>
|
||||||
|
|
||||||
|
<van-radio class="radio-item" name="2" shape="square" icon-size="50rpx">不合格</van-radio>
|
||||||
|
</van-radio-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<view class=" markers inspect_info_title">三方验收照片</view>
|
||||||
|
<view class="inspect_info_content" style="margin-left: 10px">
|
||||||
|
<file-uploader bindimages="onImagesArr" fileUrlArray="{{imageInfoData}}"></file-uploader>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="problem_submit_to">
|
||||||
|
<view class="problem_submit_to_btn" bindtap="returnToPage">返回</view>
|
||||||
|
<view class="problem_submit_to_btn problem_submit_to_save" data-set="3" bindtap="submitSave">驳回</view>
|
||||||
|
<view class="problem_submit_to_btn problem_submit_to_save" data-set="4" bindtap="submitSave">审批通过</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</scroll-view>
|
|
@ -1 +1,40 @@
|
||||||
/* pageage/project_checked/info/index.wxss */
|
.mt40 {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.mt20 {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.gd_max {
|
||||||
|
padding: 10rpx 20rpx 0;
|
||||||
|
}
|
||||||
|
.add-info {
|
||||||
|
background-color: #514f4f8a;
|
||||||
|
color: #888;
|
||||||
|
margin-top: 16rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
padding: 0rpx 30rpx;
|
||||||
|
}
|
||||||
|
.h80 {
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
.approve-status {
|
||||||
|
position: absolute;
|
||||||
|
top: 120rpx;
|
||||||
|
right: 50rpx;
|
||||||
|
}
|
||||||
|
.approve-status .code_label {
|
||||||
|
font-size: 40rpx;
|
||||||
|
padding: 4rpx 20rpx;
|
||||||
|
}
|
||||||
|
.radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.radio-group .radio-item {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
.problem_submit_to {
|
||||||
|
padding: 40rpx 0rpx;
|
||||||
|
}
|
||||||
|
|
|
@ -86,21 +86,26 @@ Page({
|
||||||
lordSent,
|
lordSent,
|
||||||
recheckSend
|
recheckSend
|
||||||
} = e.currentTarget.dataset.set
|
} = e.currentTarget.dataset.set
|
||||||
if ((checkState == 0 || checkState == 3) && lordSent == this.data.projectUserInfo.userId) {
|
|
||||||
//整改页面(状态时待整改&&整改人是当前登录人)
|
wx.redirectTo({
|
||||||
wx.redirectTo({
|
url: `../info/index?type=${this.data.type}&id=${id}`,
|
||||||
url: `../modify/index?type=${this.data.type}&id=${id}`,
|
})
|
||||||
})
|
/*
|
||||||
} else if (checkState == 1 && recheckSend == this.data.projectUserInfo.userId) {
|
if ((checkState == 0 || checkState == 3) && lordSent == this.data.projectUserInfo.userId) {
|
||||||
//复检页面 (状态时待复检&&复检人是当前登录人)
|
//整改页面(状态时待整改&&整改人是当前登录人)
|
||||||
wx.redirectTo({
|
wx.redirectTo({
|
||||||
url: `../check/index?type=${this.data.type}&id=${id}`,
|
url: `../modify/index?type=${this.data.type}&id=${id}`,
|
||||||
})
|
})
|
||||||
} else {
|
} else if (checkState == 1 && recheckSend == this.data.projectUserInfo.userId) {
|
||||||
wx.redirectTo({
|
//复检页面 (状态时待复检&&复检人是当前登录人)
|
||||||
url: `../info/index?type=${this.data.type}&id=${id}`,
|
wx.redirectTo({
|
||||||
})
|
url: `../check/index?type=${this.data.type}&id=${id}`,
|
||||||
}
|
})
|
||||||
|
} else {
|
||||||
|
wx.redirectTo({
|
||||||
|
url: `../info/index?type=${this.data.type}&id=${id}`,
|
||||||
|
})
|
||||||
|
}*/
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,7 +124,8 @@ Page({
|
||||||
it.workingPositionName = task.name;
|
it.workingPositionName = task.name;
|
||||||
it.workingPositionFull = task.full;
|
it.workingPositionFull = task.full;
|
||||||
it.taskId = task.id;
|
it.taskId = task.id;
|
||||||
it.canEdit = it.approveStatus == 1 && it.groupDeptUser == this.data.projectUserInfo.userPhone;
|
it.canEdit = (it.approveStatus == 1 || it.approveStatus == 3) && it.groupDeptUser == this.data.projectUserInfo.userPhone;
|
||||||
|
it.canApprove = (it.approveStatus == 1 || it.approveStatus == 3) && it.technicianUser == this.data.projectUserInfo.userPhone;
|
||||||
return it;
|
return it;
|
||||||
});
|
});
|
||||||
this.setData({
|
this.setData({
|
||||||
|
@ -149,7 +155,14 @@ Page({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
//审批
|
||||||
|
approveClick(e) {
|
||||||
|
let item = e.currentTarget.dataset.set
|
||||||
|
wx.navigateTo({
|
||||||
|
url: `../info/index?id=${item.id}&type=approve`,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//编辑
|
||||||
editClick(e) {
|
editClick(e) {
|
||||||
let item = e.currentTarget.dataset.set
|
let item = e.currentTarget.dataset.set
|
||||||
wx.navigateTo({
|
wx.navigateTo({
|
||||||
|
@ -180,13 +193,6 @@ Page({
|
||||||
this.getListData(nav);
|
this.getListData(nav);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
|
||||||
*/
|
|
||||||
onReady() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面显示
|
* 生命周期函数--监听页面显示
|
||||||
*/
|
*/
|
||||||
|
@ -224,38 +230,4 @@ Page({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面隐藏
|
|
||||||
*/
|
|
||||||
onHide() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面卸载
|
|
||||||
*/
|
|
||||||
onUnload() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
|
||||||
*/
|
|
||||||
onPullDownRefresh() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面上拉触底事件的处理函数
|
|
||||||
*/
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户点击右上角分享
|
|
||||||
*/
|
|
||||||
onShareAppMessage() {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
})
|
|
@ -30,9 +30,13 @@
|
||||||
<view class="inspect_for_bgd">
|
<view class="inspect_for_bgd">
|
||||||
<view class="inspect_list_title">
|
<view class="inspect_list_title">
|
||||||
<view class="inspect_list_title_label inspect_list_title_width">
|
<view class="inspect_list_title_label inspect_list_title_width">
|
||||||
<view wx:if="item.canEdit" class="edit-icon" catchtap="editClick" data-set="{{ item }}">
|
<view class="edit-icon" catchtap="editClick" data-set="{{ item }}" wx:if="{{item.canEdit}}">
|
||||||
<svg-icon src="edit" color="#45affb" size="80" />
|
<svg-icon src="edit" color="#45affb" size="80" />
|
||||||
</view>
|
</view>
|
||||||
|
<view wx:if="{{item.canApprove}}" class="edit-icon" catchtap="approveClick" data-set="{{ item }}">
|
||||||
|
<svg-icon src="approve" color="#f20d5d" size="80" />
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="inspect_list_title_number">{{
|
<view class="inspect_list_title_number">{{
|
||||||
index < 10 ? "0" + (index + 1) : index + 1 }}</view>
|
index < 10 ? "0" + (index + 1) : index + 1 }}</view>
|
||||||
<view class="module_title module_title_flex inspect_list_title_text_2">
|
<view class="module_title module_title_flex inspect_list_title_text_2">
|
||||||
|
|
Loading…
Reference in New Issue