Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
a549fdd9
Commit
a549fdd9
authored
Aug 02, 2023
by
huangjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联系人
parent
27d03bfd
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
457 additions
and
342 deletions
+457
-342
project.js
dsk-operate-ui/src/api/project/project.js
+15
-4
Navbar.vue
dsk-operate-ui/src/layout/components/Navbar.vue
+1
-1
index.vue
dsk-operate-ui/src/layout/components/TagsView/index.vue
+3
-3
index.vue
...rate-ui/src/views/detail/party-a/decisionMaking/index.vue
+301
-296
lxr.vue
...perate-ui/src/views/project/projectList/component/lxr.vue
+136
-37
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+1
-1
No files found.
dsk-operate-ui/src/api/project/project.js
View file @
a549fdd9
...
@@ -65,7 +65,8 @@ export function removeLabel(param) {
...
@@ -65,7 +65,8 @@ export function removeLabel(param) {
//查询项目联系人
//查询项目联系人
export
function
getLXR
(
param
)
{
export
function
getLXR
(
param
)
{
return
request
({
return
request
({
url
:
'/business/contacts/list'
,
// url: '/business/contacts/list',
url
:
'/contact/info/list'
,
method
:
'GET'
,
method
:
'GET'
,
params
:
param
params
:
param
})
})
...
@@ -73,8 +74,9 @@ export function getLXR(param) {
...
@@ -73,8 +74,9 @@ export function getLXR(param) {
//修改项目联系人
//修改项目联系人
export
function
editLXR
(
param
)
{
export
function
editLXR
(
param
)
{
return
request
({
return
request
({
url
:
'/business/contacts/edit'
,
// url: '/business/contacts/edit',
method
:
'POST'
,
url
:
'/contact/info'
,
method
:
'PUT'
,
data
:
param
data
:
param
})
})
}
}
...
@@ -82,12 +84,21 @@ export function editLXR(param) {
...
@@ -82,12 +84,21 @@ export function editLXR(param) {
//新增项目联系人
//新增项目联系人
export
function
addLXR
(
param
)
{
export
function
addLXR
(
param
)
{
return
request
({
return
request
({
url
:
'/business/contacts/add'
,
// url: '/business/contacts/add',
url
:
'/contact/info'
,
method
:
'POST'
,
method
:
'POST'
,
data
:
param
data
:
param
})
})
}
}
//删除项目联系人
export
function
delLXR
(
param
)
{
return
request
({
url
:
'/contact/info/'
+
param
,
method
:
'DELETE'
,
})
}
//跟进记录
//跟进记录
export
function
getGJJL
(
param
)
{
export
function
getGJJL
(
param
)
{
return
request
({
return
request
({
...
...
dsk-operate-ui/src/layout/components/Navbar.vue
View file @
a549fdd9
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<div
class=
"flex-box avatar-wrapper"
>
<div
class=
"flex-box avatar-wrapper"
>
<img
v-if=
"avatar"
class=
"pic-avatar"
:src=
"avatar"
>
<img
v-if=
"avatar"
class=
"pic-avatar"
:src=
"avatar"
>
<span
v-else
class=
"user-avatar"
>
{{
name
&&
name
.
slice
(
0
,
1
).
toUpperCase
()
}}
</span>
<span
v-else
class=
"user-avatar"
>
{{
name
&&
name
.
slice
(
0
,
1
).
toUpperCase
()
}}
</span>
{{
name
}}
{{
name
.
length
>
10
?
name
.
slice
(
0
,
10
)
+
'...'
:
name
}}
</div>
</div>
<el-dropdown-menu
slot=
"dropdown"
class=
"user-dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
class=
"user-dropdown"
>
<router-link
to=
"/user/profile"
>
<router-link
to=
"/user/profile"
>
...
...
dsk-operate-ui/src/layout/components/TagsView/index.vue
View file @
a549fdd9
...
@@ -384,14 +384,14 @@ export default {
...
@@ -384,14 +384,14 @@ export default {
}
}
}
}
.alltags
{
.alltags
{
position
:
absolute
;
position
:
fixed
;
align-items
:
center
;
align-items
:
center
;
border-radius
:
9px
;
border-radius
:
9px
;
height
:
17px
;
height
:
17px
;
justify-content
:
center
;
justify-content
:
center
;
width
:
36px
;
width
:
36px
;
right
:
-13
0px
;
right
:
1
0px
;
bottom
:
0
px
;
top
:
37
px
;
cursor
:
pointer
;
cursor
:
pointer
;
text-align
:
center
;
text-align
:
center
;
&
:hover
{
&
:hover
{
...
...
dsk-operate-ui/src/views/detail/party-a/decisionMaking/index.vue
View file @
a549fdd9
<
template
>
<
template
>
<
div
class=
"decisionMaking"
>
<
!--
<div
class=
"decisionMaking"
>
--
>
<
template
v-if=
"ifEmpty"
>
<
!--
<template
v-if=
"ifEmpty"
>
--
>
<
div
class=
"flex-box query-box"
>
<
!--
<div
class=
"flex-box query-box"
>
--
>
<
div
class=
"flex-box query-params"
></div
>
<
!--
<div
class=
"flex-box query-params"
></div>
--
>
<
div
class=
"flex-box query-add"
>
<
!--
<div
class=
"flex-box query-add"
>
--
>
<
el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"opennew"
>
新增联系人
</el-button
>
<
!--
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"opennew"
>
新增联系人1
</el-button>
--
>
<
/div
>
<
!--
</div>
--
>
<
/div
>
<
!--
</div>
--
>
<
div
class=
"table-item"
>
<
!--
<div
class=
"table-item"
>
--
>
<
tables
<
!--
<tables-->
:indexFixed=
"true"
<!--:indexFixed="true"-->
:tableLoading=
"tableLoading"
<!--:tableLoading="tableLoading"-->
:tableData=
"tableData"
<!--:tableData="tableData"-->
:forData=
"forData"
<!--:forData="forData"-->
:tableDataTotal=
"tableDataTotal"
<!--:tableDataTotal="tableDataTotal"-->
:queryParams=
"queryParams"
<!--:queryParams="queryParams"-->
@
handle-current-change=
"handleCurrentChange"
<!--@handle-current-change="handleCurrentChange"-->
/
>
<!--/>--
>
<
/div
>
<
!--
</div>
--
>
<
/
template
>
<
!--
</
template
>
--
>
<
template
v-else
>
<
!--<template v-else>--
>
<
div
class=
"cooperate_empty"
>
<
!--<div class="cooperate_empty">--
>
<
img
src=
"@/assets/images/project/empty.png"
/
>
<
!--<img src="@/assets/images/project/empty.png"/>--
>
<
div
class=
"empty-t"
>
暂无客户联系人数据
</div
>
<
!--<div class="empty-t">暂无客户联系人数据</div>--
>
<
div
class=
"empty-d"
>
抱歉,你还未添加客户联系人,快去添加吧
</div
>
<
!--<div class="empty-d">抱歉,你还未添加客户联系人,快去添加吧</div>--
>
<
el-button
type=
"primary"
class=
"empty-b"
@
click=
"opennew"
>
添加联系人
</el-button
>
<
!--<el-button type="primary" class="empty-b" @click="opennew">添加联系人</el-button>--
>
<
/div
>
<
!--</div>--
>
<
/
template
>
<
!--</template>--
>
<!--
弹窗添加联系人
-->
<!--
<!– 弹窗添加联系人 –>
-->
<
el-dialog
<
!--<el-dialog-->
class=
"popups1"
<!--class="popups1"-->
:visible
.
sync=
"dialogVisible"
<!--:visible.sync="dialogVisible"-->
:before-close=
"cancel"
<!--:before-close="cancel"-->
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>
{{ companyInfo
&&
companyInfo.companyName || customerInfo.companyName }}
</span
>
<
!--<span>{{ companyInfo && companyInfo.companyName || customerInfo.companyName }}</span>--
>
<
/div
>
<
!--</div>--
>
<
el-form
:model=
"addRorm"
:rules=
"addRules"
ref=
"addRorm"
class=
"popform"
label-width=
"90px"
>
<
!--<el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="90px">--
>
<
el-form-item
label=
"姓名:"
prop=
"name"
>
<
!--<el-form-item label="姓名:" prop="name">--
>
<
el-input
v-model=
"addRorm.name"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.name" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
el-form-item
label=
"角色:"
prop=
"role"
>
<
!--<el-form-item label="角色:" prop="role">--
>
<
el-input
v-model=
"addRorm.role"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.role" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
el-form-item
label=
"职位:"
prop=
"workUnit"
>
<
!--<el-form-item label="职位:" prop="workUnit">--
>
<
el-input
v-model=
"addRorm.workUnit"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.workUnit" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
el-form-item
label=
"公司/机关:"
prop=
"position"
>
<
!--<el-form-item label="公司/机关:" prop="position">--
>
<
el-input
v-model=
"addRorm.position"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.position" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
el-form-item
label=
"联系方式:"
prop=
"contactInformation"
>
<
!--<el-form-item label="联系方式:" prop="contactInformation">--
>
<
el-input
v-model=
"addRorm.contactInformation"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
el-form-item
label=
"备注:"
prop=
"remark"
>
<
!--<el-form-item label="备注:" prop="remark">--
>
<
el-input
v-model=
"addRorm.remark"
placeholder=
"请输入"
></el-input
>
<
!--<el-input v-model="addRorm.remark" placeholder="请输入"></el-input>--
>
<
/el-form-item
>
<
!--</el-form-item>--
>
<
div
class=
"popbot"
>
<
!--<div class="popbot">--
>
<
div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div
>
<
!--<div class="btn btn_cancel h32" @click="cancel">返回</div>--
>
<
div
class=
"btn btn_primary h32"
@
click=
"add"
>
保存
</div
>
<
!--<div class="btn btn_primary h32" @click="add">保存</div>--
>
<
/div
>
<
!--</div>--
>
<
/el-form
>
<
!--</el-form>--
>
<
/el-dialog
>
<
!--</el-dialog>--
>
</div>
<!--</div>-->
<lxr
:isDisabled=
'isDisabled'
:detailId=
"detailId"
:customname=
"companyInfo.companyName"
listtype=
"custom"
></lxr>
</template>
</template>
<
script
>
<
script
>
import
Tables
from
"../component/Tables"
// import Tables from "../component/Tables"
import
{
// import {
getList
,
// getList,
addChain
// addChain
}
from
'@/api/detail/party-a/decisionMaking'
// } from '@/api/detail/party-a/decisionMaking'
import
lxr
from
'../../../project/projectList/component/lxr.vue'
export
default
{
export
default
{
name
:
'DecisionMaking'
,
name
:
'DecisionMaking'
,
components
:
{
components
:
{
Tables
// Tables
lxr
},
},
props
:
[
'customerIds'
,
'companyInfo'
,
'customerInfo'
],
props
:
[
'customerIds'
,
'companyInfo'
,
'customerInfo'
],
data
()
{
data
()
{
return
{
return
{
ifEmpty
:
false
,
isDisabled
:
false
,
queryParams
:{
detailId
:
this
.
customerIds
,
customerId
:
this
.
customerIds
,
// ifEmpty:false,
pageNum
:
1
,
// queryParams:{
pageSize
:
20
,
// customerId:this.customerIds,
},
// pageNum:1,
forData
:
[
// pageSize:20,
{
label
:
'姓名'
,
prop
:
'name'
,
width
:
'124'
},
// },
{
label
:
'角色'
,
prop
:
'role'
,
width
:
'110'
},
// forData: [
{
label
:
'公司/机关'
,
prop
:
'position'
,
width
:
'268'
},
// {label: '姓名', prop: 'name', width: '124'},
{
label
:
'职位'
,
prop
:
'workUnit'
,
width
:
'110'
},
// {label: '角色', prop: 'role', width: '110'},
{
label
:
'联系方式'
,
prop
:
'contactInformation'
,
width
:
'105'
},
// {label: '公司/机关', prop: 'position', width: '268'},
{
label
:
'内部维护人'
,
prop
:
'updateBy'
,
width
:
'100'
},
// {label: '职位', prop: 'workUnit', width: '110'},
{
label
:
'备注'
,
prop
:
'remark'
},
// {label: '联系方式', prop: 'contactInformation', width: '105'},
],
// {label: '内部维护人', prop: 'updateBy', width: '100'},
addRorm
:
{
// {label: '备注', prop: 'remark'},
customerId
:
this
.
customerIds
,
// ],
name
:
''
,
// addRorm: {
role
:
''
,
// customerId:this.customerIds,
workUnit
:
''
,
// name:'',
position
:
''
,
// role:'',
contactInformation
:
''
,
// workUnit:'',
remark
:
''
,
// position:'',
},
// contactInformation:'',
addRules
:{
// remark:'',
name
:
[
// },
{
required
:
true
,
message
:
'请输入姓名'
,
trigger
:
'blur'
},
// addRules:{
],
// name: [
},
// { required: true, message: '请输入姓名', trigger: 'blur' },
stageOptions
:[],
// ],
statusOptions
:[],
// },
//列表
// stageOptions:[],
tableLoading
:
false
,
// statusOptions:[],
tableData
:[],
// //列表
tableDataTotal
:
0
,
// tableLoading:false,
//弹窗
// tableData:[],
dialogVisible
:
false
,
// tableDataTotal:0,
// //弹窗
// dialogVisible: false,
}
}
},
},
created
()
{
created
()
{
this
.
list
();
//
this.list();
},
},
computed
:
{
computed
:
{
},
},
methods
:
{
methods
:
{
list
(){
//
list(){
this
.
tableLoading
=
true
//
this.tableLoading = true
getList
(
this
.
queryParams
).
then
((
res
)
=>
{
//
getList(this.queryParams).then((res) => {
if
(
res
.
code
==
200
){
//
if(res.code == 200){
if
(
res
.
rows
.
length
>
0
){
//
if(res.rows.length >0){
this
.
tableData
=
res
.
rows
//
this.tableData = res.rows
this
.
tableDataTotal
=
res
.
total
//
this.tableDataTotal = res.total
this
.
ifEmpty
=
true
//
this.ifEmpty = true
}
//
}
this
.
tableLoading
=
false
//
this.tableLoading = false
}
//
}
})
//
})
},
//
},
//分页
//
//
分页
handleCurrentChange
(
e
){
//
handleCurrentChange(e){
this
.
queryParams
.
pageNum
=
e
//
this.queryParams.pageNum = e
this
.
list
()
//
this.list()
},
//
},
add
(){
//
add(){
this
.
$refs
.
addRorm
.
validate
((
valid
)
=>
{
//
this.$refs.addRorm.validate((valid) => {
if
(
valid
)
{
//
if (valid) {
addChain
(
this
.
addRorm
).
then
((
res
)
=>
{
//
addChain(this.addRorm).then((res) => {
if
(
res
.
data
){
//
if(res.data){
this
.
$message
({
//
this.$message({
message
:
'新增成功'
,
//
message: '新增成功',
type
:
'success'
//
type: 'success'
});
//
});
this
.
cancel
()
//
this.cancel()
this
.
list
()
//
this.list()
}
else
{
//
}else{
this
.
$message
({
//
this.$message({
message
:
res
.
msg
,
//
message: res.msg,
type
:
'error'
//
type: 'error'
});
//
});
}
//
}
})
//
})
}
//
}
});
//
});
},
//
},
cancel
(){
//
cancel(){
this
.
$refs
.
addRorm
.
resetFields
();
//
this.$refs.addRorm.resetFields();
this
.
dialogVisible
=
false
//
this.dialogVisible = false
},
//
},
//打开新建窗口
//
//
打开新建窗口
opennew
(){
//
opennew(){
this
.
dialogVisible
=
true
//
this.dialogVisible = true
},
//
},
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.decisionMaking
{
/*.decisionMaking{*/
background
:
#ffffff
;
/*background: #ffffff;*/
border-radius
:
4px
;
/*border-radius: 4px;*/
padding
:
16px
;
/*padding: 16px;*/
input
{
/*input{*/
border
:
1px
solid
#EFEFEF
;
/*border: 1px solid #EFEFEF;*/
}
/*}*/
::v-deep
.el-form-item
{
/*::v-deep .el-form-item{*/
margin-bottom
:
16px
;
/*margin-bottom: 16px;*/
}
/*}*/
::v-deep
.el-input__inner
{
/*::v-deep .el-input__inner{*/
border-radius
:
2px
0
2px
0
;
/*border-radius: 2px 0 2px 0;*/
height
:
32px
;
/*height: 32px;*/
line-height
:
32px
;
/*line-height: 32px;*/
}
/*}*/
.cooperate-name
{
/*.cooperate-name{*/
::v-deep
.el-form-item__content
{
/*::v-deep .el-form-item__content{*/
display
:
flex
;
/*display: flex;*/
span
{
/*span{*/
width
:
60px
;
/*width: 60px;*/
height
:
32px
;
/*height: 32px;*/
background
:
#F5F5F5
;
/*background: #F5F5F5;*/
text-align
:
center
;
/*text-align: center;*/
color
:
#0081FF
;
/*color: #0081FF;*/
border
:
1px
solid
#EFEFEF
;
/*border: 1px solid #EFEFEF;*/
border-left
:
0
;
/*border-left: 0;*/
cursor
:
pointer
;
/*cursor: pointer;*/
}
/*}*/
}
/*}*/
}
/*}*/
.query-add
{
/*.query-add{*/
button
{
/*button{*/
width
:
124px
;
/*width: 124px;*/
line-height
:
32px
;
/*line-height: 32px;*/
height
:
32px
;
/*height: 32px;*/
background
:
#0081FF
;
/*background: #0081FF;*/
border-radius
:
2px
2px
2px
2px
;
/*border-radius: 2px 2px 2px 2px;*/
padding
:
0
;
/*padding: 0;*/
color
:
#ffffff
;
/*color: #ffffff;*/
span
{
/*span{*/
color
:
#ffff
;
/*color: #ffff;*/
margin-left
:
4px
;
/*margin-left: 4px;*/
}
/*}*/
}
/*}*/
}
/*}*/
.cooperate_empty
{
/*.cooperate_empty{*/
text-align
:
center
;
/*text-align: center;*/
height
:
calc
(
100vh
-
170px
);
/*height: calc(100vh - 170px);*/
display
:
flex
;
/*display: flex;*/
align-items
:
center
;
/*align-items: center;*/
justify-content
:
center
;
/*justify-content: center;*/
flex-direction
:
column
;
/*flex-direction: column;*/
img
{
/*img{*/
width
:
108px
;
/*width: 108px;*/
height
:
108px
;
/*height: 108px;*/
border-radius
:
50%
;
/*border-radius: 50%;*/
margin-bottom
:
24px
;
/*margin-bottom: 24px;*/
}
/*}*/
.empty-t
{
/*.empty-t{*/
font-size
:
16px
;
/*font-size: 16px;*/
color
:
#333333
;
/*color: #333333;*/
margin-bottom
:
8px
;
/*margin-bottom: 8px;*/
}
/*}*/
.empty-d
{
/*.empty-d{*/
font-size
:
14px
;
/*font-size: 14px;*/
font-weight
:
400
;
/*font-weight: 400;*/
color
:
#999999
;
/*color: #999999;*/
margin-bottom
:
24px
;
/*margin-bottom: 24px;*/
}
/*}*/
.empty-b
{
/*.empty-b{*/
width
:
116px
;
/*width: 116px;*/
height
:
36px
;
/*height: 36px;*/
background
:
#0081FF
;
/*background: #0081FF;*/
border-radius
:
4px
;
/*border-radius: 4px;*/
padding
:
0
;
/*padding: 0;*/
}
/*}*/
}
/*}*/
.table-item
{
/*.table-item{*/
margin-top
:
10px
;
/*margin-top: 10px;*/
}
/*}*/
/
/ 弹窗
/
*// 弹窗*/
.popups1
{
/*.popups1{*/
.poptitle
{
/*.poptitle {*/
line-height
:
48px
;
/*line-height: 48px;*/
border-bottom
:
1px
solid
#E1E1E1
;
/*border-bottom: 1px solid #E1E1E1;*/
height
:
48px
;
/*height: 48px;*/
position
:
absolute
;
/*position: absolute;*/
top
:
0
;
/*top: 0;*/
left
:
0
;
/*left: 0;*/
width
:
100%
;
/*width: 100%;*/
img
{
/*img {*/
width
:
17px
;
/*width: 17px;*/
margin
:
16px
;
/*margin: 16px;*/
float
:
left
;
/*float: left;*/
}
/*}*/
span
{
/*span {*/
font-weight
:
bold
;
/*font-weight: bold;*/
font-size
:
16px
;
/*font-size: 16px;*/
color
:
#232323
;
/*color: #232323;*/
font-family
:
Microsoft
YaHei-Bold
,
Microsoft
YaHei
;
/*font-family: Microsoft YaHei-Bold, Microsoft YaHei;*/
width
:
385px
;
/*width: 385px;*/
display
:
block
;
/*display: block;*/
overflow
:
hidden
;
/*overflow: hidden;*/
white-space
:
nowrap
;
/*white-space: nowrap;*/
text-overflow
:
ellipsis
;
/*text-overflow: ellipsis;*/
}
/*}*/
}
/*}*/
::v-deep
.el-dialog__body
{
/*::v-deep .el-dialog__body{*/
padding
:
24px
24px
18px
;
/*padding: 24px 24px 18px;*/
}
/*}*/
.popform
{
/*.popform {*/
padding-top
:
14px
;
/*padding-top: 14px;*/
::v-deep
.el-form-item__label
{
/*::v-deep .el-form-item__label{*/
padding
:
0
;
/*padding:0;*/
}
/*}*/
.row
{
/*.row {*/
padding-bottom
:
16px
;
/*padding-bottom: 16px;*/
.left
{
/*.left {*/
width
:
137px
;
/*width: 137px;*/
display
:
inline-block
;
/*display: inline-block;*/
text-align
:
right
;
/*text-align: right;*/
opacity
:
0
.8
;
/*opacity: 0.8;*/
}
/*}*/
::v-deep
.el-input
{
/*::v-deep .el-input {*/
display
:
inline-block
;
/*display: inline-block;*/
width
:
240px
;
/*width: 240px;*/
}
/*}*/
}
/*}*/
.popbot
{
/*.popbot {*/
text-align
:
right
;
/*text-align: right;*/
padding-top
:
8px
;
/*padding-top: 8px;*/
}
/*}*/
}
/*}*/
}
/*}*/
}
/*}*/
::v-deep
.el-table__fixed
::before
,
::v-deep
.el-table__fixed-right
::before
{
/*::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{*/
background-color
:unset
;
/*background-color:unset;*/
}
/*}*/
::v-deep
.el-dialog__headerbtn
{
/*::v-deep .el-dialog__headerbtn{*/
z-index
:
9
;
/*z-index: 9;*/
}
/*}*/
</
style
>
</
style
>
dsk-operate-ui/src/views/project/projectList/component/lxr.vue
View file @
a549fdd9
...
@@ -26,39 +26,37 @@
...
@@ -26,39 +26,37 @@
<!--
<div
class=
"btn btn_primary h36 w102"
@
click=
"opennew"
v-if=
"isDisableds == false"
>
新增联系人
</div>
-->
<!--
<div
class=
"btn btn_primary h36 w102"
@
click=
"opennew"
v-if=
"isDisableds == false"
>
新增联系人
</div>
-->
<!--
</div>
-->
<!--
</div>
-->
<!--
</
template
>
-->
<!--
</
template
>
-->
<el-table-column
<el-table-column
label=
"序号"
width=
"60"
>
prop=
"name"
label=
"姓名"
width=
"113"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
name
||
'--'
}}
<span>
{{
(
searchParam
.
pageNum
-
1
)
*
searchParam
.
pageSize
+
scope
.
$index
+
1
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"name"
prop=
"name"
label=
"
操作
"
label=
"
姓名
"
width=
"11
8
"
>
width=
"11
3
"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"edit"
@
click=
"getDetail(scope.row)"
>
<div
class=
"wordprimary"
><span
@
click=
"getDetail(scope.row)"
>
{{
scope
.
row
.
name
||
'--'
}}
</span><img
v-if=
"isDisabled == false"
@
click=
"deltip(scope.row.id)"
src=
"@/assets/images/delete.png"
></div>
<img
src=
"@/assets/images/project/edit.png"
>
<span>
编辑
</span>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!--<el-table-column-->
<!--prop="name"-->
<!--label="操作"-->
<!--width="118">-->
<!--<template slot-scope="scope">-->
<!--<div class="edit" @click="getDetail(scope.row)">-->
<!--<img src="@/assets/images/project/edit.png">-->
<!--<span>编辑</span>-->
<!--</div>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column
<el-table-column
prop=
"role"
prop=
"role"
label=
"
角色
"
label=
"
联系人性别
"
sortable
sortable
width=
"146"
>
width=
"146"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
role
||
'--'
}}
{{
scope
.
row
.
sex
==
0
?
'女'
:
'男'
||
'--'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"office"
label=
"关联企业"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
office
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
...
@@ -70,19 +68,47 @@
...
@@ -70,19 +68,47 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"phone"
prop=
"role"
label=
"联系人角色"
sortable
width=
"146"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
role
||
'--'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"contactInformation"
label=
"联系方式"
label=
"联系方式"
width=
"175"
>
width=
"175"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
phone
||
'--'
}}
{{
scope
.
row
.
contactInformation
||
'--'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"office"
label=
"关联企业"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.uipId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="(scope.row.companyId||scope.row.uipId)
&&
scope.row.office" v-html="scope.row.office">
</router-link>
<div
v-else
v-html=
"scope.row.office || '--'"
></div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"
accendant
"
prop=
"
updateBy
"
label=
"内部维护人"
label=
"内部维护人"
width=
"146"
>
width=
"146"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
accendant
||
'--'
}}
{{
scope
.
row
.
updateBy
||
'--'
}}
</
template
>
</el-table-column>
<el-table-column
v-if=
"thistype == 'custom'"
prop=
"projectName"
label=
"来源"
width=
"146"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.projectName && scope.row.projectId"
class=
"wordprimary"
@
click=
"todetail(scope.row.projectId)"
>
{{
scope
.
row
.
projectName
||
'--'
}}
</div>
<div
v-else
>
自主填报
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -104,7 +130,8 @@
...
@@ -104,7 +130,8 @@
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>
{{projectname}}
</span>
<span
v-if=
"thistype == 'project'"
>
{{projectname}}
</span>
<span
v-if=
"thistype == 'custom'"
>
{{companyName}}
</span>
</div>
</div>
<el-form
class=
"popform"
:model=
"queryParam"
ref=
"ruleForm"
label-width=
"137px"
:rules=
"rules"
>
<el-form
class=
"popform"
:model=
"queryParam"
ref=
"ruleForm"
label-width=
"137px"
:rules=
"rules"
>
<el-form-item
label=
"联系人姓名:"
class=
"row"
prop=
"name"
>
<el-form-item
label=
"联系人姓名:"
class=
"row"
prop=
"name"
>
...
@@ -119,7 +146,7 @@
...
@@ -119,7 +146,7 @@
<el-form-item
label=
"联系人角色:"
class=
"row"
>
<el-form-item
label=
"联系人角色:"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.role"
placeholder=
"请输入"
></el-input>
<el-input
type=
"text"
v-model=
"queryParam.role"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"关联企业:"
class=
"row"
>
<el-form-item
label=
"关联企业:"
class=
"row"
v-if=
"thistype == 'project'"
>
<el-input
type=
"text"
v-model=
"queryParam.office"
placeholder=
"请输入"
></el-input>
<el-input
type=
"text"
v-model=
"queryParam.office"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系人职位:"
class=
"row"
>
<el-form-item
label=
"联系人职位:"
class=
"row"
>
...
@@ -129,7 +156,15 @@
...
@@ -129,7 +156,15 @@
<!--<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>-->
<!--<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>-->
<!--</el-form-item>-->
<!--</el-form-item>-->
<el-form-item
label=
"联系方式:"
class=
"row"
>
<el-form-item
label=
"联系方式:"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.phone"
placeholder=
"请输入"
></el-input>
<el-input
type=
"text"
v-model=
"queryParam.contactInformation"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"备注:"
class=
"row"
>
<el-input
type=
"textarea"
:rows=
"2"
placeholder=
"请输入"
v-model=
"queryParam.remark"
>
</el-input>
</el-form-item>
</el-form-item>
<div
class=
"popbot"
>
<div
class=
"popbot"
>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div>
...
@@ -137,26 +172,40 @@
...
@@ -137,26 +172,40 @@
</div>
</div>
</el-form>
</el-form>
</el-dialog>
</el-dialog>
<div
class=
"delform"
v-if=
"isdel"
>
<div
class=
"words"
>
是否删除联系人
</div>
<div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"deletes"
>
确定
</div>
<div
class=
"btnsmall btn_cancel h28"
@
click=
"isdel=false"
>
取消
</div>
</div>
</div>
</el-card>
</el-card>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
"@/assets/styles/project.scss"
import
"@/assets/styles/project.scss"
import
{
getLXR
,
editLXR
,
addLXR
}
from
'@/api/project/project'
import
{
getLXR
,
editLXR
,
addLXR
,
delLXR
}
from
'@/api/project/project'
import
skeleton
from
'./skeleton'
import
skeleton
from
'./skeleton'
import
{
encodeStr
}
from
"@/assets/js/common.js"
export
default
{
export
default
{
encodeStr
,
components
:{
skeleton
},
components
:{
skeleton
},
name
:
'lxr'
,
name
:
'lxr'
,
props
:
{
props
:
{
detailId
:
{
//从
企业
详情跳转过来ID
detailId
:
{
//从
项目、客户列表
详情跳转过来ID
type
:
Number
,
type
:
Number
,
default
:
0
default
:
0
},
},
isDisabled
:
false
,
isDisabled
:
false
,
listtype
:
''
,
//project项目详情 custom客户列表
customname
:
''
,
//企业名称
},
},
data
(){
data
(){
return
{
return
{
isdel
:
false
,
thistype
:
this
.
listtype
,
rules
:{
rules
:{
name
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
name
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
},
},
...
@@ -170,20 +219,44 @@
...
@@ -170,20 +219,44 @@
searchParam
:{
searchParam
:{
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
,
pageSize
:
20
,
businessId
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
},
},
id
:
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
,
total
:
0
,
total
:
0
,
projectname
:
this
.
$route
.
query
.
projectname
,
projectname
:
this
.
$route
.
query
.
projectname
,
companyName
:
this
.
customname
,
queryParam
:[],
queryParam
:[],
isDisableds
:
this
.
isDisabled
,
isDisableds
:
this
.
isDisabled
,
isSkeleton
:
true
,
isSkeleton
:
true
,
delid
:
null
,
}
}
},
},
created
(){
created
(){
this
.
getList
()
this
.
getList
()
if
(
this
.
thistype
==
'project'
){
this
.
searchParam
.
projectId
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
}
if
(
this
.
thistype
==
'custom'
){
this
.
searchParam
.
customerId
=
this
.
customerId
?
this
.
customerId
:
this
.
$route
.
query
.
id
}
},
},
methods
:{
methods
:{
todetail
(
id
){
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
{
id
:
id
,
tag
:
'xmsl'
}
});
},
deltip
(
id
){
this
.
delid
=
id
this
.
isdel
=
true
},
deletes
(){
delLXR
(
this
.
delid
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'删除成功!'
)
this
.
handleCurrentChange
(
1
)
this
.
isdel
=
false
}
})
},
getDetail
(
item
){
getDetail
(
item
){
if
(
this
.
isDisableds
==
true
){
if
(
this
.
isDisableds
==
true
){
return
this
.
$message
.
warning
(
"您无权限进行操作"
)
return
this
.
$message
.
warning
(
"您无权限进行操作"
)
...
@@ -191,7 +264,7 @@
...
@@ -191,7 +264,7 @@
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
item
.
sex
=
item
.
sex
.
toString
()
item
.
sex
=
item
.
sex
.
toString
()
this
.
queryParam
=
item
this
.
queryParam
=
JSON
.
parse
(
JSON
.
stringify
(
item
))
this
.
isnew
=
false
this
.
isnew
=
false
},
},
getList
(){
getList
(){
...
@@ -207,13 +280,13 @@
...
@@ -207,13 +280,13 @@
if
(
valid
)
{
if
(
valid
)
{
let
param
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryParam
))
let
param
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryParam
))
param
.
sex
=
parseInt
(
param
.
sex
)
param
.
sex
=
parseInt
(
param
.
sex
)
if
(
!
this
.
queryParam
.
phone
)
{
if
(
!
this
.
queryParam
.
contactInformation
)
{
this
.
$message
.
error
(
'请输入电话号码'
)
this
.
$message
.
error
(
'请输入电话号码'
)
return
false
return
false
}
}
var
regPartton
=
/1
[
3-9
]
+
\d{9}
/
;
var
regPartton
=
/1
[
3-9
]
+
\d{9}
/
;
var
regPartton1
=
/0
\d{2,3}
-
\d{7,8}
|
\(?
0
\d{2,3}[
)-
]?\d{7,8}
|
\(?
0
\d{2,3}[
)-
]
*
\d{7,8}
/
;
var
regPartton1
=
/0
\d{2,3}
-
\d{7,8}
|
\(?
0
\d{2,3}[
)-
]?\d{7,8}
|
\(?
0
\d{2,3}[
)-
]
*
\d{7,8}
/
;
if
(
!
regPartton
.
test
(
this
.
queryParam
.
phone
)
&&
!
regPartton1
.
test
(
this
.
queryParam
.
phone
))
{
if
(
!
regPartton
.
test
(
this
.
queryParam
.
contactInformation
)
&&
!
regPartton1
.
test
(
this
.
queryParam
.
contactInformation
))
{
this
.
$message
.
error
(
"请输入正确的电话"
);
this
.
$message
.
error
(
"请输入正确的电话"
);
return
false
return
false
}
}
...
@@ -251,15 +324,21 @@
...
@@ -251,15 +324,21 @@
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
this
.
isnew
=
true
this
.
isnew
=
true
this
.
queryParam
=
{
this
.
queryParam
=
{
businessId
:
this
.
id
,
name
:
""
,
name
:
""
,
sex
:
"1"
,
sex
:
"1"
,
role
:
""
,
role
:
""
,
office
:
""
,
position
:
""
,
position
:
""
,
phone
:
""
,
contactInformation
:
""
,
remark
:
""
,
// accendant:"",
// accendant:"",
}
}
if
(
this
.
thistype
==
'project'
){
this
.
queryParam
.
projectId
=
this
.
searchParam
.
projectId
this
.
office
=
""
}
if
(
this
.
thistype
==
'custom'
){
this
.
queryParam
.
customerId
=
this
.
searchParam
.
customerId
}
},
},
}
}
}
}
...
@@ -275,5 +354,25 @@
...
@@ -275,5 +354,25 @@
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%
;
background-size
:
100%
;
}
.wordprimary
{
img
{
display
:
none
;
height
:
20px
;
position
:
absolute
;
margin-left
:
10px
;
}
&
:hover
{
img
{
display
:
inline-block
;
}
}
}
.delform
{
position
:
fixed
;
left
:
50%
;
top
:
50%
;
margin-left
:
-100px
;
margin-top
:
-57px
;
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
a549fdd9
...
@@ -117,7 +117,7 @@
...
@@ -117,7 +117,7 @@
<!--建设内容-->
<!--建设内容-->
<jsnr
v-if=
"thistag == 'jsnr'"
:key=
"keys1"
:isDisabled=
'isDisabled'
@
Refrehmoney=
"getXMSL"
:detailId=
"detailId"
></jsnr>
<jsnr
v-if=
"thistag == 'jsnr'"
:key=
"keys1"
:isDisabled=
'isDisabled'
@
Refrehmoney=
"getXMSL"
:detailId=
"detailId"
></jsnr>
<!--联系人-->
<!--联系人-->
<lxr
v-if=
"thistag == 'lxr'"
:isDisabled=
'isDisabled'
:detailId=
"detailId"
></lxr>
<lxr
v-if=
"thistag == 'lxr'"
:isDisabled=
'isDisabled'
:detailId=
"detailId"
listtype=
"project"
></lxr>
<!--跟进记录-->
<!--跟进记录-->
<gjjl
v-if=
"thistag == 'gjjl'"
:isDisabled=
'isDisabled'
types=
"gjjl"
:detailId=
"detailId"
></gjjl>
<gjjl
v-if=
"thistag == 'gjjl'"
:isDisabled=
'isDisabled'
types=
"gjjl"
:detailId=
"detailId"
></gjjl>
<!--工作待办-->
<!--工作待办-->
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment