refactor(mes): update comments and improve code readability in condition matchers
parent
3f7134d3fc
commit
3007539f0e
|
|
@ -53,7 +53,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
type: MesDvSubjectTypeEnum.CHECK,
|
type: MesDvSubjectTypeEnum.CHECK,
|
||||||
placeholder: '请选择计划',
|
placeholder: '请选择计划',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'userId',
|
fieldName: 'userId',
|
||||||
|
|
@ -66,7 +65,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
placeholder: '请选择点检人',
|
placeholder: '请选择点检人',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'checkTime',
|
fieldName: 'checkTime',
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
type: MesDvSubjectTypeEnum.MAINTENANCE,
|
type: MesDvSubjectTypeEnum.MAINTENANCE,
|
||||||
placeholder: '请选择计划',
|
placeholder: '请选择计划',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'userId',
|
fieldName: 'userId',
|
||||||
|
|
@ -66,7 +65,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
placeholder: '请选择保养人',
|
placeholder: '请选择保养人',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'maintenTime',
|
fieldName: 'maintenTime',
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ import type { MesDvSubjectApi } from '#/api/mes/dv/subject';
|
||||||
|
|
||||||
import { computed, onMounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
|
|
||||||
|
import { CommonStatusEnum } from '@vben/constants';
|
||||||
|
|
||||||
import { Select } from 'ant-design-vue';
|
import { Select } from 'ant-design-vue';
|
||||||
|
|
||||||
import { getSubjectSimpleList } from '#/api/mes/dv/subject';
|
import { getSubjectSimpleList } from '#/api/mes/dv/subject';
|
||||||
|
|
@ -32,9 +34,26 @@ const emit = defineEmits<{
|
||||||
'update:modelValue': [value?: number];
|
'update:modelValue': [value?: number];
|
||||||
}>();
|
}>();
|
||||||
const list = ref<MesDvSubjectApi.Subject[]>([]); // 项目列表
|
const list = ref<MesDvSubjectApi.Subject[]>([]); // 项目列表
|
||||||
const filteredList = computed(
|
const filteredList = computed(() => {
|
||||||
() => list.value.filter((item) => !props.type || item.type === props.type),
|
// 仅展示启用且类型匹配的项目,避免新建时带出禁用项目
|
||||||
);
|
const result: Array<MesDvSubjectApi.Subject & { disabled?: boolean }> =
|
||||||
|
list.value.filter(
|
||||||
|
(item) =>
|
||||||
|
item.status === CommonStatusEnum.ENABLE &&
|
||||||
|
(!props.type || item.type === props.type),
|
||||||
|
);
|
||||||
|
// 历史数据可能绑定已禁用或其它类型的项目,补充当前选中项用于回显,并禁止重新选择
|
||||||
|
if (
|
||||||
|
props.modelValue != null &&
|
||||||
|
!result.some((item) => item.id === props.modelValue)
|
||||||
|
) {
|
||||||
|
const current = list.value.find((item) => item.id === props.modelValue);
|
||||||
|
if (current) {
|
||||||
|
result.push({ ...current, disabled: true });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
/** 加载项目列表 */
|
/** 加载项目列表 */
|
||||||
async function getList() {
|
async function getList() {
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getClient(id);
|
||||||
selectedItem.value = await getClient(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdClientSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入客户编码',
|
placeholder: '请输入客户编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,8 @@ async function resolveBomById(bomItemId: number | undefined) {
|
||||||
if (selectedBom.value?.bomItemId === bomItemId) {
|
if (selectedBom.value?.bomItemId === bomItemId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
const list = await getProductBomListByItemId(props.itemId);
|
||||||
const list = await getProductBomListByItemId(props.itemId);
|
selectedBom.value = list.find((item) => item.bomItemId === bomItemId);
|
||||||
selectedBom.value = list.find((item) => item.bomItemId === bomItemId);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdProductBomSelect] resolveBomById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getItem(id);
|
||||||
selectedItem.value = await getItem(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdItemSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getVendor(id);
|
||||||
selectedItem.value = await getVendor(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdVendorSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入供应商编码',
|
placeholder: '请输入供应商编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -56,11 +56,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getWorkstation(id);
|
||||||
selectedItem.value = await getWorkstation(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdWorkstationSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入工作站编码',
|
placeholder: '请输入工作站编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -55,11 +55,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getIndicator(id);
|
||||||
selectedItem.value = await getIndicator(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[QcIndicatorSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,21 @@ export function useQcIndicatorResultFormSchema(
|
||||||
/** 检测结果列表的字段 */
|
/** 检测结果列表的字段 */
|
||||||
export function useQcIndicatorResultGridColumns(): VxeTableGridOptions<MesQcIndicatorResultApi.IndicatorResult>['columns'] {
|
export function useQcIndicatorResultGridColumns(): VxeTableGridOptions<MesQcIndicatorResultApi.IndicatorResult>['columns'] {
|
||||||
return [
|
return [
|
||||||
{ field: 'code', title: '样品编号', width: 200 },
|
{
|
||||||
{ field: 'sn', title: '物资SN', minWidth: 200 },
|
field: 'code',
|
||||||
{ field: 'remark', title: '备注', minWidth: 200 },
|
title: '样品编号',
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'sn',
|
||||||
|
title: '物资SN',
|
||||||
|
minWidth: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'remark',
|
||||||
|
title: '备注',
|
||||||
|
minWidth: 200,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 150,
|
width: 150,
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
@ -275,6 +276,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
@ -293,6 +295,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,7 @@ export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
disabled: true,
|
disabled: true,
|
||||||
},
|
},
|
||||||
|
rules: 'selectRequired',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'quantity',
|
fieldName: 'quantity',
|
||||||
|
|
|
||||||
|
|
@ -463,6 +463,7 @@ export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
disabled: true,
|
disabled: true,
|
||||||
},
|
},
|
||||||
|
rules: 'selectRequired',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'materialStockId',
|
fieldName: 'materialStockId',
|
||||||
|
|
|
||||||
|
|
@ -372,7 +372,7 @@ export function useLineFormSchema(
|
||||||
fieldName: 'rqcCheckFlag',
|
fieldName: 'rqcCheckFlag',
|
||||||
label: '需要质检',
|
label: '需要质检',
|
||||||
component: 'Switch',
|
component: 'Switch',
|
||||||
rules: z.boolean().default(true),
|
rules: z.boolean().default(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'remark',
|
fieldName: 'remark',
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getStockTakingPlan(id);
|
||||||
selectedItem.value = await getStockTakingPlan(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[StockTakingPlanSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
||||||
|
|
|
||||||
|
|
@ -476,6 +476,7 @@ export function useResultFormSchema(
|
||||||
await formApi?.setValues({
|
await formApi?.setValues({
|
||||||
areaId: line?.areaId,
|
areaId: line?.areaId,
|
||||||
batchCode: line?.batchCode,
|
batchCode: line?.batchCode,
|
||||||
|
batchId: line?.batchId,
|
||||||
itemId: line?.itemId,
|
itemId: line?.itemId,
|
||||||
locationId: line?.locationId,
|
locationId: line?.locationId,
|
||||||
materialStockId: line?.materialStockId,
|
materialStockId: line?.materialStockId,
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.CAL_PLAN_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.CAL_PLAN_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.CAL_TEAM_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.CAL_TEAM_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_CHECK_PLAN_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_CHECK_PLAN_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
type: MesDvSubjectTypeEnum.CHECK,
|
type: MesDvSubjectTypeEnum.CHECK,
|
||||||
placeholder: '请选择计划',
|
placeholder: '请选择计划',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'userId',
|
fieldName: 'userId',
|
||||||
|
|
@ -66,7 +65,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
placeholder: '请选择点检人',
|
placeholder: '请选择点检人',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'checkTime',
|
fieldName: 'checkTime',
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ export function useFormSchema(formType: FormType, formApi?: VbenFormApi): VbenFo
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_MACHINERY_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_MACHINERY_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_MACHINERY_TYPE_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_MACHINERY_TYPE_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
type: MesDvSubjectTypeEnum.MAINTENANCE,
|
type: MesDvSubjectTypeEnum.MAINTENANCE,
|
||||||
placeholder: '请选择计划',
|
placeholder: '请选择计划',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'userId',
|
fieldName: 'userId',
|
||||||
|
|
@ -66,7 +65,6 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||||
placeholder: '请选择保养人',
|
placeholder: '请选择保养人',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
},
|
},
|
||||||
rules: 'selectRequired',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'maintenTime',
|
fieldName: 'maintenTime',
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_REPAIR_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_REPAIR_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ import type { MesDvSubjectApi } from '#/api/mes/dv/subject';
|
||||||
|
|
||||||
import { computed, onMounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
|
|
||||||
|
import { CommonStatusEnum } from '@vben/constants';
|
||||||
|
|
||||||
import { ElOption, ElSelect } from 'element-plus';
|
import { ElOption, ElSelect } from 'element-plus';
|
||||||
|
|
||||||
import { getSubjectSimpleList } from '#/api/mes/dv/subject';
|
import { getSubjectSimpleList } from '#/api/mes/dv/subject';
|
||||||
|
|
@ -30,9 +32,26 @@ const emit = defineEmits<{
|
||||||
'update:modelValue': [value?: number];
|
'update:modelValue': [value?: number];
|
||||||
}>();
|
}>();
|
||||||
const list = ref<MesDvSubjectApi.Subject[]>([]); // 项目列表
|
const list = ref<MesDvSubjectApi.Subject[]>([]); // 项目列表
|
||||||
const filteredList = computed(
|
const filteredList = computed(() => {
|
||||||
() => list.value.filter((item) => !props.type || item.type === props.type),
|
// 仅展示启用且类型匹配的项目,避免新建时带出禁用项目
|
||||||
);
|
const result: Array<MesDvSubjectApi.Subject & { disabled?: boolean }> =
|
||||||
|
list.value.filter(
|
||||||
|
(item) =>
|
||||||
|
item.status === CommonStatusEnum.ENABLE &&
|
||||||
|
(!props.type || item.type === props.type),
|
||||||
|
);
|
||||||
|
// 历史数据可能绑定已禁用或其它类型的项目,补充当前选中项用于回显,并禁止重新选择
|
||||||
|
if (
|
||||||
|
props.modelValue != null &&
|
||||||
|
!result.some((item) => item.id === props.modelValue)
|
||||||
|
) {
|
||||||
|
const current = list.value.find((item) => item.id === props.modelValue);
|
||||||
|
if (current) {
|
||||||
|
result.push({ ...current, disabled: true });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
/** 加载项目列表 */
|
/** 加载项目列表 */
|
||||||
async function getList() {
|
async function getList() {
|
||||||
|
|
@ -62,6 +81,7 @@ onMounted(getList);
|
||||||
<ElOption
|
<ElOption
|
||||||
v-for="item in filteredList"
|
v-for="item in filteredList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
:disabled="item.disabled"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
:value="item.id!"
|
:value="item.id!"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_SUBJECT_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.DV_SUBJECT_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getClient(id);
|
||||||
selectedItem.value = await getClient(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdClientSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入客户编码',
|
placeholder: '请输入客户编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,8 @@ async function resolveBomById(bomItemId: number | undefined) {
|
||||||
if (selectedBom.value?.bomItemId === bomItemId) {
|
if (selectedBom.value?.bomItemId === bomItemId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
const list = await getProductBomListByItemId(props.itemId);
|
||||||
const list = await getProductBomListByItemId(props.itemId);
|
selectedBom.value = list.find((item) => item.bomItemId === bomItemId);
|
||||||
selectedBom.value = list.find((item) => item.bomItemId === bomItemId);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdProductBomSelect] resolveBomById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getItem(id);
|
||||||
selectedItem.value = await getItem(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdItemSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(
|
const code = await generateAutoCode(
|
||||||
MesAutoCodeRuleCode.MD_ITEM_CODE,
|
MesAutoCodeRuleCode.MD_ITEM_CODE,
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(
|
const code = await generateAutoCode(
|
||||||
MesAutoCodeRuleCode.MD_ITEM_TYPE_CODE,
|
MesAutoCodeRuleCode.MD_ITEM_TYPE_CODE,
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getVendor(id);
|
||||||
selectedItem.value = await getVendor(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdVendorSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入供应商编码',
|
placeholder: '请输入供应商编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -56,11 +56,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getWorkstation(id);
|
||||||
selectedItem.value = await getWorkstation(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[MdWorkstationSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入工作站编码',
|
placeholder: '请输入工作站编码',
|
||||||
},
|
},
|
||||||
dependencies: {
|
|
||||||
triggerFields: ['id'],
|
|
||||||
componentProps: (values) => ({
|
|
||||||
disabled: !!values.id,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
suffix: () =>
|
suffix: () =>
|
||||||
h(
|
h(
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,6 @@ export function useFormSchema(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
disabled: isHeaderReadonly,
|
disabled: isHeaderReadonly,
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(
|
const code = await generateAutoCode(
|
||||||
MesAutoCodeRuleCode.PRO_FEEDBACK_CODE,
|
MesAutoCodeRuleCode.PRO_FEEDBACK_CODE,
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(
|
const code = await generateAutoCode(
|
||||||
MesAutoCodeRuleCode.PRO_PROCESS_CODE,
|
MesAutoCodeRuleCode.PRO_PROCESS_CODE,
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(
|
const code = await generateAutoCode(
|
||||||
MesAutoCodeRuleCode.PRO_ROUTE_CODE,
|
MesAutoCodeRuleCode.PRO_ROUTE_CODE,
|
||||||
|
|
|
||||||
|
|
@ -55,11 +55,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getIndicator(id);
|
||||||
selectedItem.value = await getIndicator(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[QcIndicatorSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
||||||
|
|
|
||||||
|
|
@ -72,9 +72,21 @@ export function useQcIndicatorResultFormSchema(
|
||||||
/** 检测结果列表的字段 */
|
/** 检测结果列表的字段 */
|
||||||
export function useQcIndicatorResultGridColumns(): VxeTableGridOptions<MesQcIndicatorResultApi.IndicatorResult>['columns'] {
|
export function useQcIndicatorResultGridColumns(): VxeTableGridOptions<MesQcIndicatorResultApi.IndicatorResult>['columns'] {
|
||||||
return [
|
return [
|
||||||
{ field: 'code', title: '样品编号', width: 200 },
|
{
|
||||||
{ field: 'sn', title: '物资SN', minWidth: 200 },
|
field: 'code',
|
||||||
{ field: 'remark', title: '备注', minWidth: 200 },
|
title: '样品编号',
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'sn',
|
||||||
|
title: '物资SN',
|
||||||
|
minWidth: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'remark',
|
||||||
|
title: '备注',
|
||||||
|
minWidth: 200,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 150,
|
width: 150,
|
||||||
|
|
|
||||||
|
|
@ -261,6 +261,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
@ -280,6 +281,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
@ -299,6 +301,7 @@ export function useFormSchema(
|
||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: () => syncUnqualified(formApi),
|
onChange: () => syncUnqualified(formApi),
|
||||||
},
|
},
|
||||||
|
defaultValue: 0,
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
dependencies: {
|
dependencies: {
|
||||||
triggerFields: ['unqualifiedQuantity'],
|
triggerFields: ['unqualifiedQuantity'],
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.TM_TOOL_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.TM_TOOL_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
h(
|
h(
|
||||||
ElButton,
|
ElButton,
|
||||||
{
|
{
|
||||||
type: 'default',
|
|
||||||
onClick: async () => {
|
onClick: async () => {
|
||||||
const code = await generateAutoCode(MesAutoCodeRuleCode.TM_TOOL_TYPE_CODE);
|
const code = await generateAutoCode(MesAutoCodeRuleCode.TM_TOOL_TYPE_CODE);
|
||||||
await formApi?.setFieldValue('code', code);
|
await formApi?.setFieldValue('code', code);
|
||||||
|
|
|
||||||
|
|
@ -411,6 +411,7 @@ export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
disabled: true,
|
disabled: true,
|
||||||
},
|
},
|
||||||
|
rules: 'selectRequired',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'quantity',
|
fieldName: 'quantity',
|
||||||
|
|
|
||||||
|
|
@ -464,6 +464,7 @@ export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
|
||||||
componentProps: {
|
componentProps: {
|
||||||
disabled: true,
|
disabled: true,
|
||||||
},
|
},
|
||||||
|
rules: 'selectRequired',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'materialStockId',
|
fieldName: 'materialStockId',
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,7 @@ export function useLineFormSchema(
|
||||||
fieldName: 'rqcCheckFlag',
|
fieldName: 'rqcCheckFlag',
|
||||||
label: '需要质检',
|
label: '需要质检',
|
||||||
component: 'Switch',
|
component: 'Switch',
|
||||||
rules: z.boolean().default(true),
|
rules: z.boolean().default(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldName: 'remark',
|
fieldName: 'remark',
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,7 @@ async function resolveItemById(id: number | undefined) {
|
||||||
if (selectedItem.value?.id === id) {
|
if (selectedItem.value?.id === id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
selectedItem.value = await getStockTakingPlan(id);
|
||||||
selectedItem.value = await getStockTakingPlan(id);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('[StockTakingPlanSelect] resolveItemById failed:', error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
watch(() => props.modelValue, resolveItemById, { immediate: true });
|
||||||
|
|
|
||||||
|
|
@ -477,6 +477,7 @@ export function useResultFormSchema(
|
||||||
await formApi?.setValues({
|
await formApi?.setValues({
|
||||||
areaId: line?.areaId,
|
areaId: line?.areaId,
|
||||||
batchCode: line?.batchCode,
|
batchCode: line?.batchCode,
|
||||||
|
batchId: line?.batchId,
|
||||||
itemId: line?.itemId,
|
itemId: line?.itemId,
|
||||||
locationId: line?.locationId,
|
locationId: line?.locationId,
|
||||||
materialStockId: line?.materialStockId,
|
materialStockId: line?.materialStockId,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue