技术转移菜单完成并处理上传图片为数组格式

This commit is contained in:
熊丽君
2021-07-28 09:44:48 +08:00
parent c29b023448
commit 309d6e7a09
7 changed files with 328 additions and 320 deletions

View File

@ -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;
});
}

View File

@ -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();

View File

@ -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;
});
}

View File

@ -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();