<template>
|
<view class="fp">
|
<view class="fp_list">
|
<view class="fp_list_item">
|
<view class="fp_list_item_left">
|
<text style="color: #f00;">*</text>
|
<text>计划生产数量:</text>
|
</view>
|
<view class="fp_list_item_right">
|
<u--input placeholder="请输入" :customStyle="{width: '180rpx'}" inputAlign="right" type="number" border="surround" v-model="form.num"></u--input>
|
</view>
|
</view>
|
<view class="fp_list_item">
|
<view class="fp_list_item_left">
|
<text style="color: #f00;">*</text>
|
<text>计划开工日期:</text>
|
</view>
|
<view class="fp_list_item_right" @click="timeShow = true">
|
<text class="black" v-if="form.startTime">{{form.startTime}}</text>
|
<text v-else>年 / 月 / 日</text>
|
<u-icon name="arrow-right" color="#999999"></u-icon>
|
</view>
|
</view>
|
<view class="fp_list_item" @click="show1 = true">
|
<view class="fp_list_item_left">
|
<text>生产设备</text>
|
</view>
|
<view class="fp_list_item_right">
|
<text v-if="form.equipmentName" class="black">{{form.equipmentName}}</text>
|
<text v-else>请选择</text>
|
<u-icon name="arrow-right" color="#999999"></u-icon>
|
</view>
|
</view>
|
<view class="fp_list_item1" v-show="form.equipmentName">
|
<view class="fp_list_item_left">
|
<text>生产人员</text>
|
</view>
|
<view class="fp_list_item_right">
|
<template v-if="personnelData.length > 0">
|
<u-checkbox-group
|
placement="column"
|
@change="checkboxChange">
|
<u-checkbox
|
:customStyle="{marginBottom: '16rpx'}"
|
v-for="(item, index) in personnelData"
|
:key="index"
|
:label="item.text"
|
:name="item.id">
|
</u-checkbox>
|
</u-checkbox-group>
|
</template>
|
<view class="wu" v-else>
|
<text>暂无数据</text>
|
</view>
|
</view>
|
</view>
|
</view>
|
<view class="fp_footer">
|
<view class="fp_footer_close" @click="go">取消</view>
|
<button class="fp_footer_submit" @click="submit">确认</button>
|
</view>
|
<!-- 选择日期 -->
|
<u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
|
<!-- 选择设备 -->
|
<u-picker :show="show1" :columns="equipment" @confirm="confirm" @cancel="show1 = false" keyName="text"></u-picker>
|
</view>
|
</template>
|
|
<script>
|
import { gsdate } from '@/util/utils.js'
|
import { distributeById, getFindAll, getDeviceByCondition } from '@/util/api/PlanningAPI'
|
export default {
|
data() {
|
return {
|
id: null,
|
show1: false,
|
checkboxValue1: [],
|
form: {
|
num: '', // 生产数量
|
startTime: gsdate(new Date()), // 开始时间
|
equipmentId: '', // 设备id
|
equipmentName: '', // 设备名称
|
personnelId: [] // 人员id
|
},
|
isOpenDate: false,
|
equipment: [], // 设备数据
|
personnelData: [], // 人员数据
|
timeShow: false
|
};
|
},
|
onLoad(option) {
|
this.form.num = option.num
|
this.id = option.jhid
|
this.getDeviceByConditions()
|
},
|
methods: {
|
checkboxChange(ids) {
|
this.form.personnelId = ids;
|
},
|
go() {
|
uni.navigateBack({ delta: 1 });
|
},
|
// 确认选择设备
|
confirm(val) {
|
this.form.equipmentId = val.value[0].id
|
this.form.equipmentName = val.value[0].text
|
this.personnelData = []
|
getFindAll({
|
deviceId: this.form.equipmentId
|
}).then(res => {
|
if (res.code === 200 && res.data && res.data.length !== 0) {
|
this.form.personnelId = []
|
let arr = []
|
res.data.forEach((item) => {
|
arr.push({ text: item.dmodel.name + '-' + item.umodel.name, id: item.userId })
|
})
|
this.personnelData = arr
|
}
|
this.show1 = false
|
})
|
},
|
timeConfirm(val) {
|
this.form.startTime = val[0]
|
this.timeShow = false
|
},
|
// 提交分配
|
submit() {
|
if (!this.form.num) return uni.showToast({ title: '计划生产数量不能为空!', icon: 'none', duration: 2000 });
|
if (!this.form.startTime) return uni.showToast({ title: '计划开始日期不能为空!', icon: 'none', duration: 2000 });
|
distributeById({
|
planId: this.id,
|
planNum: this.form.num,
|
planDate: this.form.startTime,
|
proGroupId: this.form.equipmentId,
|
proUserList: this.form.personnelId
|
}).then(res => {
|
if (res.code === 200) {
|
uni.showToast({ title: '分配成功', icon: 'success', duration: 2000, mask: true });
|
setTimeout(() => {
|
uni.$emit('update', { msg:'刷新列表' })
|
uni.navigateBack({ delta: 1 });
|
}, 2000)
|
}
|
})
|
},
|
// 查询设备
|
getDeviceByConditions() {
|
getDeviceByCondition({})
|
.then(res => {
|
if (res.code === 200) {
|
this.equipment = []
|
let arr = []
|
res.data.forEach((element) => {
|
arr.push({ text: element.code + '-' + element.name, id: element.id, checked: false })
|
})
|
this.equipment.push(arr)
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.fp {
|
width: 100%;
|
height: 100%;
|
position: absolute;
|
background: #F7F7F7;
|
.fp_list {
|
display: flex;
|
flex-direction: column;
|
.fp_list_item1 {
|
display: flex;
|
flex-direction: column;
|
justify-content: space-between;
|
padding: 20rpx 30rpx;
|
box-sizing: border-box;
|
background: #ffffff;
|
border-bottom: 1rpx solid #ececec;
|
.fp_list_item_left {
|
flex-shrink: 0;
|
margin-bottom: 40rpx;
|
display: flex;
|
align-items: center;
|
text {
|
color: #222222;
|
font-size: 30rpx;
|
font-weight: 400;
|
}
|
}
|
.fp_list_item_right::v-deep {
|
display: flex;
|
flex-direction: column;
|
.u-checkbox-group--row {
|
display: flex;
|
flex-direction: column;
|
}
|
.u-icon__icon {
|
margin-right: 0 !important;
|
}
|
.fp_list_item_right_dis {
|
display: flex;
|
align-items: center;
|
margin-bottom: 20rpx;
|
&:last-child {
|
margin-bottom: 0 !important;
|
}
|
}
|
.wu {
|
width: 100%;
|
margin: 30rpx 0;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
text {
|
font-size: 26rpx;
|
color: black;
|
}
|
}
|
.black {
|
color: black !important;
|
}
|
// input {
|
// width: 180rpx;
|
// height: 60rpx;
|
// border-radius: 8rpx;
|
// border: 2rpx solid #E5E5E5;
|
// padding: 0 30rpx;
|
// text-align: right;
|
// font-size: 25rpx;
|
// }
|
text {
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #999999;
|
margin-right: 20rpx;
|
}
|
}
|
}
|
.fp_list_item {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
padding: 0 30rpx;
|
height: 98rpx;
|
box-sizing: border-box;
|
background: #ffffff;
|
border-bottom: 1rpx solid #ececec;
|
.fp_list_item_left {
|
flex-shrink: 0;
|
b {
|
color: $nav-stateColor4;
|
font-size: 28rpx;
|
margin-right: 5rpx;
|
}
|
text {
|
color: #222222;
|
font-size: 30rpx;
|
font-weight: 400;
|
}
|
}
|
.fp_list_item_right::v-deep {
|
display: flex;
|
align-items: center;
|
.u-icon__icon {
|
margin-right: 0 !important;
|
}
|
.wu {
|
text-align: center;
|
text {
|
font-size: 26rpx;
|
color: black;
|
}
|
}
|
.black {
|
color: black !important;
|
}
|
// input {
|
// width: 180rpx;
|
// height: 60rpx;
|
// border-radius: 8rpx;
|
// border: 1rpx solid #E5E5E5;
|
// padding: 0 30rpx;
|
// text-align: right;
|
// font-size: 25rpx;
|
// }
|
text {
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #999999;
|
margin-right: 20rpx;
|
}
|
}
|
}
|
}
|
.fp_footer {
|
width: 100%;
|
padding-left: 30rpx;
|
padding-right: 30rpx;
|
padding-bottom: 68rpx;
|
box-sizing: border-box;
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.fp_footer_close {
|
width: 334rpx;
|
height: 88rpx;
|
background: #FFFFFF;
|
box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
|
border-radius: 8rpx;
|
font-size: 30rpx;
|
font-weight: 500;
|
color: #666666;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
.fp_footer_submit {
|
width: 334rpx;
|
height: 88rpx;
|
border: none;
|
background: $nav-color;
|
box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
|
border-radius: 8rpx;
|
font-size: 30rpx;
|
font-weight: 500;
|
color: #ffffff;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
}
|
}
|
</style>
|