fix(ts): 批量精确补全 CRM/ERP/MES 表单字段类型

- 各业务域表单状态按需标注 number/string | undefined,不使用 Partial,不改共享 VO
- FollowUpRecordForm 补全模板已绑定但缺失的字段
- RoleAssignMenuForm 修正 reactive 误用 .value,恢复菜单加载和重置逻辑
- BPMN 设计器组件保留不动

ts:check 748 → 590,无新增类型错误
master
YunaiV 2026-06-20 11:40:07 -07:00
parent 9c95bebc26
commit cb9400e93d
43 changed files with 491 additions and 402 deletions

View File

@ -47,10 +47,10 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
expression: undefined expression: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '名字不能为空', trigger: 'blur' }], name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],

View File

@ -86,13 +86,13 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
type: undefined, type: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
event: undefined, event: undefined as string | undefined,
valueType: undefined, valueType: undefined as string | undefined,
value: undefined value: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '名字不能为空', trigger: 'blur' }], name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],

View File

@ -144,6 +144,8 @@ import { getCurrentUserId } from '@/utils/auth'
import BusinessProductForm from './components/BusinessProductForm.vue' import BusinessProductForm from './components/BusinessProductForm.vue'
import { erpPriceMultiply, erpPriceInputFormatter } from '@/utils' import { erpPriceMultiply, erpPriceInputFormatter } from '@/utils'
type BusinessProduct = NonNullable<BusinessApi.BusinessVO['products']>[number]
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -151,19 +153,20 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const disabled = computed(() => formType.value === 'detail')
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
customerId: undefined, customerId: undefined as number | undefined,
ownerUserId: undefined, ownerUserId: undefined as number | undefined,
statusTypeId: undefined, statusTypeId: undefined as number | undefined,
dealTime: undefined, dealTime: undefined,
discountPercent: 0, discountPercent: 0,
totalProductPrice: undefined, totalProductPrice: undefined as number | undefined,
totalPrice: undefined, totalPrice: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
products: [], products: [] as BusinessProduct[],
contactId: undefined, contactId: undefined as number | undefined,
customerDefault: false customerDefault: false
}) })
const formRules = reactive({ const formRules = reactive({
@ -174,8 +177,8 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const userOptions = ref<UserApi.UserVO[]>([]) // const userOptions = ref<UserApi.UserVO[]>([]) //
const statusTypeList = ref([]) // const statusTypeList = ref<BusinessStatusApi.BusinessStatusTypeVO[]>([]) //
const customerList = ref([]) // const customerList = ref<CustomerApi.CustomerVO[]>([]) //
/** 子表的表单 */ /** 子表的表单 */
const subTabsName = ref('product') const subTabsName = ref('product')

View File

@ -39,16 +39,17 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // const formLoading = ref(false) //
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
statusId: undefined, statusId: undefined as number | undefined,
endStatus: undefined, endStatus: undefined as number | undefined,
status: undefined status: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
status: [{ required: true, message: '商机阶段不能为空', trigger: 'blur' }] status: [{ required: true, message: '商机阶段不能为空', trigger: 'blur' }]
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const statusList = ref([]) // type BusinessStatus = NonNullable<BusinessStatusApi.BusinessStatusTypeVO['statuses']>
const statusList = ref<BusinessStatus[]>([]) //
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (business: BusinessApi.BusinessVO) => { const open = async (business: BusinessApi.BusinessVO) => {
@ -81,10 +82,10 @@ const submitForm = async () => {
formLoading.value = true formLoading.value = true
try { try {
await BusinessApi.updateBusinessStatus({ await BusinessApi.updateBusinessStatus({
id: formData.value.id, id: formData.value.id!,
statusId: formData.value.status > 0 ? formData.value.status : undefined, statusId: formData.value.status! > 0 ? formData.value.status : undefined,
endStatus: formData.value.status < 0 ? -formData.value.status : undefined endStatus: formData.value.status! < 0 ? -formData.value.status! : undefined
}) } as BusinessApi.BusinessVO)
message.success('更新商机状态成功') message.success('更新商机状态成功')
dialogVisible.value = false dialogVisible.value = false
// //

View File

@ -98,18 +98,29 @@ import * as ProductApi from '@/api/crm/product'
import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils' import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
type BusinessProduct = {
id?: number
productId?: number
productUnit?: number
productNo?: string
productPrice?: number
businessPrice?: number
count?: number
totalPrice?: number
}
const props = defineProps<{ const props = defineProps<{
products: undefined products: BusinessProduct[]
disabled: false disabled: boolean
}>() }>()
const formLoading = ref(false) // const formLoading = ref(false) //
const formData = ref([]) const formData = ref<BusinessProduct[]>([])
const formRules = reactive({ const formRules = reactive({
productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }], productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
businessPrice: [{ required: true, message: '合同价格不能为空', trigger: 'blur' }], businessPrice: [{ required: true, message: '合同价格不能为空', trigger: 'blur' }],
count: [{ required: true, message: '产品数量不能为空', trigger: 'blur' }] count: [{ required: true, message: '产品数量不能为空', trigger: 'blur' }]
}) })
const formRef = ref([]) // Ref const formRef = ref() // Ref
const productList = ref<ProductApi.ProductVO[]>([]) // const productList = ref<ProductApi.ProductVO[]>([]) //
/** 初始化设置产品项 */ /** 初始化设置产品项 */
@ -160,7 +171,7 @@ const handleDelete = (index: number) => {
} }
/** 处理产品变更 */ /** 处理产品变更 */
const onChangeProduct = (productId, row) => { const onChangeProduct = (productId: number, row: BusinessProduct) => {
const product = productList.value.find((item) => item.id === productId) const product = productList.value.find((item) => item.id === productId)
if (product) { if (product) {
row.productUnit = product.unit row.productUnit = product.unit

View File

@ -188,24 +188,24 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const formType = ref('') // create - update - const formType = ref('') // create - update -
const areaList = ref([]) // const areaList = ref([]) //
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
customerId: undefined, customerId: undefined as number | undefined,
contactNextTime: undefined, contactNextTime: undefined,
ownerUserId: 0, ownerUserId: 0,
mobile: undefined, mobile: undefined as string | undefined,
telephone: undefined, telephone: undefined as string | undefined,
qq: undefined, qq: undefined as string | undefined,
wechat: undefined, wechat: undefined as string | undefined,
email: undefined, email: undefined as string | undefined,
areaId: undefined, areaId: undefined as number | undefined,
detailAddress: undefined, detailAddress: undefined as string | undefined,
sex: undefined, sex: undefined as number | undefined,
master: false, master: false,
post: undefined, post: undefined as string | undefined,
parentId: undefined, parentId: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
businessId: undefined, businessId: undefined as number | undefined,
customerDefault: false customerDefault: false
}) })
const formRules = reactive({ const formRules = reactive({

View File

@ -203,6 +203,8 @@ import { erpPriceMultiply, erpPriceInputFormatter } from '@/utils'
import { getCurrentUserId } from '@/utils/auth' import { getCurrentUserId } from '@/utils/auth'
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue' import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
type ContractProduct = NonNullable<ContractApi.ContractVO['products']>[number]
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -210,22 +212,24 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const disabled = computed(() => formType.value === 'detail')
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
no: undefined, no: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
customerId: undefined, customerId: undefined as number | undefined,
businessId: undefined, businessId: undefined as number | undefined,
orderDate: undefined, orderDate: undefined,
startTime: undefined, startTime: undefined,
endTime: undefined, endTime: undefined,
signUserId: undefined, signUserId: undefined as number | undefined,
signContactId: undefined, signContactId: undefined as number | undefined,
ownerUserId: undefined, ownerUserId: undefined as number | undefined,
discountPercent: 0, discountPercent: 0,
totalProductPrice: undefined, totalProductPrice: undefined as number | undefined,
remark: undefined, totalPrice: undefined as number | undefined,
products: [] remark: undefined as string | undefined,
products: [] as ContractProduct[]
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '合同名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '合同名称不能为空', trigger: 'blur' }],
@ -235,7 +239,7 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const userOptions = ref<UserApi.UserVO[]>([]) // const userOptions = ref<UserApi.UserVO[]>([]) //
const customerList = ref([]) // const customerList = ref<CustomerApi.CustomerVO[]>([]) //
const businessList = ref<BusinessApi.BusinessVO[]>([]) const businessList = ref<BusinessApi.BusinessVO[]>([])
const contactList = ref<ContactApi.ContactVO[]>([]) const contactList = ref<ContactApi.ContactVO[]>([])
@ -336,6 +340,7 @@ const resetForm = () => {
ownerUserId: undefined, ownerUserId: undefined,
discountPercent: 0, discountPercent: 0,
totalProductPrice: undefined, totalProductPrice: undefined,
totalPrice: undefined,
remark: undefined, remark: undefined,
products: [] products: []
} }
@ -355,7 +360,7 @@ const handleBusinessChange = async (businessId: number) => {
business.products.forEach((item) => { business.products.forEach((item) => {
item.contractPrice = item.businessPrice item.contractPrice = item.businessPrice
}) })
formData.value.products = business.products formData.value.products = business.products as unknown as ContractProduct[]
} }
/** 动态获取客户联系人 */ /** 动态获取客户联系人 */

View File

@ -98,18 +98,29 @@ import * as ProductApi from '@/api/crm/product'
import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils' import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
type ContractProduct = {
id?: number
productId?: number
productUnit?: number
productNo?: string
productPrice?: number
contractPrice?: number
count?: number
totalPrice?: number
}
const props = defineProps<{ const props = defineProps<{
products: undefined products: ContractProduct[]
disabled: false disabled: boolean
}>() }>()
const formLoading = ref(false) // const formLoading = ref(false) //
const formData = ref([]) const formData = ref<ContractProduct[]>([])
const formRules = reactive({ const formRules = reactive({
productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }], productId: [{ required: true, message: '产品不能为空', trigger: 'blur' }],
contractPrice: [{ required: true, message: '合同价格不能为空', trigger: 'blur' }], contractPrice: [{ required: true, message: '合同价格不能为空', trigger: 'blur' }],
count: [{ required: true, message: '产品数量不能为空', trigger: 'blur' }] count: [{ required: true, message: '产品数量不能为空', trigger: 'blur' }]
}) })
const formRef = ref([]) // Ref const formRef = ref() // Ref
const productList = ref<ProductApi.ProductVO[]>([]) // const productList = ref<ProductApi.ProductVO[]>([]) //
/** 初始化设置产品项 */ /** 初始化设置产品项 */
@ -160,7 +171,7 @@ const handleDelete = (index: number) => {
} }
/** 处理产品变更 */ /** 处理产品变更 */
const onChangeProduct = (productId, row) => { const onChangeProduct = (productId: number, row: ContractProduct) => {
const product = productList.value.find((item) => item.id === productId) const product = productList.value.find((item) => item.id === productId)
if (product) { if (product) {
row.productUnit = product.unit row.productUnit = product.unit

View File

@ -34,8 +34,8 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const userOptions = ref<UserApi.UserVO[]>([]) // const userOptions = ref<UserApi.UserVO[]>([]) //
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
ownerUserId: undefined ownerUserId: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }] ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }]
@ -62,7 +62,7 @@ const submitForm = async () => {
// //
formLoading.value = true formLoading.value = true
try { try {
await CustomerApi.distributeCustomer([formData.value.id], formData.value.ownerUserId) await CustomerApi.distributeCustomer([formData.value.id!], formData.value.ownerUserId!)
message.success('分配客户成功') message.success('分配客户成功')
dialogVisible.value = false dialogVisible.value = false
// //

View File

@ -75,12 +75,12 @@
<!-- 弹窗 --> <!-- 弹窗 -->
<ContactListModal <ContactListModal
ref="contactTableSelectRef" ref="contactTableSelectRef"
:customer-id="formData.bizId" :customer-id="customerId"
@success="handleAddContact" @success="handleAddContact"
/> />
<BusinessListModal <BusinessListModal
ref="businessTableSelectRef" ref="businessTableSelectRef"
:customer-id="formData.bizId" :customer-id="customerId"
@success="handleAddBusiness" @success="handleAddBusiness"
/> />
</template> </template>
@ -95,6 +95,9 @@ import * as BusinessApi from '@/api/crm/business'
import ContactListModal from '@/views/crm/contact/components/ContactListModal.vue' import ContactListModal from '@/views/crm/contact/components/ContactListModal.vue'
import * as ContactApi from '@/api/crm/contact' import * as ContactApi from '@/api/crm/contact'
type FollowUpBusiness = FollowUpRecordVO['businesses'][number]
type FollowUpContact = FollowUpRecordVO['contacts'][number]
defineOptions({ name: 'FollowUpRecordForm' }) defineOptions({ name: 'FollowUpRecordForm' })
const { t } = useI18n() // const { t } = useI18n() //
@ -103,10 +106,15 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formData = ref({ const formData = ref({
bizType: undefined, bizType: undefined as number | undefined,
bizId: undefined, bizId: undefined as number | undefined,
businesses: [], type: undefined as number | undefined,
contacts: [] content: undefined as string | undefined,
picUrls: [] as string[],
fileUrls: [] as string[],
nextTime: undefined,
businesses: [] as FollowUpBusiness[],
contacts: [] as FollowUpContact[]
}) })
const formRules = reactive({ const formRules = reactive({
type: [{ required: true, message: '跟进类型不能为空', trigger: 'change' }], type: [{ required: true, message: '跟进类型不能为空', trigger: 'change' }],
@ -115,6 +123,7 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const customerId = computed(() => formData.value.bizId ?? 0)
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (bizType: number, bizId: number) => { const open = async (bizType: number, bizId: number) => {
@ -180,6 +189,11 @@ const resetForm = () => {
formData.value = { formData.value = {
bizId: undefined, bizId: undefined,
bizType: undefined, bizType: undefined,
type: undefined,
content: undefined,
picUrls: [],
fileUrls: [],
nextTime: undefined,
businesses: [], businesses: [],
contacts: [] contacts: []
} }

View File

@ -21,10 +21,19 @@
<script lang="ts" setup> <script lang="ts" setup>
import { erpPriceTableColumnFormatter } from '@/utils' import { erpPriceTableColumnFormatter } from '@/utils'
type FollowUpBusiness = {
id: number
name: string
totalPrice?: number
customerName?: string
statusTypeName?: string
statusName?: string
}
const props = defineProps<{ const props = defineProps<{
businesses: undefined businesses: FollowUpBusiness[]
}>() }>()
const formData = ref([]) const formData = ref<FollowUpBusiness[]>([])
/** 初始化商机列表 */ /** 初始化商机列表 */
watch( watch(

View File

@ -26,10 +26,19 @@
<script lang="ts" setup> <script lang="ts" setup>
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
type FollowUpContact = {
id: number
name: string
mobile?: string
post?: string
parentName?: string
master?: boolean
}
const props = defineProps<{ const props = defineProps<{
contacts: undefined contacts: FollowUpContact[]
}>() }>()
const formData = ref([]) const formData = ref<FollowUpContact[]>([])
/** 初始化联系人列表 */ /** 初始化联系人列表 */
watch( watch(
@ -44,4 +53,10 @@ watch(
const handleDelete = (index: number) => { const handleDelete = (index: number) => {
formData.value.splice(index, 1) formData.value.splice(index, 1)
} }
/** 打开联系人详情 */
const { push } = useRouter()
const openDetail = (id: number) => {
push({ name: 'CrmContactDetail', params: { id } })
}
</script> </script>

View File

@ -163,18 +163,18 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
financeUserId: undefined, financeUserId: undefined as number | undefined,
paymentTime: undefined, paymentTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
totalPrice: 0, totalPrice: 0,
discountPrice: 0, discountPrice: 0,
paymentPrice: 0, paymentPrice: 0,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }], supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
@ -260,18 +260,18 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
financeUserId: undefined, financeUserId: undefined as number | undefined,
paymentTime: undefined, paymentTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
totalPrice: 0, totalPrice: 0,
discountPrice: 0, discountPrice: 0,
paymentPrice: 0, paymentPrice: 0,
items: [], items: [],
no: undefined no: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -163,18 +163,18 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
financeUserId: undefined, financeUserId: undefined as number | undefined,
receiptTime: undefined, receiptTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
totalPrice: 0, totalPrice: 0,
discountPrice: 0, discountPrice: 0,
receiptPrice: 0, receiptPrice: 0,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }], customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
@ -260,18 +260,18 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
financeUserId: undefined, financeUserId: undefined as number | undefined,
receiptTime: undefined, receiptTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
totalPrice: 0, totalPrice: 0,
discountPrice: 0, discountPrice: 0,
receiptPrice: 0, receiptPrice: 0,
items: [], items: [],
no: undefined no: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -148,19 +148,19 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
barCode: undefined, barCode: undefined as string | undefined,
categoryId: undefined, categoryId: undefined as number | undefined,
unitId: undefined, unitId: undefined as number | undefined,
status: undefined, status: undefined as number | undefined,
standard: undefined, standard: undefined as string | undefined,
remark: undefined, remark: undefined as string | undefined,
expiryDay: undefined, expiryDay: undefined as number | undefined,
weight: undefined, weight: undefined as number | undefined,
purchasePrice: undefined, purchasePrice: undefined as number | undefined,
salePrice: undefined, salePrice: undefined as number | undefined,
minPrice: undefined minPrice: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],

View File

@ -44,9 +44,9 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined status: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '单位名字不能为空', trigger: 'blur' }], name: [{ required: true, message: '单位名字不能为空', trigger: 'blur' }],

View File

@ -182,19 +182,20 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderId: undefined as number | undefined,
inTime: undefined, inTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
orderNo: undefined, orderNo: undefined as string | undefined,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }], supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
@ -308,17 +309,20 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderId: undefined as number | undefined,
inTime: undefined, inTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
items: [] orderNo: undefined,
items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -136,7 +136,7 @@ const queryParams = reactive({
productId: undefined, productId: undefined,
inTime: [], inTime: [],
paymentEnable: true, paymentEnable: true,
supplierId: undefined supplierId: undefined as number | undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const productList = ref<ProductVO[]>([]) // const productList = ref<ProductVO[]>([]) //

View File

@ -153,18 +153,18 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderTime: undefined, orderTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
depositPrice: 0, depositPrice: 0,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }], supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
@ -252,17 +252,18 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderTime: undefined, orderTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
depositPrice: 0, depositPrice: 0,
items: [] items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -186,19 +186,20 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderId: undefined as number | undefined,
returnTime: undefined, returnTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
orderNo: undefined, orderNo: undefined as string | undefined,
items: [], items: [],
no: undefined // 退 no: undefined as string | undefined // 退
}) })
const formRules = reactive({ const formRules = reactive({
supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }], supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
@ -311,17 +312,20 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
supplierId: undefined, supplierId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
orderId: undefined as number | undefined,
returnTime: undefined, returnTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
items: [] orderNo: undefined,
items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -137,7 +137,7 @@ const queryParams = reactive({
productId: undefined, productId: undefined,
returnTime: [], returnTime: [],
refundEnable: true, refundEnable: true,
supplierId: undefined supplierId: undefined as number | undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const productList = ref<ProductVO[]>([]) // const productList = ref<ProductVO[]>([]) //

View File

@ -121,21 +121,21 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
contact: undefined, contact: undefined as string | undefined,
mobile: undefined, mobile: undefined as string | undefined,
telephone: undefined, telephone: undefined as string | undefined,
email: undefined, email: undefined as string | undefined,
fax: undefined, fax: undefined as string | undefined,
remark: undefined, remark: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
sort: undefined, sort: undefined as number | undefined,
taxNo: undefined, taxNo: undefined as string | undefined,
taxPercent: undefined, taxPercent: undefined as number | undefined,
bankName: undefined, bankName: undefined as string | undefined,
bankAccount: undefined, bankAccount: undefined as string | undefined,
bankAddress: undefined bankAddress: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],

View File

@ -121,21 +121,21 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
contact: undefined, contact: undefined as string | undefined,
mobile: undefined, mobile: undefined as string | undefined,
telephone: undefined, telephone: undefined as string | undefined,
email: undefined, email: undefined as string | undefined,
fax: undefined, fax: undefined as string | undefined,
remark: undefined, remark: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
sort: undefined, sort: undefined as number | undefined,
taxNo: undefined, taxNo: undefined as string | undefined,
taxPercent: undefined, taxPercent: undefined as number | undefined,
bankName: undefined, bankName: undefined as string | undefined,
bankAccount: undefined, bankAccount: undefined as string | undefined,
bankAddress: undefined bankAddress: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '客户名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '客户名称不能为空', trigger: 'blur' }],

View File

@ -171,19 +171,19 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderTime: undefined, orderTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
depositPrice: 0, depositPrice: 0,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }], customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
@ -271,18 +271,19 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderTime: undefined, orderTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
depositPrice: 0, depositPrice: 0,
items: [] items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -197,20 +197,21 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderId: undefined as number | undefined,
outTime: undefined, outTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
orderNo: undefined, orderNo: undefined as string | undefined,
items: [], items: [],
no: undefined // no: undefined as string | undefined //
}) })
const formRules = reactive({ const formRules = reactive({
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }], customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
@ -325,18 +326,21 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderId: undefined as number | undefined,
outTime: undefined, outTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
items: [] orderNo: undefined,
items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -136,7 +136,7 @@ const queryParams = reactive({
productId: undefined, productId: undefined,
outTime: [], outTime: [],
receiptEnable: true, receiptEnable: true,
customerId: undefined customerId: undefined as number | undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const productList = ref<ProductVO[]>([]) // const productList = ref<ProductVO[]>([]) //

View File

@ -197,20 +197,21 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - detail - const formType = ref('') // create - update - detail -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderId: undefined as number | undefined,
returnTime: undefined, returnTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: '', fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
orderNo: undefined, orderNo: undefined as string | undefined,
items: [], items: [],
no: undefined // 退 no: undefined as string | undefined // 退
}) })
const formRules = reactive({ const formRules = reactive({
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }], customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
@ -323,18 +324,21 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
customerId: undefined, customerId: undefined as number | undefined,
accountId: undefined, accountId: undefined as number | undefined,
saleUserId: undefined, saleUserId: undefined as number | undefined,
orderId: undefined as number | undefined,
returnTime: undefined, returnTime: undefined,
remark: undefined, remark: undefined as string | undefined,
fileUrl: undefined, fileUrl: '',
discountPercent: 0, discountPercent: 0,
discountPrice: 0, discountPrice: 0,
totalPrice: 0, totalPrice: 0,
otherPrice: 0, otherPrice: 0,
items: [] orderNo: undefined,
items: [],
no: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -136,7 +136,7 @@ const queryParams = reactive({
productId: undefined, productId: undefined,
returnTime: [], returnTime: [],
refundEnable: true, refundEnable: true,
customerId: undefined customerId: undefined as number | undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const productList = ref<ProductVO[]>([]) // const productList = ref<ProductVO[]>([]) //

View File

@ -80,15 +80,15 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
address: undefined, address: undefined as string | undefined,
sort: undefined, sort: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
principal: undefined, principal: undefined as string | undefined,
warehousePrice: undefined, warehousePrice: undefined as number | undefined,
truckagePrice: undefined, truckagePrice: undefined as number | undefined,
status: undefined status: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],

View File

@ -117,7 +117,7 @@ const queryParams = reactive({
pageSize: 10, pageSize: 10,
createTime: [], createTime: [],
status: undefined, status: undefined,
userIds: undefined userIds: undefined as number | undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //

View File

@ -71,13 +71,13 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
parentId: undefined, parentId: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
sort: 0, sort: 0,
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
code: [{ required: true, message: '设备类型编码不能为空', trigger: 'blur' }], code: [{ required: true, message: '设备类型编码不能为空', trigger: 'blur' }],
@ -139,13 +139,13 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
parentId: undefined, parentId: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
sort: 0, sort: 0,
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
remark: undefined remark: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -104,10 +104,10 @@ const dialogTitle = computed(() => {
}) })
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
planId: undefined, planId: undefined as number | undefined,
machineryId: undefined, machineryId: undefined as number | undefined,
maintenTime: undefined, maintenTime: undefined,
userId: undefined, userId: undefined as number | undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
remark: '' remark: ''
}) })
@ -194,12 +194,12 @@ const handleSubmit = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
planId: undefined, planId: undefined as number | undefined,
machineryId: undefined, machineryId: undefined as number | undefined,
maintenTime: undefined, maintenTime: undefined,
userId: undefined, userId: undefined as number | undefined,
status: undefined, status: undefined as number | undefined,
remark: '' remark: ''
} }
formRef.value?.resetFields() formRef.value?.resetFields()

View File

@ -136,7 +136,7 @@
</el-col> </el-col>
<el-col :span="8" v-if="formType !== 'create'"> <el-col :span="8" v-if="formType !== 'create'">
<el-form-item label="工单状态" prop="status"> <el-form-item label="工单状态" prop="status">
<dict-tag :type="DICT_TYPE.MES_PRO_WORK_ORDER_STATUS" :value="formData.status" /> <dict-tag :type="DICT_TYPE.MES_PRO_WORK_ORDER_STATUS" :value="formData.status ?? ''" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -250,19 +250,19 @@ const activeTab = ref('bom') // 当前选中的 Tab
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
parentId: undefined as number | undefined, parentId: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
type: undefined, type: undefined,
orderSourceType: undefined, orderSourceType: undefined,
orderSourceCode: undefined, orderSourceCode: undefined as string | undefined,
productId: undefined, productId: undefined as number | undefined,
quantity: undefined, quantity: undefined,
clientId: undefined, clientId: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
requestDate: undefined, requestDate: undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
code: [{ required: true, message: '工单编码不能为空', trigger: 'blur' }], code: [{ required: true, message: '工单编码不能为空', trigger: 'blur' }],
@ -431,21 +431,21 @@ const handleFinish = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
parentId: undefined, parentId: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
type: undefined, type: undefined,
orderSourceType: undefined, orderSourceType: undefined,
orderSourceCode: undefined, orderSourceCode: undefined as string | undefined,
productId: undefined, productId: undefined as number | undefined,
quantity: undefined, quantity: undefined,
clientId: undefined, clientId: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
requestDate: undefined, requestDate: undefined,
status: undefined, status: undefined as number | undefined,
remark: undefined remark: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -331,30 +331,30 @@ const isFromPendingTask = computed(
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
type: undefined, type: undefined,
templateId: undefined, templateId: undefined as number | undefined,
sourceDocType: undefined, sourceDocType: undefined,
sourceDocId: undefined, sourceDocId: undefined as number | undefined,
sourceLineId: undefined, sourceLineId: undefined as number | undefined,
sourceDocCode: undefined, sourceDocCode: undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
taskId: undefined, taskId: undefined as number | undefined,
workstationId: undefined, workstationId: undefined as number | undefined,
processId: undefined, processId: undefined as number | undefined,
itemId: undefined, itemId: undefined as number | undefined,
checkQuantity: undefined, checkQuantity: undefined,
qualifiedQuantity: undefined, qualifiedQuantity: undefined,
unqualifiedQuantity: undefined, unqualifiedQuantity: undefined as number | undefined,
laborScrapQuantity: 0, laborScrapQuantity: 0,
materialScrapQuantity: 0, materialScrapQuantity: 0,
otherScrapQuantity: 0, otherScrapQuantity: 0,
checkResult: undefined, checkResult: undefined,
inspectDate: undefined, inspectDate: undefined,
inspectorUserId: undefined, inspectorUserId: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
// //
criticalRate: 0, criticalRate: 0,
majorRate: 0, majorRate: 0,
@ -473,21 +473,21 @@ const handleFinish = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
type: undefined, type: undefined,
templateId: undefined, templateId: undefined as number | undefined,
sourceDocType: undefined, sourceDocType: undefined,
sourceDocId: undefined, sourceDocId: undefined as number | undefined,
sourceLineId: undefined, sourceLineId: undefined as number | undefined,
sourceDocCode: undefined, sourceDocCode: undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
taskId: undefined, taskId: undefined as number | undefined,
workstationId: undefined, workstationId: undefined as number | undefined,
processId: undefined, processId: undefined as number | undefined,
itemId: undefined, itemId: undefined as number | undefined,
checkQuantity: undefined, checkQuantity: undefined,
qualifiedQuantity: undefined, qualifiedQuantity: undefined,
unqualifiedQuantity: undefined, unqualifiedQuantity: undefined,
@ -496,8 +496,8 @@ const resetForm = () => {
otherScrapQuantity: 0, otherScrapQuantity: 0,
checkResult: undefined, checkResult: undefined,
inspectDate: undefined, inspectDate: undefined,
inspectorUserId: undefined, inspectorUserId: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
criticalRate: 0, criticalRate: 0,
majorRate: 0, majorRate: 0,
minorRate: 0, minorRate: 0,

View File

@ -174,16 +174,16 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // const formLoading = ref(false) //
const lineFormType = ref('') // const lineFormType = ref('') //
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
issueId: undefined as number | undefined, issueId: undefined as number | undefined,
materialStockId: undefined as number | undefined, materialStockId: undefined as number | undefined,
itemId: undefined, itemId: undefined as number | undefined,
quantity: undefined, quantity: undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
warehouseId: undefined, warehouseId: undefined as number | undefined,
locationId: undefined, locationId: undefined as number | undefined,
areaId: undefined, areaId: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
quantityMax: undefined as number | undefined quantityMax: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
@ -253,16 +253,16 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
issueId: undefined, issueId: undefined,
materialStockId: undefined, materialStockId: undefined,
itemId: undefined, itemId: undefined as number | undefined,
quantity: undefined, quantity: undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
warehouseId: undefined, warehouseId: undefined as number | undefined,
locationId: undefined, locationId: undefined as number | undefined,
areaId: undefined, areaId: undefined as number | undefined,
remark: undefined, remark: undefined as string | undefined,
quantityMax: undefined quantityMax: undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()

View File

@ -141,13 +141,13 @@ const dialogTitle = computed(() => {
}) })
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
issueDate: undefined, issueDate: undefined,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
code: [{ required: true, message: '发料单编号不能为空', trigger: 'blur' }], code: [{ required: true, message: '发料单编号不能为空', trigger: 'blur' }],
@ -276,14 +276,14 @@ const handleFinish = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
issueDate: undefined, issueDate: undefined,
remark: undefined remark: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -140,13 +140,13 @@ const dialogTitle = computed(() => {
}) })
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
receiptDate: undefined, receiptDate: undefined,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
code: [{ required: true, message: '入库单编号不能为空', trigger: 'blur' }], code: [{ required: true, message: '入库单编号不能为空', trigger: 'blur' }],
@ -269,14 +269,14 @@ const handleFinish = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
vendorId: undefined, vendorId: undefined as number | undefined,
workOrderId: undefined, workOrderId: undefined as number | undefined,
receiptDate: undefined, receiptDate: undefined,
remark: undefined remark: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -213,19 +213,19 @@ const dialogTitle = computed(() => {
}) })
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined as number | undefined, status: undefined as number | undefined,
clientId: undefined, clientId: undefined as number | undefined,
noticeId: undefined, noticeId: undefined as number | undefined,
salesOrderCode: undefined, salesOrderCode: undefined as string | undefined,
salesDate: undefined, salesDate: undefined,
contactName: undefined, contactName: undefined as string | undefined,
contactTelephone: undefined, contactTelephone: undefined as string | undefined,
contactAddress: undefined, contactAddress: undefined as string | undefined,
carrier: undefined, carrier: undefined as string | undefined,
shippingNumber: undefined, shippingNumber: undefined as string | undefined,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
code: [{ required: true, message: '出库单编号不能为空', trigger: 'blur' }], code: [{ required: true, message: '出库单编号不能为空', trigger: 'blur' }],
@ -380,20 +380,20 @@ const handleFinish = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
code: undefined, code: undefined as string | undefined,
name: undefined, name: undefined as string | undefined,
status: undefined, status: undefined as number | undefined,
clientId: undefined, clientId: undefined as number | undefined,
noticeId: undefined, noticeId: undefined as number | undefined,
salesOrderCode: undefined, salesOrderCode: undefined as string | undefined,
salesDate: undefined, salesDate: undefined,
contactName: undefined, contactName: undefined as string | undefined,
contactTelephone: undefined, contactTelephone: undefined as string | undefined,
contactAddress: undefined, contactAddress: undefined as string | undefined,
carrier: undefined, carrier: undefined as string | undefined,
shippingNumber: undefined, shippingNumber: undefined as string | undefined,
remark: undefined remark: undefined as string | undefined
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -212,14 +212,14 @@ const formData = ref({
unitMeasureName: undefined, unitMeasureName: undefined,
quantity: undefined as number | undefined, quantity: undefined as number | undefined,
batchId: undefined as number | undefined, batchId: undefined as number | undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
fromWarehouseId: undefined as number | undefined, fromWarehouseId: undefined as number | undefined,
fromWarehouseName: undefined, fromWarehouseName: undefined,
fromLocationId: undefined as number | undefined, fromLocationId: undefined as number | undefined,
fromLocationName: undefined, fromLocationName: undefined,
fromAreaId: undefined as number | undefined, fromAreaId: undefined as number | undefined,
fromAreaName: undefined, fromAreaName: undefined,
remark: undefined remark: undefined as string | undefined
}) })
const formRules = reactive({ const formRules = reactive({
materialStockId: [{ required: true, message: '请选择库存', trigger: 'change' }], materialStockId: [{ required: true, message: '请选择库存', trigger: 'change' }],
@ -304,24 +304,24 @@ const submitForm = async () => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined as number | undefined,
transferId: undefined, transferId: undefined,
materialStockId: undefined, materialStockId: undefined,
itemId: undefined, itemId: undefined as number | undefined,
itemCode: undefined, itemCode: undefined,
itemName: undefined, itemName: undefined,
specification: undefined, specification: undefined,
unitMeasureName: undefined, unitMeasureName: undefined,
quantity: undefined, quantity: undefined,
batchId: undefined, batchId: undefined,
batchCode: undefined, batchCode: undefined as string | undefined,
fromWarehouseId: undefined, fromWarehouseId: undefined,
fromWarehouseName: undefined, fromWarehouseName: undefined,
fromLocationId: undefined, fromLocationId: undefined,
fromLocationName: undefined, fromLocationName: undefined,
fromAreaId: undefined, fromAreaId: undefined,
fromAreaName: undefined, fromAreaName: undefined,
remark: undefined remark: undefined as string | undefined
} }
quantityMax.value = undefined quantityMax.value = undefined
formRef.value?.resetFields() formRef.value?.resetFields()

View File

@ -46,11 +46,11 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData = ref({
id: undefined, id: undefined as number | undefined,
name: undefined, name: undefined as string | undefined,
payPrice: undefined, payPrice: undefined as number | undefined,
bonusPrice: undefined, bonusPrice: undefined as number | undefined,
status: undefined status: undefined as number | undefined
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '套餐名不能为空', trigger: 'blur' }], name: [{ required: true, message: '套餐名不能为空', trigger: 'blur' }],
@ -71,8 +71,8 @@ const open = async (type: string, id?: number) => {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await WalletRechargePackageApi.getWalletRechargePackage(id) formData.value = await WalletRechargePackageApi.getWalletRechargePackage(id)
formData.value.payPrice = fenToYuan(formData.value.payPrice) formData.value.payPrice = Number(fenToYuan(formData.value.payPrice!))
formData.value.bonusPrice = fenToYuan(formData.value.bonusPrice) formData.value.bonusPrice = Number(fenToYuan(formData.value.bonusPrice!))
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
@ -90,9 +90,11 @@ const submitForm = async () => {
// //
formLoading.value = true formLoading.value = true
try { try {
const data = { ...formData.value } const data = {
data.payPrice = yuanToFen(data.payPrice) ...formData.value,
data.bonusPrice = yuanToFen(data.bonusPrice) payPrice: yuanToFen(formData.value.payPrice!),
bonusPrice: yuanToFen(formData.value.bonusPrice!)
} as WalletRechargePackageApi.WalletRechargePackageVO
if (formType.value === 'create') { if (formType.value === 'create') {
await WalletRechargePackageApi.createWalletRechargePackage(data) await WalletRechargePackageApi.createWalletRechargePackage(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))

View File

@ -58,7 +58,7 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formData = reactive({ const formData = reactive({
id: undefined, id: undefined as number | undefined,
name: '', name: '',
code: '', code: '',
menuIds: [] menuIds: []
@ -81,9 +81,9 @@ const open = async (row: RoleApi.RoleVO) => {
formData.code = row.code formData.code = row.code
formLoading.value = true formLoading.value = true
try { try {
formData.value.menuIds = await PermissionApi.getRoleMenuList(row.id) formData.menuIds = await PermissionApi.getRoleMenuList(row.id)
// //
formData.value.menuIds.forEach((menuId: number) => { formData.menuIds.forEach((menuId: number) => {
treeRef.value.setChecked(menuId, true, false) treeRef.value.setChecked(menuId, true, false)
}) })
} finally { } finally {
@ -103,7 +103,7 @@ const submitForm = async () => {
formLoading.value = true formLoading.value = true
try { try {
const data = { const data = {
roleId: formData.id, roleId: formData.id!,
menuIds: [ menuIds: [
...(treeRef.value.getCheckedKeys(false) as unknown as Array<number>), // ...(treeRef.value.getCheckedKeys(false) as unknown as Array<number>), //
...(treeRef.value.getHalfCheckedKeys() as unknown as Array<number>) // ...(treeRef.value.getHalfCheckedKeys() as unknown as Array<number>) //
@ -125,12 +125,12 @@ const resetForm = () => {
treeNodeAll.value = false treeNodeAll.value = false
menuExpand.value = false menuExpand.value = false
// //
formData.value = { Object.assign(formData, {
id: undefined, id: undefined,
name: '', name: '',
code: '', code: '',
menuIds: [] menuIds: []
} })
treeRef.value?.setCheckedNodes([]) treeRef.value?.setCheckedNodes([])
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -78,10 +78,10 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formData = reactive({ const formData = reactive({
id: undefined, id: undefined as number | undefined,
name: '', name: '',
code: '', code: '',
dataScope: undefined, dataScope: undefined as number | undefined,
dataScopeDeptIds: [] dataScopeDeptIds: []
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -116,12 +116,12 @@ const submitForm = async () => {
formLoading.value = true formLoading.value = true
try { try {
const data = { const data = {
roleId: formData.id, roleId: formData.id!,
dataScope: formData.dataScope, dataScope: formData.dataScope!,
dataScopeDeptIds: dataScopeDeptIds:
formData.dataScope !== SystemDataScopeEnum.DEPT_CUSTOM formData.dataScope !== SystemDataScopeEnum.DEPT_CUSTOM
? [] ? []
: treeRef.value.getCheckedKeys(false) : (treeRef.value.getCheckedKeys(false) as number[])
} }
await PermissionApi.assignRoleDataScope(data) await PermissionApi.assignRoleDataScope(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))
@ -140,13 +140,13 @@ const resetForm = () => {
deptExpand.value = true deptExpand.value = true
checkStrictly.value = true checkStrictly.value = true
// //
formData.value = { Object.assign(formData, {
id: undefined, id: undefined,
name: '', name: '',
code: '', code: '',
dataScope: undefined, dataScope: undefined,
dataScopeDeptIds: [] dataScopeDeptIds: []
} })
treeRef.value?.setCheckedNodes([]) treeRef.value?.setCheckedNodes([])
formRef.value?.resetFields() formRef.value?.resetFields()
} }

View File

@ -235,7 +235,7 @@ const queryParams = reactive({
username: undefined, username: undefined,
mobile: undefined, mobile: undefined,
status: undefined, status: undefined,
deptId: undefined, deptId: undefined as number | undefined,
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //