CRM:完善商机的列表

(cherry picked from commit a2443e48f7)
This commit is contained in:
YunaiV
2024-02-21 18:44:54 +08:00
committed by shizhong
parent 2ec599d6c0
commit 8c22dbfbdc
7 changed files with 452 additions and 220 deletions

View File

@ -10,7 +10,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="产品名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入产品名称"/>
<el-input v-model="formData.name" placeholder="请输入产品名称" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -57,7 +57,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="产品编码" prop="no">
<el-input v-model="formData.no" placeholder="请输入产品编码"/>
<el-input v-model="formData.no" placeholder="请输入产品编码" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -74,7 +74,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="产品描述" prop="description">
<el-input v-model="formData.description" placeholder="请输入产品描述"/>
<el-input v-model="formData.description" placeholder="请输入产品描述" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -98,17 +98,16 @@
</Dialog>
</template>
<script setup lang="ts">
import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as ProductApi from '@/api/crm/product'
import * as ProductCategoryApi from '@/api/crm/product/productCategory'
import {defaultProps, handleTree} from '@/utils/tree'
import {getSimpleUserList, UserVO} from '@/api/system/user'
import {useUserStore} from '@/store/modules/user'
import {fenToYuan, yuanToFen} from '@/utils'
import { defaultProps, handleTree } from '@/utils/tree'
import { getSimpleUserList, UserVO } from '@/api/system/user'
import { useUserStore } from '@/store/modules/user'
defineOptions({name: 'CrmProductForm'})
defineOptions({ name: 'CrmProductForm' })
const {t} = useI18n() // 国际化
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // 弹窗的是否展示
@ -128,12 +127,12 @@ const formData = ref({
ownerUserId: -1
})
const formRules = reactive({
name: [{required: true, message: '产品名称不能为空', trigger: 'blur'}],
no: [{required: true, message: '产品编码不能为空', trigger: 'blur'}],
status: [{required: true, message: '状态不能为空', trigger: 'change'}],
categoryId: [{required: true, message: '产品分类ID不能为空', trigger: 'blur'}],
ownerUserId: [{required: true, message: '负责人不能为空', trigger: 'blur'}],
price: [{required: true, message: '价格不能为空', trigger: 'blur'}]
name: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
no: [{ required: true, message: '产品编码不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
categoryId: [{ required: true, message: '产品分类ID不能为空', trigger: 'blur' }],
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }]
})
const formRef = ref() // 表单 Ref
@ -149,7 +148,6 @@ const open = async (type: string, id?: number) => {
formLoading.value = true
try {
formData.value = await ProductApi.getProduct(id)
formData.value.price = Number(fenToYuan(formData.value.price))
} finally {
formLoading.value = false
}
@ -157,7 +155,7 @@ const open = async (type: string, id?: number) => {
formData.value.ownerUserId = userId
}
}
defineExpose({open}) // 提供 open 方法,用于打开弹窗
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
@ -169,10 +167,7 @@ const submitForm = async () => {
// 提交请求
formLoading.value = true
try {
const data = {
...formData.value,
price: yuanToFen(formData.value.price)
} as unknown as ProductApi.ProductVO
const data = formData.value as unknown as ProductApi.ProductVO
if (formType.value === 'create') {
await ProductApi.createProduct(data)
message.success(t('common.createSuccess'))