diff --git a/src/app/layout/passport/passport.component.html b/src/app/layout/passport/passport.component.html index cc5e24e2..90b36333 100644 --- a/src/app/layout/passport/passport.component.html +++ b/src/app/layout/passport/passport.component.html @@ -1,11 +1,9 @@
-
- -
-
- +
+ +
diff --git a/src/app/layout/passport/passport.component.less b/src/app/layout/passport/passport.component.less index a2cc9559..fc77bde8 100644 --- a/src/app/layout/passport/passport.component.less +++ b/src/app/layout/passport/passport.component.less @@ -10,12 +10,13 @@ background: #ffffff; box-shadow: 0px 5px 5px #d1d1d1; } + + } } .title { - color : #1890ff; - font-weight: 800; - font-size : 28px; - text-align : center; + font-size : 18px; + font-weight: 600; + color : #26282A; } \ No newline at end of file diff --git a/src/app/routes/passport/components/login/login.component.html b/src/app/routes/passport/components/login/login.component.html index a898e534..4f2437a6 100644 --- a/src/app/routes/passport/components/login/login.component.html +++ b/src/app/routes/passport/components/login/login.component.html @@ -1,56 +1,81 @@
- -
-
-
-

运营管理后台

- - - - - - - - - +
+ +
- 获取验证码 + 获取验证码 请等待{{ count }}s \ No newline at end of file diff --git a/src/app/routes/passport/components/login/login.component.less b/src/app/routes/passport/components/login/login.component.less index 67a83203..5e69a1b2 100644 --- a/src/app/routes/passport/components/login/login.component.less +++ b/src/app/routes/passport/components/login/login.component.less @@ -5,26 +5,36 @@ flex-direction : column; justify-content : space-between; width : 100%; - max-width : 1080px; - height : 100%; + max-width : 960px; + height : calc(100vh - 64px); margin : auto; - padding : 50px 0 80px; -webkit-box-orient : vertical; - .box-header { - max-width : 240px; - max-height : 48px; - margin-bottom: 36px; - } - .box-content { - width : 100%; - height: 560px; + width : 100%; + height : 600px; + border-radius: 0px 16px 16px 0px; + + .login-logo { + width : 310px; + height: 600px; + } + + .login-box { + flex : 1; + background-color: #fff; + + .login-box-content { + max-width: 434px; + margin : auto; + padding : 88px 0 38px; + } + } .form-box { - margin : 0 auto; - padding : 40px 88px 40px; - background-color: #fff; + margin : 0 auto; + padding: 40px 88px 40px; + .title { margin-bottom: 30px; @@ -51,9 +61,32 @@ } } +.forgetPwd { + font-weight: 400; + color : #26282A; + font-size : 14px; + text-align : center; + cursor : pointer; +} + +.agreement { + text-align: center; + font-size : 12px; + color : #86909C; + margin-top: 88px; + + a { + color: #E60012; + } +} + ::ng-deep { passport-login { - background-color: #f0f4f7; + background-color: #F8FBFD; + } + + .pro-passport { + min-height: calc(100vh - 64px); } } @@ -71,33 +104,90 @@ // tabs样式调整 .ant-tabs-nav-list { - justify-content: space-between; - width : 281px; - margin : auto; + width: 281px; .ant-tabs-tab-btn { - font-size: 18px; + font-size : 24px; + color : #86909C; + font-weight: 500; } - .ant-tabs-tab { - margin: 0; - } + } + + .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn { + color: #26282A; + } + + .ant-tabs-tab { + padding: 8px 0; } .ant-tabs-top>.ant-tabs-nav { - margin: 0 0 30px 0; + margin: 0 0 38px 0; .ant-tabs-ink-bar { - height: 4px; + background: #26282A; } } - .ant-tabs-top>.ant-tabs-nav::before { - border-bottom: 0; + // input 框样式修改 + nz-input-group { + height : 44px; + font-size : 14px; + border-radius: 4px; + border-color : #E5E6EB; + box-shadow : none; } - nz-input-group { - height : 50px; - font-size: 16px; + .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover { + border-color: #E5E6EB; } + + .ant-input { + padding : 10px 16px; + border-color : #E5E6EB; + border-radius: 4px; + font-size : 14px; + box-shadow : none; + } + + .ant-form-item { + margin-bottom: 32px; + } + + .ant-form-item-with-help { + margin-bottom: 0 !important; + } + + .ant-form-item-explain, + .ant-form-item-extra { + min-height : 32px; + line-height: 2; + } + + // 按钮样式修改 + .ant-btn { + padding: 0 16px 12px; + } + + .ant-btn-primary { + color : #fff; + background : #26282A; + border-color : #26282A; + font-size : 14px; + line-height : 40px; + height : 44px; + border-radius: 4px + } +} + +@media (max-width: 990px) { + .box-content { + + .login-logo { + width : 0px !important; + height: 0px !important; + } + } + } \ No newline at end of file diff --git a/src/app/routes/passport/components/login/login.component.ts b/src/app/routes/passport/components/login/login.component.ts index 23a21c73..82ebba95 100644 --- a/src/app/routes/passport/components/login/login.component.ts +++ b/src/app/routes/passport/components/login/login.component.ts @@ -33,9 +33,10 @@ export class UserLoginComponent implements OnInit, OnDestroy { captchaUI!: SFUISchema; count = 0; type = 0; + + isPasswordType = true; // vcode = null; - imageUrl = './assets/images/user/logo.png'; copyright = ''; constructor( public userSrv: EAUserService, @@ -69,22 +70,21 @@ export class UserLoginComponent implements OnInit, OnDestroy { username: { title: '', type: 'string', - maxLength: 30, + maxLength: 11, ui: { - placeholder: '请输入您的账号', - prefixIcon: 'user', - size: 'large' - } as SFStringWidgetSchema + widget: 'custom', + size: 'large', + errors: { required: '请输入手机号', format: '手机号格式错误' } + } }, password: { title: '', type: 'string', ui: { - placeholder: '请输入您的密码', - prefixIcon: 'lock', - type: 'password', - size: 'large' - } as SFStringWidgetSchema + widget: 'custom', + size: 'large', + errors: { required: '请输入密码' } + } } // sc: { // title: '', @@ -117,11 +117,11 @@ export class UserLoginComponent implements OnInit, OnDestroy { format: 'mobile', maxLength: 11, ui: { - placeholder: '请输入您的手机号', - prefixIcon: 'mobile', + placeholder: '请输入手机号', + widget: 'custom', size: 'large', errors: { required: '请输入手机号!', format: '手机号格式错误' } - } as SFStringWidgetSchema + } }, smsCode: { title: '', @@ -184,17 +184,17 @@ export class UserLoginComponent implements OnInit, OnDestroy { */ submit(): void { if (this.type === 0) { - this.captchaSF.validator({ emitError: true }); - if (!this.captchaSF.valid) { - return; - } - this.userSrv.loginByMobile(this.captchaSF.value.phone, this.captchaSF.value.smsCode, this.captchaSF.value.sc); - } else { this.accountSF.validator({ emitError: true }); if (!this.accountSF.valid) { return; } this.userSrv.loginByAccount(this.accountSF.value.username, this.accountSF.value.password); + } else { + this.captchaSF.validator({ emitError: true }); + if (!this.captchaSF.valid) { + return; + } + this.userSrv.loginByMobile(this.captchaSF.value.phone, this.captchaSF.value.smsCode, this.captchaSF.value.sc); } // this.router.navigateByUrl('/'); /* if (!this.accountSF.valid && !this.captchaSF.valid) { @@ -212,6 +212,10 @@ export class UserLoginComponent implements OnInit, OnDestroy { ngOnDestroy(): void {} + changeInputType(a: any) { + console.log(a); + } + private createInterval() { this.count = 59; interval(1000) diff --git a/src/app/routes/passport/passport-routing.module.ts b/src/app/routes/passport/passport-routing.module.ts index 7ec781a9..171e40f2 100644 --- a/src/app/routes/passport/passport-routing.module.ts +++ b/src/app/routes/passport/passport-routing.module.ts @@ -12,6 +12,11 @@ const routes: Routes = [ path: 'passport', component: LayoutPassportComponent, children: [ + { + path: 'login', + component: UserLoginComponent, + data: { title: '登录' } + }, { path: 'agreement', component: OrderAgreementComponent, @@ -23,11 +28,6 @@ const routes: Routes = [ data: { title: '忘记密码' } } ] - }, - { - path: 'passport/login', - component: UserLoginComponent, - data: { title: '登录' } } ]; diff --git a/src/app/routes/usercenter/components/freight/list/detail/detail.component.html b/src/app/routes/usercenter/components/freight/list/detail/detail.component.html index 8d08b3f9..454c31bb 100644 --- a/src/app/routes/usercenter/components/freight/list/detail/detail.component.html +++ b/src/app/routes/usercenter/components/freight/list/detail/detail.component.html @@ -34,19 +34,19 @@
@@ -176,16 +176,16 @@ 企业开票信息 - {{ detailData?.name }} + {{ detailData?.createBank }} {{ detailData?.bankAccount }} - {{ detailData?.validStartTime }} + {{ detailData?.registerPhone }} - {{ detailData?.validStartTime }} + {{ detailData?.registerAddress }} diff --git a/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts b/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts index a19d28de..9cca3c2f 100644 --- a/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts +++ b/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts @@ -108,45 +108,41 @@ export class FreightComponentsListDetailComponent implements OnInit { * 冻结 */ freezeOrResume(type: number) { - console.log(type); - // this.service.http - // .post(this.service.$api_set_freezeOrResume, { - // tenantId: this.route.snapshot.params.id, - // // tenantId: this.route.snapshot.queryParams.tenantId, - // status: type, - // }) - // .subscribe((res) => { - // if (res.data === true) { - // if (type === 0) { - // this.service.msgSrv.success(`启用成功!`); - // } else if (type === 1) { - // this.service.msgSrv.success(`冻结成功!`); - // } - // this.ngOnInit(); - // } else { - // this.service.msgSrv.error(res.msg || '操作失败!'); - // } - // }); + this.service.http + .post(this.service.$api_lock_freight, { + id: this.route.snapshot.params.id, + statedLocked: !!type + }) + .subscribe(res => { + if (res.data === true) { + if (type === 1) { + this.service.msgSrv.success(`启用成功!`); + } else { + this.service.msgSrv.success(`冻结成功!`); + } + this.initData(); + } else { + this.service.msgSrv.error(res.msg || '操作失败!'); + } + }); } PayOrResume(type: number) { - console.log(type); - // this.service.http - // .post(this.service.$api_set_freezeOrResume, { - // tenantId: this.route.snapshot.params.id, - // // tenantId: this.route.snapshot.queryParams.tenantId, - // status: type, - // }) - // .subscribe((res) => { - // if (res.data === true) { - // if (type === 0) { - // this.service.msgSrv.success(`启用成功!`); - // } else if (type === 1) { - // this.service.msgSrv.success(`冻结成功!`); - // } - // this.ngOnInit(); - // } else { - // this.service.msgSrv.error(res.msg || '操作失败!'); - // } - // }); + this.service.http + .post(this.service.$api_lock_freight, { + id: this.route.snapshot.params.id, + statedLocked: !!type + }) + .subscribe(res => { + if (res.data === true) { + if (type === 1) { + this.service.msgSrv.success(`开启成功!`); + } else { + this.service.msgSrv.success(`关闭成功!`); + } + this.initData(); + } else { + this.service.msgSrv.error(res.msg || '操作失败!'); + } + }); } } diff --git a/src/app/routes/usercenter/components/freight/list/list.component.html b/src/app/routes/usercenter/components/freight/list/list.component.html index be46b4c6..1c24a849 100644 --- a/src/app/routes/usercenter/components/freight/list/list.component.html +++ b/src/app/routes/usercenter/components/freight/list/list.component.html @@ -12,12 +12,12 @@
-
+
-
- - +
+ + @@ -46,11 +46,21 @@
- {{ item.promotersTelephone }} + {{ item.promotersTelephone || '添加' }} 冻结 正常 - \ No newline at end of file + + + +
+
+ + + +
+
+
\ No newline at end of file diff --git a/src/app/routes/usercenter/components/freight/list/list.component.ts b/src/app/routes/usercenter/components/freight/list/list.component.ts index 1eb7e0a2..8cf1a2d3 100644 --- a/src/app/routes/usercenter/components/freight/list/list.component.ts +++ b/src/app/routes/usercenter/components/freight/list/list.component.ts @@ -16,7 +16,10 @@ export class FreightComponentsListComponent implements OnInit { columns!: STColumn[]; @ViewChild('st', { static: false }) st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; + @ViewChild('promoterModal', { static: false }) + promoterModal!: any; + promotersTelephone = ''; constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {} /** @@ -36,10 +39,6 @@ export class FreightComponentsListComponent implements OnInit { return params; } - get selectedRows() { - return this.st?.list.filter(item => item.checked) || []; - } - ngOnInit() { this.initSF(); this.initST(); @@ -189,6 +188,30 @@ export class FreightComponentsListComponent implements OnInit { daoyun(item: any) { this.router.navigate(['./view', item.tenantId], { relativeTo: this.ar }); } + + addPromoter(item?: any) { + this.promotersTelephone = item?.promotersTelephone; + const modal = this.modal.create({ + nzTitle: '推广业务员', + nzContent: this.promoterModal, + nzOnOk: () => { + if (!!!this.promotersTelephone) { + return false; + } + if (typeof this.promotersTelephone === 'string' && !/(^1\d{10}$)/.test(this.promotersTelephone)) { + return false; + } + this.service.request(this.service.$api_add_salesman, { ids: [item.id], salesmanMobile: this.promotersTelephone }).subscribe(res => { + if (res) { + this.service.msgSrv.success(item?.promotersTelephone ? '添加推广员成功' : '修改推广员成功'); + } + this.st.load(); + }); + return; + } + }); + } + expandToggle() { this._$expand = !this._$expand; this.sf?.setValue('/expand', this._$expand); @@ -196,11 +219,24 @@ export class FreightComponentsListComponent implements OnInit { creat() { this.router.navigate(['./new'], { relativeTo: this.ar }); } + + exportList() { + const params = this.reqParams; + this.service + .request(this.service.$api_export_freight_list, { ...params, pageSize: this.st.ps, pageIndex: this.st.pi }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success('导出成功'); + } + }); + } + /** * 重置表单 */ resetSF() { this.sf.reset(); this._$expand = false; + this.st.reload(); } } diff --git a/src/app/routes/usercenter/components/freight/list/new/new.component.html b/src/app/routes/usercenter/components/freight/list/new/new.component.html index fe0400fa..20fc3078 100644 --- a/src/app/routes/usercenter/components/freight/list/new/new.component.html +++ b/src/app/routes/usercenter/components/freight/list/new/new.component.html @@ -1,9 +1,9 @@ - + -
营业执照基本信息
+
企业基本信息
营业执照法人信息
diff --git a/src/app/routes/usercenter/services/usercenter.service.ts b/src/app/routes/usercenter/services/usercenter.service.ts index 69185380..ce9564f7 100644 --- a/src/app/routes/usercenter/services/usercenter.service.ts +++ b/src/app/routes/usercenter/services/usercenter.service.ts @@ -19,9 +19,18 @@ export class UsermanageService extends BaseService { // 查询企业列表 $api_get_freight_list = '/api/mdc/cuc/enterpriseInfo/operate/list/page'; + // 导出企业列表 + $api_export_freight_list = '/api/mdc/cuc/enterpriseInfo/operate/export'; + // 查询企业详情 $api_get_freight_detail = '/api/mdc/cuc/enterpriseInfo/operate/detail'; + // 添加企业业务员 + $api_add_salesman = '/api/mdc/cuc/enterpriseInfo/operate/addSalesman'; + + // 冻结/启用企业业 + $api_lock_freight = '/api/mdc/cuc/enterpriseInfo/operate/lock'; + constructor(public injector: Injector) { super(injector); } diff --git a/src/assets/images/user/login-image.png b/src/assets/images/user/login-image.png index 73f10966..18ad9438 100644 Binary files a/src/assets/images/user/login-image.png and b/src/assets/images/user/login-image.png differ diff --git a/src/assets/images/user/logo.svg b/src/assets/images/user/logo.svg new file mode 100644 index 00000000..3b5fb056 --- /dev/null +++ b/src/assets/images/user/logo.svg @@ -0,0 +1,15 @@ + + + logo + + + + + + \ No newline at end of file diff --git a/src/style-icons-auto.ts b/src/style-icons-auto.ts index 3668fed2..cd71454c 100644 --- a/src/style-icons-auto.ts +++ b/src/style-icons-auto.ts @@ -55,7 +55,9 @@ import { EyeInvisibleOutline, MoreOutline, MenuOutline, - SwapOutline + SwapOutline, + EyeFill, + EyeInvisibleFill } from '@ant-design/icons-angular/icons'; export const ICONS_AUTO = [ @@ -110,5 +112,7 @@ export const ICONS_AUTO = [ EyeInvisibleOutline, MoreOutline, MenuOutline, + EyeFill, + EyeInvisibleFill, SwapOutline ];