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

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

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