Commit 2303a31b authored by MyName's avatar MyName

项目管理

parent 3f61e0e6
......@@ -46,6 +46,7 @@
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"js-md5": "^0.7.3",
......
......@@ -472,7 +472,7 @@
padding-top: 8px;
padding-right: 0;
.btn{
border-radius: 0;
border-radius: 2px;
width: 80px;
}
}
......@@ -569,6 +569,7 @@
border: 0;
padding: 0;
text-indent: 8px;
float: left;
}
}
.wr_bot{
......@@ -1105,3 +1106,6 @@
}
.none{display: none}
.el-popper[x-placement^=bottom]{
margin-top: 0 !important;
}
......@@ -45,7 +45,7 @@
width="441">
<template slot-scope="scope">
<div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row.companyId,'')">{{scope.row.companyName}}</div>
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="ps3">
<div @click="toDetail(scope.row,'gjjl')">写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div @click="toDetail(scope.row,'preference')">编辑信息<img src="@/assets/images/project/edit_2.png"></div>
......@@ -239,11 +239,13 @@
import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport'
import axios from 'axios'
import {encodeStr} from "@/assets/js/common"
export default {
name: 'CustomList',
components:{batchimport},
data() {
return{
encodeStr,
pldr: false,
types:'custom',
searchParam:{
......@@ -318,7 +320,7 @@ export default {
let customerId = row.customerId
let companyId = row.companyId
let path = type
this.$router.push({path:'/party/party-a',query:{customerId:customerId,companyId:companyId,path:path}})
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
},
//翻页
handleCurrentChange(val) {
......
......@@ -349,6 +349,7 @@ export default {
global: false
}
},
symbolSize:8,
}
]
}
......@@ -509,6 +510,7 @@ export default {
&.on{
background: #0081FF;
color: #FFFFFF;
border-color: #0081FF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
......
......@@ -308,7 +308,15 @@ export default {
data: labels
},
yAxis: {
type: 'value'
type: 'value',
splitNumber: 5,
// splitLine: {
// show: true,
// lineStyle: {
// type: 'dotted',
// color: 'rgba(255, 255, 255,0.3)'
// }
// }
},
grid:{
left:'4%',
......@@ -325,7 +333,10 @@ export default {
legend: {
left: '12px',
top:"15px",
data: ['成交金额', '储备项目', '跟进动态']
data: ['成交金额', '储备项目', '跟进动态'],
itemHeight: 8, // 修改icon图形大小
itemGap: 20
},
series: [
{
......@@ -349,7 +360,7 @@ export default {
},
itemStyle: {
normal:{
color:'#0081FF'
color:'#0081FF',
}
},
label:{
......@@ -357,6 +368,7 @@ export default {
show:false
}
},
symbolSize:8,
},
{
name: '储备项目',
......@@ -387,6 +399,7 @@ export default {
show:false
}
},
symbolSize:8,
},
{
name: '跟进动态',
......@@ -417,6 +430,7 @@ export default {
show:false
}
},
symbolSize:8,
},
]
}
......@@ -504,17 +518,23 @@ export default {
.ss{
color: #0CBC6D;
padding-left: 3px;
position: relative;
>img{
width: 8px;
margin-top: -3px;
margin-top: 0px;
position: absolute;
margin-left: 8px;
}
}
.xj{
color: #FF3C3C;
padding-left: 3px;
position: relative;
>img{
width: 8px;
margin-top: -3px;
margin-top: 1px;
position: absolute;
margin-left: 8px;
}
}
}
......@@ -580,7 +600,7 @@ export default {
height: auto;
width: calc(100% - 369px);
.records{
margin-top: -17px;
margin-top: 2px;
height: 627px;
overflow-y: auto;
width: 100%;
......@@ -616,6 +636,7 @@ export default {
&.on{
background: #0081FF;
color: #FFFFFF;
border-color: #0081FF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
......
......@@ -5,6 +5,7 @@
:visible.sync="isshow"
@close="resetForm('ruleForm')"
>
<div @click = 'handleALL'>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加项目</span>
......@@ -15,7 +16,7 @@
</el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist">
<div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
......@@ -48,6 +49,7 @@
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div>
</el-form>
</div>
</el-dialog>
</template>
......@@ -107,6 +109,14 @@
})
},
methods:{
handleALL(event){
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
}
}
},
//获取建设库客户
getCompany(value){
if (value.length>=2){
......
......@@ -16,10 +16,10 @@
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div>
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传项目表格</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div>
<div class="up_tip">导入已存在的{{titletext}}将自动跳过</div>
</el-upload>
<div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功
......@@ -42,7 +42,7 @@
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">成功导入{{successCount}}{{titletext}}信息</div>
<div class="p2">导入成功,已为您去掉重复{{titletext}}{{successCount}}</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
......@@ -79,12 +79,12 @@
created(){
if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '商机'
this.titletext = '项目'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
}
if(this.importtype == 'custom'){//客户管理
this.downloadhref = '/file/Template.xlsx'
this.titletext = '客户'
this.titletext = '企业'
this.action = process.env.VUE_APP_BASE_API + "/customer/importData"
}
},
......
......@@ -7,7 +7,7 @@
<div class="row">
<div class="con">
<span>总投资额(万元) :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1">
<el-input placeholder="待添加" v-model="investmentAmount" @input="number"></el-input>
<div class="flex">
......@@ -20,7 +20,7 @@
</div>
<div class="con i">
<span>资金来源 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="amountSource"></el-input>
<div class="flex">
......@@ -35,7 +35,7 @@
<div class="row">
<div class="con">
<span>建设性质 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt3">
<div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="buildProperty"></el-input>
<div class="flex">
......@@ -95,8 +95,8 @@
</el-card>
<el-card class="box-card noborder">
<div class="cardtitles">项目概况与建设规模</div>
<div class="baseinfo">
<el-input v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input>
<div class="baseinfo" >
<el-input id="inputxt9" v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input>
<div class="flex btns" v-if="nowedit == 9">
<div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'projectDetails':projectDetails})" style="width: 56px">确定</div>
......@@ -111,7 +111,7 @@
<div class="row">
<div class="con">
<span>评标办法 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="evaluationBidWay"></el-input>
<div class="flex">
......@@ -140,7 +140,7 @@
<div class="row">
<div class="con">
<span>保证金缴纳 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input>
<div class="flex">
......@@ -153,7 +153,7 @@
</div>
<div class="con i">
<span>保证金金额(万元) :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="earnestMoney"></el-input>
<div class="flex">
......@@ -168,7 +168,7 @@
<div class="row">
<div class="con">
<span>开标地点 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="bidOpenPlace"></el-input>
<div class="flex">
......@@ -181,7 +181,7 @@
</div>
<div class="con i">
<span>评标委员会 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt8">
<div class="flex" v-if="nowedit == 8">
<el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input>
<div class="flex">
......@@ -230,6 +230,22 @@
},
watch:{
},
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=9;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 9){
this.nowedit = -1
}
})
},
created(){
this.getJSNR()
},
......
......@@ -60,7 +60,7 @@
</el-table-column>
</el-table>
<div class="bottems">
<div class="btn btn_primary h28" @click="opennew"><div class="img img1"></div>新增联系人</div>
<div class="btn btn_primary h28" @click="opennew" v-if="total>0"><div class="img img1"></div>新增联系人</div>
<el-pagination v-if="total>searchParam.pageSize"
background
:page-size="searchParam.pageSize"
......
......@@ -7,7 +7,7 @@
<div class="row">
<div class="con">
<span>项目级别 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1">
<el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input>
<div class="flex">
......@@ -50,7 +50,7 @@
<div class="row">
<div class="con">
<span>主管单位 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input>
<div class="flex">
......@@ -63,7 +63,7 @@
</div>
<div class="con i">
<span>建设单位 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt3">
<div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
<div class="flex">
......@@ -78,7 +78,7 @@
<div class="row">
<div class="con">
<span>主管单位负责人 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input>
<div class="flex">
......@@ -91,7 +91,7 @@
</div>
<div class="con i">
<span>建设单位负责人 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
<div class="flex">
......@@ -106,7 +106,7 @@
<div class="row">
<div class="con">
<span>主管单位联系电话 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex">
......@@ -119,7 +119,7 @@
</div>
<div class="con i">
<span>建设单位联系电话 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex">
......@@ -198,6 +198,22 @@
})
this.getXMSL()
},
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=7;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 7){
this.nowedit = -1
}
})
},
methods:{
editXMSL(param){
let params = param
......
......@@ -3,7 +3,7 @@
<div>
<el-card class="box-card noborder">
<div class="cardtitles">资料文档</div>
<div class="searchbtns">
<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">
<div class="searchInput">
<el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
......@@ -199,12 +199,6 @@
downnlod(row){
let param = {filePath:row.filePath}
this.$download.exportByPost('/business/file/download',param);
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
// document.body.appendChild(a);
// a.click();
},
delQY(){
......
<template>
<div>
<div @click="handleALL">
<div class="miantitle">
<template v-if="!detailId">
<span>项目管理</span>
......@@ -56,7 +56,7 @@
</div>
</span>
</div>
<div class="det-con con" >
<div class="det-con con" id="inputxt">
<span>投资估算(万元):</span>
<div class="inputxt i" :class="{'nomar':nowedit != 3}">
<div class="flex" v-if="nowedit == 3">
......@@ -197,6 +197,16 @@
this.getXMSL()
},
methods: {
handleALL(event){
var one = document.getElementById("inputxt");
if(one){
if(!one.contains(event.target)){
this.nowedit = -1
}else{
this.nowedit = 3
}
}
},
getXMSL(){
getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{}
......
......@@ -116,27 +116,27 @@
<div class="det-title" @click="toDetail(item.id,'xmsl')">{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"><span class="tips tip1" v-if="item.label">{{item.label}}</span><span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
<div class="det-contets">
<div class="det-con">
<div class="det-con" v-if="item.projectType">
<span>项目类型:</span>
<span>{{item.projectType || '--'}}</span>
<span>{{item.projectType}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.investmentAmount">
<span>投资估算(万元):</span>
<span>{{item.investmentAmount || '--'}}</span>
<span>{{item.investmentAmount}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.followTime">
<span>最后跟进时间:</span>
<span>{{item.followTime || '--'}}</span>
<span>{{item.followTime}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.ownerCompany ">
<span>业主单位:</span>
<span class="wordprimary">{{item.ownerCompany || '--'}}</span>
<span class="wordprimary">{{item.ownerCompany}}</span>
</div>
</div>
<el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div>
<div class="i2"><img src="@/assets/images/edit1.png" @click="toDetail(item.id,'xmsl')">编辑</div>
<div class="i1" @click="toDetail(item.id,'gjjl')"><img src="@/assets/images/follow.png">跟进</div>
<div class="i2" @click="toDetail(item.id,'xmsl')"><img src="@/assets/images/edit1.png">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div>
<div class="delform" v-if="activeName=='first' && ondel == index">
......
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