Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-22 10:10:22 | ||||
|  * @LastEditTime: 2021-12-22 19:58:23 | ||||
|  * @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\supply-management\components\vehicle\vehicle.component.html | ||||
| @ -104,19 +104,22 @@ | ||||
| </nz-card> | ||||
|  | ||||
|  | ||||
| <nz-modal [(nzVisible)]="isVisible"  [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="浮动费用" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')"> | ||||
| <nz-modal [(nzVisible)]="isVisible"  [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')"> | ||||
|   <ng-container *nzModalContent> | ||||
|     <st | ||||
|     #stFloat | ||||
|     size="small" | ||||
|     [bordered]="true" | ||||
|     [data]="datass" | ||||
|     [data]="service.$api_get_listChangeApply" | ||||
|     [columns]="columnsFloat" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" | ||||
|     [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }" | ||||
|     [res]="{ reName: { list: 'data', total: 'data.total' } }" | ||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|   <ng-template st-row="order" let-item let-index="index"> | ||||
|     {{ index + 1 }} | ||||
|   </ng-template> | ||||
|   <ng-template st-row="externalSn" let-item let-index="index"> | ||||
|     <div> | ||||
|       <span *ngIf="item?.externalSn == '1'">待确认</span> | ||||
| @ -129,14 +132,14 @@ | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooter> | ||||
|     <button nz-button nzType="primary" (click)="handleCancel('0')">取消</button> | ||||
|     <button nz-button nzType="default" (click)="handleOK()">确定</button> | ||||
|     <button nz-button nzType="default" (click)="handleCancel('0')">确定</button> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
|  | ||||
|  | ||||
| <nz-modal [(nzVisible)]="isVisibleView"  [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')"> | ||||
|   <ng-container *nzModalContent> | ||||
|     <sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'"> | ||||
|     <sf #sfView [schema]="schemaView" [ui]="uiView" [formData]="ViewCause" [compact]="true" [button]="'none'"> | ||||
|       <ng-template sf-template="no" let-me let-ui="uiView" let-schema="schemaView"> | ||||
|        <div style="display: flex;"> | ||||
|         <nz-input-number [(ngModel)]="demoValue" [nzMin]="1" [nzMax]="10" [nzStep]="1"></nz-input-number> | ||||
| @ -149,21 +152,20 @@ | ||||
|     multiSort | ||||
|     size="small" | ||||
|     [bordered]="true" | ||||
|     [data]="datass" | ||||
|     [data]="service.$api_getChangeRecordBulkDetail" | ||||
|     [columns]="columnsFloatView" | ||||
|     [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] }" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }" | ||||
|     [res]="{ reName: { list: 'data.list', total: 'data.total' } }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|   </st> | ||||
|   <div><span>变更原因:</span></div> | ||||
|   <div><span>拒绝原因:</span></div> | ||||
|   <div><span>注:</span></div> | ||||
|   <div><span>变更原因:{{ViewCause?.changeCause}}</span></div> | ||||
|   <div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></div> | ||||
|   <div><span>注:附加费依据调整后的运输费用重新计算</span></div> | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooterview> | ||||
|     <button nz-button nzType="default" (click)="handleCancel('1')">取消</button> | ||||
|     <button nz-button nzType="primary" (click)="handleOK()">确定</button> | ||||
|     <button nz-button nzType="primary" (click)="handleCancel('1')">确定</button> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
|  | ||||
|  | ||||
| @ -28,6 +28,10 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|   isVisibleEvaluate = false; | ||||
|   isVisible = false; | ||||
|   _$expand = false; | ||||
|   changeId: any;       // 主页面查看运费变更记录id - 用于运费变更记录 | ||||
|   changeViewId: any;  // 查看运费变更记录id - 用于查看 | ||||
|   ViewCause: any;  // 变更运费查看数据 | ||||
|   sfViewFormData: any;  // 变更运费查看的sf 数据 | ||||
|   @ViewChild('st') private readonly st!: STComponent; | ||||
|   @ViewChild('stFloat') private readonly stFloat!: STComponent; | ||||
|   @ViewChild('stFloatView') private readonly stFloatView!: STComponent; | ||||
| @ -76,6 +80,11 @@ tabs = { | ||||
|   get selectedRows() { | ||||
|     return this.st?.list.filter((item) => item.checked) || []; | ||||
|   } | ||||
|   get changeParams() { | ||||
|     return { | ||||
|       id: this.changeId | ||||
|     }; | ||||
|   } | ||||
|   getGoodsSourceStatistical() { | ||||
|     this.service.request(this.service.$api_getBulkStatistical).subscribe(res => { | ||||
|       if (res) { | ||||
| @ -311,39 +320,33 @@ tabs = { | ||||
|   initSFView() { | ||||
|     this.schemaView = { | ||||
|       properties: { | ||||
|         no: { | ||||
|         freightPrice: { | ||||
|           type: 'string', | ||||
|           title: '运费单价', | ||||
|          ui: { | ||||
|           widget: 'custom', | ||||
|          } | ||||
|         }, | ||||
|         sex: { | ||||
|         rule: { | ||||
|           title: '', | ||||
|           type: 'string', | ||||
|           default: 0, | ||||
|           enum: [ | ||||
|             { label: '保留小数', value: 0 }, | ||||
|             { label: '男', value: 1 }, | ||||
|             { label: '女', value: 2 }, | ||||
|             { label: '保密', value: 3 }, | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'goodresource:rounding:rules' }, | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|         appId: { | ||||
|         settlementBasis: { | ||||
|           type: 'string', | ||||
|           title: '结算重量', | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.getCatalogueMember(), | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'goodresource:settlement:type' }, | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|       }, | ||||
|       }, | ||||
|       type: 'object', | ||||
|     }; | ||||
|     this.uiView = { '*': { spanLabelFixed: 80, grid: { span: 12, gutter: 4 } } }; | ||||
|   } | ||||
| @ -468,19 +471,19 @@ tabs = { | ||||
|       { | ||||
|         title: '序号', | ||||
|         className: 'text-center', | ||||
|         index: 'one',  | ||||
|         render: 'order' | ||||
|       }, | ||||
|       { | ||||
|         title: '操作时间', | ||||
|         className: 'text-center', | ||||
|         index: 'two',  | ||||
|         index: 'applyTime' | ||||
|       }, | ||||
|       { | ||||
|         title: '操作人', | ||||
|         className: 'text-center', | ||||
|         index: 'three',  | ||||
|         index: 'applyUserName' | ||||
|       }, | ||||
|       { title: '状态', render: 'externalSn',  className: 'text-center' }, | ||||
|       { title: '状态',     index: 'handleStatus',  className: 'text-center' }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         fixed: 'right', | ||||
| @ -490,10 +493,14 @@ tabs = { | ||||
|             text: '查看', | ||||
|             click: (_record) => this.FloatView(_record), | ||||
|           }, | ||||
|           // { | ||||
|           //   text: '查看协议', | ||||
|           //   click: (_record, _modal, _instance) => this.view(_record) | ||||
|           // }, | ||||
|           { | ||||
|             text: '撤销', | ||||
|             click: (_record) => this.audit(_record), | ||||
|            iif: item => item.externalSn === '1' || item.externalSn === 1, | ||||
|             click: (_record) => this.revoke(_record), | ||||
|            iif: item => item.handleStatus === '1' || item.handleStatus === 1, | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
| @ -505,15 +512,16 @@ tabs = { | ||||
|         title: '费用名称', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         render: 'goodsId' | ||||
|         index: 'costName' | ||||
|       }, | ||||
|       { | ||||
|         title: '变更前', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         index: 'amountAfterChange' | ||||
|       }, | ||||
|       { title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } | ||||
|       { title: '变更值', index: 'amountchangeValue', width: '120px', className: 'text-center' }, | ||||
|       { title: '变更后', index: 'amountBeforeChange', width: '120px', className: 'text-center' } | ||||
|     ]; | ||||
|   } | ||||
|   /** | ||||
| @ -522,6 +530,11 @@ tabs = { | ||||
|   get queryFieldCount(): number { | ||||
|     return Object.keys(this.schema?.properties || {}).length; | ||||
|   } | ||||
|   get changeViewParams() { | ||||
|     return { | ||||
|       id: this.changeViewId | ||||
|     }; | ||||
|   } | ||||
|   /** | ||||
|   * 伸缩查询条件 | ||||
|   */ | ||||
| @ -589,6 +602,7 @@ tabs = { | ||||
|      | ||||
|   } | ||||
|   OpenPrice(item: any) { | ||||
|     this.changeId = item.id; | ||||
|     this.isVisible = true | ||||
|   } | ||||
|    /** | ||||
| @ -596,6 +610,10 @@ tabs = { | ||||
|   */ | ||||
|   FloatView(item: any) { | ||||
|     console.log(item) | ||||
|     this.changeViewId = item.id; | ||||
|     this.service.request(this.service.$api_getChangeRecordBulkDetail, {id: this.changeViewId}).subscribe((res) => { | ||||
|       this.ViewCause = res; | ||||
|     }) | ||||
|     this.isVisibleView = true | ||||
|   } | ||||
|    /** | ||||
| @ -615,7 +633,7 @@ tabs = { | ||||
|           nzTitle: '变更运费', | ||||
|           nzWidth: 580, | ||||
|           nzContent: UpdateFreightComponent, | ||||
|           nzComponentParams: { data }, | ||||
|           nzComponentParams: { data: { ...data, billId: item.id } }, | ||||
|           nzOnOk: sin => { | ||||
|             this.service.request(this.service.$api_insertFreightChangeBulk, { billId: item.id, ...sin.sf.value }).subscribe(res => { | ||||
|               if (res) { | ||||
| @ -676,4 +694,19 @@ tabs = { | ||||
|             }), | ||||
|         }) | ||||
|       } | ||||
|       revoke(item: any) { | ||||
|         this.modal.confirm({ | ||||
|           nzTitle: '是否确定立即撤销费用变更!</i>', | ||||
|           nzOnOk: () =>  | ||||
|           this.service.request(this.service.$api_get_revokeChangeRecord, { id: item.id}).subscribe((res) => { | ||||
|             console.log(res) | ||||
|             if(res) { | ||||
|               this.service.msgSrv.success('撤销成功!') | ||||
|               this.stFloat.reload() | ||||
|             } else { | ||||
|               this.service.msgSrv.error(res.msg) | ||||
|             } | ||||
|           }) | ||||
|         }); | ||||
|       } | ||||
| } | ||||
|  | ||||
| @ -417,7 +417,7 @@ export class OrderManagementRiskComponent implements OnInit { | ||||
|         this.isVisibleRE = false; | ||||
|         this.st.reload() | ||||
|       } else { | ||||
|         // this.service.msgSrv.error(res.msg); | ||||
|         this.service.msgSrv.error(res?.msg); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
| @ -446,7 +446,7 @@ export class OrderManagementRiskComponent implements OnInit { | ||||
|         this.isVisibleRE = false; | ||||
|         this.st.reload() | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res.msg); | ||||
|         this.service.msgSrv.error(res?.msg); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-22 09:56:27 | ||||
|  * @LastEditTime: 2021-12-22 19:48:42 | ||||
|  * @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\supply-management\components\vehicle\vehicle.component.html | ||||
| @ -160,7 +160,7 @@ | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooter> | ||||
|     <button nz-button nzType="primary" (click)="handleCancel('0')">取消</button> | ||||
|     <button nz-button nzType="default" (click)="handleOK()">确定</button> | ||||
|     <button nz-button nzType="default" (click)="handleCancel('0')">确定</button> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
|  | ||||
| @ -172,20 +172,20 @@ | ||||
|     multiSort | ||||
|     size="small" | ||||
|     [bordered]="true" | ||||
|     [data]="service.$api_get_listChangeApply" | ||||
|     [data]="service.$api_getChangeRecordWholeDetail" | ||||
|     [columns]="columnsFloatView" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }" | ||||
|     [res]="{ reName: { list: 'data', total: 'data.total' } }" | ||||
|     [req]="{ method: 'POST', allInBody: true, params: changeViewParams }" | ||||
|     [res]="{ reName: { list: 'data.list', total: 'data.total' } }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|   </st> | ||||
|   <div><span>变更原因2:</span></div> | ||||
|   <div><span>拒绝原因:</span></div> | ||||
|   <div><span>注:</span></div> | ||||
|   <div><span>变更原因:{{ViewCause?.changeCause}}</span></div> | ||||
|   <div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></div> | ||||
|   <div><span>注:附加费依据调整后的运输费用重新计算</span></div> | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooterview> | ||||
|     <button nz-button nzType="default" (click)="handleCancel('1')">取消</button> | ||||
|     <button nz-button nzType="primary" (click)="handleOK()">确定</button> | ||||
|     <button nz-button nzType="primary" (click)="handleCancel('1')">确定</button> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
|  | ||||
|  | ||||
| @ -30,6 +30,7 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|   isVisible = false; | ||||
|   changeId: any;       // 主页面查看运费变更记录id - 用于运费变更记录 | ||||
|   changeViewId: any;  // 查看运费变更记录id - 用于查看 | ||||
|   ViewCause: any;  // 变更运费查看数据 | ||||
|   _$expand = false; | ||||
|   @ViewChild('st') private readonly st!: STComponent; | ||||
|   @ViewChild('stFloat') private readonly stFloat!: STComponent; | ||||
| @ -457,15 +458,16 @@ resourceStatus: any; | ||||
|         title: '费用名称', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         render: 'goodsId' | ||||
|         index: 'costName' | ||||
|       }, | ||||
|       { | ||||
|         title: '变更前', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         index: 'amountAfterChange' | ||||
|       }, | ||||
|       { title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } | ||||
|       { title: '变更值', index: 'amountchangeValue', width: '120px', className: 'text-center' }, | ||||
|       { title: '变更后', index: 'amountBeforeChange', width: '120px', className: 'text-center' } | ||||
|     ]; | ||||
|   } | ||||
|   /** | ||||
| @ -560,6 +562,9 @@ resourceStatus: any; | ||||
|   FloatView(item: any) { | ||||
|     console.log(item) | ||||
|     this.changeViewId = item.id; | ||||
|     this.service.request(this.service.$api_getChangeRecordWholeDetail, {id: this.changeViewId}).subscribe((res) => { | ||||
|       this.ViewCause = res; | ||||
|     }) | ||||
|     this.isVisibleView = true | ||||
|   } | ||||
|    /** | ||||
| @ -580,7 +585,16 @@ resourceStatus: any; | ||||
|           nzWidth: 580, | ||||
|           nzContent: VehicleUpdateFreightComponent, | ||||
|           nzComponentParams: { data: { ...data, id: item.id } }, | ||||
|           nzFooter: null | ||||
|           nzOnOk: sin => { | ||||
|             this.service.request(this.service.$api_change_bulk, { billId: item.id, ...sin.sf.value }).subscribe(res => { | ||||
|               if (res) { | ||||
|                 this.service.msgSrv.success('变更运费成功'); | ||||
|                 modal.destroy(); | ||||
|                 this.st.reload(); | ||||
|               } | ||||
|             }); | ||||
|             return false; | ||||
|           } | ||||
|         }); | ||||
|         modal.afterClose.subscribe(_ => this.st.reload()); | ||||
|       } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-21 14:47:26 | ||||
|  * @LastEditTime: 2021-12-22 18:53:54 | ||||
|  * @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\order-management\modal\bulk\update-freight\update-freight.component.html | ||||
| @ -42,12 +42,12 @@ nzMessage="签收后不可再修改运费,请确保运费等信息准确无误 | ||||
|         <div>{{detailList?.goodsInfoVO?.volume}}吨</div> | ||||
|     </sv> | ||||
|     <sv label="卸货体积"> | ||||
|         <div>xx吨</div> | ||||
|         <div>{{detailList?.settlementVolume}}方</div> | ||||
|     </sv> | ||||
|   </sv-container> | ||||
|   <sv-container col="1"> | ||||
|     <sv label="总运费"> | ||||
|       <div>{{detailList?.goodsInfoVO?.freightPrice ? detailList?.goodsInfoVO?.freightPrice + '元' : ''}}  </div> | ||||
|       <div>{{detailList?.price}} 元</div> | ||||
|   </sv> | ||||
|   <sv label="司机车辆"> | ||||
|     <div>{{driverList?.nickName}} / {{driverList?.telephone}}/ {{carList?.carNo}}</div> | ||||
| @ -56,9 +56,27 @@ nzMessage="签收后不可再修改运费,请确保运费等信息准确无误 | ||||
|   <div>{{payeeList?.nickName}} / {{payeeList?.telephone}}</div> | ||||
| </sv> | ||||
| <sv label="回单凭证"> | ||||
|     <!-- <app-imagelist | ||||
|       [imgList]="[userIdentityDetail?.certificatePhotoFrontWatermark,userIdentityDetail?.certificatePhotoBackWatermark]"> | ||||
|     </app-imagelist> --> | ||||
|   <nz-upload | ||||
|     class="avatar-uploader" | ||||
|     [nzAction]="service.$api_upload_url" | ||||
|     [nzName]="'multipartFile'" | ||||
|     nzListType="picture-card" | ||||
|     [(nzFileList)]="listImagUrls" | ||||
|     [nzShowButton]="listImagUrls.length < 5" | ||||
|     [nzPreview]="handlePreview1" | ||||
|     [nzBeforeUpload]="beforeUpload" | ||||
|     (nzChange)="handleChange1($event)" | ||||
|   > | ||||
|     <div> | ||||
|       <i nz-icon nzType="plus"></i> | ||||
|       <div style="margin-top: 8px">请上传图片</div> | ||||
|     </div> | ||||
|   </nz-upload> | ||||
|   <nz-modal [nzVisible]="previewVisible1" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible1 = false"> | ||||
|     <ng-template #modalContent> | ||||
|       <img [src]="previewImage1" [ngStyle]="{ width: '100%' }" /> | ||||
|     </ng-template> | ||||
|   </nz-modal> | ||||
| </sv> | ||||
| </sv-container> | ||||
| <div class="modal-footer"> | ||||
|  | ||||
| @ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-21 13:43:08 | ||||
|  * @LastEditTime: 2021-12-22 19:10:07 | ||||
|  * @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\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -22,7 +22,16 @@ import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalRef } from 'ng-zorro-antd/modal'; | ||||
| import { OrderManagementService } from '../../../services/order-management.service'; | ||||
|  | ||||
| import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload'; | ||||
| import { Observable, Observer } from 'rxjs'; | ||||
| function getBase64(file: File): Promise<string | ArrayBuffer | null> { | ||||
|   return new Promise((resolve, reject) => { | ||||
|     const reader = new FileReader(); | ||||
|     reader.readAsDataURL(file); | ||||
|     reader.onload = () => resolve(reader.result); | ||||
|     reader.onerror = error => reject(error); | ||||
|   }); | ||||
| } | ||||
| @Component({ | ||||
|   selector: 'app-order-management-confir-receipt', | ||||
|   templateUrl: './confir-receipt.component.html', | ||||
| @ -36,6 +45,9 @@ export class ConfirReceiptComponent implements OnInit { | ||||
|   driverList: any; | ||||
|   payeeList: any; | ||||
|   carList: any; | ||||
|   listImagUrls: any[] = []; | ||||
|   previewImage1 = ''; | ||||
|   previewVisible1 = false; | ||||
|   constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: OrderManagementService) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
| @ -44,10 +56,26 @@ export class ConfirReceiptComponent implements OnInit { | ||||
|  | ||||
|   save(): void { | ||||
|     // 大宗 | ||||
|     this.service.request(this.service.$api_get_signBulkOrder, {id: this.i?.id}).subscribe((res: any) => { | ||||
|     console.log(this.listImagUrls) | ||||
|     let imgList : any= []; | ||||
|     if(this.listImagUrls.length > 0) { | ||||
|       this.listImagUrls.forEach((res :any) => { | ||||
|         if(res.url) { | ||||
|           imgList.push(res.url) | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|     console.log(imgList) | ||||
|     const params = { | ||||
|       id: this.i?.id, | ||||
|       filePathList: imgList, | ||||
|     } | ||||
|     console.log(params) | ||||
|     this.service.request(this.service.$api_get_signBulkOrder, params).subscribe((res: any) => { | ||||
|       console.log(res.success) | ||||
|       if(res) { | ||||
|         this.service.msgSrv.success('确认签收成功!') | ||||
|         this.modal.destroy(); | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res.msg) | ||||
|       } | ||||
| @ -58,6 +86,16 @@ export class ConfirReceiptComponent implements OnInit { | ||||
|       this.service.request(this.service.$api_get_getBulkSignForDetail, {id: this.i?.id}).subscribe((res: any) => { | ||||
|         console.log(res) | ||||
|         this.detailList = res; | ||||
|         let arr : any= [] | ||||
|         res.filePathList.forEach((element: any, index: any) => { | ||||
|           console.log(index) | ||||
|          arr.push(  { | ||||
|           url: element, | ||||
|           status: 'done', | ||||
|           uid: index | ||||
|         }) | ||||
|         }); | ||||
|         this.listImagUrls = arr; | ||||
|         this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.detailList?.payeeId}).subscribe((res: any) => { | ||||
|           console.log(res) | ||||
|           this.payeeList = res; | ||||
| @ -81,5 +119,51 @@ export class ConfirReceiptComponent implements OnInit { | ||||
|   userAction() { | ||||
|  | ||||
|   } | ||||
|  | ||||
|   handlePreview1 = async (file: NzUploadFile) => { | ||||
|     if (!file.url && !file.preview) { | ||||
|       file.preview = await getBase64(file.originFileObj!); | ||||
|     } | ||||
|     this.previewImage1 = file.url || file.preview; | ||||
|     this.previewVisible1 = true; | ||||
|   }; | ||||
|   handleChange1(info: NzUploadChangeParam): void { | ||||
|     switch (info.file.status) { | ||||
|       case 'uploading': | ||||
|         break; | ||||
|       case 'done': | ||||
|         let fileList = [...info.fileList]; | ||||
|         // 2. Read from response and show file link | ||||
|         console.log(fileList) | ||||
|         fileList = fileList.map((file: any) => { | ||||
|           if (file.response) { | ||||
|             file.url = file.response.data.fullFilePath; | ||||
|           } | ||||
|           return file; | ||||
|         }); | ||||
|         console.log(this.listImagUrls) | ||||
|         break; | ||||
|       case 'error': | ||||
|         this.service.msgSrv.error('网络错误'); | ||||
|         break; | ||||
|     } | ||||
|   } | ||||
|   beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => { | ||||
|     return new Observable((observer: Observer<boolean>) => { | ||||
|       const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/bmp'; | ||||
|       if (!isJpgOrPng) { | ||||
|         this.service.msgSrv.warning('只能上传图片!'); | ||||
|         observer.complete(); | ||||
|         return; | ||||
|       } | ||||
|       // tslint:disable-next-line: no-non-null-assertion | ||||
|       const isLt2M = file.size! / 1024 / 1024 < 3; | ||||
|       if (!isLt2M) { | ||||
|         this.service.msgSrv.warning('图片大小超过3兆!'); | ||||
|         observer.complete(); | ||||
|         return; | ||||
|       } | ||||
|       observer.next(isJpgOrPng && isLt2M); | ||||
|       observer.complete(); | ||||
|     }); | ||||
|   }; | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-21 15:03:17 | ||||
|  * @LastEditTime: 2021-12-22 20:04:15 | ||||
|  * @LastEditors: your name | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-14 15:16:27 | ||||
|  * @LastEditTime: 2021-12-22 20:08:13 | ||||
|  * @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\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -12,6 +12,8 @@ import { | ||||
|   SFSelectWidgetSchema, | ||||
|   SFStringWidgetSchema, SFTextWidgetSchema | ||||
| } from '@delon/form'; | ||||
| import { Subscription } from 'rxjs'; | ||||
| import { OrderManagementService } from '../../../services/order-management.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-order-management-update-freight', | ||||
| @ -25,7 +27,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|   @Input() | ||||
|   data: any; | ||||
|  | ||||
|   constructor() {} | ||||
|   calculateSub!: Subscription; | ||||
|   constructor(private service: OrderManagementService) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.schema = this.initSF(this.data); | ||||
| @ -48,7 +51,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|                 placeholder: '请输入', | ||||
|                 grid: { | ||||
|                   span: 12 | ||||
|                 } | ||||
|                 }, | ||||
|                 change: (val: any) => this.changeNumVal() | ||||
|               } as SFStringWidgetSchema, | ||||
|               default: data.freightPrice | ||||
|             }, | ||||
| @ -106,7 +110,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|                 grid: { | ||||
|                   span: 12 | ||||
|                 }, | ||||
|                 hideStep: true | ||||
|                 hideStep: true, | ||||
|                 change: (val: any) => this.changeNumVal() | ||||
|               } as SFNumberWidgetSchema | ||||
|             }, | ||||
|             acceptVolume: { | ||||
| @ -119,7 +124,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|                 grid: { | ||||
|                   span: 12 | ||||
|                 }, | ||||
|                 hideStep: true | ||||
|                 hideStep: true, | ||||
|                 change: (val: any) => this.changeNumVal() | ||||
|               } as SFNumberWidgetSchema | ||||
|             }, | ||||
|             settlementWeight: { | ||||
| @ -132,7 +138,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|                 grid: { | ||||
|                   span: 12 | ||||
|                 }, | ||||
|                 hideStep: true | ||||
|                 hideStep: true, | ||||
|                 change: (val: any) => this.changeNumVal() | ||||
|               } as SFNumberWidgetSchema | ||||
|             }, | ||||
|             settlementVolume: { | ||||
| @ -145,7 +152,8 @@ export class UpdateFreightComponent implements OnInit { | ||||
|                 grid: { | ||||
|                   span: 12 | ||||
|                 }, | ||||
|                 hideStep: true | ||||
|                 hideStep: true, | ||||
|                 change: (val: any) => this.changeNumVal() | ||||
|               } as SFNumberWidgetSchema | ||||
|             } | ||||
|           }, | ||||
| @ -169,4 +177,21 @@ export class UpdateFreightComponent implements OnInit { | ||||
|       } | ||||
|     }; | ||||
|   } | ||||
|  | ||||
|   changeNumVal() { | ||||
|     if (this.calculateSub) { | ||||
|       this.calculateSub.unsubscribe(); | ||||
|     } | ||||
|     this.calculateSub = this.service | ||||
|       .request(this.service.$api_calculate_cost, { billId: this.data.billId, ...this.sf.value, changeCause: '' }) | ||||
|       .subscribe((res: any) => { | ||||
|         if (res) { | ||||
|           Object.assign(this.data, { | ||||
|             totalFreight: res.totalFreight, | ||||
|             freight: res.freight, | ||||
|             surcharge: res.surcharge | ||||
|           }); | ||||
|         } | ||||
|       }); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-15 13:17:42 | ||||
|  * @LastEditTime: 2021-12-21 14:50:54 | ||||
|  * @LastEditTime: 2021-12-22 19:19:25 | ||||
|  * @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\order-management\modal\vehicle\confir-receipt\confir-receipt.component.ts | ||||
| @ -61,10 +61,24 @@ export class VehicleConfirReceiptComponent implements OnInit { | ||||
|   } | ||||
|  | ||||
|   save(): void { | ||||
|     this.service.request(this.service.$api_get_signWholeOrder, {id: this.i?.id}).subscribe((res: any) => { | ||||
|     let imgList : any= []; | ||||
|     if(this.listImagUrls.length > 0) { | ||||
|       this.listImagUrls.forEach((res :any) => { | ||||
|         if(res.url) { | ||||
|           imgList.push(res.url) | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|     console.log(imgList) | ||||
|     const params = { | ||||
|       id: this.i?.id, | ||||
|       filePathList: imgList, | ||||
|     } | ||||
|     this.service.request(this.service.$api_get_signWholeOrder, params).subscribe((res: any) => { | ||||
|       console.log(res) | ||||
|       if(res) { | ||||
|         this.service.msgSrv.success('确认签收成功!') | ||||
|         this.modal.destroy(); | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res.msg) | ||||
|       } | ||||
| @ -101,16 +115,6 @@ export class VehicleConfirReceiptComponent implements OnInit { | ||||
|     }); | ||||
|   }; | ||||
|   initData() { | ||||
|     // if (this.i?.receiptCertificate?.length > 0) { | ||||
|     //   this.i?.receiptCertificate.forEach((element: any) => { | ||||
|     //     const image = { | ||||
|     //       url: element, | ||||
|     //       status: 'done', | ||||
|     //       uid: '-1' | ||||
|     //     }; | ||||
|     //     this.listImagUrls.push(image); | ||||
|     //   }); | ||||
|     // } | ||||
|     // 大宗 | ||||
|       this.service.request(this.service.$api_get_getWholeSignForDetail, {id: this.i?.id}).subscribe((res: any) => { | ||||
|         console.log(res) | ||||
| @ -129,6 +133,16 @@ export class VehicleConfirReceiptComponent implements OnInit { | ||||
|               cost.traiPrice = element.price | ||||
|             } | ||||
|         }); | ||||
|         let arr : any= [] | ||||
|         res.filePathList.forEach((element: any, index: any) => { | ||||
|           console.log(index) | ||||
|          arr.push(  { | ||||
|           url: element, | ||||
|           status: 'done', | ||||
|           uid: index | ||||
|         }) | ||||
|         }); | ||||
|         this.listImagUrls = arr; | ||||
|         this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.dataInfo?.payeeId}).subscribe((res: any) => { | ||||
|           console.log(res) | ||||
|           this.payeeList = res; | ||||
| @ -176,15 +190,16 @@ export class VehicleConfirReceiptComponent implements OnInit { | ||||
|       case 'uploading': | ||||
|         break; | ||||
|       case 'done': | ||||
|         const resData = info.file.response.data; | ||||
|         const arr = [ | ||||
|           { | ||||
|             url: resData.fullFilePath, | ||||
|             status: 'done', | ||||
|             uid: '-1' | ||||
|         let fileList = [...info.fileList]; | ||||
|         // 2. Read from response and show file link | ||||
|         console.log(fileList) | ||||
|         fileList = fileList.map((file: any) => { | ||||
|           if (file.response) { | ||||
|             file.url = file.response.data.fullFilePath; | ||||
|           } | ||||
|         ]; | ||||
|         this.listImagUrls = arr; | ||||
|           return file; | ||||
|         }); | ||||
|         console.log(this.listImagUrls) | ||||
|         break; | ||||
|       case 'error': | ||||
|         this.service.msgSrv.error('网络错误'); | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-22 10:09:37 | ||||
|  * @LastEditTime: 2021-12-22 20:06:45 | ||||
|  * @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\order-management\services\order-management.service.ts | ||||
| @ -77,7 +77,16 @@ export class OrderManagementService extends BaseService { | ||||
|   public $api_insertFreightChangeBulk = `/api/sdc/billFreightChangeApplication/insertFreightChangeBulk`; | ||||
|   // 大宗详情 | ||||
|   public $api_getBulkBillDetail = `/api/sdc/billOperate/getBulkBillDetail`; | ||||
|  | ||||
|   // 查看运费变更记录详情-大宗 | ||||
|   public $api_getChangeRecordBulkDetail = `/api/sdc/billFreightChangeRecord/getChangeRecordBulkDetail`; | ||||
|   // 查看运费变更记录详情-整车 | ||||
|   public $api_getChangeRecordWholeDetail = `/api/sdc/billFreightChangeRecord/getChangeRecordWholeDetail`; | ||||
|   //运费变更申请计算费用-大宗 | ||||
|   $api_calculate_cost = `/api/sdc/billFreightChangeApplication/getBulkSurchargeDetail`; | ||||
|   //运费变更申请计算费用-大宗 | ||||
|   $api_getWholeSurchargeDetail = `/api/sdc/billFreightChangeApplication/getWholeSurchargeDetail`; | ||||
|    //运费变更申请-大宗 | ||||
|    $api_change_bulk = `/api/sdc/billFreightChangeApplication/insertFreightChangeBulk`; | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector) | ||||
|   } | ||||
|  | ||||
| @ -427,10 +427,12 @@ tabs = { | ||||
|           { | ||||
|             text: '确认发车', | ||||
|             click: (_record) => this.sureDepart(_record), | ||||
|             iif: item => item.wayBillStatus == '2' , | ||||
|           }, | ||||
|           { | ||||
|             text: '确认到车', | ||||
|             click: (_record) => this.sureArrive(_record), | ||||
|             iif: item => item.wayBillStatus == '3'  , | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-18 16:17:40 | ||||
|  * @LastEditTime: 2021-12-22 11:31: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\supply-management\components\vehicle\vehicle.component.html | ||||
| @ -59,6 +59,11 @@ | ||||
|     [loadingDelay]="500" | ||||
|     [loading]="service.http.loading" | ||||
|     > | ||||
|     <ng-template st-row="billExpenseDetailVOList" let-item let-index="index"> | ||||
|       <div *ngFor="let i of item?.billExpenseDetailVOList; let ii = index"> | ||||
|         <span >{{i?.costName}}:{{i?.price}}</span> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|       <ng-template st-row="wayBillCode" let-item let-index="index"> | ||||
|         <a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a> | ||||
|         <div> | ||||
|  | ||||
| @ -4,6 +4,7 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidget | ||||
| import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||
| import { ShipperBaseService } from '@shared'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { NzUploadChangeParam } from 'ng-zorro-antd/upload'; | ||||
| import { of } from 'rxjs'; | ||||
| import { map } from 'rxjs/operators'; | ||||
| import { VehicleSureArriveComponent } from 'src/app/routes/order-management/modal/vehicle/sure-arrive/sure-arrive.component'; | ||||
| @ -276,12 +277,24 @@ tabs = { | ||||
|         className: 'text-center', | ||||
|         render: 'wayBillCode' | ||||
|       }, | ||||
|       { | ||||
|         title: '货主出价', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         index: 'resourceCode' | ||||
|       }, | ||||
|       { | ||||
|         title: '货源编号', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         index: 'resourceCode' | ||||
|       }, | ||||
|       { | ||||
|         title: '运费明细', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         render: 'billExpenseDetailVOList' | ||||
|       }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' }, | ||||
|       { title: '货主', index: 'shipperAppUserName', width: '120px', className: 'text-center' }, | ||||
|       { title: '关联订单号', render: 'wayBill', width: '120px', className: 'text-center' }, | ||||
| @ -338,10 +351,12 @@ tabs = { | ||||
|           { | ||||
|             text: '确认发车', | ||||
|             click: (_record) => this.sureDepart(_record), | ||||
|             iif: item => item.wayBillStatus == '2' , | ||||
|           }, | ||||
|           { | ||||
|             text: '确认到车', | ||||
|             click: (_record) => this.sureArrive(_record), | ||||
|             iif: item => item.wayBillStatus == '3'  , | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
| @ -548,4 +563,6 @@ tabs = { | ||||
|           nzFooter: null | ||||
|         }); | ||||
|       } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user