广丰卷烟厂数采质量分析系统
ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue
@@ -39,42 +39,47 @@
  return titles[props.operateType];
});
const clsOptions = [
  { label: 'A', value: 'A' },
  { label: 'B', value: 'B' },
  { label: 'C', value: 'C' },
  { label: 'D', value: 'D' }
];
type Model = Api.Qm.JudgeDetailsOperateParams;
const model = ref<Model>(createDefaultModel());
function createDefaultModel(): Model {
  return {
      id: '',
      judgeId: '',
      itemCod: '',
      itemName: '',
      value3: null,
      value1: null,
      value2: null,
      location: '',
      cls: '',
      stdscore: null,
      ismix: null,
      rid: '',
      category: null,
      decisionDes: '',
      updateUser: '',
    id: '',
    judgeId: '',
    itemCod: '',
    itemName: '',
    value3: null,
    value1: null,
    value2: null,
    location: '',
    cls: '',
    stdscore: null,
    ismix: null,
    rid: '',
    category: null,
    decisionDes: '',
    updateUser: ''
  };
}
type RuleKey = Extract<
  keyof Model,
  | 'id'
>;
type RuleKey = Extract<keyof Model, 'id'>;
const rules: Record<RuleKey, App.Global.FormRule> = {
const rules: Record<RuleKey, App.Global.FormRule | App.Global.FormRule[]> = {
  id: createRequiredRule('请输入编码')
};
function handleUpdateModelWhenEdit() {
  model.value = createDefaultModel();
  if (props.operateType === 'edit' && props.rowData) {
  if (props.rowData) {
    Object.assign(model.value, jsonClone(props.rowData));
  }
}
@@ -86,16 +91,64 @@
async function handleSubmit() {
  await validate();
  const { id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser } = model.value;
  const {
    id,
    judgeId,
    itemCod,
    itemName,
    value3,
    value1,
    value2,
    location,
    cls,
    stdscore,
    ismix,
    rid,
    category,
    decisionDes,
    updateUser
  } = model.value;
  // request
  if (props.operateType === 'add') {
    const { error } = await fetchCreateJudgeDetails({ id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser });
    const { error } = await fetchCreateJudgeDetails({
      id,
      judgeId,
      itemCod,
      itemName,
      value3,
      value1,
      value2,
      location,
      cls,
      stdscore,
      ismix,
      rid,
      category,
      decisionDes,
      updateUser
    });
    if (error) return;
  }
  if (props.operateType === 'edit') {
    const { error } = await fetchUpdateJudgeDetails({ id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser });
    const { error } = await fetchUpdateJudgeDetails({
      id,
      judgeId,
      itemCod,
      itemName,
      value3,
      value1,
      value2,
      location,
      cls,
      stdscore,
      ismix,
      rid,
      category,
      decisionDes,
      updateUser
    });
    if (error) return;
  }
@@ -116,50 +169,26 @@
  <NDrawer v-model:show="visible" :title="title" display-directive="show" :width="800" class="max-w-90%">
    <NDrawerContent :title="title" :native-scrollbar="false" closable>
      <NForm ref="formRef" :model="model" :rules="rules">
        <NFormItem label="编码" path="id">
          <NInput v-model:value="model.id" placeholder="请输入编码" />
        </NFormItem>
        <NFormItem label="判定主标识" path="judgeId">
          <NInput v-model:value="model.judgeId" placeholder="请输入判定主标识" />
        </NFormItem>
        <NFormItem label="判定项ITEM" path="itemCod">
          <NInput v-model:value="model.itemCod" placeholder="请输入判定项ITEM" />
        </NFormItem>
        <NFormItem label="判定项NAME" path="itemName">
          <NInput v-model:value="model.itemName" placeholder="请输入判定项NAME" />
        <NFormItem label="判定项" path="itemName">
          <NInput v-model:value="(model.itemName as any)" placeholder="请输入判定项" :disabled="operateType === 'edit'" />
        </NFormItem>
        <NFormItem label="标准值" path="value3">
          <NInput v-model:value="model.value3" placeholder="请输入标准值" />
          <NInputNumber v-model:value="(model.value3 as any)" placeholder="请输入标准值" class="w-full" />
        </NFormItem>
        <NFormItem label="判定值1" path="value1">
          <NInput v-model:value="model.value1" placeholder="请输入判定值1" />
        <NFormItem label="下限值" path="value1">
          <NInputNumber v-model:value="(model.value1 as any)" placeholder="请输入下限值" class="w-full" />
        </NFormItem>
        <NFormItem label="判定值2" path="value2">
          <NInput v-model:value="model.value2" placeholder="请输入判定值2" />
        <NFormItem label="上限值" path="value2">
          <NInputNumber v-model:value="(model.value2 as any)" placeholder="请输入上限值" class="w-full" />
        </NFormItem>
        <NFormItem label="缺陷位置" path="location">
          <NInput v-model:value="model.location" placeholder="请输入缺陷位置" />
        <NFormItem label="分值" path="stdscore">
          <NInputNumber v-model:value="(model.stdscore as any)" placeholder="请输入分值" class="w-full" />
        </NFormItem>
        <NFormItem label="判定级别 (A,B,C,D)" path="cls">
          <NInput v-model:value="model.cls" placeholder="请输入判定级别 (A,B,C,D)" />
        </NFormItem>
        <NFormItem label="分值标准 (扣分标准,得分标准),比如不合格一次扣多少分" path="stdscore">
          <NInput v-model:value="model.stdscore" placeholder="请输入分值标准 (扣分标准,得分标准),比如不合格一次扣多少分" />
        </NFormItem>
        <NFormItem label="标记此项是否为合成项目,比如外观,实际上关联了很多子项目" path="ismix">
          <NInput v-model:value="model.ismix" placeholder="请输入标记此项是否为合成项目,比如外观,实际上关联了很多子项目" />
        </NFormItem>
        <NFormItem label="若此字段有UUID值,表明它可能为其他项目的子项,比如“空头”,它为烟支外观项目的子项" path="rid">
          <NInput v-model:value="model.rid" placeholder="请输入若此字段有UUID值,表明它可能为其他项目的子项,比如“空头”,它为烟支外观项目的子项" />
        </NFormItem>
        <NFormItem label="范围-备用" path="category">
          <NInput v-model:value="model.category" placeholder="请输入范围-备用" />
        <NFormItem label="判定级别" path="cls">
          <NSelect v-model:value="(model.cls as any)" :options="clsOptions" placeholder="请选择判定级别" />
        </NFormItem>
        <NFormItem label="备注" path="decisionDes">
          <NInput v-model:value="model.decisionDes" placeholder="请输入备注" />
        </NFormItem>
        <NFormItem label="修改人" path="updateUser">
          <NInput v-model:value="model.updateUser" placeholder="请输入修改人" />
          <NInput v-model:value="(model.decisionDes as any)" type="textarea" placeholder="请输入备注" />
        </NFormItem>
      </NForm>
      <template #footer>