| <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> |