|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div id="liveApply">
|
|
|
- <div class="w_0100">
|
|
|
+ <!-- <div class="w_0100">
|
|
|
<div class="w_1200">
|
|
|
<div class="liveApply">
|
|
|
<el-col :span="24" class="liveApplyTop">
|
|
@@ -50,33 +50,225 @@
|
|
|
</el-col>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="w_1200">
|
|
|
+ <el-col :span="24" class="top">
|
|
|
+ <el-col :span="3">
|
|
|
+ <el-image :src="logo" style="width:105px;height:105px;"></el-image>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="20">
|
|
|
+ <p>温馨提示:</p>
|
|
|
+ <p>1、为了保证您的信息能顺利通过我们的审核,请将信息的真实情况尽可能全面的发布出来!</p>
|
|
|
+ <p>
|
|
|
+ 2、根据我们的长期跟踪统计,信息完整度越高,越容易获得目标客户的关注!3、信息完整度越高,将在我们的平台搜索结果排序靠前、获得推荐机会,以及享受增值服务试用机会!
|
|
|
+ </p>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="info">
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
+ <el-tab-pane label="需求申请" name="first">
|
|
|
+ <el-form :model="demandForm" :rules="demandFormrules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
|
|
|
+ <el-form-item label="产品类型" prop="totaltype">
|
|
|
+ <el-select v-model="demandForm.totaltype" placeholder="请选择产品类型">
|
|
|
+ <el-option label="技术" value="0"></el-option>
|
|
|
+ <el-option label="产品" value="1" disabled></el-option>
|
|
|
+ <el-option label="服务" value="2" disabled></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="活动名称">
|
|
|
+ <el-input v-model="demandForm.name"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="名称" prop="name">
|
|
|
+ <el-input v-model="demandForm.name" placeholder="请输入名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型">
|
|
|
+ <el-select v-model="demandForm.product_type_id" filterable @change="selectChild">
|
|
|
+ <el-option v-for="(item, index) in columnList" :key="index" :value="item.id" :label="item.name"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品简介">
|
|
|
+ <el-input type="textarea" v-model="demandForm.introduction" placeholder="请输入产品简介"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="研发阶段">
|
|
|
+ <el-select v-model="demandForm.phase" placeholder="请选择研发阶段">
|
|
|
+ <el-option label="阶段成果" value="0"></el-option>
|
|
|
+ <el-option label="最终成果" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="产品单价">
|
|
|
+ <el-input v-model="demandForm.price" placeholder="请输入产品单价"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="产品单位">
|
|
|
+ <el-select v-model="demandForm.priceunit" placeholder="请选择产品单位">
|
|
|
+ <el-option label="公斤" value="0"></el-option>
|
|
|
+ <el-option label="套" value="1"></el-option>
|
|
|
+ <el-option label="件" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="产品图片" prop="image">
|
|
|
+ <upload
|
|
|
+ :limit="6"
|
|
|
+ :data="demandForm.image"
|
|
|
+ :uploadBtn="true"
|
|
|
+ type="image"
|
|
|
+ :url="`/files/image/upload`"
|
|
|
+ @upload="uploadSuccess"
|
|
|
+ @delete="uploadDelete"
|
|
|
+ ></upload>
|
|
|
+ </el-form-item>
|
|
|
+ <span>
|
|
|
+ <el-form-item label="所属领域">
|
|
|
+ <el-select v-model="demandForm.field" placeholder="请选择所属领域">
|
|
|
+ <el-option label="先进制造" value="0"></el-option>
|
|
|
+ <el-option label="新材料" value="1"></el-option>
|
|
|
+ <el-option label="光电子" value="2"></el-option>
|
|
|
+ <el-option label="信息技术" value="3"></el-option>
|
|
|
+ <el-option label="文化和科技融合" value="4"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
+ <el-form-item label="服务范围">
|
|
|
+ <el-input type="textarea" v-model="demandForm.scope" placeholder="请输入服务范围"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="合作方式">
|
|
|
+ <el-select v-model="demandForm.coopermode" placeholder="请选择合作方式">
|
|
|
+ <el-option label="技术转让" value="0"></el-option>
|
|
|
+ <el-option label="技术服务" value="1"></el-option>
|
|
|
+ <el-option label="技术许可" value="2"></el-option>
|
|
|
+ <el-option label="技术融资" value="3"></el-option>
|
|
|
+ <el-option label="其他" value="4"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="交易方式">
|
|
|
+ <el-select v-model="demandForm.business" placeholder="请选择交易方式">
|
|
|
+ <el-option label="公用" value="0"></el-option>
|
|
|
+ <el-option label="竞价" value="1"></el-option>
|
|
|
+ <el-option label="转让" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="投入预算">
|
|
|
+ <el-input v-model="demandForm.budget" placeholder="请输入投入预算"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="需求截止日期">
|
|
|
+ <el-date-picker v-model="demandForm.end_date" type="date" placeholder="请选择需求截止日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <span slot="label">
|
|
|
+ <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="(阐述在生产经营、项目建设、科研活动、产业化方向中遇到的技术难题或瓶颈问题及需达到的技术指标)"
|
|
|
+ >
|
|
|
+ <span slot="reference" style="color:#409eff">难题或瓶颈问题</span>
|
|
|
+ </el-popover>
|
|
|
+ </span>
|
|
|
+ <el-input type="textarea" v-model="demandForm.difficult_problem" placeholder="请输入难题或瓶颈问题"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <span slot="label">
|
|
|
+ <el-popover
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover"
|
|
|
+ content="(企业承接成果、技术所具备的技术人员、设备、资金等基础条件及其他配套条件)"
|
|
|
+ >
|
|
|
+ <span slot="reference" style="color:#409eff">企业解决技术需求已具备的条件</span>
|
|
|
+ </el-popover>
|
|
|
+ </span>
|
|
|
+ <el-input type="textarea" v-model="demandForm.demand" placeholder="请输入企业解决需求"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系人" prop="contact_user">
|
|
|
+ <el-input v-model="demandForm.contact_user" placeholder="请输入联系人"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系电话" prop="contact_tel">
|
|
|
+ <el-input v-model.number="demandForm.contact_tel" placeholder="请输入联系电话" maxlength="11"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
|
|
|
+ <el-button @click="resetForm('ruleForm')">取消</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="产品申请" name="second">
|
|
|
+ <el-form :model="productForm" :rules="productFormrules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
|
|
+ <el-form-item label="选择产品">
|
|
|
+ <el-select v-model="productForm.goodsList" multiple placeholder="请选择选择产品">
|
|
|
+ <el-option v-for="(item, index) in goodsLists" :key="index" :label="item.name" :value="item"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
|
|
|
+ <el-button @click="resetForm('ruleForm')">取消</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-col>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+import _ from 'lodash';
|
|
|
+import upload from '@/components/upload.vue';
|
|
|
const { mapActions: mapProduct } = createNamespacedHelpers('marketproduct');
|
|
|
const { mapActions: apply } = createNamespacedHelpers('apply');
|
|
|
-import upload from '@/components/upload.vue';
|
|
|
+const { mapActions: mapMarkettype } = createNamespacedHelpers('markettype');
|
|
|
export default {
|
|
|
name: 'liveApply',
|
|
|
props: {},
|
|
|
components: {
|
|
|
- // upload,
|
|
|
+ upload,
|
|
|
},
|
|
|
data: () => ({
|
|
|
- form: {},
|
|
|
logo: require('@/assets/live/d10_fbb1.png'),
|
|
|
- resource: '',
|
|
|
+ activeName: 'first',
|
|
|
+ // 需求
|
|
|
+ demandForm: {
|
|
|
+ totaltype: '0',
|
|
|
+ },
|
|
|
+ columnList: [], //类型
|
|
|
+ demandFormrules: {
|
|
|
+ name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
|
|
+ totaltype: [{ required: true, message: '请输入名称', trigger: 'change' }],
|
|
|
+ contact_user: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
|
|
|
+ contact_tel: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
|
|
|
+ },
|
|
|
+ // 产品
|
|
|
+ productForm: {},
|
|
|
goodsLists: [],
|
|
|
+ productFormrules: {},
|
|
|
}),
|
|
|
created() {
|
|
|
this.searchInfo();
|
|
|
+ // 查询类型
|
|
|
+ this.maarkettype();
|
|
|
},
|
|
|
methods: {
|
|
|
...mapProduct({ mapProductQuery: 'query', mapProductFetch: 'fetch' }),
|
|
|
...apply({ applyCreate: 'create' }),
|
|
|
+ ...mapMarkettype({ markettypeList: 'query' }),
|
|
|
+ // 查询产品
|
|
|
+ async searchInfo() {
|
|
|
+ let res = await this.mapProductQuery({ userid: this.user.uid });
|
|
|
+ if (res.errcode === 0) {
|
|
|
+ this.$set(this, `goodsLists`, res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 提交
|
|
|
async onSubmit() {
|
|
|
let duplicate = JSON.parse(JSON.stringify(this.form));
|
|
|
let data = { ...duplicate };
|
|
@@ -114,17 +306,38 @@ export default {
|
|
|
let index = this.goodsLists.find(item => item.id == id);
|
|
|
return index;
|
|
|
},
|
|
|
- async searchInfo() {
|
|
|
- let res = await this.mapProductQuery({ userid: this.user.uid });
|
|
|
- if (res.errcode === 0) {
|
|
|
- this.$set(this, `goodsLists`, res.data);
|
|
|
+ // 查询类型
|
|
|
+ async maarkettype({ category = 54, ...info } = {}) {
|
|
|
+ const res = await this.markettypeList({ category, ...info });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `columnList`, res.data);
|
|
|
}
|
|
|
},
|
|
|
- changeuser(label) {
|
|
|
- this.$set(this, 'resource', label);
|
|
|
+ // 类型选择
|
|
|
+ selectChild(product_type_id) {
|
|
|
+ let res = this.columnList.filter(fil => fil.id === product_type_id);
|
|
|
+ if (res.length > 0) {
|
|
|
+ this.$set(this.demandForm, `product_type_name`, res[0].name);
|
|
|
+ }
|
|
|
+ this.$forceUpdate();
|
|
|
},
|
|
|
+ // 图片
|
|
|
uploadSuccess({ type, data }) {
|
|
|
- this.$set(this.form, `${type}`, data.uri);
|
|
|
+ let arr = _.get(this.demandForm, type);
|
|
|
+ if (_.isArray(arr)) {
|
|
|
+ let datas = { name: data.name, url: data.uri };
|
|
|
+ this.demandForm[type].push({ name: data.name, url: data.uri });
|
|
|
+ } else {
|
|
|
+ let newArr = [{ name: data.name, url: data.uri }];
|
|
|
+ this.$set(this.demandForm, `${type}`, newArr);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 删除图片
|
|
|
+ uploadDelete(index) {
|
|
|
+ this.demandForm.image.splice(index, 1);
|
|
|
+ },
|
|
|
+ handleClick(tab, event) {
|
|
|
+ console.log(tab, event);
|
|
|
},
|
|
|
},
|
|
|
computed: {
|
|
@@ -140,34 +353,17 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-@import '~@/style/style.css';
|
|
|
-.liveApply {
|
|
|
- float: left;
|
|
|
- margin: 30px 0;
|
|
|
+.w_1200 {
|
|
|
+ width: 80%;
|
|
|
+ margin: 0 auto;
|
|
|
}
|
|
|
-.liveApply .liveApplyTop {
|
|
|
- float: left;
|
|
|
+.top {
|
|
|
background: #f3faff;
|
|
|
padding: 15px;
|
|
|
border: 1px solid #ccc;
|
|
|
- margin: 0 0 15px 0;
|
|
|
-}
|
|
|
-.liveApplyTop p:first-child {
|
|
|
- font-size: 14px;
|
|
|
- font-weight: bold;
|
|
|
+ margin: 15px 0;
|
|
|
}
|
|
|
-.liveApplyTop p:nth-child(2n) {
|
|
|
- font-size: 12px;
|
|
|
+.info {
|
|
|
padding: 15px 0;
|
|
|
}
|
|
|
-.liveApplyTop p:last-child {
|
|
|
- font-size: 12px;
|
|
|
-}
|
|
|
-.liveApplyInfo {
|
|
|
- padding: 0 100px;
|
|
|
-}
|
|
|
-
|
|
|
-/deep/.el-input__inner {
|
|
|
- width: 1300px;
|
|
|
-}
|
|
|
</style>
|