|
@@ -1,529 +0,0 @@
|
|
|
-<template>
|
|
|
- <div id="fabu">
|
|
|
- <el-row>
|
|
|
- <el-col :span="24" class="fabu">
|
|
|
- <el-col :span="24" class="top">
|
|
|
- <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="info">
|
|
|
- <van-tabs v-model="activeName">
|
|
|
- <van-tab title="科技需求" name="a">
|
|
|
- <van-form ref="form" :model="form" :rules="rules">
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.company" name="company" label="企业名称" placeholder="请输入企业名称" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.phone" name="phone" label="联系电话" placeholder="请输入联系电话" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.email" name="email" label="电子邮箱" placeholder="请输入电子邮箱" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.contacts" name="contacts" label="联系人" placeholder="请输入联系人" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.qqwx" name="qqwx" label="QQ/微信" placeholder="请输入QQ/微信" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.name" name="name" label="需求名称" placeholder="请输入需求名称" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- readonly
|
|
|
- clickable
|
|
|
- name="picker"
|
|
|
- :value="form.degreeurgency"
|
|
|
- label="需求紧急程度"
|
|
|
- placeholder="点击选择需求紧急程度"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field readonly clickable name="picker" :value="form.field" label="所属领域" placeholder="点击选择所属领域" @click="showPicker = true" />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns1" @confirm="onConfirm1" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.budget" name="budget" label="投资预算" placeholder="请输入投资预算" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- readonly
|
|
|
- clickable
|
|
|
- name="picker"
|
|
|
- :value="form.cooperation"
|
|
|
- label="合作方式"
|
|
|
- placeholder="点击选择合作方式"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns2" @confirm="onConfirm2" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.requirementdesc"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="技术说明"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入技术难题/需求说明"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.expect" maxlength="300" rows="1" show-word-limit label="预期目标" type="textarea" placeholder="请输入预期目标" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.present" maxlength="300" rows="1" show-word-limit label="需求现状" type="textarea" placeholder="请输入需求现状" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.condition"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="合作条件及要求"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入合作条件及要求"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :span="24" class="langInfoImage">
|
|
|
- <van-field name="expertimage" label="产品图片(6)">
|
|
|
- <template #input
|
|
|
- ><upload
|
|
|
- :limit="6"
|
|
|
- :data="form.image"
|
|
|
- type="image"
|
|
|
- :url="`/files/imgpath/upload`"
|
|
|
- @upload="uploadSuccess"
|
|
|
- :uploadBtn="true"
|
|
|
- @delete="uploadDelete"
|
|
|
- ></upload>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- </el-col>
|
|
|
- </van-form>
|
|
|
- </van-tab>
|
|
|
- <van-tab title="科技成果" name="b">
|
|
|
- <van-form ref="form" :model="form" :rules="rules">
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.company" name="company" label="企业名称" placeholder="请输入企业名称" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.phone" name="phone" label="联系电话" placeholder="请输入联系电话" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.email" name="email" label="电子邮箱" placeholder="请输入电子邮箱" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.contacts" name="contacts" label="联系人" placeholder="请输入联系人" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.qqwx" name="qqwx" label="QQ/微信" placeholder="请输入QQ/微信" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.name" name="name" label="成果名称" placeholder="请输入成果名称" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field readonly clickable name="picker" :value="form.field" label="所属领域" placeholder="点击选择所属领域" @click="showPicker = true" />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns1" @confirm="onConfirm1" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- readonly
|
|
|
- clickable
|
|
|
- name="picker"
|
|
|
- :value="form.cooperation"
|
|
|
- label="合作方式"
|
|
|
- placeholder="点击选择合作方式"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns2" @confirm="onConfirm2" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- readonly
|
|
|
- clickable
|
|
|
- name="picker"
|
|
|
- :value="form.achievestatus"
|
|
|
- label="成果状态"
|
|
|
- placeholder="点击选择成果状态"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns3" @confirm="onConfirm3" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.achieveown" name="achieveown" label="成果权属" placeholder="请输入成果权属" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- readonly
|
|
|
- clickable
|
|
|
- name="picker"
|
|
|
- :value="form.achievesource"
|
|
|
- label="成果来源"
|
|
|
- placeholder="点击选择成果来源"
|
|
|
- @click="showPicker = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
- <van-picker show-toolbar :columns="columns4" @confirm="onConfirm4" @cancel="showPicker = false" />
|
|
|
- </van-popup>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.intentionprice" name="intentionprice" label="意向价格" placeholder="请输入意向价格" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.patentinfo" name="intentionprice" label="专利信息" placeholder="请输入专利信息" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="langInfoImage">
|
|
|
- <van-field name="expertimage" label="项目路演">
|
|
|
- <template #input
|
|
|
- ><uploadraw
|
|
|
- :limit="1"
|
|
|
- :data="form.roadshow"
|
|
|
- type="roadshow"
|
|
|
- listType=""
|
|
|
- :url="'/files/roadshow/upload'"
|
|
|
- @upload="uploadroadshow"
|
|
|
- @delete="uploaddelroadshow"
|
|
|
- ></uploadraw>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.achievebrief"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="成果简介"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入成果简介"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.features" maxlength="300" rows="1" show-word-limit label="技术特点" type="textarea" placeholder="请输入技术特点" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.team" maxlength="300" rows="1" show-word-limit label="技术团队" type="textarea" placeholder="请输入技术团队" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.expectations"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="商业预期"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入商业预期"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.condition"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="合作条件及要求"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入合作条件及要求"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="langInfoImage">
|
|
|
- <van-field name="expertimage" label="产品图片(6)">
|
|
|
- <template #input
|
|
|
- ><upload
|
|
|
- :limit="6"
|
|
|
- :data="form.image"
|
|
|
- type="image"
|
|
|
- :url="`/files/imgpath/upload`"
|
|
|
- @upload="uploadSuccess"
|
|
|
- :uploadBtn="true"
|
|
|
- @delete="uploadDelete"
|
|
|
- ></upload>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- </el-col>
|
|
|
- </van-form>
|
|
|
- </van-tab>
|
|
|
- <van-tab title="商务服务" name="c">
|
|
|
- <van-form ref="form" :model="form" :rules="rules">
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.company" name="company" label="企业名称" placeholder="请输入企业名称" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.phone" name="phone" label="联系电话" placeholder="请输入联系电话" readonly />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.email" name="email" label="电子邮箱" placeholder="请输入电子邮箱" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.contacts" name="contacts" label="联系人" placeholder="请输入联系人" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.qqwx" name="qqwx" label="QQ/微信" placeholder="请输入QQ/微信" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.name" name="name" label="信息名称" placeholder="请输入信息名称" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field name="radio" label="信息属性">
|
|
|
- <template #input>
|
|
|
- <van-radio-group v-model="form.messattribute" direction="horizontal">
|
|
|
- <van-radio name="提供方">提供方</van-radio>
|
|
|
- <van-radio name="需求方">需求方</van-radio>
|
|
|
- </van-radio-group>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field name="radio" label="需求程度">
|
|
|
- <template #input>
|
|
|
- <van-radio-group v-model="form.demand" direction="horizontal">
|
|
|
- <van-radio name="特急">特急</van-radio>
|
|
|
- <van-radio name="一般">一般</van-radio>
|
|
|
- <van-radio name="长期">长期</van-radio>
|
|
|
- </van-radio-group>
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.informationdesc"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="信息描述"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入信息描述"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.coreelements"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="核心要素"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入核心要素"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field v-model="form.priceinfo" maxlength="300" rows="1" show-word-limit label="价格信息" type="textarea" placeholder="请输入价格信息" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <van-field
|
|
|
- v-model="form.businessexpect"
|
|
|
- maxlength="300"
|
|
|
- rows="1"
|
|
|
- show-word-limit
|
|
|
- label="商务预期"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入商务预期"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
- </van-form>
|
|
|
- </van-tab>
|
|
|
- </van-tabs>
|
|
|
- <el-col :span="24" class="btn1">
|
|
|
- <el-button @click="draftBtn('form')">保存草稿</el-button>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
-import NavBar from '@/layout/common/topInfo.vue';
|
|
|
-var moment = require('moment');
|
|
|
-import upload from '@/components/upload.vue';
|
|
|
-import uploadraw from '@/components/uploadraw.vue';
|
|
|
-// const { mapActions: markettype } = createNamespacedHelpers('markettype');
|
|
|
-const { mapActions: mapMarketproduct } = createNamespacedHelpers('product');
|
|
|
-const { mapActions: market } = createNamespacedHelpers('marketuser');
|
|
|
-const { mapActions: expertsuser } = createNamespacedHelpers('exportuser');
|
|
|
-
|
|
|
-export default {
|
|
|
- metaInfo() {
|
|
|
- return { title: this.$route.meta.title };
|
|
|
- },
|
|
|
- name: 'fabu',
|
|
|
- props: {},
|
|
|
- components: {
|
|
|
- NavBar,
|
|
|
- upload,
|
|
|
- uploadraw,
|
|
|
- },
|
|
|
- data: function() {
|
|
|
- return {
|
|
|
- form: {},
|
|
|
- // 企业信息&专家信息
|
|
|
- companyInfo: {},
|
|
|
- addpatentform: {},
|
|
|
- addpatent: [],
|
|
|
- activeName: 'a',
|
|
|
- // 头部标题
|
|
|
- title: '',
|
|
|
- // meta为true
|
|
|
- isleftarrow: '',
|
|
|
- // 返回
|
|
|
- navShow: true,
|
|
|
- //需求紧急程度
|
|
|
- columns: ['特急', '一般', '储备'],
|
|
|
- showPicker: false,
|
|
|
- //所属领域
|
|
|
- columns1: ['电子信息技术', '生物与新医药技术', '航空航天技术', '新材料技术', '高技术服务业', '新能源及节能技术', '资源与环境技术', '先进制造与自动化'],
|
|
|
- //合作方式
|
|
|
- columns2: ['合作开发', '技术转让', '技术入股', '其他方式'],
|
|
|
- //成果状态
|
|
|
- columns3: ['原理样机', '实验室阶段', '小试产品', '中试技术', '产业化(成熟)技术'],
|
|
|
- //成果来源
|
|
|
- columns4: ['国家项目', '省级项目', '市级项目', '自选项目'],
|
|
|
- rules: {
|
|
|
- name: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
|
|
|
- contacts: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
|
|
|
- qqwx: [{ required: false, message: '请输入QQ/微信', trigger: 'blur' }],
|
|
|
- },
|
|
|
- };
|
|
|
- },
|
|
|
- created() {
|
|
|
- // this.searchtype();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- // ...markettype({ markettypeList: 'query' }),
|
|
|
- ...mapMarketproduct({ productFetch: 'fetch', productCreate: 'create', productUpdate: 'update' }),
|
|
|
- ...market(['fetch', 'update']),
|
|
|
- ...expertsuser({ expertsuserFetch: 'fetch', expertsuserUpdate: 'update', expertsuserUpgrade: 'upgrade' }),
|
|
|
- //需求紧急程度
|
|
|
- onConfirm(value) {
|
|
|
- if (value) {
|
|
|
- this.$set(this.form, `degreeurgency`, value);
|
|
|
- }
|
|
|
- this.showPicker = false;
|
|
|
- },
|
|
|
- //所属领域
|
|
|
- onConfirm1(value) {
|
|
|
- if (value) {
|
|
|
- this.$set(this.form, `field`, value);
|
|
|
- }
|
|
|
- this.showPicker = false;
|
|
|
- },
|
|
|
- //合作方式
|
|
|
- onConfirm2(value) {
|
|
|
- if (value) {
|
|
|
- this.$set(this.form, `cooperation`, value);
|
|
|
- }
|
|
|
- this.showPicker = false;
|
|
|
- },
|
|
|
- //成果状态
|
|
|
- onConfirm3(value) {
|
|
|
- if (value) {
|
|
|
- this.$set(this.form, `achievestatus`, value);
|
|
|
- }
|
|
|
- this.showPicker = false;
|
|
|
- },
|
|
|
- //成果来源
|
|
|
- onConfirm4(value) {
|
|
|
- if (value) {
|
|
|
- this.$set(this.form, `achievesource`, value);
|
|
|
- }
|
|
|
- this.showPicker = false;
|
|
|
- },
|
|
|
- uploadSuccess({ type, data }) {
|
|
|
- let arr = _.get(this.form, type);
|
|
|
- if (_.isArray(arr)) {
|
|
|
- let datas = { name: data.name, url: data.uri };
|
|
|
- this.form[type].push({ name: data.name, url: data.uri });
|
|
|
- } else {
|
|
|
- let newArr = [{ name: data.name, url: data.uri }];
|
|
|
- this.$set(this.form, `${type}`, newArr);
|
|
|
- }
|
|
|
- },
|
|
|
- // 删除图片
|
|
|
- uploadDelete(index) {
|
|
|
- this.form.image.splice(index, 1);
|
|
|
- },
|
|
|
- uploadroadshow({ type, filetype, data }) {
|
|
|
- this.$set(this.form, `${type}`, data.uri);
|
|
|
- },
|
|
|
- uploaddelroadshow(index) {},
|
|
|
- // 草稿
|
|
|
- async draftBtn({ data }) {
|
|
|
- if (data.id) {
|
|
|
- let res = await this.productUpdate(data);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$message({
|
|
|
- message: '草稿修改成功',
|
|
|
- type: 'success',
|
|
|
- });
|
|
|
- window.location.reload();
|
|
|
- } else {
|
|
|
- this.$message.error('草稿保存失败');
|
|
|
- }
|
|
|
- } else {
|
|
|
- data.patent = this.addpatent;
|
|
|
- data.userid = this.user.uid;
|
|
|
- let res = await this.productCreate(data);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$message({
|
|
|
- message: '草稿创建成功',
|
|
|
- type: 'success',
|
|
|
- });
|
|
|
- window.location.reload();
|
|
|
- } else {
|
|
|
- this.$message.error('草稿创建失败');
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- computed: {
|
|
|
- ...mapState(['user']),
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- this.title = this.$route.meta.title;
|
|
|
- this.isleftarrow = this.$route.meta.isleftarrow;
|
|
|
- },
|
|
|
- metaInfo() {
|
|
|
- return { title: this.$route.meta.title };
|
|
|
- },
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="less" scoped>
|
|
|
-.top {
|
|
|
- height: 46px;
|
|
|
- overflow: hidden;
|
|
|
-}
|
|
|
-/deep/.van-tab {
|
|
|
- text-align: center;
|
|
|
-}
|
|
|
-/deep/.van-tabs--line .van-tabs__wrap {
|
|
|
- height: 70px;
|
|
|
- margin: 0 0 10px 0;
|
|
|
-}
|
|
|
-/deep/.van-tab--active {
|
|
|
- color: red;
|
|
|
-}
|
|
|
-.van-icon {
|
|
|
- font-size: 20px;
|
|
|
-}
|
|
|
-.btn1 {
|
|
|
- text-align: center;
|
|
|
- margin: 15px 0;
|
|
|
-}
|
|
|
-</style>
|