Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
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
fulixin
dsk-operate-sys-cscec
Commits
94265561
Commit
94265561
authored
Oct 26, 2023
by
tianhongyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug
parent
fd6d053f
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1293 additions
and
1037 deletions
+1293
-1037
project.js
dsk-operate-ui/src/api/project/project.js
+1
-2
asc.svg
dsk-operate-ui/src/assets/icons/svg/asc.svg
+1
-0
desc.svg
dsk-operate-ui/src/assets/icons/svg/desc.svg
+1
-0
common.css
dsk-operate-ui/src/assets/styles/common.css
+4
-0
index.js
dsk-operate-ui/src/utils/postMessageBridge/bridge/index.js
+13
-0
index.js
dsk-operate-ui/src/utils/postMessageBridge/index.js
+0
-0
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+593
-575
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+0
-5
index.vue
dsk-operate-ui/src/views/market/index.vue
+23
-19
BatchImportCom.vue
...rc/views/project/projectList/component/BatchImportCom.vue
+163
-0
BidOpeningRecord.vue
.../views/project/projectList/component/BidOpeningRecord.vue
+75
-21
batchImportReset.vue
.../views/project/projectList/component/batchImportReset.vue
+2
-2
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+417
-410
index.vue
dsk-operate-ui/src/views/system/user/index.vue
+0
-3
No files found.
dsk-operate-ui/src/api/project/project.js
View file @
94265561
...
@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({
...
@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({
*/
*/
export
const
removeBidOpeningRecordApi
=
(
params
)
=>
request
({
export
const
removeBidOpeningRecordApi
=
(
params
)
=>
request
({
method
:
"DELETE"
,
method
:
"DELETE"
,
url
:
"/business/open/tender"
,
url
:
`/business/open/tender/
${
params
}
`
,
params
});
});
dsk-operate-ui/src/assets/icons/svg/asc.svg
0 → 100644
View file @
94265561
<svg
width=
"24"
height=
"24"
viewBox=
"0 0 48 48"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M23.063 13.171a1.2 1.2 0 011.874 0l13.503 16.88c.629.785.07 1.949-.937 1.949H10.497c-1.006 0-1.566-1.164-.937-1.95l13.503-16.879z"
/></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/icons/svg/desc.svg
0 → 100644
View file @
94265561
<svg
width=
"24"
height=
"24"
viewBox=
"0 0 48 48"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M24.937 34.829a1.2 1.2 0 01-1.874 0L9.56 17.949C8.93 17.165 9.49 16 10.497 16h27.006c1.007 0 1.566 1.164.937 1.95L24.937 34.829z"
/></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/styles/common.css
View file @
94265561
...
@@ -16,3 +16,7 @@
...
@@ -16,3 +16,7 @@
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity
:
0
;
opacity
:
0
;
}
}
.el-message
{
z-index
:
3000
!important
;
}
dsk-operate-ui/src/utils/postMessageBridge/bridge/index.js
0 → 100644
View file @
94265561
/*
* @Author: thy
* @Date: 2023-10-26 14:56:41
* @LastEditors: thy
* @LastEditTime: 2023-10-26 16:00:22
* @Description: file content
* @FilePath: \dsk-operate-ui\src\utils\postMessageBridge\bridge\index.js
*/
class
PostMessageBridge
{
constructor
()
{
}
}
\ No newline at end of file
dsk-operate-ui/src/utils/postMessageBridge/index.js
0 → 100644
View file @
94265561
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
94265561
<
template
>
<
template
>
<div
@
click =
'handleALL'
class=
"app
-container"
>
<div
@
click=
'handleALL'
class=
"custom-list
-container"
>
<div
class=
"miantitle"
>
<div
class=
"miantitle"
>
<span>
客户管理
</span>
<span>
客户管理
</span>
<span>
/ 客户列表
</span>
<span>
/ 客户列表
</span>
</div>
</div>
<div>
<div>
<el-card
class=
"box-card noborder
min1370
"
>
<el-card
class=
"box-card noborder"
>
<div
class=
"tables "
>
<div
class=
"tables "
>
<div
class=
"empty"
v-if=
"tableData.total==0 && !isSkeleton"
>
<div
class=
"empty"
v-if=
"tableData.total==0 && !isSkeleton"
>
<img
src=
"@/assets/images/project/empty.png"
>
<img
src=
"@/assets/images/project/empty.png"
>
...
@@ -18,52 +18,43 @@
...
@@ -18,52 +18,43 @@
<div>
<div>
<el-form
ref=
"queryForm"
:model=
"searchParam"
:inline=
"true"
size=
"small"
>
<el-form
ref=
"queryForm"
:model=
"searchParam"
:inline=
"true"
size=
"small"
>
<el-form-item>
<el-form-item>
<el-cascader
<el-cascader
ref=
"address1"
:class=
"[`select-adaptive-$
{inputID1}`]" :options="addressList" :props="addressProps" v-model="address"
ref=
"address1"
@change="iptAdaptive(inputID1,true)" placeholder="地区选择" collapse-tags style="width: 130px;" clearable>
</el-cascader>
:class=
"[`select-adaptive-$
{inputID1}`]"
:options="addressList"
:props="addressProps"
v-model="address"
@change="iptAdaptive(inputID1,true)"
placeholder="地区选择"
collapse-tags
style="width: 130px;"
clearable>
</el-cascader>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"companyNatures"
>
<el-form-item
prop=
"companyNatures"
>
<el-select
v-model=
"searchParam.companyNatures"
:class=
"[`select-adaptive-$
{inputID2}`]" style="width: 130px;" @change="iptAdaptive(inputID2,true)" multiple collapse-tags clearable class="form-content-width" placeholder="客户性质">
<el-select
v-model=
"searchParam.companyNatures"
:class=
"[`select-adaptive-$
{inputID2}`]" style="width: 130px;"
@change="iptAdaptive(inputID2,true)" multiple collapse-tags clearable class="form-content-width" placeholder="客户性质">
<el-option
v-for=
"(item, index) in companyNaturelist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in companyNaturelist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"isOn"
>
<el-form-item
prop=
"isOn"
>
<el-select
v-model=
"searchParam.isOn"
:class=
"[`select-adaptive-$
{inputID3}`]" filterable clearable style="width: 130px;" @change="iptAdaptive(inputID3)" class="form-content-width" placeholder="上市公司">
<el-select
v-model=
"searchParam.isOn"
:class=
"[`select-adaptive-$
{inputID3}`]" filterable clearable style="width: 130px;"
@change="iptAdaptive(inputID3)" class="form-content-width" placeholder="上市公司">
<el-option
v-for=
"(item, index) in isMajorlist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in isMajorlist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"creditLevels"
>
<el-form-item
prop=
"creditLevels"
>
<el-select
v-model=
"searchParam.creditLevels"
:class=
"[`select-adaptive-$
{inputID4}`]" style="width: 130px;" @change="iptAdaptive(inputID4,true)" multiple collapse-tags clearable class="form-content-width" placeholder="资信评级">
<el-select
v-model=
"searchParam.creditLevels"
:class=
"[`select-adaptive-$
{inputID4}`]" style="width: 130px;"
@change="iptAdaptive(inputID4,true)" multiple collapse-tags clearable class="form-content-width" placeholder="资信评级">
<el-option
v-for=
"(item, index) in creditLevellist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in creditLevellist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"companyName"
>
<el-form-item
prop=
"companyName"
>
<!--
<div
class=
"newSearch"
>
-->
<div
class=
"normal-search-container"
:class=
"
{'is-hover-search' : searchHoverStatus}" @mouseover="searchHover($event)"
<!--
<el-input
type=
"text"
v-model=
"searchParam.companyName"
clearable
placeholder=
"输入企业名称查询"
@
change=
"clearname"
>
-->
@mouseleave="searchUnHover($event,form)">
<!--
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
width=
"16px"
@
click=
"handleCurrentChange(1)"
></i>
-->
<!--
</el-input>
-->
<!--
</div>
-->
<!-- 未点击前的输入框样式 -->
<div
class=
"normal-search-container"
@
click=
"showSearchBox = true"
v-if=
"!showSearchBox"
>
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<span>
搜索
</span>
<span
v-show=
"!searchHoverStatus && !searchParam.companyName"
>
搜索
</span>
<el-input
v-model=
"searchParam.companyName"
placeholder=
"输入关键词查询"
style=
"width:238px;"
@
focus=
"searchFocus($event)"
@
blur=
"searchBlur($event)"
@
input=
"value => searchInput(value)"
v-show=
"searchHoverStatus || searchParam.companyName"
@
keydown
.
native
.
enter=
"handleSearch"
>
<template
slot=
"suffix"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
<img
src=
"@/assets/images/enterprise/search-input-clear-icon.svg"
alt=
""
@
click
.
stop=
"searchParam.companyName = '';handleSearch"
v-show=
"showClearIcon"
>
</transition>
</
template
>
</el-input>
</div>
</div>
<!-- 输入框展开后样式 -->
<transition
@
enter=
"onEnter"
appear
mode=
"out-in"
>
<div
class=
"cooperate-name enterprise-search-container"
id=
"focus1"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"handleSearch"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"searchParam.companyName"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleSearch"
>
搜索
</span>
</div>
</transition>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -71,171 +62,127 @@
...
@@ -71,171 +62,127 @@
<div
class=
"dc"
>
<div
class=
"dc"
>
<div
class=
"total"
>
共{{tableData.total}}条
</div>
<div
class=
"total"
>
共{{tableData.total}}条
</div>
<div
class=
"btn-export"
@
click=
"pldrs"
><img
src=
"@/assets/images/project/import.png"
>
批量导入
</div>
<div
class=
"btn-export"
@
click=
"pldrs"
><img
src=
"@/assets/images/project/import.png"
>
批量导入
</div>
<div
class=
"btn btn_primary h32 p10"
@
click=
"opennew"
><div
class=
"img img1"
></div>
添加客户
</div>
<div
class=
"btn btn_primary h32 p10"
@
click=
"opennew"
>
<div
class=
"img img1"
></div>
添加客户
</div>
</div>
</div>
</div>
</div>
<skeleton
v-if=
"isSkeleton"
></skeleton>
<skeleton
v-if=
"isSkeleton"
></skeleton>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
v-show=
"!isSkeleton&&tableData.total > 0"
class=
"fixed-table"
v-horizontal-scroll=
"'hover'"
ref=
"thistables"
<el-table
v-show=
"!isSkeleton&&tableData.total > 0"
class=
"fixed-table"
v-horizontal-scroll=
"'hover'"
ref=
"thistables"
:data=
"tableData.rows"
:data=
"tableData.rows"
stripe
border
style=
"width: 100%"
>
stripe
border
<el-table-column
prop=
"index"
label=
"序号"
fixed=
"left"
width=
"60"
>
style=
"width: 100%"
>
<el-table-column
prop=
"index"
label=
"序号"
fixed=
"left"
width=
"60"
>
<
template
slot-scope=
'scope'
>
<
template
slot-scope=
'scope'
>
<span>
{{
(
searchParam
.
pageNum
-
1
)
*
searchParam
.
pageSize
+
scope
.
$index
+
1
}}
</span>
<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=
"date"
label=
"企业名称"
fixed=
"left"
width=
"316"
>
prop=
"date"
label=
"企业名称"
fixed=
"left"
width=
"316"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"ps1"
>
<div
class=
"ps1"
>
<div
class=
"wordprimary ps2"
@
click=
"toDetail(scope.row,'business')"
v-html=
"scope.row.companyName"
></div>
<div
class=
"wordprimary ps2"
@
click=
"toDetail(scope.row,'business')"
v-html=
"scope.row.companyName"
></div>
<div
class=
"ps3"
>
<div
class=
"ps3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"写跟进"
placement=
"top"
transition=
""
:open-delay=
"450"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"写跟进"
placement=
"top"
transition=
""
:open-delay=
"450"
>
<div
@
click=
"toDetail(scope.row,'gjjl')"
><img
class=
"i"
src=
"@/assets/images/project/edit_1.png"
><img
class=
"o"
src=
"@/assets/images/project/edit_11.png"
></div>
<div
@
click=
"toDetail(scope.row,'gjjl')"
><img
class=
"i"
src=
"@/assets/images/project/edit_1.png"
><img
class=
"o"
src=
"@/assets/images/project/edit_11.png"
></div>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑信息"
placement=
"top"
transition=
""
:open-delay=
"450"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑信息"
placement=
"top"
transition=
""
:open-delay=
"450"
>
<div
@
click=
"toDetail(scope.row,'business')"
><img
class=
"i"
src=
"@/assets/images/project/edit_2.png"
><img
class=
"o"
src=
"@/assets/images/project/edit_22.png"
></div>
<div
@
click=
"toDetail(scope.row,'business')"
><img
class=
"i"
src=
"@/assets/images/project/edit_2.png"
><img
class=
"o"
src=
"@/assets/images/project/edit_22.png"
></div>
</el-tooltip>
</el-tooltip>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"cooperationProject"
label=
"合作项目"
width=
"90"
>
prop=
"cooperationProject"
label=
"合作项目"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
cooperationProject
||
'--'
}}
{{
scope
.
row
.
cooperationProject
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"followProject"
label=
"跟进项目"
width=
"90"
>
prop=
"followProject"
label=
"跟进项目"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
followProject
||
'--'
}}
{{
scope
.
row
.
followProject
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"reserveProject"
label=
"储备项目"
width=
"90"
>
prop=
"reserveProject"
label=
"储备项目"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
reserveProject
||
'--'
}}
{{
scope
.
row
.
reserveProject
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"legalPerson"
label=
"法定代表人"
width=
"110"
>
prop=
"legalPerson"
label=
"法定代表人"
width=
"110"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
legalPerson
||
'--'
}}
{{
scope
.
row
.
legalPerson
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"registerAddress"
label=
"注册地区"
width=
"160"
>
prop=
"registerAddress"
label=
"注册地区"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
registerAddress
||
'--'
}}
{{
scope
.
row
.
registerAddress
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"registerCapitalStr"
label=
"注册资本金(万元)"
width=
"160"
>
prop=
"registerCapitalStr"
label=
"注册资本金(万元)"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.registerCapital && scope.row.registerCapital>0"
>
{{
scope
.
row
.
registerCapital
}}
</span><span
v-else
>
--
</span>
<span
v-if=
"scope.row.registerCapital && scope.row.registerCapital>0"
>
{{
scope
.
row
.
registerCapital
}}
</span><span
v-else
>
--
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"creditLevel"
label=
"企业主体评级"
width=
"120"
>
prop=
"creditLevel"
label=
"企业主体评级"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
creditLevel
||
'--'
}}
{{
scope
.
row
.
creditLevel
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"isOn"
label=
"上市公司"
width=
"90"
>
prop=
"isOn"
label=
"上市公司"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
isOn
==
1
?
"是"
:
"否"
}}
{{
scope
.
row
.
isOn
==
1
?
"是"
:
"否"
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"isMajor"
label=
"局级大客户"
width=
"90"
>
prop=
"isMajor"
label=
"局级大客户"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.isMajor != null"
>
<span
v-if=
"scope.row.isMajor != null"
>
{{
scope
.
row
.
isMajor
==
1
?
"是"
:
"否"
}}
{{
scope
.
row
.
isMajor
==
1
?
"是"
:
"否"
}}
</span>
</span>
<span
v-else
>
--
</span>
<span
v-else
>
--
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"customerLevel"
label=
"客户等级"
width=
"90"
>
prop=
"customerLevel"
label=
"客户等级"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
customerLevel
||
'--'
}}
{{
scope
.
row
.
customerLevel
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"companyNature"
label=
"客户性质"
width=
"90"
>
prop=
"companyNature"
label=
"客户性质"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
companyNature
||
'--'
}}
{{
scope
.
row
.
companyNature
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"companyLevel"
label=
"客户级别"
width=
"90"
>
prop=
"companyLevel"
label=
"客户级别"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
companyLevel
||
'--'
}}
{{
scope
.
row
.
companyLevel
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"address"
label=
"企业母公司"
width=
"200"
>
prop=
"address"
label=
"企业母公司"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
""
>
{{
scope
.
row
.
superCompany
||
'--'
}}
</div>
<div
class=
""
>
{{
scope
.
row
.
superCompany
||
'--'
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:key=
"keys"
<el-table-column
:key=
"keys"
prop=
"mainBusiness"
label=
"主营业务"
width=
"300"
>
prop=
"mainBusiness"
label=
"主营业务"
width=
"300"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.mainBusiness == null || scope.row.mainBusiness == ''"
>
--
</div>
<div
v-if=
"scope.row.mainBusiness == null || scope.row.mainBusiness == ''"
>
--
</div>
<div
v-if=
"scope.row.mainBusiness1"
>
<div
v-if=
"scope.row.mainBusiness1"
>
<div
class=
"box"
v-if=
"scope.row.sq1==true"
>
{{
scope
.
row
.
mainBusiness1
}}
...
<span
@
click=
"sq1(scope.row,false)"
>
更多
</span></div>
<div
class=
"box"
v-if=
"scope.row.sq1==true"
>
{{
scope
.
row
.
mainBusiness1
}}
...
<span
@
click=
"sq1(scope.row,false)"
>
更多
</span></div>
<div
class=
"box"
v-else
>
{{
scope
.
row
.
mainBusiness
}}
<span
@
click=
"sq1(scope.row,true)"
>
收起
</span></div>
<div
class=
"box"
v-else
>
{{
scope
.
row
.
mainBusiness
}}
<span
@
click=
"sq1(scope.row,true)"
>
收起
</span></div>
</div>
</div>
<div
v-else
>
{{
scope
.
row
.
mainBusiness
}}
</div>
<div
v-else
>
{{
scope
.
row
.
mainBusiness
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"companyAttribute"
:key=
"keys+2"
label=
"发包属性"
width=
"300"
>
prop=
"companyAttribute"
:key=
"keys+2"
label=
"发包属性"
width=
"300"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.companyAttribute == null || scope.row.companyAttribute == ''"
>
--
</div>
<div
v-if=
"scope.row.companyAttribute == null || scope.row.companyAttribute == ''"
>
--
</div>
<div
v-if=
"scope.row.companyAttribute1"
>
<div
v-if=
"scope.row.companyAttribute1"
>
<div
class=
"box"
v-if=
"scope.row.sq2==true"
>
{{
scope
.
row
.
companyAttribute1
}}
...
<span
@
click=
"sq2(scope.row,false)"
>
更多
</span></div>
<div
class=
"box"
v-if=
"scope.row.sq2==true"
>
{{
scope
.
row
.
companyAttribute1
}}
...
<span
@
click=
"sq2(scope.row,false)"
>
更多
</span></div>
<div
class=
"box"
v-else
>
{{
scope
.
row
.
companyAttribute
}}
<span
@
click=
"sq2(scope.row,true)"
>
收起
</span></div>
<div
class=
"box"
v-else
>
{{
scope
.
row
.
companyAttribute
}}
<span
@
click=
"sq2(scope.row,true)"
>
收起
</span></div>
</div>
</div>
<div
v-else
>
{{
scope
.
row
.
companyAttribute
}}
</div>
<div
v-else
>
{{
scope
.
row
.
companyAttribute
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"followUser"
label=
"跟进人"
width=
"110"
>
prop=
"followUser"
label=
"跟进人"
width=
"110"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
followUser
||
'--'
}}
{{
scope
.
row
.
followUser
||
'--'
}}
</
template
>
</
template
>
...
@@ -243,36 +190,26 @@
...
@@ -243,36 +190,26 @@
</el-table>
</el-table>
</div>
</div>
<div
class=
"bottems"
v-if=
"tableData.total>searchParam.pageSize"
>
<div
class=
"bottems"
v-if=
"tableData.total>searchParam.pageSize"
>
<el-pagination
<el-pagination
background
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
@
current-change=
"handleCurrentChange"
background
layout=
"prev, pager, next"
:total=
"tableData.total"
>
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"tableData.total"
>
</el-pagination>
</el-pagination>
</div>
</div>
</div>
</div>
<el-dialog
<el-dialog
class=
"popups"
:visible
.
sync=
"dialogVisible"
width=
"534px"
:close-on-click-modal=
"false"
@
close=
"resetForm('ruleForm')"
>
class=
"popups"
:visible
.
sync=
"dialogVisible"
width=
"534px"
:close-on-click-modal=
"false"
@
close=
"resetForm('ruleForm')"
>
<div
class=
"poptitle"
>
<div
class=
"poptitle"
>
<img
src=
"@/assets/images/economies/icon.png"
>
<img
src=
"@/assets/images/economies/icon.png"
>
<span>
添加客户
</span>
<span>
添加客户
</span>
</div>
</div>
<el-form
class=
"popform j"
:model=
"queryParam"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"130px"
>
<el-form
class=
"popform j"
:model=
"queryParam"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"130px"
>
<el-form-item
label=
"企业名称:"
class=
"row"
prop=
"companyName"
>
<el-form-item
label=
"企业名称:"
class=
"row"
prop=
"companyName"
>
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.companyName"
@
input=
"getCompany(1)"
></el-input>
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.companyName"
@
input=
"getCompany(1)"
></el-input>
<div
class=
"resultlist infinite-list"
v-if=
"showlist"
id=
"box"
v-infinite-scroll=
"load"
style=
"overflow:auto"
>
<div
class=
"resultlist infinite-list"
v-if=
"showlist"
id=
"box"
v-infinite-scroll=
"load"
style=
"overflow:auto"
>
<div
class=
"infinite-list-item"
v-for=
"(item,index) in companData"
@
click=
"selCompany(item)"
><span
v-html=
"item.name"
:key=
"companypage"
></span></div>
<div
class=
"infinite-list-item"
v-for=
"(item,index) in companData"
@
click=
"selCompany(item)"
><span
v-html=
"item.name"
:key=
"companypage"
></span></div>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"客户等级:"
class=
"row"
>
<el-form-item
label=
"客户等级:"
class=
"row"
>
<el-select
placeholder=
"请选择"
v-model=
"queryParam.customerLevel"
>
<el-select
placeholder=
"请选择"
v-model=
"queryParam.customerLevel"
>
<el-option
v-for=
"(item,index) in customerLevel"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
<el-option
v-for=
"(item,index) in customerLevel"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
@@ -283,7 +220,8 @@
...
@@ -283,7 +220,8 @@
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.registerCapital"
@
input=
'number'
></el-input>
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.registerCapital"
@
input=
'number'
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"企业注册地:"
class=
"row"
>
<el-form-item
label=
"企业注册地:"
class=
"row"
>
<el-cascader
:props=
"props"
@
change=
"getAddr($event)"
ref=
"address"
v-model=
"queryParam.address"
:options=
"addressList"
clearable
></el-cascader>
<el-cascader
:props=
"props"
@
change=
"getAddr($event)"
ref=
"address"
v-model=
"queryParam.address"
:options=
"addressList"
clearable
></el-cascader>
</el-form-item>
</el-form-item>
<el-form-item
label=
"统一社会信用代码:"
class=
"row"
>
<el-form-item
label=
"统一社会信用代码:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.creditCode"
></el-input>
<el-input
type=
"text"
placeholder=
"请输入"
v-model=
"queryParam.creditCode"
></el-input>
...
@@ -302,73 +240,72 @@
...
@@ -302,73 +240,72 @@
</template>
</template>
<
script
>
<
script
>
import
{
getToken
}
from
'@/utils/auth'
import
{
getToken
}
from
'@/utils/auth'
;
import
'@/assets/styles/project.scss'
import
'@/assets/styles/project.scss'
;
import
{
addCustomer
,
getCustomerList
,
importData
}
from
'@/api/custom/custom'
import
{
addCustomer
,
getCustomerList
,
importData
}
from
'@/api/custom/custom'
;
import
{
getDictType
,
getEnterprise
}
from
'@/api/main'
import
{
getDictType
,
getEnterprise
}
from
'@/api/main'
;
import
prvinceTree
from
'@/assets/json/provinceTree'
import
prvinceTree
from
'@/assets/json/provinceTree'
;
import
batchimport
from
'../../project/projectList/component/batchImport'
import
batchimport
from
'../../project/projectList/component/batchImport'
;
import
skeleton
from
'../../project/projectList/component/skeleton'
import
skeleton
from
'../../project/projectList/component/skeleton'
;
import
{
encodeStr
}
from
'@/assets/js/common'
import
{
encodeStr
}
from
'@/assets/js/common'
;
import
{
v4
}
from
"uuid"
;
import
{
v4
}
from
"uuid"
;
import
gsap
from
"gsap"
;
export
default
{
export
default
{
name
:
'CustomList'
,
name
:
'CustomList'
,
components
:
{
batchimport
,
skeleton
},
components
:
{
batchimport
,
skeleton
},
data
()
{
data
()
{
return
{
return
{
encodeStr
,
encodeStr
,
pldr
:
false
,
pldr
:
false
,
types
:
'custom'
,
types
:
'custom'
,
searchParam
:{
searchParam
:
{
companyName
:
''
,
companyName
:
''
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
pageSize
:
20
},
},
address
:
''
,
address
:
''
,
props
:{
checkStrictly
:
true
,
expandTrigger
:
'hover'
},
props
:
{
checkStrictly
:
true
,
expandTrigger
:
'hover'
},
dialogVisible
:
false
,
dialogVisible
:
false
,
textarea
:
""
,
textarea
:
""
,
nowedit
:
-
1
,
//当前正在编辑的文本
nowedit
:
-
1
,
//当前正在编辑的文本
tipslit
:[],
//项目标签
tipslit
:
[],
//项目标签
tipsvalue
:
""
,
//标签填写内容
tipsvalue
:
""
,
//标签填写内容
tableData
:
[],
//列表
tableData
:
[],
//列表
companData
:[],
//联想企业列表
companData
:
[],
//联想企业列表
addressProps
:
{
addressProps
:
{
multiple
:
true
,
multiple
:
true
,
expandTrigger
:
'hover'
expandTrigger
:
'hover'
},
},
//上市公司
//上市公司
isMajorlist
:[
isMajorlist
:
[
{
{
dictValue
:
0
,
dictValue
:
0
,
dictLabel
:
'否'
,
dictLabel
:
'否'
,
},
},
{
{
dictValue
:
1
,
dictValue
:
1
,
dictLabel
:
'是'
,
dictLabel
:
'是'
,
}
}
],
],
companyNaturelist
:[],
//客户性质
companyNaturelist
:
[],
//客户性质
creditLevellist
:[],
//资信评级
creditLevellist
:
[],
//资信评级
customerLevel
:[],
//客户等级
customerLevel
:
[],
//客户等级
addressList
:[],
//地区
addressList
:
[],
//地区
//添加客户
//添加客户
queryParam
:{
queryParam
:
{
companyId
:
''
,
//jsk企业id
companyId
:
''
,
//jsk企业id
companyName
:
''
,
//客户名称(企业名称
companyName
:
''
,
//客户名称(企业名称
customerLevel
:
''
,
//客户等级
customerLevel
:
''
,
//客户等级
legalPerson
:
''
,
//法定代表人
legalPerson
:
''
,
//法定代表人
registerCapital
:
''
,
//注册资本
registerCapital
:
''
,
//注册资本
registerAddress
:
''
,
//企业注册地址
registerAddress
:
''
,
//企业注册地址
creditCode
:
''
,
//社会统一信用代码
creditCode
:
''
,
//社会统一信用代码
address
:
''
,
//选择的地址
address
:
''
,
//选择的地址
provinceId
:
''
,
provinceId
:
''
,
cityId
:
''
,
cityId
:
''
,
districtId
:
''
,
districtId
:
''
,
},
},
rules
:{
rules
:
{
companyName
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},]
companyName
:
[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},]
},
},
//批量导入
//批量导入
action
:
process
.
env
.
VUE_APP_BASE_API
+
"/customer/importData"
,
action
:
process
.
env
.
VUE_APP_BASE_API
+
"/customer/importData"
,
...
@@ -377,117 +314,126 @@
...
@@ -377,117 +314,126 @@
Authorization
:
"Bearer "
+
getToken
(),
Authorization
:
"Bearer "
+
getToken
(),
},
},
// isNew:true,
// isNew:true,
showlist
:
false
,
showlist
:
false
,
keys
:
1
,
keys
:
1
,
isSkeleton
:
true
,
isSkeleton
:
true
,
companypage
:
1
,
companypage
:
1
,
isscroll
:
false
,
isscroll
:
false
,
inputID1
:
this
.
getUid
(),
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
showSearchBox
:
false
showSearchBox
:
false
,
}
searchHoverStatus
:
false
,
showClearIcon
:
false
};
},
},
created
()
{
created
()
{
if
(
this
.
$route
.
query
.
key
)
{
if
(
this
.
$route
.
query
.
key
)
{
this
.
searchParam
.
companyName
=
this
.
$route
.
query
.
key
;
this
.
searchParam
.
companyName
=
this
.
$route
.
query
.
key
;
}
}
if
(
this
.
$route
.
query
.
type
===
'1'
)
{
if
(
this
.
$route
.
query
.
type
===
'1'
)
{
this
.
searchParam
.
companyNatures
=
[
'国有企业'
]
this
.
searchParam
.
companyNatures
=
[
'国有企业'
];
}
}
if
(
this
.
$route
.
query
.
type
===
'2'
)
{
if
(
this
.
$route
.
query
.
type
===
'2'
)
{
this
.
searchParam
.
companyNatures
=
[
'央企'
]
this
.
searchParam
.
companyNatures
=
[
'央企'
];
}
}
if
(
this
.
$route
.
query
.
type
===
'3'
)
{
if
(
this
.
$route
.
query
.
type
===
'3'
)
{
this
.
searchParam
.
companyNatures
=
[
'事业单位'
,
'机关单位'
]
this
.
searchParam
.
companyNatures
=
[
'事业单位'
,
'机关单位'
];
}
}
this
.
$watch
(()
=>
this
.
$route
.
params
,()
=>
{
this
.
$watch
(()
=>
this
.
$route
.
params
,
()
=>
{
this
.
getCustomerList
()
this
.
getCustomerList
();
this
.
getDictType
()
this
.
getDictType
();
this
.
prvinceTree
()
this
.
prvinceTree
();
this
.
handleQuery
()
this
.
handleQuery
();
this
.
searchParam
.
companyName
=
''
this
.
searchParam
.
companyName
=
''
;
},
},
// 组件创建完后获取数据,
// 组件创建完后获取数据,
// 此时 data 已经被 observed 了
// 此时 data 已经被 observed 了
{
immediate
:
true
}
{
immediate
:
true
}
)
)
;
},
},
methods
:{
methods
:
{
onEnter
(
el
,
done
)
{
searchFocus
(
event
)
{
gsap
.
from
(
el
,
{
const
{
target
}
=
event
;
opacity
:
0
,
if
(
target
?.
value
?.
length
)
{
width
:
0
,
this
.
showClearIcon
=
true
;
});
}
gsap
.
to
(
el
,
{
},
opacity
:
1
,
searchBlur
(
event
)
{
width
:
242
,
this
.
showClearIcon
=
false
;
onComplete
()
{
},
// 完成动画聚焦输入框
searchInput
(
value
)
{
el
.
querySelector
(
"input"
).
focus
();
if
(
value
?.
length
)
{
done
();
this
.
showClearIcon
=
true
;
}
}
});
},
searchHover
(
event
)
{
this
.
searchHoverStatus
=
true
;
},
searchUnHover
(
event
)
{
if
(
!
this
.
searchParam
.
companyName
)
{
this
.
searchHoverStatus
=
false
;
}
},
},
async
handleQuery
()
{
async
handleQuery
()
{
let
[
type1
,
type2
]
=
await
Promise
.
all
([
let
[
type1
,
type2
]
=
await
Promise
.
all
([
getDictType
(
'company_nature_type'
),
getDictType
(
'company_nature_type'
),
getDictType
(
'credit_level_type'
),
getDictType
(
'credit_level_type'
),
])
])
;
if
(
type1
.
code
==
200
)
{
if
(
type1
.
code
==
200
)
{
type1
.
data
.
forEach
(
item
=>
{
type1
.
data
.
forEach
(
item
=>
{
this
.
companyNaturelist
.
push
({
dictLabel
:
item
.
dictLabel
,
dictValue
:
item
.
dictLabel
})
this
.
companyNaturelist
.
push
({
dictLabel
:
item
.
dictLabel
,
dictValue
:
item
.
dictLabel
});
})
})
;
}
}
if
(
type2
.
code
==
200
)
{
if
(
type2
.
code
==
200
)
{
type2
.
data
.
forEach
(
item
=>
{
type2
.
data
.
forEach
(
item
=>
{
this
.
creditLevellist
.
push
({
dictLabel
:
item
.
dictLabel
,
dictValue
:
item
.
dictLabel
})
this
.
creditLevellist
.
push
({
dictLabel
:
item
.
dictLabel
,
dictValue
:
item
.
dictLabel
});
})
})
;
}
}
},
},
sq1
(
item
,
sq
)
{
sq1
(
item
,
sq
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
item
.
sq1
=
sq
item
.
sq1
=
sq
;
this
.
keys
++
;
this
.
keys
++
;
})
})
;
},
},
sq2
(
item
,
sq
)
{
sq2
(
item
,
sq
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
item
.
sq2
=
sq
item
.
sq2
=
sq
;
this
.
keys
++
;
this
.
keys
++
;
})
})
;
},
},
handleALL
(
event
){
handleALL
(
event
)
{
var
one
=
document
.
getElementById
(
"box"
);
var
one
=
document
.
getElementById
(
"box"
);
if
(
one
)
{
if
(
one
)
{
if
(
!
one
.
contains
(
event
.
target
))
{
if
(
!
one
.
contains
(
event
.
target
))
{
this
.
showlist
=
false
this
.
showlist
=
false
;
}
}
}
}
},
},
toct
(){
toct
()
{
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
;
this
.
$router
.
push
({
path
:
'/macro/urban'
})
this
.
$router
.
push
({
path
:
'/macro/urban'
});
},
},
getDictType
(){
getDictType
()
{
//获取客户等级
//获取客户等级
getDictType
(
'customer_level_type'
).
then
(
result
=>
{
getDictType
(
'customer_level_type'
).
then
(
result
=>
{
this
.
customerLevel
=
result
.
code
==
200
?
result
.
data
:[]
this
.
customerLevel
=
result
.
code
==
200
?
result
.
data
:
[];
})
})
;
},
},
pldrs
(){
pldrs
()
{
this
.
pldr
=
true
this
.
pldr
=
true
;
},
},
cancelimport
(){
cancelimport
()
{
this
.
pldr
=
false
this
.
pldr
=
false
;
},
},
//获取客户列表
//获取客户列表
getCustomerList
(){
getCustomerList
()
{
let
params
=
this
.
searchParam
let
params
=
this
.
searchParam
;
if
(
this
.
address
.
length
>
0
)
{
if
(
this
.
address
.
length
>
0
)
{
let
arr
=
this
.
$refs
.
address1
.
getCheckedNodes
();
let
arr
=
this
.
$refs
.
address1
.
getCheckedNodes
();
let
provinceCode
=
[],
cityCode
=
[],
countyCode
=
[];
let
provinceCode
=
[],
cityCode
=
[],
countyCode
=
[];
for
(
var
i
in
arr
)
{
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
...
@@ -495,175 +441,175 @@
...
@@ -495,175 +441,175 @@
!
arr
[
i
].
hasChildren
&&
countyCode
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
countyCode
.
push
(
arr
[
i
].
value
);
}
}
}
else
{
}
else
{
provinceCode
.
push
(
arr
[
i
].
value
)
provinceCode
.
push
(
arr
[
i
].
value
)
;
}
}
}
}
if
(
provinceCode
.
length
>
0
)
{
if
(
provinceCode
.
length
>
0
)
{
params
.
provinceIds
=
provinceCode
params
.
provinceIds
=
provinceCode
;
}
}
if
(
cityCode
.
length
>
0
)
{
if
(
cityCode
.
length
>
0
)
{
params
.
cityIds
=
cityCode
params
.
cityIds
=
cityCode
;
}
}
if
(
countyCode
.
length
>
0
)
{
if
(
countyCode
.
length
>
0
)
{
params
.
districtIds
=
countyCode
params
.
districtIds
=
countyCode
;
}
}
}
else
{
}
else
{
if
(
params
.
provinceIds
)
{
if
(
params
.
provinceIds
)
{
delete
params
.
provinceIds
delete
params
.
provinceIds
;
}
}
if
(
params
.
cityIds
)
{
if
(
params
.
cityIds
)
{
delete
params
.
cityIds
delete
params
.
cityIds
;
}
}
if
(
params
.
districtIds
)
{
if
(
params
.
districtIds
)
{
delete
params
.
districtIds
delete
params
.
districtIds
;
}
}
}
}
getCustomerList
(
params
).
then
(
result
=>
{
getCustomerList
(
params
).
then
(
result
=>
{
this
.
isSkeleton
=
false
this
.
isSkeleton
=
false
;
this
.
tableData
=
result
this
.
tableData
=
result
;
this
.
tableData
.
rows
.
forEach
(
item
=>
{
this
.
tableData
.
rows
.
forEach
(
item
=>
{
item
.
registerCapital
=
item
.
registerCapital
==
null
?
null
:
item
.
registerCapital
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
)
item
.
registerCapital
=
item
.
registerCapital
==
null
?
null
:
item
.
registerCapital
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
);
if
(
item
.
mainBusiness
!=
""
&&
item
.
mainBusiness
!=
null
&&
item
.
mainBusiness
.
length
>
84
)
{
if
(
item
.
mainBusiness
!=
""
&&
item
.
mainBusiness
!=
null
&&
item
.
mainBusiness
.
length
>
84
)
{
item
.
mainBusiness1
=
item
.
mainBusiness
.
substring
(
0
,
81
)
item
.
mainBusiness1
=
item
.
mainBusiness
.
substring
(
0
,
81
);
item
.
sq1
=
true
item
.
sq1
=
true
;
}
else
{
}
else
{
item
.
sq1
=
false
item
.
sq1
=
false
;
}
}
if
(
item
.
companyAttribute
!=
""
&&
item
.
companyAttribute
!=
null
&&
item
.
companyAttribute
.
length
>
84
)
{
if
(
item
.
companyAttribute
!=
""
&&
item
.
companyAttribute
!=
null
&&
item
.
companyAttribute
.
length
>
84
)
{
item
.
companyAttribute1
=
item
.
companyAttribute
.
substring
(
0
,
81
)
item
.
companyAttribute1
=
item
.
companyAttribute
.
substring
(
0
,
81
);
item
.
sq2
=
true
item
.
sq2
=
true
;
}
else
{
}
else
{
item
.
sq2
=
false
item
.
sq2
=
false
;
}
}
// console.log(item)
// console.log(item)
})
});
})
})
;
},
},
//跳转到客户详情
//跳转到客户详情
toDetail
(
row
,
type
)
{
toDetail
(
row
,
type
)
{
let
customerId
=
row
.
customerId
let
customerId
=
row
.
customerId
;
let
companyId
=
row
.
companyId
let
companyId
=
row
.
companyId
;
let
path
=
type
let
path
=
type
;
// if(type == "" && companyId == null){
// if(type == "" && companyId == null){
// path = 'business'
// path = 'business'
// }
// }
this
.
$router
.
push
({
path
:
'/enterprise/'
+
encodeStr
(
companyId
),
query
:{
customerId
:
customerId
,
path
:
path
}})
this
.
$router
.
push
({
path
:
'/enterprise/'
+
encodeStr
(
companyId
),
query
:
{
customerId
:
customerId
,
path
:
path
}
});
},
},
handleSearch
(){
handleSearch
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
searchParam
.
pageNum
=
1
this
.
searchParam
.
pageNum
=
1
;
this
.
getCustomerList
()
this
.
getCustomerList
()
;
})
})
;
},
},
clearname
(
value
){
clearname
(
value
)
{
if
(
value
==
""
)
{
if
(
value
==
""
)
{
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
;
}
}
},
},
//翻页
//翻页
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
this
.
isSkeleton
=
true
this
.
isSkeleton
=
true
;
this
.
pldr
=
false
this
.
pldr
=
false
;
// this.isNew = false
// this.isNew = false
this
.
searchParam
.
pageNum
=
val
this
.
searchParam
.
pageNum
=
val
;
this
.
getCustomerList
()
this
.
getCustomerList
()
;
},
},
//打开新建窗口
//打开新建窗口
opennew
(){
opennew
()
{
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
;
},
},
getAddr
(
obj
){
getAddr
(
obj
)
{
if
(
obj
.
length
==
0
)
{
if
(
obj
.
length
==
0
)
{
this
.
queryParam
.
provinceId
=
''
this
.
queryParam
.
provinceId
=
''
;
this
.
queryParam
.
cityId
=
''
this
.
queryParam
.
cityId
=
''
;
this
.
queryParam
.
districtId
=
''
this
.
queryParam
.
districtId
=
''
;
return
false
return
false
;
}
}
let
labelString
=
this
.
$refs
.
address
.
getCheckedNodes
()[
0
].
pathLabels
.
join
(
"-"
);
let
labelString
=
this
.
$refs
.
address
.
getCheckedNodes
()[
0
].
pathLabels
.
join
(
"-"
);
this
.
queryParam
.
registerAddress
=
labelString
this
.
queryParam
.
registerAddress
=
labelString
;
this
.
queryParam
.
provinceId
=
obj
[
0
]
this
.
queryParam
.
provinceId
=
obj
[
0
]
;
this
.
queryParam
.
cityId
=
obj
.
length
>=
1
?
obj
[
1
]:
''
this
.
queryParam
.
cityId
=
obj
.
length
>=
1
?
obj
[
1
]
:
''
;
this
.
queryParam
.
districtId
=
obj
.
length
>=
2
?
obj
[
2
]:
''
this
.
queryParam
.
districtId
=
obj
.
length
>=
2
?
obj
[
2
]
:
''
;
},
},
//获取建设库客户
//获取建设库客户
getCompany
(
value
){
getCompany
(
value
)
{
this
.
queryParam
.
companyId
=
null
this
.
queryParam
.
companyId
=
null
;
if
(
value
==
1
)
{
if
(
value
==
1
)
{
this
.
companData
=
[]
this
.
companData
=
[]
;
this
.
companypage
=
1
this
.
companypage
=
1
;
}
}
if
(
this
.
queryParam
.
companyName
.
length
>=
2
)
{
if
(
this
.
queryParam
.
companyName
.
length
>=
2
)
{
let
param
=
{
let
param
=
{
keyword
:
this
.
queryParam
.
companyName
,
keyword
:
this
.
queryParam
.
companyName
,
page
:{
page
:
{
limit
:
20
,
limit
:
20
,
page
:
this
.
companypage
page
:
this
.
companypage
}
}
}
}
;
getEnterprise
(
JSON
.
stringify
(
param
)).
then
(
result
=>
{
getEnterprise
(
JSON
.
stringify
(
param
)).
then
(
result
=>
{
if
(
result
.
code
!=
200
)
{
if
(
result
.
code
!=
200
)
{
return
false
return
false
;
}
}
if
(
result
.
data
.
list
!=
null
&&
result
.
data
.
list
.
length
>
0
)
{
if
(
result
.
data
.
list
!=
null
&&
result
.
data
.
list
.
length
>
0
)
{
this
.
isscroll
=
true
this
.
isscroll
=
true
;
if
(
this
.
companData
.
length
===
0
)
{
if
(
this
.
companData
.
length
===
0
)
{
this
.
companData
=
result
.
data
.
list
this
.
companData
=
result
.
data
.
list
;
}
else
{
}
else
{
let
arr2
=
result
.
data
.
list
let
arr2
=
result
.
data
.
list
;
arr2
.
unshift
(
2
,
0
);
arr2
.
unshift
(
2
,
0
);
Array
.
prototype
.
splice
.
apply
(
this
.
companData
,
arr2
);
Array
.
prototype
.
splice
.
apply
(
this
.
companData
,
arr2
);
}
}
if
(
this
.
companData
.
length
===
0
)
{
if
(
this
.
companData
.
length
===
0
)
{
this
.
showlist
=
false
this
.
showlist
=
false
;
}
else
{
}
else
{
this
.
showlist
=
true
this
.
showlist
=
true
;
}
}
this
.
companypage
+=
1
this
.
companypage
+=
1
;
}
else
{
}
else
{
this
.
isscroll
=
false
this
.
isscroll
=
false
;
}
}
})
})
;
}
}
},
},
load
(){
load
()
{
if
(
this
.
isscroll
)
{
if
(
this
.
isscroll
)
{
this
.
getCompany
(
2
)
this
.
getCompany
(
2
)
;
}
}
},
},
selCompany
(
item
){
selCompany
(
item
)
{
this
.
queryParam
.
companyId
=
item
.
jskEid
this
.
queryParam
.
companyId
=
item
.
jskEid
;
this
.
queryParam
.
companyName
=
item
.
name
.
replace
(
/<
[^
>
]
+>/g
,
''
)
this
.
queryParam
.
companyName
=
item
.
name
.
replace
(
/<
[^
>
]
+>/g
,
''
)
;
this
.
queryParam
.
legalPerson
=
item
.
legalPerson
this
.
queryParam
.
legalPerson
=
item
.
legalPerson
;
let
registeredCapitalStr
=
""
let
registeredCapitalStr
=
""
;
if
(
item
.
registeredCapitalStr
==
"0"
||
item
.
registeredCapitalStr
==
0
)
{
if
(
item
.
registeredCapitalStr
==
"0"
||
item
.
registeredCapitalStr
==
0
)
{
registeredCapitalStr
=
''
registeredCapitalStr
=
''
;
}
else
{
}
else
{
registeredCapitalStr
=
item
.
registeredCapitalStr
registeredCapitalStr
=
item
.
registeredCapitalStr
;
}
}
this
.
queryParam
.
registerCapital
=
registeredCapitalStr
this
.
queryParam
.
registerCapital
=
registeredCapitalStr
;
this
.
queryParam
.
creditCode
=
item
.
creditCode
this
.
queryParam
.
creditCode
=
item
.
creditCode
;
this
.
queryParam
.
provinceId
=
item
.
provinceId
this
.
queryParam
.
provinceId
=
item
.
provinceId
;
this
.
queryParam
.
cityId
=
item
.
cityId
this
.
queryParam
.
cityId
=
item
.
cityId
;
this
.
queryParam
.
districtId
=
item
.
cityId
this
.
queryParam
.
districtId
=
item
.
cityId
;
let
list
=
[]
let
list
=
[]
;
if
(
item
.
provinceId
!=
null
&&
item
.
provinceId
!=
""
)
if
(
item
.
provinceId
!=
null
&&
item
.
provinceId
!=
""
)
list
.
push
(
item
.
provinceId
)
list
.
push
(
item
.
provinceId
)
;
if
(
item
.
cityId
!=
null
&&
item
.
cityId
!=
""
)
if
(
item
.
cityId
!=
null
&&
item
.
cityId
!=
""
)
list
.
push
(
item
.
cityId
)
list
.
push
(
item
.
cityId
)
;
if
(
item
.
districtId
!=
null
&&
item
.
districtId
!=
""
)
if
(
item
.
districtId
!=
null
&&
item
.
districtId
!=
""
)
list
.
push
(
item
.
districtId
)
list
.
push
(
item
.
districtId
)
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
queryParam
.
address
=
list
this
.
queryParam
.
address
=
list
;
let
_this
=
this
let
_this
=
this
;
setTimeout
(
function
()
{
setTimeout
(
function
()
{
if
(
_this
.
$refs
.
address
)
{
if
(
_this
.
$refs
.
address
)
{
_this
.
queryParam
.
registerAddress
=
_this
.
$refs
.
address
.
getCheckedNodes
()[
0
].
pathLabels
.
join
(
"-"
)
_this
.
queryParam
.
registerAddress
=
_this
.
$refs
.
address
.
getCheckedNodes
()[
0
].
pathLabels
.
join
(
"-"
)
;
}
}
},
1000
)
},
1000
);
})
})
;
this
.
showlist
=
false
this
.
showlist
=
false
;
},
},
//添加客户
//添加客户
submitForm
(
formName
)
{
submitForm
(
formName
)
{
...
@@ -674,36 +620,36 @@
...
@@ -674,36 +620,36 @@
// }
// }
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
addCustomer
(
this
.
queryParam
).
then
(
result
=>
{
addCustomer
(
this
.
queryParam
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
{
if
(
result
.
code
==
200
)
{
this
.
$message
.
success
(
'添加成功!'
)
this
.
$message
.
success
(
'添加成功!'
)
;
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
;
this
.
handleCurrentChange
(
1
)
this
.
handleCurrentChange
(
1
)
;
this
.
resetForm
(
'ruleForm'
)
this
.
resetForm
(
'ruleForm'
)
;
}
else
{
}
else
{
this
.
$message
.
error
(
result
.
msg
)
this
.
$message
.
error
(
result
.
msg
)
;
}
}
})
})
;
}
else
{
}
else
{
}
}
});
});
},
},
resetForm
(
formName
)
{
resetForm
(
formName
)
{
this
.
queryParam
=
{
this
.
queryParam
=
{
companyId
:
''
,
//jsk企业id
companyId
:
''
,
//jsk企业id
companyName
:
''
,
//客户名称(企业名称
companyName
:
''
,
//客户名称(企业名称
customerLevel
:
''
,
//客户等级
customerLevel
:
''
,
//客户等级
legalPerson
:
''
,
//法定代表人
legalPerson
:
''
,
//法定代表人
registerCapital
:
''
,
//注册资本
registerCapital
:
''
,
//注册资本
registerAddress
:
''
,
//企业注册地址
registerAddress
:
''
,
//企业注册地址
creditCode
:
''
,
//社会统一信用代码
creditCode
:
''
,
//社会统一信用代码
address
:
''
,
//选择的地址
address
:
''
,
//选择的地址
provinceId
:
''
,
provinceId
:
''
,
cityId
:
''
,
cityId
:
''
,
districtId
:
''
,
districtId
:
''
,
},
},
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
;
this
.
showlist
=
false
this
.
showlist
=
false
;
},
},
//地区
//地区
...
@@ -719,26 +665,26 @@
...
@@ -719,26 +665,26 @@
// })
// })
// console.log(prvinceTree)
// console.log(prvinceTree)
this
.
addressList
=
prvinceTree
;
this
.
addressList
=
prvinceTree
;
this
.
getadd
(
this
.
addressList
)
this
.
getadd
(
this
.
addressList
)
;
},
},
//处理注册地数据
//处理注册地数据
getadd
(
row
)
{
getadd
(
row
)
{
this
.
addrcallback
(
row
,
this
.
getadd
)
this
.
addrcallback
(
row
,
this
.
getadd
);
},
},
addrcallback
(
row
,
callback
)
{
addrcallback
(
row
,
callback
)
{
if
(
row
)
{
if
(
row
)
{
row
.
forEach
(
item
=>
{
row
.
forEach
(
item
=>
{
item
.
value
=
item
.
id
item
.
value
=
item
.
id
;
callback
&&
callback
(
item
.
children
)
callback
&&
callback
(
item
.
children
);
})
})
;
}
}
},
},
//输入数字
//输入数字
number
(
value
){
number
(
value
)
{
if
(
value
==
''
)
if
(
value
==
''
)
this
.
queryParam
.
registerCapital
=
value
this
.
queryParam
.
registerCapital
=
value
;
else
else
this
.
queryParam
.
registerCapital
=
value
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
)
//输入6位小数
this
.
queryParam
.
registerCapital
=
value
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
);
//输入6位小数
},
},
iptAdaptive
(
uid
,
multiple
=
false
)
{
iptAdaptive
(
uid
,
multiple
=
false
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
)
:
this
.
iptAdaptiveHandle
(
uid
);
multiple
?
this
.
multipleAdaptiveHandle
(
uid
)
:
this
.
iptAdaptiveHandle
(
uid
);
...
@@ -814,10 +760,10 @@
...
@@ -814,10 +760,10 @@
textContainer
.
textContent
=
iptChild
.
value
?
iptChild
.
value
:
iptChild
.
getAttribute
(
"placeholder"
);
textContainer
.
textContent
=
iptChild
.
value
?
iptChild
.
value
:
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
0
let
containerWidth
=
0
;
if
(
iptChild
.
value
)
{
if
(
iptChild
.
value
)
{
containerWidth
=
70
;
containerWidth
=
70
;
}
else
{
}
else
{
containerWidth
=
130
;
containerWidth
=
130
;
}
}
...
@@ -837,227 +783,299 @@
...
@@ -837,227 +783,299 @@
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.app-container
{
.custom-list-container
{
height
:
calc
(
100vh
-
134px
)
width
:
100%
;
height
:
100%
;
padding
:
24px
;
box-sizing
:
border-box
;
.miantitle
{
padding
:
12px
0px
;
padding-top
:
0px
;
margin
:
0px
;
}
}
.box-card
{
::v-deep
.el-card
{
.table_search
{
.el-form-item
{
.el-input
{
.el-input__inner
{
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
}
&
:focus
{
color
:
rgba
(
35
,
35
,
35
,
1
);
}
}
.el-input__suffix
{
.el-input__icon
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
}
}
}
}
}
}
.box-card
{
@import
"@/assets/styles/search-common.scss"
;
@import
"@/assets/styles/search-common.scss"
;
padding-top
:
16px
;
padding-top
:
16px
;
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
.table_search
{
.table_search
{
::v-deep
.el-form
{
::v-deep
.el-form
{
.el-input
{
.el-input
{
line-height
:
32px
;
line-height
:
32px
;
.el-input__inner
{
.el-input__inner
{
height
:
32px
;
height
:
32px
;
line-height
:
32px
;
line-height
:
32px
;
border-radius
:
4px
;
border-radius
:
4px
;
border
:
0
;
border
:
0
;
}
}
}
}
.is-focus
{
.is-focus
{
.el-input__inner
{
.el-input__inner
{
background
:
#
F4F6F
9
;
background
:
#
f4f6f
9
;
}
}
}
}
}
}
}
}
}
}
.box
{
.box
{
position
:
relative
;
position
:
relative
;
>
span
{
>
span
{
position
:
absolute
;
position
:
absolute
;
right
:
10px
;
right
:
10px
;
bottom
:
0
;
bottom
:
0
;
color
:
#0081
FF
;
color
:
#0081
ff
;
cursor
:
pointer
;
cursor
:
pointer
;
&
:hover
{
&
:hover
{
color
:
#006
AD
1
;
color
:
#006
ad
1
;
}
}
}
}
}
}
.dc
{
.dc
{
font-size
:
12px
;
font-size
:
12px
;
color
:
#3D3D3D
;
color
:
#3d3d3d
;
font-weight
:
400
;
font-weight
:
400
;
position
:
relative
;
position
:
relative
;
&
:
:
after
{
&
:
:
after
{
content
:
' '
;
content
:
" "
;
width
:
2px
;
width
:
2px
;
height
:
2px
;
height
:
2px
;
background
:
rgba
(
35
,
35
,
35
,
0
.4
);
background
:
rgba
(
35
,
35
,
35
,
0
.4
);
border-radius
:
50%
;
border-radius
:
50%
;
position
:
absolute
;
position
:
absolute
;
top
:
16px
;
top
:
16px
;
left
:
14px
;
left
:
14px
;
}
>
div
{
display
:
inline-block
;
margin-left
:
20px
;
}
}
.img.img1
{
margin-right
:
2px
;
background
:
url('../../../../src/assets/images/project/add_2.png')
no-repeat
center
center
;
background-size
:
100%
;
}
}
.w88
{
>
div
{
width
:
88px
;
display
:
inline-block
;
margin-left
:
20px
;
}
}
.tables
{
}
position
:
relative
;
.img.img1
{
min-height
:
calc
(
100vh
-
134px
);
margin-right
:
2px
;
/*overflow: auto;*/
background
:
url("../../../../src/assets/images/project/add_2.png")
no-repeat
.empty
{
center
center
;
position
:
absolute
;
background-size
:
100%
;
top
:
50%
;
}
left
:
50%
;
.w88
{
transform
:
translate
(
-50%
,-
50%
);
width
:
88px
;
.btn
{
}
margin-right
:
8px
;
.tables
{
margin-top
:
16px
;
position
:
relative
;
}
min-height
:
calc
(
100vh
-
134px
);
/*overflow: auto;*/
.empty
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
.btn
{
margin-right
:
8px
;
margin-top
:
16px
;
}
}
.table_search
{
}
::v-deep
.el-cascader
{
.table_search
{
height
:
32px
;
::v-deep
.el-cascader
{
line-height
:
32px
;
height
:
32px
;
.el-input
{
line-height
:
32px
;
input
{
.el-input
{
height
:
32px
!
important
;
input
{
}
height
:
32px
!
important
;
}
.el-cascader__tags
{
flex-wrap
:
inherit
;
margin-top
:
1px
;
.el-tag
{
/*max-width: 120px;*/
}
}
.el-input__suffix
{
top
:
1px
;
}
}
}
}
.normal-search-container
{
.el-cascader__tags
{
margin-left
:
12px
;
flex-wrap
:
inherit
;
display
:
flex
;
margin-top
:
1px
;
align-items
:
center
;
.el-tag
{
cursor
:
pointer
;
/*max-width: 120px;*/
height
:
34px
;
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
}
}
.el-input__suffix
{
top
:
1px
;
}
}
::v-deep
.normal-search-container
{
height
:
32px
;
display
:
flex
;
align-items
:
center
;
&
.is-hover-search
{
width
:
238px
;
background
:
#f4f6f9
;
border-radius
:
4px
4px
4px
4px
;
&
>
img
{
&
>
img
{
width
:
16px
;
cursor
:
unset
;
height
:
16px
;
margin-left
:
12px
;
}
}
}
&
:hover
{
&
>
span
{
&
>
span
{
color
:
#232323
;
color
:
#0081ff
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
}
}
}
}
.cooperate-name
{
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
margin-left
:
12px
;
display
:
flex
;
cursor
:
pointer
;
border-radius
:
2px
;
}
border
:
1px
solid
#d9d9d9
;
line-height
:
34px
;
&
>
span
{
height
:
34px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
float
:
left
;
font-weight
:
400
;
span
{
margin-left
:
8px
;
width
:
60px
;
line-height
:
22px
;
font-size
:
14px
;
cursor
:
pointer
;
}
.el-input
{
&
>
.el-input__inner
{
border
:
none
;
height
:
32px
;
height
:
32px
;
line-height
:
32px
;
line-height
:
32px
;
caret-color
:
#0081ff
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
font-size
:
14px
;
background
:
#f5f5f5
;
background
:
#f4f6f9
;
text-align
:
center
;
padding-right
:
26px
;
color
:
#0081ff
;
padding-left
:
8px
;
border
:
1px
solid
#efefef
;
border-left
:
0
;
&
:
:
placeholder
{
cursor
:
pointer
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
!
important
;
}
font-size
:
14px
!
important
;
&
.span-ba
{
line-height
:
32px
;
border
:
1px
solid
#0081ff
;
span
{
color
:
#ffffff
;
background
:
#0081ff
;
border
:
1px
solid
#0081ff
;
}
}
}
}
::v-deep
.el-input
{
.el-input__suffix
{
flex
:
1
;
right
:
12px
;
display
:
flex
;
align-items
:
center
;
.el-input__suffix-inner
{
height
:
14px
;
width
:
14px
;
}
img
{
cursor
:
pointer
;
vertical-align
:
unset
;
}
}
}
::v-deep
.el-input__inner
{
}
border
:
0
;
}
line-height
:
32px
;
.cooperate-name
{
height
:
32px
;
margin-left
:
12px
;
position
:
absolute
;
display
:
flex
;
top
:
0
;
border-radius
:
2px
;
padding-right
:
28px
;
border
:
1px
solid
#d9d9d9
;
font-size
:
12px
;
line-height
:
34px
;
padding-left
:
8px
;
height
:
34px
;
float
:
left
;
span
{
width
:
60px
;
height
:
32px
;
line-height
:
32px
;
font-size
:
14px
;
background
:
#f5f5f5
;
text-align
:
center
;
color
:
#0081ff
;
border
:
1px
solid
#efefef
;
border-left
:
0
;
cursor
:
pointer
;
}
&
.span-ba
{
border
:
1px
solid
#0081ff
;
span
{
color
:
#ffffff
;
background
:
#0081ff
;
border
:
1px
solid
#0081ff
;
}
}
}
}
::v-deep
.el-input
{
flex
:
1
;
}
::v-deep
.el-input__inner
{
border
:
0
;
line-height
:
32px
;
height
:
32px
;
position
:
absolute
;
top
:
0
;
padding-right
:
28px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
}
}
}
.ps1
{
}
.ps1
{
display
:
flex
;
justify-content
:
space-between
;
.ps2
{
width
:
350px
;
}
.ps3
{
width
:
60px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
right
;
.ps2
{
>
div
{
width
:
350px
;
margin-left
:
12px
;
}
>
img
{
.ps3
{
float
:
right
;
width
:
60px
;
margin
:
3px
0
0
4px
;
display
:
flex
;
width
:
14px
;
justify-content
:
right
;
}
>
div
{
.i
{
margin-left
:
12px
;
display
:
inline-block
;
>
img
{
}
float
:
right
;
.o
{
margin
:
3px
0
0
4px
;
display
:
none
;
width
:
14px
;
}
}
&
:hover
{
.i
{
cursor
:
pointer
;
display
:
inline-block
;
.i
{
}
.o
{
display
:
none
;
display
:
none
;
}
}
&
:hover
{
.o
{
cursor
:
pointer
;
display
:
inline-block
;
.i
{
display
:
none
;
}
.o
{
display
:
inline-block
;
}
}
}
}
}
}
}
}
}
.popbot
{
}
.wordprimary
{
.popbot
{
display
:
inline
;
.wordprimary
{
padding-right
:
26px
;
display
:
inline
;
}
padding-right
:
26px
;
}
.app-container
{
height
:
auto
;
}
.searchInput
{
width
:
240px
;
}
}
}
.searchInput
{
width
:
240px
;
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
View file @
94265561
...
@@ -35,11 +35,6 @@
...
@@ -35,11 +35,6 @@
</transition>
</transition>
</
template
>
</
template
>
</el-input>
</el-input>
<!-- <div class="cooperate-name enterprise-search-container" :id="'focus'+i">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value"
:placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span @click="changeSelect">搜索</span>
</div> -->
</div>
</div>
</template>
</template>
<!-- 多选 -->
<!-- 多选 -->
...
...
dsk-operate-ui/src/views/market/index.vue
View file @
94265561
...
@@ -11,9 +11,9 @@
...
@@ -11,9 +11,9 @@
<
script
>
<
script
>
import
{
steerScroll
}
from
'@/assets/js/jskplug'
;
import
{
steerScroll
}
from
'@/assets/js/jskplug'
;
import
{
dskAccessToken
}
from
'@/api/common'
;
import
{
dskAccessToken
}
from
'@/api/common'
;
import
{
encodeStr
}
from
"@/assets/js/common"
import
{
encodeStr
}
from
"@/assets/js/common"
;
import
MaxPageSizeTip
from
"@/views/components/MaxPageSizeTip.vue"
;
import
MaxPageSizeTip
from
"@/views/components/MaxPageSizeTip.vue"
;
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
;
export
default
{
export
default
{
name
:
'Enterprise'
,
name
:
'Enterprise'
,
components
:
{
components
:
{
...
@@ -42,13 +42,13 @@ export default {
...
@@ -42,13 +42,13 @@ export default {
if
(
window
.
location
.
host
===
'http://szh.jiansheku.com'
||
window
.
location
.
host
===
'szh.jiansheku.com'
)
{
if
(
window
.
location
.
host
===
'http://szh.jiansheku.com'
||
window
.
location
.
host
===
'szh.jiansheku.com'
)
{
this
.
domain
=
'https://plug.jiansheku.com'
;
this
.
domain
=
'https://plug.jiansheku.com'
;
}
else
{
}
else
{
this
.
domain
=
'https://pre-plug.jiansheku.com'
this
.
domain
=
'https://pre-plug.jiansheku.com'
;
// this.domain = 'http://192.168.60.8:3400';
// this.domain = 'http://192.168.60.8:3400';
this
.
domain
=
'http://192.168.60.
210
:3400'
;
this
.
domain
=
'http://192.168.60.
104
:3400'
;
}
}
this
.
gettokens
();
this
.
gettokens
();
this
.
iframeObserver
();
this
.
iframeObserver
();
let
that
=
this
let
that
=
this
;
window
.
addEventListener
(
"message"
,
this
.
pagecapListener
,
{
passive
:
true
});
window
.
addEventListener
(
"message"
,
this
.
pagecapListener
,
{
passive
:
true
});
window
.
addEventListener
(
'message'
,
this
.
linkListener
,
false
);
window
.
addEventListener
(
'message'
,
this
.
linkListener
,
false
);
},
},
...
@@ -66,26 +66,26 @@ export default {
...
@@ -66,26 +66,26 @@ export default {
this
.
iframeIns
.
contentWindow
.
postMessage
(
"removeHtmlLayoutStyle"
,
{
targetOrigin
:
this
.
domain
,
});
this
.
iframeIns
.
contentWindow
.
postMessage
(
"removeHtmlLayoutStyle"
,
{
targetOrigin
:
this
.
domain
,
});
},
},
methods
:
{
methods
:
{
linkListener
(
event
){
linkListener
(
event
)
{
let
{
data
}
=
event
let
{
data
}
=
event
;
if
(
data
.
id
)
{
if
(
data
.
id
)
{
getUipIdByCid
([
data
.
id
]).
then
(
res
=>
{
getUipIdByCid
([
data
.
id
]).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
&&
res
.
data
[
0
].
uipId
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
&&
res
.
data
[
0
].
uipId
)
{
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
data
.
id
)})
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
data
.
id
)
});
}
else
{
}
else
{
this
.
$tab
.
openPage
(
data
.
title
,
'/company/'
+
this
.
encodeStr
(
data
.
id
))
this
.
$tab
.
openPage
(
data
.
title
,
'/company/'
+
this
.
encodeStr
(
data
.
id
));
}
}
}
}
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
});
});
}
else
{
}
else
{
if
(
data
.
url
)
{
if
(
data
.
url
)
{
this
.
$tab
.
openPage
(
data
.
title
,
data
.
url
).
then
(()
=>
{
this
.
$tab
.
openPage
(
data
.
title
,
data
.
url
).
then
(()
=>
{
// 执行结束的逻辑
// 执行结束的逻辑
})
})
;
}
}
}
}
},
},
...
@@ -151,9 +151,13 @@ export default {
...
@@ -151,9 +151,13 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.market-container
{
.market-container
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
padding
:
16px
24px
;
padding
:
16px
24px
;
padding-right
:
15px
;
padding-right
:
15px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
position
:
absolute
;
left
:
0
;
top
:
0
;
.market-iframe
{
.market-iframe
{
width
:
100%
;
width
:
100%
;
...
...
dsk-operate-ui/src/views/project/projectList/component/BatchImportCom.vue
0 → 100644
View file @
94265561
<
template
>
<div
class=
"batch-import-com"
>
<!-- 导入弹窗 -->
<el-dialog
:title=
"upload.title"
:visible
.
sync=
"upload.open"
width=
"400px"
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<!--导入结果-->
<el-dialog
title=
"导入结果"
:visible
.
sync=
"upload.showResult"
width=
"500px"
class=
"batch-import-upload-dialog-container"
custom-class=
"batch-import-upload-dialog"
@
close=
"importResultClose"
>
<div
class=
"batch-import-upload-inner"
>
<div
class=
"result-count"
>
<span
class=
"success"
>
导入成功:
</span>
<span>
{{
uploadResult
.
successCount
}}
条
</span>
</div>
<div
class=
"result-count"
>
<span
class=
"error"
>
导入失败:
</span>
<span>
{{
uploadResult
.
errorCount
}}
条
</span>
</div>
<el-table
:data=
"uploadResult.errorMsg"
border
stripe
v-if=
"uploadResult.errorMsg.length"
class=
"error-msg-list-table"
>
<el-table-column
label=
"序号"
type=
"index"
></el-table-column>
<el-table-column
label=
"导入失败原因"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
}}
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
name
:
"batchImportCom"
,
props
:
{
uploadOptions
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
watch
:
{
"uploadOptions"
:
{
handler
(
newValue
,
oldValue
)
{
this
.
upload
=
newValue
;
},
deep
:
true
}
},
data
()
{
return
{
// 导入参数
upload
:
this
.
uploadOptions
,
// 导入结果
uploadResult
:
{
successCount
:
0
,
errorCount
:
0
,
errorMsg
:
[]
}
};
},
//可访问data属性
created
()
{
},
//计算集
computed
:
{
},
//方法集
methods
:
{
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
// 文件上传成功处理
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
if
(
response
.
code
==
200
)
{
this
.
$message
.
success
(
'上传成功!'
);
if
(
response
.
data
)
{
this
.
uploadResult
.
successCount
=
response
.
data
.
sucessCount
;
this
.
uploadResult
.
errorCount
=
response
.
data
.
errorCount
;
response
.
data
.
errorMsg
?
this
.
uploadResult
.
errorMsg
=
response
.
data
.
errorMsg
:
null
;
this
.
upload
.
showResult
=
true
;
}
}
else
{
this
.
$message
.
success
(
`上传失败,
${
response
.
msg
?
response
.
msg
:
"请根据模板正确填写表格内容!"
}
`
);
}
},
// 提交上传文件
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 下载模板操作 */
importTemplate
()
{
let
a
=
document
.
createElement
(
"a"
);
a
.
setAttribute
(
"href"
,
this
.
upload
.
fileTemplateUrl
);
a
.
setAttribute
(
"download"
,
`
${
this
.
upload
.
fileName
}
_
${
new
Date
().
getTime
()}
.xlsx`
);
document
.
body
.
appendChild
(
a
);
a
.
click
();
a
.
remove
();
},
importResultClose
()
{
this
.
upload
.
showResult
=
false
;
this
.
uploadResult
=
this
.
$options
.
data
.
call
(
this
).
uploadResult
;
},
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.batch-import-com
{
::v-deep
.batch-import-upload-dialog-container
{
.batch-import-upload-dialog
{
width
:
100%
;
max-height
:
85%
;
overflow
:
auto
;
.el-dialog__header
{
position
:
sticky
;
top
:
0px
;
background
:
#fff
;
z-index
:
99
;
}
.batch-import-upload-inner
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.result-count
{
line-height
:
32px
;
.success
{
color
:
#67c23a
;
}
.error
{
color
:
#f56c6c
;
}
}
.error-msg-list-table
{
margin-top
:
8px
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/project/projectList/component/BidOpeningRecord.vue
View file @
94265561
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
class=
"bid-opening-record-inner"
>
<div
class=
"bid-opening-record-inner"
>
<!-- 查询功能 -->
<!-- 查询功能 -->
<div
class=
"search-form-container"
>
<div
class=
"search-form-container"
>
<div
class=
"left-form-title"
>
基本信息
</div>
<div
class=
"left-form-title"
>
开标记录
</div>
<div
class=
"right-form-btn-box"
>
<div
class=
"right-form-btn-box"
>
<div
class=
"search-btn add"
@
click
.
stop=
"addBidOpeningRecord"
>
<div
class=
"search-btn add"
@
click
.
stop=
"addBidOpeningRecord"
>
<img
src=
"@/assets/images/project/project-bid-opening-record-add.svg"
alt=
""
>
<img
src=
"@/assets/images/project/project-bid-opening-record-add.svg"
alt=
""
>
...
@@ -25,7 +25,21 @@
...
@@ -25,7 +25,21 @@
<div
class=
"table-data-list-container"
v-else-if=
"!isLoadingData || !tableDataList.length"
>
<div
class=
"table-data-list-container"
v-else-if=
"!isLoadingData || !tableDataList.length"
>
<table-list-com
:formColum=
"formColum"
:queryParams=
"queryParams"
:tableData=
"tableDataList"
:tableDataTotal=
"tableDataTotal"
<table-list-com
:formColum=
"formColum"
:queryParams=
"queryParams"
:tableData=
"tableDataList"
:tableDataTotal=
"tableDataTotal"
:needSelection=
"needSelection"
:stickyHeader=
"
{offsetTop:'48px',offsetBottom : '10px'}" @selectionChange="selectionChange"
:needSelection=
"needSelection"
:stickyHeader=
"
{offsetTop:'48px',offsetBottom : '10px'}" @selectionChange="selectionChange"
@sort-change="sortChange" @handle-current-change="pageCurrentChange" ref="tableListComParent">
@handle-current-change="pageCurrentChange" ref="tableListComParent">
<template
slot=
"tenderAmountHeader"
>
<div
class=
"tender-amount-header"
>
<span>
投标金额(万元)
</span>
<div
class=
"tender-amount-sort"
>
<svg-icon
icon-class=
"asc"
:class=
"
{'sort-active' : queryParams.isAsc == 'asc'}"
@click.stop="sortChange('tenderAmount','asc')">
</svg-icon>
<svg-icon
icon-class=
"desc"
:class=
"
{'sort-active' : queryParams.isAsc == 'desc'}"
@click.stop="sortChange('tenderAmount','desc')">
</svg-icon>
</div>
</div>
</
template
>
<
template
slot=
"tenderAmount"
slot-scope=
"scope"
>
<span>
{{
parseFloat
(
scope
.
row
.
tenderAmount
)
?
scope
.
row
.
tenderAmount
:
"--"
}}
</span>
</
template
>
<
template
slot=
"action-field-bar"
slot-scope=
"scope"
>
<
template
slot=
"action-field-bar"
slot-scope=
"scope"
>
<div
class=
"action-field-bar-container"
>
<div
class=
"action-field-bar-container"
>
<span
class=
"action-field-bar-btn modify"
@
click
.
stop=
"modifyBidOpeningRecord(scope.row)"
>
编辑
</span>
<span
class=
"action-field-bar-btn modify"
@
click
.
stop=
"modifyBidOpeningRecord(scope.row)"
>
编辑
</span>
...
@@ -41,17 +55,18 @@
...
@@ -41,17 +55,18 @@
:formRules=
"formRules"
:formData=
"formData"
></add-bid-opening-record>
:formRules=
"formRules"
:formData=
"formData"
></add-bid-opening-record>
<!-- 导入弹窗 -->
<!-- 导入弹窗 -->
<batch-import-
reset
v-if=
"showImport"
:importtype=
"types"
@
cancels=
"cancelimport"
@
getdatas=
"getdatas"
></batch-import-reset
>
<batch-import-
com
:uploadOptions=
"uploadOptions"
></batch-import-com
>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
skeleton
from
'./skeleton'
;
import
skeleton
from
'./skeleton'
;
import
TableListCom
from
"@/components/TableListCom"
;
import
TableListCom
from
"@/components/TableListCom"
;
import
BatchImport
Reset
from
"./batchImportReset
"
;
import
BatchImport
Com
from
"./BatchImportCom
"
;
import
{
getBidOpeningRecordListApi
,
addBidOpeningRecordApi
,
modifyBidOpeningRecordApi
,
removeBidOpeningRecordApi
}
from
"@/api/project/project"
;
import
{
getBidOpeningRecordListApi
,
addBidOpeningRecordApi
,
modifyBidOpeningRecordApi
,
removeBidOpeningRecordApi
}
from
"@/api/project/project"
;
import
AddBidOpeningRecord
from
"./AddBidOpeningRecord.vue"
;
import
AddBidOpeningRecord
from
"./AddBidOpeningRecord.vue"
;
import
{
getToken
}
from
"@/utils/auth"
;
export
default
{
export
default
{
components
:
{
skeleton
,
TableListCom
,
AddBidOpeningRecord
,
BatchImport
Reset
},
components
:
{
skeleton
,
TableListCom
,
AddBidOpeningRecord
,
BatchImport
Com
},
name
:
"bidOpeningRecord"
,
name
:
"bidOpeningRecord"
,
data
()
{
data
()
{
// 必填字符串长度验证
// 必填字符串长度验证
...
@@ -100,12 +115,12 @@ export default {
...
@@ -100,12 +115,12 @@ export default {
isLoadingData
:
false
,
isLoadingData
:
false
,
// 列表列数据
// 列表列数据
formColum
:
[
formColum
:
[
{
label
:
'投标人'
,
prop
:
'tenderer'
,
w
idth
:
"468px"
},
{
label
:
'投标人'
,
prop
:
'tenderer'
,
minW
idth
:
"468px"
},
{
label
:
'企业性质'
,
prop
:
'tendererNature'
,
w
idth
:
"96px"
},
{
label
:
'企业性质'
,
prop
:
'tendererNature'
,
minW
idth
:
"96px"
},
{
label
:
'项目经理'
,
prop
:
'businessManager'
,
w
idth
:
"115px"
},
{
label
:
'项目经理'
,
prop
:
'businessManager'
,
minW
idth
:
"115px"
},
{
label
:
'联系方式'
,
prop
:
'contact'
,
width
:
"133px"
},
{
label
:
'联系方式'
,
prop
:
'contact'
,
width
:
"133px"
,
},
{
label
:
'投标金额(万元)'
,
prop
:
'tenderAmount'
,
width
:
"168px"
,
s
ortable
:
"custom
"
},
{
label
:
'投标金额(万元)'
,
prop
:
'tenderAmount'
,
width
:
"168px"
,
s
lot
:
true
,
slotHeader
:
true
,
slotName
:
"tenderAmountHeader
"
},
{
label
:
'操作'
,
prop
:
'action-field-bar'
,
minW
idth
:
"151px"
,
fixed
:
"right"
},
{
label
:
'操作'
,
prop
:
'action-field-bar'
,
w
idth
:
"151px"
,
fixed
:
"right"
},
],
],
needSelection
:
{
needSelection
:
{
flag
:
true
,
flag
:
true
,
...
@@ -141,8 +156,25 @@ export default {
...
@@ -141,8 +156,25 @@ export default {
selectionArray
:
[],
selectionArray
:
[],
// 展示新增弹窗
// 展示新增弹窗
showAddDialog
:
false
,
showAddDialog
:
false
,
// 导入弹窗
// 导入开标记录配置
showImport
:
false
uploadOptions
:
{
// 是否显示弹出层
open
:
false
,
// 弹出层标题
title
:
"导入开标信息"
,
// 是否禁用上传
isUploading
:
false
,
// 设置上传的请求头部
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
// 上传的地址
url
:
process
.
env
.
VUE_APP_BASE_API
+
`/business/open/tender/importData/
${
this
.
$route
.
query
.
id
}
`
,
// 展示上传结果
showResult
:
false
,
// 模板下载地址
fileTemplateUrl
:
"/file/bidOpeningRecordTemplate.xlsx"
,
// 模板名称
fileName
:
"bidOpeningRecordTemplate"
},
};
};
},
},
//可访问data属性
//可访问data属性
...
@@ -244,9 +276,7 @@ export default {
...
@@ -244,9 +276,7 @@ export default {
try
{
try
{
if
(
!
this
.
selectionArray
?.
length
&&
!
id
)
return
;
if
(
!
this
.
selectionArray
?.
length
&&
!
id
)
return
;
const
array
=
id
?
[{
id
}]
:
this
.
selectionArray
;
const
array
=
id
?
[{
id
}]
:
this
.
selectionArray
;
const
result
=
await
removeBidOpeningRecordApi
({
const
result
=
await
removeBidOpeningRecordApi
((
array
.
map
(
item
=>
item
.
id
)).
join
(
","
));
ids
:
(
array
.
map
(
item
=>
item
.
id
))
});
if
(
result
.
code
==
200
)
{
if
(
result
.
code
==
200
)
{
this
.
getTableList
();
this
.
getTableList
();
}
}
...
@@ -263,11 +293,11 @@ export default {
...
@@ -263,11 +293,11 @@ export default {
this
.
getTableList
(
pageNum
,
pageSize
,
orderByColumn
,
isAsc
);
this
.
getTableList
(
pageNum
,
pageSize
,
orderByColumn
,
isAsc
);
},
},
// 列排序
// 列排序
sortChange
(
{
column
,
order
,
prop
}
)
{
sortChange
(
prop
,
order
)
{
this
.
queryParams
.
orderByColumn
=
prop
;
this
.
queryParams
.
orderByColumn
=
prop
;
if
(
order
==
"asc
ending
"
)
{
if
(
order
==
"asc"
)
{
this
.
queryParams
.
isAsc
=
"asc"
;
this
.
queryParams
.
isAsc
=
"asc"
;
}
else
if
(
order
==
"desc
ending
"
)
{
}
else
if
(
order
==
"desc"
)
{
this
.
queryParams
.
isAsc
=
"desc"
;
this
.
queryParams
.
isAsc
=
"desc"
;
}
}
this
.
hasConditions
();
this
.
hasConditions
();
...
@@ -279,10 +309,10 @@ export default {
...
@@ -279,10 +309,10 @@ export default {
},
},
// 批量导入
// 批量导入
batchImport
()
{
batchImport
()
{
this
.
showImport
=
true
;
this
.
uploadOptions
.
open
=
true
;
},
},
cancelimport
()
{
cancelimport
()
{
this
.
showImport
=
false
;
this
.
uploadOptions
.
open
=
false
;
},
},
getdatas
()
{
getdatas
()
{
this
.
getTableList
();
this
.
getTableList
();
...
@@ -399,6 +429,30 @@ export default {
...
@@ -399,6 +429,30 @@ export default {
}
}
}
}
}
}
.tender-amount-header
{
display
:
flex
;
align-items
:
center
;
.tender-amount-sort
{
margin-left
:
5px
;
display
:
flex
;
flex-direction
:
column
;
.svg-icon
{
width
:
10px
;
height
:
10px
;
fill
:
#8bd1ff
;
cursor
:
pointer
;
&
:hover
{
fill
:
#0081ff
;
}
&
.sort-active
{
fill
:
#0081ff
;
}
}
}
}
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/project/projectList/component/batchImportReset.vue
View file @
94265561
...
@@ -106,8 +106,8 @@ export default {
...
@@ -106,8 +106,8 @@ export default {
},
},
onSuccess
(
res
,
file
,
fileList
)
{
onSuccess
(
res
,
file
,
fileList
)
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
this
.
successCount
=
res
.
successCount
;
this
.
successCount
=
res
.
data
.
successCount
;
let
str
=
'成功导入条数'
+
res
.
successCount
+
',失败条数'
+
res
.
errorCount
;
let
str
=
'成功导入条数'
+
res
.
data
.
successCount
+
',失败条数'
+
res
.
data
.
errorCount
;
this
.
messages
=
str
;
this
.
messages
=
str
;
this
.
addsuccess
=
true
;
this
.
addsuccess
=
true
;
}
else
{
}
else
{
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
94265561
...
@@ -2,8 +2,12 @@
...
@@ -2,8 +2,12 @@
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-card
class=
"box-card noborder"
>
<el-card
class=
"box-card noborder"
>
<div
class=
"btns"
>
<div
class=
"btns"
>
<div
class=
"btn btn_default h28"
@
click=
"addNew(true)"
><div
class=
"img img1"
></div>
新建项目商机
</div>
<div
class=
"btn btn_default h28"
@
click=
"addNew(true)"
>
<div
class=
"btn btn_primary h28"
@
click=
"pldrs"
><div
class=
"img img2"
></div>
批量导入
</div>
<div
class=
"img img1"
></div>
新建项目商机
</div>
<div
class=
"btn btn_primary h28"
@
click=
"pldrs"
>
<div
class=
"img img2"
></div>
批量导入
</div>
</div>
</div>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
class=
"tabpane w100"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
class=
"tabpane w100"
>
<el-tab-pane
label=
"我参与的项目"
name=
"first"
></el-tab-pane>
<el-tab-pane
label=
"我参与的项目"
name=
"first"
></el-tab-pane>
...
@@ -15,92 +19,90 @@
...
@@ -15,92 +19,90 @@
</div>
</div>
<div
class=
"sellist"
>
<div
class=
"sellist"
>
<div
class=
"selli"
>
<div
class=
"selli"
>
<span>
<span>
地区团队
地区团队
</span>
</span>
<div
class=
"select-popper"
>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text:searchParam.provinceId.length ||searchParam.cityId.length ||searchParam.districtId.length}">
<span
:class=
"
{ color_text:searchParam.provinceId.length ||searchParam.cityId.length ||searchParam.districtId.length}">
项目地区
{{
searchParam
.
provinceId
.
length
||
searchParam
.
cityId
.
length
||
searchParam
.
districtId
.
length
?
searchParam
.
provinceId
.
length
+
searchParam
.
cityId
.
length
+
searchParam
.
districtId
.
length
+
"项"
:
""
}}
项目地区
{{
searchParam
.
provinceId
.
length
||
searchParam
.
cityId
.
length
||
searchParam
.
districtId
.
length
?
searchParam
.
provinceId
.
length
+
searchParam
.
cityId
.
length
+
searchParam
.
districtId
.
length
+
"项"
:
""
}}
<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"
ref=
"myCascader"
:props=
'props'
:options=
"addressList"
ref=
"myCascader"
@
change=
"handleChange"
></el-cascader>
:props=
'props'
:options=
"addressList"
@
change=
"handleChange"
></el-cascader>
</div>
</div>
</div>
</div>
<div
class=
"selli"
>
<div
class=
"selli"
>
<span>
<span>
项目信息
项目信息
</span>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:searchParam.projectType.length}">
项目类型
{{
searchParam
.
projectType
.
length
?
searchParam
.
projectType
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<div
class=
"select-popper"
>
<el-select
placeholder=
"请选择"
v-model=
"searchParam.projectType"
multiple
class=
"select-multiple"
>
<span
:class=
"
{color_text:searchParam.projectType.length}">
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
项目类型
{{
searchParam
.
projectType
.
length
?
searchParam
.
projectType
.
length
+
"项"
:
""
}}
</el-select>
<i
class=
"el-icon-caret-bottom"
></i>
</div>
<div
class=
"select-popper"
>
<el-dropdown
@
command=
"transactionPricehandleCommand"
trigger=
"click"
ref=
"transactionPriceShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"searchParam.minAmount ||searchParam.maxAmount ? 'color_text': ''"
>
投资估算
{{
searchParam
.
minAmount
||
searchParam
.
maxAmount
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<el-select
placeholder=
"请选择"
v-model=
"searchParam.projectType"
multiple
class=
"select-multiple"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
<el-dropdown-item
v-for=
"(item, i) in amountOptions"
:class=
"searchParam.minAmount == item.value[0] &&searchParam.maxAmount == item.value[1] &&
</el-select>
</div>
<div
class=
"select-popper"
>
<el-dropdown
@
command=
"transactionPricehandleCommand"
trigger=
"click"
ref=
"transactionPriceShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"searchParam.minAmount ||searchParam.maxAmount ? 'color_text': ''"
>
投资估算
{{
searchParam
.
minAmount
||
searchParam
.
maxAmount
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in amountOptions"
:class=
"searchParam.minAmount == item.value[0] &&searchParam.maxAmount == item.value[1] &&
!minAmount &&!maxAmount? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
{{
item
.
label
}}
</el-dropdown-item>
!minAmount &&!maxAmount? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
{{
item
.
label
}}
</el-dropdown-item>
<el-dropdown-item
command=
""
style=
"padding: 0; text-indent: 20px"
>
<el-dropdown-item
command=
""
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"transactionPriceShowPopper = true"
@
mouseleave=
"transactionPriceShowPopper = false"
>
<div
@
mouseenter=
"transactionPriceShowPopper = true"
@
mouseleave=
"transactionPriceShowPopper = false"
>
<span
:class=
"(minAmount || maxAmount) &&searchParam.minAmount ==minAmount &&
<span
:class=
"(minAmount || maxAmount) &&searchParam.minAmount ==minAmount &&
searchParam.maxAmount == maxAmount? 'color_text': '' "
>
searchParam.maxAmount == maxAmount? 'color_text': '' "
>
自定义
<i
class=
"el-icon-arrow-right"
></i>
自定义
<i
class=
"el-icon-arrow-right"
></i>
</span>
</span>
<div
class=
"jabph_popper_box"
style=
"position: absolute"
v-if=
"transactionPriceShowPopper"
>
<div
class=
"jabph_popper_box"
style=
"position: absolute"
v-if=
"transactionPriceShowPopper"
>
<div
class=
"jabph_popper_wrap"
>
<div
class=
"jabph_popper_wrap"
>
从
从
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"minAmount"
></el-input>
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"minAmount"
></el-input>
万
万
</div>
</div>
<div
class=
"jabph_popper_wrap"
>
<div
class=
"jabph_popper_wrap"
>
到
到
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"maxAmount"
></el-input>
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"maxAmount"
></el-input>
万
万
</div>
</div>
<div
style=
""
>
<div
style=
""
>
<el-button
size=
"mini"
@
click=
"transactionPriceCancel"
>
取消
</el-button>
<el-button
size=
"mini"
@
click=
"transactionPriceCancel"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"transactionPricePopperConfirm"
>
确定
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"transactionPricePopperConfirm"
>
确定
</el-button>
</div>
</div>
</div>
</div>
</div>
</el-dropdown-item>
</div>
</el-dropdown-menu>
</el-dropdown-item>
</el-dropdown>
</el-dropdown-menu>
</div>
</el-dropdown>
<div
class=
"select-popper"
>
</div>
<span
:class=
"
{color_text:searchParam.projectStage.length}">
<div
class=
"select-popper"
>
项目阶段
{{
searchParam
.
projectStage
.
length
?
searchParam
.
projectStage
.
length
+
"项"
:
""
}}
<span
:class=
"
{color_text:searchParam.projectStage.length}">
项目阶段
{{
searchParam
.
projectStage
.
length
?
searchParam
.
projectStage
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"searchParam.projectStage"
class=
"select-multiple"
multiple
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<el-dropdown
trigger=
"click"
placement=
'bottom-start'
>
<div
class=
"el-dropdown-link "
:class=
"searchParam.status!=null?'select-active':''"
>
项目状态
{{
searchParam
.
status
!=
null
?
' 1项'
:
''
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</div>
<el-select
v-model=
"searchParam.projectStage"
class=
"select-multiple"
multiple
placeholder=
"请选择"
>
<el-dropdown-menu
slot=
"dropdown"
class=
"select-list select-radio"
>
<el-option
v-for=
"(item,index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
<el-dropdown-item
v-for=
"(itme,i) in statusList"
:key=
"i"
>
</el-select>
<el-radio
:label=
"itme.value"
v-model=
"searchParam.status"
@
input=
"statusBtn()"
>
</div>
{{
itme
.
label
}}
<div
class=
"select-popper"
>
</el-radio>
<el-dropdown
trigger=
"click"
placement=
'bottom-start'
>
</el-dropdown-item>
<div
class=
"el-dropdown-link "
:class=
"searchParam.status!=null?'select-active':''"
>
</el-dropdown-menu>
项目状态
{{
searchParam
.
status
!=
null
?
' 1项'
:
''
}}
</el-dropdown>
<i
class=
"el-icon-caret-bottom"
></i>
</div>
</div>
<el-dropdown-menu
slot=
"dropdown"
class=
"select-list select-radio"
>
<el-dropdown-item
v-for=
"(itme,i) in statusList"
:key=
"i"
>
<el-radio
:label=
"itme.value"
v-model=
"searchParam.status"
@
input=
"statusBtn()"
>
{{
itme
.
label
}}
</el-radio>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
</div>
</div>
<div
class=
"scbtns"
>
<div
class=
"scbtns"
>
...
@@ -115,7 +117,7 @@
...
@@ -115,7 +117,7 @@
<div
class=
"dc"
>
<div
class=
"dc"
>
<div
class=
"total"
>
共
{{
total
}}
条
</div>
<div
class=
"total"
>
共
{{
total
}}
条
</div>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
content=
"功能正在开发中"
placement=
"top"
>
-->
<!--
<el-tooltip
class=
"item"
effect=
"dark"
content=
"功能正在开发中"
placement=
"top"
>
-->
<div
class=
"btn-export"
@
click=
"dc"
><img
src=
"@/assets/images/EXCEL.png"
>
导出EXCEL
</div>
<div
class=
"btn-export"
@
click=
"dc"
><img
src=
"@/assets/images/EXCEL.png"
>
导出EXCEL
</div>
<!--
</el-tooltip>
-->
<!--
</el-tooltip>
-->
</div>
</div>
</div>
</div>
...
@@ -134,11 +136,13 @@
...
@@ -134,11 +136,13 @@
<div
class=
"datali"
v-for=
"(item,index) in datalist"
>
<div
class=
"datali"
v-for=
"(item,index) in datalist"
>
<div
class=
"det-title"
@
click=
"toDetail(item.id,'xmsl')"
>
<div
class=
"det-title"
@
click=
"toDetail(item.id,'xmsl')"
>
<span
v-html=
"item.projectName"
></span>
<span
v-if=
"activeName!='first' && item.followTime"
class=
"people"
><i>
{{
item
.
nickName1
}}
</i>
<span
v-html=
"item.projectName"
></span>
<span
v-if=
"activeName!='first' && item.followTime"
class=
"people"
><i>
{{
item
.
nickName1
}}
</i>
<span
v-if=
"item.provinceName != '' && item.provinceName!==null"
>
{{
item
.
provinceName
}}
-
</span>
<span
v-if=
"item.provinceName != '' && item.provinceName!==null"
>
{{
item
.
provinceName
}}
-
</span>
{{
item
.
nickName
}}
<font
color=
"#FA8A00"
>
正在跟进
</font></span></div>
{{
item
.
nickName
}}
<font
color=
"#FA8A00"
>
正在跟进
</font></span>
</div>
<div
class=
"det-tips"
>
<div
class=
"det-tips"
>
<span
class=
"tips tip1"
v-for=
"label in item.labels"
>
{{
label
}}
</span>
<span
class=
"tips tip1"
v-for=
"label in item.labels"
>
{{
label
}}
</span>
<span
v-if=
"item.address"
class=
"tips tip2"
>
{{
item
.
address
}}
</span></div>
<span
v-if=
"item.address"
class=
"tips tip2"
>
{{
item
.
address
}}
</span>
</div>
<div
class=
"det-contets"
>
<div
class=
"det-contets"
>
<div
class=
"det-con"
v-if=
"item.projectType"
>
<div
class=
"det-con"
v-if=
"item.projectType"
>
<span>
项目类型:
</span>
<span>
项目类型:
</span>
...
@@ -154,12 +158,13 @@
...
@@ -154,12 +158,13 @@
</div>
</div>
<div
class=
"det-con"
v-if=
"item.ownerCompany "
>
<div
class=
"det-con"
v-if=
"item.ownerCompany "
>
<span>
业主单位:
</span>
<span>
业主单位:
</span>
<span
class=
"wordprimary"
v-if=
"item.ownerCompanyCid||item.ownerCompanyUipId"
@
click=
"toEnterprise(item)"
v-html=
"item.ownerCompany"
></span>
<span
class=
"wordprimary"
v-if=
"item.ownerCompanyCid||item.ownerCompanyUipId"
@
click=
"toEnterprise(item)"
v-html=
"item.ownerCompany"
></span>
<span
v-else
v-html=
"item.ownerCompany"
></span>
<span
v-else
v-html=
"item.ownerCompany"
></span>
</div>
</div>
</div>
</div>
<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"
@
click=
"toDetail(item.id,'gjjl')"
><img
src=
"@/assets/images/follow.png"
>
跟进
</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=
"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
class=
"i3"
@
click=
"deldetail(index)"
><img
src=
"@/assets/images/delete.png"
>
删除
</div>
...
@@ -174,13 +179,8 @@
...
@@ -174,13 +179,8 @@
</div>
</div>
</div>
</div>
<div
class=
"pagination-box"
v-if=
"total>searchParam.pageSize"
>
<div
class=
"pagination-box"
v-if=
"total>searchParam.pageSize"
>
<el-pagination
<el-pagination
background
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
@
current-change=
"handleCurrentChange"
background
layout=
"prev, pager, next"
:total=
"total"
>
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</el-pagination>
</div>
</div>
</el-card>
</el-card>
...
@@ -191,203 +191,207 @@
...
@@ -191,203 +191,207 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
"@/assets/styles/project.scss"
import
"@/assets/styles/project.scss"
;
import
"@/assets/styles/public.scss"
import
"@/assets/styles/public.scss"
;
import
prvinceTree
from
'@/assets/json/provinceTree'
import
prvinceTree
from
'@/assets/json/provinceTree'
;
import
{
getProjectlist
,
delProject
}
from
'@/api/project/project'
import
{
getProjectlist
,
delProject
}
from
'@/api/project/project'
;
import
{
getDictType
,}
from
'@/api/main'
import
{
getDictType
,
}
from
'@/api/main'
;
import
addproject
from
'./component/addProject'
import
addproject
from
'./component/addProject'
;
import
batchimport
from
'./component/batchImport'
import
batchimport
from
'./component/batchImport'
;
import
skeleton
from
'./component/skeleton'
import
skeleton
from
'./component/skeleton'
;
import
{
encodeStr
}
from
"@/assets/js/common.js"
import
{
encodeStr
}
from
"@/assets/js/common.js"
;
export
default
{
export
default
{
name
:
'ProjectList'
,
name
:
'ProjectList'
,
components
:
{
addproject
,
batchimport
,
skeleton
},
components
:
{
addproject
,
batchimport
,
skeleton
},
data
()
{
data
()
{
return
{
return
{
encodeStr
,
encodeStr
,
types
:
'project'
,
types
:
'project'
,
props
:
{
multiple
:
true
},
props
:
{
multiple
:
true
},
activeName
:
'first'
,
activeName
:
'first'
,
projectStage
:[],
//项目阶段
projectStage
:
[],
//项目阶段
isshow
:
false
,
//新增商机
isshow
:
false
,
//新增商机
pldr
:
false
,
//批量导入
pldr
:
false
,
//批量导入
//项目地区
//项目地区
addressList
:[],
addressList
:
[],
addressType
:
[],
addressType
:
[],
// 查询参数
// 查询参数
minAmount
:
''
,
//投资估算最小值
minAmount
:
''
,
//投资估算最小值
maxAmount
:
''
,
//投资估算最大值
maxAmount
:
''
,
//投资估算最大值
searchParam
:
{
searchParam
:
{
isPrivate
:
1
,
//0 公司 1 个人
isPrivate
:
1
,
//0 公司 1 个人
projectName
:
''
,
//项目名称
projectName
:
''
,
//项目名称
ownerCompany
:
''
,
//业主单位
ownerCompany
:
''
,
//业主单位
projectType
:
''
,
//项目类型
projectType
:
''
,
//项目类型
projectStage
:
''
,
//项目阶段
projectStage
:
''
,
//项目阶段
minAmount
:
''
,
//投资估算最小值
minAmount
:
''
,
//投资估算最小值
maxAmount
:
''
,
//投资估算最大值
maxAmount
:
''
,
//投资估算最大值
Amount
:
''
,
//投资估算
Amount
:
''
,
//投资估算
provinceId
:
[],
provinceId
:
[],
cityId
:
[],
cityId
:
[],
districtId
:
[],
districtId
:
[],
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
,
pageSize
:
20
,
status
:
null
,
status
:
null
,
},
},
domicile
:[],
domicile
:
[],
projectType
:[],
//项目类型
projectType
:
[],
//项目类型
projectCategory
:[],
//项目类别
projectCategory
:
[],
//项目类别
statusList
:[
statusList
:
[
{
{
value
:
'0'
,
value
:
'0'
,
label
:
'储备中'
label
:
'储备中'
},
},
{
{
value
:
'1'
,
value
:
'1'
,
label
:
'跟进中'
label
:
'跟进中'
},
},
{
{
value
:
'2'
,
value
:
'2'
,
label
:
'已合作'
label
:
'已中标'
},
{
value
:
'3'
,
label
:
'未中标'
},
},
],
],
amountOptions
:[
amountOptions
:
[
{
{
label
:
"5000万以下"
,
label
:
"5000万以下"
,
value
:
[
0
,
5000
],
value
:
[
0
,
5000
],
},
},
{
{
label
:
"5000万-1亿"
,
label
:
"5000万-1亿"
,
value
:
[
5000
,
10000
],
value
:
[
5000
,
10000
],
},
},
{
{
label
:
"1亿-3亿"
,
label
:
"1亿-3亿"
,
value
:
[
10000
,
30000
],
value
:
[
10000
,
30000
],
},
},
{
{
label
:
"3亿以上"
,
label
:
"3亿以上"
,
value
:
[
30000
,
''
],
value
:
[
30000
,
''
],
},
},
],
],
contractSignTimeValue
:
""
,
contractSignTimeValue
:
""
,
transactionPriceShowPopper
:
false
,
transactionPriceShowPopper
:
false
,
datalist
:[],
//列表数据
datalist
:
[],
//列表数据
ondel
:
-
1
,
ondel
:
-
1
,
total
:
0
,
total
:
0
,
isSkeleton
:
true
isSkeleton
:
true
}
}
;
},
},
created
()
{
created
()
{
},
},
mounted
(){
mounted
()
{
this
.
prvinceTree
()
this
.
prvinceTree
()
;
//项目阶段
//项目阶段
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:
[];
})
})
;
//项目类型
//项目类型
getDictType
(
'project_type'
).
then
(
result
=>
{
getDictType
(
'project_type'
).
then
(
result
=>
{
this
.
projectType
=
result
.
code
==
200
?
result
.
data
:[]
this
.
projectType
=
result
.
code
==
200
?
result
.
data
:
[];
})
})
;
//项目类别
//项目类别
getDictType
(
'project_category'
).
then
(
result
=>
{
getDictType
(
'project_category'
).
then
(
result
=>
{
this
.
projectCategory
=
result
.
code
==
200
?
result
.
data
:[]
this
.
projectCategory
=
result
.
code
==
200
?
result
.
data
:
[];
})
})
;
if
(
this
.
$route
.
query
.
type
==
1
)
{
if
(
this
.
$route
.
query
.
type
==
1
)
{
this
.
activeName
=
'second'
;
this
.
activeName
=
'second'
;
}
}
if
(
this
.
$route
.
query
.
status
)
{
if
(
this
.
$route
.
query
.
status
)
{
this
.
searchParam
.
status
=
this
.
$route
.
query
.
status
;
this
.
searchParam
.
status
=
this
.
$route
.
query
.
status
;
}
}
if
(
this
.
$route
.
query
.
projectName
)
{
if
(
this
.
$route
.
query
.
projectName
)
{
this
.
searchParam
.
projectName
=
this
.
$route
.
query
.
projectName
;
this
.
searchParam
.
projectName
=
this
.
$route
.
query
.
projectName
;
}
}
this
.
getList
(
1
)
this
.
getList
(
1
)
;
},
},
methods
:
{
methods
:
{
statusBtn
(){
statusBtn
()
{
},
},
dc
(){
dc
()
{
this
.
$message
.
warning
(
'功能正在开发中'
)
this
.
$message
.
warning
(
'功能正在开发中'
)
;
},
},
deldetail
(
index
){
deldetail
(
index
)
{
this
.
ondel
=
index
this
.
ondel
=
index
;
},
},
deleteProject
(
id
){
deleteProject
(
id
)
{
delProject
(
id
).
then
(
result
=>
{
delProject
(
id
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
{
if
(
result
.
code
==
200
)
{
this
.
$message
.
success
(
'删除成功!'
)
this
.
$message
.
success
(
'删除成功!'
)
;
this
.
getList
(
1
)
this
.
getList
(
1
)
;
this
.
ondel
=
-
1
this
.
ondel
=
-
1
;
}
else
{
}
else
{
this
.
$message
.
error
(
result
.
msg
)
this
.
$message
.
error
(
result
.
msg
)
;
}
}
})
})
;
},
},
getdatas
(){
getdatas
()
{
this
.
getList
(
1
)
this
.
getList
(
1
)
;
},
},
cancelimport
(){
cancelimport
()
{
this
.
pldr
=
false
this
.
pldr
=
false
;
},
},
pldrs
(){
pldrs
()
{
this
.
pldr
=
true
this
.
pldr
=
true
;
},
},
//获取商机列表
//获取商机列表
getList
(
pageNum
){
getList
(
pageNum
)
{
this
.
isSkeleton
=
true
this
.
isSkeleton
=
true
;
this
.
searchParam
.
pageNum
=
pageNum
this
.
searchParam
.
pageNum
=
pageNum
;
if
(
this
.
activeName
==
'first'
)
{
if
(
this
.
activeName
==
'first'
)
{
this
.
searchParam
.
isPrivate
=
1
this
.
searchParam
.
isPrivate
=
1
;
}
else
{
}
else
{
this
.
searchParam
.
isPrivate
=
0
this
.
searchParam
.
isPrivate
=
0
;
}
}
this
.
searchParam
.
ownerCompany
=
this
.
searchParam
.
projectName
this
.
searchParam
.
ownerCompany
=
this
.
searchParam
.
projectName
;
getProjectlist
(
this
.
searchParam
).
then
(
result
=>
{
getProjectlist
(
this
.
searchParam
).
then
(
result
=>
{
this
.
isSkeleton
=
false
this
.
isSkeleton
=
false
;
if
(
result
.
code
==
200
)
{
if
(
result
.
code
==
200
)
{
this
.
datalist
=
result
.
rows
this
.
datalist
=
result
.
rows
;
this
.
total
=
result
.
total
this
.
total
=
result
.
total
;
this
.
datalist
.
forEach
(
item
=>
{
this
.
datalist
.
forEach
(
item
=>
{
let
str
=
item
.
provinceName
let
str
=
item
.
provinceName
;
if
(
item
.
cityName
!=
""
&&
item
.
cityName
!=
null
)
if
(
item
.
cityName
!=
""
&&
item
.
cityName
!=
null
)
str
+=
'-'
+
item
.
cityName
str
+=
'-'
+
item
.
cityName
;
if
(
item
.
districtName
!=
""
&&
item
.
districtName
!=
null
)
if
(
item
.
districtName
!=
""
&&
item
.
districtName
!=
null
)
str
+=
'-'
+
item
.
districtName
str
+=
'-'
+
item
.
districtName
;
item
.
address
=
str
item
.
address
=
str
;
item
.
nickName1
=
item
.
nickName
?
item
.
nickName
.
slice
(
0
,
1
):
''
item
.
nickName1
=
item
.
nickName
?
item
.
nickName
.
slice
(
0
,
1
)
:
''
;
item
.
labels
=
[]
item
.
labels
=
[];
if
(
item
.
label
!=
null
&&
item
.
label
!=
""
)
{
if
(
item
.
label
!=
null
&&
item
.
label
!=
""
)
{
item
.
labels
=
item
.
label
.
split
(
','
)
item
.
labels
=
item
.
label
.
split
(
','
)
;
}
}
})
})
;
}
}
})
})
;
},
},
reset
(){
reset
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
myCascader
.
$refs
.
panel
.
clearCheckedNodes
()
this
.
$refs
.
myCascader
.
$refs
.
panel
.
clearCheckedNodes
()
;
this
.
$refs
.
myCascader
.
$refs
.
panel
.
activePath
=
[]
this
.
$refs
.
myCascader
.
$refs
.
panel
.
activePath
=
[]
;
})
})
;
this
.
searchParam
=
{
this
.
searchParam
=
{
isPrivate
:
1
,
isPrivate
:
1
,
projectName
:
''
,
//项目名称
projectName
:
''
,
//项目名称
ownerCompany
:
''
,
//业主单位
ownerCompany
:
''
,
//业主单位
projectType
:
''
,
//项目类型
projectType
:
''
,
//项目类型
projectStage
:
''
,
//项目阶段
projectStage
:
''
,
//项目阶段
minAmount
:
''
,
//投资估算最小值
minAmount
:
''
,
//投资估算最小值
maxAmount
:
''
,
//投资估算最大值
maxAmount
:
''
,
//投资估算最大值
Amount
:
''
,
//投资估算
Amount
:
''
,
//投资估算
provinceId
:
[],
provinceId
:
[],
cityId
:
[],
cityId
:
[],
districtId
:
[],
districtId
:
[],
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
,
pageSize
:
20
,
status
:
null
status
:
null
}
}
;
this
.
getList
(
1
)
this
.
getList
(
1
)
;
},
},
//地区
//地区
async
prvinceTree
()
{
async
prvinceTree
()
{
...
@@ -402,44 +406,44 @@ export default {
...
@@ -402,44 +406,44 @@ export default {
// })
// })
// console.log(prvinceTree)
// console.log(prvinceTree)
this
.
addressList
=
prvinceTree
;
this
.
addressList
=
prvinceTree
;
this
.
getadd
(
this
.
addressList
)
this
.
getadd
(
this
.
addressList
)
;
},
},
//处理项目地区
//处理项目地区
getadd
(
row
)
{
getadd
(
row
)
{
this
.
addrcallback
(
row
,
this
.
getadd
)
this
.
addrcallback
(
row
,
this
.
getadd
);
},
},
addrcallback
(
row
,
callback
)
{
addrcallback
(
row
,
callback
)
{
if
(
row
)
{
if
(
row
)
{
row
.
forEach
(
item
=>
{
row
.
forEach
(
item
=>
{
item
.
value
=
item
.
id
item
.
value
=
item
.
id
;
callback
&&
callback
(
item
.
children
)
callback
&&
callback
(
item
.
children
);
})
})
;
}
}
},
},
//新建项目
//新建项目
showNew
(){
showNew
()
{
this
.
isshow
=
true
this
.
isshow
=
true
;
},
},
addNew
(
isshow
){
addNew
(
isshow
)
{
this
.
isshow
=
isshow
this
.
isshow
=
isshow
;
},
},
add
(){
add
()
{
this
.
isshow
=
false
this
.
isshow
=
false
;
this
.
getList
(
1
)
this
.
getList
(
1
)
;
},
},
toDetail
(
id
,
tag
)
{
toDetail
(
id
,
tag
)
{
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
{
id
:
id
,
tag
:
tag
}
});
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
{
id
:
id
,
tag
:
tag
}
});
},
},
toEnterprise
(
item
){
toEnterprise
(
item
)
{
if
(
item
.
ownerCompanyUipId
)
{
if
(
item
.
ownerCompanyUipId
)
{
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
item
.
ownerCompanyCid
)
});
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
item
.
ownerCompanyCid
)
});
}
else
if
(
item
.
ownerCompanyCid
)
{
}
else
if
(
item
.
ownerCompanyCid
)
{
this
.
$router
.
push
({
path
:
'/company/'
+
this
.
encodeStr
(
item
.
ownerCompanyCid
)
});
this
.
$router
.
push
({
path
:
'/company/'
+
this
.
encodeStr
(
item
.
ownerCompanyCid
)
});
}
}
},
},
handleClick
(){
handleClick
()
{
this
.
reset
()
this
.
reset
()
;
},
},
handleChange
(
value
)
{
handleChange
(
value
)
{
// console.log(value);
// console.log(value);
...
@@ -508,74 +512,77 @@ export default {
...
@@ -508,74 +512,77 @@ export default {
//翻页
//翻页
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
this
.
getList
(
val
)
this
.
getList
(
val
)
;
},
},
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.btn_primary
{
.btn_primary
{
margin-top
:
16px
;
margin-top
:
16px
;
}
}
.jabph_popper_box
{
.jabph_popper_box
{
left
:
110px
;
left
:
110px
;
}
}
.noborder
{
.noborder
{
position
:
relative
;
position
:
relative
;
}
.btns
{
position
:
absolute
;
top
:
-6px
;
right
:
12px
;
z-index
:
2
;
.img.img1
{
background
:
url("../../../../src/assets/images/add.png")
no-repeat
center
center
;
background-size
:
100%
;
}
}
.btns
{
.btn_default
:hover
{
position
:
absolute
;
.img1
{
top
:
-6px
;
background
:
url("../../../../src/assets/images/add_1.png")
no-repeat
right
:
12px
;
center
center
;
z-index
:
2
;
.img.img1
{
background
:
url('../../../../src/assets/images/add.png')
no-repeat
center
center
;
background-size
:
100%
;
}
.btn_default
:hover
{
.img1
{
background
:
url('../../../../src/assets/images/add_1.png')
no-repeat
center
center
;
background-size
:
100%
;
}
}
.img.img2
{
background
:
url('../../../../src/assets/images/import.png')
no-repeat
center
center
;
background-size
:
100%
;
background-size
:
100%
;
}
}
}
}
.scbtns
{
.img.img2
{
border-top
:
1px
solid
#EFEFEF
;
background
:
url("../../../../src/assets/images/import.png")
no-repeat
center
padding
:
24px
0
8px
;
center
;
.btn
{
background-size
:
100%
;
margin
:
0
16px
0
0
;
}
}
}
.sellist
{
}
.scbtns
{
border-top
:
1px
solid
#efefef
;
padding
:
24px
0
8px
;
.btn
{
margin
:
0
16px
0
0
;
}
}
.sellist
{
width
:
100%
;
padding
:
10px
0
;
.selli
{
width
:
100%
;
width
:
100%
;
padding
:
10px
0
;
height
:
34px
;
.selli
{
line-height
:
34px
;
width
:
100%
;
font-size
:
14px
;
height
:
34px
;
color
:
#232323
;
line-height
:
34px
;
>
span
{
font-size
:
14px
;
float
:
left
;
color
:
#232323
;
margin-right
:
28px
;
>
span
{
opacity
:
0
.8
;
float
:
left
;
margin-right
:
28px
;
opacity
:
0
.8
;
}
}
}
}
}
.titles
{
}
color
:
#232323
;
.titles
{
font-size
:
16px
;
color
:
#232323
;
font-weight
:
bold
;
font-size
:
16px
;
height
:
60px
;
font-weight
:
bold
;
line-height
:
64px
;
height
:
60px
;
border-bottom
:
1px
solid
#EFEFEF
;
line-height
:
64px
;
padding-left
:
2px
;
border-bottom
:
1px
solid
#efefef
;
padding-right
:
24px
;
padding-left
:
2px
;
/*&::after{
padding-right
:
24px
;
/*&::after{
content: " ";
content: " ";
width: 2px;
width: 2px;
height: 14px;
height: 14px;
...
@@ -584,133 +591,133 @@ export default {
...
@@ -584,133 +591,133 @@ export default {
margin-left: -10px;
margin-left: -10px;
margin-top: 24px;
margin-top: 24px;
}*/
}*/
.dc
{
.dc
{
width
:
100%
;
width
:
100%
;
float
:
right
;
font-size
:
12px
;
color
:
#3d3d3d
;
font-weight
:
400
;
position
:
relative
;
&
:
:
after
{
content
:
" "
;
width
:
2px
;
height
:
2px
;
background
:
rgba
(
35
,
35
,
35
,
0
.4
);
border-radius
:
50%
;
position
:
absolute
;
top
:
30px
;
left
:
14px
;
}
>
div
{
display
:
inline-block
;
margin-left
:
20px
;
}
.btn-export
{
float
:
right
;
float
:
right
;
font-size
:
12px
;
margin-top
:
18px
;
color
:
#3D3D3D
;
font-weight
:
400
;
position
:
relative
;
&
:
:
after
{
content
:
' '
;
width
:
2px
;
height
:
2px
;
background
:
rgba
(
35
,
35
,
35
,
0
.4
);
border-radius
:
50%
;
position
:
absolute
;
top
:
30px
;
left
:
14px
;
}
>
div
{
display
:
inline-block
;
margin-left
:
20px
;
}
.btn-export
{
float
:
right
;
margin-top
:
18px
;
}
}
}
}
}
.datalist
{
}
.datali
{
.datalist
{
padding
:
16px
16px
0
;
.datali
{
position
:
relative
;
padding
:
16px
16px
0
;
.operates
{
position
:
relative
;
position
:
absolute
;
.operates
{
z-index
:
1
;
position
:
absolute
;
right
:
0
;
z-index
:
1
;
top
:
24px
;
right
:
0
;
>
div
{
top
:
24px
;
padding-right
:
16px
;
>
div
{
display
:
inline-block
;
padding-right
:
16px
;
font-size
:
12px
;
display
:
inline-block
;
>
img
{
font-size
:
12px
;
float
:
left
;
>
img
{
margin-right
:
5px
;
float
:
left
;
width
:
16px
;
margin-right
:
5px
;
}
width
:
16px
;
}
.i1
:hover
{
color
:
#3CB4FF
;
}
.i2
:hover
{
color
:
#0CBC6D
;
}
.i3
:hover
{
color
:
#FF3C3C
;
}
.tits
{
padding
:
12px
0
;
}
}
}
}
.delform
{
.i1
:hover
{
right
:
16px
;
color
:
#3cb4ff
;
top
:
-94px
;
.btnsmall
{
margin-top
:
0
;
}
}
}
&
:hover
{
.i2
:hover
{
background-color
:
#F6F9FC
;
color
:
#0cbc6d
;
cursor
:
pointer
;
}
}
.det-title
{
.i3
:hover
{
color
:
#3D3D3D
;
color
:
#ff3c3c
;
font-size
:
16px
;
font-weight
:
700
;
line-height
:
23px
;
padding-right
:
190px
;
.people
{
padding-left
:
10px
;
color
:
#4f4f4f
;
font-weight
:
400
;
font-size
:
14px
;
i
{
width
:
20px
;
height
:
20px
;
background
:
#E3EEF9
;
border-radius
:
50%
;
font-style
:
initial
;
font-size
:
12px
;
display
:
inline-block
;
color
:
#0081FF
;
text-align
:
center
;
line-height
:
20px
;
margin-right
:
4px
;
}
}
}
}
.
det-tips
{
.
tits
{
padding
:
8px
0
;
padding
:
12px
0
;
}
}
.det-contets
{
}
padding
:
4px
0
16px
;
.delform
{
.det-con
{
right
:
16px
;
font-size
:
14px
;
top
:
-94px
;
.btnsmall
{
margin-top
:
0
;
}
}
&
:hover
{
background-color
:
#f6f9fc
;
cursor
:
pointer
;
}
.det-title
{
color
:
#3d3d3d
;
font-size
:
16px
;
font-weight
:
700
;
line-height
:
23px
;
padding-right
:
190px
;
.people
{
padding-left
:
10px
;
color
:
#4f4f4f
;
font-weight
:
400
;
font-size
:
14px
;
i
{
width
:
20px
;
height
:
20px
;
background
:
#e3eef9
;
border-radius
:
50%
;
font-style
:
initial
;
font-size
:
12px
;
display
:
inline-block
;
display
:
inline-block
;
padding-right
:
32px
;
color
:
#0081ff
;
&
:last-child
{
text-align
:
center
;
padding-right
:
0
;
line-height
:
20px
;
}
margin-right
:
4px
;
span
:nth-child
(
2n-1
)
{
color
:
#a7a7a7
;
}
}
}
}
}
}
}
}
.det-tips
{
padding
:
8px
0
;
.popbot
{
.wordprimary
{
padding-right
:
26px
;
float
:
left
;
margin-top
:
6px
;
}
}
.btn_primary
{
.det-contets
{
padding
:
0
;
padding
:
4px
0
16px
;
.det-con
{
font-size
:
14px
;
display
:
inline-block
;
padding-right
:
32px
;
&
:last-child
{
padding-right
:
0
;
}
span
:nth-child
(
2n-1
)
{
color
:
#a7a7a7
;
}
}
}
}
}
}
.btn
{
}
padding
:
0
12px
;
.popbot
{
.wordprimary
{
padding-right
:
26px
;
float
:
left
;
margin-top
:
6px
;
}
.btn_primary
{
padding
:
0
;
}
}
}
.btn
{
padding
:
0
12px
;
}
</
style
>
</
style
>
dsk-operate-ui/src/views/system/user/index.vue
View file @
94265561
...
@@ -345,9 +345,6 @@
...
@@ -345,9 +345,6 @@
<i
class=
"el-icon-upload"
></i>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<!--<div class="el-upload__tip" slot="tip">-->
<!--<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据-->
<!--</div>-->
<span>
仅允许导入xls、xlsx格式文件。
</span>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
</div>
</div>
...
...
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