| | |
| | | <script setup lang="ts"> |
| | | import { computed, ref, watch, onMounted } from 'vue'; |
| | | import { NSelect, SelectOption } from 'naive-ui'; |
| | | import { computed, onMounted, ref, watch } from 'vue'; |
| | | import type { SelectOption } from 'naive-ui'; |
| | | import { NSelect } from 'naive-ui'; |
| | | import { jsonClone } from '@sa/utils'; |
| | | import { fetchCreateJudge, fetchUpdateJudge } from '@/service/api/qm/judge'; |
| | | import { fetchGetStdList } from '@/service/api/qm/std'; |
| | | |
| | | import { useFormRules, useNaiveForm } from '@/hooks/common/form'; |
| | | import { $t } from '@/locales'; |
| | | |
| | |
| | | { label: '辅料', value: 1 } |
| | | ]; |
| | | |
| | | |
| | | const stdOptions = ref<SelectOption[]>([]); |
| | | |
| | | type Model = Api.Qm.JudgeOperateParams; |
| | |
| | | |
| | | function createDefaultModel(): Model { |
| | | return { |
| | | matCode: '', |
| | | matName: '', |
| | | status: null, |
| | | stdCod: '', |
| | | cdate: null, |
| | | oper: '', |
| | | des: '', |
| | | category: null, |
| | | typeCode: '', |
| | | typeName: '', |
| | | judgeName: '' |
| | | matCode: '', |
| | | matName: '', |
| | | status: null, |
| | | stdCod: '', |
| | | cdate: null, |
| | | oper: '', |
| | | des: '', |
| | | category: null, |
| | | typeCode: '', |
| | | typeName: '', |
| | | judgeName: '' |
| | | }; |
| | | } |
| | | |
| | | 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> = {}; |
| | | |
| | | function handleUpdateModelWhenEdit() { |
| | | model.value = createDefaultModel(); |
| | |
| | | } |
| | | |
| | | async function fetchStdOptions() { |
| | | const response = await fetchGetStdList({ category: model.value.category }); |
| | | const response = await fetchGetStdList({ category: model.value.category }); |
| | | const stdListData = response.data?.rows || []; |
| | | |
| | | if (stdListData.length > 0) { |
| | | stdOptions.value = stdListData.map((item: Api.Qm.Std) => ({ |
| | | label: item.stdName + item.stdCode, |
| | | value: String(item.id) |
| | | })); |
| | | label: item.stdName + item.stdCode, |
| | | value: String(item.id) |
| | | })); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | // request |
| | | if (props.operateType === 'add') { |
| | | const { error } = await fetchCreateJudge({ matCode, matName, status, stdCod, cdate, oper, des, category, typeCode, typeName, judgeName }); |
| | | const { error } = await fetchCreateJudge({ |
| | | matCode, |
| | | matName, |
| | | status, |
| | | stdCod, |
| | | cdate, |
| | | oper, |
| | | des, |
| | | category, |
| | | typeCode, |
| | | typeName, |
| | | judgeName |
| | | }); |
| | | if (error) return; |
| | | } |
| | | |
| | | if (props.operateType === 'edit') { |
| | | const { error } = await fetchUpdateJudge({ matCode, matName, status, stdCod, cdate, oper, des, category, typeCode, typeName, judgeName }); |
| | | const { error } = await fetchUpdateJudge({ |
| | | matCode, |
| | | matName, |
| | | status, |
| | | stdCod, |
| | | cdate, |
| | | oper, |
| | | des, |
| | | category, |
| | | typeCode, |
| | | typeName, |
| | | judgeName |
| | | }); |
| | | if (error) return; |
| | | } |
| | | |
| | |
| | | } |
| | | }); |
| | | |
| | | watch(() => model.value.category, () => { |
| | | fetchStdOptions(); |
| | | }); |
| | | watch( |
| | | () => model.value.category, |
| | | () => { |
| | | fetchStdOptions(); |
| | | } |
| | | ); |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <NInput v-model:value="model.matName" placeholder="请输入物料牌号" /> |
| | | </NFormItem> |
| | | <NFormItem label="物料类型" path="category"> |
| | | <NSelect |
| | | v-model:value="model.category" |
| | | :options="categoryOptions" |
| | | placeholder="请选择物料类型" |
| | | /> |
| | | <NSelect v-model:value="model.category" :options="categoryOptions" placeholder="请选择物料类型" /> |
| | | </NFormItem> |
| | | <NFormItem label="状态" path="status"> |
| | | <NSelect |
| | | v-model:value="model.status" |
| | | :options="statusOptions" |
| | | placeholder="请选择状态" |
| | | /> |
| | | <NSelect v-model:value="model.status" :options="statusOptions" placeholder="请选择状态" /> |
| | | </NFormItem> |
| | | <NFormItem label="判定规程" path="stdCod"> |
| | | <NSelect |
| | | v-model:value="model.stdCod" |
| | | :options="stdOptions" |
| | | placeholder="请选择判定规程" |
| | | /> |
| | | <NSelect v-model:value="model.stdCod" :options="stdOptions" placeholder="请选择判定规程" /> |
| | | </NFormItem> |
| | | <NFormItem label="创建时间" path="cdate"> |
| | | <NDatePicker |