CRM:合同的 code review

This commit is contained in:
YunaiV
2024-02-04 09:48:44 +08:00
parent fffc9aed63
commit 3ad68c3227
4 changed files with 17 additions and 11 deletions

View File

@ -192,7 +192,7 @@ const formRules = reactive({
const formRef = ref() // 表单 Ref
const BPMLModelRef = ref<InstanceType<typeof BPMLModel>>() // TODO @puhui999这个变量不太对另外可以不做 bpm model 窗口,而是可以点击跳转到工作流详情里;
// 监听合同品变化,计算合同品总价
// 监听合同品变化,计算合同品总价
watch(
() => formData.value.productItems,
(val) => {

View File

@ -42,7 +42,7 @@
</el-table>
<!-- table 选择表单 -->
<TableSelectForm ref="tableSelectFormRef" v-model="multipleSelection" title="选择品">
<TableSelectForm ref="tableSelectFormRef" v-model="multipleSelection" title="选择品">
<el-table-column align="center" label="产品名称" prop="name" width="160" />
<el-table-column align="center" label="产品类型" prop="categoryName" width="160" />
<el-table-column align="center" label="产品单位" prop="unit">
@ -76,7 +76,7 @@ const emits = defineEmits<{
(e: 'update:modelValue', v: any[]): void
}>()
const list = ref<ProductApi.ProductExpandVO[]>([]) // 列表数量
const list = ref<ProductApi.ProductExpandVO[]>([]) // 已添加的产品列表
const multipleSelection = ref<ProductApi.ProductExpandVO[]>([]) // 多选
/** 处理删除 */
@ -100,8 +100,9 @@ const getTotalPrice = computed(() => (row: ProductApi.ProductExpandVO) => {
row.totalPrice = isNaN(totalPrice) ? 0 : yuanToFen(totalPrice)
return isNaN(totalPrice) ? 0 : totalPrice.toFixed(2)
})
const isSetListValue = ref(false) // 判断是否已经给 list 赋值过,用于编辑表单商品回显
// 编辑时合同品回显
/** 编辑时合同品回显 */
const isSetListValue = ref(false) // 判断是否已经给 list 赋值过,用于编辑表单产品回显
watch(
() => props.modelValue,
(val) => {
@ -118,7 +119,8 @@ watch(
},
{ immediate: true, deep: true }
)
// 监听列表变化,动态更新合同商品列表
/** 监听列表变化,动态更新合同产品列表 */
watch(
list,
(val) => {
@ -130,14 +132,14 @@ watch(
{ deep: true }
)
// 监听品选择结果动态添加品到列表中,如果品存在则不放入列表中
// 监听品选择结果动态添加品到列表中,如果品存在则不放入列表中
watch(
multipleSelection,
(val) => {
if (!val || val.length === 0) {
return
}
// 过滤出不在列表中的
// 过滤出不在列表中的
const ids = list.value.map((item) => item.id)
const productList = multipleSelection.value.filter((item) => ids.indexOf(item.id) === -1)
if (!productList || productList.length === 0) {

View File

@ -1,3 +1,4 @@
<!-- 合同详情产品列表 -->
<template>
<el-table :data="list" :show-overflow-tooltip="true" :stripe="true">
<el-table-column align="center" label="产品名称" prop="name" width="160" />
@ -35,7 +36,8 @@ defineOptions({ name: 'ContractProductList' })
const props = withDefaults(defineProps<{ modelValue: ProductApi.ProductExpandVO[] }>(), {
modelValue: () => []
})
const list = ref<ProductApi.ProductExpandVO[]>([]) // 列表数量
const list = ref<ProductApi.ProductExpandVO[]>([]) // 产品列表
/** 计算 totalPrice */
const getTotalPrice = computed(() => (row: ProductApi.ProductExpandVO) => {
const totalPrice =
@ -43,8 +45,9 @@ const getTotalPrice = computed(() => (row: ProductApi.ProductExpandVO) => {
row.totalPrice = isNaN(totalPrice) ? 0 : yuanToFen(totalPrice)
return isNaN(totalPrice) ? 0 : totalPrice.toFixed(2)
})
const isSetListValue = ref(false) // 判断是否已经给 list 赋值过,用于编辑表单商品回显
// 编辑时合同品回显
/** 编辑时合同品回显 */
const isSetListValue = ref(false) // 判断是否已经给 list 赋值过,用于编辑表单产品回显
watch(
() => props.modelValue,
(val) => {

View File

@ -87,6 +87,7 @@ const getOperateLog = async (contractId: number) => {
}
/** 转移 */
// TODO @puhui999这个组件要不传递业务类型然后组件里判断 title 和 api 能调用哪个;整体治理掉;
const transferFormRef = ref<InstanceType<typeof CrmTransferForm>>() // 合同转移表单 ref
const transferContract = () => {
transferFormRef.value?.open('合同转移', contract.value.id, ContractApi.transferContract)