广丰卷烟厂数采质量分析系统
zhuguifei
2026-03-06 b12c9e77a6b6a7b410ac421c5a3d68da88823460
ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue
@@ -1,9 +1,9 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue';
import { jsonClone } from '~/packages/utils';
import { fetchCreatePackerData, fetchUpdatePackerData } from '@/service/api/analy/packer-data';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { jsonClone } from '~/packages/utils';
defineOptions({
  name: 'PackerDataOperateDrawer'
@@ -45,39 +45,34 @@
function createDefaultModel(): Model {
  return {
      time: null,
      key: '',
      online: null,
      qty: null,
      badQty: null,
      xiaohemoVal: null,
      tiaohemoVal: null,
      xiaohezhiVal: null,
      tiaohezhiVal: null,
      neichenzhiVal: null,
      runTime: null,
      stopTime: null,
      stopTimes: null,
      speed: null,
      runStatus: null,
      tsQty: null,
      mainQty: null,
      mainBadQty: null,
      tbjQty: null,
      tbjGdQty: null,
      tbjBadQty: null,
      pbjQty: null,
      shift: null,
      equNo: null
    time: null,
    key: '',
    online: null,
    qty: null,
    badQty: null,
    xiaohemoVal: null,
    tiaohemoVal: null,
    xiaohezhiVal: null,
    tiaohezhiVal: null,
    neichenzhiVal: null,
    runTime: null,
    stopTime: null,
    stopTimes: null,
    speed: null,
    runStatus: null,
    tsQty: null,
    mainQty: null,
    mainBadQty: null,
    tbjQty: null,
    tbjGdQty: null,
    tbjBadQty: null,
    pbjQty: null,
    shift: null,
    equNo: null
  };
}
type RuleKey = Extract<
  keyof Model,
  | 'time'
  | 'shift'
  | 'equNo'
>;
type RuleKey = Extract<keyof Model, 'time' | 'shift' | 'equNo'>;
const rules: Record<RuleKey, App.Global.FormRule> = {
  time: createRequiredRule('时间不能为空'),
@@ -100,16 +95,91 @@
async function handleSubmit() {
  await validate();
  const { time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo } = model.value;
  const {
    time,
    key,
    online,
    qty,
    badQty,
    xiaohemoVal,
    tiaohemoVal,
    xiaohezhiVal,
    tiaohezhiVal,
    neichenzhiVal,
    runTime,
    stopTime,
    stopTimes,
    speed,
    runStatus,
    tsQty,
    mainQty,
    mainBadQty,
    tbjQty,
    tbjGdQty,
    tbjBadQty,
    pbjQty,
    shift,
    equNo
  } = model.value;
  // request
  if (props.operateType === 'add') {
    const { error } = await fetchCreatePackerData({ time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo });
    const { error } = await fetchCreatePackerData({
      time,
      key,
      online,
      qty,
      badQty,
      xiaohemoVal,
      tiaohemoVal,
      xiaohezhiVal,
      tiaohezhiVal,
      neichenzhiVal,
      runTime,
      stopTime,
      stopTimes,
      speed,
      runStatus,
      tsQty,
      mainQty,
      mainBadQty,
      tbjQty,
      tbjGdQty,
      tbjBadQty,
      pbjQty,
      shift,
      equNo
    });
    if (error) return;
  }
  if (props.operateType === 'edit') {
    const { error } = await fetchUpdatePackerData({ time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo });
    const { error } = await fetchUpdatePackerData({
      time,
      key,
      online,
      qty,
      badQty,
      xiaohemoVal,
      tiaohemoVal,
      xiaohezhiVal,
      tiaohezhiVal,
      neichenzhiVal,
      runTime,
      stopTime,
      stopTimes,
      speed,
      runStatus,
      tsQty,
      mainQty,
      mainBadQty,
      tbjQty,
      tbjGdQty,
      tbjBadQty,
      pbjQty,
      shift,
      equNo
    });
    if (error) return;
  }
@@ -139,82 +209,77 @@
          />
        </NFormItem>
        <NFormItem label="key" path="key">
          <NInput
            v-model:value="model.key"
            :rows="3"
            type="textarea"
            placeholder="请输入key"
          />
          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="请输入key" />
        </NFormItem>
        <NFormItem label="网络状态(0异常,1正常)" path="online">
          <NInput v-model:value="model.online" placeholder="请输入网络状态(0异常,1正常)" />
          <NInputNumber v-model:value="model.online" placeholder="请输入网络状态(0异常,1正常)" class="w-full" />
        </NFormItem>
        <NFormItem label="产量" path="qty">
          <NInput v-model:value="model.qty" placeholder="请输入产量" />
          <NInputNumber v-model:value="model.qty" placeholder="请输入产量" class="w-full" />
        </NFormItem>
        <NFormItem label="剔除产量" path="badQty">
          <NInput v-model:value="model.badQty" placeholder="请输入剔除产量" />
          <NInputNumber v-model:value="model.badQty" placeholder="请输入剔除产量" class="w-full" />
        </NFormItem>
        <NFormItem label="小盒膜消耗" path="xiaohemoVal">
          <NInput v-model:value="model.xiaohemoVal" placeholder="请输入小盒膜消耗" />
          <NInputNumber v-model:value="model.xiaohemoVal" placeholder="请输入小盒膜消耗" class="w-full" />
        </NFormItem>
        <NFormItem label="条盒膜消耗" path="tiaohemoVal">
          <NInput v-model:value="model.tiaohemoVal" placeholder="请输入条盒膜消耗" />
          <NInputNumber v-model:value="model.tiaohemoVal" placeholder="请输入条盒膜消耗" class="w-full" />
        </NFormItem>
        <NFormItem label="小盒纸消耗" path="xiaohezhiVal">
          <NInput v-model:value="model.xiaohezhiVal" placeholder="请输入小盒纸消耗" />
          <NInputNumber v-model:value="model.xiaohezhiVal" placeholder="请输入小盒纸消耗" class="w-full" />
        </NFormItem>
        <NFormItem label="条盒纸消耗" path="tiaohezhiVal">
          <NInput v-model:value="model.tiaohezhiVal" placeholder="请输入条盒纸消耗" />
          <NInputNumber v-model:value="model.tiaohezhiVal" placeholder="请输入条盒纸消耗" class="w-full" />
        </NFormItem>
        <NFormItem label="内衬纸消耗" path="neichenzhiVal">
          <NInput v-model:value="model.neichenzhiVal" placeholder="请输入内衬纸消耗" />
          <NInputNumber v-model:value="model.neichenzhiVal" placeholder="请输入内衬纸消耗" class="w-full" />
        </NFormItem>
        <NFormItem label="运行时间" path="runTime">
          <NInput v-model:value="model.runTime" placeholder="请输入运行时间" />
          <NInputNumber v-model:value="model.runTime" placeholder="请输入运行时间" class="w-full" />
        </NFormItem>
        <NFormItem label="停机时间" path="stopTime">
          <NInput v-model:value="model.stopTime" placeholder="请输入停机时间" />
          <NInputNumber v-model:value="model.stopTime" placeholder="请输入停机时间" class="w-full" />
        </NFormItem>
        <NFormItem label="停机次数" path="stopTimes">
          <NInput v-model:value="model.stopTimes" placeholder="请输入停机次数" />
          <NInputNumber v-model:value="model.stopTimes" placeholder="请输入停机次数" class="w-full" />
        </NFormItem>
        <NFormItem label="车速" path="speed">
          <NInput v-model:value="model.speed" placeholder="请输入车速" />
          <NInputNumber v-model:value="model.speed" placeholder="请输入车速" class="w-full" />
        </NFormItem>
        <NFormItem label="运行状态(-1 断网 0停止 1低速运行 2正常运行)" path="runStatus">
          <NRadioGroup v-model:value="model.runStatus">
            <NSpace>
              <NRadio value="0" label="请选择字典生成" />
              <NRadio :value="0" label="请选择字典生成" />
            </NSpace>
          </NRadioGroup>
        </NFormItem>
        <NFormItem label="提升机产量" path="tsQty">
          <NInput v-model:value="model.tsQty" placeholder="请输入提升机产量" />
          <NInputNumber v-model:value="model.tsQty" placeholder="请输入提升机产量" class="w-full" />
        </NFormItem>
        <NFormItem label="主机产量(小包机)" path="mainQty">
          <NInput v-model:value="model.mainQty" placeholder="请输入主机产量(小包机)" />
          <NInputNumber v-model:value="model.mainQty" placeholder="请输入主机产量(小包机)" class="w-full" />
        </NFormItem>
        <NFormItem label="主机剔除量" path="mainBadQty">
          <NInput v-model:value="model.mainBadQty" placeholder="请输入主机剔除量" />
          <NInputNumber v-model:value="model.mainBadQty" placeholder="请输入主机剔除量" class="w-full" />
        </NFormItem>
        <NFormItem label="透包机产量" path="tbjQty">
          <NInput v-model:value="model.tbjQty" placeholder="请输入透包机产量" />
          <NInputNumber v-model:value="model.tbjQty" placeholder="请输入透包机产量" class="w-full" />
        </NFormItem>
        <NFormItem label="透包机剔除好包" path="tbjGdQty">
          <NInput v-model:value="model.tbjGdQty" placeholder="请输入透包机剔除好包" />
          <NInputNumber v-model:value="model.tbjGdQty" placeholder="请输入透包机剔除好包" class="w-full" />
        </NFormItem>
        <NFormItem label="透包机剔除坏包" path="tbjBadQty">
          <NInput v-model:value="model.tbjBadQty" placeholder="请输入透包机剔除坏包" />
          <NInputNumber v-model:value="model.tbjBadQty" placeholder="请输入透包机剔除坏包" class="w-full" />
        </NFormItem>
        <NFormItem label="排包机产量" path="pbjQty">
          <NInput v-model:value="model.pbjQty" placeholder="请输入排包机产量" />
          <NInputNumber v-model:value="model.pbjQty" placeholder="请输入排包机产量" class="w-full" />
        </NFormItem>
        <NFormItem label="班次" path="shift">
          <NSelect
            v-model:value="model.shift"
            placeholder="请选择班次"
            :options="[{ value: '0', label: '请选择字典生成' }]"
            :options="[{ value: 0, label: '请选择字典生成' }]"
            clearable
          />
        </NFormItem>
@@ -222,7 +287,7 @@
          <NSelect
            v-model:value="model.equNo"
            placeholder="请选择设备"
            :options="[{ value: '0', label: '请选择字典生成' }]"
            :options="[{ value: 0, label: '请选择字典生成' }]"
            clearable
          />
        </NFormItem>