Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
薪
薪瑞通-前端
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
许珑标
薪瑞通-前端
Commits
76fe5574
Commit
76fe5574
authored
Apr 15, 2025
by
许珑标
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
注册;待办;签约;分配专户
parent
efb37c3a
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
477 additions
and
11 deletions
+477
-11
src/api/login.js
src/api/login.js
+11
-1
src/permission.js
src/permission.js
+1
-1
src/router/index.js
src/router/index.js
+5
-0
src/views/business/component/taxUnitInfoForm.vue
src/views/business/component/taxUnitInfoForm.vue
+4
-3
src/views/business/taxUnit/signList.vue
src/views/business/taxUnit/signList.vue
+14
-2
src/views/login.vue
src/views/login.vue
+1
-3
src/views/register.vue
src/views/register.vue
+2
-1
src/views/unitRegister.vue
src/views/unitRegister.vue
+439
-0
No files found.
src/api/login.js
View file @
76fe5574
...
...
@@ -41,7 +41,17 @@ export function register(data) {
data
:
data
})
}
// 注册方法
export
function
unitRegister
(
data
)
{
return
request
({
url
:
'
/unitRegister
'
,
headers
:
{
isToken
:
false
},
method
:
'
post
'
,
data
:
data
})
}
// 获取用户详细信息
export
function
getInfo
()
{
return
request
({
...
...
src/permission.js
View file @
76fe5574
...
...
@@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
NProgress
.
configure
({
showSpinner
:
false
})
const
whiteList
=
[
'
/login
'
,
'
/auth-redirect
'
,
'
/bind
'
,
'
/register
'
]
const
whiteList
=
[
'
/login
'
,
'
/auth-redirect
'
,
'
/bind
'
,
'
/register
'
,
'
/unitRegister
'
]
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
NProgress
.
start
()
...
...
src/router/index.js
View file @
76fe5574
...
...
@@ -51,6 +51,11 @@ export const constantRoutes = [
component
:
()
=>
import
(
'
@/views/register
'
),
hidden
:
true
},
{
path
:
'
/unitRegister
'
,
component
:
()
=>
import
(
'
@/views/unitRegister
'
),
hidden
:
true
},
{
path
:
'
/404
'
,
component
:
()
=>
import
(
'
@/views/error/404
'
),
...
...
src/views/business/component/taxUnitInfoForm.vue
View file @
76fe5574
...
...
@@ -23,7 +23,9 @@
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"所属行业"
prop=
"sectorDictDataVal"
>
<el-input
v-model=
"form.sectorDictDataVal"
placeholder=
"请输入所属行业"
/>
<el-select
v-model=
"form.sectorDictDataVal"
placeholder=
"请选择所属行业"
>
<el-option
v-for=
"dict in dict.type.unit_business_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
...
...
@@ -131,7 +133,6 @@
</el-row>
</div>
</el-card>
</el-form>
<div
class=
"fixdBottom"
>
<div
class=
"fixdBottomMain"
>
...
...
@@ -147,7 +148,7 @@ import { listAllTaxCode } from '@/api/business/taxClassCode'
export
default
{
name
:
"
taxUnitForm
"
,
dicts
:
[
'
tax_invoice_status
'
,
'
tax_invoice_type
'
],
dicts
:
[
'
tax_invoice_status
'
,
'
tax_invoice_type
'
,
'
unit_business_type
'
],
data
()
{
return
{
taxTransferProps
:
{
...
...
src/views/business/taxUnit/signList.vue
View file @
76fe5574
...
...
@@ -157,8 +157,20 @@ export default {
}).
then
(()
=>
{
giveAccToLabor
(
row
.
id
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
if
(
200
===
resp
.
data
.
code
)
{
this
.
$modal
.
msgSuccess
(
"
操作成功
"
)
this
.
getList
()
}
else
if
(
202
===
resp
.
data
.
code
)
{
this
.
$confirm
(
'
该账户暂未签约支付协议,暂无法进行此操作
'
,
'
操作提示
'
,
{
distinguishCancelAndClose
:
true
,
confirmButtonText
:
'
去签约
'
,
cancelButtonText
:
'
取消
'
}).
then
(()
=>
{
this
.
$router
.
push
({
path
:
"
/taxUnit/payAcc
"
});
}).
catch
(
action
=>
{
});
}
}
})
}).
catch
(()
=>
{});
...
...
src/views/login.vue
View file @
76fe5574
...
...
@@ -41,9 +41,7 @@
<span
v-if=
"!loading"
>
登 录
</span>
<span
v-else
>
登 录 中...
</span>
</el-button>
<div
style=
"float: right;"
v-if=
"register"
>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link>
</div>
<router-link
class=
"link-type"
:to=
"'/unitRegister'"
>
立即注册
</router-link>
</el-form-item>
</el-form>
<div
class=
"SMSVerificationMain"
v-else
>
...
...
src/views/register.vue
View file @
76fe5574
...
...
@@ -41,7 +41,8 @@
</el-form>
<!-- 底部 -->
<div
class=
"el-register-footer"
>
<span>
Copyright © 2018-2022 ruoyi.vip All Rights Reserved.
</span>
<a
class=
"text-color"
href=
"https://beian.miit.gov.cn/#/Integrated/index"
target=
"_blank"
>
<span
style=
"color: #00afff"
>
备案号:冀ICP备2024097706号-1
</span></a>
</div>
</div>
</
template
>
...
...
src/views/unitRegister.vue
0 → 100644
View file @
76fe5574
<
template
>
<div
class=
"register"
>
<div
class=
"register-main"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
class=
"formData"
label-width=
"125px"
>
<!-- 企业资质信息 -->
<el-card
class=
"box-card"
style=
"margin-top: 80vh;"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"cardHeartTitle"
>
企业资质信息
</span>
</div>
<div
class=
"cardMain"
>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"企业名称"
prop=
"unitName"
>
<el-input
v-model=
"form.unitName"
placeholder=
"必填,需与营业执照名称一致"
/>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"信用代码"
prop=
"unitCode"
>
<el-input
v-model=
"form.unitCode"
placeholder=
"必填,填写营业执照信用代码"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"所属行业"
prop=
"sectorDictDataVal"
>
<el-select
v-model=
"form.sectorDictDataVal"
placeholder=
"请选择所属行业"
>
<el-option
v-for=
"dict in dict.type.unit_business_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"营业地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
placeholder=
"必填,请填写能够收到快递的地址"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"营业执照"
prop=
"businessLicense"
>
<image-upload
v-model=
"form.businessLicense"
:limit=
"1"
></image-upload>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<!-- 法人信息 -->
<el-card
class=
"box-card"
style=
"margin-top: 22px;"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"cardHeartTitle"
>
法人信息
</span>
</div>
<div
class=
"cardMain"
>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人姓名"
prop=
"legalPersonName"
>
<el-input
v-model=
"form.legalPersonName"
placeholder=
"请输入法人姓名"
/>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人身份证号"
prop=
"legalPersonIdNo"
>
<el-input
v-model=
"form.legalPersonIdNo"
placeholder=
"请输入法人身份证号"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人联系电话"
prop=
"legalPersonMobile"
>
<el-input
v-model=
"form.legalPersonMobile"
placeholder=
"请输入法人联系电话"
/>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人联系邮箱"
prop=
"legalPersonEmail"
>
<el-input
v-model=
"form.legalPersonEmail"
placeholder=
"请输入法人联系邮箱"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人身份证正面"
prop=
"legalIdPicFront"
>
<image-upload
v-model=
"form.legalIdPicFront"
:limit=
"1"
></image-upload>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"法人身份证背面"
prop=
"legalIdPicBack"
>
<image-upload
v-model=
"form.legalIdPicBack"
:limit=
"1"
></image-upload>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<!-- 管理员信息 -->
<el-card
class=
"box-card"
style=
"margin-top: 22px;"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"cardHeartTitle"
>
系统管理员信息
</span>
</div>
<div
class=
"cardMain"
>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"姓名"
prop=
"nickName"
>
<el-input
v-model=
"form.nickName"
placeholder=
"请输入管理员姓名"
/>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"联系电话"
prop=
"phonenumber"
>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入管理员联系电话"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"联系邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
placeholder=
"请输入管理员联系邮箱"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"设置密码"
prop=
"password"
>
<el-input
type=
"password"
auto-complete=
"off"
v-model=
"form.password"
placeholder=
"请设置本系统登录密码"
/>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"确认密码"
prop=
"confirmPassword"
>
<el-input
type=
"password"
auto-complete=
"off"
v-model=
"form.confirmPassword"
placeholder=
"请再次输入本系统登录密码"
/>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<!-- 法人信息 -->
<el-card
class=
"box-card"
style=
"margin-top: 22px;margin-bottom:20px;"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"cardHeartTitle"
>
发票信息
</span>
</div>
<div
class=
"cardMain"
>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"开票状态"
prop=
"invoiceStatus"
>
<el-select
v-model=
"form.invoiceStatus"
placeholder=
"请选择支付状态"
>
<el-option
v-for=
"dict in dict.type.tax_invoice_status"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value * 1"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"月开票额度"
prop=
"invoiceLimit"
>
<el-input-number
v-model=
"form.invoiceLimit"
:min=
"1"
:precision=
"2"
label=
"请输入月开票额度"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"可开票类型"
>
<el-select
v-model=
"invoiceTypes"
multiple
placeholder=
"请选择可开票类型"
>
<el-option
v-for=
"dict in dict.type.tax_invoice_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"56"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"可开票类目"
>
<el-transfer
filterable
v-model=
"form.unitTaxCategories"
:titles=
"['待选类目', '已选类目']"
:props=
"taxTransferProps"
:data=
"taxClassCodeList"
>
</el-transfer>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<div
class=
"fixdBottomMain"
>
<el-button
type=
"info"
style=
"width:100px;font-size:14px;"
@
click=
"gotoLogin"
>
返 回
</el-button>
<el-button
type=
"primary"
style=
"width:100px;font-size:14px;"
@
click=
"submitForm"
>
确 认
</el-button>
</div>
</el-form>
</div>
<!-- 底部 -->
<div
class=
"el-register-footer"
>
<a
class=
"text-color"
href=
"https://beian.miit.gov.cn/#/Integrated/index"
target=
"_blank"
>
<span
style=
"color: #00afff"
>
备案号:冀ICP备2024097706号-1
</span></a>
</div>
</div>
</
template
>
<
script
>
import
{
getCodeImg
,
register
,
unitRegister
}
from
'
@/api/login
'
import
{
listAllTaxCode
}
from
'
@/api/business/taxClassCode
'
export
default
{
name
:
"
Register
"
,
dicts
:
[
'
tax_invoice_status
'
,
'
tax_invoice_type
'
,
'
unit_business_type
'
],
data
()
{
const
equalToPassword
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
form
.
password
!==
value
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
return
{
codeUrl
:
''
,
taxTransferProps
:
{
key
:
'
code
'
,
label
:
'
goodsName
'
},
taxClassCodeList
:
[],
invoiceTypes
:
[],
form
:
{
uuid
:
''
,
unitTaxCategories
:
[]
},
// 表单校验
rules
:
{
nickName
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入管理员姓名
"
},
],
phonenumber
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入管理员联系电话
"
},
],
password
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的密码
"
},
{
min
:
5
,
max
:
20
,
message
:
'
用户密码长度必须介于 5 和 20 之间
'
,
trigger
:
'
blur
'
}
],
confirmPassword
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请再次输入您的密码
"
},
{
required
:
true
,
validator
:
equalToPassword
,
trigger
:
"
blur
"
}
],
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
请输入验证码
"
}],
sectorDictDataVal
:
[
{
required
:
true
,
message
:
"
请选择企业所属行业
"
,
trigger
:
"
blur
"
}
],
unitName
:
[
{
required
:
true
,
message
:
"
单位名称不能为空
"
,
trigger
:
"
blur
"
}
],
unitCode
:
[
{
required
:
true
,
message
:
"
信用代码不能为空
"
,
trigger
:
"
blur
"
}
],
address
:
[
{
required
:
true
,
message
:
"
经营地址不能为空
"
,
trigger
:
"
blur
"
}
],
businessLicense
:
[
{
required
:
true
,
message
:
"
营业执照不能为空
"
,
trigger
:
"
blur
"
}
],
legalPersonName
:
[
{
required
:
true
,
message
:
"
法人姓名不能为空
"
,
trigger
:
"
blur
"
}
],
legalPersonIdNo
:
[
{
required
:
true
,
message
:
"
法人身份证号不能为空
"
,
trigger
:
"
blur
"
}
],
legalPersonMobile
:
[
{
required
:
true
,
message
:
"
法人联系电话不能为空
"
,
trigger
:
"
blur
"
}
],
legalPersonEmail
:
[
{
required
:
true
,
message
:
"
法人联系邮箱不能为空
"
,
trigger
:
"
blur
"
}
],
legalIdPicFront
:
[
{
required
:
true
,
message
:
"
法人身份证正面不能为空
"
,
trigger
:
"
blur
"
}
],
legalIdPicBack
:
[
{
required
:
true
,
message
:
"
法人身份证号背面不能为空
"
,
trigger
:
"
blur
"
}
],
invoiceStatus
:
[
{
required
:
true
,
message
:
"
可开票状态不能为空
"
,
trigger
:
"
blur
"
}
],
invoiceLimit
:
[
{
required
:
true
,
message
:
"
月开票额度不能为空
"
,
trigger
:
"
blur
"
}
],
}
};
},
created
()
{
this
.
getCode
();
listAllTaxCode
().
then
(
resp
=>
{
if
(
!
this
.
form
.
unitTaxCategories
)
{
this
.
form
.
unitTaxCategories
=
[]
}
if
(
200
===
resp
.
code
)
{
this
.
taxClassCodeList
=
resp
.
data
}
})
},
methods
:
{
getCode
()
{
getCodeImg
().
then
(
res
=>
{
this
.
captchaEnabled
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
;
if
(
this
.
captchaEnabled
)
{
this
.
codeUrl
=
"
data:image/gif;base64,
"
+
res
.
img
;
this
.
form
.
uuid
=
res
.
uuid
;
}
});
},
handleRegister
()
{
this
.
$refs
.
registerForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
register
(
this
.
registerForm
).
then
(
res
=>
{
const
username
=
this
.
registerForm
.
username
;
this
.
$alert
(
"
<font color='red'>恭喜你,您的账号
"
+
username
+
"
注册成功!</font>
"
,
'
系统提示
'
,
{
dangerouslyUseHTMLString
:
true
,
type
:
'
success
'
}).
then
(()
=>
{
this
.
$router
.
push
(
"
/login
"
);
}).
catch
(()
=>
{
});
}).
catch
(()
=>
{
this
.
loading
=
false
;
if
(
this
.
captchaEnabled
)
{
this
.
getCode
();
}
})
}
});
},
gotoLogin
()
{
this
.
$router
.
push
({
path
:
"
/login
"
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
invoiceTypes
)
{
this
.
form
.
invoiceTypes
=
this
.
invoiceTypes
.
join
(
'
,
'
)
}
this
.
$modal
.
loading
()
let
params
=
{
unitInfo
:
this
.
form
,
userInfo
:
{
nickName
:
this
.
form
.
nickName
,
password
:
this
.
form
.
password
,
phonenumber
:
this
.
form
.
phonenumber
,
email
:
this
.
form
.
email
}
}
unitRegister
(
params
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
this
.
$alert
(
"
<font color='red'>恭喜你,您的账号
"
+
params
.
userInfo
.
phonenumber
+
"
注册成功!</font>
"
,
'
系统提示
'
,
{
dangerouslyUseHTMLString
:
true
,
type
:
'
success
'
}).
then
(()
=>
{
this
.
$router
.
push
(
"
/login
"
);
}).
catch
(()
=>
{
});
}
});
this
.
$modal
.
closeLoading
()
}
});
},
}
};
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
.register
{
height
:
100vh
;
background-image
:
url("../assets/images/login-background.png")
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
overflow
:
hidden
;
}
.register-main
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
100vh
;
//margin-top: 12vh;
overflow
:
scroll
;
}
.title
{
margin
:
0px
auto
30px
auto
;
text-align
:
center
;
color
:
#707070
;
}
.register-form
{
border-radius
:
6px
;
background
:
#ffffff
;
width
:
400px
;
padding
:
25px
25px
5px
25px
;
.el-input
{
height
:
38px
;
input
{
height
:
38px
;
}
}
.input-icon
{
height
:
39px
;
width
:
14px
;
margin-left
:
2px
;
}
}
.register-tip
{
font-size
:
13px
;
text-align
:
center
;
color
:
#bfbfbf
;
}
.register-code
{
width
:
33%
;
height
:
38px
;
float
:
right
;
img
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
}
.el-register-footer
{
height
:
40px
;
line-height
:
40px
;
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
text-align
:
center
;
color
:
#fff
;
font-family
:
Arial
;
font-size
:
12px
;
letter-spacing
:
1px
;
}
.register-code-img
{
height
:
38px
;
}
.fixdBottomMain
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-bottom
:
50px
;
}
</
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