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