技术转移菜单完成并处理上传图片为数组格式
This commit is contained in:
30
src/api/technology/achievement.js
Normal file
30
src/api/technology/achievement.js
Normal file
@ -0,0 +1,30 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取科技成果列表
|
||||
export function getScienceResultList(params) {
|
||||
return request({
|
||||
url: '/science/getScienceResultList',
|
||||
params
|
||||
});
|
||||
}
|
||||
// 添加/更新/删除科技成果
|
||||
export function handleScienceResult(data) {
|
||||
return request({
|
||||
url: '/science/handleScienceResult',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 获取企业需求数据回显
|
||||
export function getInfo(params) {
|
||||
return request({
|
||||
url: '/science/getInfo',
|
||||
params
|
||||
});
|
||||
}
|
||||
// 根据status查询字典集合 1->技术领域 2->需求类型 3->成熟度 4->合作标签 5->地级市 6->合肥区县 7->城市级别
|
||||
export function getDictListByStatus(params) {
|
||||
return request({
|
||||
url: '/dict/getDictListByStatus',
|
||||
params
|
||||
});
|
||||
}
|
30
src/api/technology/demand.js
Normal file
30
src/api/technology/demand.js
Normal file
@ -0,0 +1,30 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取企业需求列表
|
||||
export function getEnterpriseNeedList(params) {
|
||||
return request({
|
||||
url: '/enterprise/getEnterpriseNeedList',
|
||||
params
|
||||
});
|
||||
}
|
||||
// 添加/更新/删除企业需求
|
||||
export function handleEnterpriseNeed(data) {
|
||||
return request({
|
||||
url: '/enterprise/handleEnterpriseNeed',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 获取企业需求数据回显
|
||||
export function getInfo(params) {
|
||||
return request({
|
||||
url: '/enterprise/getInfo',
|
||||
params
|
||||
});
|
||||
}
|
||||
// 根据status查询字典集合 1->技术领域 2->需求类型 3->成熟度 4->合作标签 5->地级市 6->合肥区县 7->城市级别
|
||||
export function getDictListByStatus(params) {
|
||||
return request({
|
||||
url: '/dict/getDictListByStatus',
|
||||
params
|
||||
});
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<template>
|
||||
<div>
|
||||
<el-upload
|
||||
:action="useOss?ossUploadUrl:minioUploadUrl"
|
||||
:data="useOss?dataObj:null"
|
||||
:action="useOss ? ossUploadUrl : minioUploadUrl"
|
||||
:data="useOss ? dataObj : null"
|
||||
list-type="picture-card"
|
||||
:file-list="fileList"
|
||||
:before-upload="beforeUpload"
|
||||
@ -15,107 +15,105 @@
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisible" :append-to-body="true">
|
||||
<img width="100%" :src="dialogImageUrl" alt="">
|
||||
<img width="100%" :src="dialogImageUrl" alt="" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {policy} from '@/api/oss'
|
||||
import { policy } from '@/api/oss';
|
||||
|
||||
export default {
|
||||
name: 'multiUpload',
|
||||
props: {
|
||||
//图片属性数组
|
||||
value: Array,
|
||||
//最大上传图片数量
|
||||
maxCount:{
|
||||
type:Number,
|
||||
default:5
|
||||
export default {
|
||||
name: 'multiUpload',
|
||||
props: {
|
||||
//图片属性数组
|
||||
value: Array,
|
||||
//最大上传图片数量
|
||||
maxCount: {
|
||||
type: Number,
|
||||
default: 5
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataObj: {
|
||||
policy: '',
|
||||
signature: '',
|
||||
key: '',
|
||||
ossaccessKeyId: '',
|
||||
dir: '',
|
||||
host: ''
|
||||
},
|
||||
dialogVisible: false,
|
||||
dialogImageUrl: null,
|
||||
useOss: false, //使用oss->true;使用MinIO->false
|
||||
ossUploadUrl: 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com',
|
||||
minioUploadUrl: 'http://192.168.0.125:1919/minio/upload'
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
fileList() {
|
||||
let fileList = [];
|
||||
for (let i = 0; i < this.value.length; i++) {
|
||||
fileList.push({ url: this.value[i] });
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataObj: {
|
||||
policy: '',
|
||||
signature: '',
|
||||
key: '',
|
||||
ossaccessKeyId: '',
|
||||
dir: '',
|
||||
host: ''
|
||||
},
|
||||
dialogVisible: false,
|
||||
dialogImageUrl:null,
|
||||
useOss:false, //使用oss->true;使用MinIO->false
|
||||
ossUploadUrl:'http://macro-oss.oss-cn-shenzhen.aliyuncs.com',
|
||||
minioUploadUrl:'http://192.168.99.239:1818/minio/upload',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
fileList() {
|
||||
let fileList=[];
|
||||
for(let i=0;i<this.value.length;i++){
|
||||
fileList.push({url:this.value[i]});
|
||||
}
|
||||
return fileList;
|
||||
return fileList;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitInput(fileList) {
|
||||
let value = [];
|
||||
for (let i = 0; i < fileList.length; i++) {
|
||||
value.push(fileList[i].url);
|
||||
}
|
||||
this.$emit('input', value);
|
||||
},
|
||||
methods: {
|
||||
emitInput(fileList) {
|
||||
let value=[];
|
||||
for(let i=0;i<fileList.length;i++){
|
||||
value.push(fileList[i].url);
|
||||
}
|
||||
this.$emit('input', value)
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
this.emitInput(fileList);
|
||||
},
|
||||
handlePreview(file) {
|
||||
this.dialogVisible = true;
|
||||
this.dialogImageUrl=file.url;
|
||||
},
|
||||
beforeUpload(file) {
|
||||
let _self = this;
|
||||
if(!this.useOss){
|
||||
//不使用oss不需要获取策略
|
||||
return true;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
policy().then(response => {
|
||||
handleRemove(file, fileList) {
|
||||
this.emitInput(fileList);
|
||||
},
|
||||
handlePreview(file) {
|
||||
this.dialogVisible = true;
|
||||
this.dialogImageUrl = file.url;
|
||||
},
|
||||
beforeUpload(file) {
|
||||
let _self = this;
|
||||
if (!this.useOss) {
|
||||
//不使用oss不需要获取策略
|
||||
return true;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
policy()
|
||||
.then(response => {
|
||||
_self.dataObj.policy = response.data.policy;
|
||||
_self.dataObj.signature = response.data.signature;
|
||||
_self.dataObj.ossaccessKeyId = response.data.accessKeyId;
|
||||
_self.dataObj.key = response.data.dir + '/${filename}';
|
||||
_self.dataObj.dir = response.data.dir;
|
||||
_self.dataObj.host = response.data.host;
|
||||
resolve(true)
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
reject(false)
|
||||
resolve(true);
|
||||
})
|
||||
})
|
||||
},
|
||||
handleUploadSuccess(res, file) {
|
||||
let url = this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name;
|
||||
if(!this.useOss){
|
||||
//不使用oss直接获取图片路径
|
||||
url = res.data.url;
|
||||
}
|
||||
this.fileList.push({name: file.name,url:url});
|
||||
this.emitInput(this.fileList);
|
||||
},
|
||||
handleExceed(files, fileList) {
|
||||
this.$message({
|
||||
message: '最多只能上传'+this.maxCount+'张图片',
|
||||
type: 'warning',
|
||||
duration:1000
|
||||
});
|
||||
},
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
reject(false);
|
||||
});
|
||||
});
|
||||
},
|
||||
handleUploadSuccess(res, file) {
|
||||
let url = this.dataObj.host + '/' + this.dataObj.dir + '/' + file.name;
|
||||
if (!this.useOss) {
|
||||
//不使用oss直接获取图片路径
|
||||
url = res.data.url;
|
||||
}
|
||||
this.fileList.push({ name: file.name, url: url });
|
||||
this.emitInput(this.fileList);
|
||||
},
|
||||
handleExceed(files, fileList) {
|
||||
this.$message({
|
||||
message: '最多只能上传' + this.maxCount + '张图片',
|
||||
type: 'warning',
|
||||
duration: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<style></style>
|
||||
|
@ -12,40 +12,39 @@
|
||||
<el-form-item label="成果标题" prop="title">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.title"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="成果图片" prop="pic">
|
||||
<!-- :maxCount="1" -->
|
||||
<multi-upload v-model="selectProductPics"></multi-upload>
|
||||
<el-form-item label="成果图片" prop="picList">
|
||||
<multi-upload v-model="selectProductPics" :maxCount="1"></multi-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="技术领域" prop="level">
|
||||
<el-select v-model="ruleForm.level" placeholder="请选择">
|
||||
<el-form-item label="技术领域" prop="field">
|
||||
<el-select v-model="ruleForm.field" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in levelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item in optionList1"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="成熟度" prop="attribute">
|
||||
<el-select v-model="ruleForm.attribute" placeholder="请选择">
|
||||
<el-form-item label="成熟度" prop="maturityId">
|
||||
<el-select v-model="ruleForm.maturityId" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in attributeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item in optionList2"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="成果企业" prop="source">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.source"></el-input>
|
||||
<el-form-item label="成果企业" prop="company">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.company"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="合作标签" prop="attribute">
|
||||
<el-select v-model="ruleForm.attribute" placeholder="请选择">
|
||||
<el-form-item label="合作标签" prop="labelId">
|
||||
<el-select v-model="ruleForm.labelId" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in attributeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item in optionList3"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -63,7 +62,8 @@
|
||||
</template>
|
||||
<script>
|
||||
import Editor from '@/components/Editor';
|
||||
import { addPolicy, updatePolicy, getPolicyInfo } from '@/api/policy/library';
|
||||
import { getDictListByStatus } from '@/api/technology/demand';
|
||||
import { handleScienceResult, getInfo } from '@/api/technology/achievement';
|
||||
import MultiUpload from '@/components/Upload/multiUpload';
|
||||
export default {
|
||||
components: {
|
||||
@ -85,99 +85,69 @@ export default {
|
||||
editPage: false,
|
||||
ruleForm: {
|
||||
title: '',
|
||||
pic: '',
|
||||
level: '',
|
||||
attribute: '',
|
||||
source: '',
|
||||
source2: '',
|
||||
picList: '',
|
||||
field: '',
|
||||
maturityId: '',
|
||||
company: '',
|
||||
labelId: '',
|
||||
text: ''
|
||||
},
|
||||
// 归口选项
|
||||
attributeOptions: [
|
||||
{
|
||||
value: 'KJJ',
|
||||
label: '科技'
|
||||
},
|
||||
{
|
||||
value: 'JXJ',
|
||||
label: '经信'
|
||||
},
|
||||
{
|
||||
value: 'FGW',
|
||||
label: '发改'
|
||||
},
|
||||
{
|
||||
value: 'qita',
|
||||
label: '其他'
|
||||
}
|
||||
],
|
||||
// 级别选项
|
||||
levelOptions: [
|
||||
{
|
||||
value: 1,
|
||||
label: '省级'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '市级'
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: '区级'
|
||||
}
|
||||
],
|
||||
optionList1: [],
|
||||
optionList2: [],
|
||||
optionList3: [],
|
||||
rules: {
|
||||
title: [{ required: true, message: '请输入', trigger: 'blur' }],
|
||||
level: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
attribute: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
source: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
source2: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
text: [{ required: true, message: '请填写内容', trigger: 'blur' }]
|
||||
// pic: [{ required: true, validator: valiIcon }]
|
||||
field: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
maturityId: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
company: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
labelId: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
text: [{ required: true, message: '请填写内容', trigger: 'blur' }],
|
||||
picList: [{ required: true, message: '请上传', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
//商品的主图和画册图片
|
||||
//主图和画册图片
|
||||
selectProductPics: {
|
||||
get: function() {
|
||||
let pics = [];
|
||||
if (
|
||||
this.ruleForm.pic === undefined ||
|
||||
this.ruleForm.pic == null ||
|
||||
this.ruleForm.pic === ''
|
||||
this.ruleForm.picList === undefined ||
|
||||
this.ruleForm.picList == null ||
|
||||
this.ruleForm.picList === ''
|
||||
) {
|
||||
return pics;
|
||||
}
|
||||
pics.push(this.value.pic);
|
||||
// if (
|
||||
// this.value.albumPics === undefined ||
|
||||
// this.value.albumPics == null ||
|
||||
// this.value.albumPics === ''
|
||||
// ) {
|
||||
// return pics;
|
||||
// }
|
||||
// let albumPics = this.value.albumPics.split(',');
|
||||
// for (let i = 0; i < albumPics.length; i++) {
|
||||
// pics.push(albumPics[i]);
|
||||
// }
|
||||
// return pics;
|
||||
pics.push(this.ruleForm.picList);
|
||||
if (
|
||||
this.ruleForm.albumPics === undefined ||
|
||||
this.ruleForm.albumPics == null ||
|
||||
this.ruleForm.albumPics === ''
|
||||
) {
|
||||
return pics;
|
||||
}
|
||||
let albumPics = this.ruleForm.albumPics.split(',');
|
||||
for (let i = 0; i < albumPics.length; i++) {
|
||||
pics.push(albumPics[i]);
|
||||
}
|
||||
return pics;
|
||||
},
|
||||
set: function(newValue) {
|
||||
if (newValue == null || newValue.length === 0) {
|
||||
this.ruleForm.pic = null;
|
||||
// this.value.albumPics = null;
|
||||
this.ruleForm.picList = null;
|
||||
this.ruleForm.albumPics = null;
|
||||
} else {
|
||||
this.value.pic = newValue[0];
|
||||
// this.value.albumPics = '';
|
||||
// if (newValue.length > 1) {
|
||||
// for (let i = 1; i < newValue.length; i++) {
|
||||
// this.value.albumPics += newValue[i];
|
||||
// if (i !== newValue.length - 1) {
|
||||
// this.value.albumPics += ',';
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// this.ruleForm.picList = newValue[0];
|
||||
this.ruleForm.picList = newValue;
|
||||
this.ruleForm.albumPics = '';
|
||||
if (newValue.length > 1) {
|
||||
for (let i = 1; i < newValue.length; i++) {
|
||||
this.ruleForm.albumPics += newValue[i];
|
||||
if (i !== newValue.length - 1) {
|
||||
this.ruleForm.albumPics += ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -186,18 +156,23 @@ export default {
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.editPage) {
|
||||
// 修改
|
||||
updatePolicy(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
});
|
||||
} else {
|
||||
// 添加
|
||||
addPolicy(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
});
|
||||
}
|
||||
this.$router.go(-1);
|
||||
console.log(this.ruleForm);
|
||||
// if (this.editPage) {
|
||||
// // 修改
|
||||
// updatePolicy(this.ruleForm).then(({ message }) => {
|
||||
// this.msgSuccess(message);
|
||||
// });
|
||||
// } else {
|
||||
// // 添加
|
||||
// addPolicy(this.ruleForm).then(({ message }) => {
|
||||
// this.msgSuccess(message);
|
||||
// });
|
||||
// }
|
||||
// this.$router.go(-1);
|
||||
handleScienceResult(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
this.$router.go(-1);
|
||||
});
|
||||
} else {
|
||||
console.log('error submit!!');
|
||||
return false;
|
||||
@ -209,10 +184,19 @@ export default {
|
||||
// }
|
||||
},
|
||||
created() {
|
||||
getDictListByStatus({ type: 1 }).then(({ data }) => {
|
||||
this.optionList1 = data;
|
||||
});
|
||||
getDictListByStatus({ type: 3 }).then(({ data }) => {
|
||||
this.optionList2 = data;
|
||||
});
|
||||
getDictListByStatus({ type: 4 }).then(({ data }) => {
|
||||
this.optionList3 = data;
|
||||
});
|
||||
let { id } = this.$route.query;
|
||||
if (id) {
|
||||
this.editPage = true;
|
||||
getPolicyInfo({ policyId: id }).then(({ data }) => {
|
||||
getInfo({ id }).then(({ data }) => {
|
||||
this.ruleForm = data;
|
||||
});
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
||||
align="center"
|
||||
type="index"
|
||||
></el-table-column>
|
||||
<el-table-column label="成果标题" prop="name" align="center">
|
||||
<el-table-column label="成果标题" prop="title" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary" :underline="false">{{
|
||||
scope.row.title
|
||||
@ -51,37 +51,34 @@
|
||||
<el-table-column
|
||||
label="技术领域"
|
||||
align="center"
|
||||
prop="listDate"
|
||||
prop="fieldName"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="成熟度"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="maturityName"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="合作标签"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="labelName"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="成果企业"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="company"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="发布日期"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="createTime"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handlePage(scope.row.id)" type="text" size="small"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="handleDelete(scope.row.id)"
|
||||
type="text"
|
||||
size="small"
|
||||
<el-button @click="handleDelete(scope.row)" type="text" size="small"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
@ -90,7 +87,10 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getPolicyRead, delRead } from '@/api/front/unscramble';
|
||||
import {
|
||||
getScienceResultList,
|
||||
handleScienceResult
|
||||
} from '@/api/technology/achievement';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -126,7 +126,7 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
getList() {
|
||||
getPolicyRead(this.queryParams).then(({ data }) => {
|
||||
getScienceResultList(this.queryParams).then(({ data }) => {
|
||||
this.unscrambleList = data.list;
|
||||
});
|
||||
},
|
||||
@ -135,14 +135,15 @@ export default {
|
||||
this.$router.push({ path: '/technology/addAchievement', query: { id } });
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(id) {
|
||||
handleDelete(row) {
|
||||
this.$confirm('确认删除该数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(function() {
|
||||
return delRead({ id });
|
||||
row.status = -1;
|
||||
return handleScienceResult(row);
|
||||
})
|
||||
.then(() => {
|
||||
this.getList();
|
||||
|
@ -12,31 +12,31 @@
|
||||
<el-form-item label="需求标题" prop="title">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.title"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="技术领域" prop="level">
|
||||
<el-select v-model="ruleForm.level" placeholder="请选择">
|
||||
<el-form-item label="技术领域" prop="field">
|
||||
<el-select v-model="ruleForm.field" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in levelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item in optionList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求类型" prop="attribute">
|
||||
<el-select v-model="ruleForm.attribute" placeholder="请选择">
|
||||
<el-form-item label="需求类型" prop="type">
|
||||
<el-select v-model="ruleForm.type" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in attributeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
v-for="item in typeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求企业" prop="source">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.source"></el-input>
|
||||
<el-form-item label="需求企业" prop="company">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.company"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="价格" prop="source2">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.source2"></el-input>
|
||||
<el-form-item label="价格" prop="price">
|
||||
<el-input placeholder="请输入" v-model="ruleForm.price"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="正文" prop="text">
|
||||
<editor v-model="ruleForm.text" :min-height="192" />
|
||||
@ -52,7 +52,11 @@
|
||||
</template>
|
||||
<script>
|
||||
import Editor from '@/components/Editor';
|
||||
import { addPolicy, updatePolicy, getPolicyInfo } from '@/api/policy/library';
|
||||
import {
|
||||
getDictListByStatus,
|
||||
handleEnterpriseNeed,
|
||||
getInfo
|
||||
} from '@/api/technology/demand';
|
||||
export default {
|
||||
components: {
|
||||
Editor
|
||||
@ -62,52 +66,22 @@ export default {
|
||||
editPage: false,
|
||||
ruleForm: {
|
||||
title: '',
|
||||
level: '',
|
||||
attribute: '',
|
||||
source: '',
|
||||
source2: '',
|
||||
field: '',
|
||||
type: '',
|
||||
company: '',
|
||||
price: '',
|
||||
text: ''
|
||||
},
|
||||
// 归口选项
|
||||
attributeOptions: [
|
||||
{
|
||||
value: 'KJJ',
|
||||
label: '科技'
|
||||
},
|
||||
{
|
||||
value: 'JXJ',
|
||||
label: '经信'
|
||||
},
|
||||
{
|
||||
value: 'FGW',
|
||||
label: '发改'
|
||||
},
|
||||
{
|
||||
value: 'qita',
|
||||
label: '其他'
|
||||
}
|
||||
],
|
||||
// 级别选项
|
||||
levelOptions: [
|
||||
{
|
||||
value: 1,
|
||||
label: '省级'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '市级'
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: '区级'
|
||||
}
|
||||
],
|
||||
// 需求类型
|
||||
typeList: [],
|
||||
// 技术领域
|
||||
optionList: [],
|
||||
rules: {
|
||||
title: [{ required: true, message: '请输入', trigger: 'blur' }],
|
||||
level: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
attribute: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
source: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
source2: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
field: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
type: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
company: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
price: [{ required: true, message: '请填写', trigger: 'blur' }],
|
||||
text: [{ required: true, message: '请填写内容', trigger: 'blur' }]
|
||||
}
|
||||
};
|
||||
@ -116,18 +90,21 @@ export default {
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.editPage) {
|
||||
// 修改
|
||||
updatePolicy(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
});
|
||||
} else {
|
||||
// 添加
|
||||
addPolicy(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
});
|
||||
}
|
||||
this.$router.go(-1);
|
||||
// if (this.editPage) {
|
||||
// // 修改
|
||||
// updatePolicy(this.ruleForm).then(({ message }) => {
|
||||
// this.msgSuccess(message);
|
||||
// });
|
||||
// } else {
|
||||
// // 添加
|
||||
// addPolicy(this.ruleForm).then(({ message }) => {
|
||||
// this.msgSuccess(message);
|
||||
// });
|
||||
// }
|
||||
handleEnterpriseNeed(this.ruleForm).then(({ message }) => {
|
||||
this.msgSuccess(message);
|
||||
this.$router.go(-1);
|
||||
});
|
||||
} else {
|
||||
console.log('error submit!!');
|
||||
return false;
|
||||
@ -139,10 +116,16 @@ export default {
|
||||
// }
|
||||
},
|
||||
created() {
|
||||
getDictListByStatus({ type: 1 }).then(({ data }) => {
|
||||
this.optionList = data;
|
||||
});
|
||||
getDictListByStatus({ type: 2 }).then(({ data }) => {
|
||||
this.typeList = data;
|
||||
});
|
||||
let { id } = this.$route.query;
|
||||
if (id) {
|
||||
this.editPage = true;
|
||||
getPolicyInfo({ policyId: id }).then(({ data }) => {
|
||||
getInfo({ id }).then(({ data }) => {
|
||||
this.ruleForm = data;
|
||||
});
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
||||
align="center"
|
||||
type="index"
|
||||
></el-table-column>
|
||||
<el-table-column label="需求标题" prop="name" align="center">
|
||||
<el-table-column label="需求标题" prop="title" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary" :underline="false">{{
|
||||
scope.row.title
|
||||
@ -51,37 +51,34 @@
|
||||
<el-table-column
|
||||
label="技术领域"
|
||||
align="center"
|
||||
prop="listDate"
|
||||
prop="fieldName"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="需求类型"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="typeName"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="需求企业"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="company"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="价格"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="price"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="发布日期"
|
||||
align="center"
|
||||
prop="source"
|
||||
prop="createTime"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handlePage(scope.row.id)" type="text" size="small"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="handleDelete(scope.row.id)"
|
||||
type="text"
|
||||
size="small"
|
||||
<el-button @click="handleDelete(scope.row)" type="text" size="small"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
@ -90,7 +87,10 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getPolicyRead, delRead } from '@/api/front/unscramble';
|
||||
import {
|
||||
getEnterpriseNeedList,
|
||||
handleEnterpriseNeed
|
||||
} from '@/api/technology/demand';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -98,26 +98,7 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 100
|
||||
},
|
||||
unscrambleList: [],
|
||||
// 归口选项
|
||||
attributeOptions: [
|
||||
{
|
||||
value: 'KJJ',
|
||||
label: '科技'
|
||||
},
|
||||
{
|
||||
value: 'JXJ',
|
||||
label: '经信'
|
||||
},
|
||||
{
|
||||
value: 'FGW',
|
||||
label: '发改'
|
||||
},
|
||||
{
|
||||
value: 'qita',
|
||||
label: '其他'
|
||||
}
|
||||
]
|
||||
unscrambleList: []
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
@ -126,7 +107,7 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
getList() {
|
||||
getPolicyRead(this.queryParams).then(({ data }) => {
|
||||
getEnterpriseNeedList(this.queryParams).then(({ data }) => {
|
||||
this.unscrambleList = data.list;
|
||||
});
|
||||
},
|
||||
@ -135,14 +116,15 @@ export default {
|
||||
this.$router.push({ path: '/technology/addDemand', query: { id } });
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(id) {
|
||||
handleDelete(row) {
|
||||
this.$confirm('确认删除该数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(function() {
|
||||
return delRead({ id });
|
||||
row.status = -1;
|
||||
return handleEnterpriseNeed(row);
|
||||
})
|
||||
.then(() => {
|
||||
this.getList();
|
||||
|
Reference in New Issue
Block a user