diff --git a/fund-mobile/src/views/project/Add.vue b/fund-mobile/src/views/project/Add.vue
index 09b43bf..aa186da 100644
--- a/fund-mobile/src/views/project/Add.vue
+++ b/fund-mobile/src/views/project/Add.vue
@@ -4,6 +4,15 @@
+
+
-
- 元
-
-
+ v-model="projectTypeText"
+ is-link
+ readonly
+ name="projectType"
+ label="项目类型"
+ placeholder="请选择类型"
+ :rules="[{ required: true, message: '请选择项目类型' }]"
+ required
+ @click="showTypePicker = true"
+ />
+
+
@@ -85,6 +103,15 @@
+
+
+
+
+
-
-
-
+
+
@@ -123,18 +150,21 @@ import { createProject, getCustomerList } from '@/api'
const router = useRouter()
const submitting = ref(false)
const showStartPicker = ref(false)
-const showStatusPicker = ref(false)
+const showEndPicker = ref(false)
+const showTypePicker = ref(false)
const showCustomerPicker = ref(false)
const form = ref({
+ projectCode: '',
projectName: '',
customerId: null as number | null,
customerName: '',
- contractAmount: '',
+ projectType: '',
budgetAmount: '',
startDate: '',
- status: 'preparing',
- description: ''
+ endDate: '',
+ projectManager: '',
+ remark: ''
})
const selectedStartDate = ref([
@@ -143,29 +173,40 @@ const selectedStartDate = ref([
new Date().getDate().toString().padStart(2, '0')
])
-const statusOptions = [
- { text: '筹备中', value: 'preparing' },
- { text: '进行中', value: 'ongoing' },
- { text: '已完成', value: 'completed' },
- { text: '已归档', value: 'archived' },
- { text: '已取消', value: 'cancelled' }
+const selectedEndDate = ref([
+ new Date().getFullYear().toString(),
+ (new Date().getMonth() + 1).toString().padStart(2, '0'),
+ new Date().getDate().toString().padStart(2, '0')
+])
+
+const projectTypeOptions = [
+ { text: '开发项目', value: '开发项目' },
+ { text: '运维项目', value: '运维项目' },
+ { text: '咨询项目', value: '咨询项目' },
+ { text: '集成项目', value: '集成项目' },
+ { text: '其他项目', value: '其他项目' }
]
-const statusText = computed(() => {
- const item = statusOptions.find(s => s.value === form.value.status)
+const projectTypeText = computed(() => {
+ const item = projectTypeOptions.find(t => t.value === form.value.projectType)
return item?.text || ''
})
const customerOptions = ref<{ text: string; value: number }[]>([])
+const onTypeConfirm = ({ selectedOptions }: any) => {
+ form.value.projectType = selectedOptions[0].value
+ showTypePicker.value = false
+}
+
const onStartDateConfirm = ({ selectedValues }: any) => {
form.value.startDate = selectedValues.join('-')
showStartPicker.value = false
}
-const onStatusConfirm = ({ selectedOptions }: any) => {
- form.value.status = selectedOptions[0].value
- showStatusPicker.value = false
+const onEndDateConfirm = ({ selectedValues }: any) => {
+ form.value.endDate = selectedValues.join('-')
+ showEndPicker.value = false
}
const onCustomerConfirm = ({ selectedOptions }: any) => {
@@ -187,21 +228,35 @@ const loadOptions = async () => {
}
const onSubmit = async () => {
+ if (!form.value.projectCode) {
+ showFailToast('请输入项目编码')
+ return
+ }
if (!form.value.projectName) {
showFailToast('请输入项目名称')
return
}
+ if (!form.value.customerId) {
+ showFailToast('请选择客户')
+ return
+ }
+ if (!form.value.projectType) {
+ showFailToast('请选择项目类型')
+ return
+ }
submitting.value = true
try {
await createProject({
+ projectCode: form.value.projectCode,
projectName: form.value.projectName,
customerId: form.value.customerId,
- contractAmount: form.value.contractAmount ? parseFloat(form.value.contractAmount) : null,
+ projectType: form.value.projectType,
budgetAmount: form.value.budgetAmount ? parseFloat(form.value.budgetAmount) : null,
startDate: form.value.startDate || null,
- status: form.value.status,
- description: form.value.description
+ endDate: form.value.endDate || null,
+ projectManager: form.value.projectManager || null,
+ remark: form.value.remark || null
})
showSuccessToast('提交成功')
router.back()