Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -14,6 +14,10 @@
|
||||
nz-range-picker {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.text-truncate {
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.expend-options {
|
||||
|
||||
@ -157,20 +157,23 @@ export class RechargeRecordComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '充值时间', index: 'createTime', type: 'date' },
|
||||
{ title: '充值单号', index: 'rechargeNo' },
|
||||
{ title: '网络货运人', index: 'ltdName' },
|
||||
{ title: '银行类型', index: 'bankTypeLabel' },
|
||||
{ title: '账户类型', index: 'accountTypeLabel' },
|
||||
{ title: '账户名称', index: 'rechargeName' },
|
||||
{ title: '虚拟账户', index: 'virtualAccount' },
|
||||
{ title: '充值金额', index: 'rechargeAmount' },
|
||||
{ title: '充值银行账户', render: 'transferBankAccount' },
|
||||
{ title: '充值方式', index: 'payChannelLabel' },
|
||||
{ title: '充值状态', index: 'rechargeStatusLabel' },
|
||||
{ title: '银行流水号', index: 'paySerialNumber' },
|
||||
{ title: '充值时间', index: 'createTime', type: 'date', width: 180 },
|
||||
{ title: '充值单号', index: 'rechargeNo', width: 120 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 120 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'rechargeName', width: 100 },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
||||
{ title: '充值金额', index: 'rechargeAmount', width: 100 },
|
||||
{ title: '充值银行账户', render: 'transferBankAccount', width: 140 },
|
||||
{ title: '充值方式', index: 'payChannelLabel', width: 100 },
|
||||
{ title: '充值状态', index: 'rechargeStatusLabel', width: 100 },
|
||||
{ title: '银行流水号', index: 'paySerialNumber', width: 120 },
|
||||
{
|
||||
title: '操作',
|
||||
width: 100,
|
||||
fixed: 'right',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '查看回单'
|
||||
|
||||
@ -206,12 +206,12 @@ export class TransactionFlowComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '交易时间', index: 'createTime', width: 150 },
|
||||
{ title: '交易时间', index: 'createTime', width: 180 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 150 },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', width: 100 },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', width: 120 },
|
||||
{ title: '关联单号', index: 'businessNumber', width: 150 },
|
||||
{ title: '账户类型', index: 'channelSource', width: 100, enum: { 1: '货主端', 2: '司机端', 3: '运营平台' } },
|
||||
{ title: '账户名称', index: 'driverName', width: 100 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'enterpriseName', width: 100 },
|
||||
{ title: '所属项目', index: 'projectName', width: 100 },
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', width: 100 },
|
||||
{ title: '交易金额', index: 'amount', width: 100 },
|
||||
|
||||
@ -31,27 +31,44 @@ export class WithdrawalsDetailComponent implements OnInit {
|
||||
this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => {
|
||||
if (res) {
|
||||
this.formData = res;
|
||||
// 处理流程节点数据
|
||||
// 流程是否结束
|
||||
let isEnd = false;
|
||||
if (res.successTime) {
|
||||
this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
|
||||
isEnd = true;
|
||||
if (res.refundStatus === '3') {
|
||||
this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
|
||||
} else {
|
||||
this.timeLineData.push({ time: res.successTime, value: `提现失败`, color: 'red' });
|
||||
}
|
||||
}
|
||||
if (res.agreeTime) {
|
||||
if (res.agreeTime && res.refundStatus !== '4') {
|
||||
this.timeLineData.push({ time: res.agreeTime, value: `银行处理中`, color: 'gray' });
|
||||
}
|
||||
if (res.agreeTime) {
|
||||
this.timeLineData.push({
|
||||
time: res.agreeTime,
|
||||
value: `审核通过<br/>操作人员:${res.bankAccountName}`,
|
||||
color: 'gray'
|
||||
});
|
||||
if (res.refundStatus === '4') {
|
||||
isEnd = true;
|
||||
this.timeLineData.push({
|
||||
time: res.agreeTime,
|
||||
value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'red'
|
||||
});
|
||||
} else {
|
||||
this.timeLineData.push({
|
||||
time: res.agreeTime,
|
||||
value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'gray'
|
||||
});
|
||||
}
|
||||
}
|
||||
if (res.createTime) {
|
||||
this.timeLineData.push({
|
||||
time: res.createTime,
|
||||
value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.bankAccountName}`,
|
||||
value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.userIdLabel}`,
|
||||
color: 'gray'
|
||||
});
|
||||
}
|
||||
if (this.timeLineData?.length > 0) {
|
||||
if (this.timeLineData?.length > 0 && !isEnd) {
|
||||
this.timeLineData[0].color = 'green';
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,18 +6,18 @@
|
||||
<div style="width: 250px;">
|
||||
<nz-list nzBordered [nzHeader]="listHeader">
|
||||
<nz-list-item *ngFor="let item of typeList;let i = index"
|
||||
[ngClass]="{'select-type': selectedType===item.id}">
|
||||
[ngClass]="{'select-type': selectedType.id===item.id}" (click)="selectedTypeAction(item)">
|
||||
<div class="d-flex justify-content-between align-items-center" style="width: 100%;">
|
||||
<label style="flex:1">{{item.title}}</label>
|
||||
<label style="flex:1">{{item.name}}</label>
|
||||
<i nz-icon nzType="more" nzTheme="outline" style="font-size: 18px;cursor: pointer;" nz-dropdown
|
||||
[nzDropdownMenu]="menu" nzTrigger="click"></i>
|
||||
</div>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu nzSelectable>
|
||||
<li nz-menu-item>编辑{{i}}</li>
|
||||
<li nz-menu-item>上移</li>
|
||||
<li nz-menu-item>下移</li>
|
||||
<li nz-menu-item nzDanger>删除</li>
|
||||
<li nz-menu-item (click)="typeAction(item)">编辑</li>
|
||||
<li nz-menu-item (click)="sortType(item,3)" *ngIf="i!==0">上移</li>
|
||||
<li nz-menu-item (click)="sortType(item,4)" *ngIf="i!==typeList.length-1">下移</li>
|
||||
<li nz-menu-item nzDanger (click)="removeType(item)">删除</li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
</nz-list-item>
|
||||
@ -25,7 +25,8 @@
|
||||
<ng-template #listHeader>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<label style="font-weight: 700;font-size: 16px;">货物类型</label>
|
||||
<button nz-button nzType="primary"><i nz-icon nzType="plus" nzTheme="outline"></i>新增</button>
|
||||
<button nz-button nzType="primary" (click)="typeAction()"><i nz-icon nzType="plus"
|
||||
nzTheme="outline"></i>新增</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</div>
|
||||
@ -33,20 +34,44 @@
|
||||
<div style="flex: 1;" class="ml-md">
|
||||
<div class="d-flex justify-content-between align-items-center mb-md">
|
||||
<nz-input-group [nzSuffix]="suffixTemplateInfo" style="width: 300px;">
|
||||
<input type="text" nz-input placeholder="请输入货物名称" />
|
||||
<input type="text" nz-input placeholder="请输入货物名称" [(ngModel)]="searchName" (keydown)="keydownEvent($event)"/>
|
||||
</nz-input-group>
|
||||
<ng-template #suffixTemplateInfo><i nz-icon nzType="search" nzTheme="outline"></i></ng-template>
|
||||
<button nz-button nzType="primary"><i nz-icon nzType="plus" nzTheme="outline"></i>新增</button>
|
||||
<ng-template #suffixTemplateInfo><i nz-icon nzType="search" nzTheme="outline" (click)="st.load(1)"></i>
|
||||
</ng-template>
|
||||
<button nz-button nzType="primary" (click)="typeItemAction()"><i nz-icon nzType="plus"
|
||||
nzTheme="outline"></i>新增</button>
|
||||
</div>
|
||||
|
||||
<st #st [data]="url" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
<st #st [data]="selectedType?.id?service.$api_get_config_item_page:[]" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[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" [scroll]="{ y: '370px' }"></st>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</nz-card>
|
||||
|
||||
|
||||
<ng-template #configTypeModal>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="110">
|
||||
<se [col]="1" label="货物类型" required="">
|
||||
<input nz-input [(ngModel)]="configTypeName" placeholder="请输入" />
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #configTypeItemModal>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="110">
|
||||
<se [col]="1" label="货物类型" required="">
|
||||
{{selectedType?.name}}
|
||||
</se>
|
||||
<se [col]="1" label="货物名称" required="">
|
||||
<input nz-input [(ngModel)]="configTypeItemName" placeholder="请输入" />
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STComponent, STColumn } from '@delon/abc/st';
|
||||
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { SystemService } from '../../services/system.service';
|
||||
|
||||
@ -9,66 +9,229 @@ import { SystemService } from '../../services/system.service';
|
||||
styleUrls: ['./goods-name-config.component.less']
|
||||
})
|
||||
export class GoodsNameConfigComponent implements OnInit {
|
||||
typeList = [
|
||||
{ title: '零件配件', sort: 1, id: 1 },
|
||||
{ title: '衣用物资', sort: 2, id: 2 },
|
||||
{ title: '空包装', sort: 3, id: 3 },
|
||||
{ title: '废品废料', sort: 4, id: 4 },
|
||||
{ title: '家具家居', sort: 8, id: 5 },
|
||||
{ title: '衣用物资', sort: 6, id: 6 },
|
||||
{ title: '空包装', sort: 7, id: 7 },
|
||||
{ title: '衣用物资', sort: 8, id: 8 },
|
||||
{ title: '空包装', sort: 9, id: 9 },
|
||||
{ title: '废品废料', sort: 10, id: 10 },
|
||||
{ title: '废品废料2', sort: 11, id: 11 },
|
||||
{ title: '废品废料3', sort: 12, id: 12 },
|
||||
{ title: '零件配件', sort: 1, id: 1 },
|
||||
{ title: '衣用物资', sort: 2, id: 2 },
|
||||
{ title: '空包装', sort: 3, id: 3 },
|
||||
{ title: '废品废料', sort: 4, id: 4 },
|
||||
{ title: '家具家居', sort: 8, id: 5 },
|
||||
{ title: '衣用物资', sort: 6, id: 6 },
|
||||
{ title: '空包装', sort: 7, id: 7 },
|
||||
{ title: '衣用物资', sort: 8, id: 8 },
|
||||
{ title: '空包装', sort: 9, id: 9 },
|
||||
{ title: '废品废料', sort: 10, id: 10 },
|
||||
{ title: '废品废料2', sort: 11, id: 11 },
|
||||
{ title: '废品废料3', sort: 12, id: 12 }
|
||||
];
|
||||
selectedType = 1;
|
||||
|
||||
@ViewChild('configTypeModal', { static: true })
|
||||
configTypeModal: any;
|
||||
@ViewChild('configTypeItemModal', { static: true })
|
||||
configTypeItemModal: any;
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
url = `/rule?_allow_anonymous=true`;
|
||||
reqParams = {};
|
||||
typeList: any[] = [];
|
||||
selectedType: any = null;
|
||||
parentId = null;
|
||||
|
||||
columns: STColumn[] = [
|
||||
{ title: '货物名称', index: 'no' },
|
||||
{ title: '更新时间', index: 'description' },
|
||||
{ title: '货物名称', index: 'name' },
|
||||
{ title: '更新时间', index: 'modifyTime' },
|
||||
{
|
||||
title: '操作',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑'
|
||||
// click: item => this.staffAction(item)
|
||||
text: '编辑',
|
||||
click: item => this.typeItemAction(item)
|
||||
},
|
||||
{
|
||||
text: '上移',
|
||||
iif: item => item.no !== 0
|
||||
// click: item => this.action(2)
|
||||
click: item => this.sortTypeItem(item, 3)
|
||||
},
|
||||
{
|
||||
text: '下移',
|
||||
iif: item => item.status !== 10
|
||||
// click: item => this.action(1)
|
||||
click: item => this.sortTypeItem(item, 4)
|
||||
},
|
||||
{
|
||||
text: '删除',
|
||||
// click: item => this.action(3)
|
||||
click: item => this.removeTypeItem(item)
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
configTypeName = '';
|
||||
configTypeItemName = '';
|
||||
searchName = '';
|
||||
constructor(public service: SystemService, private nzModalService: NzModalService) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
ngOnInit(): void {
|
||||
this.getTypeList();
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, {
|
||||
configId: this.selectedType?.id
|
||||
});
|
||||
if (this.searchName) {
|
||||
Object.assign(requestOptions.body, {
|
||||
name: this.searchName
|
||||
});
|
||||
}
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
keydownEvent(event: any) {
|
||||
if (event.keyCode === 13) {
|
||||
this.st.load(1);
|
||||
}
|
||||
}
|
||||
|
||||
getTypeList() {
|
||||
this.service.request(this.service.$api_get_config_tree, { configFullKey: 'goods.name.config' }).subscribe((res: Array<any>) => {
|
||||
if (res?.length > 0) {
|
||||
const typeData = res
|
||||
.find(config => config.configFullKey === 'goods.name.config')
|
||||
?.children.find((type: any) => type.configFullKey === 'goods.name.config.type');
|
||||
if (typeData) {
|
||||
this.typeList = typeData.children;
|
||||
this.parentId = typeData.id;
|
||||
this.selectedType = typeData.children[0];
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
selectedTypeAction(item: any) {
|
||||
this.selectedType = item;
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 货物类型操作
|
||||
* @param item
|
||||
*/
|
||||
typeAction(item?: any) {
|
||||
this.configTypeName = item?.name || '';
|
||||
this.nzModalService.create({
|
||||
nzTitle: item ? '编辑' : '新增',
|
||||
nzContent: this.configTypeModal,
|
||||
nzOnOk: () => {
|
||||
if (!this.configTypeName) {
|
||||
this.service.msgSrv.warning('请填写货物类型');
|
||||
return false;
|
||||
}
|
||||
if (item) {
|
||||
this.service.request(this.service.$api_update_config, { ...item, name: this.configTypeName }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新货物类型成功');
|
||||
this.getTypeList();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.service.request(this.service.$api_add_config, { name: this.configTypeName, parentId: this.parentId }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('新增货物类型成功');
|
||||
this.getTypeList();
|
||||
}
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 货物类型操作
|
||||
* @param item
|
||||
*/
|
||||
typeItemAction(item?: any) {
|
||||
this.configTypeItemName = item?.name || '';
|
||||
this.nzModalService.create({
|
||||
nzTitle: item ? '编辑' : '新增',
|
||||
nzContent: this.configTypeItemModal,
|
||||
nzOnOk: () => {
|
||||
if (!this.configTypeItemName) {
|
||||
this.service.msgSrv.warning('请填写货物名称');
|
||||
return false;
|
||||
}
|
||||
if (item) {
|
||||
this.service.request(this.service.$api_update_config_item, { ...item, name: this.configTypeItemName }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新货物名称成功');
|
||||
this.st.load(1);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.service
|
||||
.request(this.service.$api_add_config_item, {
|
||||
name: this.configTypeItemName,
|
||||
configId: this.selectedType.id
|
||||
})
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('新增货物名称成功');
|
||||
this.st.load(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除货物类型
|
||||
* @param item
|
||||
*/
|
||||
removeType(item: any) {
|
||||
this.nzModalService.warning({
|
||||
nzTitle: '确定删除该货物类型吗?',
|
||||
nzContent: '分类下含有内容则无法删除,请确认',
|
||||
nzOnOk: () => {
|
||||
this.service.request(this.service.$api_remove_config, [item.id]).subscribe(res => {
|
||||
if (res) {
|
||||
this.getTypeList();
|
||||
this.service.msgSrv.success('删除货物类型成功');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除货物名称
|
||||
* @param item
|
||||
*/
|
||||
removeTypeItem(item: any) {
|
||||
this.nzModalService.warning({
|
||||
nzTitle: '确定删除该货物名称吗?',
|
||||
nzContent: '删除后不可恢复,谨慎操作',
|
||||
nzOnOk: () => {
|
||||
this.service.request(this.service.$api_remove_config_item, [item.id]).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('删除货物名称成功');
|
||||
this.st.load(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改类型排序
|
||||
* @param item
|
||||
* @param sortMode
|
||||
*/
|
||||
sortType(item: any, sortMode: 1 | 2 | 3 | 4) {
|
||||
this.service.request(this.service.$api_update_config_sort, { id: item.id, sortMode }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新排序成功');
|
||||
this.getTypeList();
|
||||
} else {
|
||||
this.service.msgSrv.warning('更新排序失败');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改类型详情排序
|
||||
* @param item
|
||||
* @param sortMode
|
||||
*/
|
||||
sortTypeItem(item: any, sortMode: 1 | 2 | 3 | 4) {
|
||||
this.service.request(this.service.$api_update_config_item_sort, { id: item.id, sortMode }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新排序成功');
|
||||
this.st.load(1);
|
||||
} else {
|
||||
this.service.msgSrv.warning('更新排序失败');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,6 +92,27 @@ export class SystemService extends BaseService {
|
||||
// 编辑协议
|
||||
public $api_update_agreement = '/api/mdc/pbc/agreementInfo/modifyAgreementInfo';
|
||||
|
||||
// 根据FullKey获取系统子配置(树)
|
||||
public $api_get_config_tree = '/api/mdc/pbc/sysConfig/getSysConfigTreeByParentFullKey';
|
||||
// 新增系统配置
|
||||
public $api_add_config = '/api/mdc/pbc/sysConfig/save';
|
||||
// 更新系统配置
|
||||
public $api_update_config = '/api/mdc/pbc/sysConfig/update';
|
||||
// 更新系统配置排序
|
||||
public $api_update_config_sort = '/api/mdc/pbc/sysConfig/updateSort';
|
||||
// 删除系统配置
|
||||
public $api_remove_config = '/api/mdc/pbc/sysConfig/deletebatch';
|
||||
// 查询系统配置项
|
||||
public $api_get_config_item_page = '/api/mdc/pbc/sysConfigItem/list/page';
|
||||
// 新增系统配置项
|
||||
public $api_add_config_item = '/api/mdc/pbc/sysConfigItem/save';
|
||||
// 更新系统配置项
|
||||
public $api_update_config_item = '/api/mdc/pbc/sysConfigItem/update';
|
||||
// 更新系统配置项排序
|
||||
public $api_update_config_item_sort = '/api/mdc/pbc/sysConfigItem/updateSort';
|
||||
// 删除系统配置项
|
||||
public $api_remove_config_item = '/api/mdc/pbc/sysConfigItem/deletebatch';
|
||||
|
||||
$api_getRoleTemplateInfo: string = '';
|
||||
$api_getFunctionButtonInfo: string = '';
|
||||
$api_getFunctionDataInfo: string = '';
|
||||
|
||||
Reference in New Issue
Block a user