guhongwei 4 anos atrás
pai
commit
5536459cbf

+ 2 - 2
src/views/notice/index.vue

@@ -147,7 +147,7 @@
                 <el-col :span="24" class="productInfo">
                   <el-col :span="24" class="txt">
                     <el-form-item label="名称:" prop="name">
-                      <el-input v-model="technologyForm.name" placeholder="请输入注册类型"></el-input>
+                      <el-input v-model="technologyForm.name" placeholder="请输入需求名称"></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="12" class="txt">
@@ -166,7 +166,7 @@
                       </el-select>
                     </el-form-item>
                   </el-col>
-                  <el-col :span="24" class="txt">
+                  <el-col :span="12" class="txt">
                     <el-form-item label="投资预算:">
                       <el-input v-model="technologyForm.budget" placeholder="请输入投资预算"></el-input>
                     </el-form-item>

+ 37 - 1
src/views/userCenter/productInfo/index.vue

@@ -34,6 +34,8 @@ import already from './part/already.vue';
 import infoRelease from './part/infoRelease.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: mapMarketproduct } = createNamespacedHelpers('marketproduct');
+const { mapActions: market } = createNamespacedHelpers('market');
+const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
 export default {
   name: 'index',
   props: {},
@@ -49,11 +51,45 @@ export default {
       // 发布信息
       display: true,
       form: {},
+      // 企业信息&专家信息
+      companyInfo: {},
     };
   },
-  created() {},
+  created() {
+    this.searchInfo();
+  },
   methods: {
     ...mapMarketproduct({ productFetch: 'fetch', productCreate: 'create', productUpdate: 'update' }),
+    ...market(['fetch', 'update']),
+    ...expertsuser({ expertsuserFetch: 'fetch', expertsuserUpdate: 'update', expertsuserUpgrade: 'upgrade' }),
+    // 查询信息
+    async searchInfo() {
+      if (this.user.role == '4' || this.user.role == '5') {
+        let res = await this.fetch(this.user.userid);
+        if (res.errcode === 0) {
+          let message = {
+            company: res.data.name,
+            phone: res.data.phone,
+            email: res.data.email,
+          };
+          this.$set(this, `form`, message);
+          this.$set(this, `companyInfo`, res.data);
+        }
+      } else if (this.user.role == '6') {
+        let res = await this.expertsuserFetch(this.user.userid);
+        if (res.errcode === 0) {
+          let message = {
+            company: res.data.name,
+            contacts: res.data.name,
+            phone: res.data.phone,
+            email: res.data.email,
+            qqwx: res.data.qqwx,
+          };
+          this.$set(this, `form`, message);
+          this.$set(this, `companyInfo`, res.data);
+        }
+      }
+    },
     // 保存草稿
     async draftBtn({ data }) {
       data.userid = this.user.uid;

+ 427 - 8
src/views/userCenter/productInfo/part/infoRelease.vue

@@ -5,8 +5,8 @@
         <el-col :span="24" class="back">
           <el-button type="primary" size="mini" @click="back()">返回</el-button>
         </el-col>
-        <el-col :span="24" class="form">
-          <el-form ref="form" :model="form" label-width="140px" :rules="rules">
+        <el-col :span="24" class="info">
+          <!-- <el-form ref="form" :model="form" label-width="140px" :rules="rules">
             <el-form-item label="产品类型" prop="totaltype">
               <el-select v-model="form.type" placeholder="请选择产品类型">
                 <el-option label="技术" value="0"></el-option>
@@ -78,7 +78,6 @@
                 ></upload>
               </el-form-item>
             </span>
-            <!-- 技术 -->
             <span v-if="form.type == '0'">
               <el-form-item label="投资预算">
                 <el-input v-model="form.budget" placeholder="请输入投资预算"></el-input>
@@ -168,7 +167,6 @@
                 ></el-input>
               </el-form-item>
             </span>
-            <!-- 产品 -->
             <span v-else-if="form.type == '1'">
               <el-form-item label="成果状态">
                 <el-select v-model="form.achievestatus" filterable>
@@ -242,7 +240,6 @@
                 ></el-input>
               </el-form-item>
             </span>
-            <!-- 服务 -->
             <span v-else-if="form.type == '2'">
               <el-form-item label="信息属性">
                 <el-radio-group v-model="form.messattribute">
@@ -301,7 +298,406 @@
               <el-button @click="draftBtn('form')">保存草稿</el-button>
               <el-button type="primary" @click="submitBtn('form')">信息发布</el-button>
             </el-form-item>
-          </el-form>
+          </el-form> -->
+          <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+            <el-tab-pane label="科技需求" name="first">
+              <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+                <el-col :span="24" class="form">
+                  <el-col :span="24" class="one">
+                    <el-form-item label="企业名称:">
+                      <el-input v-model="form.company" placeholder="请输入企业名称" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系电话:">
+                      <el-input v-model="form.phone" placeholder="请输入联系电话" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="电子邮箱:">
+                      <el-input v-model="form.email" placeholder="请输入电子邮箱" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系人:" prop="contacts">
+                      <el-input v-model="form.contacts" placeholder="请输入联系人"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="QQ/微信:" prop="qqwx">
+                      <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="需求名称:" prop="name">
+                      <el-input v-model="form.name" placeholder="请输入需求名称"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="需求紧急程度:">
+                      <el-select v-model="form.degreeurgency" placeholder="请选择需求紧急程度">
+                        <el-option label="特急" value="特急"></el-option>
+                        <el-option label="一般" value="一般"></el-option>
+                        <el-option label="储备" value="储备"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="所属领域:">
+                      <el-select v-model="form.field" filterable>
+                        <el-option v-for="(item, index) in fieldList" :key="index" :value="item.name" :label="item.name"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="投资预算:">
+                      <el-input v-model="form.budget" placeholder="请输入投资预算"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="合作方式:">
+                      <el-select v-model="form.cooperation" filterable>
+                        <el-option v-for="(item, index) in cooperationList" :key="index" :value="item.name" :label="item.name"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="产品图片" prop="image">
+                      <upload
+                        :limit="6"
+                        :data="form.image"
+                        :uploadBtn="true"
+                        type="image"
+                        :url="`/files/image/upload`"
+                        @upload="uploadSuccess"
+                        @delete="uploadDelete"
+                      ></upload>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="技术说明:">
+                      <el-input
+                        v-model="form.requirementdesc"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入技术难题/需求说明"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="预期目标:">
+                      <el-input
+                        v-model="form.expect"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入预期技术目标描述"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="需求现状:">
+                      <el-input
+                        v-model="form.present"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入需求现状及应对措施"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="合作条件及要求:">
+                      <el-input
+                        v-model="form.condition"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入合作条件及要求"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-form>
+            </el-tab-pane>
+            <el-tab-pane label="技术成果" name="second">
+              <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+                <el-col :span="24" class="form">
+                  <el-col :span="24" class="one">
+                    <el-form-item label="企业名称:">
+                      <el-input v-model="form.company" placeholder="请输入企业名称" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系电话:">
+                      <el-input v-model="form.phone" placeholder="请输入联系电话" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="电子邮箱:">
+                      <el-input v-model="form.email" placeholder="请输入电子邮箱" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系人:" prop="contacts">
+                      <el-input v-model="form.contacts" placeholder="请输入联系人"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="QQ/微信:" prop="qqwx">
+                      <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="成果名称:" prop="name">
+                      <el-input v-model="form.name" placeholder="请输入成果名称"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="所属领域:">
+                      <el-select v-model="form.field" filterable>
+                        <el-option v-for="(item, index) in fieldList" :key="index" :value="item.name" :label="item.name"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="合作方式:">
+                      <el-select v-model="form.cooperation" filterable>
+                        <el-option v-for="(item, index) in cooperationList" :key="index" :value="item.name" :label="item.name"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="成果状态:">
+                      <el-select v-model="form.achievestatus" filterable>
+                        <el-option v-for="(item, index) in achievestatusList" :key="index" :value="item.name" :label="item.name"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="成果权属:">
+                      <el-input v-model="form.achieveown" placeholder="请输入成果权属"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="成果来源:">
+                      <el-select v-model="form.achievesource" placeholder="请选择成果来源">
+                        <el-option label="国家项目" value="国家项目"></el-option>
+                        <el-option label="省级项目" value="省级项目"></el-option>
+                        <el-option label="市级项目" value="市级项目"></el-option>
+                        <el-option label="自选项目" value="自选项目"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="意向价格:">
+                      <el-input v-model="form.intentionprice" placeholder="请输入意向价格"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="专利信息:">
+                      <el-input v-model="form.patentinfo" placeholder="请输入专利信息"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="专利状态:">
+                      <el-select v-model="form.patentstatus" placeholder="请选择专利状态">
+                        <el-option label="已申请" value="已申请"></el-option>
+                        <el-option label="已授权" value="已授权"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="项目路演:">
+                      <el-input v-model="form.roadshow" placeholder="请输入项目路演"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="产品图片" prop="image">
+                      <upload
+                        :limit="6"
+                        :data="form.image"
+                        :uploadBtn="true"
+                        type="image"
+                        :url="`/files/image/upload`"
+                        @upload="uploadSuccess"
+                        @delete="uploadDelete"
+                      ></upload>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="成果简介:">
+                      <el-input
+                        v-model="form.achievebrief"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入成果简介"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="技术特点:">
+                      <el-input
+                        v-model="form.features"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入技术特点"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="技术团队:">
+                      <el-input
+                        v-model="form.team"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入技术团队"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="商业预期:">
+                      <el-input
+                        v-model="form.expectations"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入商业预期"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="合作条件及要求:">
+                      <el-input
+                        v-model="form.condition"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 4, maxRows: 5 }"
+                        placeholder="请输入合作条件及要求"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-form>
+            </el-tab-pane>
+            <el-tab-pane label="商务信息" name="third">
+              <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+                <el-col :span="24" class="form">
+                  <el-col :span="24" class="one">
+                    <el-form-item label="企业名称:">
+                      <el-input v-model="form.company" placeholder="请输入企业名称" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系电话:">
+                      <el-input v-model="form.phone" placeholder="请输入联系电话" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="电子邮箱:">
+                      <el-input v-model="form.email" placeholder="请输入电子邮箱" disabled></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="联系人:" prop="contacts">
+                      <el-input v-model="form.contacts" placeholder="请输入联系人"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="QQ/微信:" prop="qqwx">
+                      <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="信息名称:" prop="name">
+                      <el-input v-model="form.name" placeholder="请输入信息名称"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="信息属性">
+                      <el-radio-group v-model="form.messattribute">
+                        <el-radio label="提供方"></el-radio>
+                        <el-radio label="需求方"></el-radio>
+                      </el-radio-group>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="one">
+                    <el-form-item label="需求程度">
+                      <el-radio-group v-model="form.demand">
+                        <el-radio label="特急"></el-radio>
+                        <el-radio label="一般"></el-radio>
+                      </el-radio-group>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="信息描述">
+                      <el-input
+                        v-model="form.informationdesc"
+                        type="textarea"
+                        maxlength="300"
+                        show-word-limit
+                        :autosize="{ minRows: 2, maxRows: 5 }"
+                        placeholder="请输入信息描述"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="核心要素">
+                      <el-input
+                        v-model="form.coreelements"
+                        type="textarea"
+                        maxlength="200"
+                        show-word-limit
+                        :autosize="{ minRows: 2, maxRows: 5 }"
+                        placeholder="请输入核心要素"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="价格信息">
+                      <el-input
+                        v-model="form.priceinfo"
+                        type="textarea"
+                        maxlength="100"
+                        show-word-limit
+                        :autosize="{ minRows: 2, maxRows: 5 }"
+                        placeholder="请输入价格信息"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" class="one">
+                    <el-form-item label="商务预期">
+                      <el-input
+                        v-model="form.businessexpect"
+                        type="textarea"
+                        maxlength="200"
+                        show-word-limit
+                        :autosize="{ minRows: 2, maxRows: 5 }"
+                        placeholder="请输入商务预期"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-form>
+            </el-tab-pane>
+          </el-tabs>
+          <el-col :span="24" class="btn">
+            <el-button @click="draftBtn('form')">保存草稿</el-button>
+            <el-button type="primary" @click="submitBtn('form')">信息发布</el-button>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -323,9 +719,11 @@ export default {
   },
   data: function() {
     return {
-      // 验证
+      activeName: 'first',
       rules: {
-        name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+        name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
+        contacts: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+        qqwx: [{ required: true, message: '请输入QQ/微信', trigger: 'blur' }],
       },
       // 所属领域
       fieldList: [],
@@ -333,6 +731,7 @@ export default {
       achievestatusList: [],
       // 合作方式
       cooperationList: [],
+      type: '0',
     };
   },
   created() {
@@ -358,14 +757,19 @@ export default {
         this.$set(this, `cooperationList`, res.data);
       }
     },
+    handleClick(tab) {
+      this.$set(this, `type`, tab.index);
+    },
     // 草稿
     draftBtn() {
+      this.form.type = this.type;
       this.$emit('draftBtn', { data: this.form });
     },
     // 信息发布
     submitBtn(formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
+          this.form.type = this.type;
           this.$emit('submitBtn', { data: this.form });
         } else {
           console.log('error submit!!');
@@ -408,4 +812,19 @@ export default {
 .back {
   text-align: right;
 }
+.form {
+  border: 1px solid #ccc;
+  padding: 10px;
+  .one {
+    border-bottom: 1px dashed #ccc;
+    margin: 0 0 10px 0;
+  }
+}
+/deep/.el-form-item {
+  margin-bottom: 10px;
+}
+.btn {
+  text-align: center;
+  margin: 15px 0;
+}
 </style>