Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
wangshiming
2021-12-09 00:12:58 +08:00
15 changed files with 344 additions and 156 deletions

View File

@ -1,11 +1,9 @@
<nz-layout class="layout"> <nz-layout class="layout">
<nz-header> <nz-header>
<div nz-row> <div nz-row>
<div nz-col nzSpan="8" style="display: flex;align-items: center;"> <div nz-col nzSpan="24" style="display: flex;align-items: center;">
<img width="95" height="32" src="./assets/images/user/logo.png" [routerLink]="['/']" /> <img width="32" height="32" src="./assets/images/user/logo.svg" [routerLink]="['/']" />
</div> <label class="title ml-sm">运营管理平台</label>
<div nz-col nzSpan="8" class="text-center">
<label class="title">运营管理平台</label>
</div> </div>
</div> </div>
</nz-header> </nz-header>

View File

@ -10,12 +10,13 @@
background: #ffffff; background: #ffffff;
box-shadow: 0px 5px 5px #d1d1d1; box-shadow: 0px 5px 5px #d1d1d1;
} }
} }
} }
.title { .title {
color : #1890ff; font-size : 18px;
font-weight: 800; font-weight: 600;
font-size : 28px; color : #26282A;
text-align : center;
} }

View File

@ -1,56 +1,81 @@
<div class="body-box"> <div class="body-box">
<div></div> <div></div>
<div> <div>
<img class="box-header" [src]="imageUrl" alt="" srcset="" /> <div class="box-content d-flex">
<div nz-row class="box-content"> <img src="./assets/images/user/login-image.png" class="login-logo" alt="">
<div nz-col nzXs="0" nzSm="0" nzMd="0" nzLg="12" <div class="login-box">
[style]="{ 'background-image': 'url(./assets/images/user/login-image.png)', 'background-size': '100%' }"></div> <div class="login-box-content">
<div nz-col nzXs="22" nzSm="20" nzMd="16" nzLg="12" class="form-box"> <nz-tabset (nzSelectChange)="switch($event)">
<h1 class="title">运营管理后台</h1> <nz-tab nzTitle="密码登录">
<nz-tabset (nzSelectChange)="switch($event)"> <sf #accountSF [layout]="'vertical'" [schema]="accountSchema" [ui]="accountUI" [button]="'none'">
<nz-tab nzTitle="手机号登录"> <ng-template sf-template="username" let-i let-ui="ui" let-schema="schema">
<sf #captchaSF [layout]="'vertical'" [schema]="captchaSchema" [ui]="captchaUI" [button]="'none'"> <nz-input-group [nzSuffix]="inputClearTpl">
<ng-template sf-template="smsCode" let-me let-ui="ui" let-schema="schema"> <input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)"
<nz-input-group nzSearch [nzPrefix]="prefixTemplateMail" [nzSuffix]="suffixTemplateInfo"> placeholder="请输入手机号" />
<input nz-input type="text" placeholder="请输入验证码" [attr.id]="me.id" [disabled]="me.disabled" </nz-input-group>
[attr.disabled]="me.disabled" [nzSize]="ui.size" [ngModel]="me.formProperty.value" <ng-template #inputClearTpl>
(ngModelChange)="me.setValue($event)" /> <i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value"
</nz-input-group> style="font-size: 16px;" (click)="i.setValue(null)"></i>
<ng-template #prefixTemplateMail> </ng-template>
<i nz-icon nzType="mail"></i>
</ng-template> </ng-template>
</ng-template> <ng-template sf-template="password" let-i let-ui="ui" let-schema="schema">
</sf> <nz-input-group [nzSuffix]="inputClearTpl">
</nz-tab> <input [type]="isPasswordType?'password':'text'" nz-input [ngModel]="i.value"
<nz-tab nzTitle="账户密码登录"> (ngModelChange)="i.setValue($event)" placeholder="请输入密码" />
<sf #accountSF [layout]="'vertical'" [schema]="accountSchema" [ui]="accountUI" [button]="'none'"></sf> </nz-input-group>
</nz-tab> <ng-template #inputClearTpl>
</nz-tabset> <i *ngIf="i.value && isPasswordType" nz-icon class="ant-input-clear-icon" style="font-size: 18px;"
<button nz-button type="button" nzType="primary" nzSize="large" (click)="submit()" nzType="eye" nzTheme="fill" (click)="isPasswordType=false"></i>
[nzLoading]="userSrv?.http?.loading" nzBlock style="border-radius: 4px"> <i *ngIf="i.value && !isPasswordType" nz-icon class="ant-input-clear-icon" style="font-size: 18px;"
登录 nzType="eye-invisible" nzTheme="fill" (click)="isPasswordType=true"></i>
</button> </ng-template>
<div class="other"> </ng-template>
<p> </sf>
</nz-tab>
<nz-tab nzTitle="验证码登录">
<sf #captchaSF [layout]="'vertical'" [schema]="captchaSchema" [ui]="captchaUI" [button]="'none'">
<ng-template sf-template="phone" let-i let-ui="ui" let-schema="schema">
<nz-input-group [nzSuffix]="inputClearTpl">
<input type="text" nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)"
placeholder="请输入手机号" />
</nz-input-group>
<ng-template #inputClearTpl>
<i nz-icon class="ant-input-clear-icon" nzTheme="fill" nzType="close-circle" *ngIf="i.value"
style="font-size: 16px;" (click)="i.setValue(null)"></i>
</ng-template>
</ng-template>
<ng-template sf-template="smsCode" let-me let-ui="ui" let-schema="schema">
<nz-input-group nzSearch [nzSuffix]="suffixTemplateInfo">
<input nz-input type="text" placeholder="验证码" [attr.id]="me.id" [disabled]="me.disabled"
[attr.disabled]="me.disabled" [nzSize]="ui.size" [ngModel]="me.formProperty.value"
(ngModelChange)="me.setValue($event)" />
</nz-input-group>
</ng-template>
</sf>
</nz-tab>
</nz-tabset>
<button nz-button type="button" nzType="primary" nzSize="large" (click)="submit()"
[nzLoading]="userSrv?.http?.loading" nzBlock class="mt-md">
登录
</button>
<p class="forgetPwd mt-xl" routerLink="/passport/retrieve-password">忘记密码</p>
<p class="agreement">
登录即代表您同意 <a target="_blank" [routerLink]="['/passport/agreement']" [queryParams]="{ type: 1 }">《平台服务协议》</a> 登录即代表您同意 <a target="_blank" [routerLink]="['/passport/agreement']" [queryParams]="{ type: 1 }">《平台服务协议》</a>
<a target="_blank" [queryParams]="{ type: 2 }" [routerLink]="['/passport/agreement']">《隐私政策》</a> <a target="_blank" [queryParams]="{ type: 2 }" [routerLink]="['/passport/agreement']">《隐私政策》</a>
</p> </p>
<div class="other text-right">
<a class="forgetPwd" routerLink="/passport/retrieve-password">忘记密码</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="box-footer"> <div class="box-footer">
<!-- Copyright © 2015-2020 星链380star.com 版权所有 | 粤ICP备16120630号 --> 深圳市怡亚通供应链股份有限公司 版权所有
<p [innerHTML]="copyright"></p> <p [innerHTML]="copyright"></p>
</div> </div>
</div> </div>
<ng-template #suffixTemplateInfo> <ng-template #suffixTemplateInfo>
<ng-container *ngIf="count < 1; else intervalTemplate"> <ng-container *ngIf="count < 1; else intervalTemplate">
<span class="msg-btn" style="color: #3370ff; cursor: pointer" (click)="getCaptcha()">获取验证码</span> <span class="msg-btn" style="color: #26282A; cursor: pointer;font-size: 14px;" (click)="getCaptcha()">获取验证码</span>
</ng-container> </ng-container>
<ng-template #intervalTemplate> 请等待{{ count }}s </ng-template> <ng-template #intervalTemplate> 请等待{{ count }}s </ng-template>
</ng-template> </ng-template>

View File

@ -5,26 +5,36 @@
flex-direction : column; flex-direction : column;
justify-content : space-between; justify-content : space-between;
width : 100%; width : 100%;
max-width : 1080px; max-width : 960px;
height : 100%; height : calc(100vh - 64px);
margin : auto; margin : auto;
padding : 50px 0 80px;
-webkit-box-orient : vertical; -webkit-box-orient : vertical;
.box-header {
max-width : 240px;
max-height : 48px;
margin-bottom: 36px;
}
.box-content { .box-content {
width : 100%; width : 100%;
height: 560px; 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 { .form-box {
margin : 0 auto; margin : 0 auto;
padding : 40px 88px 40px; padding: 40px 88px 40px;
background-color: #fff;
.title { .title {
margin-bottom: 30px; 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 { ::ng-deep {
passport-login { passport-login {
background-color: #f0f4f7; background-color: #F8FBFD;
}
.pro-passport {
min-height: calc(100vh - 64px);
} }
} }
@ -71,33 +104,90 @@
// tabs样式调整 // tabs样式调整
.ant-tabs-nav-list { .ant-tabs-nav-list {
justify-content: space-between; width: 281px;
width : 281px;
margin : auto;
.ant-tabs-tab-btn { .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 { .ant-tabs-top>.ant-tabs-nav {
margin: 0 0 30px 0; margin: 0 0 38px 0;
.ant-tabs-ink-bar { .ant-tabs-ink-bar {
height: 4px; background: #26282A;
} }
} }
.ant-tabs-top>.ant-tabs-nav::before { // input 框样式修改
border-bottom: 0; nz-input-group {
height : 44px;
font-size : 14px;
border-radius: 4px;
border-color : #E5E6EB;
box-shadow : none;
} }
nz-input-group { .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {
height : 50px; border-color: #E5E6EB;
font-size: 16px;
} }
.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;
}
}
} }

View File

@ -33,9 +33,10 @@ export class UserLoginComponent implements OnInit, OnDestroy {
captchaUI!: SFUISchema; captchaUI!: SFUISchema;
count = 0; count = 0;
type = 0; type = 0;
isPasswordType = true;
// vcode = null; // vcode = null;
imageUrl = './assets/images/user/logo.png';
copyright = ''; copyright = '';
constructor( constructor(
public userSrv: EAUserService, public userSrv: EAUserService,
@ -69,22 +70,21 @@ export class UserLoginComponent implements OnInit, OnDestroy {
username: { username: {
title: '', title: '',
type: 'string', type: 'string',
maxLength: 30, maxLength: 11,
ui: { ui: {
placeholder: '请输入您的账号', widget: 'custom',
prefixIcon: 'user', size: 'large',
size: 'large' errors: { required: '请输入手机号', format: '手机号格式错误' }
} as SFStringWidgetSchema }
}, },
password: { password: {
title: '', title: '',
type: 'string', type: 'string',
ui: { ui: {
placeholder: '请输入您的密码', widget: 'custom',
prefixIcon: 'lock', size: 'large',
type: 'password', errors: { required: '请输入密码' }
size: 'large' }
} as SFStringWidgetSchema
} }
// sc: { // sc: {
// title: '', // title: '',
@ -117,11 +117,11 @@ export class UserLoginComponent implements OnInit, OnDestroy {
format: 'mobile', format: 'mobile',
maxLength: 11, maxLength: 11,
ui: { ui: {
placeholder: '请输入您的手机号', placeholder: '请输入手机号',
prefixIcon: 'mobile', widget: 'custom',
size: 'large', size: 'large',
errors: { required: '请输入手机号!', format: '手机号格式错误' } errors: { required: '请输入手机号!', format: '手机号格式错误' }
} as SFStringWidgetSchema }
}, },
smsCode: { smsCode: {
title: '', title: '',
@ -184,17 +184,17 @@ export class UserLoginComponent implements OnInit, OnDestroy {
*/ */
submit(): void { submit(): void {
if (this.type === 0) { 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 }); this.accountSF.validator({ emitError: true });
if (!this.accountSF.valid) { if (!this.accountSF.valid) {
return; return;
} }
this.userSrv.loginByAccount(this.accountSF.value.username, this.accountSF.value.password); 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('/'); // this.router.navigateByUrl('/');
/* if (!this.accountSF.valid && !this.captchaSF.valid) { /* if (!this.accountSF.valid && !this.captchaSF.valid) {
@ -212,6 +212,10 @@ export class UserLoginComponent implements OnInit, OnDestroy {
ngOnDestroy(): void {} ngOnDestroy(): void {}
changeInputType(a: any) {
console.log(a);
}
private createInterval() { private createInterval() {
this.count = 59; this.count = 59;
interval(1000) interval(1000)

View File

@ -12,6 +12,11 @@ const routes: Routes = [
path: 'passport', path: 'passport',
component: LayoutPassportComponent, component: LayoutPassportComponent,
children: [ children: [
{
path: 'login',
component: UserLoginComponent,
data: { title: '登录' }
},
{ {
path: 'agreement', path: 'agreement',
component: OrderAgreementComponent, component: OrderAgreementComponent,
@ -23,11 +28,6 @@ const routes: Routes = [
data: { title: '忘记密码' } data: { title: '忘记密码' }
} }
] ]
},
{
path: 'passport/login',
component: UserLoginComponent,
data: { title: '登录' }
} }
]; ];

View File

@ -34,19 +34,19 @@
</div> </div>
<div nz-col [nzXl]="6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right mt-sm"> <div nz-col [nzXl]="6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right mt-sm">
<button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable" <button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked === 1"> (nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked === 1">
启用 启用
</button> </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen" <button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked === 0"> (nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked === 0">
冻结 冻结
</button> </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payfrozen" <button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payfrozen"
(nzOnConfirm)="PayOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.createPay === 0"> (nzOnConfirm)="PayOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.createPay === 1">
开通支付权限 开通支付权限
</button> </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payenable" <button [nzLoading]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payenable"
(nzOnConfirm)="PayOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.createPay === 1"> (nzOnConfirm)="PayOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.createPay === 0">
关闭支付权限 关闭支付权限
</button> </button>
</div> </div>
@ -176,16 +176,16 @@
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title>企业开票信息</sv-title> <sv-title>企业开票信息</sv-title>
<sv label="开户银行"> <sv label="开户银行">
{{ detailData?.name }} {{ detailData?.createBank }}
</sv> </sv>
<sv label="银行账户"> <sv label="银行账户">
{{ detailData?.bankAccount }} {{ detailData?.bankAccount }}
</sv> </sv>
<sv label="注册电话"> <sv label="注册电话">
{{ detailData?.validStartTime }} {{ detailData?.registerPhone }}
</sv> </sv>
<sv label="注册地址"> <sv label="注册地址">
{{ detailData?.validStartTime }} {{ detailData?.registerAddress }}
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>

View File

@ -108,45 +108,41 @@ export class FreightComponentsListDetailComponent implements OnInit {
* 冻结 * 冻结
*/ */
freezeOrResume(type: number) { freezeOrResume(type: number) {
console.log(type); this.service.http
// this.service.http .post(this.service.$api_lock_freight, {
// .post(this.service.$api_set_freezeOrResume, { id: this.route.snapshot.params.id,
// tenantId: this.route.snapshot.params.id, statedLocked: !!type
// // tenantId: this.route.snapshot.queryParams.tenantId, })
// status: type, .subscribe(res => {
// }) if (res.data === true) {
// .subscribe((res) => { if (type === 1) {
// if (res.data === true) { this.service.msgSrv.success(`启用成功!`);
// if (type === 0) { } else {
// this.service.msgSrv.success(`启用成功!`); this.service.msgSrv.success(`冻结成功!`);
// } else if (type === 1) { }
// this.service.msgSrv.success(`冻结成功!`); this.initData();
// } } else {
// this.ngOnInit(); this.service.msgSrv.error(res.msg || '操作失败!');
// } else { }
// this.service.msgSrv.error(res.msg || '操作失败!'); });
// }
// });
} }
PayOrResume(type: number) { PayOrResume(type: number) {
console.log(type); this.service.http
// this.service.http .post(this.service.$api_lock_freight, {
// .post(this.service.$api_set_freezeOrResume, { id: this.route.snapshot.params.id,
// tenantId: this.route.snapshot.params.id, statedLocked: !!type
// // tenantId: this.route.snapshot.queryParams.tenantId, })
// status: type, .subscribe(res => {
// }) if (res.data === true) {
// .subscribe((res) => { if (type === 1) {
// if (res.data === true) { this.service.msgSrv.success(`开启成功!`);
// if (type === 0) { } else {
// this.service.msgSrv.success(`启用成功!`); this.service.msgSrv.success(`关闭成功!`);
// } else if (type === 1) { }
// this.service.msgSrv.success(`冻结成功!`); this.initData();
// } } else {
// this.ngOnInit(); this.service.msgSrv.error(res.msg || '操作失败!');
// } else { }
// this.service.msgSrv.error(res.msg || '操作失败!'); });
// }
// });
} }
} }

View File

@ -12,12 +12,12 @@
<!-- 搜索区 --> <!-- 搜索区 -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 16" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 8" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="creat()"></button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="creat()">增企业</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">导出</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="exportList()">导出</button>
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
(click)="st?.load(1)">查询</button> (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
@ -46,11 +46,21 @@
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="promotersTelephone" let-item let-index="index"> <ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="daoyun(item)">{{ item.promotersTelephone }}</a> <a (click)="addPromoter(item)">{{ item.promotersTelephone || '添加' }}</a>
</ng-template> </ng-template>
<ng-template st-row="stateCol" let-item let-index="index"> <ng-template st-row="stateCol" let-item let-index="index">
<nz-tag *ngIf="item.stateLocked" nzColor="error">冻结</nz-tag> <nz-tag *ngIf="item.stateLocked" nzColor="error">冻结</nz-tag>
<nz-tag *elseBlock nzColor="success">正常</nz-tag> <nz-tag *elseBlock nzColor="success">正常</nz-tag>
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card>
<ng-template #promoterModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="80">
<se [col]="1" label="手机号">
<input nz-input [(ngModel)]="promotersTelephone" />
</se>
</div>
</div>
</ng-template>

View File

@ -16,7 +16,10 @@ export class FreightComponentsListComponent implements OnInit {
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent; @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) {} constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {}
/** /**
@ -36,10 +39,6 @@ export class FreightComponentsListComponent implements OnInit {
return params; return params;
} }
get selectedRows() {
return this.st?.list.filter(item => item.checked) || [];
}
ngOnInit() { ngOnInit() {
this.initSF(); this.initSF();
this.initST(); this.initST();
@ -189,6 +188,30 @@ export class FreightComponentsListComponent implements OnInit {
daoyun(item: any) { daoyun(item: any) {
this.router.navigate(['./view', item.tenantId], { relativeTo: this.ar }); 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() { expandToggle() {
this._$expand = !this._$expand; this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand); this.sf?.setValue('/expand', this._$expand);
@ -196,11 +219,24 @@ export class FreightComponentsListComponent implements OnInit {
creat() { creat() {
this.router.navigate(['./new'], { relativeTo: this.ar }); 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() { resetSF() {
this.sf.reset(); this.sf.reset();
this._$expand = false; this._$expand = false;
this.st.reload();
} }
} }

View File

@ -1,9 +1,9 @@
<page-header-wrapper [title]="'企业认证'"></page-header-wrapper> <page-header-wrapper [title]="'新增企业'"></page-header-wrapper>
<nz-card> <nz-card>
<ng-container> <ng-container>
<sf #sf1 [compact]="true" [ui]="ui" [schema]="schema1" [button]="'none'" [formData]="infoData1"> <sf #sf1 [compact]="true" [ui]="ui" [schema]="schema1" [button]="'none'" [formData]="infoData1">
<ng-template sf-template="title1" let-me let-ui="ui" let-schema="schema"> <ng-template sf-template="title1" let-me let-ui="ui" let-schema="schema">
<div class="form-title">营业执照基本信息</div> <div class="form-title">企业基本信息</div>
</ng-template> </ng-template>
<ng-template sf-template="title2" let-me let-ui="ui" let-schema="schema"> <ng-template sf-template="title2" let-me let-ui="ui" let-schema="schema">
<div class="form-title" style="margin-top: 40px">营业执照法人信息</div> <div class="form-title" style="margin-top: 40px">营业执照法人信息</div>

View File

@ -19,9 +19,18 @@ export class UsermanageService extends BaseService {
// 查询企业列表 // 查询企业列表
$api_get_freight_list = '/api/mdc/cuc/enterpriseInfo/operate/list/page'; $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_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) { constructor(public injector: Injector) {
super(injector); super(injector);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>logo</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="密码登录" transform="translate(-16.000000, -16.000000)">
<g id="logo" transform="translate(16.000000, 16.000000)">
<rect id="矩形" fill="#271F30" x="0" y="0" width="32" height="32" rx="16"></rect>
<g id="编组" transform="translate(8.000000, 8.000000)">
<path d="M1.08161153,13.880448 C1.34092336,13.880448 1.56024493,13.9851488 1.73270293,14.1919966 L1.73270293,14.1919966 C1.90078698,14.4077823 1.98451658,14.6586811 1.98451658,14.9395856 C1.98451658,15.2211285 1.90078698,15.4720273 1.73582716,15.6846209 C1.56024493,15.8952992 1.34092336,16 1.08161153,16 C0.834171801,16 0.615475074,15.8959377 0.433019519,15.6916435 C0.261811225,15.4726657 0.17808162,15.2217669 0.17808162,14.9395856 C0.17808162,14.6580427 0.261811225,14.4077823 0.426771041,14.1951887 C0.615475074,13.9838719 0.834171801,13.880448 1.08161153,13.880448 Z M1.38966149,4.87765094 C1.87891731,4.87765094 2.29943987,5.09088297 2.63873222,5.51160128 C2.98114881,5.90933648 3.15548135,6.40219616 3.15548135,6.97358141 L3.15548135,6.97358141 L3.15548135,12.3975916 C3.15548135,12.975361 3.2660794,13.3948025 3.48227674,13.6431476 C3.70722195,13.8908542 4.01902099,14.0121539 4.43391993,14.0121539 L4.43391993,14.0121539 L13.4892141,14.0121539 C13.7091605,14.0121539 13.8928658,14.1053631 14.0347062,14.2905047 C14.1759218,14.4456406 14.2509036,14.6544037 14.2509036,14.9027488 C14.2509036,15.1357718 14.1771715,15.3426197 14.0309572,15.5188234 C13.8928658,15.699496 13.7097854,15.7927053 13.4892141,15.7927053 L13.4892141,15.7927053 L4.43391993,15.7927053 C3.60224752,15.7927053 2.91928888,15.4920098 2.4031646,14.8995567 C1.89078942,14.2847589 1.63147758,13.4433223 1.63147758,12.3975916 L1.63147758,12.3975916 L1.63147758,6.97358141 C1.63147758,6.68310064 1.50650802,6.65884071 1.38966149,6.65884071 L1.38966149,6.65884071 L0.761689457,6.65884071 C0.553615143,6.65884071 0.371784436,6.56626992 0.219946423,6.38432042 C0.0737320394,6.20939354 0,6.00190728 0,5.76824582 C0,5.52053915 0.0749817349,5.31177604 0.223695509,5.14770229 C0.371784436,4.97022173 0.553615143,4.87765094 0.761689457,4.87765094 L0.761689457,4.87765094 Z M13.5048353,4.87758709 C13.7247817,4.87758709 13.908487,4.97143473 14.0497026,5.15657632 C14.1909182,5.3117122 14.2671496,5.5204753 14.2671496,5.76818198 C14.2671496,6.00184344 14.1927927,6.2093297 14.0465783,6.384895 C13.908487,6.56556765 13.7247817,6.65877687 13.5048353,6.65877687 L13.5048353,6.65877687 L8.34859134,6.65877687 L6.37032323,10.9987511 L9.9850677,10.9987511 L9.99131618,11.1289886 C10.0181846,11.6729218 10.2525026,12.1747194 10.6505306,12.5405336 L10.6505306,12.5405336 L10.9104673,12.7793024 L5.89356437,12.7793024 C5.43305154,12.7793024 5.0768883,12.5392568 4.83257282,12.0661881 C4.60450337,11.5995036 4.5982549,11.1226044 4.81445223,10.6450668 L4.81445223,10.6450668 L6.62463628,6.65877687 L4.70072993,6.65877687 C4.49265562,6.65877687 4.31082491,6.56620607 4.1589869,6.384895 C4.01277252,6.20869128 3.93841563,6.00184344 3.93841563,5.76818198 C3.93841563,5.5204753 4.01402221,5.3117122 4.16273598,5.14763845 C4.31082491,4.97015789 4.49265562,4.87758709 4.70072993,4.87758709 L4.70072993,4.87758709 Z M1.122789,0.113191737 C1.34273542,0.113191737 1.52644067,0.207039371 1.66765627,0.391542541 L1.66765627,0.391542541 L3.470967,2.66878409 C3.60593412,2.84562623 3.67341768,3.05119724 3.67341768,3.28230501 C3.66154557,3.53511905 3.58094021,3.74196689 3.43347613,3.90284855 C3.32287807,4.06500704 3.15354432,4.15566258 2.95171848,4.15566258 C2.93547244,4.15566258 2.9192264,4.15502416 2.90235551,4.15374732 C2.70177936,4.13906368 2.51994866,4.04968498 2.36186217,3.8881649 L2.36186217,3.8881649 L0.546054485,1.61539229 C0.412337057,1.44110383 0.344853496,1.22851021 0.344853496,0.985272465 C0.344853496,0.736927368 0.420460079,0.528164265 0.569173853,0.364090512 C0.721011866,0.197463081 0.90659166,0.113191737 1.122789,0.113191737 Z M12.6570418,0 C12.8776131,0 13.0606935,0.0938476333 13.2025339,0.278989223 C13.3437496,0.434125106 13.4193561,0.642888209 13.4193561,0.890594887 C13.4193561,1.12425634 13.3449992,1.33110419 13.1987849,1.50666949 C13.0606935,1.68734214 12.8776131,1.78118977 12.6570418,1.78118977 L12.6570418,1.78118977 L5.51690612,1.78118977 C5.3088318,1.78118977 5.12637625,1.68861898 4.97516308,1.50666949 C4.8289487,1.33174261 4.75459181,1.12425634 4.75459181,0.890594887 C4.75459181,0.642888209 4.8301984,0.434125106 4.97891217,0.270051353 C5.12637625,0.0925707947 5.3088318,0 5.51690612,0 L5.51690612,0 Z" id="形状结合" fill="#FFFFFF"></path>
<path d="M12.6084925,11.8047185 C11.9850691,11.8047185 11.4777186,11.2869861 11.4777186,10.6493845 C11.4777186,10.0130582 11.9850691,9.49468815 12.6084925,9.49468815 C13.2319159,9.49468815 13.7386425,10.0130582 13.7386425,10.6493845 C13.7386425,11.2869861 13.2319159,11.8047185 12.6084925,11.8047185 M12.5965937,8.18161824 C11.2710294,8.18161824 10.1925618,9.28350978 10.1925618,10.6372257 C10.1925618,11.9915808 11.2710294,13.0934723 12.5965937,13.0934723 C13.9215324,13.0934723 15,11.9915808 15,10.6372257 C15,9.28350978 13.9215324,8.18161824 12.5965937,8.18161824" id="Fill-56" fill="#D8232A"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -55,7 +55,9 @@ import {
EyeInvisibleOutline, EyeInvisibleOutline,
MoreOutline, MoreOutline,
MenuOutline, MenuOutline,
SwapOutline SwapOutline,
EyeFill,
EyeInvisibleFill
} from '@ant-design/icons-angular/icons'; } from '@ant-design/icons-angular/icons';
export const ICONS_AUTO = [ export const ICONS_AUTO = [
@ -110,5 +112,7 @@ export const ICONS_AUTO = [
EyeInvisibleOutline, EyeInvisibleOutline,
MoreOutline, MoreOutline,
MenuOutline, MenuOutline,
EyeFill,
EyeInvisibleFill,
SwapOutline SwapOutline
]; ];