diff --git a/src/app/routes/supply-management/components/onecar-publish/publish-success/publish-success.component.ts b/src/app/routes/supply-management/components/onecar-publish/publish-success/publish-success.component.ts
index 0bb34a43..b9257186 100644
--- a/src/app/routes/supply-management/components/onecar-publish/publish-success/publish-success.component.ts
+++ b/src/app/routes/supply-management/components/onecar-publish/publish-success/publish-success.component.ts
@@ -1,11 +1,3 @@
-/*
- * @Author: your name
- * @Date: 2021-12-14 20:39:34
- * @LastEditTime: 2021-12-14 20:43: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\supply-management\components\onecar-publish\publish-success\publish-success.component.ts
- */
import { Component } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { NzMessageService } from 'ng-zorro-antd/message';
@@ -17,6 +9,7 @@ import { NzMessageService } from 'ng-zorro-antd/message';
})
export class PublishSuccessComponent {
type = 'onecar';
+ resourceObj: any = null;
constructor(private route: ActivatedRoute, private router: Router, public msg: NzMessageService) {
this.type = route.snapshot.queryParams.type || 'onecar';
}
diff --git a/src/app/routes/supply-management/components/release-publish/release-publish.component.html b/src/app/routes/supply-management/components/release-publish/release-publish.component.html
new file mode 100644
index 00000000..302e7ee4
--- /dev/null
+++ b/src/app/routes/supply-management/components/release-publish/release-publish.component.html
@@ -0,0 +1,236 @@
+
+
+ 货源单设置
+
+
+
+ {{ i.value }}
+
+
+
+
+
+
+ 装卸货信息预计公里数:{{ totalDistance }}km,预计行程耗时:{{ totalTime }}小时
+
+
+
+
+
+ 货物信息
+
+
+
+
+ 服务信息
+
+ 推荐投保,填写货值自动估保费,司机接单后不可退保。详见《投保告知》
+
+
+
+
+
+
+
+
+ 注意事项:
+ ①请仔细阅读《投保告知》
+ ②港澳台、西藏不在投保范围内,不予承保
+ ③保价费最低收费2元,请按真实货值填写,录入的所有信息必须确保真实,不如实录入的内容,不承担对应赔偿责任。
+
+
+
+
+
+
+
+
+
+ 补充信息
+
+
+
+
+ 运费信息
+
+
+
+ ¥{{i.value}}
+ ¥{{i.value}}(费率:{{currentRate | number: '0.2-4' }}%)
+ ¥{{i.value}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/routes/supply-management/components/release-publish/release-publish.component.less b/src/app/routes/supply-management/components/release-publish/release-publish.component.less
new file mode 100644
index 00000000..2af010e4
--- /dev/null
+++ b/src/app/routes/supply-management/components/release-publish/release-publish.component.less
@@ -0,0 +1,30 @@
+:host {
+ ::ng-deep {
+ nz-input-number{width: 100%;}
+ }
+}
+
+.tip-font {
+ margin-left: 16px;
+ font-weight: 500;
+ font-size: 12px;
+}
+
+.card-title {
+ margin-bottom: 24px;
+ font-weight: bold;
+ font-size: 16px;
+}
+
+.align-center {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+#container {
+ width: 300px;
+ height: 180px;
+}
+
+
diff --git a/src/app/routes/supply-management/components/release-publish/release-publish.component.ts b/src/app/routes/supply-management/components/release-publish/release-publish.component.ts
new file mode 100644
index 00000000..626b3cfe
--- /dev/null
+++ b/src/app/routes/supply-management/components/release-publish/release-publish.component.ts
@@ -0,0 +1,811 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
+import { ActivatedRoute, Router } from '@angular/router';
+import { cacheConf } from '@conf/cache.conf';
+import {
+ SFArrayWidgetSchema,
+ SFComponent,
+ SFNumberWidgetSchema,
+ SFSchema,
+ SFSchemaEnum,
+ SFSelectWidgetSchema,
+ SFTextareaWidgetSchema,
+ SFUISchema
+} from '@delon/form';
+import { SettingsService, _HttpClient } from '@delon/theme';
+import { EACacheService } from '@shared';
+import format from 'date-fns/format';
+import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
+import { of } from 'rxjs';
+import { map } from 'rxjs/operators';
+
+import { AmapPoiPickerComponent, AmapService } from 'src/app/shared/components/amap';
+import { SupplyManagementService } from '../../services/supply-management.service';
+import { SupplyManagementVehicleAssignedCarComponent } from '../assigned-car/assigned-car.component';
+import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
+import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
+
+@Component({
+ selector: 'app-publish-goods-onecar-publish',
+ templateUrl: './release-publish.component.html',
+ styleUrls: ['./release-publish.component.less']
+})
+export class SupplyManagementReleasePublishComponent implements OnInit {
+ // 环境信息 appId、tenantId
+ envInfo = this.eaCacheSrv.get(cacheConf.env);
+
+ validateForm1: FormGroup;
+ sf1data: any; // 货源单设置回显
+ sf3data: any; // 货源单设置回显
+ sf4data: any; // 货源单设置回显
+ sf5data: any; // 货源单设置回显
+ sf6data: any; // 货源单设置回显
+ sf7data: any; // 货源单设置回显
+ creatTime: any; // 货源单设置回显
+ modifyTime: any; // 货源单设置回显
+ totalFees: any; // 总数信息
+ id = '';
+ type = 'add';
+
+ // // 单位
+ unit1 = '吨';
+ unit2 = '方';
+ unit3 = '保价费金额';
+ startInfo: any[] = [];
+ endInfo: any[] = [];
+ totalDistance = 0.0; //总里程
+ totalTime = 0.0; //路程总时间
+
+ currentGoodsTypeName: any;
+ currentRate = 0 //实时计算的费率
+
+ // formatterRmb = (value: number): string => `¥ ${value}`;
+ // parserRmb = (value: string): string => value.replace('¥ ', '');
+ constructor(
+ private http: _HttpClient,
+ fb: FormBuilder,
+ private modalService: NzModalService,
+ private settingSrv: SettingsService,
+ public service: SupplyManagementService,
+ private router: Router,
+ private route: ActivatedRoute,
+ private eaCacheSrv: EACacheService,
+ private amapService: AmapService
+ ) {
+ this.validateForm1 = fb.group({
+ loadingTime: [null, [Validators.required]],
+ unloadingTime: [null, [Validators.required]]
+ });
+ }
+
+ @ViewChild('sf1', { static: false }) sf1!: SFComponent;
+ schema1: SFSchema = {};
+ ui1!: SFUISchema;
+
+ @ViewChild('sf3', { static: false }) sf3!: SFComponent;
+ schema3: SFSchema = {};
+ ui3!: SFUISchema;
+
+ @ViewChild('sf4', { static: false }) sf4!: SFComponent;
+ schema4: SFSchema = {};
+ ui4!: SFUISchema;
+
+ @ViewChild('sf5', { static: false }) sf5!: SFComponent;
+ schema5: SFSchema = {};
+ ui5!: SFUISchema;
+
+ @ViewChild('sf6', { static: false }) sf6!: SFComponent;
+ schema6: SFSchema = {};
+ ui6!: SFUISchema;
+
+ @ViewChild('sf7', { static: false }) sf7!: SFComponent;
+ schema7: SFSchema = {};
+ ui7!: SFUISchema;
+ ngOnInit(): void {
+ this.initSF1();
+ this.initSF3();
+ this.initSF4();
+ this.initSF5();
+ this.initSF6();
+ this.initSF7();
+ this.addStartInfo();
+ this.addEndInfo();
+ }
+
+ initSF1() {
+ this.schema1 = {
+ properties: {
+ shipperAppUserId: {
+ title: '货主',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ widget: 'select',
+ serverSearch: true,
+ searchDebounceTime: 300,
+ searchLoadingText: '搜索中...',
+ onSearch: (q: any) => {
+ if (!!q) {
+ return this.service
+ .request(this.service.$api_enterpriceList, { enterpriseName: q})
+ .pipe(map((res) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
+ .toPromise();
+ } else {
+ return of([]);
+ }
+ },
+ change: (q: any) => {
+ this.getRegionCode(q)
+ },
+ visibleIf: {
+ _$expand: (value: boolean) => value,
+ },
+ } as SFSelectWidgetSchema,
+ },
+ enterpriseProjectId: {
+ type: 'string',
+ title: '项目',
+ ui: {
+ widget: 'select',
+ placeholder: '请选择',
+ allowClear: true,
+ } as SFSelectWidgetSchema
+ },
+ enterpriseInfoName: {
+ type: 'string',
+ title: '网络货运人',
+ ui: {
+ widget: 'custom'
+ },
+ default: '天津市怡亚通XXXX有限公司'
+ },
+ externalResourceCode: {
+ type: 'string',
+ title: '外部货源号',
+ maxLength: 30,
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ dispatchId: {
+ type: 'string',
+ title: '调度员',
+ enum: [
+ { label: '周涛', value: 1 },
+ { label: '李诞', value: 2 }
+ ],
+ ui: {
+ widget: 'select',
+ placeholder: '请选择',
+ allowClear: true,
+ optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您'
+ // asyncData: () =>
+ // this.service.loadChildData2('0', '2').pipe(
+ // map((data: any) => {
+ // return data.map((m: any) => {
+ // return { label: m.name, value: m.id };
+ // });
+ // }),
+ // ),
+ // change: (i) => this.updateCategory(i, '/categoryId2'),
+ } as SFSelectWidgetSchema
+ }
+ }
+ };
+ this.ui1 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 12 }
+ },
+ $enterpriseInfoName: {
+ grid: { span: 24 }
+ }
+ };
+ }
+ // 获取城市列表
+ getRegionCode(regionCode: any) {
+ console.log(regionCode)
+ return this.service
+ .request(this.service.$api_get_enterprise_project, { id: regionCode })
+ .pipe(
+ map((res) =>
+ res.map((item: any) => ({
+ label: item.projectName,
+ value: item.id,
+ })),
+ ),
+ )
+ .subscribe((res) => {
+ this.sf1.getProperty('/enterpriseProjectId')!.schema.enum = res;
+ this.sf1.getProperty('/enterpriseProjectId')!.widget.reset(res);
+ });
+ }
+ initSF3() {
+ this.schema3 = {
+ properties: {
+ goodsTypeId: {
+ type: 'string',
+ title: '货物名称',
+ enum: [
+ { label: '服装', value: '1' },
+ { label: '电子产品', value: '2' },
+ { label: '其他', value: '3' }
+ ],
+ ui: {
+ widget: 'select',
+ placeholder: '请选择',
+ errors: { required: '请选择货物名称' },
+ change: (value, data) => {
+ this.currentGoodsTypeName = data;
+ }
+ // asyncData: () =>
+ // this.categoryService.loadChildData2('0', '2').pipe(
+ // map((data: any) => {
+ // return data.map((m: any) => {
+ // return { label: m.name, value: m.id };
+ // });
+ // }),
+ // ),
+ // change: (i) => this.updateCategory(i, '/categoryId2'),
+ } as SFSelectWidgetSchema
+ },
+ goodsName: {
+ type: 'string',
+ title: '',
+ maxLength: 20,
+ ui: {
+ errors: { required: '请填写货物名称' },
+ visibleIf: {
+ goodsTypeId: value => value === '其他'
+ }
+ }
+ }
+ },
+ required: ['goodsTypeId', 'goodsName']
+ };
+ this.ui3 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 12 }
+ }
+ };
+ }
+ initSF4() {
+ this.schema4 = {
+ properties: {
+ weight: {
+ type: 'string',
+ title: '货物数量',
+ ui: {
+ widget: 'custom',
+ placeholder: '请输入',
+ errors: { required: '必填项' }
+ }
+ },
+ volume: {
+ type: 'string',
+ title: '',
+ ui: {
+ widget: 'custom',
+ placeholder: '请输入'
+ }
+ },
+ number: {
+ type: 'string',
+ title: '',
+ ui: {
+ widget: 'custom',
+ placeholder: '请输入'
+ }
+ },
+ maxWeight: {
+ type: 'string',
+ title: '车型/车长',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'car:model' },
+ mode: 'multiple',
+ placeholder: '请选择车型',
+ errors: { required: '请选择车型' }
+ }
+ },
+ maxCube: {
+ type: 'string',
+ title: '',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'car:length' },
+ mode: 'multiple',
+ placeholder: '请选择车长',
+ errors: { required: '请选择车长' }
+ }
+ }
+ },
+ required: ['weight', 'maxWeight', 'maxCube']
+ };
+ this.ui4 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 24 }
+ },
+ $weight: {
+ grid: { span: 8 }
+ },
+ $volume: {
+ grid: { span: 8 }
+ },
+ $number: {
+ grid: { span: 8 }
+ },
+ $maxWeight: {
+ grid: { span: 12 }
+ },
+ $maxCube: {
+ grid: { span: 12 }
+ }
+ };
+ }
+
+ initSF5() {
+ this.schema5 = {
+ properties: {
+ goodsValue: {
+ type: 'string',
+ title: '货物价值',
+ ui: {
+ widget: 'custom'
+ }
+ }
+ }
+ };
+ this.ui5 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 24 }
+ }
+ };
+ }
+
+ initSF6() {
+ this.schema6 = {
+ properties: {
+ stateReceipt: {
+ type: 'string',
+ title: '是否回单',
+ enum: [
+ { label: '需要', value: true },
+ { label: '不需要', value: false }
+ ],
+ ui: {
+ widget: 'select',
+ errors: { required: '请选择' },
+ placeholder: '请选择'
+ }
+ },
+ receiptType: {
+ type: 'string',
+ title: '回单类型',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'receipt:type' },
+ containsAllLable:false,
+ placeholder: '请选择',
+ errors: { required: '请选择' },
+ visibleIf: {
+ stateReceipt: value => value === true
+ }
+ }
+ },
+ receiptAddressId: {
+ type: 'string',
+ title: '选择地址',
+ ui: {
+ widget: 'custom',
+ placeholder: '请点击选择收回单地址',
+ // validator: val => (this.sf6?.value?.receiptType === '2' ? [{ keyword: 'required', message: '请点击选择收回单地址' }] : []),
+ visibleIf: {
+ receiptType: value => value === '2'
+ }
+ },
+ default: ''
+ },
+ receiptUserName: {
+ type: 'string',
+ title: '联系人',
+ ui: {
+ visibleIf: {
+ receiptType: value => value === '2'
+ }
+ },
+ readOnly: true
+ },
+ phon: {
+ type: 'string',
+ title: '联系电话',
+ ui: {
+ visibleIf: {
+ receiptType: value => value === '2'
+ }
+ },
+ readOnly: true
+ },
+ area: {
+ type: 'string',
+ title: '所在地区',
+ ui: {
+ visibleIf: {
+ receiptType: value => value === '2'
+ }
+ },
+ readOnly: true
+ },
+ address: {
+ type: 'string',
+ title: '详细地址',
+ ui: {
+ visibleIf: {
+ receiptType: value => value === '2'
+ }
+ },
+ readOnly: true
+ },
+ remarks: {
+ type: 'string',
+ title: '备注',
+ maxLength: 200,
+ ui: {
+ widget: 'textarea',
+ placeholder: '请输入',
+ autosize: { minRows: 3, maxRows: 3 }
+ } as SFTextareaWidgetSchema
+ }
+ },
+ required: ['stateReceipt', 'receiptType','receiptAddressId']
+ };
+ this.ui6 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 24 }
+ }
+ };
+ }
+
+ initSF7() {
+ this.schema7 = {
+ properties: {
+ prePay: {
+ type: 'number',
+ title: '预付',
+ default: 0,
+ ui: {
+ prefix: '¥',
+ change: args => this.payChange()
+ } as SFNumberWidgetSchema
+ },
+ toPay: {
+ type: 'number',
+ title: '到付',
+ default: 0,
+ ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
+ },
+ oilCardPay: {
+ type: 'number',
+ title: '油卡',
+ default: 0,
+ ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
+ },
+ receiptPay: {
+ type: 'number',
+ title: '回单付',
+ default: 0,
+ ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
+ },
+ subtotal: { type: 'number', title: '小计',default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
+ appendFee: { type: 'number', title: '附加费', default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
+ total: { type: 'number', title: '总费用', default: 0, ui: { widget: 'custom' } as SFNumberWidgetSchema },
+ paymentDays: {
+ type: 'string',
+ title: '到货后',
+ ui: {
+ widget: 'custom',
+ placeholder: '请输入',
+ errors: { required: '请输入付款承诺天数' }
+ }
+ }
+ },
+ required: ['paymentDays']
+ };
+ this.ui7 = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 24 }
+ }
+ };
+ }
+
+ payChange() {
+ const subtotal = (this.sf7.value.prePay + this.sf7.value.toPay + this.sf7.value.oilCardPay + this.sf7.value.receiptPay) || 0;
+ const oilCardPay = this.sf7.value.oilCardPay || 0;
+ this.service.request(this.service.$api_getCalculatedSurcharge+`?totalFreight=${subtotal}&fuelCardAmount=${oilCardPay}`).subscribe((res: any) => {
+ if (res) {
+ this.sf7.setValue('/appendFee', res.surcharge);
+ this.sf7.setValue('/subtotal', subtotal);
+ this.sf7.setValue('/total', subtotal+res.surcharge);
+ this.service.request(this.service.$api_getcalculatedServiceRate+`?invoiceAmount=${subtotal+res.surcharge}&totalFreight=${subtotal}`).subscribe((res: any) => {
+ if (res) {
+ this.currentRate = res.rate;
+ } else {
+ this.service.msgSrv.error(res.msg);
+ }
+ });
+ } else {
+ this.service.msgSrv.error(res.msg);
+ }
+ });
+
+ }
+
+ addStartInfo() {
+ if (this.startInfo.length < 5) {
+ const controlId = this.startInfo.length;
+ this.startInfo.push({
+ detailedAddress: '',
+ appUserName: '',
+ contractTelephone: '',
+ latitude: '',
+ longitude: '',
+ province: '',
+ city: '',
+ area: '',
+ type: '1'
+ });
+ this.validateForm1.addControl(`loadAddress${controlId}`, new FormControl(null, Validators.required));
+ this.validateForm1.addControl(`loadName${controlId}`, new FormControl(null, Validators.required));
+ this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, Validators.required));
+ }
+ }
+ subStartInfo(event: any, index: number) {
+ this.startInfo.splice(index, 1);
+ this.validateForm1.removeControl(`loadAddress${index}`);
+ this.validateForm1.removeControl(`loadName${index}`);
+ this.validateForm1.removeControl(`loadPhone${index}`);
+ }
+
+ addEndInfo() {
+ if (this.addEndInfo.length < 5) {
+ const controlId = this.endInfo.length;
+ this.endInfo.push({
+ detailedAddress: '',
+ appUserName: '',
+ contractTelephone: '',
+ latitude: '',
+ longitude: '',
+ province: '',
+ city: '',
+ area: '',
+ type: '2'
+ });
+ this.validateForm1.addControl(`unloadAddress${controlId}`, new FormControl(null, Validators.required));
+ this.validateForm1.addControl(`unloadName${controlId}`, new FormControl(null, Validators.required));
+ this.validateForm1.addControl(`unloadPhone${controlId}`, new FormControl(null, Validators.required));
+ }
+ }
+ subEndInfo(event: any, index: number) {
+ this.endInfo.splice(index, 1);
+ this.validateForm1.removeControl(`unloadAddress${index}`);
+ this.validateForm1.removeControl(`unloadName${index}`);
+ this.validateForm1.removeControl(`unloadPhone${index}`);
+ }
+
+ //指派熟车
+ chooseFamifiar(item: any) {
+ const modalRef = this.modalService.create({
+ nzTitle: '指派熟车',
+ nzContent: SupplyManagementVehicleAssignedCarComponent,
+ nzWidth: 1200,
+ nzComponentParams: {
+ status: 'new',
+ url: this.service.$api_save_assign_bulk,
+ params: item
+ },
+ nzFooter: null
+ });
+ modalRef.afterClose.subscribe(result => {
+ if (result) {
+ this.openFinishPage(result);
+ }
+ });
+ }
+ submit(submitType: string): void {
+ Object.keys(this.validateForm1.controls).forEach(key => {
+ this.validateForm1.controls[key].markAsDirty();
+ this.validateForm1.controls[key].updateValueAndValidity();
+ });
+ this.sf3.validator({ emitError: true });
+ this.sf4.validator({ emitError: true });
+ this.sf6.validator({ emitError: true });
+ this.sf7.validator({ emitError: true });
+ if (this.validateForm1.invalid || !this.sf3.valid || !this.sf4.valid || !this.sf6.valid || !this.sf7.valid) {
+ return;
+ }
+
+ //装卸货信息
+ const LoadingList = this.startInfo.concat(this.endInfo);
+ // 货物信息
+ const goodsInfoList = [
+ {
+ ...this.sf3.value,
+ goodsTypeName: this.currentGoodsTypeName.label,
+ goodsName: '电子',
+ goodsNameId: '1',
+ ...this.sf4.value,
+ maxWeight: this.sf4.value.maxWeight.join(','),
+ maxCube: this.sf4.value.maxCube.join(',')
+ }
+ ];
+ // 运费信息
+ const expenseList = [
+ { expenseCode: 'PRE', expenseName: '预付', price: this.sf7.value.prePay, id: this.sf7data?.prePayId ? this.sf7data?.prePayId : '' },
+ { expenseCode: 'RECE', expenseName: '到付', price: this.sf7.value.toPay, id: this.sf7data?.toPayId ? this.sf7data?.toPayId : '' },
+ {
+ expenseCode: 'OIL',
+ expenseName: '油卡',
+ price: this.sf7.value.oilCardPay,
+ id: this.sf7data?.oilCardPayId ? this.sf7data?.oilCardPayId : ''
+ },
+ {
+ expenseCode: 'BACK',
+ expenseName: '回单付',
+ price: this.sf7.value.receiptPay,
+ id: this.sf7data?.receiptPayId ? this.sf7data?.receiptPayId : ''
+ }
+ ];
+ const params = {
+ id: '',
+ ...this.sf1.value,
+ unLoadingPlaceDTOList: LoadingList,
+ unloadingTime: format(this.validateForm1.value.unloadingTime, 'yyyy-MM-dd HH:mm:ss'),
+ loadingTime: format(this.validateForm1.value.loadingTime, 'yyyy-MM-dd HH:mm:ss'),
+ goodsInfoDTOList: goodsInfoList,
+ ...this.sf5.value,
+ ...this.sf6.value,
+ expenseDTOList: expenseList,
+ paymentDays: this.sf7.value.paymentDays
+ };
+
+ let reqUrl = this.service.$api_consignWhole;
+ if (submitType === 'assign') {
+ this.chooseFamifiar(params);
+ return;
+ }
+
+ this.service.request(reqUrl, params).subscribe((res: any) => {
+ if (res) {
+ this.openFinishPage();
+ } else {
+ this.service.msgSrv.error(res.msg);
+ }
+ });
+ }
+
+ // 打开地图
+ openMap(type: string, index: number) {
+ const modalRef = this.modalService.create({
+ nzTitle: '',
+ nzContent: AmapPoiPickerComponent,
+ nzWidth: 900,
+ nzOnOk: item => {
+ const poi = item.poi;
+ const locList = poi.pois;
+ switch (type) {
+ case 'start':
+ this.startInfo[index].detailedAddress = poi.formattedAddress;
+ this.startInfo[index].longitude = locList[0];
+ this.startInfo[index].latitude = locList[1];
+ this.startInfo[index].province = poi.addressComponent.province;
+ this.startInfo[index].city = poi.addressComponent.city;
+ this.startInfo[index].area = poi.addressComponent.district;
+ break;
+ case 'end':
+ this.endInfo[index].detailedAddress = poi.formattedAddress;
+ this.endInfo[index].longitude = locList[0];
+ this.endInfo[index].latitude = locList[1];
+ this.endInfo[index].province = poi.addressComponent.province;
+ this.endInfo[index].city = poi.addressComponent.city;
+ this.endInfo[index].area = poi.addressComponent.district;
+ break;
+ default:
+ break;
+ }
+
+ if (this.startInfo[0]?.area && this.endInfo[0]?.area) {
+ this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => {
+ this.totalDistance = res.distance;
+ this.totalTime = res.time;
+ });
+ }
+ }
+ });
+ }
+
+ backBillChange() {
+ const modalRef = this.modalService.create({
+ nzTitle: '选择收回单地址',
+ nzContent: PublishAddressListComponent,
+ nzWidth: 900,
+ nzComponentParams: { spuStatus: '2' },
+ nzOnOk: item => {
+ const data = item.seleteData;
+ if (JSON.stringify(data) === '{}') return;
+ this.sf6.setValue('/receiptAddressId', data.id);
+ this.sf6.setValue('/receiptUserName', data.contactName);
+ this.sf6.setValue('/phon', data.contactTelephone);
+ this.sf6.setValue('/area', `${data.province}-${data.city}-${data.area}`);
+ this.sf6.setValue('/address', data.detailedAddress);
+ }
+ });
+ }
+
+ chooseAddress(index: number, type: string) {
+ const modalRef = this.modalService.create({
+ nzTitle: '选择地址',
+ nzContent: PublishAddressListComponent,
+ nzWidth: 900,
+ nzComponentParams: { spuStatus: '1' },
+ nzOnOk: item => {
+ const data = item.seleteData;
+ if (JSON.stringify(data) === '{}') return;
+ switch (type) {
+ case 'start':
+ this.startInfo[index] = {
+ detailedAddress: data.detailedAddress,
+ appUserName: data.contactName,
+ contractTelephone: data.contactTelephone,
+ latitude: data.contactTelephone,
+ longitude: data.latitude,
+ province: data.province,
+ city: data.city,
+ area: data.area,
+ type: '1'
+ };
+ break;
+ case 'end':
+ this.endInfo[index] = {
+ detailedAddress: data.detailedAddress,
+ appUserName: data.contactName,
+ contractTelephone: data.contactTelephone,
+ latitude: data.contactTelephone,
+ longitude: data.latitude,
+ province: data.province,
+ city: data.city,
+ area: data.area,
+ type: '2'
+ };
+ break;
+ default:
+ break;
+ }
+ }
+ });
+ }
+
+
+
+ // 打开下单完成页面
+ openFinishPage(resourceObj: any = null) {
+ this.modalService.create({
+ nzTitle: '',
+ nzContent: PublishSuccessComponent,
+ nzWidth: 900,
+ nzFooter: null,
+ nzComponentParams: { type: 'onecar', resourceObj }
+ });
+ }
+
+ /**
+ * 取消
+ */
+ close() {
+ window.history.go(-1);
+ }
+}
diff --git a/src/app/routes/supply-management/components/vehicle/vehicle.component.html b/src/app/routes/supply-management/components/vehicle/vehicle.component.html
index ad829a47..cadd966d 100644
--- a/src/app/routes/supply-management/components/vehicle/vehicle.component.html
+++ b/src/app/routes/supply-management/components/vehicle/vehicle.component.html
@@ -1,3 +1,11 @@
+
@@ -67,7 +75,7 @@
-
+
diff --git a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts
index 7958f967..3251f184 100644
--- a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts
+++ b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts
@@ -207,6 +207,12 @@ export class SupplyManagementVehicleComponent implements OnInit {
sta: 2
}
});
+ }
+ /**
+ * 代发货源
+ */
+ releaseGoods() {
+ this.router.navigate(['/supply-management/vehicle-release']);
}
/**
* 取消货源
diff --git a/src/app/routes/supply-management/services/supply-management.service.ts b/src/app/routes/supply-management/services/supply-management.service.ts
index a7297b5b..3350d79a 100644
--- a/src/app/routes/supply-management/services/supply-management.service.ts
+++ b/src/app/routes/supply-management/services/supply-management.service.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 11:10:14
- * @LastEditTime: 2021-12-28 10:15:55
+ * @LastEditTime: 2021-12-28 19:53:40
* @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\services\supply-management.service.ts
@@ -46,7 +46,14 @@ export class SupplyManagementService extends BaseService {
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
// 取消货源
public $api_cancelSource = '/api/sdc/goodsResourceOperate/cancelSource';
-
+ // 整车计算附加费
+ $api_getCalculatedSurcharge = `/api/sdc/expense/getCalculatedSurcharge`;
+ // 整车计算附加费率
+ $api_getcalculatedServiceRate = `/api/sdc/expense/getcalculatedServiceRate`;
+ // 代发整车货源
+ $api_consignWhole = `/api/sdc/goodsResourceOperate/consignWhole`;
+ // 代发大宗货源
+ $api_consignBulk = `/api/sdc/goodsResourceOperate/consignBulk`;
diff --git a/src/app/routes/supply-management/supply-management-routing.module.ts b/src/app/routes/supply-management/supply-management-routing.module.ts
index 79aab0ad..ba78a636 100644
--- a/src/app/routes/supply-management/supply-management-routing.module.ts
+++ b/src/app/routes/supply-management/supply-management-routing.module.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 11:10:14
- * @LastEditTime: 2021-12-27 15:25:01
+ * @LastEditTime: 2021-12-28 20:07:09
* @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\supply-management-routing.module.ts
@@ -16,13 +16,18 @@ import { SupplyManagementAddDriversComponent } from './components/add-drivers/ad
import { SupplyManagementOnecarPublishComponent } from './components/onecar-publish/onecar-publish.component';
import { SupplyManagementBulkPublishComponent } from './components/bulk-publish/bulk-publish.component';
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
+import { SupplyManagementReleasePublishComponent } from './components/release-publish/release-publish.component';
+import { SupplyManagementBulkReleasePublishComponent } from './components/bulk-release-publish/bulk-release-publish.component';
const routes: Routes = [
{ path: 'index', component: SupplyManagementIndexComponent },
{ path: 'bulk-detail/:id', component: SupplyManagementBulkDetailComponent },
{ path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
+ { path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
{ path: 'add-drivers', component: SupplyManagementAddDriversComponent },
{ path: 'vehicle-amend/:id', component: SupplyManagementOnecarPublishComponent },
+ { path: 'vehicle-release', component: SupplyManagementReleasePublishComponent },
+ { path: 'bulk-release', component: SupplyManagementBulkReleasePublishComponent },
{ path: 'bulk-amend/:id', component: SupplyManagementBulkPublishComponent },
];
diff --git a/src/app/routes/supply-management/supply-management.module.ts b/src/app/routes/supply-management/supply-management.module.ts
index 9f00c1cb..cbcc0a68 100644
--- a/src/app/routes/supply-management/supply-management.module.ts
+++ b/src/app/routes/supply-management/supply-management.module.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 11:10:14
- * @LastEditTime: 2021-12-21 11:04:45
+ * @LastEditTime: 2021-12-28 20:31: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\supply-management.module.ts
@@ -29,6 +29,8 @@ import { PublishSuccessComponent } from './components/onecar-publish/publish-suc
import { CarAddDriverComponent } from './components/add-driver/add-driver.component';
import { CarAddmodalComponent } from './components/addmodal/addmodal.component';
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
+import { SupplyManagementReleasePublishComponent } from './components/release-publish/release-publish.component';
+import { SupplyManagementBulkReleasePublishComponent } from './components/bulk-release-publish/bulk-release-publish.component';
const COMPONENTS: Type
[] = [
@@ -51,7 +53,9 @@ const COMPONENTS: Type[] = [
PublishSuccessComponent,
CarAddDriverComponent,
CarAddmodalComponent,
- SupplyManagementBulkDetailComponent
+ SupplyManagementBulkDetailComponent,
+ SupplyManagementReleasePublishComponent,
+ SupplyManagementBulkReleasePublishComponent
];
@NgModule({
diff --git a/src/style-icons.ts b/src/style-icons.ts
index 9ec6b095..fe76ee4e 100644
--- a/src/style-icons.ts
+++ b/src/style-icons.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-11-29 20:03:55
- * @LastEditTime: 2021-12-28 09:33:19
+ * @LastEditTime: 2021-12-28 20:35:15
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\style-icons.ts
@@ -23,7 +23,11 @@ import {
CheckCircleOutline,
QuestionCircleFill,
LeftOutline,
- FileDoneOutline
+ FileDoneOutline,
+ MenuOutline,
+ SwapOutline,
+ EnvironmentOutline,
+ ExclamationCircleOutline
} from '@ant-design/icons-angular/icons';
export const ICONS = [
@@ -41,5 +45,9 @@ export const ICONS = [
CheckCircleOutline,
QuestionCircleFill,
LeftOutline,
- FileDoneOutline
+ FileDoneOutline,
+ MenuOutline,
+ SwapOutline,
+ EnvironmentOutline,
+ ExclamationCircleOutline
];