Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
web-purchase
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
张冬
web-purchase
Commits
861ae640
Commit
861ae640
authored
Oct 24, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
编辑
parent
a64b6047
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
737 additions
and
645 deletions
+737
-645
bid.js
src/api/supply/bid.js
+3
-2
fail.vue
...pages/purchaser/bid/bidEvaluation/projectManager/fail.vue
+49
-48
bidOpenhal.vue
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
+2
-11
tenderInformationlist.vue
src/pages/purchaser/bid/bidStage/tenderInformationlist.vue
+4
-0
evaluationList.vue
...s/supply/bid/joinProject/bidEvaluation/evaluationList.vue
+34
-32
bidOpenhal.vue
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
+42
-31
bidSubmit.vue
src/pages/supply/bid/joinProject/bidSubmit/bidSubmit.vue
+4
-1
workbench.vue
src/pages/supply/bid/joinProject/workbench.vue
+2
-13
seePrice.vue
src/pages/supply/bid/signupOnline/seePrice.vue
+11
-1
informationEdit.vue
src/pages/supply/organization/informationEdit.vue
+573
-228
informationSee.vue
src/pages/supply/organization/informationSee.vue
+13
-278
No files found.
src/api/supply/bid.js
View file @
861ae640
...
@@ -212,10 +212,11 @@ export function makeFile(data) {
...
@@ -212,10 +212,11 @@ export function makeFile(data) {
})
})
}
}
// 撤回投标文件
// 撤回投标文件
export
function
revocationBidbFile
(
bidFileId
)
{
export
function
revocationBidbFile
(
params
)
{
return
request
({
return
request
({
url
:
`tender/revocation/bidbFile/
${
bidFileId
}
`
,
url
:
"tender/revocation/bidbFile"
,
method
:
'put'
,
method
:
'put'
,
params
:
params
})
})
}
}
...
...
src/pages/purchaser/bid/bidEvaluation/projectManager/fail.vue
View file @
861ae640
...
@@ -8,20 +8,20 @@
...
@@ -8,20 +8,20 @@
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"message"
>
<div
class=
"message"
>
<div
class=
"flex-between"
>
<div
class=
"flex-between"
>
<div>
项目编号:ZBXM3456789456789
</div>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:大楼翻新
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
</div>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
评价报告
</div>
<div
class=
"adjustment"
>
评价报告
</div>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传一个文件,每个文件不超过100M。"
@
input=
"getfile"
></Upload>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传一个文件,每个文件不超过100M。"
@
input=
"getfile"
></Upload>
</div>
</div>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"adjustment
"
>
评标报告扫描件
</div>
<div
class=
"adjustment
"
>
评标报告扫描件
</div>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传5个文件,每个文件不超过100M。"
@
input=
"getfile1"
></Upload>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传5个文件,每个文件不超过100M。"
@
input=
"getfile1"
></Upload>
</div>
</div>
<div
class=
"flex-center"
style=
"margin:
100px 0"
>
<div
class=
"flex-center"
style=
"margin:
100px 0"
>
<el-button>
取消
</el-button>
<el-button>
取消
</el-button>
<el-button
type=
"primary"
style=
"margin-left: 20px;
"
@
click=
"submitData"
>
提交
</el-button>
<el-button
type=
"primary"
style=
"margin-left: 20px
"
@
click=
"submitData"
>
提交
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -29,10 +29,9 @@
...
@@ -29,10 +29,9 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
bidFailed
}
from
'@api/purchaser/bid'
;
import
{
bidFailed
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
Upload
from
'@components/Upload/Upload.vue'
;
import
Upload
from
'@components/Upload/Upload.vue'
export
default
{
export
default
{
components
:
{
components
:
{
dataBreadcrumb
,
dataBreadcrumb
,
...
@@ -41,67 +40,69 @@ export default {
...
@@ -41,67 +40,69 @@ export default {
data
()
{
data
()
{
return
{
return
{
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
file
:[],
file
:
[],
file1
:[]
file1
:
[],
}
projectName
:
''
,
projectCode
:
''
};
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
},
},
methods
:
{
methods
:
{
//
//
getfile
(
val
)
{
getfile
(
val
)
{
this
.
file
=
val
this
.
file
=
val
;
},
},
getfile1
(
val
)
{
getfile1
(
val
)
{
this
.
file1
=
val
this
.
file1
=
val
;
},
},
// 提交
// 提交
async
submitData
()
{
async
submitData
()
{
try
{
try
{
let
message
=
{}
let
message
=
{};
let
filePOList
=
[];
let
filePOList
=
[];
let
file
=
this
.
file
;
let
file
=
this
.
file
;
let
file1
=
this
.
file1
;
let
file1
=
this
.
file1
;
for
(
let
item
of
file
){
for
(
let
item
of
file
)
{
item
.
type
=
1
item
.
type
=
1
;
};
}
for
(
let
item1
of
file1
){
for
(
let
item1
of
file1
)
{
item1
.
type
=
2
item1
.
type
=
2
;
};
}
filePOList
=
file
.
concat
(
file1
)
filePOList
=
file
.
concat
(
file1
);
message
.
filePOList
=
filePOList
;
message
.
filePOList
=
filePOList
;
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
message
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
const
{
code
,
msg
}
=
await
bidFailed
(
message
);
code
,
if
(
code
==
200
)
{
msg
}
=
await
bidFailed
(
message
)
if
(
code
==
200
){
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
type
:
'success'
,
type
:
'success'
,
duration
:
1500
duration
:
1500
})
});
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
this
.
$router
.
go
(
-
1
);
},
1500
)
},
1500
);
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
)
console
.
log
(
e
);
}
}
}
}
}
}
};
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.message
{
.message
{
width
:
50%
;
width
:
50%
;
margin
:
50px
auto
margin
:
50px
auto
;
}
}
.message
>
div
{
.message
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.adjustment
{
.adjustment
{
width
:
120px
;
width
:
120px
;
text-align
:
center
;
text-align
:
center
;
}
}
...
...
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
View file @
861ae640
...
@@ -651,6 +651,7 @@
...
@@ -651,6 +651,7 @@
// })
// })
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
window
.
onbeforeunload
=
function
()
{
window
.
onbeforeunload
=
function
()
{
console
.
log
(
"窗口关闭"
)
this
.
websocket
.
close
()
this
.
websocket
.
close
()
}
}
},
},
...
@@ -660,22 +661,12 @@
...
@@ -660,22 +661,12 @@
this
.
websocket
.
send
(
content
)
this
.
websocket
.
send
(
content
)
}
}
},
},
// watch: {
// chatlog() {
// console.log("chatlog change");
// this.$nextTick(() => {
// var container = this.$el.querySelector("#chatContainer");
// console.log(container);
// container.scrollTop = container.scrollHeight;
// })
// // document.getElementById('chatContainer').scrollTop = document.getElementById('chatContainer').scrollHeight+150;
// }
// },
destroyed
()
{
destroyed
()
{
//清除定时器
//清除定时器
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer1
);
clearInterval
(
this
.
timer1
);
console
.
log
(
"定时器关闭"
)
this
.
websocket
.
close
()
this
.
websocket
.
close
()
}
}
}
}
...
...
src/pages/purchaser/bid/bidStage/tenderInformationlist.vue
View file @
861ae640
...
@@ -38,6 +38,10 @@ export default {
...
@@ -38,6 +38,10 @@ export default {
{
{
label
:
'单位名称'
,
label
:
'单位名称'
,
prop
:
'companyName'
prop
:
'companyName'
},
{
label
:
'联系人'
,
prop
:
'contactsName'
},
},
{
{
label
:
'手机'
,
label
:
'手机'
,
...
...
src/pages/supply/bid/joinProject/bidEvaluation/evaluationList.vue
View file @
861ae640
...
@@ -11,15 +11,18 @@
...
@@ -11,15 +11,18 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</dataTable>
</dataTable>
<div
class=
"centerButton"
>
<el-button
@
click=
"back"
>
返回
</el-button>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
clarifyInquirylist
}
from
'@api/supply/bid'
import
{
clarifyInquirylist
}
from
'@api/supply/bid'
;
import
dataTable
from
'@components/nopageTable.vue'
import
dataTable
from
'@components/nopageTable.vue'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
changeNav
from
'@components/changeNav.vue'
import
changeNav
from
'@components/changeNav.vue'
;
export
default
{
export
default
{
name
:
'bidingList'
,
name
:
'bidingList'
,
components
:
{
components
:
{
...
@@ -29,10 +32,11 @@ export default {
...
@@ -29,10 +32,11 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
navs
:[
"评标问题澄清"
],
navs
:
[
'评标问题澄清'
],
breads
:
[
'投标管理'
,
'我参与的项目'
,
'工作台 '
],
breads
:
[
'投标管理'
,
'我参与的项目'
,
'工作台 '
],
tableData
:
[],
tableData
:
[],
columns
:
[{
columns
:
[
{
label
:
'澄清标题'
,
label
:
'澄清标题'
,
prop
:
'title'
prop
:
'title'
},
},
...
@@ -52,49 +56,47 @@ export default {
...
@@ -52,49 +56,47 @@ export default {
{
{
slot
:
'operate'
slot
:
'operate'
}
}
],
// 操作列
]
// 操作列
};
}
},
},
methods
:
{
methods
:
{
back
()
{
this
.
$router
.
go
(
-
1
);
},
reply
(
questionId
)
{
reply
(
questionId
)
{
this
.
$router
.
push
(
`/supply/bid/joinProject/bidEvaluation/reply?questionId=
${
questionId
}
`
)
this
.
$router
.
push
(
`/supply/bid/joinProject/bidEvaluation/reply?questionId=
${
questionId
}
`
);
},
},
see
(
row
)
{
see
(
row
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
"/supply/bid/joinProject/bidEvaluation/see"
,
path
:
'/supply/bid/joinProject/bidEvaluation/see'
,
query
:
{
query
:
{
questionId
:
row
.
questionId
,
questionId
:
row
.
questionId
,
replyId
:
row
.
replyId
replyId
:
row
.
replyId
}
}
})
});
},
},
async
getclarifyInquirylist
()
{
async
getclarifyInquirylist
()
{
let
message
=
{}
let
message
=
{};
message
.
companyId
=
localStorage
.
getItem
(
"companyId"
)
message
.
companyId
=
localStorage
.
getItem
(
'companyId'
);
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
message
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
const
{
data
,
code
}
=
await
clarifyInquirylist
(
message
);
data
,
if
(
code
==
200
)
{
code
for
(
let
item
of
data
)
{
}
=
await
clarifyInquirylist
(
message
)
if
(
item
.
replyId
)
{
if
(
code
==
200
){
item
.
state
=
'已回复'
;
for
(
let
item
of
data
){
}
else
{
if
(
item
.
replyId
){
item
.
state
=
'未回复'
;
item
.
state
=
"已回复"
}
else
{
item
.
state
=
"未回复"
}
}
}
}
this
.
tableData
=
data
this
.
tableData
=
data
;
}
}
}
}
},
},
created
()
{
created
()
{
this
.
getclarifyInquirylist
();
this
.
getclarifyInquirylist
();
}
}
}
}
;
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
</
style
>
</
style
>
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
View file @
861ae640
...
@@ -279,46 +279,49 @@ export default {
...
@@ -279,46 +279,49 @@ export default {
},
},
// websocket
// websocket
createWebSocket
()
{
createWebSocket
()
{
let
token
=
localStorage
.
getItem
(
'token'
);
let
token
=
localStorage
.
getItem
(
"token"
)
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
this
.
websocket
=
new
WebSocket
(
`ws:
${
openUrl
}
/webSocket/
${
projectId
}
/
${
token
}
`
);
this
.
websocket
=
new
WebSocket
(
`ws:
${
openUrl
}
/webSocket/
${
projectId
}
/
${
token
}
`
)
// this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId + "/" + token)
// this.websocket = new WebSocket('ws://60.205.251.80:8085/webSocket/' + projectId +"/"+token )
// 连接成功时
// 连接成功时
this
.
websocket
.
onopen
=
()
=>
{};
this
.
websocket
.
onopen
=
()
=>
{}
this
.
websocket
.
onmessage
=
(
event
)
=>
{
this
.
websocket
.
onmessage
=
event
=>
{
// 后端发送的消息在event.data中
// 后端发送的消息在event.data中
let
data
=
JSON
.
parse
(
event
.
data
);
let
data
=
JSON
.
parse
(
event
.
data
);
console
.
log
(
data
);
console
.
log
(
data
)
if
(
data
.
type
==
1
)
{
if
(
data
.
type
==
1
)
{
if
(
data
.
userId
==
this
.
myId
)
{
if
(
data
.
userId
==
this
.
myId
)
{
data
.
mine
=
true
;
data
.
mine
=
true
}
else
{
}
else
{
data
.
mine
=
false
;
data
.
mine
=
false
}
}
const
msgObj
=
{
const
msgObj
=
{
date
:
data
.
time
,
"date"
:
data
.
time
,
text
:
{
"text"
:
{
text
:
data
.
chatContent
"text"
:
data
.
chatContent
},
},
mine
:
data
.
mine
,
"mine"
:
data
.
mine
,
name
:
data
.
name
,
"name"
:
data
.
name
,
img
:
'http://hsz1997.oss-cn-beijing.aliyuncs.com/img/1603292025286_67c099c6tou.jpg'
"img"
:
"http://hsz1997.oss-cn-beijing.aliyuncs.com/img/1603292025286_67c099c6tou.jpg"
};
}
this
.
dialogueList
.
push
(
msgObj
);
this
.
dialogueList
.
push
(
msgObj
)
}
else
{
}
else
{
this
.
halList
.
push
(
data
);
this
.
halList
.
push
(
data
)
}
}
this
.
websocket
.
onclose
=
function
()
{
console
.
log
(
'关闭了'
)
}
}
};
this
.
websocket
.
onclose
=
function
()
{
console
.
log
(
'关闭了'
);
};
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
(
window
.
onbeforeunload
=
function
()
{
this
.
websocket
.
close
();
}),
// 路由跳转时结束websocket链接
// 路由跳转时结束websocket链接
this
.
$router
.
afterEach
(
function
()
{
// this.$router.afterEach(function() {
this
.
websocket
.
close
();
// this.websocket.close()
});
// })
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
window
.
onbeforeunload
=
function
()
{
console
.
log
(
"窗口关闭"
)
this
.
websocket
.
close
()
}
},
},
bindEnter
()
{
bindEnter
()
{
const
content
=
this
.
content
;
const
content
=
this
.
content
;
...
@@ -377,7 +380,14 @@ export default {
...
@@ -377,7 +380,14 @@ export default {
this
.
storagedecodeTime
=
Number
(
data
.
decodeTime
);
this
.
storagedecodeTime
=
Number
(
data
.
decodeTime
);
this
.
storagesignatureTime
=
Number
(
data
.
signatureTime
);
this
.
storagesignatureTime
=
Number
(
data
.
signatureTime
);
}
else
{
}
else
{
this
.
$message
.
error
(
msg
);
this
.
$message
({
message
:
msg
,
type
:
'error'
,
duration
:
3000
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
3000
)
}
}
var
{
data
,
code
}
=
await
signdetail
(
projectId
);
var
{
data
,
code
}
=
await
signdetail
(
projectId
);
if
(
code
==
200
)
{
if
(
code
==
200
)
{
...
@@ -435,6 +445,7 @@ export default {
...
@@ -435,6 +445,7 @@ export default {
// },
// },
destroyed
()
{
destroyed
()
{
//清除定时器
//清除定时器
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer1
);
clearInterval
(
this
.
timer1
);
this
.
websocket
.
close
();
this
.
websocket
.
close
();
}
}
...
...
src/pages/supply/bid/joinProject/bidSubmit/bidSubmit.vue
View file @
861ae640
...
@@ -198,10 +198,13 @@
...
@@ -198,10 +198,13 @@
// 撤回
// 撤回
async
withdraw
()
{
async
withdraw
()
{
try
{
try
{
let
message
=
{}
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
message
.
bidFileId
=
this
.
form
.
bidbookId
const
{
const
{
msg
,
msg
,
code
code
}
=
await
revocationBidbFile
(
this
.
form
.
bidbookId
)
}
=
await
revocationBidbFile
(
message
)
if
(
code
==
200
)
{
if
(
code
==
200
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
...
...
src/pages/supply/bid/joinProject/workbench.vue
View file @
861ae640
...
@@ -216,9 +216,9 @@ export default {
...
@@ -216,9 +216,9 @@ export default {
newlabel
=
label
;
newlabel
=
label
;
}
else
if
(
status
==
1
)
{
}
else
if
(
status
==
1
)
{
newlabel
=
label
;
newlabel
=
label
;
newlabel
=
label
.
replace
(
'
发布
'
,
'编辑'
);
newlabel
=
label
.
replace
(
'
递交
'
,
'编辑'
);
}
else
{
}
else
{
newlabel
=
label
.
replace
(
'
发布
'
,
'查看'
);
newlabel
=
label
.
replace
(
'
递交
'
,
'查看'
);
}
}
return
newlabel
;
return
newlabel
;
},
},
...
@@ -239,23 +239,12 @@ export default {
...
@@ -239,23 +239,12 @@ export default {
for
(
let
item2
of
data
)
{
for
(
let
item2
of
data
)
{
if
(
item1
.
id
==
item2
.
buttonId
)
{
if
(
item1
.
id
==
item2
.
buttonId
)
{
item1
.
bright
=
true
;
item1
.
bright
=
true
;
if
(
item2
.
buttonId
==
4
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/reviewed/SeeinquiryAnnouncement'
;
item1
.
label
=
'查看询价公告'
;
}
else
if
(
item2
.
buttonId
==
5
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/reviewed/SeetenderAnnouncement'
;
item1
.
label
=
'查看招标公告'
;
}
else
if
(
item2
.
buttonId
==
9
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/bidStage/seeBidSet'
;
item1
.
label
=
'开标设置查看'
;
}
else
{
item1
.
url
=
this
.
geturl
(
item1
.
url
,
item2
.
status
);
item1
.
url
=
this
.
geturl
(
item1
.
url
,
item2
.
status
);
item1
.
label
=
this
.
getlabel
(
item1
.
label
,
item2
.
status
);
item1
.
label
=
this
.
getlabel
(
item1
.
label
,
item2
.
status
);
}
}
}
}
}
}
}
}
}
this
.
remark
=
data
[
0
].
remark
;
this
.
remark
=
data
[
0
].
remark
;
}
else
{
}
else
{
this
.
$message
.
error
(
msg
);
this
.
$message
.
error
(
msg
);
...
...
src/pages/supply/bid/signupOnline/seePrice.vue
View file @
861ae640
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
</slot>
</slot>
</priceDetail>
</priceDetail>
<!-- 报价弹窗 -->
<!-- 报价弹窗 -->
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"报价"
width=
"
50%
"
>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"报价"
width=
"
1000px
"
>
<dataTable
:table-data=
"commoditylist"
:columns=
"commoditycolumns"
>
<dataTable
:table-data=
"commoditylist"
:columns=
"commoditycolumns"
>
<el-table-column
slot=
"operate"
label=
"报价"
align=
"center"
fixed=
"right"
width=
"150"
>
<el-table-column
slot=
"operate"
label=
"报价"
align=
"center"
fixed=
"right"
width=
"150"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
@@ -230,4 +230,14 @@ export default {
...
@@ -230,4 +230,14 @@ export default {
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.el-table
::before
{
z-index
:
inherit
;
}
.table-fixed
>
.el-table__fixed-right
{
height
:
100%
!important
;
}
</
style
>
</
style
>
src/pages/supply/organization/informationEdit.vue
View file @
861ae640
...
@@ -7,354 +7,699 @@
...
@@ -7,354 +7,699 @@
</div>
</div>
<div
class=
"othercontent"
>
<div
class=
"othercontent"
>
<div>
<div>
<div
class=
"describe "
>
<div
class=
"describe"
>
基本信息
</div>
基本信息
<div
style=
"margin-left: 30px"
>
</div>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
inline
>
<div>
<el-form
ref=
"perfectForm"
:model=
"perfectForm"
:rules=
"rules"
label-width=
"120px"
inline
>
<el-form-item
label=
"单位名称"
prop=
"companyName"
class=
"item"
>
<el-form-item
label=
"单位名称"
prop=
"companyName"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.companyName"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.companyName"
placeholder=
"请输入单位名称"
style=
"width: 240px"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"注册角色"
prop=
"role"
class=
"item"
>
<el-form-item
label=
"注册角色"
prop=
"type"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.role"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-select
v-model=
"form.type"
placeholder=
"请输入选择"
disabled
>
<el-option
label=
"采购商"
:value=
"1"
></el-option>
<el-option
label=
"供应商"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"法人姓名"
prop=
"legalPerson"
class=
"item"
>
<el-form-item
label=
"法人姓名"
prop=
"legalPersonName"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.legalPerson"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.legalPersonName"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"法人电话"
prop=
"personPhone"
class=
"item"
>
<el-form-item
label=
"法人电话"
prop=
"legalPersonPhone"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.personPhone"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.legalPersonPhone"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"11"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"统一社会信用代码"
prop=
"creditCode"
class=
"item"
>
<el-form-item
label=
"统一社会信用代码"
prop=
"socialCode"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.creditCode"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.socialCode"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"18"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"单位性质"
prop=
"nature"
class=
"item"
>
<el-form-item
label=
"单位性质"
prop=
"companyNature"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.nature"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-select
v-model=
"form.companyNature"
placeholder=
"请选择"
>
<el-option
v-for=
"item in companyNatures"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"单位所在地"
prop=
"companyLocal"
class=
"item"
>
<el-form-item
label=
"单位所在地"
prop=
"location"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.companyLocal"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.location"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"行业类型"
prop=
"type"
class=
"item"
>
<el-form-item
label=
"行业类型"
prop=
"industryType"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.type"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-select
v-model=
"form.industryType"
placeholder=
"请选择"
>
<el-option
v-for=
"item in belongTypes"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"开户银行名称"
prop=
"bankName"
class=
"item"
>
<el-form-item
label=
"资信等级"
prop=
"CreditRating"
class=
"item"
>
<el-input
<el-input
v-model
.
trim=
"perfectForm.CreditRating"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
v-model=
"form.bankName"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"开户银行名称"
prop=
"bank"
class=
"item"
>
<el-form-item
label=
"结算账号"
prop=
"bankAccount"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.bank"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.bankAccount"
placeholder=
"请输入"
style=
"width: 240px"
minlength=
"12"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"开户行行号"
prop=
"bankNumber"
class=
"item"
>
<el-form-item
label=
"结算账号名"
prop=
"bankAccountName"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.bankNumber"
placeholder=
"请输入"
style=
"width:240px"
></el-input>
<el-input
v-model=
"form.bankAccountName"
placeholder=
"请输入"
style=
"width: 240px"
minlength=
"2"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"注册资本(万元)"
prop=
"capital"
class=
"item"
>
<el-form-item
label=
"注册资本(万元)"
prop=
"registeredCapital"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.capital"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.registeredCapital"
placeholder=
"请输入"
style=
"width: 240px"
maxlength=
"10"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系地址"
prop=
"contactAddress"
class=
"item"
>
<el-form-item
label=
"联系地址"
prop=
"contactAddress"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.contactAddress"
placeholder=
"请输入"
style=
"width:240px"
maxlength=
"30"
></el-input>
<el-input
v-model=
"form.contactAddress"
placeholder=
"请输入"
style=
"width: 240px"
minlength=
"4"
maxlength=
"30"
@
keyup
.
native=
"$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"管理员"
prop=
"admin
"
class=
"item"
>
<el-form-item
label=
"管理员
"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.admin"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
<el-input
v-model
.
trim=
"form.contacts.userName"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系电话"
prop=
"contactNumber
"
class=
"item"
>
<el-form-item
label=
"联系电话
"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.contactNumber"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
<el-input
v-model
.
trim=
"form.contacts.phoneNumber"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"身份证"
prop=
"id
"
class=
"item"
>
<el-form-item
label=
"身份证
"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.id"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
<el-input
v-model
.
trim=
"form.contacts.idNumber"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"电子邮箱"
prop=
"id
"
class=
"item"
>
<el-form-item
label=
"电子邮箱
"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.email"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
<el-input
v-model
.
trim=
"form.contacts.email"
disabled
style=
"width:
240px"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
<div>
<div>
<el-form-item
label=
"经营范围"
prop=
"businessScope"
class=
"item"
>
<el-form-item
label=
"经营范围"
prop=
"businessScope"
class=
"item"
>
<el-input
v-model
.
trim=
"perfectForm.businessScope"
:rows=
"4"
type=
"textarea"
placeholder=
"请输入内容"
style=
"width:600px"
maxlength=
"300"
></el-input>
<el-input
v-model
.
trim=
"form.businessScope"
:rows=
"4"
type=
"textarea"
placeholder=
"请输入内容"
style=
"width: 600px"
maxlength=
"300"
></el-input>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"margin-left"
>
<div
>
<el-form-item
label=
"法人身份证正反面"
prop=
"identity"
class=
"item"
>
<el-form-item
label=
"法人身份证正反面"
prop=
"identity"
class=
"item"
>
<el-upload
<imgUpload
:limit=
"1"
:max=
"10"
@
input=
"getJustimg"
:fileList=
"justimg"
tip=
""
></imgUpload>
:show-file-list=
"false"
<imgUpload
:limit=
"1"
:max=
"10"
@
input=
"getBackimg"
:fileList=
"backimg"
tip=
""
></imgUpload>
:on-success=
"justSuccess"
:before-upload=
"beforejust"
class=
"avatar-uploader"
action=
"https://jsonplaceholder.typicode.com/posts/"
>
<img
v-if=
"justimg"
:src=
"justimg"
class=
"avatar"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
<el-upload
:show-file-list=
"false"
:on-success=
"backSuccess"
:before-upload=
"beforeback"
style=
"margin-top: 10px;"
class=
"avatar-uploader"
action=
"https://jsonplaceholder.typicode.com/posts/"
>
<img
v-if=
"backimg"
:src=
"backimg"
class=
"avatar"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"margin-left"
>
<div>
<el-form-item
label=
"三证合一扫描件"
prop=
"card"
class=
"item"
>
<el-form-item
label=
"三证合一扫描件"
prop=
"cardimg"
class=
"item"
>
<el-upload
<imgUpload
:show-file-list=
"false"
:limit=
"3"
:on-success=
"justSuccess"
:max=
"10"
:before-upload=
"beforejust"
@
input=
"getCardimg"
class=
"avatar-uploader"
tip=
"只可上传三张图片,大小不能超过10MB,此项为必填项"
action=
"https://jsonplaceholder.typicode.com/posts/"
>
:fileList=
"cardimg"
<img
v-if=
"justimg"
:src=
"justimg"
class=
"avatar"
>
></imgUpload>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
<div
class=
"t1"
style=
"color:#666666;margin-top:10px"
>
(只可上传三张图片,大小不能超过10MB,此项为必填项)
</div>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"margin-left"
>
<el-form-item
prop=
"file"
class=
"item"
margin-left=
"-1.8rem"
>
<el-form-item
prop=
"file"
class=
"item"
margin-left=
"-180px"
>
<div
class=
"else"
>
<div
class=
"else"
>
<div>
其他资料
<span
class=
"red"
>
用于上传其他证明性材料如法人变更证明,报名资料请勿在此上传,单个附件建议不超过2M。
</span>
</div>
<div>
其他资料
<span
class=
"red"
>
用于上传其他证明性材料如法人变更证明,报名资料请勿在此上传,单个附件建议不超过2M。
</span
>
</div>
</div>
<el-upload
:on-preview=
"handlePreview"
:on-pxove=
"handlepxove"
:file-list=
"fileList"
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
list-type=
"picture"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<div
slot=
"tip"
>
支持扩展名:.rar .zip .doc .docx .pdf .jpg...
</div>
</el-upload>
</el-form-item>
</div>
</div>
<Upload
:limit=
"5"
:max=
"10"
@
input=
"getfile"
:fileList=
"files"
tip=
"最多上传五份文件,每份不超过10M"
></Upload>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
</div>
</div>
<div
class=
"bottomButton"
>
<div
class=
"bottomButton"
>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogFormVisible=true
"
>
提交审核
</el-button>
<el-button
type=
"primary"
@
click=
"submit
"
>
提交审核
</el-button>
</div>
</div>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"提交审核"
>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"提交审核"
>
<el-form
ref=
"dialogform"
:model=
"form
"
:rules=
"rules"
>
<el-form
ref=
"dialogform"
:model=
"form1
"
:rules=
"rules"
>
<el-form-item
label=
"修改位置"
prop=
"modifyLocation"
class=
"item"
>
<el-form-item
label=
"修改位置"
prop=
"modifyLocation"
class=
"item"
>
<el-input
v-model
.
trim=
"form.modifyLocation"
style=
"width:
240px"
maxlength=
"30"
></el-input>
<el-input
v-model
.
trim=
"form.modifyLocation"
style=
"width:
240px"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"backButton"
>
<div
slot=
"footer"
class=
"backButton"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"sure"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"sure"
>
确 定
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
{
companyDetail
,
industryList
,
companyNatureList
}
from
'@api/common/list'
;
import
{
companyedit
}
from
'@api/purchaser/organization'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
Upload
from
'@components/Upload/Upload.vue'
;
import
imgUpload
from
'@components/Upload/imgUpload.vue'
;
export
default
{
export
default
{
components
:
{
components
:
{
dataBreadcrumb
dataBreadcrumb
,
Upload
,
imgUpload
},
},
data
()
{
data
()
{
// 测试省份
// 测试省份
let
islocal
=
(
rule
,
value
,
callback
)
=>
{
let
islocal
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
form
.
province
&&
this
.
form
.
county
&&
this
.
form
.
city
)
{
console
.
log
(
'1'
);
callback
(
new
Error
(
'请选择城市'
))
if
(
!
this
.
form
.
provinceId
)
{
callback
(
new
Error
(
'请选择省份'
));
}
else
if
(
!
this
.
form
.
cityId
)
{
callback
(
new
Error
(
'请选择市'
));
}
else
if
(
!
this
.
form
.
districtId
)
{
callback
(
new
Error
(
'请选择区'
));
}
else
{
callback
();
}
};
// 测试正反图片是否上传
let
checkidentity
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
justimg
.
length
===
0
)
{
callback
(
new
Error
(
'请上传正面照片'
));
}
else
if
(
this
.
backimg
.
length
===
0
)
{
callback
(
new
Error
(
'请上传反面照片'
));
}
else
{
callback
();
}
};
// 测试三证合一是否上传
let
checkcardimg
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
cardimg
.
length
===
0
)
{
callback
(
new
Error
(
'请上传三证合一'
));
}
else
{
callback
();
}
};
let
checkPhone
=
async
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'手机号不能为空'
));
}
else
{
const
reg
=
/^1
[
3|4|5|7|8
][
0-9
]\d{8}
$/
;
console
.
log
(
reg
.
test
(
value
));
if
(
reg
.
test
(
value
))
{
callback
();
}
else
{
return
callback
(
new
Error
(
'请输入正确的手机号'
));
}
}
};
//名字校验
let
validateRealName
=
(
rule
,
value
,
callback
)
=>
{
const
realnameReg
=
/^
[\u
4E00-
\u
9FA5
]{1,30}
$/
;
if
(
!
realnameReg
.
test
(
value
))
{
return
callback
(
new
Error
(
'您的输入有误,请重新输入!'
));
}
else
{
callback
();
}
};
//身份证号校验
let
validateRealId
=
(
rule
,
value
,
callback
)
=>
{
const
realnameReg
=
/
(
^
\d{15}
$
)
|
(
^
\d{17}([
0-9
]
|X|x
)
$
)
/
;
if
(
!
realnameReg
.
test
(
value
))
{
return
callback
(
new
Error
(
'您的输入有误,请重新输入!'
));
}
else
{
callback
();
}
};
//邮箱号校验
let
validateEmailId
=
(
rule
,
value
,
callback
)
=>
{
const
realnameReg
=
/^
([
a-zA-Z0-9
]
+
[
_|
\_
|
\.]?)
*
[
a-zA-Z0-9
]
+@
([
a-zA-Z0-9
]
+
[
_|
\_
|
\.]?)
*
[
a-zA-Z0-9
]
+
\.[
a-zA-Z
]{2,3}
$/
;
if
(
!
realnameReg
.
test
(
value
))
{
return
callback
(
new
Error
(
'您的输入有误,请重新输入!'
));
}
else
{
}
else
{
callback
()
callback
();
}
}
};
//结算账号校验
let
validateAccount
=
(
rule
,
value
,
callback
)
=>
{
const
realnameReg
=
/^
([
1-9
]{1})(\d{14}
|
\d{17})
$/
;
if
(
!
realnameReg
.
test
(
value
))
{
return
callback
(
new
Error
(
'您的输入有误,请重新输入!'
));
}
else
{
callback
();
}
}
};
return
{
return
{
files
:
[],
justimg
:
[],
backimg
:
[],
cardimg
:
[],
dialogFormVisible
:
false
,
dialogFormVisible
:
false
,
breads
:
[
'组织管理'
,
'单位信息'
],
breads
:
[
'组织管理'
,
'单位信息'
],
perfectForm
:
{
form
:
{},
personPhone
:
''
,
form1
:
{
personName
:
''
,
companyLocal
:
''
,
grade
:
''
,
bankCard
:
''
,
contactPhone
:
''
,
creditCode
:
''
,
nature
:
''
,
type
:
''
,
bank
:
''
,
capital
:
''
,
management
:
''
,
bankNumber
:
''
,
contactAddress
:
''
,
admin
:
''
,
contactNumber
:
''
,
id
:
''
,
email
:
''
,
businessScope
:
''
},
form
:
{
modifyLocation
:
''
modifyLocation
:
''
},
},
rules
:
{
rules
:
{
identity
:
[
companyName
:
[
{
required
:
true
}
{
required
:
true
,
message
:
'请输入单位名称'
,
trigger
:
'blur'
},
{
validator
:
validateRealName
}
],
],
card
:
[
local
:
[
{
required
:
true
}
{
required
:
true
,
validator
:
islocal
,
trigger
:
'blur'
}
],
],
type
:
[
businessScope
:
[{
{
required
:
true
,
message
:
'请选择角色'
,
trigger
:
'blur'
}
],
name
:
[
{
required
:
true
,
message
:
'请输入管理者姓名'
,
trigger
:
'blur'
},
{
validator
:
validateRealName
}
],
idNumber
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入身份证
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
legalPerson
:
[{
{
validator
:
validateRealId
}
],
password
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入密码
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
personPhone
:
[{
{
pattern
:
/^
(?![
0-9
]
+$
)(?![
a-zA-Z
]
+$
)[
0-9A-Za-z
]{8,16}
$/
,
message
:
'密码需由8-16位数字字母组合'
}
],
email
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入电子邮箱
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
creditCode
:
[{
{
validator
:
validateEmailId
}
],
phonenumber
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入正确的验证码
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
type
:
[{
{
pattern
:
/^1
[
0-9
]{10}
$/
,
message
:
'你的输入有误,请重新输入!'
}
],
code
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入验证码
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
}
CreditRating
:
[{
],
phonecode
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入短信验证码
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
}
bank
:
[{
],
legalPersonPhone
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入法人电话
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
bankNumber
:
[{
{
pattern
:
/^1
[
0-9
]{10}
$/
,
message
:
'你的输入有误,请重新输入!'
}
],
legalPersonName
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入法人姓名
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
capital
:
[{
{
validator
:
validateRealName
}
],
location
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入单位所在地
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
contactAddress
:
[{
{
validator
:
validateRealName
}
],
bankAccount
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入
'
,
message
:
'请输入结算账号
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
admin
:
[{
{
required
:
true
validator
:
validateAccount
}],
}
contactNumber
:
[{
],
required
:
true
bankAccountName
:
[
}],
{
id
:
[{
required
:
true
}],
email
:
[{
required
:
true
}],
modifyLocation
:
[{
required
:
true
,
required
:
true
,
message
:
'请输入修改位置
'
,
message
:
'请输入结算账号名
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
companyName
:
[{
{
validator
:
validateRealName
}
],
contactAddress
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入单位名称
'
,
message
:
'请输入联系地址
'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
local
:
[{
{
validator
:
validateRealName
}
],
socialCode
:
[
{
required
:
true
,
required
:
true
,
validator
:
islocal
,
message
:
'请输入社会信用码'
,
trigger
:
'blur'
},
{
pattern
:
/^
[
0-9A-HJ-NPQRTUWXY
]{2}\d{6}[
0-9A-HJ-NPQRTUWXY
]{10}
$/
,
message
:
'您的输入有误,请重新输入!'
}
],
companyNature
:
[
{
required
:
true
,
message
:
'请输入行业类型'
,
trigger
:
'blur'
}
],
industryType
:
[
{
required
:
true
,
message
:
'请选择行业类型'
,
trigger
:
'blur'
}
],
bankName
:
[
{
required
:
true
,
message
:
'开户银行名称'
,
trigger
:
'blur'
trigger
:
'blur'
}],
},
role
:
[{
{
validator
:
validateRealName
}
],
registeredCapital
:
[
{
required
:
true
,
message
:
'请输入注册资本'
,
trigger
:
'blur'
}
/* {
pattern: /^[1-9]d*$/,
message: "你的输入有误,请重新输入!",
} */
],
businessScope
:
[
{
required
:
true
,
message
:
'请输入经营范围'
,
trigger
:
'blur'
},
{
pattern
:
/
[\u
4e00-
\u
9fa5
]
|
[\(\)\《\》\—
—
\;\,\。\“\”
\<
\>\!]
/
,
message
:
'你得输入有误,请重新输入!'
}
],
identity
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入角色'
,
validator
:
checkidentity
,
trigger
:
'blur'
trigger
:
'blur'
}]
}
}
],
cardimg
:
[
{
required
:
true
,
validator
:
checkcardimg
,
trigger
:
'blur'
}
}
]
},
companyNatures
:
[],
belongTypes
:
[]
};
},
},
methods
:
{
methods
:
{
cancel
()
{
cancel
()
{
this
.
$router
.
go
(
-
1
)
this
.
$router
.
go
(
-
1
);
},
},
sure
()
{
sure
()
{
this
.
dialogFormVisible
=
false
this
.
dialogFormVisible
=
false
;
},
// 获取单位性质
async
getCompanyNatureList
()
{
const
res
=
await
companyNatureList
();
this
.
companyNatures
=
res
;
},
//获取所属行业
async
getIndustryList
()
{
const
res
=
await
industryList
();
this
.
belongTypes
=
res
;
},
getJustimg
(
val
)
{
console
.
log
(
val
);
this
.
justimg
=
val
;
},
getBackimg
(
val
)
{
console
.
log
(
val
);
this
.
backimg
=
val
;
},
getCardimg
(
val
)
{
console
.
log
(
val
);
this
.
cardimg
=
val
;
},
getfile
(
val
)
{
console
.
log
(
val
);
this
.
files
=
val
;
},
async
getcompanyDetail
()
{
try
{
let
companyId
=
localStorage
.
getItem
(
'companyId'
);
const
{
data
,
code
}
=
await
companyDetail
(
companyId
);
if
(
code
===
200
)
{
for
(
let
item
of
data
.
fileList
)
{
item
.
name
=
item
.
fileName
;
item
.
url
=
item
.
fileUrl
;
if
(
item
.
type
==
1
)
{
this
.
justimg
.
push
(
item
);
}
else
if
(
item
.
type
==
2
)
{
this
.
backimg
.
push
(
item
);
}
else
if
(
item
.
type
==
3
)
{
this
.
cardimg
.
push
(
item
);
}
else
if
(
item
.
type
==
4
)
{
this
.
files
.
push
(
item
);
}
}
}
}
}
this
.
form
=
data
;
}
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
async
submit
()
{
try
{
const
valid
=
await
this
.
$refs
[
'form'
].
validate
();
if
(
valid
)
{
let
form
=
this
.
form
;
let
justimg
=
this
.
justimg
;
let
backimg
=
this
.
backimg
;
let
cardimg
=
this
.
cardimg
;
let
files
=
this
.
files
;
console
.
log
(
justimg
)
console
.
log
(
backimg
)
console
.
log
(
cardimg
)
console
.
log
(
files
)
justimg
.
forEach
(
function
(
item
,
index
)
{
item
.
type
=
1
;
});
backimg
.
forEach
(
function
(
item
,
index
)
{
item
.
type
=
2
;
});
cardimg
.
forEach
(
function
(
item
,
index
)
{
item
.
type
=
3
;
});
files
.
forEach
(
function
(
item
,
index
)
{
item
.
type
=
4
;
});
form
.
fileList
=
justimg
.
concat
(
backimg
).
concat
(
cardimg
).
concat
(
files
);
const
{
code
,
msg
}
=
await
companyedit
(
form
);
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
history
.
go
(
0
)
// this.$router.go(-1);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
}
}
catch
(
e
)
{}
}
},
created
()
{
this
.
getcompanyDetail
();
this
.
getIndustryList
();
this
.
getCompanyNatureList
();
}
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.upload
>
div
{
.upload
>
div
{
color
:
rgba
(
102
,
102
,
102
,
1
);
color
:
rgba
(
102
,
102
,
102
,
1
);
font-weight
:
400
;
font-weight
:
400
;
}
}
.label-form
{
.label-form
{
font-size
:
16px
;
font-size
:
16px
;
margin-top
:
30px
;
margin-top
:
30px
;
margin-bottom
:
1
opx
;
margin-bottom
:
1
opx
;
font-weight
:
400
;
font-weight
:
400
;
}
}
.company
h4
{
.company
h4
{
font-size
:
22px
;
font-size
:
22px
;
font-weight
:
bold
;
font-weight
:
bold
;
color
:
rgba
(
0
,
0
,
0
,
1
);
color
:
rgba
(
0
,
0
,
0
,
1
);
margin-top
:
62px
;
margin-top
:
62px
;
margin-bottom
:
50px
;
margin-bottom
:
50px
;
}
}
.el-input
{
.el-input
{
width
:
240px
;
width
:
240px
;
height
:
40px
;
height
:
40px
;
}
}
.nextButton
{
.nextButton
{
width
:
300px
;
width
:
300px
;
height
:
48px
;
height
:
48px
;
background
:
rgba
(
4
,
134
,
254
,
1
);
background
:
rgba
(
4
,
134
,
254
,
1
);
border-radius
:
.40
px
;
border-radius
:
0.4
px
;
line-height
:
46px
;
line-height
:
46px
;
margin-top
:
45px
;
margin-top
:
45px
;
margin-bottom
:
8px
;
margin-bottom
:
8px
;
color
:
#fff
color
:
#fff
;
}
}
.item
.el-form-item__label
{
.item
.el-form-item__label
{
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.password-tips
{
.password-tips
{
margin-bottom
:
0
;
margin-bottom
:
0
;
color
:
rgba
(
144
,
147
,
153
,
1
);
color
:
rgba
(
144
,
147
,
153
,
1
);
font-weight
:
400
;
font-weight
:
400
;
font-size
:
12px
;
font-size
:
12px
;
}
}
.avatar-uploader
.el-upload
{
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
border-radius
:
6px
;
cursor
:
pointer
;
cursor
:
pointer
;
position
:
relative
;
position
:
relative
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.avatar-uploader
.el-upload
:hover
{
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409EFF
;
border-color
:
#409eff
;
}
}
.avatar-uploader-icon
{
.avatar-uploader-icon
{
font-size
:
28px
;
font-size
:
28px
;
color
:
#8c939d
;
color
:
#8c939d
;
width
:
120px
;
width
:
120px
;
...
@@ -362,20 +707,20 @@ export default {
...
@@ -362,20 +707,20 @@ export default {
line-height
:
120px
;
line-height
:
120px
;
text-align
:
center
;
text-align
:
center
;
background
:
rgba
(
247
,
247
,
247
,
1
);
background
:
rgba
(
247
,
247
,
247
,
1
);
}
}
.avatar
{
.avatar
{
width
:
120px
;
width
:
120px
;
height
:
120px
;
height
:
120px
;
display
:
block
;
display
:
block
;
}
}
.getcode
,
.getcode
,
.getphonecode
{
.getphonecode
{
position
:
relative
;
position
:
relative
;
}
}
.getcode
>
.code
{
.getcode
>
.code
{
/*margin: 400px auto;*/
/*margin: 400px auto;*/
width
:
68px
;
width
:
68px
;
height
:
32px
;
height
:
32px
;
...
@@ -383,58 +728,58 @@ export default {
...
@@ -383,58 +728,58 @@ export default {
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
left
:
330px
;
left
:
330px
;
}
}
.getphonecode
>
.phonecode
{
.getphonecode
>
.phonecode
{
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
400
;
font-weight
:
400
;
color
:
rgba
(
51
,
136
,
255
,
1
);
color
:
rgba
(
51
,
136
,
255
,
1
);
position
:
absolute
;
position
:
absolute
;
top
:
13px
;
top
:
13px
;
left
:
400px
;
left
:
400px
;
}
}
.else
.red
{
.else
.red
{
color
:
#FF
6161
;
color
:
#ff
6161
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.perfect-head
{
.perfect-head
{
width
:
9px
;
width
:
9px
;
margin-top
:
66px
;
margin-top
:
66px
;
margin-bottom
:
37px
;
margin-bottom
:
37px
;
}
}
.perfect-head
>
div
>
text
{
.perfect-head
>
div
>
text
{
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.result
{
.result
{
width
:
100%
;
width
:
100%
;
height
:
300px
height
:
300px
;
}
}
.result
h4
{
.result
h4
{
font-size
:
30px
;
font-size
:
30px
;
font-weight
:
600
;
font-weight
:
600
;
color
:
rgba
(
75
,
193
,
103
,
1
);
color
:
rgba
(
75
,
193
,
103
,
1
);
margin-top
:
100px
;
margin-top
:
100px
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.result
h5
{
.result
h5
{
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
400
;
font-weight
:
400
;
color
:
rgba
(
128
,
128
,
128
,
1
);
color
:
rgba
(
128
,
128
,
128
,
1
);
line-height
:
30px
;
line-height
:
30px
;
text-align
:
center
;
text-align
:
center
;
}
}
.othercontent
>
div
{
.othercontent
>
div
{
background
:
#fff
;
background
:
#fff
;
}
}
.margin-left
{
.margin-left
{
margin-left
:
30px
;
margin-left
:
30px
;
}
}
</
style
>
</
style
>
src/pages/supply/organization/informationSee.vue
View file @
861ae640
...
@@ -5,299 +5,34 @@
...
@@ -5,299 +5,34 @@
<h3>
查看
</h3>
<h3>
查看
</h3>
<div>
查看基本信息、企业资质文件
</div>
<div>
查看基本信息、企业资质文件
</div>
</div>
</div>
<div
class=
"detail-list"
>
<companyDetail></companyDetail>
<div>
<div
class=
"bottomButton"
>
<h5>
基本信息
</h5>
<el-button
@
click=
"edit"
>
编辑
</el-button>
<ul
class=
"flex"
>
<li>
<div>
单位名称
</div>
<div>
{{
detail
.
companyName
}}
</div>
</li>
<li>
<div>
注册角色
</div>
<div>
11
</div>
</li>
<li>
<div>
法人姓名
</div>
<div>
{{
detail
.
legalPersonName
}}
</div>
</li>
<li>
<div>
法人电话
</div>
<div>
11
</div>
</li>
<li>
<div>
统一社会信用代码
</div>
<div>
{{
detail
.
socialCode
}}
</div>
</li>
<li>
<div>
行政区域
</div>
<div>
{{
detail
.
companyName
}}
</div>
</li>
<li>
<div>
单位性质
</div>
<div>
{{
detail
.
companyNature
}}
</div>
</li>
<li>
<div>
单位所在地
</div>
<div>
{{
detail
.
location
}}
</div>
</li>
<li>
<div>
行业类型
</div>
<div>
222
</div>
</li>
<li>
<div>
开户银行名称
</div>
<div>
222
</div>
</li>
<li>
<div>
结算账户
</div>
<div>
222
</div>
</li>
<li>
<div>
结算账户名
</div>
<div>
222
</div>
</li>
<li>
<div>
注册资本(万元)
</div>
<div>
{{
detail
.
registeredCapital
}}
</div>
</li>
<li>
<div>
联系地址
</div>
<div>
{{
detail
.
contactAddress
}}
</div>
</li>
<li>
<div>
管理员姓名
</div>
<div>
{{
detail
.
companyName
}}
</div>
</li>
<li>
<div>
手机号
</div>
<div>
{{
detail
.
legalPersonPhone
}}
</div>
</li>
<li>
<div>
身份证
</div>
<div>
222
</div>
</li>
<li>
<div>
电子邮箱
</div>
<div>
{{
detail
.
companyName
}}
</div>
</li>
</ul>
<div
class=
"detail-item"
>
<div>
经营范围
</div>
<div>
一般项目:技术服务,技术开发
</div>
</div>
<div
class=
"detail-item"
>
<div>
法人身份证正反面
</div>
<el-image
v-for=
"(item,index) in imglist"
:src=
"item.src"
:key=
"index"
style=
"margin-right:20px"
></el-image>
</div>
<div
class=
"detail-item"
>
<div>
三证合一扫描件
</div>
<el-image
v-for=
"(item,index) in imglist"
:src=
"item.src"
:key=
"index"
style=
"margin-right:20px"
></el-image>
</div>
<div
class=
"detail-item"
>
<div>
其他资料
</div>
<div
class=
"flex-between pdf"
>
<div>
pdf文件
</div>
<div>
预览
</div>
<div>
下载
</div>
</div>
</div>
</div>
</div>
<div
class=
"operation"
>
<button
@
click=
"edit"
>
编辑
</button>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
import
companyDetail
from
'@components/detail/companyDetail.vue'
;
companyDetail
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
}
from
'@api/common/list'
export
default
{
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
components
:
{
components
:
{
dataBreadcrumb
dataBreadcrumb
,
companyDetail
},
},
data
()
{
data
()
{
return
{
return
{
detail
:
""
,
breads
:
[
'查看基本信息'
,
'企业资质文件'
]
breads
:
[
'查看基本信息'
,
'企业资质文件'
],
};
informationList
:
[{
title
:
'单位名称'
,
message
:
'腾讯'
},
{
title
:
'注册角色'
,
message
:
'采购商'
},
{
title
:
'法人姓名'
,
message
:
'谢墩满'
},
{
title
:
'法人电话'
,
message
:
'1784574567'
},
{
title
:
'统一社会信用代码'
,
message
:
'91330104MA27YU1X0K'
},
{
title
:
'行政区域'
,
message
:
'浙江省 杭州市 滨江区'
},
{
title
:
'单位性质'
,
message
:
'有限责任公司'
},
{
title
:
'单位所在地'
,
message
:
'浙江 温州'
},
{
title
:
'行业类型'
,
message
:
'娱乐业'
},
{
title
:
'开户银行名称'
,
message
:
'农行'
},
{
title
:
'结算账号'
,
message
:
'34567567856789'
},
{
title
:
'结算账户名'
,
message
:
'谢天'
},
{
title
:
'注册资本(万元)'
,
message
:
'100'
},
{
title
:
'联系地址'
,
message
:
'浙江温州'
},
{
title
:
'管理员姓名'
,
message
:
'谢'
},
{
title
:
'手机号'
,
message
:
'18957015590'
},
{
title
:
'身份证'
,
message
:
'456789056789078'
},
{
title
:
'电子邮箱'
,
message
:
'34567890@qq.com'
}],
imglist
:
[{
src
:
require
(
'@static/images/img.png'
)
},
{
src
:
require
(
'@static/images/img.png'
)
}]
}
},
},
methods
:
{
methods
:
{
edit
()
{
edit
()
{
this
.
$router
.
push
(
'/purchaser/organization/informationEdit'
)
this
.
$router
.
push
(
'/purchaser/organization/informationEdit'
);
},
async
getcompanyDetail
()
{
try
{
let
companyId
=
localStorage
.
getItem
(
"companyId"
)
const
{
data
,
code
}
=
await
companyDetail
(
companyId
)
if
(
code
===
200
)
{
this
.
detail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
},
},
created
()
{
created
()
{}
this
.
getcompanyDetail
()
};
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.detail-list
>
div
>
ul
>
li
{
margin-right
:
150px
;
margin-bottom
:
50px
;
width
:
180px
}
.detail-list
>
div
>
ul
{
flex-wrap
:
wrap
;
margin-left
:
30px
;
margin-top
:
20px
;
}
.detail-head
{
margin-left
:
30px
;
padding-top
:
10px
;
}
.detail-head
>
h3
{
font-weight
:
bold
;
margin-top
:
10px
;
margin-bottom
:
10px
;
}
.detail-list
{
box-sizing
:
border-box
;
padding-top
:
20px
;
background-color
:
#F0F2F5
;
margin-top
:
10px
;
}
.detail-list
>
div
{
background-color
:
#FFFF
;
padding-bottom
:
20px
;
}
.detail-list
h5
{
font-weight
:
bold
;
height
:
50px
;
line-height
:
50px
;
border-bottom
:
1px
solid
#F0F2F5
;
box-sizing
:
border-box
;
padding-left
:
30px
;
}
.detail-item
{
margin-left
:
30px
;
margin-bottom
:
30px
;
}
.detail-item
>
div
:first-child
{
margin-bottom
:
10px
;
}
.pdf
{
width
:
170px
}
.pdf
>
div
:nth-child
(
2
),
.pdf
>
div
:last-child
{
width
:
50px
;
height
:
30px
;
text-align
:
center
;
line-height
:
30px
;
border-radius
:
10px
;
border
:
1px
solid
#000
}
.operation
{
margin-bottom
:
10px
;
display
:
flex
;
justify-content
:
flex-end
;
}
.operation
>
button
{
width
:
50px
;
height
:
30px
;
border-radius
:
2px
;
background
:
#fff
;
border
:
1px
solid
#999
;
}
.flex-button
>
button
{
margin-left
:
10px
;
}
.flex-button
>
button
:last-child
{
background
:
#28e
;
color
:
#fff
}
</
style
>
</
style
>
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