提交 f8857843 编写于 作者: zhentian.jia's avatar zhentian.jia

对接项目管理 新建项目后端接口

上级 f0f99394
......@@ -12,7 +12,7 @@ const service = axios.create({
// request拦截器
service.interceptors.request.use(config => {
config.headers['sysCode'] = 12
config.headers['token'] = 'C1C5360EEC754092B9EC244147B35BB7'
config.headers['token'] = 'AB14D7D7675E4D09B4B1566170076122'
config.headers['deviceInfo'] = JSON.stringify({ "app_channel": "", "app_mac": "", "app_uuid": "", "app_version": "", "device_brand": "", "device_ip": "", "device_model": "", "device_net": "", "device_ops": "", "resolution_wh": "", "system_level": "", "device_type": '10' })
// if (config.data && config.data.setEntry) {
// config.headers['sysCode'] = config.data.sysCode || 10
......
......@@ -124,6 +124,21 @@ const vueFilter = {
}else {
return '已禁用'
}
},
statusProject: (value) => {
if(value == 1) {
return '草稿'
}else if(value == 2) {
return '未上架'
}else if(value == 3) {
return '审批中'
}else if(value == 4) {
return '已上架'
}else if(value == 5) {
return '已下架'
}else {
return '已拒绝'
}
}
}
export default vueFilter
\ No newline at end of file
......@@ -13,21 +13,21 @@
</el-steps>
</el-col>
<el-col :span="5" :offset="5">
<el-button size="small">暂存</el-button>
<el-button size="small" @click="storage">暂存</el-button>
<el-button v-if="active<2" size="small" class="button-green" @click="nextStep">下一步</el-button>
<el-button v-if="active>=2" size="small" class="button-white" @click="nextStep">完成</el-button>
<el-button v-if="active>=2" size="small" class="button-white" @click="complete">完成</el-button>
</el-col>
</el-row>
<div class="first-step" v-if="active === 0">
<el-form ref="formData" :model="formData" :rules="rules" label-width="150px">
<el-form-item label="项目名称:" prop="name">
<el-form-item label="项目名称:" prop="projectName">
<el-col :span="13">
<el-input v-model="formData.projectName" placeholder="请输入项目名称"></el-input>
</el-col>
</el-form-item>
<el-form-item label="项目时间:" required>
<el-col :span="6">
<el-form-item prop="date1">
<el-form-item prop="projectBegintime">
<el-date-picker
type="date"
placeholder="请选择项目时间"
......@@ -38,7 +38,7 @@
</el-col>
<el-col :span="1">&nbsp;&nbsp;&nbsp; ~</el-col>
<el-col :span="6">
<el-form-item prop="date2">
<el-form-item prop="projectEndtime">
<el-date-picker
type="date"
placeholder="请选择项目时间"
......@@ -48,7 +48,7 @@
</el-form-item>
</el-col>
</el-form-item>
<el-form-item label="项目简介:" prop="desc">
<el-form-item label="项目简介:" prop="projectIntro">
<el-col :span="13">
<el-input
type="textarea"
......@@ -266,15 +266,20 @@
</el-tab-pane>
</el-tabs>
</div>
<div class="step2" v-else-if="active === 2">
<el-form ref="formData" label-width="150px" :model="formComponent" :rules="rulesComponent">
<el-form-item label="选择组件:">
<div class="third-step" v-else-if="active === 2">
<el-form
ref="formComponent"
label-width="150px"
:model="formComponent"
:rules="rulesComponent"
>
<el-form-item label="选择组件:" prop="component">
<el-col :span="20">
<el-select
v-model="formComponent.component"
multiple
collapse-tags
style="margin-left: 20px;width: 300px"
style="width: 350px"
placeholder="请选择组件"
@change="changeValue"
>
......@@ -295,6 +300,7 @@
closable
:type="tag.type"
style="margin-left: 10px;"
@close="handleCloseComponent(tag)"
>{{tag.name}}</el-tag>
</el-col>
</el-form-item>
......@@ -304,12 +310,15 @@
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="选择证书:">
<el-form-item v-show="formComponent.configure == 1" label="选择证书:" prop="certificate">
<el-col :span="20">
<el-select v-model="formComponent.certificate" placeholder="请选择证书">
<el-option label="证书1" value="1"></el-option>
<el-option label="证书2" value="2"></el-option>
<el-option label="证书3" value="3"></el-option>
<el-select v-model="formComponent.certificate" placeholder="请选择证书" style="width: 350px">
<el-option
v-for="item in optionsCertificate"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-col>
</el-form-item>
......@@ -420,47 +429,25 @@ export default {
pageSizePerson: 2,
totalPerson: 10,
//选择项目组件 数据
optionsComponent: [
{
value: "1",
label: "浙江心血管疾病预防 基础版",
name: "浙江心血管疾病预防 基础版"
},
{
value: "2",
label: "浙江心血管疾病预防 进阶版",
name: "浙江心血管疾病预防 进阶版"
},
{
value: "3",
label: "浙江心血管疾病预防 深入版",
name: "浙江心血管疾病预防 深入版"
}
],
optionsComponent: [],
optionsCertificate: [],
formComponent: {
component: [],
configure: 1,
certificate: ""
},
tagsComponent: [],
// tagsComponent: [
// { name: "标签一", type: "" },
// { name: "标签二", type: "" },
// { name: "标签三", type: "" }
// ],
//校验工具 数据
rulesComponent: {
component: [
{ required: true, message: "请选择组件", trigger: "change" }
],
certificate: [
{
type: "array",
required: true,
message: "请至少选择一个活动性质",
trigger: "change"
}
{ required: true, message: "请选择证书", trigger: "change" }
]
},
rules: {
name: [
projectName: [
{ required: true, message: "请输入活动名称", trigger: "blur" },
{
min: 2,
......@@ -469,15 +456,15 @@ export default {
trigger: "blur"
}
],
date1: [
projectBegintime: [
{
type: "date",
required: true,
message: "请选择日期",
message: "请选择时间",
trigger: "change"
}
],
date2: [
projectEndtime: [
{
type: "date",
required: true,
......@@ -496,7 +483,9 @@ export default {
resource: [
{ required: true, message: "请选择活动资源", trigger: "change" }
],
desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }]
projectIntro: [
{ required: true, message: "请填写活动形式", trigger: "blur" }
]
},
pickerOptions: {
shortcuts: [
......@@ -537,12 +526,13 @@ export default {
this.initOrganization();
this.initPerson();
this.$nextTick(function() {});
this.$nextTick(function() {
this.getComponentInfo();
});
},
methods: {
//表单校验
submitForm(formName) {
console.log("校验表单:" + formName);
let flag = null;
this.$refs[formName].validate(valid => {
if (valid) {
......@@ -561,42 +551,84 @@ export default {
},
//编辑/更新 基础信息
insertOrUpdate() {
console.log(this.formData);
//console.log(this.formData);
let projectModel = {
projectName: formData.projectName,
projectBegintime: formData.projectBegintime,
projectEndtime: formData.projectEndtime,
projectIntro: formData.projectIntro
projectName: this.formData.projectName,
projectBegintime: Date.parse(this.formData.projectBegintime) / 1000,
projectEndtime: Date.parse(this.formData.projectEndtime) / 1000,
projectIntro: this.formData.projectIntro
};
let attachmentModel = [
{
attachmentType: 1,
attachmentUrl: formData.attachmentUrl1,
attachmentUrl: this.formData.attachmentUrl1,
kind: 1,
seqNo: 1
},
{
attachmentType: 2,
attachmentUrl: formData.attachmentUrl2,
attachmentUrl: this.formData.attachmentUrl2,
kind: 2,
seqNo: 1
}
];
let req = {
projectModel:
'{"id":6,"projectBegintime":1551853576789,"projectEndtime":1551853576789,"projectIntro":"测试用例","projectName":"testProjectName"}',
attachmentModel:
'[{"attachmentType":1,"attachmentUrl":"www.baidu.com","kind":1,"portalProjectId":6,"seqNo":1},{"attachmentType":2,"attachmentUrl":"www.qq.com","kind":2,"portalProjectId":6,"seqNo":1}]',
attachmentPDFModel:
'[{"attachmentType":3,"attachmentUrl":"www.pdf.com","kind":3,"portalProjectId":6},{"attachmentType":3,"attachmentUrl":"www.pdf.com","kind":3,"portalProjectId":6}]'
let attachmentPDFModel = [
{
attachmentType: 3,
attachmentUrl: this.formData.attachmentUrl3,
kind: 3
}
];
let postData = {
projectModel: JSON.stringify(projectModel),
attachmentModel: JSON.stringify(attachmentModel),
attachmentPDFModel: JSON.stringify(attachmentPDFModel)
};
vm.POST("portalInfo/insertOrUpdate", req).then(res => {
console.log(postData);
vm.POST("portalInfo/insertOrUpdate", postData).then(res => {
if (res.code == "000000") {
console.log(res);
}
});
},
//查询组件证书信息
getComponentInfo() {
let param = {};
vm.GET("portalInfo/getComponentInfo", param).then(res => {
if (res.code == "000000") {
//console.log(res);
let componentList = res.data.componentList;
let certificateList = res.data.certificateList;
let optionsComponent = [],
optionsCertificate = [];
for (let index = 0; index < componentList.length; index++) {
optionsComponent[index] = {};
optionsComponent[index].value = componentList[index].id;
optionsComponent[index].label = componentList[index].name;
optionsComponent[index].name = componentList[index].name;
}
for (let index = 0; index < certificateList.length; index++) {
optionsCertificate[index] = {};
optionsCertificate[index].value = certificateList[index].id;
optionsCertificate[index].label = certificateList[index].name;
optionsCertificate[index].name = certificateList[index].name;
}
this.optionsComponent = optionsComponent;
this.optionsCertificate = optionsCertificate;
}
});
},
componentDraft(type) {
let param = {
componentIds: this.formComponent.component,
certificateId: this.formComponent.certificate,
projectId: 9,
type: type
};
vm.POST("portalInfo/componentDraft", param).then(res => {
console.log(res);
});
},
//步骤style
changeOnStep(active) {
if (active == 0) {
......@@ -615,15 +647,45 @@ export default {
this.$refs.multiplePerson.toggleAllSelection();
});
},
//点击暂存
storage() {
console.log("暂存步骤" + (this.active + 1));
if (this.active == 0) {
//暂存步骤1
let formName = "formData";
let state = this.submitForm(formName);
if (state === true) {
this.insertOrUpdate();
}
} else if (this.active == 1) {
//暂存步骤2
} else if (this.active == 2) {
//暂存步骤3
let formName = "formComponent";
let completeState = this.submitForm(formName);
if (completeState === true) {
this.componentDraft(1);
}
}
},
//点击完成
complete() {
//type 1:暂存 2:完成
let formName = "formComponent";
let completeState = this.submitForm(formName);
if (completeState === true) {
this.componentDraft(2);
}
},
//点击下一步
nextStep() {
if (this.active == 0) {
let formName = "formData";
let removeState = this.submitForm(formName);
console.log("判断移动" + removeState);
this.insertOrUpdate();
if (removeState === true) {
//移动到第二页 选择范围
this.insertOrUpdate();
this.active++;
this.stepData = [false, true, false];
this.checkAllTable();
......@@ -874,16 +936,10 @@ export default {
}
this.hasOrganizationInit = true;
},
// toggleSelection(rows) {
// if (rows) {
// rows.forEach(row => {
// this.$refs.multipleTable.toggleRowSelection(row);
// });
// } else {
// this.$refs.multipleTable.clearSelection();
// }
// },
//选择项目组件
//改变组件选择情况
changeValue(value) {
//console.log(this.formComponent.component);
this.tagsComponent = [];
let len = 0;
for (let i = 0; i < value.length; i++) {
......@@ -896,6 +952,14 @@ export default {
}
}
}
},
//选择组件数据绑定
handleCloseComponent(tag) {
this.tagsComponent.splice(this.tagsComponent.indexOf(tag), 1);
this.formComponent.component = [];
for (let j = 0; j < this.tagsComponent.length; j++) {
this.formComponent.component[j] = this.tagsComponent[j].value;
}
}
}
};
......@@ -1020,5 +1084,9 @@ export default {
}
}
}
.third-step {
margin: 30px 0 0px 30px;
padding-bottom: 30px;
}
}
</style>
\ No newline at end of file
......@@ -42,12 +42,16 @@
<el-table-column prop="projectIntro" label="项目简介"></el-table-column>
<el-table-column prop="projectBegintime" label="项目开始时间"></el-table-column>
<el-table-column prop="projectEndtime" label="项目结束时间"></el-table-column>
<el-table-column prop="projectStatus" label="状态"></el-table-column>
<el-table-column prop="projectStatus" label="状态">
<template slot-scope="scope">
<span>{{ scope.row.projectStatus | statusProject }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="200">
<template slot-scope="scope">
<el-button class="title" type="text" size="small">编辑</el-button>
<el-button class="title" type="text" size="small">发布</el-button>
<el-button class="title" type="text" size="small">删除</el-button>
<el-button @click="editItem(scope.row)" class="title" type="text" size="small">编辑</el-button>
<el-button @click="releaseItem(scope.row)" class="title" type="text" size="small">发布</el-button>
<el-button @click="delItem(scope.row)" class="title" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
......@@ -57,7 +61,7 @@
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchParam.pageNo"
:page-sizes="[15, 30, 50, 100]"
:page-sizes="[10, 30, 50, 100]"
:page-size="searchParam.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
......@@ -148,32 +152,41 @@ export default {
},
//查询项目列表
getProjectList() {
console.log("数据请求");
let req = {
pageNo: this.searchParam.pageNo,
pageSize: this.searchParam.pageNo
pageSize: this.searchParam.pageSize,
};
vm.GET("portalInfo/getProjectList", req).then(res => {
if (res.code == "000000") {
vm.tableData = res.data.data;
vm.totalRows = res.data.data.length;
vm.totalRows = res.data.totalRows;
}
});
},
editItem(row) {
},
releaseItem(row) {
},
delItem(row) {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.handleCurrentChange(this.currentPage);
this.searchParam.pageSize = val;
this.handleCurrentChange(this.searchParam.pageNo);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.searchParam.pageNo = val;
this.getProjectList();
//需要判断是否检索
if (!this.flag) {
this.currentChangePage(this.tableDataEnd);
} else {
this.currentChangePage(this.filterTableDataEnd);
}
// if (!this.flag) {
// this.currentChangePage(this.tableDataEnd);
// } else {
// this.currentChangePage(this.filterTableDataEnd);
// }
}, //组件自带监控当前页码
currentChangePage(list) {
let from = (this.currentPage - 1) * this.pageSize;
......
......@@ -25,7 +25,15 @@ let data = {
"kind": 3
}
]
}
};
let req = {
projectModel:
'{"id":6,"projectBegintime":1551853576789,"projectEndtime":1551853576789,"projectIntro":"测试用例","projectName":"testProjectName"}',
attachmentModel:
'[{"attachmentType":1,"attachmentUrl":"www.baidu.com","kind":1,"portalProjectId":6,"seqNo":1},{"attachmentType":2,"attachmentUrl":"www.qq.com","kind":2,"portalProjectId":6,"seqNo":1}]',
attachmentPDFModel:
'[{"attachmentType":3,"attachmentUrl":"www.pdf.com","kind":3,"portalProjectId":6},{"attachmentType":3,"attachmentUrl":"www.pdf.com","kind":3,"portalProjectId":6}]'
};
/**
projectModel
ProjectBegintime ProjectEndtime 开始结束时间
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册