zs hai 1 ano
pai
achega
36b45c6df8

+ 1 - 1
src/views/chat/index.vue

@@ -8,7 +8,7 @@
               <el-col :span="24" class="one">
               <el-col :span="24" class="one">
                 <el-col :span="24" class="one_1">
                 <el-col :span="24" class="one_1">
                   <el-col :span="4" class="left">
                   <el-col :span="4" class="left">
-                    <el-image class="image" :src="kf" fit="fill" />
+                    <el-image class="image" :src="user.icon || kf" fit="fill" />
                   </el-col>
                   </el-col>
                   <el-col :span="20" class="right">
                   <el-col :span="20" class="right">
                     {{ user.nick_name || '游客' }}
                     {{ user.nick_name || '游客' }}

+ 1 - 0
src/views/demand/detail.vue

@@ -424,6 +424,7 @@ const sizeChange = (limits) => {
           }
           }
         }
         }
         .bottom {
         .bottom {
+          margin: 10px 0 0 0;
           text-align: right;
           text-align: right;
         }
         }
       }
       }

+ 39 - 5
src/views/release/index.vue

@@ -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)

+ 17 - 0
src/views/release/parts/demand.vue

@@ -24,6 +24,16 @@
           <el-form-item label="需求名称" prop="name">
           <el-form-item label="需求名称" prop="name">
             <el-input v-model="form.name" placeholder="请输入需求名称"> </el-input>
             <el-input v-model="form.name" placeholder="请输入需求名称"> </el-input>
           </el-form-item>
           </el-form-item>
+          <el-form-item label="类型" prop="type">
+            <el-select v-model="form.type" width="100%" placeholder="请选择类型">
+              <el-option
+                v-for="(item, index) in typeList"
+                :key="index"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
           <el-form-item label="行业领域" prop="field">
           <el-form-item label="行业领域" prop="field">
             <el-select v-model="form.field" width="100%" placeholder="请选择行业领域">
             <el-select v-model="form.field" width="100%" placeholder="请选择行业领域">
               <el-option
               <el-option
@@ -69,6 +79,8 @@
             <el-date-picker
             <el-date-picker
               v-model="form.time"
               v-model="form.time"
               type="daterange"
               type="daterange"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
               range-separator="至"
               range-separator="至"
               start-placeholder="开始时间"
               start-placeholder="开始时间"
               end-placeholder="结束时间"
               end-placeholder="结束时间"
@@ -108,6 +120,7 @@ const dictDataStore = DictDataStore()
 import List from './parts/list.vue'
 import List from './parts/list.vue'
 const form = inject('form')
 const form = inject('form')
 const type = inject('type')
 const type = inject('type')
+const ruleFormRef = inject('ruleFormRef')
 const toCommon = inject('toCommon')
 const toCommon = inject('toCommon')
 const submitForm = inject('submitForm')
 const submitForm = inject('submitForm')
 // 字典表
 // 字典表
@@ -118,6 +131,10 @@ const urgentList = ref([])
 const fieldList = ref([])
 const fieldList = ref([])
 const cityList = ref([])
 const cityList = ref([])
 const demandList = ref([])
 const demandList = ref([])
+const typeList = ref([
+  { value: '0', label: '供给' },
+  { value: '1', label: '需求' }
+])
 const rules = reactive({
 const rules = reactive({
   name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
   name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
   field: [{ required: true, message: '请选择行业领域', trigger: 'change' }],
   field: [{ required: true, message: '请选择行业领域', trigger: 'change' }],

+ 2 - 2
src/views/release/parts/parts/list.vue

@@ -87,11 +87,11 @@ const sizeChange = inject('sizeChange')
       box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.03);
       box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.03);
       border-radius: 2px;
       border-radius: 2px;
       width: 285px;
       width: 285px;
-      height: 175px;
+      height: 200px;
       margin-bottom: 15px;
       margin-bottom: 15px;
       cursor: pointer;
       cursor: pointer;
       transition: all 0.3s;
       transition: all 0.3s;
-      padding: 20px;
+      padding: 15px;
 
 
       .name {
       .name {
         display: flex;
         display: flex;