feat: param verification

This commit is contained in:
zchengo
2022-12-10 22:57:58 +08:00
parent 1b14760990
commit b16d31189f
11 changed files with 309 additions and 238 deletions
+29 -18
View File
@@ -33,7 +33,7 @@
<a-modal v-model:visible="visible" :title="title" @ok="onSave" @cancel="onCancel" cancelText="取消" okText="保存"
width="800px" style="top: 80px">
<div style="height: 55vh;overflow-y: scroll;padding: 0 15px;">
<a-form ref="modalFormRef" :model="contract" layout="vertical" name="contract">
<a-form ref="contractFormRef" :model="contract" layout="vertical" name="contract" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="合同编号" name="id">
@@ -41,21 +41,21 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="合同名称" name="name" :rules="[{ required: true, message: '请输入合同名称' }]">
<a-form-item label="合同名称" name="name">
<a-input v-model:value="contract.name" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="客户名称" name="cid" :rules="[{ required: true, message: '请选择客户' }]">
<a-form-item label="客户名称" name="cid">
<a-select v-model:value="contract.cid" style="width: 100%" placeholder="请选择"
:fieldNames="{ label: 'name', value: 'id' }" :options="data.customerOption"
@focus="getCustomerOption" @change="changeCustomerOption"></a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="合同金额" name="amount" :rules="[{ required: true, message: '请输入合同金额' }]">
<a-form-item label="合同金额" name="amount">
<a-input-number v-model:value="contract.amount" style="width: 100%" />
</a-form-item>
</a-col>
@@ -76,7 +76,7 @@
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="合同状态" name="status" :rules="[{ required: true, message: '请选择合同状态' }]">
<a-form-item label="合同状态" name="status">
<a-select v-model:value="contract.status" placeholder="请选择">
<a-select-option :value="1">已生效</a-select-option>
<a-select-option :value="2">未生效</a-select-option>
@@ -321,6 +321,14 @@ export default {
width: 150,
}];
// 表单校验
const rules = {
name: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
cid: [{ required: true, message: '请选择客户', trigger: 'blur' }],
amount: [{ required: true, message: '请输入合同金额', trigger: 'blur' }],
status: [{ required: true, message: '请选择合同状态' }]
};
// 合同属性
let contract = reactive({
id: undefined,
@@ -358,21 +366,20 @@ export default {
const visible = ref(false);
const disabled = ref(true)
const operation = ref(0);
const modalFormRef = ref();
const contractFormRef = ref();
const keyWord = ref('')
const productListVisible = ref(false);
// 点击新建合同
const onCreate = () => {
title.value = '新建合同'
visible.value = true
operation.value = 1
visible.value = true
}
// 点击编辑合同
const onEdit = (row) => {
title.value = '编辑合同'
visible.value = true
operation.value = 2
getCustomerOption()
let param = { id: row.id }
@@ -389,18 +396,14 @@ export default {
contract.status = p.status
contract.productlist = p.productlist
data.addedProductList = p.productlist
if (data.addedProductList.length > 0) {
for (let i = 0; i < data.addedProductList.length; i++) {
data.defaultSelectedIds.push(data.addedProductList[i].id)
}
}
}
})
visible.value = true
}
// 点击保存合同
const onSave = () => {
modalFormRef.value.validateFields().then(() => {
contractFormRef.value.validateFields().then(() => {
if (operation.value == 1) {
let param = {
name: contract.name,
@@ -440,7 +443,7 @@ export default {
}
})
}
modalFormRef.value.resetFields()
contractFormRef.value.resetFields()
visible.value = false;
});
};
@@ -501,7 +504,6 @@ export default {
// 点击添加产品
const onAddProduct = () => {
productListVisible.value = true
let param = {
pageNum: pagination.current,
pageSize: pagination.pageSize
@@ -512,6 +514,13 @@ export default {
data.productList = res.data.data.list
}
})
data.defaultSelectedIds = []
if (data.addedProductList.length > 0) {
for (let i = 0; i < data.addedProductList.length; i++) {
data.defaultSelectedIds[i] = data.addedProductList[i].id
}
}
productListVisible.value = true
}
// 分页查询产品列表
@@ -595,7 +604,8 @@ export default {
// 点击合同取消按钮
const onCancel = () => {
modalFormRef.value.resetFields()
contractFormRef.value.resetFields()
data.addedProductList = []
visible.value = false
};
@@ -610,6 +620,7 @@ export default {
columns,
productColumns,
productListColumns,
rules,
data,
onSelectedConteactIds,
onSelectedProductIds,
@@ -622,7 +633,7 @@ export default {
operation,
onCreate,
onEdit,
modalFormRef,
contractFormRef,
onSave,
onCancel,
onDelete,