<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.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; 
 | 
                } 
 | 
                .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 { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                .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> 
 |