56 changed files with 599 additions and 4324 deletions
@ -1,200 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="年" prop="year"> |
|
||||
<el-input v-model="formData.year" placeholder="请输入年" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="月" prop="month"> |
|
||||
<el-input v-model="formData.month" placeholder="请输入月" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="描述" prop="descriiption"> |
|
||||
<el-input v-model="formData.descriiption" placeholder="请输入描述" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="开始时间" prop="beginTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.beginTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择开始时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="结束时间" prop="endTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.endTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择结束时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="转换生效时间" prop="converttotime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.converttotime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择转换生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as AccountcalendarApi from '@/api/wms/accountcalendar' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
year: undefined, |
|
||||
month: undefined, |
|
||||
descriiption: undefined, |
|
||||
beginTime: undefined, |
|
||||
endTime: undefined, |
|
||||
converttotime: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
year: [{ required: true, message: '年不能为空', trigger: 'blur' }], |
|
||||
month: [{ required: true, message: '月不能为空', trigger: 'blur' }], |
|
||||
beginTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }], |
|
||||
endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }], |
|
||||
converttotime: [{ required: true, message: '转换生效时间不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await AccountcalendarApi.getAccountcalendar(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as AccountcalendarApi.AccountcalendarVO |
|
||||
if (formType.value === 'create') { |
|
||||
await AccountcalendarApi.createAccountcalendar(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await AccountcalendarApi.updateAccountcalendar(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
year: undefined, |
|
||||
month: undefined, |
|
||||
descriiption: undefined, |
|
||||
beginTime: undefined, |
|
||||
endTime: undefined, |
|
||||
converttotime: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,197 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="仓库代码" prop="warehouseCode"> |
|
||||
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.AREA_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否是功能区" prop="isFunctional"> |
|
||||
<el-select v-model="formData.isFunctional" placeholder="请选择是否是功能区"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as AreaApi from '@/api/wms/areabasic' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
type: undefined, |
|
||||
isFunctional: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }], |
|
||||
isFunctional: [{ required: true, message: '是否是功能区不能为空', trigger: 'change' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await AreaApi.getArea(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as AreaApi.AreaVO |
|
||||
if (formType.value === 'create') { |
|
||||
await AreaApi.createArea(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await AreaApi.updateArea(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
type: undefined, |
|
||||
isFunctional: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,162 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="货币" prop="currency"> |
|
||||
<el-input v-model="formData.currency" placeholder="请输入货币" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="基础货币" prop="basiccurrency"> |
|
||||
<el-input v-model="formData.basiccurrency" placeholder="请输入基础货币" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="比率" prop="rate"> |
|
||||
<el-input v-model="formData.rate" placeholder="请输入比率" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as CurrencyexchangeApi from '@/api/wms/currencyexchange' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
currency: undefined, |
|
||||
basiccurrency: undefined, |
|
||||
rate: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
currency: [{ required: true, message: '货币不能为空', trigger: 'blur' }], |
|
||||
basiccurrency: [{ required: true, message: '基础货币不能为空', trigger: 'blur' }], |
|
||||
rate: [{ required: true, message: '比率不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await CurrencyexchangeApi.getCurrencyexchange(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as CurrencyexchangeApi.CurrencyexchangeVO |
|
||||
if (formType.value === 'create') { |
|
||||
await CurrencyexchangeApi.createCurrencyexchange(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await CurrencyexchangeApi.updateCurrencyexchange(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
currency: undefined, |
|
||||
basiccurrency: undefined, |
|
||||
rate: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,261 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="简称" prop="shortName"> |
|
||||
<el-input v-model="formData.shortName" placeholder="请输入简称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="地址" prop="address"> |
|
||||
<el-input v-model="formData.address" placeholder="请输入地址" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="国家" prop="country"> |
|
||||
<el-input v-model="formData.country" placeholder="请输入国家" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="城市" prop="city"> |
|
||||
<el-input v-model="formData.city" placeholder="请输入城市" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="电话" prop="phone"> |
|
||||
<el-input v-model="formData.phone" placeholder="请输入电话" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="传真" prop="fax"> |
|
||||
<el-input v-model="formData.fax" placeholder="请输入传真" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="邮编" prop="postId"> |
|
||||
<el-input v-model="formData.postId" placeholder="请输入邮编" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人" prop="contacts"> |
|
||||
<el-input v-model="formData.contacts" placeholder="请输入联系人" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="银行" prop="bank"> |
|
||||
<el-input v-model="formData.bank" placeholder="请输入银行" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="币种" prop="currency"> |
|
||||
<el-select v-model="formData.currency" placeholder="请选择币种"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="税率" prop="taxRate"> |
|
||||
<el-input v-model="formData.taxRate" placeholder="请输入税率" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.CUSTOMER_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as CustomerApi from '@/api/wms/customer' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
shortName: undefined, |
|
||||
address: undefined, |
|
||||
country: undefined, |
|
||||
city: undefined, |
|
||||
phone: undefined, |
|
||||
fax: undefined, |
|
||||
postId: undefined, |
|
||||
contacts: undefined, |
|
||||
bank: undefined, |
|
||||
currency: undefined, |
|
||||
taxRate: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
shortName: [{ required: true, message: '简称不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await CustomerApi.getCustomer(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as CustomerApi.CustomerVO |
|
||||
if (formType.value === 'create') { |
|
||||
await CustomerApi.createCustomer(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await CustomerApi.updateCustomer(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
shortName: undefined, |
|
||||
address: undefined, |
|
||||
country: undefined, |
|
||||
city: undefined, |
|
||||
phone: undefined, |
|
||||
fax: undefined, |
|
||||
postId: undefined, |
|
||||
contacts: undefined, |
|
||||
bank: undefined, |
|
||||
currency: undefined, |
|
||||
taxRate: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,217 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="城市" prop="city"> |
|
||||
<el-input v-model="formData.city" placeholder="请输入城市" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="地址" prop="address"> |
|
||||
<el-input v-model="formData.address" placeholder="请输入地址" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人姓名" prop="contactPerson"> |
|
||||
<el-input v-model="formData.contactPerson" placeholder="请输入联系人姓名" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人电话" prop="contactPhone"> |
|
||||
<el-input v-model="formData.contactPhone" placeholder="请输入联系人电话" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户代码" prop="customerCode"> |
|
||||
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="仓库" prop="warehouseCode"> |
|
||||
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="默认库位" prop="defaultLocationCode"> |
|
||||
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as CustomerdockApi from '@/api/wms/customerdock' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
city: undefined, |
|
||||
address: undefined, |
|
||||
contactPerson: undefined, |
|
||||
contactPhone: undefined, |
|
||||
customerCode: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
customerCode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }], |
|
||||
defaultLocationCode: [{ required: true, message: '默认库位不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await CustomerdockApi.getCustomerdock(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as CustomerdockApi.CustomerdockVO |
|
||||
if (formType.value === 'create') { |
|
||||
await CustomerdockApi.createCustomerdock(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await CustomerdockApi.updateCustomerdock(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
city: undefined, |
|
||||
address: undefined, |
|
||||
contactPerson: undefined, |
|
||||
contactPhone: undefined, |
|
||||
customerCode: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,238 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户代码" prop="customerCode"> |
|
||||
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="物料代码" prop="itemCode"> |
|
||||
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户物料代码" prop="customerItemCode"> |
|
||||
<el-input v-model="formData.customerItemCode" placeholder="请输入客户物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="客户计量单位" prop="cusotmerUom"> |
|
||||
<el-select v-model="formData.cusotmerUom" placeholder="请选择客户计量单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.UOM)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="转换率" prop="convertRate"> |
|
||||
<el-input v-model="formData.convertRate" placeholder="请输入转换率" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="客户包装单位" prop="packUnit"> |
|
||||
<el-select v-model="formData.packUnit" placeholder="请选择客户包装单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户包装量" prop="packQty"> |
|
||||
<el-input v-model="formData.packQty" placeholder="请输入客户包装量" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="客户替代包装单位" prop="altPackUnit"> |
|
||||
<el-select v-model="formData.altPackUnit" placeholder="请选择客户替代包装单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户替代包装量" prop="altPackQty"> |
|
||||
<el-input v-model="formData.altPackQty" placeholder="请输入客户替代包装量" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="每器具包装数" prop="packQtyOfContainer"> |
|
||||
<el-input v-model="formData.packQtyOfContainer" placeholder="请输入每器具包装数" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as CustomeritemApi from '@/api/wms/customeritem' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
customerCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
customerItemCode: undefined, |
|
||||
cusotmerUom: undefined, |
|
||||
convertRate: undefined, |
|
||||
packUnit: undefined, |
|
||||
packQty: undefined, |
|
||||
altPackUnit: undefined, |
|
||||
altPackQty: undefined, |
|
||||
packQtyOfContainer: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
customerCode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }], |
|
||||
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }], |
|
||||
packUnit: [{ required: true, message: '客户包装单位不能为空', trigger: 'change' }], |
|
||||
packQty: [{ required: true, message: '客户包装量不能为空', trigger: 'blur' }], |
|
||||
packQtyOfContainer: [{ required: true, message: '每器具包装数不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await CustomeritemApi.getCustomeritem(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as CustomeritemApi.CustomeritemVO |
|
||||
if (formType.value === 'create') { |
|
||||
await CustomeritemApi.createCustomeritem(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await CustomeritemApi.updateCustomeritem(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
customerCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
customerItemCode: undefined, |
|
||||
cusotmerUom: undefined, |
|
||||
convertRate: undefined, |
|
||||
packUnit: undefined, |
|
||||
packQty: undefined, |
|
||||
altPackUnit: undefined, |
|
||||
altPackQty: undefined, |
|
||||
packQtyOfContainer: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,224 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="城市" prop="city"> |
|
||||
<el-input v-model="formData.city" placeholder="请输入城市" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="地址" prop="address"> |
|
||||
<el-input v-model="formData.address" placeholder="请输入地址" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.DOCK_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="仓库代码" prop="warehouseCode"> |
|
||||
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="默认库位代码" prop="defaultLocationCode"> |
|
||||
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认库位代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人姓名" prop="contactPerson"> |
|
||||
<el-input v-model="formData.contactPerson" placeholder="请输入联系人姓名" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人电话" prop="contactPhone"> |
|
||||
<el-input v-model="formData.contactPhone" placeholder="请输入联系人电话" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as DockApi from '@/api/wms/dock' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
city: undefined, |
|
||||
address: undefined, |
|
||||
type: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
contactPerson: undefined, |
|
||||
contactPhone: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
type: [{ required: true, message: '类型不能为空', trigger: 'change' }], |
|
||||
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }], |
|
||||
defaultLocationCode: [{ required: true, message: '默认库位代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await DockApi.getDock(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as DockApi.DockVO |
|
||||
if (formType.value === 'create') { |
|
||||
await DockApi.createDock(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await DockApi.updateDock(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
city: undefined, |
|
||||
address: undefined, |
|
||||
type: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
contactPerson: undefined, |
|
||||
contactPhone: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,290 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="仓库代码" prop="warehouseCode"> |
|
||||
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="区域代码" prop="areaCode"> |
|
||||
<el-input v-model="formData.areaCode" placeholder="请输入区域代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="库位组代码" prop="locationGroupCode"> |
|
||||
<el-input v-model="formData.locationGroupCode" placeholder="请输入库位组代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="ERP库位代码" prop="erpLocationCode"> |
|
||||
<el-select v-model="formData.erpLocationCode" placeholder="请选择ERP库位代码"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.ERP_LOCATION)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.LOCATION_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="巷道" prop="aisle"> |
|
||||
<el-input v-model="formData.aisle" placeholder="请输入巷道" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="货架" prop="shelf"> |
|
||||
<el-input v-model="formData.shelf" placeholder="请输入货架" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="行" prop="locationRow"> |
|
||||
<el-input v-model="formData.locationRow" placeholder="请输入行" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="列" prop="locationColum"> |
|
||||
<el-input v-model="formData.locationColum" placeholder="请输入列" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="拣料优先级" prop="pickPriority"> |
|
||||
<el-input v-model="formData.pickPriority" placeholder="请输入拣料优先级" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="最大承重" prop="maxWeight"> |
|
||||
<el-input v-model="formData.maxWeight" placeholder="请输入最大承重" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="最大面积" prop="maxArea"> |
|
||||
<el-input v-model="formData.maxArea" placeholder="请输入最大面积" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="最大体积" prop="maxVolume"> |
|
||||
<el-input v-model="formData.maxVolume" placeholder="请输入最大体积" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="用户组代码" prop="userGroupCode"> |
|
||||
<el-input v-model="formData.userGroupCode" placeholder="请输入用户组代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as LocationApi from '@/api/wms/location' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
areaCode: undefined, |
|
||||
locationGroupCode: undefined, |
|
||||
erpLocationCode: undefined, |
|
||||
type: undefined, |
|
||||
aisle: undefined, |
|
||||
shelf: undefined, |
|
||||
locationRow: undefined, |
|
||||
locationColum: undefined, |
|
||||
pickPriority: undefined, |
|
||||
maxWeight: undefined, |
|
||||
maxArea: undefined, |
|
||||
maxVolume: undefined, |
|
||||
userGroupCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }], |
|
||||
areaCode: [{ required: true, message: '区域代码不能为空', trigger: 'blur' }], |
|
||||
locationGroupCode: [{ required: true, message: '库位组代码不能为空', trigger: 'blur' }], |
|
||||
erpLocationCode: [{ required: true, message: 'ERP库位代码不能为空', trigger: 'change' }], |
|
||||
type: [{ required: true, message: '类型不能为空', trigger: 'change' }], |
|
||||
pickPriority: [{ required: true, message: '拣料优先级不能为空', trigger: 'blur' }], |
|
||||
userGroupCode: [{ required: true, message: '用户组代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await LocationApi.getLocation(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as LocationApi.LocationVO |
|
||||
if (formType.value === 'create') { |
|
||||
await LocationApi.createLocation(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await LocationApi.updateLocation(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
areaCode: undefined, |
|
||||
locationGroupCode: undefined, |
|
||||
erpLocationCode: undefined, |
|
||||
type: undefined, |
|
||||
aisle: undefined, |
|
||||
shelf: undefined, |
|
||||
locationRow: undefined, |
|
||||
locationColum: undefined, |
|
||||
pickPriority: undefined, |
|
||||
maxWeight: undefined, |
|
||||
maxArea: undefined, |
|
||||
maxVolume: undefined, |
|
||||
userGroupCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,177 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="仓库代码" prop="warehouseCode"> |
|
||||
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="区域代码" prop="areaCode"> |
|
||||
<el-input v-model="formData.areaCode" placeholder="请输入区域代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as LocationgroupApi from '@/api/wms/locationgroup' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
areaCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }], |
|
||||
areaCode: [{ required: true, message: '区域代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await LocationgroupApi.getLocationgroup(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as LocationgroupApi.LocationgroupVO |
|
||||
if (formType.value === 'create') { |
|
||||
await LocationgroupApi.createLocationgroup(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await LocationgroupApi.updateLocationgroup(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
warehouseCode: undefined, |
|
||||
areaCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,191 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PROCESS_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="车间代码" prop="workshopCode"> |
|
||||
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="生产线代码" prop="productionLineCode"> |
|
||||
<el-input v-model="formData.productionLineCode" placeholder="请输入生产线代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as ProcessApi from '@/api/wms/process' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
productionLineCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }], |
|
||||
productionLineCode: [{ required: true, message: '生产线代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await ProcessApi.getProcess(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as ProcessApi.ProcessVO |
|
||||
if (formType.value === 'create') { |
|
||||
await ProcessApi.createProcess(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await ProcessApi.updateProcess(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
productionLineCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,199 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PRODUCTION_LINE_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="车间代码" prop="workshopCode"> |
|
||||
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="原料库位" prop="rawLocationCode"> |
|
||||
<el-input v-model="formData.rawLocationCode" placeholder="请输入原料库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="成品库位" prop="fgLocationCode"> |
|
||||
<el-input v-model="formData.fgLocationCode" placeholder="请输入成品库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as ProductionlineApi from '@/api/wms/productionline' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
rawLocationCode: undefined, |
|
||||
fgLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
type: [{ required: true, message: '类型不能为空', trigger: 'change' }], |
|
||||
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await ProductionlineApi.getProductionline(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as ProductionlineApi.ProductionlineVO |
|
||||
if (formType.value === 'create') { |
|
||||
await ProductionlineApi.createProductionline(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await ProductionlineApi.updateProductionline(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
rawLocationCode: undefined, |
|
||||
fgLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,167 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户代码" prop="customerCode"> |
|
||||
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as ProjectApi from '@/api/wms/project' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
customerCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await ProjectApi.getProject(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as ProjectApi.ProjectVO |
|
||||
if (formType.value === 'create') { |
|
||||
await ProjectApi.createProject(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await ProjectApi.updateProject(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
customerCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,177 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="供应商代码" prop="supplierCode"> |
|
||||
<el-input v-model="formData.supplierCode" placeholder="请输入供应商代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="物料代码" prop="itemCode"> |
|
||||
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="货币" prop="currency"> |
|
||||
<el-select v-model="formData.currency" placeholder="请选择货币"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="价格" prop="price"> |
|
||||
<el-input v-model="formData.price" placeholder="请输入价格" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as PurchasepriceApi from '@/api/wms/purchaseprice' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
supplierCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
currency: undefined, |
|
||||
price: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
supplierCode: [{ required: true, message: '供应商代码不能为空', trigger: 'blur' }], |
|
||||
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }], |
|
||||
currency: [{ required: true, message: '货币不能为空', trigger: 'change' }], |
|
||||
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await PurchasepriceApi.getPurchaseprice(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as PurchasepriceApi.PurchasepriceVO |
|
||||
if (formType.value === 'create') { |
|
||||
await PurchasepriceApi.createPurchaseprice(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await PurchasepriceApi.updatePurchaseprice(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
supplierCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
currency: undefined, |
|
||||
price: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,177 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="客户代码" prop="customercode"> |
|
||||
<el-input v-model="formData.customercode" placeholder="请输入客户代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="物料代码" prop="itemcode"> |
|
||||
<el-input v-model="formData.itemcode" placeholder="请输入物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="货币" prop="currency"> |
|
||||
<el-select v-model="formData.currency" placeholder="请选择货币"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="价格" prop="price"> |
|
||||
<el-input v-model="formData.price" placeholder="请输入价格" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as SalepriceApi from '@/api/wms/saleprice' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
customercode: undefined, |
|
||||
itemcode: undefined, |
|
||||
currency: undefined, |
|
||||
price: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
customercode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }], |
|
||||
itemcode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }], |
|
||||
currency: [{ required: true, message: '货币不能为空', trigger: 'change' }], |
|
||||
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await SalepriceApi.getSaleprice(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as SalepriceApi.SalepriceVO |
|
||||
if (formType.value === 'create') { |
|
||||
await SalepriceApi.createSaleprice(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await SalepriceApi.updateSaleprice(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
customercode: undefined, |
|
||||
itemcode: undefined, |
|
||||
currency: undefined, |
|
||||
price: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,261 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="简称" prop="shortName"> |
|
||||
<el-input v-model="formData.shortName" placeholder="请输入简称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="地址" prop="address"> |
|
||||
<el-input v-model="formData.address" placeholder="请输入地址" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="国家" prop="country"> |
|
||||
<el-input v-model="formData.country" placeholder="请输入国家" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="城市" prop="city"> |
|
||||
<el-input v-model="formData.city" placeholder="请输入城市" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="电话" prop="phone"> |
|
||||
<el-input v-model="formData.phone" placeholder="请输入电话" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="传真" prop="fax"> |
|
||||
<el-input v-model="formData.fax" placeholder="请输入传真" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="邮编" prop="postId"> |
|
||||
<el-input v-model="formData.postId" placeholder="请输入邮编" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="联系人" prop="contacts"> |
|
||||
<el-input v-model="formData.contacts" placeholder="请输入联系人" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="银行" prop="bank"> |
|
||||
<el-input v-model="formData.bank" placeholder="请输入银行" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="币种" prop="currency"> |
|
||||
<el-select v-model="formData.currency" placeholder="请选择币种"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="税率" prop="taxRate"> |
|
||||
<el-input v-model="formData.taxRate" placeholder="请输入税率" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as SupplierApi from '@/api/wms/supplier' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
shortName: undefined, |
|
||||
address: undefined, |
|
||||
country: undefined, |
|
||||
city: undefined, |
|
||||
phone: undefined, |
|
||||
fax: undefined, |
|
||||
postId: undefined, |
|
||||
contacts: undefined, |
|
||||
bank: undefined, |
|
||||
currency: undefined, |
|
||||
taxRate: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
shortName: [{ required: true, message: '简称不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await SupplierApi.getSupplier(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as SupplierApi.SupplierVO |
|
||||
if (formType.value === 'create') { |
|
||||
await SupplierApi.createSupplier(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await SupplierApi.updateSupplier(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
shortName: undefined, |
|
||||
address: undefined, |
|
||||
country: undefined, |
|
||||
city: undefined, |
|
||||
phone: undefined, |
|
||||
fax: undefined, |
|
||||
postId: undefined, |
|
||||
contacts: undefined, |
|
||||
bank: undefined, |
|
||||
currency: undefined, |
|
||||
taxRate: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,268 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="供应商代码" prop="supplierCode"> |
|
||||
<el-input v-model="formData.supplierCode" placeholder="请输入供应商代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="物料代码" prop="itemCode"> |
|
||||
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="供应商物料代码" prop="supplierItemCode"> |
|
||||
<el-input v-model="formData.supplierItemCode" placeholder="请输入供应商物料代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="供应商计量单位" prop="supplierUom"> |
|
||||
<el-select v-model="formData.supplierUom" placeholder="请选择供应商计量单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.UOM)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="转换率" prop="convertRate"> |
|
||||
<el-input v-model="formData.convertRate" placeholder="请输入转换率" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="供应商包装单位" prop="packUnit"> |
|
||||
<el-select v-model="formData.packUnit" placeholder="请选择供应商包装单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="供应商包装量" prop="packQty"> |
|
||||
<el-input v-model="formData.packQty" placeholder="请输入供应商包装量" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="供应商替代包装单位" prop="altPackUnit"> |
|
||||
<el-select v-model="formData.altPackUnit" placeholder="请选择供应商替代包装单位"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="供应商替代包装量" prop="altPackQty"> |
|
||||
<el-input v-model="formData.altPackQty" placeholder="请输入供应商替代包装量" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="每器具包装数" prop="packQtyOfContainer"> |
|
||||
<el-input v-model="formData.packQtyOfContainer" placeholder="请输入每器具包装数" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="默认收货仓库" prop="defaultWarehouseCode"> |
|
||||
<el-input v-model="formData.defaultWarehouseCode" placeholder="请输入默认收货仓库" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="默认收货库位" prop="defaultLocationCode"> |
|
||||
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认收货库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="结算方式" prop="settlementType"> |
|
||||
<el-select v-model="formData.settlementType" placeholder="请选择结算方式"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.SETTLEMENT_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as SupplieritemApi from '@/api/wms/supplieritem' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
supplierCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
supplierItemCode: undefined, |
|
||||
supplierUom: undefined, |
|
||||
convertRate: undefined, |
|
||||
packUnit: undefined, |
|
||||
packQty: undefined, |
|
||||
altPackUnit: undefined, |
|
||||
altPackQty: undefined, |
|
||||
packQtyOfContainer: undefined, |
|
||||
defaultWarehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
settlementType: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
supplierCode: [{ required: true, message: '供应商代码不能为空', trigger: 'blur' }], |
|
||||
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }], |
|
||||
packUnit: [{ required: true, message: '供应商包装单位不能为空', trigger: 'change' }], |
|
||||
packQty: [{ required: true, message: '供应商包装量不能为空', trigger: 'blur' }], |
|
||||
packQtyOfContainer: [{ required: true, message: '每器具包装数不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await SupplieritemApi.getSupplieritem(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as SupplieritemApi.SupplieritemVO |
|
||||
if (formType.value === 'create') { |
|
||||
await SupplieritemApi.createSupplieritem(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await SupplieritemApi.updateSupplieritem(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
supplierCode: undefined, |
|
||||
itemCode: undefined, |
|
||||
supplierItemCode: undefined, |
|
||||
supplierUom: undefined, |
|
||||
convertRate: undefined, |
|
||||
packUnit: undefined, |
|
||||
packQty: undefined, |
|
||||
altPackUnit: undefined, |
|
||||
altPackQty: undefined, |
|
||||
packQtyOfContainer: undefined, |
|
||||
defaultWarehouseCode: undefined, |
|
||||
defaultLocationCode: undefined, |
|
||||
settlementType: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,168 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="模块" prop="module"> |
|
||||
<el-input v-model="formData.module" placeholder="请输入模块" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="开始时间" prop="startTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.startTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择开始时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="结束时间" prop="stopTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.stopTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择结束时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as SystemcalendarApi from '@/api/wms/systemcalendar' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
module: undefined, |
|
||||
startTime: undefined, |
|
||||
stopTime: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
module: [{ required: true, message: '模块不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await SystemcalendarApi.getSystemcalendar(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as SystemcalendarApi.SystemcalendarVO |
|
||||
if (formType.value === 'create') { |
|
||||
await SystemcalendarApi.createSystemcalendar(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await SystemcalendarApi.updateSystemcalendar(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
module: undefined, |
|
||||
startTime: undefined, |
|
||||
stopTime: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,173 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.WAREHOUSE_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as WarehouseApi from '@/api/wms/warehouse' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await WarehouseApi.getWarehouse(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as WarehouseApi.WarehouseVO |
|
||||
if (formType.value === 'create') { |
|
||||
await WarehouseApi.createWarehouse(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await WarehouseApi.updateWarehouse(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,173 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.WORKSHOP_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict' |
|
||||
import * as WorkshopApi from '@/api/wms/workshop' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await WorkshopApi.getWorkshop(id) |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as WorkshopApi.WorkshopVO |
|
||||
if (formType.value === 'create') { |
|
||||
await WorkshopApi.createWorkshop(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await WorkshopApi.updateWorkshop(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
@ -1,211 +0,0 @@ |
|||||
<template> |
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
|
||||
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;"> |
|
||||
<el-form |
|
||||
ref="formRef" |
|
||||
:model="formData" |
|
||||
:rules="formRules" |
|
||||
label-width="100px" |
|
||||
v-loading="formLoading" |
|
||||
> |
|
||||
<el-row> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="代码" prop="code"> |
|
||||
<el-input v-model="formData.code" placeholder="请输入代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="名称" prop="name"> |
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="描述"> |
|
||||
<Editor v-model="formData.description" height="150px" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="类型" prop="type"> |
|
||||
<el-select v-model="formData.type" placeholder="请选择类型"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.WORK_STATION_TYPE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="车间代码" prop="workshopCode"> |
|
||||
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="生产线代码" prop="productionLineCode"> |
|
||||
<el-input v-model="formData.productionLineCode" placeholder="请输入生产线代码" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="原料库位" prop="rawLocationCode"> |
|
||||
<el-input v-model="formData.rawLocationCode" placeholder="请输入原料库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="成品库位" prop="fgLocationCode"> |
|
||||
<el-input v-model="formData.fgLocationCode" placeholder="请输入成品库位" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="是否可用" prop="available"> |
|
||||
<el-select v-model="formData.available" placeholder="请选择是否可用"> |
|
||||
<el-option |
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.TRUE_FALSE)" |
|
||||
:key="dict.value" |
|
||||
:label="dict.label" |
|
||||
:value="dict.value" |
|
||||
/> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="生效时间" prop="activeTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.activeTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择生效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
<el-form-item label="失效时间" prop="expireTime"> |
|
||||
<el-date-picker |
|
||||
v-model="formData.expireTime" |
|
||||
type="date" |
|
||||
value-format="x" |
|
||||
placeholder="选择失效时间" |
|
||||
/> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="12"> |
|
||||
|
|
||||
<el-form-item label="备注" prop="remark"> |
|
||||
<el-input v-model="formData.remark" placeholder="请输入备注" /> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<template #footer> |
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
|
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
|
||||
</template> |
|
||||
</Dialog> |
|
||||
</template> |
|
||||
<script setup lang="ts"> |
|
||||
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' |
|
||||
import * as WorkstationApi from '@/api/wms/workstation' |
|
||||
import { log } from 'console' |
|
||||
|
|
||||
const { t } = useI18n() // 国际化 |
|
||||
const message = useMessage() // 消息弹窗 |
|
||||
|
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
|
||||
const dialogTitle = ref('') // 弹窗的标题 |
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
|
||||
const formData = ref({ |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
productionLineCode: undefined, |
|
||||
rawLocationCode: undefined, |
|
||||
fgLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
}) |
|
||||
const formRules = reactive({ |
|
||||
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }], |
|
||||
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }], |
|
||||
productionLineCode: [{ required: true, message: '生产线代码不能为空', trigger: 'blur' }], |
|
||||
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }] |
|
||||
}) |
|
||||
const formRef = ref() // 表单 Ref |
|
||||
|
|
||||
/** 打开弹窗 */ |
|
||||
const open = async (type: string, id?: number) => { |
|
||||
console.log(dialogVisible.value); |
|
||||
|
|
||||
dialogVisible.value = true |
|
||||
dialogTitle.value = t('action.' + type) |
|
||||
formType.value = type |
|
||||
resetForm() |
|
||||
// 修改时,设置数据 |
|
||||
if (id) { |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
formData.value = await WorkstationApi.getWorkstation(id) |
|
||||
console.log('formData.value=' + JSON.stringify(formData.value)); |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
|
||||
|
|
||||
/** 提交表单 */ |
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
|
||||
const submitForm = async () => { |
|
||||
// 校验表单 |
|
||||
if (!formRef) return |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) return |
|
||||
// 提交请求 |
|
||||
formLoading.value = true |
|
||||
try { |
|
||||
const data = formData.value as unknown as WorkstationApi.WorkstationVO |
|
||||
if (formType.value === 'create') { |
|
||||
await WorkstationApi.createWorkstation(data) |
|
||||
message.success(t('common.createSuccess')) |
|
||||
} else { |
|
||||
await WorkstationApi.updateWorkstation(data) |
|
||||
message.success(t('common.updateSuccess')) |
|
||||
} |
|
||||
dialogVisible.value = false |
|
||||
// 发送操作成功的事件 |
|
||||
emit('success') |
|
||||
} finally { |
|
||||
formLoading.value = false |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** 重置表单 */ |
|
||||
const resetForm = () => { |
|
||||
formData.value = { |
|
||||
code: undefined, |
|
||||
name: undefined, |
|
||||
description: undefined, |
|
||||
type: undefined, |
|
||||
workshopCode: undefined, |
|
||||
productionLineCode: undefined, |
|
||||
rawLocationCode: undefined, |
|
||||
fgLocationCode: undefined, |
|
||||
available: undefined, |
|
||||
activeTime: undefined, |
|
||||
expireTime: undefined, |
|
||||
remark: undefined |
|
||||
} |
|
||||
formRef.value?.resetFields() |
|
||||
} |
|
||||
</script> |
|
Loading…
Reference in new issue