From 69ff7dc3064484ce2f7615dd302ac9120721bd2c Mon Sep 17 00:00:00 2001 From: wangshiming Date: Tue, 7 Dec 2021 16:27:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contract-list.component.html | 67 +++++ .../contract-list.component.less | 34 +++ .../contract-list/contract-list.component.ts | 239 ++++++++++++++++++ .../contract-management-routing.module.ts | 20 ++ .../contract-management.module.ts | 23 ++ .../services/contract-management.service.ts | 11 + src/app/routes/routes-routing.module.ts | 3 +- src/assets/mocks/menu-data.json | 11 + 8 files changed, 407 insertions(+), 1 deletion(-) create mode 100644 src/app/routes/contract-management/components/contract-list/contract-list.component.html create mode 100644 src/app/routes/contract-management/components/contract-list/contract-list.component.less create mode 100644 src/app/routes/contract-management/components/contract-list/contract-list.component.ts create mode 100644 src/app/routes/contract-management/contract-management-routing.module.ts create mode 100644 src/app/routes/contract-management/contract-management.module.ts create mode 100644 src/app/routes/contract-management/services/contract-management.service.ts diff --git a/src/app/routes/contract-management/components/contract-list/contract-list.component.html b/src/app/routes/contract-management/components/contract-list/contract-list.component.html new file mode 100644 index 00000000..60a21dd0 --- /dev/null +++ b/src/app/routes/contract-management/components/contract-list/contract-list.component.html @@ -0,0 +1,67 @@ + + + + + + +
+ +
+ +
+ + + +
+ +
+
+ + + +
+
+
+
+ + + +
+ + +
+ + +
+ + +
+
+ + + +
+
+
\ No newline at end of file diff --git a/src/app/routes/contract-management/components/contract-list/contract-list.component.less b/src/app/routes/contract-management/components/contract-list/contract-list.component.less new file mode 100644 index 00000000..3579aa56 --- /dev/null +++ b/src/app/routes/contract-management/components/contract-list/contract-list.component.less @@ -0,0 +1,34 @@ +:host::ng-deep { + .search-box { + .ant-card-body { + padding-bottom: 18px; + } + } + + .content-box { + .ant-card-body { + padding-top: 0; + } + } + + nz-range-picker { + width: 100%; + } + + .ant-tabs-tab-btn { + padding-left : 16px; + padding-right: 16px; + } +} + +.expend-options { + margin-top: 0px; +} + + +@media (min-width: 1200px) { + .expend-options { + margin-top: -40px; + } + +} \ No newline at end of file diff --git a/src/app/routes/contract-management/components/contract-list/contract-list.component.ts b/src/app/routes/contract-management/components/contract-list/contract-list.component.ts new file mode 100644 index 00000000..e6141fa0 --- /dev/null +++ b/src/app/routes/contract-management/components/contract-list/contract-list.component.ts @@ -0,0 +1,239 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { STComponent, STColumn, STChange } from '@delon/abc/st'; +import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { TicketService } from '../../services/contract-management.service'; + +@Component({ + selector: 'app-contract-management-contract-list', + templateUrl: './contract-list.component.html', + styleUrls: ['./contract-list.component.less'] +}) +export class ContractManagementContractListComponent implements OnInit { + url = `/rule?_allow_anonymous=true`; + @ViewChild('st', { static: true }) + st!: STComponent; + @ViewChild('sf', { static: false }) + sf!: SFComponent; + @ViewChild('auditModal', { static: false }) + auditModal!: any; + schema: SFSchema = {}; + columns: STColumn[] = []; + ui: SFUISchema = {}; + _$expand = false; + + reqParams = {}; + selectedRows: any[] = []; + constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} + + ngOnInit(): void { + this.initST() + this.initSF() + } + /** + * 初始化数据列表 + */ + initST() { + this.columns = [ + { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, + { + title: '合同编号', + width: '100px', + className: 'text-center', + render: 'goodsId' + }, + { + title: '合同类型', + width: '100px', + className: 'text-center', + }, + { title: '托运人', index: 'externalSn', width: '120px', className: 'text-center' }, + { title: '承运人', index: 'linkUrl', width: '120px', className: 'text-center' }, + { + title: '业务单号', + className: 'text-center', + width: '120px', + }, + { + title: '装货地', + className: 'text-center', + width: '120px', + }, + { + title: '卸货地', + className: 'text-center', + width: '120px', + }, + { + title: '货物名称', + className: 'text-center', + width: '120px', + }, + { + title: '重量/体积', + className: 'text-center', + width: '120px', + }, + { + title: '金额', + className: 'text-center', + width: '120px', + }, + { + title: '签署日期', + className: 'text-center', + width: '120px', + render: 'feiong' + }, + { + title: '交易时间', + className: 'text-center', + width: '120px', + }, + // { + // title: '操作', + // fixed: 'right', + // width: '200px', + // className: 'text-left', + // buttons: [ + // { + // text: '查看评价', + // // click: (_record) => this.viewEvaluate(_record), + // }, + // ], + // }, + ]; + } + /** + * 初始化查询表单 + */ + initSF() { + this.schema = { + properties: { + _$expand: { type: 'boolean', ui: { hidden: true } }, + no: { + type: 'string', + title: '用户名', + }, + no2: { + type: 'string', + title: '托运人' + }, + no1: { + type: 'string', + title: '承运人' + }, + createTime: { + title: '签署日期', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd', + visibleIf: { + _$expand: (value: boolean) => value, + }, + } as SFDateWidgetSchema, + }, + appId: { + type: 'string', + title: '合同类型', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + _$expand: (value: boolean) => value, + }, + allowClear: true, + // asyncData: () => this.getCatalogueMember(), + }, + }, + }, + type: 'object', + }; + this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; + } + /** + * 查询字段个数 + */ + get queryFieldCount(): number { + return Object.keys(this.schema?.properties || {}).length; + } + stChange(e: STChange): void { + switch (e.type) { + case 'checkbox': + this.selectedRows = e.checkbox!; + break; + case 'filter': + this.st.load(); + break; + } + } + + approval(): void {} + + add(): void {} + + routeTo(item: any) { + this.router.navigate(['/ticket/invoice-requested-detail/1']); + } + + auditAction(item: any) { + const modal = this.nzModalService.create({ + nzTitle: '审核', + nzContent: this.auditModal, + nzFooter: [ + { + label: '拒绝', + type: 'default', + onClick: () => { + modal.destroy(); + } + }, + { + label: '通过', + type: 'primary', + onClick: () => { + modal.destroy(); + } + } + ] + }); + modal.afterClose.subscribe(res => { + this.st.load(); + }); + } + + showReason(item: any) { + const modal = this.nzModalService.create({ + nzTitle: '查看原因', + nzContent: '运单数据异常,暂时无法开票,请联系客服400-xxxx-xxxx', + nzFooter: [ + { + label: '关闭', + type: 'primary', + onClick: () => { + modal.destroy(); + } + } + ] + }); + } + + /** + * 重置表单 + */ + resetSF() { + this.sf.reset(); + this._$expand = false; + } + + /** + * 伸缩查询条件 + */ + expandToggle(): void { + this._$expand = !this._$expand; + this.sf?.setValue('/_$expand', this._$expand); + } +} diff --git a/src/app/routes/contract-management/contract-management-routing.module.ts b/src/app/routes/contract-management/contract-management-routing.module.ts new file mode 100644 index 00000000..6459588c --- /dev/null +++ b/src/app/routes/contract-management/contract-management-routing.module.ts @@ -0,0 +1,20 @@ +/* + * @Author: your name + * @Date: 2021-12-07 15:57:49 + * @LastEditTime: 2021-12-07 16:11: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\contract-management\contract-management-routing.module.ts + */ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component'; +const routes: Routes = [ + { path: 'list', component: ContractManagementContractListComponent }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ContractManagementManagementRoutingModule {} diff --git a/src/app/routes/contract-management/contract-management.module.ts b/src/app/routes/contract-management/contract-management.module.ts new file mode 100644 index 00000000..8364e34d --- /dev/null +++ b/src/app/routes/contract-management/contract-management.module.ts @@ -0,0 +1,23 @@ +/* + * @Author: your name + * @Date: 2021-12-07 15:57:49 + * @LastEditTime: 2021-12-07 16:11:48 + * @LastEditors: your name + * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + * @FilePath: \tms-obc-web\src\app\routes\contract-management\contract-management.module.ts + */ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SharedModule } from '@shared'; +import { ContractManagementManagementRoutingModule } from './contract-management-routing.module'; +import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component'; + +const COMPONENTS: any = [ + ContractManagementContractListComponent +]; +const NOTROUTECOMPONENTS: any = []; +@NgModule({ + declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS], + imports: [CommonModule, ContractManagementManagementRoutingModule, SharedModule] +}) +export class ContractManagementManagementModule {} diff --git a/src/app/routes/contract-management/services/contract-management.service.ts b/src/app/routes/contract-management/services/contract-management.service.ts new file mode 100644 index 00000000..59cef689 --- /dev/null +++ b/src/app/routes/contract-management/services/contract-management.service.ts @@ -0,0 +1,11 @@ +import { Injectable, Injector } from '@angular/core'; +import { BaseService } from 'src/app/shared/services'; + +@Injectable({ + providedIn: 'root' +}) +export class TicketService extends BaseService { + constructor(public injector: Injector) { + super(injector); + } +} diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts index 930bd03e..f78cb0ee 100644 --- a/src/app/routes/routes-routing.module.ts +++ b/src/app/routes/routes-routing.module.ts @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-11-29 10:20:33 - * @LastEditTime: 2021-12-07 14:57:47 + * @LastEditTime: 2021-12-07 16:12:50 * @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\routes-routing.module.ts @@ -38,6 +38,7 @@ const routes: Routes = [ { path: 'supply-management', loadChildren: () => import('./supply-management/supply-management.module').then((m) => m.SupplyManagementModule) }, { path: 'order-management', loadChildren: () => import('./order-management/order-management.module').then((m) => m.OrderManagementModule) }, { path: 'waybill-management', loadChildren: () => import('./waybill-management/waybill-management.module').then((m) => m.WaybillManagementModule) }, + { path: 'contract-management', loadChildren: () => import('./contract-management/contract-management.module').then((m) => m.ContractManagementManagementModule) }, ] }, // passport diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index e5b4fb6d..406d064f 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -285,6 +285,17 @@ } ] }, + { + "text": "合同管理", + "icon": "anticon anticon-dashboard", + "group": true, + "children": [ + { + "text": "合同列表", + "link": "/contract-management/list" + } + ] + }, { "text": "系统设置", "icon": "anticon anticon-dashboard",