Commit 4b44aaa3 authored by MyName's avatar MyName

项目管理

parent ed02fd1a
dsk-operate-ui/src/assets/images/add.png

148 Bytes | W: | H:

dsk-operate-ui/src/assets/images/add.png

140 Bytes | W: | H:

dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/delete.png

327 Bytes | W: | H:

dsk-operate-ui/src/assets/images/delete.png

531 Bytes | W: | H:

dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/edit.png

245 Bytes | W: | H:

dsk-operate-ui/src/assets/images/edit.png

488 Bytes | W: | H:

dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/follow.png

260 Bytes | W: | H:

dsk-operate-ui/src/assets/images/follow.png

312 Bytes | W: | H:

dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -244,6 +244,7 @@ ...@@ -244,6 +244,7 @@
>img{ >img{
float: left; float: left;
margin-right: 8px; margin-right: 8px;
width: 56px;
} }
.i{ .i{
font-size: 18px; font-size: 18px;
...@@ -337,6 +338,7 @@ ...@@ -337,6 +338,7 @@
>img{ >img{
float:left; float:left;
margin: 2px 4px 0 0; margin: 2px 4px 0 0;
width: 16px;
} }
} }
.bottems{ .bottems{
...@@ -572,6 +574,16 @@ ...@@ -572,6 +574,16 @@
position: relative; position: relative;
padding-top: 25px; padding-top: 25px;
display: flex; display: flex;
.sels{
position: relative;
>img{
position: absolute;
left: 10px;
z-index: 1;
top: 8px;
width: 16px;
}
}
.el-input{ .el-input{
display: inline-block; display: inline-block;
margin-right: 12px; margin-right: 12px;
...@@ -610,6 +622,7 @@ ...@@ -610,6 +622,7 @@
position: absolute; position: absolute;
left: 8px; left: 8px;
top: 8px; top: 8px;
width: 16px;
z-index: 1; z-index: 1;
} }
.el-input{ .el-input{
...@@ -960,6 +973,7 @@ ...@@ -960,6 +973,7 @@
} }
.up_img{ .up_img{
margin: 56px auto 13px; margin: 56px auto 13px;
width: 50px;
} }
.up_text{ .up_text{
color: #666; color: #666;
......
...@@ -492,6 +492,7 @@ export default { ...@@ -492,6 +492,7 @@ export default {
.img.img1{ .img.img1{
margin-right: 2px; margin-right: 2px;
background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
.w88{ .w88{
width: 88px; width: 88px;
...@@ -528,7 +529,8 @@ export default { ...@@ -528,7 +529,8 @@ export default {
} }
>img{ >img{
float: right; float: right;
margin: 3px 0 0 4px margin: 3px 0 0 4px;
width: 14px;
} }
} }
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
<div class="top-icons"> <div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_8.png"> <img class="top-img" src="@/assets/images/project/icon_8.png">
<div class="name">即将开项目</div> <div class="name">即将开项目</div>
<div class="number">39</div> <div class="number">39</div>
<div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div> <div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div>
</div> </div>
...@@ -504,10 +504,18 @@ export default { ...@@ -504,10 +504,18 @@ export default {
.ss{ .ss{
color: #0CBC6D; color: #0CBC6D;
padding-left: 3px; padding-left: 3px;
>img{
width: 8px;
margin-top: -3px;
}
} }
.xj{ .xj{
color: #FF3C3C; color: #FF3C3C;
padding-left: 3px; padding-left: 3px;
>img{
width: 8px;
margin-top: -3px;
}
} }
} }
} }
...@@ -642,6 +650,9 @@ export default { ...@@ -642,6 +650,9 @@ export default {
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
padding-top: 16px; padding-top: 16px;
>img{
height: 48px;
}
>div{ >div{
line-height: 14px; line-height: 14px;
} }
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<div class="p3"> <div class="p3">
<img src="@/assets/images/project/success.png">查询成功 <img src="@/assets/images/project/success.png">查询成功
</div> </div>
<div class="p2">成功导入{{titletext}}信息</div> <div class="p2">成功导入{{successCount}}{{titletext}}信息</div>
<div class="btns"> <div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div> <div class="btn btn_primary h32" @click="getmsg">查看</div>
</div> </div>
...@@ -73,10 +73,10 @@ ...@@ -73,10 +73,10 @@
}, },
downloadhref:'',//样例地址 downloadhref:'',//样例地址
titletext:'', titletext:'',
successCount:0,//成功条数
} }
}, },
created(){ created(){
console.log(this.importtype )
if(this.importtype == 'project'){//项目管理 if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx' this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '商机' this.titletext = '商机'
...@@ -93,15 +93,35 @@ ...@@ -93,15 +93,35 @@
this.$emit('getdatas') this.$emit('getdatas')
}, },
handleFileListChange(file, fileList) { handleFileListChange(file, fileList) {
var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
const extension = testmsg === "xlsx";
const extension1 = testmsg === "xls";
if (!extension && !extension1 ) {
this.$message({
message: "上传文件只能是.xls,.xlsx格式!",
type: "warning",
});
return false;
}
const isLt2M = file.size / 1024 / 1024 < 2
if (!isLt2M) {
this.$refs.upload.clearFiles()
this.$message({
message: '上传文件大小不能超过 2MB!',
type: 'warning'
})
return false
}
if (fileList.length > 0) { if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]]; this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true this.isUpload = true
} }
}, },
onSuccess(res, file, fileList) { onSuccess(res, file, fileList) {
if(res.code == 200 ) if (res.code == 200) {
this.successCount = res.successCount
this.addsuccess = true this.addsuccess = true
else { }else {
this.importCancel() this.importCancel()
this.$message.error({ message: res.msg, showClose: true }) this.$message.error({ message: res.msg, showClose: true })
} }
......
...@@ -15,26 +15,34 @@ ...@@ -15,26 +15,34 @@
<el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input> <el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div> </div>
<div class="wr_bot"> <div class="wr_bot">
<el-select v-model="addParam.visitMode" class="w128" placeholder="拜访方式"> <div class="sels" v-model="addParam.visitMode">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select class="w128" placeholder="拜访方式">
<el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
<template v-if="!customerIds"> </div>
<el-select v-if="showtype == 'gjdt'" v-model="addParam.customerId" class="w128" placeholder="关联企业"> <div class="sels" v-if="!customerIds && showtype == 'gjdt'">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select v-model="addParam.customerId" class="w128" placeholder="关联企业">
<el-option v-for="(item,index) in glqylist" :key="index" :label="item.companyName" :value="item.customerId"></el-option> <el-option v-for="(item,index) in glqylist" :key="index" :label="item.companyName" :value="item.customerId"></el-option>
</el-select> </el-select>
</template> </div>
<el-select v-if="showtype == 'projectgjdt'" v-model="projectId" class="w128" placeholder="关联项目"> <div class="sels" v-if="showtype == 'projectgjdt'">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select v-model="projectId" class="w128" placeholder="关联项目">
<el-option v-for="(item,index) in projectList" :key="index" :label="item.projectName" :value="item.id"></el-option> <el-option v-for="(item,index) in projectList" :key="index" :label="item.projectName" :value="item.id"></el-option>
</el-select> </el-select>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="addParam.name" placeholder="拜访对象" style="width: 100px;"> <el-input v-model="addParam.name" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input> </el-input>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_3.png">
<el-input v-model="addParam.position" placeholder="客户职位" style="width: 100px;"> <el-input v-model="addParam.position" placeholder="客户职位" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_3.png"></i>
</el-input> </el-input>
</div>
<div class="times"><img src="@/assets/images/project/ico_4.png"> <div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128" <el-date-picker class="w128"
v-model="addParam.nextVisitTime" v-model="addParam.nextVisitTime"
......
...@@ -209,5 +209,6 @@ ...@@ -209,5 +209,6 @@
.img.img1{ .img.img1{
margin-right: 8px; margin-right: 8px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
</style> </style>
...@@ -286,10 +286,12 @@ ...@@ -286,10 +286,12 @@
.img.img1{ .img.img1{
margin-right: 4px; margin-right: 4px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
.img.img2{ .img.img2{
margin-right: 4px; margin-right: 4px;
background: url('../../../../../src/assets/images/upload.png')no-repeat center center; background: url('../../../../../src/assets/images/upload.png')no-repeat center center;
background-size: 100%;
} }
.box-card{ .box-card{
position: relative; position: relative;
......
...@@ -276,6 +276,8 @@ ...@@ -276,6 +276,8 @@
} }
</script> </script>
<style scoped> <style scoped lang="scss">
.select-popper{
top: 3px;
}
</style> </style>
...@@ -301,6 +301,7 @@ ...@@ -301,6 +301,7 @@
margin-right: 4px; margin-right: 4px;
transform: rotateX(180deg); transform: rotateX(180deg);
background: url('../../../../../src/assets/images/import.png')no-repeat center center; background: url('../../../../../src/assets/images/import.png')no-repeat center center;
background-size: 100%;
} }
.box-card{ .box-card{
position: relative; position: relative;
......
...@@ -347,6 +347,9 @@ ...@@ -347,6 +347,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.select-popper{
top: 0;
}
.head{ .head{
.titles{ .titles{
line-height: 31px; line-height: 31px;
...@@ -376,7 +379,7 @@ ...@@ -376,7 +379,7 @@
&:hover{ &:hover{
background-color: #DFE0E2; background-color: #DFE0E2;
} }
>img{ img{
float: left; float: left;
width: 16px; width: 16px;
margin-top: 3px; margin-top: 3px;
...@@ -417,6 +420,7 @@ ...@@ -417,6 +420,7 @@
width: 10px; width: 10px;
height: 32px; height: 32px;
background: url("../../../assets/images/project/icol1.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol1.png") no-repeat top center #fff;
background-size: 100%;
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
...@@ -428,14 +432,17 @@ ...@@ -428,14 +432,17 @@
width: 10px; width: 10px;
height: 32px; height: 32px;
background: url("../../../assets/images/project/icor1.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor1.png") no-repeat top center #fff;
background-size: 100%;
} }
&:hover{ &:hover{
background: #E3E6EA; background: #E3E6EA;
.left{ .left{
background: url("../../../assets/images/project/icol2.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol2.png") no-repeat top center #fff;
background-size: 100%;
} }
.right{ .right{
background: url("../../../assets/images/project/icor2.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor2.png") no-repeat top center #fff;
background-size: 100%;
} }
} }
...@@ -444,9 +451,11 @@ ...@@ -444,9 +451,11 @@
color: #fff; color: #fff;
.left{ .left{
background: url("../../../assets/images/project/icol3.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol3.png") no-repeat top center #fff;
background-size: 100%;
} }
.right{ .right{
background: url("../../../assets/images/project/icor3.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor3.png") no-repeat top center #fff;
background-size: 100%;
} }
} }
} }
......
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<el-divider v-if="index != datalist.length-1"></el-divider> <el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'"> <div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div> <div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div>
<div class="i2"><img src="@/assets/images/edit.png" @click="toDetail(item.id,'xmsl')">编辑</div> <div class="i2"><img src="@/assets/images/edit1.png" @click="toDetail(item.id,'xmsl')">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div> <div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div> </div>
<div class="delform" v-if="activeName=='first' && ondel == index"> <div class="delform" v-if="activeName=='first' && ondel == index">
...@@ -447,14 +447,17 @@ export default { ...@@ -447,14 +447,17 @@ export default {
z-index: 2; z-index: 2;
.img.img1{ .img.img1{
background: url('../../../../src/assets/images/add.png')no-repeat center center; background: url('../../../../src/assets/images/add.png')no-repeat center center;
background-size: 100%;
} }
.btn_default:hover{ .btn_default:hover{
.img1{ .img1{
background: url('../../../../src/assets/images/add_1.png')no-repeat center center; background: url('../../../../src/assets/images/add_1.png')no-repeat center center;
background-size: 100%;
} }
} }
.img.img2{ .img.img2{
background: url('../../../../src/assets/images/import.png')no-repeat center center; background: url('../../../../src/assets/images/import.png')no-repeat center center;
background-size: 100%;
} }
} }
.scbtns{ .scbtns{
...@@ -536,6 +539,7 @@ export default { ...@@ -536,6 +539,7 @@ export default {
>img{ >img{
float: left; float: left;
margin-right: 5px; margin-right: 5px;
width: 16px;
} }
} }
.i1:hover{ .i1:hover{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment