This commit is contained in:
wangshiming
2021-11-30 10:17:00 +08:00
parent 08d5b09401
commit 30dcfbb4f1
18 changed files with 1411 additions and 13 deletions

View File

@ -0,0 +1,24 @@
<div class="main">
<nz-card [nzTitle]="formTitle" style="margin-top: 20px">
<div class="myForm">
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" [formData]="formData"></sf>
<form nz-form>
<nz-form-item>
<nz-form-control [nzSpan]="24" [nzOffset]="5" *ngIf="this.formData?.type !== 'view'">
<button
nz-button
type="button"
nzType="primary"
(click)="formSubmit()"
[disabled]="!sf.valid"
[nzLoading]="service.http.loading"
>
保存
</button>
<button nz-button type="button" (click)="goBack()">取消</button>
</nz-form-control>
</nz-form-item>
</form>
</div>
</nz-card>
</div>

View File

@ -0,0 +1,6 @@
:host {
.myForm {
width: 600px;
margin: 3rem 0;
}
}

View File

@ -0,0 +1,23 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CmcComponentsTagsAddComponent } from './edit-info.component';
describe('CmcComponentsTagsAddComponent', () => {
let component: CmcComponentsTagsAddComponent;
let fixture: ComponentFixture<CmcComponentsTagsAddComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [CmcComponentsTagsAddComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CmcComponentsTagsAddComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,260 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { GoodsService } from 'src/app/routes/cmc/services/goods.service';
@Component({
selector: 'app-cmc-components-add',
templateUrl: './add.component.html',
styleUrls: ['./add.component.less'],
})
export class CmcComponentsTagsAddComponent implements OnInit {
@ViewChild('sf', { static: false })
sf!: SFComponent;
i: any;
schema!: SFSchema;
ui!: SFUISchema;
cateData: any = [];
formTitle: any = '新增标签';
formData: any = {
// avatar:[
// {
// uid: -1,
// name: 'LOGO',
// status: 'done',
// url: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
// response: {
// url: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
// },
// },
// ],
// name:'西四'
};
constructor(public service: GoodsService, private modal: ModalHelper, private route: ActivatedRoute) {
const { flag, type, id } = route.snapshot?.queryParams;
Object.assign(this.formData, { flag, type, id });
}
ngOnInit() {
this.initSF();
if (this.formData.flag !== '3') {
this.getCates();
} else {
this.getBusinessCates();
}
// console.log(this.formData, 'this.formData');
if (this.formData.type === 'edit') {
this.formTitle = '编辑标签';
}
if (this.formData.type === 'view') {
this.formTitle = '查看标签';
}
if (this.formData.type !== 'add') {
if (this.formData.flag !== '3') {
this.getInfo();
} else {
this.getBusinessInfo();
}
}
}
initSF() {
this.schema = {
properties: {
name: {
title: '标签名称',
type: 'string',
maxLength: 8,
},
categoryId: {
title: '关联分类',
type: 'string',
default: this.formData?.categoryId || [],
enum: this.cateData,
ui: {
widget: 'tree-select',
checkable: true, // 节点前添加 Checkbox 复选框
allowClear: true, // 支持清除
virtualHeight: '480px',
// checkStrictly: true, // checkable 状态下节点选择完全受控(父子节点选中状态不再关联)
// defaultExpandAll: false, // 默认展开所有树节点
// expandedKeys: this.formData?.categoryId || [], // 默认展开指定的树节点
change: (e) => {
console.log(e);
},
// valueProperty: 'key',
// labelProperty: 'title',
// asyncData: () =>
// this.service.request(this.service.$api_get_labelCategorys).pipe(
// map((data: any) => {
// return data.map((m: any) => {
// return { title: m.name, key: m.id };
// });
// }),
// ),
} as SFSelectWidgetSchema,
},
remark: {
title: '标签介绍',
type: 'string',
maxLength: 50,
ui: {
widget: 'textarea',
placeholder: '请输入标签介绍',
autosize: { minRows: 3, maxRows: 6 },
errors: {
required: '请输入标签介绍',
},
},
},
},
required: ['name', 'categoryId', 'remark'],
};
this.ui = {
'*': {
spanLabel: 5,
grid: { span: 24 },
},
};
}
getCates() {
const params = {
flag: this.formData.flag,
};
const cateApi = this.service.$api_get_category_treeList;
this.service.request(cateApi, params).subscribe((res) => {
// res.map((i: any) => {
// i.key = i.id;
// i.title = i.name;
// if (i.children) {
// i.children.map((j: any) => {
// j.key = j.id;
// j.title = j.name;
// if (j.children) {
// j.children.map((k: any) => {
// k.key = k.id;
// k.title = k.name;
// });
// }
// });
// }
// });
this.cateData = res;
this.initSF();
});
}
getBusinessCates() {
const params = {
flag: this.formData.flag,
};
const cateApi = this.service.$api_get_business_cateList;
this.service.request(cateApi, params).subscribe((res) => {
// res.map((i: any) => {
// i.key = i.id;
// i.title = i.name;
// if (i.children) {
// i.children.map((j: any) => {
// j.key = j.id;
// j.title = j.name;
// if (j.children) {
// j.children.map((k: any) => {
// k.key = k.id;
// k.title = k.name;
// });
// }
// });
// }
// });
this.cateData = res;
this.initSF();
});
}
getInfo() {
const params = {
labelId: this.formData.id,
};
this.service.http.post(this.service.$api_get_labelDetail, params).subscribe((res) => {
const resData = res.data;
if (res.data?.categoryIds) {
resData.categoryId = res.data?.categoryIds.split(',');
}
delete resData.categoryIds;
Object.assign(this.formData, resData);
// console.log(this.formData, 'this.formData');
this.initSF();
});
}
getBusinessInfo() {
const params = {
id: this.formData.id,
};
this.service.http.post(this.service.$api_get_business_labelDetail, params).subscribe((res) => {
const resData = res.data;
if (res.data?.categoryIdList) {
resData.categoryId = res.data?.categoryIdList;
}
delete resData.categoryIdList;
Object.assign(this.formData, resData);
this.initSF();
});
}
formSubmit() {
const cateIds: any[] = [];
let saveApi = this.service.$api_label_save;
if (this.formData.flag !== '3') {
this.sf.value.categoryId.map((i: any) => {
this.cateData.map((j: any) => {
if (j.children) {
if (i === j.key) {
j.children.map((k: any) => {
if (k.children) {
k.children.map((m: any) => {
cateIds.push(m.key);
});
} else {
cateIds.push(k.key);
}
});
} else if (i !== j.key) {
j.children.map((k: any) => {
if (i === k.key && k.children) {
k.children.map((m: any) => {
cateIds.push(m.key);
});
} else {
cateIds.push(i);
}
});
}
} else {
if (i === j.key) {
cateIds.push(i);
}
}
});
});
}
const params: any = {
...this.sf.value,
};
if (this.formData.flag !== '3') {
const uniqueArr = [...new Set(cateIds)];
params.categoryId = uniqueArr.toString();
saveApi = this.service.$api_label_save;
} else {
saveApi = this.service.$api_business_label_save;
params.categoryIdList = this.sf.value.categoryId;
delete params.categoryId;
}
this.service.http.post(saveApi, params).subscribe((res) => {
if (res.data) {
this.service.msgSrv.success('提交成功');
this.goBack();
}
});
}
goBack() {
history.go(-1);
}
}

View File

@ -0,0 +1,92 @@
<page-header-wrapper [title]="'企业审核列表'" [content]="content">
<nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf
#sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="service.http.loading"
(formSubmit)="st?.load(1)"
(formReset)="resetSF()"
></sf>
</div>
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</ng-container>
</div>
</nz-card>
<div style="margin-bottom: 20px; text-align: right"></div>
<nz-card nzTitle="标签列表" >
<!-- 数据列表 -->
<st
#st
multiSort
[data]="datalist"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading"
>
</st>
</nz-card>
<ng-template #content>
<nz-tabset class="tabs-wrap">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
</nz-tabset>
</ng-template>
</page-header-wrapper>
<!-- <nz-modal
[(nzVisible)]="isVisible"
[nzTitle]="mdTitle"
[nzFooter]="modalFooter"
(nzOnCancel)="handleCancel()"
(nzOnOk)="handleOk()"
[nzWidth]="700"
>
<ng-container>
</ng-container>
<ng-template #modalFooter>
<button nz-button nzType="default" (click)="handleCancel()">取消</button>
<button
nz-button
nzType="primary"
*ngIf="mdType === 2"
[disabled]="!sf1?.valid"
(click)="handleOk()"
[nzLoading]="service.http.loading"
>
确定
</button>
<button
nz-button
nzType="primary"
*ngIf="mdType === 3"
[disabled]="!sf1?.valid"
(click)="handleOk()"
[nzLoading]="service.http.loading"
>
重新提交
</button>
<button nz-button nzType="primary" *ngIf="mdType === 4" (click)="handleCancel()">确定</button>
</ng-template>
</nz-modal> -->

View File

@ -0,0 +1,10 @@
:host {
::ng-deep {
.tabs-wrap > .ant-tabs-nav {
margin-bottom: 0;
}
.myForm .ant-upload.ant-upload-select-picture-card > .ant-upload {
flex-direction: column !important;
}
}
}

View File

@ -0,0 +1,23 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CmcComponentsTagsComponent } from './tags.component';
describe('CmcComponentsTagsComponent', () => {
let component: CmcComponentsTagsComponent;
let fixture: ComponentFixture<CmcComponentsTagsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [CmcComponentsTagsComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CmcComponentsTagsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,310 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { UsermanageService } from '../../../services/usercenter.service';
@Component({
selector: 'app-Freight-components-enterprise-audit',
templateUrl: './enterprise-audit.component.html',
styleUrls: ['./enterprise-audit.component.less'],
})
export class FreightComponentsEnterpriseAuditComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType = 1;
tabs = [
{
name: '企业审核',
type: 1,
isActived: false,
},
{
name: '企业管理员审核',
type: 2,
isActived: false,
},
];
datalist = [
{
storeName: '企业名称',
contactsName: '152746565',
enterpriseName: '湖南',
unifiedSocialCreditCode: '45454',
contactsPhone: '*97889461561',
effectiveDateStr: '废弃eww',
enStatusStr2: '已驳回',
enStatusStr3: '正常',
unifiedSocialCreditCode3: '常用服务',
unifiedSocialCreditCode2: '正常',
tenantId: 1
},
{
storeName: '企业名称',
contactsName: '152746565',
enterpriseName: '湖南',
unifiedSocialCreditCode: '45454',
contactsPhone: '*97889461561',
effectiveDateStr: '废弃eww',
enStatusStr2: '待审核',
enStatusStr3: '正常',
unifiedSocialCreditCode3: '常用服务',
unifiedSocialCreditCode2: '正常',
tenantId: 2
},
]
isVisible = false;
mdType!: any;
cateData = [];
// stApi = this.service.$api_get_labelList;
constructor(public service: UsermanageService, private router: Router, private modal: NzModalService) {}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 查询参数
*/
get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, {
flag: this.tabType,
});
delete params._$expand;
return { ...params };
}
/**
* 选中行
*/
get selectedRows() {
return this.st?.list.filter((item) => item.checked) || [];
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 程序初始化入口
*/
ngOnInit() {
this.initSF();
this.initST();
}
/**
* 初始化查询表单
*/
initSF() {
this.schema = {
properties: {
expand: { type: 'boolean', ui: { hidden: true } },
name: { title: '企业名称', type: 'string' },
contactsName: {
title: '联系人',
type: 'string',
ui: {
showRequired: false,
},
},
phone: {
title: '手机号',
type: 'string',
format: 'mobile',
maxLength: 11,
ui: {
placeholder: '请输入手机号',
},
},
enStatus2: {
type: 'string',
title: '状态',
enum: [
{ label: '全部', value: '' },
{ label: '正常', value: 0 },
{ label: '冻结', value: 1 },
{ label: '废弃', value: 2 },
],
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value,
},
},
},
},
};
this.ui = { '*': { spanLabelFixed: 100, grid: { span: 8, gutter: 4 } } };
}
/**
* 初始化数据列表
*/
initST() {
this.columns = [
{ title: '企业名称', className: 'text-center', index: 'storeName' },
{ title: '联系人', className: 'text-center', index: 'contactsName' },
{ title: '税源地', className: 'text-center', render: 'enterpriseName' },
{ title: '累计运单金额', className: 'text-center', index: 'unifiedSocialCreditCode' },
{
title: '状态',
className: 'text-center',
index: 'enStatusStr2',
type: 'badge',
badge: {
: { text: '待审核', color: 'success' },
: { text: '已驳回', color: 'warning' },
},
},
{ title: '常用服务', className: 'text-center', index: 'unifiedSocialCreditCode3' },
{ title: '推广业务员', className: 'text-center', index: 'unifiedSocialCreditCode2' },
{
title: '操作',
fixed: 'right',
width: '180px',
className: 'text-center',
buttons: [
{ text: '查看', click: (_record) => this.addOne('view', _record) },
],
},
];
}
/**
* 数据列表状态变化事件
*/
change(e: STChange) {
// console.log(e.checkbox);
}
/**
* 新增实例
*/
addOne(type: any, record: any) {
// this.router.navigate(['../add'], { relativeTo: this.ar });
this.router.navigate(['/cmc/tags/add'], {
queryParams: {
id: record.id,
type,
flag: this.tabType,
},
});
}
/**
* 编辑单个实例
* @param record 记录实例
*/
editOne(record: STData) {
// this.router.navigate(['../edit', record.uuid], { relativeTo: this.ar });
}
/**
* 删除单个实例
* @param record 记录实例
*/
delOne(record: STData) {
// let delApi = this.service.$api_label_deletebatch;
// if (this.tabType === 3) {
// delApi = this.service.$api_business_label_delete;
// } else {
// delApi = this.service.$api_label_deletebatch;
// }
this.modal.confirm({
nzTitle: '<i>删除确认</i>',
nzContent: `<b>即将删除 当前行数据,请仔细核对,避免误操作!<br>是否删除?</br>`,
nzOnOk: () =>
console.log('1')
// this.service.http.post(delApi, [record.id]).subscribe((res) => {
// console.log(res, 'del');
// if (res === true || res.data === true) {
// this.service.msgSrv.success('删除成功!');
// setTimeout(() => {
// this.st?.reload();
// }, 500);
// } else {
// this.service.msgSrv.error('删除失败!');
// }
// }),
});
}
/**
* 删除多个实例
*/
delMany(record: STData) {
this.modal.confirm({
nzTitle: '<i>删除确认</i>',
nzContent: `<b>即将删除 当前行数据,请仔细核对,避免误操作!<br>是否删除?</br>`,
nzOnOk: () =>
console.log('')
// this.service.http.post(this.service.$api_label_deletebatch, [record.id]).subscribe((res) => {
// if (res === true) {
// this.service.msgSrv.success('删除成功!');
// this.st?.reload();
// }
// }),
});
/*
const delData = this.st.list.filter((item) => item.checked).map((item) => item.id);
if (delData.length > 0) {
this.modal.confirm({
nzTitle: '<i>删除确认</i>',
nzContent: `<b>即将删除 <i>${delData.length}</i> 条数据,请仔细核对,避免误操作!<br>是否删除?</br>`,
nzOnOk: () =>
this.service.delMany(delData).subscribe((res) => {
if (res === true) {
this.service.msgSrv.success('数据删除成功!');
this.st?.reload();
}
}),
});
}
*/
}
// 切换Tab
changeTab(item: any) {
this.tabType = item.type;
this.sf?.reset();
// if (item.type === 3) {
// this.stApi = this.service.$api_get_business_labelList;
// } else {
// this.stApi = this.service.$api_get_labelList;
// }
// setTimeout(() => {
// this.tabs.forEach((i) => (i.isActived = false));
// item.isActived = !item.isActived;
// this.st.load(1);
// this.st.resetColumns();
// }, 500);
}
// checkType(): boolean {
// return this.mdType === 2 ? true : false;
// }
}

View File

@ -0,0 +1,289 @@
<ng-container >
<!-- 页头 -->
<page-header-wrapper [logo]="logo" [action]="action" [content]="content">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #content>
<div class="user-info">
<img [src]="detailData?.shoppFeignVO?.logoUrl" />
<div style="flex: 1">
<div style="display: flex;">
<p style="padding-right: 80px; width: 400px;">深圳市xxxx科技有限公司{{ detailData?.shoppFeignVO?.publicity }}</p>
<nz-badge nzStatus="success" nzText="正常" *ngIf="detailData?.status === 0"></nz-badge>
<nz-badge nzStatus="error" nzText="冻结" *ngIf="detailData?.status === 1"></nz-badge>
<nz-badge nzStatus="warning" nzText="废弃" *ngIf="detailData?.status === 2"></nz-badge>
</div>
<div style="display: flex;">
<p style="padding-right: 80px; width: 400px;">4545456655645{{ detailData?.shoppFeignVO?.introduction }}</p>
<p >认证时间2021-09-02 12.53.32</p>
</div>
<div>
服务评级:<nz-rate [ngModel]="2" nzDisabled></nz-rate>
</div>
<div style="position: relative;top: -65%;
left: 75%;">
<button
[nzLoading]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)"
nzPopconfirmPlacement="bottomRight"
>
启用
</button>
<button
[nzLoading]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)"
nzPopconfirmPlacement="bottomRight"
>
冻结
</button>
<button
[nzLoading]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="Payfrozen"
(nzOnConfirm)="PayOrResume(0)"
nzPopconfirmPlacement="bottomRight"
>
开通支付权限
</button>
<button
[nzLoading]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="Payenable"
(nzOnConfirm)="PayOrResume(1)"
nzPopconfirmPlacement="bottomRight"
>
关闭支付权限
</button>
</div>
</div>
</div>
</ng-template>
<ng-template #action> </ng-template>
<ng-template #frozen>
<div class="ant-popover-message">
<i nz-icon="" nztheme="fill" class="anticon anticon-exclamation-circle ng-star-inserted">
<svg
viewBox="64 64 896 896"
focusable="false"
fill="currentColor"
width="1em"
height="1em"
class="ng-tns-c358-1487"
data-icon="exclamation-circle"
aria-hidden="true"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"
></path>
</svg>
</i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">确定冻结该企业吗?</div>
<div class="ant-popover-message-title ng-star-inserted">
停用后,该企业将被限制使用,不限于访问受限、无法发布货源等,请谨慎操作
</div>
</div>
</ng-template>
<ng-template #enable>
<div class="ant-popover-message">
<i nz-icon="" nztheme="fill" class="anticon anticon-exclamation-circle ng-star-inserted">
<svg
viewBox="64 64 896 896"
focusable="false"
fill="currentColor"
width="1em"
height="1em"
class="ng-tns-c358-1487"
data-icon="exclamation-circle"
aria-hidden="true"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"
></path>
</svg>
</i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">确定启用该企业吗?</div>
<div class="ant-popover-message-title ng-star-inserted">
启用后,该企业将恢复正常使用功能,请再次确认
</div>
</div>
</ng-template>
<ng-template #Payenable>
<div class="ant-popover-message">
<i nz-icon="" nztheme="fill" class="anticon anticon-exclamation-circle ng-star-inserted">
<svg
viewBox="64 64 896 896"
focusable="false"
fill="currentColor"
width="1em"
height="1em"
class="ng-tns-c358-1487"
data-icon="exclamation-circle"
aria-hidden="true"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"
></path>
</svg>
</i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">确定关闭该企业支付权限吗?</div>
<div class="ant-popover-message-title ng-star-inserted">
停用后,该企业将被限制使用支付功能,请谨慎操作
</div>
</div>
</ng-template>
<ng-template #Payfrozen>
<div class="ant-popover-message">
<i nz-icon="" nztheme="fill" class="anticon anticon-exclamation-circle ng-star-inserted">
<svg
viewBox="64 64 896 896"
focusable="false"
fill="currentColor"
width="1em"
height="1em"
class="ng-tns-c358-1487"
data-icon="exclamation-circle"
aria-hidden="true"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"
></path>
</svg>
</i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">确定开通该企业支付权限吗?</div>
<div class="ant-popover-message-title ng-star-inserted">
启用后,该企业将恢复正常支付功能,请再次确认
</div>
</div>
</ng-template>
</page-header-wrapper>
<nz-card>
<sv-container col="3">
<sv-title>联系信息人</sv-title>
<sv label="联系人">
{{ detailData?.contactsName }}
</sv>
<sv label="联系人手机号">
{{ detailData?.contactsPhone }}
</sv>
<sv label="联系人身份证号">
{{ detailData?.contactsPhone }}
</sv>
<sv label="企业授权函">
<!-- <app-imagelist [imgList]="detailData?.enterpriseQualificationCertificate"></app-imagelist> -->
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>公司基本信息</sv-title>
<sv label="公司名称">
{{ detailData?.enterpriseName }}
</sv>
<sv label="统一社会信用代码">
{{ detailData?.unifiedSocialCreditCode }}
</sv>
<sv label="公司类型">
{{ detailData?.enterpriseType }}
</sv>
<sv label="注册资本">
{{ detailData?.registrationCapital }}
<span *ngIf="detailData?.registrationCapital">万元</span>
</sv>
<sv label="成立日期">
{{ detailData?.enterpriseRegistrationTime }}
</sv>
<sv label="营业期限">
<div *ngIf="!!detailData?.operatingStartTime && !!detailData?.operatingEndTime">
{{ detailData?.operatingStartTime }} 至 {{ detailData?.operatingEndTime }}
</div>
<div *ngIf="!detailData?.operatingStartTime && !detailData?.operatingEndTime">长期</div>
<div *ngIf="!!detailData?.operatingStartTime && !detailData?.operatingEndTime">{{ detailData?.operatingStartTime }} 至 长期</div>
</sv>
</sv-container>
<sv-container col="2" class="mt16">
<sv label="公司所在地" col="3">
{{ detailData?.enterpriseAddressCodeStr }}
</sv>
<sv label="公司详细地址">
{{ detailData?.enterpriseAddress }}
</sv>
</sv-container>
<sv-container col="2" class="mt16">
<sv label="公司实际经营所在地" col="3">
{{ detailData?.enterpriseAddressCodeStr }}
</sv>
<sv label="公司实际经营详细地址">
{{ detailData?.enterpriseAddress }}
</sv>
</sv-container>
<sv-container col="2" class="mt16">
<sv label="公司电话" col="3">
{{ detailData?.enterpriseAddressCodeStr }}
</sv>
<sv label="公司邮箱">
{{ detailData?.enterpriseAddress }}
</sv>
</sv-container>
<sv-container col="1" class="mt16">
<sv label="经营范围">
{{ detailData?.businessScope }}
</sv>
<sv label="营业执照">
<!-- <app-imagelist [imgList]="detailData?.enterpriseQualificationCertificate"></app-imagelist> -->
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>法人信息</sv-title>
<sv label="法定代表人">
{{ detailData?.name }}
</sv>
<sv label="身份证号">
{{ detailData?.certificateNumber }}
</sv>
<sv label="身份证有效期">
{{ detailData?.validStartTime }} -
{{ detailData?.validEndTime ? detailData?.validEndTime : '长期' }}
</sv>
<sv label="身份证照" col="1">
<!-- <app-imagelist [imgList]="detailData?.certificatePhoto"></app-imagelist> -->
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>银行结算信息</sv-title>
<sv label="开户名称">
{{ detailData?.name }}
</sv>
<sv label="开户账户">
{{ detailData?.certificateNumber }}
</sv>
<sv label="开户支行">
{{ detailData?.validStartTime }}
</sv>
</sv-container>
</nz-card>
</ng-container>
<nz-modal [(nzVisible)]="isVisible" nzTitle="类型" (nzOnOk)="handleOK('suppliersType')">
<sf #sf1 [schema]="schema1" [ui]="ui" [compact]="false" [button]="'none'" [formData]="suppliersData"></sf>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="handleCancel('suppliersType')">取消</button>
<button nz-button nzType="primary" (click)="handleOK('suppliersType')" [disabled]="!sf1.valid">确认</button>
</div>
</nz-modal>

View File

@ -0,0 +1,46 @@
@import '~@delon/theme/index';
:host {
::ng-deep {
.ant-steps-dot {
.ant-steps-item-content {
width: 200px;
}
.ant-steps-item-icon {
margin-left: 96px;
}
.ant-steps-item-tail::after {
margin-left: 40px;
}
}
.success {
color: @success-color;
}
.warning {
color: @warning-color;
}
.error {
color: @error-color;
}
}
.mt16 {
margin-top: 16px;
}
.user-info {
display: flex;
font-size: 16px;
.enterprise-name {
margin-right: 15px;
}
img {
width: 64px;
height: 64px;
margin-right: 15px;
border-radius: 50%;
}
.user-info-des {
margin-bottom: 5px;
}
}
}

View File

@ -0,0 +1,31 @@
/*
* @Author: your name
* @Date: 2021-11-29 20:19:08
* @LastEditTime: 2021-11-29 20:31:00
* @LastEditors: your name
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\list\detail\detail.component.spec.ts
*/
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FreightComponentsListDetailComponent } from './detail.component';
describe('FreightComponentsListDetailComponent', () => {
let component: FreightComponentsListDetailComponent;
let fixture: ComponentFixture<FreightComponentsListDetailComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [FreightComponentsListDetailComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(FreightComponentsListDetailComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,255 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper, _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message';
import { UsermanageService } from '../../../../services/usercenter.service';
@Component({
selector: 'app-supplier-components-list-view',
templateUrl: './detail.component.html',
styleUrls: ['./detail.component.less'],
})
export class FreightComponentsListDetailComponent implements OnInit {
i: any;
url = `/rule?_allow_anonymous=true`;
@ViewChild('st', { static: false }) st!: STComponent;
detailData: any;
isShow = false;
isVisible = false;
modalTitle = '有效期';
modalName = '';
ui!: SFUISchema;
schema!: SFSchema;
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema1!: SFSchema;
@ViewChild('sf1', { static: false }) sf1!: SFComponent;
validData: any = ['suppliersType'];
suppliersData: any = {};
constructor(
private http: _HttpClient,
private modal: ModalHelper,
public service: UsermanageService,
private route: ActivatedRoute,
private modalHelper: ModalHelper,
private msgSrv: NzMessageService,
) {}
ngOnInit() {
console.log(this.route.snapshot);
// this.initData();
this.initSF();
this.initSF1();
// this.launchSign();
}
/**
* 初始化查询表单
*/
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
effectiveDate: {
title: '有效期',
type: 'string',
ui: {
widget: 'date',
format: 'yyyy-MM-dd 00:00:00',
// hidden: this.modalName === 'effectiveDate' ? false : true,
} as SFDateWidgetSchema,
},
},
required: ['effectiveDate'],
};
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
}
initSF1() {
this.schema1 = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
suppliersType: {
type: 'string',
title: '类型',
enum: [
{ label: '非外部供应商', value: 0 },
{ label: '外部供应商', value: 1 },
],
default: '',
ui: {
widget: 'select',
change: (args: any) => {
console.log(args, 'args');
this.suppliersData.suppliersType = args;
if (args === 1) {
this.validData = ['suppliersType', 'externalSuppliersId'];
} else {
this.validData = ['suppliersType'];
this.suppliersData.externalSuppliersId = '';
}
this.initSF1();
},
},
},
externalSuppliersId: {
title: '外部供应商id',
type: 'string',
default: '',
ui: {
visibleIf: { suppliersType: (value: any) => value === 1 },
},
},
},
required: this.validData,
};
}
showModal(name: any) {
this.modalName = name;
if (name === 'effectiveDate') {
this.isShow = true;
} else {
this.isVisible = true;
}
}
async initData() {
console.log(this.route.snapshot, 'this.route.snapshot');
const params = {
tenantId: this.route.snapshot.params.id,
// tenantId: this.route.snapshot.queryParams.tenantId,
};
const res = await this.service.asyncRequest(this.service.$api_get_supplier_info, params);
// // 商品资质
// if (res.enterpriseBusinessJson) {
// res.enterpriseBusinessJson.aptitudes = res.enterpriseBusinessJson?.aptitudes ? res.enterpriseBusinessJson.aptitudes.split(',') : [];
// }
// // // 申请人身份证证件
// // res.applyUserJson.imagelist = [];
// // res.applyUserJson.imagelist.push(res.applyUserJson.certificatePhotoFront);
// // res.applyUserJson.imagelist.push(res.applyUserJson.certificatePhotoBack);
// // res.applyUserJson.imagelist.push(res.applyUserJson.handCertificate);
// 法人身份证证件
const imagelist = [];
imagelist.push(res?.certificatePhotoFront);
imagelist.push(res?.certificatePhotoBack);
res.certificatePhoto = imagelist;
// 营业执照
res.enterpriseQualificationCertificate = res.enterpriseQualificationCertificate
? res.enterpriseQualificationCertificate.split(',')
: [];
// 返回所在地
res.enterpriseAddressCodeStr = await this.getRegionFullName(res.enterpriseAddressCode);
this.detailData = res;
this.suppliersData = {
suppliersType: res?.suppliersType,
externalSuppliersId: res?.externalSuppliersId,
};
}
/**
* 根据地区code查询地区详情
* @param code 地区代码
*/
async getRegionFullName(code: any) {
const params = {
regionCode: code,
};
const res = await this.service.asyncRequest(this.service.$api_get_region_detailByCode, params, 'POST', true);
// if (res && res.regionFullName) {
// const arr = res.regionFullName.split(',');
// res.regionFullName = arr.reverse().join('-');
// }
return res && res.regionFullName;
}
add() {
// this.modal
// .createStatic(FormEditComponent, { i: { id: 0 } })
// .subscribe(() => this.st.reload());
}
goBack() {
window.history.go(-1);
}
/**
* 冻结
*/
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 || '操作失败!');
// }
// });
}
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 || '操作失败!');
// }
// });
}
handleCancel(name: any) {
if (name === 'effectiveDate') {
this.isShow = false;
} else {
this.isVisible = false;
}
}
handleOK(name: any) {
const params: any = {
tenantId: this.route.snapshot.params.id,
// tenantId: this.route.snapshot.queryParams.tenantId,
};
if (name === 'effectiveDate') {
params.effectiveDate = this.sf?.value?.effectiveDate;
} else {
Object.assign(params, this.sf1?.value);
}
this.service.http.post(this.service.$api_set_freezeOrResume, params).subscribe((res) => {
if (res.data === true) {
this.service.msgSrv.success(`编辑成功!`);
this.ngOnInit();
} else {
this.service.msgSrv.error(res.msg || '编辑失败!');
}
if (name === 'effectiveDate') {
this.isShow = false;
} else {
this.isVisible = false;
}
});
}
}

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime: 2021-11-29 17:10:36
* @LastEditTime: 2021-11-29 20:14:00
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\list\list.component.html
@ -69,6 +69,13 @@
</div>
</div>
</ng-template>
<ng-template st-row="contactsPhone" let-item let-index="index">
<div
style="color: #52c41a;" (click)="daoyun(item)"
>
{{ item.contactsPhone }}
</div>
</ng-template>
<ng-template st-row="stateCol" let-item let-index="index">
<nz-tag *ngIf="item.stateLocked" nzColor="error">冻结</nz-tag>
<nz-tag *elseBlock nzColor="success">正常</nz-tag>

View File

@ -157,7 +157,9 @@ export class FreightComponentsListComponent implements OnInit {
{ title: '联系人', className: 'text-center', index: 'contactsName' },
{ title: '税源地', className: 'text-center', render: 'enterpriseName' },
{ title: '累计运单金额', className: 'text-center', index: 'unifiedSocialCreditCode' },
{ title: '道运证', className: 'text-center', index: 'contactsPhone' },
{ title: '道运证', className: 'text-center', index: 'contactsPhone',
render: 'contactsPhone'
},
{ title: '企业状态', className: 'text-center', index: 'effectiveDateStr',
type: 'badge',
badge: {
@ -198,7 +200,7 @@ export class FreightComponentsListComponent implements OnInit {
{
text: '查看',
click: (item) => {
this.router.navigate(['./view', item.tenantId], { relativeTo: this.ar });
this.router.navigate(['./detail', item.tenantId], { relativeTo: this.ar });
// this.router.navigate(['./view', item.id], { relativeTo: this.ar, queryParams: { tenantId: item.tenantId } });
},
},
@ -206,7 +208,9 @@ export class FreightComponentsListComponent implements OnInit {
},
];
}
daoyun(item: any) {
this.router.navigate(['./view', item.tenantId], { relativeTo: this.ar });
}
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);

View File

@ -1,13 +1,15 @@
/*
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime: 2021-11-29 17:28:57
* @LastEditTime: 2021-11-30 09:56:44
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\usercenter\usercenter-routing.module.ts
*/
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { FreightComponentsEnterpriseAuditComponent } from './components/freight/enterprise-audit/enterprise-audit.component';
import { FreightComponentsListDetailComponent } from './components/freight/list/detail/detail.component';
import { FreightComponentsListComponent } from './components/freight/list/list.component';
import { FreightComponentsListNewComponent } from './components/freight/list/new/new.component';
@ -19,7 +21,8 @@ const routes: Routes = [
{ path: 'freight/list', component: FreightComponentsListComponent },
{ path: 'freight/list/view/:id', component: FreightComponentsListViewComponent },
{ path: 'freight/list/new', component: FreightComponentsListNewComponent },
{ path: 'freight/list/detail/:id', component: FreightComponentsListDetailComponent },
{ path: 'freight/enterprise', component: FreightComponentsEnterpriseAuditComponent },
];
@NgModule({

View File

@ -1,13 +1,15 @@
/*
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime: 2021-11-29 17:29:44
* @LastEditTime: 2021-11-30 09:54:18
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\usercenter\usercenter.module.ts
*/
import { NgModule } from '@angular/core';
import { SharedModule } from '@shared';
import { FreightComponentsEnterpriseAuditComponent } from './components/freight/enterprise-audit/enterprise-audit.component';
import { FreightComponentsListDetailComponent } from './components/freight/list/detail/detail.component';
import { FreightComponentsListComponent } from './components/freight/list/list.component';
import { FreightComponentsListNewComponent } from './components/freight/list/new/new.component';
import { FreightComponentsListViewComponent } from './components/freight/list/view/view.component';
@ -16,7 +18,9 @@ import { UsercenterRoutingModule } from './usercenter-routing.module';
const COMPONENTS = [
FreightComponentsListComponent,
FreightComponentsListViewComponent,
FreightComponentsListNewComponent
FreightComponentsListNewComponent,
FreightComponentsListDetailComponent,
FreightComponentsEnterpriseAuditComponent
];
@NgModule({

View File

@ -1,3 +1,4 @@
import { NzTreeModule } from 'ng-zorro-antd/tree';
import { NzProgressModule } from 'ng-zorro-antd/progress';
import { NzPopoverModule } from 'ng-zorro-antd/popover';
import { NzModalModule } from 'ng-zorro-antd/modal';
@ -5,7 +6,7 @@ import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
/*
* @Author: your name
* @Date: 2021-11-29 10:20:33
* @LastEditTime: 2021-11-29 17:25:49
* @LastEditTime: 2021-11-30 09:54:47
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\shared\shared-zorro.module.ts
@ -30,6 +31,7 @@ import { NzTagModule } from 'ng-zorro-antd/tag';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
import { NzRateModule } from 'ng-zorro-antd/rate';
import { NzResultModule } from 'ng-zorro-antd/result';
import { NzTabsModule } from 'ng-zorro-antd/tabs';
export const SHARED_ZORRO_MODULES = [
NzButtonModule,
NzGridModule,
@ -52,5 +54,8 @@ export const SHARED_ZORRO_MODULES = [
NzModalModule,
NzPopconfirmModule,
NzRateModule,
NzResultModule
NzResultModule,
NzTreeModule,
NzTableModule,
NzTabsModule
];