diff --git a/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.html b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.html new file mode 100644 index 0000000..bd9a761 --- /dev/null +++ b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.html @@ -0,0 +1,132 @@ +
+
+
+ + 油站渠道 + + + + + + +
+
+ + 油号 + + + + + + +
+
+ + + + + + +
+
+
+ + + + + 渠道 + 日期 + 油号 + 折扣(%) + 服务费(%) + 更新时间 + 操作 + + + + + {{data.gasChannelType | dictionary: "MER_SOURCE_TYPE"}} + + {{data.weeks | week}} {{today == data.weeks?'(今日)':''}} + + {{data.oilNo}} + {{data.priceRate}} + {{data.serviceFeeRate}} + {{data.updateTime | date : 'yyyy-MM-dd HH:mm:ss'}} + + + + + + 总计 {{ total }} 条 + + + + +
+ + + 渠道 + + + + + + + + + 日期 + + + + + + + + + + + + + + + 油品 + + + + + + + + + 折扣(%) + + + + + + + 服务费(%) + + + + + +
+ +
+
+
+
diff --git a/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.less b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.less new file mode 100644 index 0000000..90447c4 --- /dev/null +++ b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.less @@ -0,0 +1,3 @@ +nz-input-number { + width: 100%; +} diff --git a/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.ts b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.ts new file mode 100644 index 0000000..62c8de3 --- /dev/null +++ b/src/app/pages/mer-oil-price/oil-channel-week/oil-channel-week.component.ts @@ -0,0 +1,196 @@ +import { Component } from '@angular/core'; +import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import { + NzCellFixedDirective, + NzTableCellDirective, + NzTableComponent, NzTableModule, + NzTbodyComponent, NzTheadComponent, + NzThMeasureDirective, NzTrDirective +} from "ng-zorro-antd/table"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzDescriptionsModule} from "ng-zorro-antd/descriptions"; +import {NzUploadComponent} from "ng-zorro-antd/upload"; +import {NzAvatarModule} from "ng-zorro-antd/avatar"; +import {NzImageModule} from "ng-zorro-antd/image"; +import {NzSwitchComponent} from "ng-zorro-antd/switch"; +import {NzDatePickerComponent} from "ng-zorro-antd/date-picker"; +import {NzInputNumberModule} from "ng-zorro-antd/input-number"; +import {WeekPipe} from "../../../pipes/common/week.pipe"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {DATA} from "../../../data/login/localStorage.namespace"; +import {CommonService} from "../../../services/common/common.service"; +import {OilChannelWeekService} from "../../../services/mer-oil-price/oil-channel-week.service"; + +@Component({ + selector: 'app-oil-channel-week', + standalone: true, + imports: [ + DatePipe, + DictionaryPipe, + FormsModule, + NgForOf, + NgIf, + NzButtonComponent, + NzCellFixedDirective, + NzColDirective, + NzDividerComponent, + NzDropDownADirective, + NzDropDownDirective, + NzDropdownMenuComponent, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzIconDirective, + NzInputDirective, + NzMenuDirective, + NzMenuItemComponent, + NzOptionComponent, + NzRowDirective, + NzSelectComponent, + NzTableCellDirective, + NzTableComponent, + NzTbodyComponent, + NzThMeasureDirective, + NzTheadComponent, + NzTrDirective, + ReactiveFormsModule, + NzTableModule, + NzModalModule, + NzFlexDirective, + NzDescriptionsModule, + NzUploadComponent, + NzAvatarModule, + NzImageModule, + NzSwitchComponent, + NzDatePickerComponent, + NzInputNumberModule, + WeekPipe + ], + templateUrl: './oil-channel-week.component.html', + styleUrl: './oil-channel-week.component.less' +}) +export class OilChannelWeekComponent { + // 表单数据 + tableData: any = []; + // 搜索表单 + searchForm: FormGroup; + // 油站渠道 + merSourceTypeArray = new DictionaryPipe().getDictionaryList('MER_SOURCE_TYPE'); + // 油号 + oilNoArray = new DictionaryPipe().getDictionaryList('OIL_NO'); + // 编辑数据表单 + editDataForm: FormGroup; + editDataModal = false; + // 当前日期 + today:number = new Date().getDay(); + constructor(private fb: NonNullableFormBuilder, + private message: NzMessageService, + private storage: BrowserStorageService, + private oilChannelWeekService: OilChannelWeekService, + private commonService: CommonService, + private modal: NzModalService) { + // 初始化搜索框 + this.searchForm = this.fb.group({ + gasChannelType: [this.merSourceTypeArray[0].codeValue], + oilNo: [this.oilNoArray[0].codeValue], + }); + + this.editDataForm = this.fb.group({ + id: [null, [Validators.required]], + gasChannelType: [null], + week: [null], + oilNo: [null], + priceRate: [null, [Validators.required]], + serviceFeeRate: [null, [Validators.required]], + }); + // 查询数据 + this.queryData(); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.time = new Date().getTime(); + this.oilChannelWeekService.getPriceList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 打开编辑模态框 + */ + showEditModal(data: any) { + data['week'] = String(data['weeks']); + data['gasChannelType'] = String(data['gasChannelType']); + this.editDataForm.patchValue(data); + this.editDataForm.controls['week'].disable(); + this.editDataForm.controls['oilNo'].disable(); + this.editDataForm.controls['gasChannelType'].disable(); + this.editDataModal = true; + } + + /** + * 提交数据 + */ + submitData() { + if (this.editDataForm.valid) { + this.oilChannelWeekService.updatePrice(this.editDataForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.message.create('success', '操作成功'); + // 刷新数据 + this.queryData(); + // 关闭弹窗 + this.closeEditModal(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editDataForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑任务模态框 + */ + closeEditModal() { + this.editDataForm.reset(); + this.editDataModal = false; + } +} diff --git a/src/app/pages/mer-oil-price/oil-discount/oil-discount.component.html b/src/app/pages/mer-oil-price/oil-discount/oil-discount.component.html index ffd16f8..a77cf10 100644 --- a/src/app/pages/mer-oil-price/oil-discount/oil-discount.component.html +++ b/src/app/pages/mer-oil-price/oil-discount/oil-discount.component.html @@ -60,7 +60,7 @@ (nzPageIndexChange)="queryData()" nzShowSizeChanger (nzPageSizeChange)="this.tablePageSize = $event;queryData()" - [nzPageSizeOptions]="[ 10, 20, 30, 50, 100 ]" + [nzPageSizeOptions]="[ 10, 50, 100, 1000, 5000 ]" [nzTotal]="tableData.total" [nzData]="tableData.list" > diff --git a/src/app/pages/merchant/merchant.routes.ts b/src/app/pages/merchant/merchant.routes.ts index 047b8a6..6046770 100644 --- a/src/app/pages/merchant/merchant.routes.ts +++ b/src/app/pages/merchant/merchant.routes.ts @@ -14,6 +14,7 @@ import {MerClassGroupTaskComponent} from "../mer-class-group/mer-class-group-tas import {MerClassGroupListComponent} from "../mer-class-group/mer-class-group-list/mer-class-group-list.component"; import {MerStaffListComponent} from "./mer-staff-list/mer-staff-list.component"; import {MerchantAmountComponent} from "./merchant-amount/merchant-amount.component"; +import {OilChannelWeekComponent} from "../mer-oil-price/oil-channel-week/oil-channel-week.component"; export const MERCHANT_ROUTES: Routes = [ { path: 'mer-list', component: MerListComponent }, @@ -25,7 +26,7 @@ export const MERCHANT_ROUTES: Routes = [ { path: 'device-list', component: DeviceListComponent }, { path: 'device-print', component: DevicePrintComponent }, { path: 'oil-task-list', component: OilTaskComponent }, - { path: 'oil-discount-list', component: OilDiscountComponent }, + { path: 'oil-discount-list', component: OilChannelWeekComponent }, { path: 'oil-config', component: OilConfigComponent }, { path: 'qr-code-list', component: QrCodeListComponent }, { path: 'class-group-list', component: MerClassGroupListComponent }, diff --git a/src/app/pages/trade/order-oil-list/order-oil-list.component.ts b/src/app/pages/trade/order-oil-list/order-oil-list.component.ts index 0cb9748..fc06a8d 100644 --- a/src/app/pages/trade/order-oil-list/order-oil-list.component.ts +++ b/src/app/pages/trade/order-oil-list/order-oil-list.component.ts @@ -210,6 +210,11 @@ export class OrderOilListComponent { queryAgent() { this.agentService.queryAgentList({ pageNum:1,pageSize:999}, (data: any) => { this.agentArray = data['return_data']['list']; + this.agentArray.push({ + id: 0, + name: '无' + }) + this.agentArray.sort((a: any, b: any) => a.id - b.id); }); } diff --git a/src/app/services/mer-oil-price/oil-channel-week.service.ts b/src/app/services/mer-oil-price/oil-channel-week.service.ts new file mode 100644 index 0000000..9ca7681 --- /dev/null +++ b/src/app/services/mer-oil-price/oil-channel-week.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class OilChannelWeekService { + + constructor(private http: HttpClient) { } + + /** + * 修改价格 + * @param params + * @param callBack + */ + public updatePrice(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'gasChannelPriceWeek/updatePrice', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询价格 + * @param params + * @param callBack + */ + public getPriceList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'gasChannelPriceWeek/getPriceList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } +} diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 1942a40..e4e132f 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,8 +4,8 @@ export const environment = { production: false, - baseUrl: 'http://localhost:9802/brest/', // 测试环境服务器地址(请求数据地址) - imageUrl: 'https://test-oil.dctpay.com/filesystem/', + baseUrl: 'https://oil.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) + imageUrl: 'https://oil.dctpay.com/filesystem/', }; /*