guhongwei 4 years ago
parent
commit
9af83cb26d
2 changed files with 451 additions and 15 deletions
  1. 9 10
      src/views/technical/detail/expdetail.vue
  2. 442 5
      src/views/technical/projectAdd/index.vue

+ 9 - 10
src/views/technical/detail/expdetail.vue

@@ -46,16 +46,15 @@ export default {
     async onSubmit({ data, status }) {
       data.question_id = this.detailinfo._id;
       data.user_id = this.user.userid;
-      console.log(data);
-      // let res = await this.create(data);
-      // if (this.$checkRes(res)) {
-      //   this.$message({
-      //     message: '数据添加成功',
-      //     type: 'success',
-      //   });
-      //   this.form = {};
-      //   this.active = 'first';
-      // }
+      let res = await this.create(data);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '数据添加成功',
+          type: 'success',
+        });
+        this.form = {};
+        this.active = 'first';
+      }
     },
   },
   computed: {

+ 442 - 5
src/views/technical/projectAdd/index.vue

@@ -4,10 +4,293 @@
       <el-col :span="24" class="main">
         <div class="w_1200">
           <el-col :span="24" class="top">
-            标题
+            吉林省科技发展计划高新技术领域项目建议书
           </el-col>
           <el-col :span="24" class="down">
-            相亲
+            <el-form :model="form" :rules="rules" ref="form" label-width="125px">
+              <el-col :span="24" class="one">
+                <el-col :span="24" class="txt">
+                  <span> 项目基本信息</span>
+                </el-col>
+                <el-col :span="24" class="info">
+                  <el-col :span="24" class="langSelect">
+                    <el-form-item prop="question_id">
+                      <el-col :span="21" slot="label">
+                        所属通知:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-select v-model="form.question_id" filterable>
+                          <el-option v-for="(item, index) in questionList" :key="index" :value="item._id" :label="item.title"></el-option>
+                        </el-select>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24">
+                    <el-form-item prop="name">
+                      <el-col :span="21" slot="label">
+                        项目名称:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="pro_user">
+                      <el-col :span="21" slot="label">
+                        项目负责人:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.pro_user" placeholder="请输入项目负责人"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="pro_phone">
+                      <el-col :span="21" slot="label">
+                        联系电话:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.pro_phone" placeholder="请输入联系电话"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="langSelect">
+                    <el-form-item prop="techol_stage">
+                      <el-col :span="21" slot="label">
+                        技术阶段:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-select v-model="form.techol_stage" filterable>
+                          <el-option v-for="(item, index) in techolstageList" :key="index" :value="item.name" :label="item.name"></el-option>
+                        </el-select>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="langSelect">
+                    <el-form-item prop="techol_level">
+                      <el-col :span="21" slot="label">
+                        技术水平:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-select v-model="form.techol_level" filterable>
+                          <el-option v-for="(item, index) in techollevelList" :key="index" :value="item.name" :label="item.name"></el-option>
+                        </el-select>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" class="langSelect">
+                    <el-form-item prop="field">
+                      <el-col :span="21" slot="label">
+                        领域分类:
+                      </el-col>
+                      <el-col :span="24">
+                        <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-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="scale">
+                      <el-col :span="21" slot="label">
+                        市场预估:
+                      </el-col>
+                      <el-col :span="24">
+                        <p>关键技术所支撑的产品市场规模<el-input v-model.number="form.scale" class="scale"></el-input>(亿元/年)</p>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="one">
+                <el-col :span="24" class="txt">
+                  <span>项目建议单位</span>
+                </el-col>
+                <el-col :span="24" class="info">
+                  <el-col :span="24">
+                    <el-form-item prop="proposal_company">
+                      <el-col :span="21" slot="label">
+                        建议单位名称:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.proposal_company" placeholder="请输入建议单位名称"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="proposal_user">
+                      <el-col :span="21" slot="label">
+                        联系人:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.proposal_user" placeholder="请输入联系人"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="proposal_phone">
+                      <el-col :span="21" slot="label">
+                        联系电话:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.proposal_phone" placeholder="请输入联系电话"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="one">
+                <el-col :span="24" class="txt">
+                  <span>主要合作单位</span>
+                </el-col>
+                <el-col :span="24" class="info">
+                  <el-col :span="24">
+                    <el-form-item prop="coopera_company">
+                      <el-col :span="21" slot="label">
+                        合作单位名称:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.coopera_company" placeholder="请输入合作单位名称"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="coopera_user">
+                      <el-col :span="21" slot="label">
+                        联系人:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.coopera_user" placeholder="请输入联系人"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item prop="coopera_phone">
+                      <el-col :span="21" slot="label">
+                        联系电话:
+                      </el-col>
+                      <el-col :span="24">
+                        <el-input v-model="form.coopera_phone" placeholder="请输入联系电话"></el-input>
+                      </el-col>
+                    </el-form-item>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="one">
+                <el-col :span="24" class="txt">
+                  <span>项目内容简介</span>
+                </el-col>
+                <el-col :span="24" class="info">
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>立项背景</span>(含解决“卡脖子”技术问题及在行业中所处的地位和作用):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="sign">
+                        <el-input
+                          v-model="form.sign"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入立项背景(含解决“卡脖子”技术问题及在行业中所处的地位和作用)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>前期基础</span>(含知识产权状况):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="work_basics">
+                        <el-input
+                          v-model="form.work_basics"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入前期基础(含知识产权状况)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>研究内容</span>(含项目创新点):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="content">
+                        <el-input
+                          v-model="form.content"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入研究内容(含项目创新点)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>技术路线</span>(含拟解决关键技术):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="route">
+                        <el-input
+                          v-model="form.route"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入技术路线(含拟解决关键技术)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>核心指标</span>(要求可量化、可考核、可检测):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="quota">
+                        <el-input
+                          v-model="form.quota"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入核心指标(要求可量化、可考核、可检测)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="24" class="langInfo">
+                    <el-col :span="24" class="title">
+                      <span><sup style="color:#ff0000">*</sup>经济效益</span>(含市场分析和产业化预期):</el-col
+                    >
+                    <el-col :span="24" class="textarea">
+                      <el-form-item prop="influence">
+                        <el-input
+                          v-model="form.influence"
+                          type="textarea"
+                          maxlength="500"
+                          show-word-limit
+                          :autosize="{ minRows: 5, maxRows: 5 }"
+                          placeholder="请输入经济效益(含市场分析和产业化预期)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="btn">
+                <el-button type="primary" size="mini" @click="onSubmit('0')">保存</el-button>
+                <el-button type="success" size="mini" @click="onSubmit('1')">提交</el-button>
+              </el-col>
+            </el-form>
           </el-col>
         </div>
       </el-col>
@@ -17,6 +300,8 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: question } = createNamespacedHelpers('question');
+const { mapActions: projectsolic } = createNamespacedHelpers('projectsolic');
 export default {
   metaInfo() {
     return { title: this.$route.meta.title };
@@ -25,10 +310,102 @@ export default {
   props: {},
   components: {},
   data: function() {
-    return {};
+    return {
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
+        pro_user: [{ required: true, message: '请输入项目负责人', trigger: 'blur' }],
+        pro_phone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+        techol_stage: [{ required: true, message: '请输入技术阶段', trigger: 'blur' }],
+        techol_level: [{ required: true, message: '请输入技术水平', trigger: 'blur' }],
+        field: [{ required: true, message: '请输入领域分类', trigger: 'blur' }],
+        scale: [{ required: true, message: '请输入市场预估', trigger: 'blur' }],
+        proposal_company: [{ required: true, message: '请输入建议单位名称', trigger: 'blur' }],
+        proposal_user: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+        proposal_phone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+        sign: [{ required: true, message: '请输入立项背景(含解决“卡脖子”技术问题及在行业中所处的地位和作用)', trigger: 'blur' }],
+        work_basics: [{ required: true, message: '请输入前期基础(含知识产权状况)', trigger: 'blur' }],
+        content: [{ required: true, message: '请输入研究内容(含项目创新点)', trigger: 'blur' }],
+        route: [{ required: true, message: '请输入技术路线(含拟解决关键技术)', trigger: 'blur' }],
+        quota: [{ required: true, message: '请输入核心指标(要求可量化、可考核、可检测)', trigger: 'blur' }],
+        influence: [{ required: true, message: '请输入经济效益(含市场分析和产业化预期)', trigger: 'blur' }],
+        // coopera_company: [{ required: false, message: '请输入合作单位名称', trigger: 'blur' }],
+        // coopera_user: [{ required: false, message: '请输入联系人', trigger: 'blur' }],
+        // coopera_phone: [{ required: false, message: '请输入联系电话', trigger: 'blur' }],
+      },
+      // 领域分类
+      fieldList: [{ name: '新材料' }, { name: '先进制造' }, { name: '光电子' }, { name: '新一代信息技术' }, { name: '先进技术' }],
+      techolstageList: [{ name: '理论研究' }, { name: '小试' }, { name: '中试' }, { name: '规模化试制' }, { name: '其他' }],
+      // 项目技术水平
+      techollevelList: [{ name: '国际领先' }, { name: '国际先进' }, { name: '国内领先' }, { name: '国内先进' }],
+      // 所属通知
+      questionList: [],
+    };
+  },
+  async created() {
+    await this.searchOther();
+  },
+  methods: {
+    ...question(['query']),
+    ...projectsolic(['create']),
+    async onSubmit(status) {
+      let data = this.form;
+      data.user_id = this.user.userid;
+      data.status = status;
+      if (status == '0') {
+        this.$alert(
+          '<strong><p>1:用户</p><p>当您进行项目征集时,系统会自动提取项目负责人和联系电话进行平台用户注册,您可用【联系电话】和【初始密码(111111)】进行登录。</p><p>2:保存按钮</p><p>保存按钮,是您填写的信息处于草稿状态,您可到个人中心查看并进行修改与提交。</p></strong>',
+          '信息提示',
+          {
+            dangerouslyUseHTMLString: true,
+            showConfirmButton: true,
+            showCancelButton: true,
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+          }
+        )
+          .then(async () => {
+            let res = await this.create(data);
+            if (this.$checkRes(res)) {
+              this.$message({
+                message: '数据添加成功',
+                type: 'success',
+              });
+            }
+          })
+          .catch(() => {});
+      } else {
+        this.$alert(
+          '<strong><p>1:用户</p><p>当您进行项目征集时,系统会自动提取项目负责人和联系电话进行平台用户注册,您可用【联系电话】和【初始密码(111111)】进行登录。</p><p>2:提交按钮</p><p>提交按钮,是您填写的信息处于已发布状态,已发布状态下的项目征集信息是不允许修改的,请您谨慎填写。您也可到个人中心查看提交记录。</p></strong>',
+          '信息提示',
+          {
+            dangerouslyUseHTMLString: true,
+            showConfirmButton: true,
+            showCancelButton: true,
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+          }
+        )
+          .then(async () => {
+            let res = await this.create(data);
+            if (this.$checkRes(res)) {
+              this.$message({
+                message: '数据添加成功',
+                type: 'success',
+              });
+            }
+          })
+          .catch(() => {});
+      }
+    },
+    // 查询通知
+    async searchOther() {
+      let res = await this.query();
+      if (this.$checkRes(res)) {
+        this.$set(this, `questionList`, res.data);
+      }
+    },
   },
-  created() {},
-  methods: {},
   computed: {
     ...mapState(['user']),
   },
@@ -40,5 +417,65 @@ export default {
 .main {
   min-height: 557px;
   padding: 15px 0;
+  .top {
+    font-size: 25px;
+    margin: 40px 0;
+    text-align: center;
+  }
+  .down {
+    margin: 15px 0 0 0;
+    .one {
+      position: relative;
+      border: 1px solid #41719c;
+      margin: 0 0 35px 0;
+      min-height: 150px;
+      .txt {
+        position: absolute;
+        top: -22px;
+        text-align: center;
+        span {
+          height: 40px;
+          line-height: 40px;
+          display: inline-block;
+          padding: 0 35px;
+          background: #fff;
+          font-weight: bold;
+          font-size: 18px;
+        }
+      }
+      .info {
+        padding: 20px 10px 10px 10px;
+        /deep/.langSelect .el-select {
+          width: 100%;
+        }
+        .scale {
+          width: 18%;
+          margin: 0 5px;
+          /deep/.el-input__inner {
+            padding: 0 5px;
+          }
+        }
+        .langInfo {
+          margin: 0 0 10px 0;
+          .title {
+            font-size: 14px;
+            color: #606266;
+            padding: 10px 0;
+            span {
+              font-size: 18px;
+              font-weight: bold;
+            }
+          }
+          /deep/.el-form-item__content {
+            margin-left: 0px !important;
+          }
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      padding: 10px 0;
+    }
+  }
 }
 </style>