|
@@ -38,6 +38,8 @@ import match from './parts/match.vue'
|
|
import achievement from './parts/achievement.vue'
|
|
import achievement from './parts/achievement.vue'
|
|
// 加载中
|
|
// 加载中
|
|
const loading = ref(false)
|
|
const loading = ref(false)
|
|
|
|
+// 路由
|
|
|
|
+const router = useRouter()
|
|
// 显示类型
|
|
// 显示类型
|
|
const type = ref('0')
|
|
const type = ref('0')
|
|
const routeType = ref('0')
|
|
const routeType = ref('0')
|
|
@@ -45,7 +47,12 @@ const form = ref({})
|
|
// 字典表
|
|
// 字典表
|
|
const fieldList = ref([])
|
|
const fieldList = ref([])
|
|
const statusList = ref([])
|
|
const statusList = ref([])
|
|
|
|
+const typeList = ref([
|
|
|
|
+ { value: '0', label: '供给' },
|
|
|
|
+ { value: '1', label: '需求' }
|
|
|
|
+])
|
|
//
|
|
//
|
|
|
|
+const ruleFormRef = ref()
|
|
const fields = ref([])
|
|
const fields = ref([])
|
|
// 列表
|
|
// 列表
|
|
const list = ref([])
|
|
const list = ref([])
|
|
@@ -73,6 +80,7 @@ const searchField = async () => {
|
|
fields.value = [
|
|
fields.value = [
|
|
{ label: '需求名称', model: 'name', type: 'name' },
|
|
{ label: '需求名称', model: 'name', type: 'name' },
|
|
{ label: '技术领域:', model: 'field', type: 'dict' },
|
|
{ label: '技术领域:', model: 'field', type: 'dict' },
|
|
|
|
+ { label: '类型:', model: 'type', type: 'dict' },
|
|
{ label: '需求地区:', model: 'area', type: 'area' },
|
|
{ label: '需求地区:', model: 'area', type: 'area' },
|
|
{ label: '状态:', model: 'status', type: 'dict' }
|
|
{ label: '状态:', model: 'status', type: 'dict' }
|
|
]
|
|
]
|
|
@@ -96,8 +104,8 @@ const searchField = async () => {
|
|
const search = async (query = { skip: 0, limit }) => {
|
|
const search = async (query = { skip: 0, limit }) => {
|
|
const info = {
|
|
const info = {
|
|
skip: query.skip,
|
|
skip: query.skip,
|
|
- limit: query.limit
|
|
|
|
- // user: user.value._id
|
|
|
|
|
|
+ limit: query.limit,
|
|
|
|
+ user: user.value._id
|
|
}
|
|
}
|
|
let res
|
|
let res
|
|
if (routeType.value == 'achievement') res = await achieveStore.query(info)
|
|
if (routeType.value == 'achievement') res = await achieveStore.query(info)
|
|
@@ -109,7 +117,6 @@ const search = async (query = { skip: 0, limit }) => {
|
|
total.value = res.total
|
|
total.value = res.total
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
const searchOther = async () => {
|
|
const searchOther = async () => {
|
|
let result
|
|
let result
|
|
// 技术领域
|
|
// 技术领域
|
|
@@ -124,6 +131,7 @@ const getDict = (data, model) => {
|
|
let res
|
|
let res
|
|
if (model == 'field') res = fieldList.value.find((f) => f.value == data)
|
|
if (model == 'field') res = fieldList.value.find((f) => f.value == data)
|
|
if (model == 'status') res = statusList.value.find((f) => f.value == data)
|
|
if (model == 'status') res = statusList.value.find((f) => f.value == data)
|
|
|
|
+ if (model == 'type') res = typeList.value.find((f) => f.value == data)
|
|
return get(res, 'label')
|
|
return get(res, 'label')
|
|
}
|
|
}
|
|
// 地区显示
|
|
// 地区显示
|
|
@@ -142,7 +150,12 @@ const toCommon = (data) => {
|
|
}
|
|
}
|
|
// 查看
|
|
// 查看
|
|
const toView = (item) => {
|
|
const toView = (item) => {
|
|
- console.log(item)
|
|
|
|
|
|
+ let path
|
|
|
|
+ if (routeType.value == 'achievement') path = '/achievement/detail'
|
|
|
|
+ else if (routeType.value == 'demand') path = '/demand/detail'
|
|
|
|
+ else if (routeType.value == 'project') path = '/project/detail'
|
|
|
|
+ else if (routeType.value == 'match') path = '/match/detail'
|
|
|
|
+ router.push({ path, query: { id: item.id || item._id } })
|
|
}
|
|
}
|
|
// 修改
|
|
// 修改
|
|
const toEdit = (item) => {
|
|
const toEdit = (item) => {
|
|
@@ -155,7 +168,27 @@ const submitForm = async (formEl) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
const data = cloneDeep(form.value)
|
|
const data = cloneDeep(form.value)
|
|
- console.log(data)
|
|
|
|
|
|
+ const other = { status: '0', user: user.value._id }
|
|
|
|
+ let res
|
|
|
|
+ if (get(data, '_id')) {
|
|
|
|
+ if (routeType.value == 'achievement') res = await achieveStore.update({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'demand') res = await demandStore.update({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'project')
|
|
|
|
+ res = await projectStore.update({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'match') res = await matchStore.update({ ...data, ...other })
|
|
|
|
+ } else {
|
|
|
|
+ if (routeType.value == 'achievement') res = await achieveStore.create({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'demand') res = await demandStore.create({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'project')
|
|
|
|
+ res = await projectStore.create({ ...data, ...other })
|
|
|
|
+ else if (routeType.value == 'match') res = await matchStore.create({ ...data, ...other })
|
|
|
|
+ }
|
|
|
|
+ if ($checkRes(res, true)) {
|
|
|
|
+ type.value = '0'
|
|
|
|
+ list.value = []
|
|
|
|
+ searchField()
|
|
|
|
+ search({ skip: 0, limit })
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
console.log('error submit!', fields)
|
|
console.log('error submit!', fields)
|
|
}
|
|
}
|
|
@@ -188,6 +221,7 @@ provide('form', form)
|
|
provide('type', type)
|
|
provide('type', type)
|
|
provide('toCommon', toCommon)
|
|
provide('toCommon', toCommon)
|
|
provide('submitForm', submitForm)
|
|
provide('submitForm', submitForm)
|
|
|
|
+provide('ruleFormRef', ruleFormRef)
|
|
provide('fields', fields)
|
|
provide('fields', fields)
|
|
provide('list', list)
|
|
provide('list', list)
|
|
provide('toView', toView)
|
|
provide('toView', toView)
|