|
@@ -139,9 +139,14 @@ const $checkRes = inject('$checkRes')
|
|
|
// 组件
|
|
|
import dataForm from './parts/index.vue'
|
|
|
// 接口
|
|
|
+import { UserStore } from '@/store/user'
|
|
|
+const userStore = UserStore()
|
|
|
+const user = computed(() => userStore.user)
|
|
|
import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
import { MatchStore } from '@/store/api/platform/match'
|
|
|
+import { SignStore } from '@/store/api/platform/sign'
|
|
|
const store = MatchStore()
|
|
|
+const signStore = SignStore()
|
|
|
const dictDataStore = DictDataStore()
|
|
|
// 图片引入
|
|
|
import news from '@/assets/news.png'
|
|
@@ -157,6 +162,7 @@ const activeName = ref('first')
|
|
|
const statusList = ref([])
|
|
|
const typeList = ref([])
|
|
|
const formList = ref([])
|
|
|
+const cardTypeList = ref([])
|
|
|
const menuList = ref([
|
|
|
{ title: '大赛背景', label: 'rules1' },
|
|
|
{ title: '大赛主题和目标', label: 'rules2' },
|
|
@@ -172,17 +178,24 @@ const menuList = ref([
|
|
|
{ title: '赛事交流', label: 'rules12' }
|
|
|
])
|
|
|
// 弹框
|
|
|
+const ruleFormRef = ref()
|
|
|
const form = ref({})
|
|
|
+const validatePhoneNumber = (rule, value, callback) => {
|
|
|
+ const reg = /^1[3-9]\d{9}$/
|
|
|
+ if (!value) {
|
|
|
+ return callback(new Error('手机号不能为空'))
|
|
|
+ }
|
|
|
+ if (!reg.test(value)) {
|
|
|
+ return callback(new Error('请输入正确的手机号'))
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+}
|
|
|
const rules = reactive({
|
|
|
- name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
|
|
|
- field: [{ required: true, message: '请选择行业领域', trigger: 'change' }],
|
|
|
- urgent: [{ required: true, message: '请选择需求紧急度', trigger: 'change' }],
|
|
|
- method: [{ required: true, message: '请选择合作方式', trigger: 'change' }],
|
|
|
- money: [{ required: true, message: '请输入价格', trigger: 'blur' }],
|
|
|
- area: [{ required: true, message: '请选择需求地区', trigger: 'change' }],
|
|
|
- time: [{ required: true, message: '请选择起始时间', trigger: 'change' }],
|
|
|
- is_use: [{ required: true, message: '请选择是否使用', trigger: 'change' }],
|
|
|
- brief: [{ required: true, message: '请输入简介', trigger: 'blur' }]
|
|
|
+ name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
|
|
+ phone: [{ required: true, validator: validatePhoneNumber, trigger: 'blur' }],
|
|
|
+ cardType: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
|
|
|
+ card: [{ required: true, message: '请选择证件号码', trigger: 'change' }],
|
|
|
+ remark: [{ required: true, message: '请输入备注', trigger: 'blur' }]
|
|
|
})
|
|
|
const dialog = ref(false)
|
|
|
// 列表
|
|
@@ -206,6 +219,9 @@ const searchOther = async () => {
|
|
|
// 赛事状态
|
|
|
result = await dictDataStore.query({ code: 'matchStatus', is_use: '0' })
|
|
|
if ($checkRes(result)) statusList.value = result.data
|
|
|
+ // 证件类型
|
|
|
+ result = await dictDataStore.query({ code: 'cardType', is_use: '0' })
|
|
|
+ if ($checkRes(result)) cardTypeList.value = result.data
|
|
|
}
|
|
|
const searchMatch = async () => {
|
|
|
const info = {
|
|
@@ -263,7 +279,9 @@ const submitForm = async (formEl) => {
|
|
|
await formEl.validate(async (valid, fields) => {
|
|
|
if (valid) {
|
|
|
const data = cloneDeep(form.value)
|
|
|
- console.log(data)
|
|
|
+ const other = { match: info.value._id, user: user.value._id }
|
|
|
+ let res = await signStore.create({ ...data, ...other })
|
|
|
+ if ($checkRes(res, true)) toClose()
|
|
|
} else {
|
|
|
console.log('error submit!', fields)
|
|
|
}
|
|
@@ -272,6 +290,8 @@ const submitForm = async (formEl) => {
|
|
|
// provide
|
|
|
provide('form', form)
|
|
|
provide('rules', rules)
|
|
|
+provide('ruleFormRef', ruleFormRef)
|
|
|
+provide('cardTypeList', cardTypeList)
|
|
|
provide('submitForm', submitForm)
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|