import { Component, OnInit, ViewChild } from '@angular/core'; import { STColumn, STComponent } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ModalHelper, _HttpClient } from '@delon/theme'; import { NzModalService } from 'ng-zorro-antd/modal'; import { map } from 'rxjs/operators'; import { SupplyManagementService } from '../../services/order-management.service'; @Component({ selector: 'app-supply-management-vehicle', templateUrl: './vehicle.component.html', styleUrls: ['./vehicle.component.less'] }) export class OrderManagementVehicleComponent implements OnInit { url = `/user?_allow_anonymous=true`; ui: SFUISchema = {}; schema: SFSchema = {}; auditMany = false; isVisibleView = false; isVisibleEvaluate = false; isVisible = false; _$expand = false; @ViewChild('st') private readonly st!: STComponent; @ViewChild('stFloat') private readonly stFloat!: STComponent; @ViewChild('stFloatView') private readonly stFloatView!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; columns: STColumn[] = []; columnsFloat: STColumn[] = []; columnsFloatView: STColumn[] = []; datass: any = [ { one: '1', two: '1', three: '1', id: 1 }, { one: '2', two: '2', three: '2', id: 2 }, ]; tabs = [ { name: '全部', type: 5, count: 0, }, { name: '待接单', type: 5, count: 0, }, { name: '待发车', type: 5, count: 0, }, { name: '运输中', type: 5, count: 0, }, { name: '代签收', type: 5, count: 0, }, { name: '已完成', type: 5, count: 0, }, { name: '已取消', type: 5, count: 0, }, ]; constructor(public service: SupplyManagementService, private modal: NzModalService) { } /** * 查询参数 */ get reqParams() { return { ...this.sf?.value, }; } get selectedRows() { return this.st?.list.filter((item) => item.checked) || []; } ngOnInit(): void { this.initSF(); this.initST(); this.initSTFloat(); this.initSTFloatView(); } /** * 初始化查询表单 */ initSF() { this.schema = { properties: { _$expand: { type: 'boolean', ui: { hidden: true } }, no: { type: 'string', title: '订单号', }, no2: { type: 'string', title: '货源编号' }, no1: { type: 'string', title: '托运人' }, no3: { type: 'string', title: '装货地', ui: { visibleIf: { _$expand: (value: boolean) => value, }, } }, no4: { type: 'string', title: '卸货地', ui: { visibleIf: { _$expand: (value: boolean) => value, }, } }, no7: { type: 'string', title: '承运司机', ui: { visibleIf: { _$expand: (value: boolean) => value, }, } }, no9: { type: 'string', title: '车牌号', ui: { visibleIf: { _$expand: (value: boolean) => value, }, } }, no10: { type: 'string', title: '收款人', ui: { visibleIf: { _$expand: (value: boolean) => value, }, } }, sex: { title: '支付状态', type: 'string', default: 0, enum: [ { label: '未知', value: 0 }, { label: '男', value: 1 }, { label: '女', value: 2 }, { label: '保密', value: 3 }, ], ui: { widget: 'select', visibleIf: { _$expand: (value: boolean) => value, }, } as SFSelectWidgetSchema, }, 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 } } }; } /** * 初始化数据列表 */ 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', render: 'enStatusStr27878' }, { title: '浮动费用', className: 'text-center', width: '120px', render: 'feiong' }, { title: '成交金额', className: 'text-center', width: '120px', }, { title: '收款人', className: 'text-center', index: 'enStatusStr2', type: 'badge', width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, 废弃: { text: '废弃', color: 'default' }, }, }, { title: '支付状态', width: '170px', className: 'text-center', }, { title: '创建时间', className: 'text-center', index: 'enStatusStr3', type: 'badge', width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, 废弃: { text: '废弃', color: 'default' }, }, }, { title: '异常原因', className: 'text-center', index: 'enStatusStr3', type: 'badge', width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, 废弃: { text: '废弃', color: 'default' }, }, }, { title: '运单状态', className: 'text-center', index: 'enStatusStr3', type: 'badge', width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, 废弃: { text: '废弃', color: 'default' }, }, }, { title: '操作', fixed: 'right', width: '200px', className: 'text-left', buttons: [ { text: '查看评价', click: (_record) => this.viewEvaluate(_record), }, ], }, ]; } initSTFloat() { this.columnsFloat = [ { title: '序号', className: 'text-center', index: 'one', }, { title: '操作时间', className: 'text-center', index: 'two', }, { title: '操作人', className: 'text-center', index: 'three', }, { title: '状态', index: 'externalSn', className: 'text-center' }, { title: '操作', fixed: 'right', className: 'text-left', buttons: [ { text: '查看', click: (_record) => this.FloatView(_record), }, { text: '撤销', click: (_record) => this.audit(_record), }, ], }, ]; } initSTFloatView() { this.columnsFloatView = [ { title: '费用名称', width: '100px', className: 'text-center', render: 'goodsId' }, { title: '变更前', width: '100px', className: 'text-center', }, { title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, { title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } ]; } /** * 查询字段个数 */ get queryFieldCount(): number { return Object.keys(this.schema?.properties || {}).length; } /** * 伸缩查询条件 */ expandToggle(): void { this._$expand = !this._$expand; this.sf?.setValue('/_$expand', this._$expand); } tabChange(item: any) { console.log(item) } /** * 重置表单 */ resetSF(): void { this.sf.reset(); this._$expand = false; } // 获取录单员 getCatalogueMember() { const params = { }; return this.service.request(this.service.$api_get_catalogue_member, params, 'GET').pipe( map((res) => { if (res) { console.log(res) } }), ); } selectChange(e: number) { console.log(e); } /** * 导入货源 */ importGoodsSource() { } audit(item: any) { console.log(item) } /* * 审核关闭弹窗 view: 1 浮动费用: 0 查看评价: 3 */ handleCancel(type: string) { console.log(type) if(type === '0') { this.isVisible = false } else if(type === '1') { console.log(type) this.isVisibleView = false } else if(type === '2') { console.log(type) this.isVisibleEvaluate = false } } /** * 审核通过按钮 */ handleOK() { } OpenPrice() { this.isVisible = true } /** * 浮动费用查看 */ FloatView(item: any) { console.log(item) this.isVisibleView = true } /** *查看评价 */ viewEvaluate(item: any) { console.log(item) this.isVisibleEvaluate = true } }