fix: 移动端新增客户表单与后端字段对齐
- 新增联系人(contact)字段,设为必填 - 客户编码(customerCode)设为必填 - 移除后端不支持的字段:简称、客户等级、所属行业 - 表单字段与后端CustomerCreateDTO保持一致
This commit is contained in:
parent
965d98cab5
commit
011a6bfb3f
@ -9,6 +9,8 @@
|
||||
name="customerCode"
|
||||
label="客户编码"
|
||||
placeholder="请输入客户编码"
|
||||
:rules="[{ required: true, message: '请输入客户编码' }]"
|
||||
required
|
||||
/>
|
||||
|
||||
<van-field
|
||||
@ -21,10 +23,12 @@
|
||||
/>
|
||||
|
||||
<van-field
|
||||
v-model="form.customerShort"
|
||||
name="customerShort"
|
||||
label="简称"
|
||||
placeholder="请输入客户简称"
|
||||
v-model="form.contact"
|
||||
name="contact"
|
||||
label="联系人"
|
||||
placeholder="请输入联系人"
|
||||
:rules="[{ required: true, message: '请输入联系人' }]"
|
||||
required
|
||||
/>
|
||||
|
||||
<van-field
|
||||
@ -43,23 +47,6 @@
|
||||
placeholder="请输入邮箱"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
v-model="levelText"
|
||||
is-link
|
||||
readonly
|
||||
name="level"
|
||||
label="客户等级"
|
||||
placeholder="请选择等级"
|
||||
@click="showLevelPicker = true"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
v-model="form.industry"
|
||||
name="industry"
|
||||
label="所属行业"
|
||||
placeholder="请输入所属行业"
|
||||
/>
|
||||
|
||||
<van-field
|
||||
v-model="form.address"
|
||||
name="address"
|
||||
@ -84,73 +71,50 @@
|
||||
</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
|
||||
<!-- 等级选择器 -->
|
||||
<van-popup v-model:show="showLevelPicker" position="bottom" round>
|
||||
<van-picker
|
||||
:columns="levelOptions"
|
||||
@confirm="onLevelConfirm"
|
||||
@cancel="showLevelPicker = false"
|
||||
/>
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { showFailToast, showSuccessToast } from 'vant'
|
||||
import { createCustomer } from '@/api'
|
||||
|
||||
const router = useRouter()
|
||||
const submitting = ref(false)
|
||||
const showLevelPicker = ref(false)
|
||||
|
||||
const form = ref({
|
||||
customerCode: '',
|
||||
customerName: '',
|
||||
customerShort: '',
|
||||
contact: '',
|
||||
phone: '',
|
||||
email: '',
|
||||
level: 'C',
|
||||
industry: '',
|
||||
address: '',
|
||||
remark: ''
|
||||
})
|
||||
|
||||
const levelOptions = [
|
||||
{ text: 'A类(重点客户)', value: 'A' },
|
||||
{ text: 'B类(一般客户)', value: 'B' },
|
||||
{ text: 'C类(普通客户)', value: 'C' },
|
||||
{ text: 'D类(潜在客户)', value: 'D' }
|
||||
]
|
||||
|
||||
const levelText = computed(() => {
|
||||
const item = levelOptions.find(l => l.value === form.value.level)
|
||||
return item?.text || ''
|
||||
})
|
||||
|
||||
const onLevelConfirm = ({ selectedOptions }: any) => {
|
||||
form.value.level = selectedOptions[0].value
|
||||
showLevelPicker.value = false
|
||||
}
|
||||
|
||||
const onSubmit = async () => {
|
||||
if (!form.value.customerCode) {
|
||||
showFailToast('请输入客户编码')
|
||||
return
|
||||
}
|
||||
if (!form.value.customerName) {
|
||||
showFailToast('请输入客户名称')
|
||||
return
|
||||
}
|
||||
if (!form.value.contact) {
|
||||
showFailToast('请输入联系人')
|
||||
return
|
||||
}
|
||||
|
||||
submitting.value = true
|
||||
try {
|
||||
await createCustomer({
|
||||
customerCode: form.value.customerCode,
|
||||
customerName: form.value.customerName,
|
||||
customerShort: form.value.customerShort,
|
||||
contact: form.value.contact,
|
||||
phone: form.value.phone,
|
||||
email: form.value.email,
|
||||
level: form.value.level,
|
||||
industry: form.value.industry,
|
||||
address: form.value.address,
|
||||
remark: form.value.remark
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user