Commit 7e8e848d authored by MyName's avatar MyName

项目管理

parent 625569df
...@@ -44,6 +44,23 @@ export function editXMNR(param) { ...@@ -44,6 +44,23 @@ export function editXMNR(param) {
data:param data:param
}) })
} }
//项目标签新增
export function addLabel(param) {
return request({
url: '/business/label/add',
method: 'POST',
data:param
})
}
//项目标签删除
export function removeLabel(param) {
return request({
url: '/business/label/remove',
method: 'POST',
data:param
})
}
//查询项目联系人 //查询项目联系人
export function getLXR(param) { export function getLXR(param) {
...@@ -124,3 +141,20 @@ export function editGZDB(param) { ...@@ -124,3 +141,20 @@ export function editGZDB(param) {
data:param data:param
}) })
} }
//查询相关企业
export function getXGQY(param) {
return request({
url: '/business/company/list',
method: 'GET',
params:param
})
}
//新增相关企业
export function addXGQY(param) {
return request({
url: '/business/company/add',
method: 'POST',
data:param
})
}
...@@ -251,8 +251,9 @@ ...@@ -251,8 +251,9 @@
param.id = this.id param.id = this.id
editXMNR(param).then(result=>{ editXMNR(param).then(result=>{
if(result.code == 200) if(result.code == 200)
this.$message.success('修改成功') this.$message.success('修改成功!')
else{ else{
this.$message.error(res.msg)
this.getJSNR() this.getJSNR()
} }
}) })
......
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
</el-table> </el-table>
<div class="bottems"> <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"><div class="img img1"></div>新增联系人</div>
<el-pagination <el-pagination v-if="total>searchParam.pageSize"
background background
:page-size="searchParam.pageSize" :page-size="searchParam.pageSize"
:current-page="searchParam.pageNum" :current-page="searchParam.pageNum"
......
...@@ -4,8 +4,10 @@ ...@@ -4,8 +4,10 @@
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">相关企业</div> <div class="cardtitles">相关企业</div>
<div class="searchbtns"> <div class="searchbtns">
<el-select class="select" placeholder="企业角色"> <el-select class="select" placeholder="企业类型">
<option label="111" value="222"></option> <el-select placeholder="请选择">
<el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-select> </el-select>
<div class="searchInput"> <div class="searchInput">
<el-input type="text" placeholder="输入关键词查询"></el-input> <el-input type="text" placeholder="输入关键词查询"></el-input>
...@@ -85,9 +87,7 @@ ...@@ -85,9 +87,7 @@
<span>新建相关企业</span> <span>新建相关企业</span>
</div> </div>
<div class="types"> <div class="types">
<div :class="{'on':types==1}" @click="types=1"><i></i>业主单位</div> <div v-for="(item,index) in companytype" :class="{'on':types==item.dictValue}" @click="types=item.dictLabel"><i></i>{{item.dictLabel}}</div>
<div :class="{'on':types==2}" @click="types=2"><i></i>合作伙伴</div>
<div :class="{'on':types==3}" @click="types=3"><i></i>竞争对手</div>
</div> </div>
<div class="popform"> <div class="popform">
<div class="popbot" style="padding-right: 0"> <div class="popbot" style="padding-right: 0">
...@@ -102,34 +102,24 @@ ...@@ -102,34 +102,24 @@
width="464px"> width="464px">
<div class="poptitle"> <div class="poptitle">
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>新建相关企业-{{types==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""}}</span> <span>新建相关企业-{{types}}</span>
</div> </div>
<el-form class="popform i" label-width="85px" :rules="rules" ref="ruleForm" > <el-form class="popform i" label-width="85px" :rules="rules" ref="ruleForm" >
<el-form-item label="企业名称:" prop="projectName" class="row"> <el-form-item label="企业名称:" prop="projectName" class="row">
<el-input type="text" placeholder="请输入"></el-input> <el-input type="text" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="types == 1" label="对接深度:" class="row"> <el-form-item v-if="types == companytype[0].dictValue" label="对接深度:" class="row">
<el-select placeholder="请选择"> <el-input type="text" placeholder="请输入"></el-input>
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="types == 2" label="合作阶段:" class="row"> <el-form-item v-if="types == companytype[1].dictValue" label="合作阶段:" class="row">
<el-select placeholder="请选择"> <el-input type="text" placeholder="请输入"></el-input>
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="types == 3" label="竞争力度:" prop="projectName" class="row"> <el-form-item v-if="types == companytype[2].dictValue" label="竞争力度:" class="row">
<el-select placeholder="请选择"> <el-input type="text" placeholder="请输入"></el-input>
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="企业角色:" prop="projectName" class="row"> <el-form-item label="企业角色:" class="row">
<el-select placeholder="请选择"> <el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option> <el-option v-for="(item,index) in companyrole" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="负责人:" class="row"> <el-form-item label="负责人:" class="row">
...@@ -147,8 +137,10 @@ ...@@ -147,8 +137,10 @@
<script> <script>
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import {getXGQY,addXGQY} from '@/api/project/project'
import {getDictType} from '@/api/main'
export default { export default {
name: 'zlwd', name: 'xgqy',
data(){ data(){
return{ return{
types:1, types:1,
...@@ -180,10 +172,22 @@ ...@@ -180,10 +172,22 @@
rules:{ rules:{
projectName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },], projectName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
ownerCompany:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
}, },
companytype:[],
companyrole:[],
} }
}, },
created(){
//企业类型
getDictType('company_type').then(result=>{
this.companytype = result.code == 200 ? result.data:[]
this.types = this.companytype[0].dictValue
})
//企业角色
getDictType('company_role').then(result=>{
this.companyrole = result.code == 200 ? result.data:[]
})
},
methods:{ methods:{
//翻页 //翻页
handleCurrentChange(val) { handleCurrentChange(val) {
......
...@@ -12,17 +12,18 @@ ...@@ -12,17 +12,18 @@
<img src="@/assets/images/project/headimg.png" class="headimg"> <img src="@/assets/images/project/headimg.png" class="headimg">
<strong class="text">{{ProjectData.projectName}}</strong> <strong class="text">{{ProjectData.projectName}}</strong>
<div class="locks"> <div class="locks">
<div @click="islock=true">
<img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png"> <img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png">
<img v-else src="@/assets/images/project/lockopen.png"> <img v-else src="@/assets/images/project/lockopen.png">
{{ProjectData.isPrivate == 0?"仅自己可见":"他人可见"}} {{ProjectData.isPrivate == 0?"仅自己可见":"他人可见"}}
</div>
<!--<div class="delform">--> <div class="delform" v-if="islock">
<!--<div class="words">{{ProjectData.isPrivate == 0?"是否将项目权限修改为他人可见?":"是否将项目权限修改为仅自己可见?"}}</div>--> <div class="words">{{ProjectData.isPrivate == 0?"是否将项目权限修改为他人可见?":"是否将项目权限修改为仅自己可见?"}}</div>
<!--<div>--> <div>
<!--<div class="btnsmall btn_primary h28">确定</div>--> <div class="btnsmall btn_primary h28" @click="locks(ProjectData.isPrivate)">确定</div>
<!--<div class="btnsmall btn_cancel h28">取消</div>--> <div class="btnsmall btn_cancel h28" @click="islock=false">取消</div>
<!--</div>--> </div>
<!--</div>--> </div>
</div> </div>
</div> </div>
<div class="contets row"> <div class="contets row">
...@@ -33,7 +34,7 @@ ...@@ -33,7 +34,7 @@
{{xmlx}} {{xmlx}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-select v-model="xmlx" class="select-multiple" placeholder="请选择" @change="{}"> <el-select v-model="xmlx" class="select-multiple" placeholder="请选择" @change="editXMSL({projectType:xmlx})">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -46,7 +47,7 @@ ...@@ -46,7 +47,7 @@
{{xmlb}} {{xmlb}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-select v-model="xmlb" class="select-multiple" placeholder="请选择"> <el-select v-model="xmlb" class="select-multiple" placeholder="请选择" @change="editXMSL({projectCategory:xmlb})">
<el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -58,7 +59,7 @@ ...@@ -58,7 +59,7 @@
<div class="flex" v-if="nowedit == 3"> <div class="flex" v-if="nowedit == 3">
<el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input> <el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input>
<div class="flex"> <div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px">确定</div> <div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({investmentAmount:ProjectData.investmentAmount})">确定</div>
<div class="cancels h28" @click="nowedit = -1" style="">取消</div> <div class="cancels h28" @click="nowedit = -1" style="">取消</div>
</div> </div>
</div> </div>
...@@ -69,11 +70,11 @@ ...@@ -69,11 +70,11 @@
<span>建设地点:</span> <span>建设地点:</span>
<div class="select-popper"> <div class="select-popper">
<span :class="{ color_text:address != '待添加'}"> <span :class="{ color_text:addresstxt != '待添加'}">
{{address}} {{addresstxt}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
</span> </span>
<el-cascader class="cascader-region select-location" <el-cascader class="cascader-region select-location" v-model="ProjectData.address"
ref="myCascader" :props="props" ref="myCascader" :props="props"
:options="addressList" :options="addressList"
@change="handleChange"></el-cascader> @change="handleChange"></el-cascader>
...@@ -133,7 +134,7 @@ ...@@ -133,7 +134,7 @@
import zlwd from './component/zlwd.vue' import zlwd from './component/zlwd.vue'
import xgqy from './component/xgqy.vue' import xgqy from './component/xgqy.vue'
import prvinceTree from '@/assets/json/provinceTree' import prvinceTree from '@/assets/json/provinceTree'
import {getXMSL} from '@/api/project/project' import {getXMSL,editXMNR} from '@/api/project/project'
export default { export default {
name: 'detail', name: 'detail',
components: {xmsl,jsnr,lxr,gjjl,gzdb,zlwd,xgqy}, components: {xmsl,jsnr,lxr,gjjl,gzdb,zlwd,xgqy},
...@@ -153,12 +154,13 @@ ...@@ -153,12 +154,13 @@
thistag:'xmsl', thistag:'xmsl',
xmlx:'请选择',//项目类型 xmlx:'请选择',//项目类型
xmlb:'请选择',//项目类别 xmlb:'请选择',//项目类别
islock:true,//仅自己可见 islock:false,
projectStage:[],//项目阶段 projectStage:[],//项目阶段
projectType:[],//项目类型 projectType:[],//项目类型
projectCategory:[],//项目类别 projectCategory:[],//项目类别
nowedit:-1, nowedit:-1,
address:'待添加', address:[],
addresstxt:'待添加',
//项目地区 //项目地区
addressList:[], addressList:[],
domicile:[], domicile:[],
...@@ -183,27 +185,53 @@ ...@@ -183,27 +185,53 @@
this.projectCategory = result.code == 200 ? result.data:[] this.projectCategory = result.code == 200 ? result.data:[]
}) })
//获取基本信息 //获取基本信息
getXMSL(this.id).then(result=>{ this.getXMSL()
this.ProjectData = result.code==200?result.data:{}
this.$route.query.projectname = result.data.projectName
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage
let list = []
if(result.data.provinceName){
list.push(result.data.provinceName)
}
if(result.data.cityName){
list.push(result.data.cityName)
}
if(result.data.districtName){
list.push(result.data.districtName)
}
this.address = list
console.log(this.ProjectData.team)
})
}, },
methods: { methods: {
getXMSL(){
getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{}
this.$route.query.projectname = result.data.projectName
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage
let list = []
let txt = ''
if(result.data.provinceId){
list.push(result.data.provinceId)
txt += result.data.provinceName
}
if(result.data.cityId){
list.push(result.data.cityId)
txt += '/'+result.data.cityName
}
if(result.data.districtId){
list.push(result.data.districtId)
txt += '/'+result.data.districtName
}
this.address = list.length>0?list:"待添加"
this.addresstxt = txt == "" ? "待添加":txt
})
},
locks(isPrivate){
isPrivate = isPrivate==0?1:0
this.editXMSL({isPrivate:isPrivate})
this.lock = false
},
editXMSL(param){
let params = param
params.id = this.id
editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
this.getXMSL()
}
})
this.nowedit = -1
},
//地区 //地区
async prvinceTree() { async prvinceTree() {
// await axios.post("https://files.jiansheku.com/file/json/common/provinceTree.json", {}, { // await axios.post("https://files.jiansheku.com/file/json/common/provinceTree.json", {}, {
...@@ -238,11 +266,10 @@ ...@@ -238,11 +266,10 @@
}, },
choose(value){ choose(value){
this.thisindex = value this.thisindex = value
console.log(value) this.editXMSL({projectStage:value})
}, },
//内容组件切换 //内容组件切换
getCom(tag){ getCom(tag){
console.log(tag)
this.thistag = tag this.thistag = tag
}, },
//输入数字 //输入数字
...@@ -251,40 +278,33 @@ ...@@ -251,40 +278,33 @@
}, },
handleChange(value) { handleChange(value) {
console.log(value);
let str = ''
var labelString = this.$refs.myCascader.getCheckedNodes()[0].pathLabels; var labelString = this.$refs.myCascader.getCheckedNodes()[0].pathLabels;
let txt = ''
labelString.forEach((item,index)=>{ labelString.forEach((item,index)=>{
if(index == 0) let str = ''
str += item if(index >0){
else str = '/'
str += '-'+item
})
this.address = str
let arr = this.$refs.myCascader.getCheckedNodes();
// console.log(arr)
let province = [],
city = [],
area = [];
this.domicile = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && city.push(arr[i].value);
arr[i].hasChildren && this.domicile.push(arr[i].label);
!arr[i].hasChildren && area.push(arr[i].value);
!arr[i].hasChildren && this.domicile.push(arr[i].label);
}
} else {
province.push(arr[i].value);
this.domicile.push(arr[i].label);
} }
txt += str + item
})
this.addresstxt = txt
let param = {
provinceId:null,
cityId:null,
districtId:null
} }
// var obj = JSON.parse(JSON.stringify(this.searchParam)); value.forEach((item,index)=>{
// obj.province = province; if(index == 0){
// obj.city = city; param.provinceId = parseInt(item)
// obj.area = area; }
// this.searchParam = obj; if(index == 1){
param.cityId = parseInt(item)
}
if(index == 2){
param.districtId = parseInt(item)
}
})
this.editXMSL(param)
}, },
} }
} }
......
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
</div> </div>
</div> </div>
<div class="tables"> <div class="tables">
<div class="bottems" v-if="total>0"> <div class="bottems" v-if="total>searchParam.pageSize">
<el-pagination <el-pagination
background background
:page-size="searchParam.pageSize" :page-size="searchParam.pageSize"
......
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