523 lines
15 KiB
Vue

<template>
<view class="fullHeight">
<headers :showBack="true">
<view class="headerName">
{{pageTitle}}
</view>
</headers>
<view class="formBox2" :class="isAdd?'':'editForm'">
<form @submit="formSubmit">
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>单位工程名称
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="buildName" :value="form.buildName" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>施工项目部门
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="buildProjectDept" :value="form.buildProjectDept" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>项目负责人
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="projectDirector" :value="form.projectDirector" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>单位工程施工员
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="constructionCrew" :value="form.constructionCrew" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
星期几
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange" :value="selectIndex" :range="colorList">
<view class="uni-input uni-select cl" v-if="selectIndex==null">
请选择 <image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
<view class="uni-input uni-select" v-else>{{colorList[selectIndex]}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>施工日期
</view>
<view class="uni-form-input">
<picker mode="date" :value="form.buildTime" @change="bindDateChange">
<view class="uni-input uni-select cl" v-if="form.buildTime==''">
请选择 <image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
<view class="uni-input uni-select" v-else>{{form.buildTime}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
上午天气
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="morningWeather" :value="form.morningWeather" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
下午天气
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="afternoonWeather" :value="form.afternoonWeather" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
气温
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="temperature" :value="form.temperature" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>当日施工作业面情况
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="buildPlace" :value="form.buildPlace" placeholder="请输入施工部位" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
上午作业人数
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="morningPersonNum" :value="form.morningPersonNum" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
下午作业人数
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="afternoonPersonNum" :value="form.afternoonPersonNum" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
作业班组类型
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="taskTeamType" :value="form.taskTeamType" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
作业单位班组名称
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="taskTeam" :value="form.taskTeam" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>作业情况
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="taskCondition" :value="form.taskCondition" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
1、现场分部分项施工进度情况(交底情况、劳动力配置情况、机械运行情况、进度计划情况、质量特殊过程关键部位施工旁站情况):
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="buildProgress" :value="form.buildProgress" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
2、作业面安全文明施工情况(工完场清、材料堆码) 、安全自检情况:
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="safeBuildCondition" :value="form.safeBuildCondition" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
3、材料进场情况(规格、数量、使用部位、验收情况、堆放位置):
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="materialEnter" :value="form.materialEnter" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
4、设计变更、洽商、指令单,技术交底情况:
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="technicalInterpretation" :value="form.technicalInterpretation" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
5、现场验收情况(部位、时间、参与人、验收情况及结果)、工程资料填写交接归档情况:
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="sceneInspected" :value="form.sceneInspected" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
6、上级单位外部单位人员到项目检查指导情况(对工程提出的决定、建议,要求解决处理的问题):
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="inspectGuidance" :value="form.inspectGuidance" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
7、现场协调情况、工作面移交情况:
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="sceneCoordinate" :value="form.sceneCoordinate" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
8、其它特殊情况记录(停电、水,停窝工等,原材料,劳务力等其它影响施工情况):
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="otherSpecial" :value="form.otherSpecial" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label" style="position: relative;">
附件
<view class="addImgBox" @click="selectImg">
<image src="/static/icon-add-blue.png" class="icon-add"></image>
</view>
</view>
<view class="uni-form-input" style="margin-top:30rpx">
<view class="imgBox" v-for="(item,index) in fileList" :key="index">
<!-- <image :src="url_config+'image/'+item.url" class="img"></image> -->
<text @click="handlePreview(item.url)">{{item.name}}</text>
<uni-icons2 @click.stop="deleteImg(index)" class="deleteImg" type="clear" size="18"></uni-icons2>
</view>
<!-- <view class="addImgBox" @click="selectImg">
<image src="/static/icon-add.png" class="icon-add"></image>
</view> -->
</view>
</view>
<view class="fixdBox">
<button form-type="submit" type="primary" class="btn submitBtn big">保存</button>
<button class="btn deleteBtn" v-show="!isAdd" @click="deleteFn">删除</button>
</view>
</form>
</view>
</view>
</template>
<script>
export default {
data() {
return {
pageTitle: '新增日志',
selectIndex: 0,
colorList: ['星期一', '星期二', '星期三', '星期四','星期五','星期六','星期天'],
carTypeList:[],
carTypeIndex:null,
form: {
afternoonPersonNum: "",
afternoonWeather: "",
buildName: "",
buildPlace: "",
buildProgress: "",
buildProjectDept: "",
buildTime: "",
buildWeek: "",
constructionCrew: "",
imgUrl: "",
inspectGuidance: "",
materialEnter: "",
morningPersonNum: "",
morningWeather: "",
otherSpecial: "",
projectDirector: "",
safeBuildCondition: "",
sceneCoordinate: "",
sceneInspected: "",
taskCondition: "",
taskTeam: "",
taskTeamType: "",
technicalInterpretation: "",
temperature: "",
projectSn: ''
},
personList: [],
projectDetail: {},
isAdd: true,
fileList:[]
}
},
onLoad(options) {
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
if (options.id) {
this.isAdd = false
this.pageTitle='编辑日志'
this.getDetails(options.id)
}
},
methods: {
handlePreview(url) {
let type = url.split('.')[1];
if (type == 'doc' || type == 'xls' || type == 'ppt' || type == 'pdf' || type == 'docx' || type == 'xlsx' || type ==
'pptx') {
uni.openDocument({
filePath: this.url_config + 'image/' + url,
})
}else{
let fileList = [];
fileList = [this.url_config + 'image/' + url];
uni.previewImage({
current: 0,
urls: fileList
})
}
},
deleteFn(){
var that = this
uni.showModal({
title:'提示',
content:'确定删除该日志吗?',
success(res) {
if(res.confirm){
that.sendRequest({
url: 'xmgl/projectBuildLog/delete',
data: {
id: that.form.id
},
method: "POST",
success(res) {
uni.showToast({
title:'删除成功!'
})
setTimeout(()=>{
uni.navigateBack({})
},1000)
}
})
}
}
})
},
selectImg(){
var that =this
uni.chooseImage({
count:1,
success(res) {
const tempFilePaths = res.tempFilePaths;
for (var i = 0; i < tempFilePaths.length; i++) {
uni.uploadFile({
url: that.url_config+'upload/image', //仅为示例,非真实的接口地址
filePath: tempFilePaths[i],
name: 'files',
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
var data=JSON.parse(uploadFileRes.data).data[0]
that.fileList.push({
url:data.imageUrl,
name:data.filename
})
}
});
}
}
})
},
deleteImg(index){
this.fileList.splice(index,1)
},
getDetails(id) {
var that = this
this.sendRequest({
url: 'xmgl/projectBuildLog/queryById',
data: {
id: id
},
method: "post",
success(res) {
that.form = res.result
that.selectIndex = that.colorList.indexOf(that.form.buildWeek)
that.fileList=JSON.parse(that.form.imgUrl)
}
})
},
bindPickerChange: function(e) {
this.selectIndex = e.target.value
},
bindDateChange: function(e) {
this.form.buildTime = e.target.value
},
formSubmit(e) {
var that = this
console.log(e)
var params = e.detail.value
params.projectSn = this.projectDetail.projectSn
if (params.buildName == '') {
uni.showToast({
title: '请输入单位工程名称',
icon: 'none'
})
return false;
}
if (params.buildProjectDept == '') {
uni.showToast({
title: '请输入施工项目部门',
icon: 'none'
})
return false;
}
if (params.projectDirector == '') {
uni.showToast({
title: '请输入项目负责人',
icon: 'none'
})
return false;
}
if (params.constructionCrew == '') {
uni.showToast({
title: '请输入单位工程施工员',
icon: 'none'
})
return false;
}
if (this.form.buildTime == '') {
uni.showToast({
title: '请选择施工日期',
icon: 'none'
})
return false;
}
if (params.buildPlace == '') {
uni.showToast({
title: '请输入施工部位',
icon: 'none'
})
return false;
}
if (params.taskCondition == '') {
uni.showToast({
title: '请输入作业情况',
icon: 'none'
})
return false;
}
params.imgUrl=JSON.stringify(this.fileList)
params.buildWeek=this.colorList[this.selectIndex]
params.buildTime=this.form.buildTime
var url = 'xmgl/projectBuildLog/edit'
if (this.isAdd) {
url = 'xmgl/projectBuildLog/add'
} else {
params.id = this.form.id
}
this.sendRequest({
url: url,
data: params,
method: "POST",
success(res) {
uni.showToast({
title: '保存成功!'
})
uni.navigateBack({
})
}
})
}
}
}
</script>
<style lang="scss" scoped>
.addImgBox{
// border: 1px solid rgba(42, 43, 91, 0.1);
// background-color: #f6f5f8;
// width: 120rpx;
// height: 120rpx;
// display: inline-flex;
// align-items: center;
// justify-content: center;
// border-radius: 20rpx;
// font-size: 24rpx;
position: absolute;
top: 0;
right: 0;
z-index: 1;
.icon-add{
width: 36rpx;
height: 36rpx;
}
}
.imgBox{
// width: 120rpx;
// height: 120rpx;
// display: inline-flex;
position: relative;
// margin-right: 30rpx;
.img{
width: 100%;
height: 100%;
border-radius: 20rpx;
}
.deleteImg{
position: absolute;
right: 0px;
top: 0;
}
}
.fixdBox{
position: fixed;
bottom: 30rpx;
left: 30rpx;
width: calc(100% - 60rpx);
.submitBtn{
margin-top: 0;
}
}
.formBox2{
padding-bottom: 80px;
margin-top: 30rpx;
}
.editForm{
padding-bottom: 130px;
}
</style>