378 lines
11 KiB
Vue
378 lines
11 KiB
Vue
<template>
|
|
<view class="day-plan">
|
|
<u-navbar
|
|
class="u-navbar"
|
|
:title="dayPlanTitle"
|
|
placeholder
|
|
@leftClick="leftClick"
|
|
leftIconColor="#fff"
|
|
bgColor="#00337A"
|
|
:titleStyle="{ color: '#FFF', fontSize: '32rpx' }"
|
|
/>
|
|
<view class="day-plan-content">
|
|
<button
|
|
:key="index"
|
|
@tap="onTapCheck(index)"
|
|
v-for="(item, index) in btnList"
|
|
:class="{ active: index === activeIndex }"
|
|
>
|
|
{{ item.btn_title }}
|
|
</button>
|
|
</view>
|
|
|
|
<!-- 工程待办 -->
|
|
<view class="common-style" v-show="activeIndex === 0">
|
|
<picker mode="date" @change="onDateChange" :value="currentTime">
|
|
<view>
|
|
<text style="color: red; margin: 0 10rpx">*</text>
|
|
<text>选择时间</text>
|
|
</view>
|
|
|
|
<view class="time-container">
|
|
<view class="date-picker">{{ currentTime }}</view>
|
|
<text>></text>
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
<!-- 发起提交 -->
|
|
<view v-show="activeIndex === 1" class="submit-container common-style">
|
|
<uni-forms
|
|
class="form-container"
|
|
ref="form"
|
|
:modelValue="formData"
|
|
:rules="rules"
|
|
label-position="top"
|
|
label-width="200"
|
|
>
|
|
<uni-forms-item label="工程名称" required>
|
|
<view class="time-container" @tap="onSelectProject">
|
|
<view>请选择</view>
|
|
<text>></text>
|
|
</view>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="选择时间" required>
|
|
<view>
|
|
<TimeSelect />
|
|
</view>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="分公司分管领导" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="简要工程概况" name="gk" required>
|
|
<uni-easyinput type="text" v-model="formData.gk" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="施工进度" name="jd" required>
|
|
<uni-easyinput type="text" v-model="formData.jd" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="作业内容" name="nr" required>
|
|
<uni-easyinput type="text" v-model="formData.nr" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="风险等级" name="dj" required>
|
|
<view class="time-container" @tap="onSelectProject">
|
|
<view>请选择</view>
|
|
<text>></text>
|
|
</view>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="风险类别" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="现场负责人" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="全体人数" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="公司职工人数" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="分包人员人数" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="投入车辆(辆)" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="投入监控设备数(台)" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="SIP编号" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="责任管控人" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="中等以上风险作业管控人等" name="name" required>
|
|
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
|
|
</uni-forms-item>
|
|
<uni-forms-item label="风险管控层级" name="name" required>
|
|
<view class="time-container" @tap="onSelectProject">
|
|
<view>请选择</view>
|
|
<text>></text>
|
|
</view>
|
|
</uni-forms-item>
|
|
</uni-forms>
|
|
|
|
<view class="submit-btn">
|
|
<button>导入计划</button>
|
|
<button @tap="onSaveSubmit">保存提交</button>
|
|
</view>
|
|
</view>
|
|
<!-- 查看报表 -->
|
|
<view v-show="activeIndex === 2" class="common-style">
|
|
<uni-forms ref="form-b" label-position="top" label-width="200">
|
|
<uni-forms-item label="工程名称" required>
|
|
<view class="time-container" @tap="onSelectProject">
|
|
<view>请选择</view>
|
|
<text>></text>
|
|
</view>
|
|
</uni-forms-item>
|
|
</uni-forms>
|
|
|
|
<view class="icon-search-time">
|
|
<text style="fon-size: 30rpx; margin-right: 25rpx" @tap="onReduceMonth">《</text>
|
|
<uni-icons type="left" size="20" @tap="onReduceDay"></uni-icons>
|
|
|
|
<view class="view-time">
|
|
<picker mode="date" @change="onChangeCurrentData" :value="currentTime">
|
|
<view class="date-picker">{{ currentTime }}</view>
|
|
</picker>
|
|
</view>
|
|
|
|
<uni-icons type="right" size="20" @tap="onAddDay"></uni-icons>
|
|
<text style="fon-size: 30rpx; margin-left: 25rpx" @tap="onAddMonth">》</text>
|
|
|
|
<button @tap="onBackToday">返回本日</button>
|
|
</view>
|
|
</view>
|
|
<!-- 查看数据 -->
|
|
<view v-show="activeIndex === 3">查看数据</view>
|
|
|
|
<uni-popup ref="popup" background-color="#fff">
|
|
<view class="popup-content">
|
|
<view class="flex-style" style="justify-content: space-between">
|
|
<text>选择工程</text>
|
|
<text>X</text>
|
|
</view>
|
|
<view>2024-10-16</view>
|
|
<view class="search">
|
|
<view class="select">
|
|
<uni-data-select v-model="value" @change="onProjectChange" :localdata="range"></uni-data-select>
|
|
</view>
|
|
<button>搜索</button>
|
|
</view>
|
|
<view class="project-content">暂无数据</view>
|
|
</view>
|
|
</uni-popup>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import TimeSelect from './components/time-select'
|
|
export default {
|
|
components: {
|
|
TimeSelect
|
|
},
|
|
data() {
|
|
return {
|
|
dayPlanTitle: '基建日计划',
|
|
activeIndex: 0,
|
|
btnList: [
|
|
{ btn_title: '工作待办' },
|
|
{ btn_title: '发起提交' },
|
|
{ btn_title: '查看报表' },
|
|
{ btn_title: '查看数据' }
|
|
],
|
|
currentTime: this.$moment().format('YYYY-MM-DD'),
|
|
range: [
|
|
{ value: 0, text: '全部' },
|
|
{ value: 1, text: '未填报' },
|
|
{ value: 2, text: '已填报' }
|
|
],
|
|
value: 0,
|
|
formData: {},
|
|
rules: {
|
|
name: {
|
|
rules: [{ required: true, errorMessage: '请填写' }]
|
|
},
|
|
gk: {
|
|
rules: [{ required: true, errorMessage: '请填写' }]
|
|
},
|
|
jd: {
|
|
rules: [{ required: true, errorMessage: '请填写' }]
|
|
},
|
|
nr: {
|
|
rules: [{ required: true, errorMessage: '请填写' }]
|
|
},
|
|
dj: {
|
|
rules: [{ required: true, errorMessage: '请填写' }]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
leftClick() {
|
|
uni.navigateTo({ url: '/pages/workPlan/workbench/index' })
|
|
},
|
|
onTapCheck(i) {
|
|
this.activeIndex = i
|
|
},
|
|
onSelectTime() {
|
|
this.$refs.popup.open('top')
|
|
},
|
|
onChangeCurrentData(e) {
|
|
this.currentTime = e.detail.value
|
|
},
|
|
onSelectProject() {
|
|
this.$refs.popup.open('center')
|
|
},
|
|
onProjectChange() {
|
|
console.log('选择---')
|
|
},
|
|
onSaveSubmit() {
|
|
this.$refs.form
|
|
.validate()
|
|
.then(res => {
|
|
console.log(res)
|
|
})
|
|
.catch(error => {
|
|
console.log(error)
|
|
})
|
|
},
|
|
onReduceMonth() {
|
|
this.currentTime = this.$moment(this.currentTime).subtract(1, 'months').format('YYYY-MM-DD')
|
|
},
|
|
onReduceDay() {
|
|
this.currentTime = this.$moment(this.currentTime).subtract(1, 'days').format('YYYY-MM-DD')
|
|
},
|
|
onAddMonth() {
|
|
this.currentTime = this.$moment(this.currentTime).add(1, 'months').format('YYYY-MM-DD')
|
|
},
|
|
onAddDay() {
|
|
this.currentTime = this.$moment(this.currentTime).add(1, 'days').format('YYYY-MM-DD')
|
|
},
|
|
onBackToday() {
|
|
this.currentTime = this.$moment().format('YYYY-MM-DD')
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
if (options.type == 1) {
|
|
this.dayPlanTitle = '基建日计划'
|
|
} else {
|
|
this.dayPlanTitle = '生产日计划'
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.day-plan-content {
|
|
display: flex;
|
|
button {
|
|
// width: 50%;
|
|
flex: 1;
|
|
height: 120rpx;
|
|
// color: #00337a;
|
|
color: #2c2b2b;
|
|
font-size: 26rpx;
|
|
line-height: 120rpx;
|
|
text-align: center;
|
|
border-radius: 0;
|
|
}
|
|
|
|
button::after {
|
|
border: none;
|
|
}
|
|
|
|
.active {
|
|
border-bottom: 2px solid #00337a;
|
|
}
|
|
}
|
|
|
|
.common-style {
|
|
padding: 15rpx;
|
|
}
|
|
|
|
.time-container {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 10rpx 38rpx;
|
|
}
|
|
|
|
// .project-select {
|
|
// width: 80%;
|
|
// }
|
|
|
|
.popup-content {
|
|
width: 90vw;
|
|
padding: 20rpx;
|
|
background-color: #eeeeee;
|
|
|
|
.search {
|
|
width: 100%;
|
|
height: 70rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background-color: #eeeeee;
|
|
.select {
|
|
height: 68rpx;
|
|
width: 65%;
|
|
margin: 0;
|
|
}
|
|
|
|
button {
|
|
height: 68rpx;
|
|
width: 30%;
|
|
line-height: 68rpx;
|
|
font-size: 32rpx;
|
|
background-color: #003777;
|
|
color: #fff;
|
|
border-radius: 12rpx;
|
|
}
|
|
}
|
|
|
|
.project-content {
|
|
height: 460rpx;
|
|
width: 97%;
|
|
margin: 0 auto;
|
|
background-color: #fff;
|
|
}
|
|
}
|
|
.flex-style {
|
|
display: flex;
|
|
align-content: center;
|
|
}
|
|
|
|
.form-container {
|
|
padding: 10rpx 20rpx;
|
|
}
|
|
|
|
.uni-forms-item {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.submit-btn {
|
|
margin: 15rpx 0;
|
|
}
|
|
|
|
.icon-search-time {
|
|
height: 68rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
font-weight: bold;
|
|
|
|
button {
|
|
background-color: #003777;
|
|
color: #fff;
|
|
height: 65rpx;
|
|
line-height: 65rpx;
|
|
font-weight: normal;
|
|
font-size: 30rpx;
|
|
}
|
|
}
|
|
|
|
.view-time {
|
|
margin: 0 35rpx;
|
|
}
|
|
</style>
|