张诺
12 小时以前 71a260afa397035d3844ab13f2fea5669f7b46ab
src/views/productionManagement/productionProcess/New.vue
@@ -39,13 +39,6 @@
        </el-form-item>
        <el-form-item
            label="工序机台"
            prop="deviceId"
            :rules="[
                {
                required: true,
                message: '请选择工序类型',
              }
            ]"
        >
          <el-select
              v-model="formState.deviceId"
@@ -71,20 +64,49 @@
          </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>-->
@@ -111,6 +133,7 @@
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: {
@@ -123,8 +146,13 @@
// 响应式数据(替代选项式的 data)
const formState = ref({
  no: "",
  name: '',
  type: undefined,
  deviceId: "",
  deviceName: "",
  ids: [],
  reportWorkerList: [],
  type: 0,
  remark: '',
  salaryQuota:  '',
  isQuality: false,
@@ -139,10 +167,26 @@
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({
@@ -269,6 +313,7 @@
const handleSubmit = () => {
  proxy.$refs["formRef"].validate(valid => {
    if (valid) {
      handleReportUsersChange(formState.value.ids);
      add(formState.value).then(res => {
        // 关闭模态框
        isShow.value = false;