feat:入库单据/出库单据-添加isAudit配置判断

main
黄伟杰 2 weeks ago
parent 860aa3c32d
commit b6a88bce86

@ -28,11 +28,6 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="t('MoldManagement.MoldBrandFormPage.version')" prop="version">
<el-input v-model="formData.version" :placeholder="t('MoldManagement.MoldBrandFormPage.placeholderVersion')" @input="handleVersionInput" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="t('MoldManagement.MoldBrandFormPage.status')" prop="status">
<el-select v-model="formData.status" :placeholder="t('MoldManagement.MoldBrandFormPage.placeholderStatus')" class="w-1/1">
@ -104,7 +99,6 @@ const formData = ref<MoldBrandVO>({
productName: '',
productIds: [],
images: '',
version: '',
status: 0,
useTime: 0,
maintainType: undefined,
@ -134,21 +128,6 @@ const handleCodeAutoChange = (value: boolean) => {
formRef.value?.clearValidate('code')
}
const handleVersionInput = (value: string) => {
formData.value.version = value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1')
}
const stripVersionPrefix = (val: any): string => {
if (!val) return ''
return String(val).replace(/^V/i, '')
}
const addVersionPrefix = (val: any): string => {
if (!val) return ''
const raw = String(val).replace(/^V/i, '')
return raw ? `V${raw}` : ''
}
const formRules = reactive({
code: [{ validator: validateCode, trigger: 'blur' }],
name: [{ required: true, message: t('MoldManagement.MoldBrandFormPage.validatorNameRequired'), trigger: 'blur' }],
@ -168,7 +147,6 @@ const resetForm = () => {
productName: '',
productIds: [],
images: '',
version: '',
status: 1,
useTime: 0,
maintainType: undefined,
@ -203,7 +181,6 @@ const open = async (type: string, id?: number) => {
...formData.value,
...data,
isCode: (data as any)?.isCode ?? false,
version: stripVersionPrefix(data?.version),
productIds: Array.isArray(data?.productIds)
? data.productIds
: data?.productId
@ -225,7 +202,6 @@ const submitForm = async () => {
handleProductChange(formData.value.productIds)
const payload: MoldBrandVO = {
...formData.value,
version: addVersionPrefix(formData.value.version),
productIds: Array.isArray(formData.value.productIds) ? formData.value.productIds : [],
isEnable: Boolean(formData.value.isEnable)
}

@ -65,7 +65,6 @@
</el-table-column>
<el-table-column :label="t('MoldManagement.MoldBrandPage.name')" prop="name" min-width="160" sortable />
<el-table-column :label="t('MoldManagement.MoldBrandPage.productName')" prop="productName" min-width="140" />
<el-table-column :label="t('MoldManagement.MoldBrandPage.version')" prop="version" width="100" />
<el-table-column :label="t('MoldManagement.MoldBrandPage.status')" prop="status" width="100" align="center">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_MOLD_STATUS" :value="scope.row.status" />
@ -86,10 +85,10 @@
<template #default="scope">
<el-button link type="primary" @click="openDetail(scope.row.id)">{{ t('MoldManagement.MoldBrandPage.detail')
}}</el-button>
<el-button link type="primary" @click="openOperateForm(1, scope.row)" v-if="scope.row.status === 1">{{
t('MoldManagement.MoldBrandPage.moldUp') }}</el-button>
<el-button link type="primary" @click="openOperateForm(2, scope.row)" v-if="scope.row.status === 0">{{
<el-button link type="primary" @click="openOperateForm(2, scope.row)" v-if="scope.row.deviceName">{{
t('MoldManagement.MoldBrandPage.moldDown') }}</el-button>
<el-button link type="primary" @click="openOperateForm(1, scope.row)" v-if="!scope.row.deviceName">{{
t('MoldManagement.MoldBrandPage.moldUp') }}</el-button>
<el-button link type="warning" @click="openMaintainForm(scope.row)">{{
t('MoldManagement.MoldBrandPage.maintain') }}</el-button>
<el-button link type="primary" @click="openForm('update', scope.row.id)"

@ -231,7 +231,7 @@
@click="openSubmitDialog(scope.row)"
v-hasPermi="['erp:stock-in:update-status']"
>
{{ t('ErpStock.In.submitAudit') }}
{{ submitActionText }}
</el-button>
<el-button
v-if="Number(scope.row.status) === 10"
@ -275,9 +275,9 @@
<!-- 表单面板添加/修改 -->
<StockInForm v-else ref="formRef" @success="getList" @closed="formVisible = false" />
<Dialog :title="t('ErpStock.In.submitAudit')" v-model="submitDialogVisible" width="520px">
<Dialog :title="submitActionText" v-model="submitDialogVisible" width="520px">
<el-form ref="submitFormRef" :model="submitFormData" :rules="submitFormRules" label-width="90px">
<el-form-item :label="t('ErpStock.In.auditUser')" prop="auditUserId">
<el-form-item v-if="!isAuditDisabled" :label="t('ErpStock.In.auditUser')" prop="auditUserId">
<el-select
v-model="submitFormData.auditUserId"
clearable
@ -339,6 +339,7 @@ import { SupplierApi, SupplierVO } from '@/api/erp/purchase/supplier'
import { UserVO } from '@/api/system/user'
import * as UserApi from '@/api/system/user'
import { erpCountTableColumnFormatter, erpPriceTableColumnFormatter } from '@/utils'
import * as ConfigApi from '@/api/infra/config'
/** ERP 其它入库单列表 */
defineOptions({ name: 'ErpStockIn' })
@ -385,6 +386,8 @@ const userList = ref<UserVO[]>([]) // 用户列表
const formVisible = ref(false) //
const actionLoading = ref(false)
const isAuditDisabled = ref(false)
const submitActionText = computed(() => isAuditDisabled.value ? '入库' : t('ErpStock.In.submitAudit'))
const submitDialogVisible = ref(false)
const submitFormRef = ref()
const submitFormData = reactive({
@ -392,7 +395,7 @@ const submitFormData = reactive({
auditUserId: '',
remark: ''
})
const submitFormRules = reactive({
const submitFormRules = computed(() => isAuditDisabled.value ? {} : {
auditUserId: [{ required: true, message: t('ErpStock.In.validatorAuditUserRequired'), trigger: 'change' }]
})
const auditDialogVisible = ref(false)
@ -405,10 +408,21 @@ const auditFormData = reactive({
const auditDialogTitle = computed(() => auditFormData.status === '20' ? t('ErpStock.In.auditApprove') : t('ErpStock.In.auditReject'))
const auditRemarkPlaceholder = computed(() => auditFormData.status === '20' ? t('ErpStock.In.placeholderAuditApproveRemark') : t('ErpStock.In.placeholderAuditRejectRemark'))
const loadAuditConfig = async () => {
try {
const data = await ConfigApi.getConfigPage({ pageNo: 1, pageSize: 10, key: 'isAudit' } as PageParam & { key: string })
const auditConfig = data?.list?.find((item) => item?.key === 'isAudit')
isAuditDisabled.value = auditConfig?.value === '0'
} catch {
isAuditDisabled.value = false
}
}
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
await loadAuditConfig()
const data = await StockInApi.getStockInPage(queryParams)
list.value = data.list
total.value = data.total
@ -462,14 +476,19 @@ const openSubmitDialog = (row: StockInVO) => {
}
const handleSubmitStockIn = async () => {
await submitFormRef.value.validate()
if (!isAuditDisabled.value) {
await submitFormRef.value.validate()
}
actionLoading.value = true
try {
await StockInApi.submitStockIn({
const data: { id: string; auditUserId?: string; remark?: string } = {
id: submitFormData.id,
auditUserId: submitFormData.auditUserId,
remark: submitFormData.remark
})
}
if (!isAuditDisabled.value) {
data.auditUserId = submitFormData.auditUserId
}
await StockInApi.submitStockIn(data as { id: string; auditUserId: string; remark?: string })
message.success(t('ErpStock.In.submitSuccess'))
submitDialogVisible.value = false
await getList()

@ -231,7 +231,7 @@
@click="openSubmitDialog(scope.row)"
v-hasPermi="['erp:stock-out:update-status']"
>
{{ t('ErpStock.Out.submitAudit') }}
{{ submitActionText }}
</el-button>
<el-button
v-if="Number(scope.row.status) === 10"
@ -275,9 +275,9 @@
<!-- 琛ㄥ崟闈㈡澘锛氭坊鍔? -->
<StockOutForm v-else ref="formRef" @success="getList" @closed="formVisible = false" />
<Dialog :title="t('ErpStock.Out.submitAudit')" v-model="submitDialogVisible" width="520px">
<Dialog :title="submitActionText" v-model="submitDialogVisible" width="520px">
<el-form ref="submitFormRef" :model="submitFormData" :rules="submitFormRules" label-width="90px">
<el-form-item :label="t('ErpStock.Out.auditUser')" prop="auditUserId">
<el-form-item v-if="!isAuditDisabled" :label="t('ErpStock.Out.auditUser')" prop="auditUserId">
<el-select
v-model="submitFormData.auditUserId"
clearable
@ -338,6 +338,7 @@ import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
import { UserVO } from '@/api/system/user'
import * as UserApi from '@/api/system/user'
import { erpCountTableColumnFormatter, erpPriceTableColumnFormatter } from '@/utils'
import * as ConfigApi from '@/api/infra/config'
/** ERP 鍏跺畠鍏ュ簱鍗曞垪琛?*/
defineOptions({ name: 'ErpStockOut' })
@ -384,6 +385,8 @@ const userList = ref<UserVO[]>([]) // 鐢ㄦ埛鍒楄〃
const formVisible = ref(false) //
const actionLoading = ref(false)
const isAuditDisabled = ref(false)
const submitActionText = computed(() => isAuditDisabled.value ? '出库' : t('ErpStock.Out.submitAudit'))
const submitDialogVisible = ref(false)
const submitFormRef = ref()
const submitFormData = reactive({
@ -391,7 +394,7 @@ const submitFormData = reactive({
auditUserId: '',
remark: ''
})
const submitFormRules = reactive({
const submitFormRules = computed(() => isAuditDisabled.value ? {} : {
auditUserId: [{ required: true, message: t('ErpStock.Out.validatorAuditUserRequired'), trigger: 'change' }]
})
const auditDialogVisible = ref(false)
@ -404,10 +407,21 @@ const auditFormData = reactive({
const auditDialogTitle = computed(() => auditFormData.status === '20' ? t('ErpStock.Out.auditApprove') : t('ErpStock.Out.auditReject'))
const auditRemarkPlaceholder = computed(() => auditFormData.status === '20' ? t('ErpStock.Out.placeholderAuditApproveRemark') : t('ErpStock.Out.placeholderAuditRejectRemark'))
const loadAuditConfig = async () => {
try {
const data = await ConfigApi.getConfigPage({ pageNo: 1, pageSize: 10, key: 'isAudit' } as PageParam & { key: string })
const auditConfig = data?.list?.find((item) => item?.key === 'isAudit')
isAuditDisabled.value = auditConfig?.value === '0'
} catch {
isAuditDisabled.value = false
}
}
/** 鏌ヨ鍒楄〃 */
const getList = async () => {
loading.value = true
try {
await loadAuditConfig()
const data = await StockOutApi.getStockOutPage(queryParams)
list.value = data.list
total.value = data.total
@ -461,14 +475,19 @@ const openSubmitDialog = (row: StockOutVO) => {
}
const handleSubmitStockOut = async () => {
await submitFormRef.value.validate()
if (!isAuditDisabled.value) {
await submitFormRef.value.validate()
}
actionLoading.value = true
try {
await StockOutApi.submitStockOut({
const data: { id: string; auditUserId?: string; remark?: string } = {
id: submitFormData.id,
auditUserId: submitFormData.auditUserId,
remark: submitFormData.remark
})
}
if (!isAuditDisabled.value) {
data.auditUserId = submitFormData.auditUserId
}
await StockOutApi.submitStockOut(data as { id: string; auditUserId: string; remark?: string })
message.success(t('ErpStock.Out.submitSuccess'))
submitDialogVisible.value = false
await getList()

Loading…
Cancel
Save