| | |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="工序机台" |
| | | prop="deviceId" |
| | | :rules="[ |
| | | { |
| | | required: true, |
| | | message: '请选择工序类型', |
| | | } |
| | | ]" |
| | | > |
| | | <el-select |
| | | v-model="formState.deviceId" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="工序类型" |
| | | prop="type" |
| | | label="报工人" |
| | | prop="ids" |
| | | :rules="[ |
| | | { |
| | | { |
| | | required: true, |
| | | message: '请选择工序类型', |
| | | message: '请选择报工人', |
| | | trigger: 'change', |
| | | } |
| | | ]" |
| | | > |
| | | <el-select v-model="formState.type" placeholder="请选择工序类型"> |
| | | <el-option label="计时" :value="0" /> |
| | | <el-option label="计件" :value="1" /> |
| | | <el-select |
| | | v-model="formState.ids" |
| | | multiple |
| | | filterable |
| | | clearable |
| | | collapse-tags |
| | | collapse-tags-tooltip |
| | | placeholder="请选择报工人" |
| | | @change="handleReportUsersChange" |
| | | > |
| | | <el-option |
| | | v-for="item in userOptions" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item--> |
| | | <!-- label="工序类型"--> |
| | | <!-- prop="type"--> |
| | | <!-- :rules="[--> |
| | | <!-- {--> |
| | | <!-- required: true,--> |
| | | <!-- message: '请选择工序类型',--> |
| | | <!-- }--> |
| | | <!-- ]"--> |
| | | <!-- >--> |
| | | <!-- <el-select v-model="formState.type" placeholder="请选择工序类型">--> |
| | | <!-- <el-option label="计时" :value="0" />--> |
| | | <!-- <el-option label="计件" :value="1" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="工资定额" prop="salaryQuota">--> |
| | | <!-- <el-input v-model="formState.salaryQuota" type="number" :step="0.001">--> |
| | | <!-- <template #append>元</template>--> |
| | |
| | | import { ref, computed, onMounted, getCurrentInstance, reactive, nextTick, onBeforeUnmount } from "vue"; |
| | | import {add} from "@/api/productionManagement/productionProcess.js"; |
| | | import {getLedgerPage} from "@/api/equipmentManagement/ledger.js"; |
| | | import {userListNoPageByTenantId} from "@/api/system/user.js"; |
| | | |
| | | const props = defineProps({ |
| | | visible: { |
| | |
| | | |
| | | // 响应式数据(替代选项式的 data) |
| | | const formState = ref({ |
| | | no: "", |
| | | name: '', |
| | | type: undefined, |
| | | deviceId: "", |
| | | deviceName: "", |
| | | ids: [], |
| | | reportWorkerList: [], |
| | | type: 0, |
| | | remark: '', |
| | | salaryQuota: '', |
| | | isQuality: false, |
| | |
| | | |
| | | onMounted(() => { |
| | | resetDeviceOptions(); |
| | | getUserOptions(); |
| | | }); |
| | | |
| | | const handleDeviceChange = (val) => { |
| | | formState.value.deviceName = equipmentList.value.find(item => item.id === val)?.deviceName || ''; |
| | | }; |
| | | |
| | | const userOptions = ref([]); |
| | | |
| | | const handleReportUsersChange = (val) => { |
| | | const userMap = new Map(userOptions.value.map(item => [item.userId, item.nickName])); |
| | | formState.value.reportWorkerList = (val || []).map(userId => ({ |
| | | userId, |
| | | userName: userMap.get(userId) || "", |
| | | })); |
| | | }; |
| | | |
| | | const getUserOptions = async () => { |
| | | const res = await userListNoPageByTenantId(); |
| | | userOptions.value = Array.isArray(res?.data) ? res.data : []; |
| | | }; |
| | | |
| | | const isShow = computed({ |
| | |
| | | const handleSubmit = () => { |
| | | proxy.$refs["formRef"].validate(valid => { |
| | | if (valid) { |
| | | handleReportUsersChange(formState.value.ids); |
| | | add(formState.value).then(res => { |
| | | // 关闭模态框 |
| | | isShow.value = false; |