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