张诺
8 小时以前 60530101d70fd5887ae1152962882919fceab502
src/pages/productionManagement/productionReport/index.vue
@@ -11,6 +11,31 @@
            error-message-align="right">
      <!-- 基本信息 -->
      <view class="form-section">
        <u-form-item label="机台"
                     prop="deviceName"
                     required>
          <u-input v-model="form.deviceName"
          disabled
                   placeholder="请输入机台" />
        </u-form-item>
        <u-form-item label="计划开始时间"
                     prop="planStartTime"
                     required>
          <u-input v-model="form.planStartTime"
                   placeholder="请选择计划开始时间"
                   readonly
                   @click="showStartTimePicker = true"
                   suffix-icon="calendar" />
        </u-form-item>
        <u-form-item label="计划结束时间"
                     prop="planEndTime"
                     required>
          <u-input v-model="form.planEndTime"
                   placeholder="请选择计划结束时间"
                   readonly
                   @click="showEndTimePicker = true"
                   suffix-icon="calendar" />
        </u-form-item>
        <u-form-item label="待生产数量"
                     prop="planQuantity"
                     required>
@@ -57,6 +82,20 @@
                     title="选择生产人"
                     @select="onProducerConfirm"
                     @close="showProducerPicker = false" />
    <!-- 开始时间选择器 -->
    <up-datetime-picker :show="showStartTimePicker"
                        v-model="startTimeValue"
                        mode="datetime"
                        @confirm="onStartTimeConfirm"
                        @cancel="showStartTimePicker = false" />
    <!-- 结束时间选择器 -->
    <up-datetime-picker :show="showEndTimePicker"
                        v-model="endTimeValue"
                        mode="datetime"
                        @confirm="onEndTimeConfirm"
                        @cancel="showEndTimePicker = false" />
  </view>
</template>
@@ -80,6 +119,9 @@
  // 表单数据
  const form = ref({
    deviceName: "",
    planStartTime: "",
    planEndTime: "",
    planQuantity: "",
    quantity: "",
    scrapQty: "",
@@ -97,6 +139,12 @@
  // 生产人选择器状态
  const showProducerPicker = ref(false);
  // 时间选择器状态
  const showStartTimePicker = ref(false);
  const showEndTimePicker = ref(false);
  const startTimeValue = ref(Number(new Date()));
  const endTimeValue = ref(Number(new Date()));
  const producerList = ref([]);
  const currentField = ref(""); // 当前选择的字段
@@ -131,6 +179,30 @@
    showProducerPicker.value = false;
  };
  // 格式化日期
  const formatDateTime = (timestamp) => {
    const date = new Date(timestamp);
    const y = date.getFullYear();
    const m = (date.getMonth() + 1).toString().padStart(2, '0');
    const d = date.getDate().toString().padStart(2, '0');
    const h = date.getHours().toString().padStart(2, '0');
    const min = date.getMinutes().toString().padStart(2, '0');
    const s = date.getSeconds().toString().padStart(2, '0');
    return `${y}-${m}-${d} ${h}:${min}:${s}`;
  };
  // 开始时间确认
  const onStartTimeConfirm = (e) => {
    form.value.planStartTime = formatDateTime(e.value);
    showStartTimePicker.value = false;
  };
  // 结束时间确认
  const onEndTimeConfirm = (e) => {
    form.value.planEndTime = formatDateTime(e.value);
    showEndTimePicker.value = false;
  };
  // 提交状态
  const submitting = ref(false);
@@ -142,6 +214,21 @@
  const submitForm = async () => {
    submitting.value = true;
    // 校验表单
    if (!form.value.deviceName) {
      submitting.value = false;
      showToast("请输入机台");
      return;
    }
    if (!form.value.planStartTime) {
      submitting.value = false;
      showToast("请选择计划开始时间");
      return;
    }
    if (!form.value.planEndTime) {
      submitting.value = false;
      showToast("请选择计划结束时间");
      return;
    }
    if (!form.value.quantity) {
      submitting.value = false;
      showToast("请输入本次生产数量");
@@ -202,10 +289,14 @@
  onLoad(options => {
    try {
      const orderRow = JSON.parse(options.orderRow);
      console.log(orderRow, "orderRow");
      // 确保 planQuantity 转换为字符串,以便在 u-input 中正确显示
      form.value.planQuantity = orderRow.planQuantity != null ? String(orderRow.planQuantity) : "";
      form.value.productProcessRouteItemId = orderRow.productProcessRouteItemId || "";
      form.value.workOrderId = orderRow.id || "";
      form.value.deviceName = orderRow.deviceName || "";
      form.value.planStartTime = orderRow.planStartTime || "";
      form.value.planEndTime = orderRow.planEndTime || "";
      getInfo().then(res => {
        // 默认使用当前登录用户,但允许用户修改
        form.value.userId.value = res.user.userId;