| | |
| | | <u-radio name="false">否</u-radio> |
| | | </u-radio-group> |
| | | </u-form-item> |
| | | <!-- <u-form-item label="工序"> |
| | | <u-checkbox-group> |
| | | <u-checkbox |
| | | :name="item.name" |
| | | v-for="(item, index) in checkboxList" |
| | | :key="index" |
| | | v-model="item.value" |
| | | @change="changeCheckbox" |
| | | :disabled="subdisabled || item.disabled" |
| | | > |
| | | {{ item.name }} |
| | | </u-checkbox> |
| | | </u-checkbox-group> |
| | | </u-form-item> --> |
| | | <u-form-item label="报工方式" prop="status"> |
| | | <u-radio-group v-model="form.status" :disabled="subdisabled" @change="handleReportTypeChange"> |
| | | <u-radio name="false">按班组报工</u-radio> |
| | | <u-radio name="true">按人员报工</u-radio> |
| | | </u-radio-group> |
| | | </u-form-item> |
| | | <u-form-item label="人员名称" :border-bottom="false" prop="Persons"> |
| | | <u-input v-model="form.Persons" type="select" placeholder="请选择" |
| | | @click="openselectedPersons" :disabled="!canSelectPerson || subdisabled"/> |
| | | </u-form-item> |
| | | <u-form-item label="产出列表" :border-bottom="false"></u-form-item> |
| | | </u-form> |
| | | <view class="wrap"> |
| | |
| | | </view> |
| | | </view> |
| | | </u-modal> |
| | | <u-modal v-model="personShowModal" title="" :show-cancel-button="true" :show-confirm-button="true" |
| | | @confirm="confirmSelection" @cancel="cancelSelection"> |
| | | <view class="popup-content"> |
| | | <view class="popup-header"> |
| | | <checkbox-group @change="checkboxChange"> |
| | | <label class="checkbox-item" v-for="(item, index) in selectedPersons" :key="index"> |
| | | <checkbox :value="item.staffId" :checked="item.checked" /> |
| | | <text class="label">{{ item.staffName }}</text> |
| | | </label> |
| | | </checkbox-group> |
| | | </view> |
| | | </view> |
| | | </u-modal> |
| | | <scan></scan> |
| | | </div> |
| | | </template> |
| | |
| | | // }, |
| | | // ], |
| | | InventoryReceiptList: [], |
| | | selectedPersons: [], |
| | | form: { |
| | | workstationId: "", |
| | | work: "", |
| | |
| | | materialCost: "", |
| | | // autoReport: false, |
| | | simplifyMaterials: 'false', |
| | | status: 'false', |
| | | Persons: '', |
| | | productStaffIds: [], |
| | | productStaffs:[] |
| | | }, |
| | | personList: [], |
| | | canSelectPerson: false, |
| | | rules: { |
| | | work: [ |
| | | { |
| | |
| | | trigger: ["change"], |
| | | }, |
| | | ], |
| | | status: [ |
| | | { |
| | | required: true, |
| | | message: "请选择报工方式", |
| | | trigger: ["change"], |
| | | }, |
| | | ], |
| | | Persons: [ |
| | | { |
| | | required: true, |
| | | message: "请选择人员", |
| | | trigger: ["change"], |
| | | }, |
| | | ], |
| | | }, |
| | | showSave: false, |
| | | operationTaskId: "", |
| | |
| | | codeInfoId: "", |
| | | detailedList: {}, |
| | | showModal: false, |
| | | personShowModal: false, |
| | | checkboxList: [], |
| | | }; |
| | | }, |
| | | // 点击提交按钮的事件处理函数 |
| | |
| | | "form.taskNo": function (newVal, oldVal) { |
| | | this.subdisabled = false; |
| | | }, |
| | | 'form.status'(newVal) { |
| | | this.selectedPersons = this.selectedPersons.map(item => ({ |
| | | ...item, |
| | | checked: newVal === 'false' |
| | | })); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 处理报工方式变更 |
| | | handleReportTypeChange() { |
| | | // 切换报工方式时清空人员名称 |
| | | this.form.Persons = ''; |
| | | this.form.productStaffs = []; |
| | | this.form.productStaffIds = []; |
| | | }, |
| | | // 人员名称 |
| | | openselectedPersons() { |
| | | this.personShowModal = true; |
| | | }, |
| | | // 复选框变化事件 |
| | | checkboxChange(e) { |
| | | console.log('e',e) |
| | | const values = e.target.value || []; |
| | | if (this.form.status === 'true') { |
| | | // 单选模式,只允许选择一个人 |
| | | const previouslySelected = this.selectedPersons.find(item => item.checked); |
| | | const newlySelected = values.length > 0 ? values[values.length - 1] : null; |
| | | if (previouslySelected && newlySelected && previouslySelected.staffId !== newlySelected) { |
| | | // 已有选中项且选择了新的项,提示只能选择一个人 |
| | | this.$u.toast('按人员报工时只能选择一位人员'); |
| | | // 保持原选择 |
| | | this.selectedPersons = this.selectedPersons.map(item => ({ |
| | | ...item, |
| | | checked: item.staffId === previouslySelected.staffId |
| | | })); |
| | | |
| | | } else { |
| | | // 首次选择或取消选择 |
| | | this.selectedPersons = this.selectedPersons.map(item => ({ |
| | | ...item, |
| | | checked: newlySelected ? item.staffId === newlySelected : false |
| | | })); |
| | | |
| | | } |
| | | } else { |
| | | // 多选模式 |
| | | this.selectedPersons = this.selectedPersons.map(item => ({ |
| | | ...item, |
| | | checked: values.includes(item.staffId) |
| | | })); |
| | | } |
| | | }, |
| | | // 确认选择 |
| | | confirmSelection() { |
| | | const selected = this.selectedPersons.filter(item => item.checked); |
| | | // 根据报工方式设置人员名称 |
| | | if (this.form.status === 'true' && selected.length > 0) { |
| | | this.form.Persons = selected[0].staffName; |
| | | } else { |
| | | this.form.Persons = selected.map(item => item.staffName).join(','); |
| | | } |
| | | this.form.productStaffs = selected.map(item => item.staffNo); |
| | | this.form.productStaffIds = selected.map(item => item.staffId); |
| | | }, |
| | | cancelSelection(){}, |
| | | // 铜杆报工 |
| | | CopperReportingWork(val) { |
| | | const copperList = {}; |
| | |
| | | copperList.specificationType = val.ST |
| | | copperList.grossWeight = val.TR |
| | | copperList.operationTaskId = this.form.id |
| | | copperList.status = this.form.status; |
| | | copperList.Persons = this.form.Persons; |
| | | copperList.productStaffIds = this.form.productStaffIds; |
| | | copperList.productStaffs = this.form.productStaffs; |
| | | this.form.productOutputList = []; |
| | | this.form.operationTaskId = this.form.id; |
| | | this.form.productOutputList.push(copperList); |
| | |
| | | radioChange() { |
| | | // 处理单选框变化事件 |
| | | }, |
| | | // 获取人员列表 |
| | | getPersonList(dutyId) { |
| | | console.log('111111') |
| | | try { |
| | | this.$u.api.workReporting.getPersonByDutyRecordId({ id: dutyId }).then((res) => { |
| | | this.selectedPersons = res.data.map(item => ({ |
| | | ...item, |
| | | checked: this.form.status === 'false' |
| | | })); |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | } catch (err) { |
| | | console.log(err) |
| | | |
| | | } |
| | | |
| | | }, |
| | | |
| | | confirmModle() { |
| | | console.log("点击确认后获取取消报工记录"); |
| | | // 处理确认逻辑 |
| | |
| | | materialCost: val.materialCost, |
| | | // autoReport: false, |
| | | simplifyMaterials: 'false', |
| | | status: 'false', |
| | | Persons:'', |
| | | }; |
| | | this.checkboxList[1].value = false; |
| | | this.checkboxList[0].value = false; |
| | | if (this.form.materialCost == "倒冲") { |
| | | this.simplifyDisabled = true; |
| | | } |
| | | // 如果有dutyNo,获取人员列表 |
| | | if (val.dutyId) { |
| | | this.getPersonList(val.dutyId); |
| | | } |
| | | }, |
| | | }, |
| | | }; |