请上传身份证原件的高清照片,若上传复印件,则需申请人签字;
diff --git a/src/app/routes/sys-setting/components/network-freight/new/new.component.less b/src/app/routes/sys-setting/components/network-freight/new/new.component.less
index b1eab8b6..1a554f42 100644
--- a/src/app/routes/sys-setting/components/network-freight/new/new.component.less
+++ b/src/app/routes/sys-setting/components/network-freight/new/new.component.less
@@ -1,46 +1,46 @@
:host {
::ng-deep {
- nz-card {
+ nz-card {
+
.pr {
position: relative;
}
.pa {
position: absolute;
- top : 50px;
- left : 150px;
+ top: 50px;
+ left: 150px;
}
.pa2 {
position: absolute;
top: 28px;
left: 180px;
}
- .tips {
- display : flex;
+ .tips {
+ display: flex;
margin-bottom: 0;
- color : #333;
+ color: #333;
dt {
width: 150px;
}
dd {
- width : 190px;
+ width: 190px;
margin-bottom: 0;
- text-align : center;
+ text-align: center;
}
}
.form-title {
margin-bottom: 10px;
- padding-left : 8px;
- color : #333;
- font-weight : 700;
- font-size : 18px;
- line-height : 20px;
- border-left : solid 3px #1890ff;
+ padding-left: 8px;
+ color: #333;
+ font-weight: 700;
+ font-size: 18px;
+ line-height: 20px;
+ border-left: solid 3px #1890ff;
}
-
}
.ant-form-item {
@@ -51,21 +51,31 @@
nz-input-number {
width: 100% !important;
}
-
+ .ant-input-borderless{
+ padding: 0;
+ padding-top: 4px;
+ color: black;
+ resize:none;
+ }
+ .setCustom .ant-form-item-control{
+ margin-left: -100px !important
+ }
+ .borderImg{
+ border: solid 1px #ebf0fb;
+ }
.input-back {
nz-form-item {
- margin-left: 0px;
+ margin-left: 0;
.ant-form-item-label {
flex: 0 !important;
}
.ant-form-item-control {
- max-width : 100% !important;
+ max-width: 100% !important;
margin-left: 20px !important;
}
}
}
-
}
-}
\ No newline at end of file
+}
diff --git a/src/app/routes/sys-setting/components/network-freight/new/new.component.ts b/src/app/routes/sys-setting/components/network-freight/new/new.component.ts
index 00b3ccd8..3fbe0d7e 100644
--- a/src/app/routes/sys-setting/components/network-freight/new/new.component.ts
+++ b/src/app/routes/sys-setting/components/network-freight/new/new.component.ts
@@ -17,7 +17,6 @@ import { NzUploadFile } from 'ng-zorro-antd/upload';
import { of } from 'rxjs';
import { SystemService } from '../../../services/system.service';
-
const IMAGECONFIG = {
previewFile: (file: NzUploadFile) => of(file.url),
action: apiConf.waterFileUpload,
@@ -50,14 +49,14 @@ export class NetworkFreightNewComponent implements OnInit {
sf!: SFComponent;
@ViewChild('sf1', { static: false })
sf1!: SFComponent;
- sf1FormData: any = {
+ sf1FormData: any = {
legalPersonIdentityVO: {
certificatePhotoFrontWatermark: '',
- certificatePhotoBackWatermark: '',
- },
- };;
- subText = '确认新增'
- TabText = '新增网络货运人'
+ certificatePhotoBackWatermark: ''
+ }
+ };
+ subText = '确认新增';
+ TabText = '新增网络货运人';
sf2FormData: any = {};
schema: SFSchema = this.initOthersSF();
schema1: SFSchema = this.initBasicInfoSF();
@@ -85,22 +84,29 @@ export class NetworkFreightNewComponent implements OnInit {
$isLoingDate: {
spanLabelFixed: 100,
grid: { xxl: 6, xl: 6, lg: 4, md: 6 }
- }
+ },
+ $roadTransportPhotoWatermark: {
+ grid: { span: 12 },
+ },
+ $roadImg: {
+ grid: { span: 4 },
+ class: 'setCustom'
+ },
};
constructor(private router: Router, public service: SystemService, private route: ActivatedRoute) {}
ngOnInit() {
- if(this.route.snapshot.params.id !== 'undefined') {
- this.dataListInit(this.route.snapshot.params.id)
- this.subText = '确认编辑'
- this.TabText = '编辑网络货运人'
+ if (this.route.snapshot.params.id !== 'undefined') {
+ this.dataListInit(this.route.snapshot.params.id);
+ this.subText = '确认编辑';
+ this.TabText = '编辑网络货运人';
}
}
dataListInit(id: any) {
- this.service.request(this.service.$api_get_networkTransporter_getDetail,{id: id}).subscribe((res) => {
+ this.service.request(this.service.$api_get_networkTransporter_getDetail, { id: id }).subscribe(res => {
console.log(res);
- this.sf2FormData = res
- this.sf1FormData = res.enterpriseInfoVO
+ this.sf2FormData = res;
+ this.sf1FormData = res.enterpriseInfoVO;
this.sf1FormData.isLoingDate = this.sf1FormData.operatingEndTime !== null ? false : true;
this.sf1FormData.licensePhotoWatermark = [
{
@@ -109,19 +115,19 @@ export class NetworkFreightNewComponent implements OnInit {
status: 'done',
url: this.sf1FormData.licensePhotoWatermark,
response: this.sf1FormData.licensePhotoWatermark
- },
+ }
];
console.log(this.sf1FormData);
// 营业执照法人信息
-
+
this.sf1FormData.legalPersonIdentityVO.certificatePhotoFrontWatermark = [
{
uid: -1,
name: 'LOGO',
status: 'done',
- url: res.enterpriseInfoVO.legalPersonIdentityVO.certificatePhotoFrontWatermark,
- response: res.enterpriseInfoVO.legalPersonIdentityVO.certificatePhotoFrontWatermark
- },
+ url: res.enterpriseInfoVO.legalPersonIdentityVO.certificatePhotoFrontWatermark,
+ response: res.enterpriseInfoVO.legalPersonIdentityVO.certificatePhotoFrontWatermark
+ }
];
this.sf1FormData.legalPersonIdentityVO.certificatePhotoBackWatermark = [
{
@@ -129,20 +135,29 @@ export class NetworkFreightNewComponent implements OnInit {
name: 'LOGO',
status: 'done',
url: this.sf1FormData.legalPersonIdentityVO.certificatePhotoBackWatermark,
- response: this.sf1FormData.legalPersonIdentityVO.certificatePhotoBackWatermark,
- },
+ response: this.sf1FormData.legalPersonIdentityVO.certificatePhotoBackWatermark
+ }
];
- const province = this.sf1FormData.fullRegionVO.provinceCode
- const city = this.sf1FormData.fullRegionVO.cityCode
- const area = this.sf1FormData.fullRegionVO.areaCode
+ this.sf1FormData.legalPersonIdentityVO.roadTransportPhotoWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.sf1FormData.legalPersonIdentityVO.roadTransportPhotoWatermark,
+ response: this.sf1FormData.legalPersonIdentityVO.roadTransportPhotoWatermark
+ }
+ ];
+ const province = this.sf1FormData.fullRegionVO.provinceCode;
+ const city = this.sf1FormData.fullRegionVO.cityCode;
+ const area = this.sf1FormData.fullRegionVO.areaCode;
this.sf1FormData.enterpriseAddressCode = [parseInt(province), parseInt(city), parseInt(area)];
this.getRegionToThree();
- })
+ });
}
getRegionToThree() {
// 获取一、二、三级地区详情
- this.service.http.post(this.service.$api_getRegionToThree).subscribe((res) => {
- if(this.sf1){
+ this.service.http.post(this.service.$api_getRegionToThree).subscribe(res => {
+ if (this.sf1) {
this.sf1.getProperty('/enterpriseAddressCode')!.schema.enum = res.data;
this.sf1?.getProperty('/enterpriseAddressCode')?.widget.reset(res.data);
}
@@ -171,31 +186,37 @@ export class NetworkFreightNewComponent implements OnInit {
if (this.sf1.value.isLoingDate) {
this.sf1.value.operatingEndTime = '';
}
- console.log(this.sf1.value)
- console.log(this.sf1.valid)
- console.log(this.sf.value)
- console.log(this.sf.valid)
+ console.log(this.sf1.value);
+ console.log(this.sf1.valid);
+ console.log(this.sf.value);
+ console.log(this.sf.valid);
const sfVlaue = this.sf1.value;
const params: any = {};
- Object.assign(
- params,
- {
- ...this.sf.value ,
- enterpriseInfoDTO: {
- ...this.sf1.value,
- legalPersonIdentityDTO: this.sf1.value.legalPersonIdentityVO
- }
- }
- );
- delete params.enterpriseInfoDTO.legalPersonIdentityVO
+ console.log(this.sf1.value);
+
+ Object.assign(params, {
+ ...this.sf.value,
+ enterpriseInfoDTO: {
+ ...this.sf1.value,
+ legalPersonIdentityDTO: this.sf1.value.legalPersonIdentityVO,
+
+ },
+ roadTransportAddress: this.sf1.value.legalPersonIdentityVO.roadTransportAddress, //道路运输证地址
+ roadTransportEndTime: this.sf1.value.legalPersonIdentityVO.roadTransportEndTime, //道路运输许可证有效结束时间
+ roadTransportStartTime: this.sf1.value.legalPersonIdentityVO.roadTransportStartTime, //道路运输许可证有效开始时间
+ roadTransportPhotoWatermark: this.sf1.value.legalPersonIdentityVO.roadTransportPhotoWatermark, //带水印道路运输照片
+ roadTransportPhoto: this.sf1.value.legalPersonIdentityVO.roadTransportPhoto, //经营许可证号
+ roadTransportLicenceNo: this.sf1.value.legalPersonIdentityVO.roadTransportLicenceNo, //道路运输照片
+ });
+ delete params.enterpriseInfoDTO.legalPersonIdentityVO;
console.log(params);
params.enterpriseInfoDTO.enterpriseAddressCode = this.sf1.value?.enterpriseAddressCode?.[2];
- if(this.route.snapshot.params.id !== 'undefined') {
- params.id = this.route.snapshot.params.id
+ if (this.route.snapshot.params.id !== 'undefined') {
+ params.id = this.route.snapshot.params.id;
}
this.service.request(this.service.$api_networkTransporter_save, params).subscribe(res => {
if (res) {
- if(this.route.snapshot.params.id !== 'undefined') {
+ if (this.route.snapshot.params.id !== 'undefined') {
this.service.msgSrv.success('修改成功');
} else {
this.service.msgSrv.success('新增成功');
@@ -252,7 +273,7 @@ export class NetworkFreightNewComponent implements OnInit {
// 识别营业执照
checkBusinessLicense(imgurl: any) {
console.log('触发了识别');
-
+
this.service.request(this.service.$api_ocr_recognize_business_license, { businessLicenseUrl: imgurl }).subscribe(res => {
if (res) {
if (res.registrationNumber) {
@@ -313,7 +334,7 @@ export class NetworkFreightNewComponent implements OnInit {
}
} as SFUploadWidgetSchema
},
-
+
enterpriseName: {
title: '公司名称',
type: 'string',
@@ -433,7 +454,7 @@ export class NetworkFreightNewComponent implements OnInit {
}
} as SFDateWidgetSchema
},
-
+
operatingStartTime: {
title: '营业期限',
type: 'string',
@@ -583,9 +604,84 @@ export class NetworkFreightNewComponent implements OnInit {
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
placeholder: '请输入法定代表人证件号'
}
+ },
+ title3: { title: '', type: 'string', ui: { widget: 'custom', offsetControl: 6 } },
+ roadTransportPhoto: { title: '', type: 'string', ui: { hidden: true } },
+ roadTransportPhotoWatermark: {
+ type: 'string',
+ title: '道运证照片',
+ ui: {
+ ...IMAGECONFIG,
+ descriptionI18n: '请上传道运证照片,支持JPG、PNG格式,文件小于5M。蓝牌绿牌车辆,可不用传道运证',
+ change: args => {
+ if (args.type === 'success') {
+ console.log(args);
+
+ this.sf1.setValue('/legalPersonIdentityVO/roadTransportPhoto', args.fileList[0].response.data.fullFilePath);
+ this.checkTransCard(args.fileList[0].response.data.fullFilePath);
+ }
+ }
+ } as SFUploadWidgetSchema
+ },
+ // roadImg: {
+ // title: '',
+ // type: 'boolean',
+ // // enum: [{ label: '长期', value: true }],
+ // ui: {
+ // widget: 'custom'
+ // }
+ // },
+ roadTransportLicenceNo: {
+ title: '经营许可证号',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入'
+ }
+ },
+ roadTransportAddress: {
+ title: '地址',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入'
+ }
+ },
+ roadTransportStartTime: {
+ title: '发证日期',
+ type: 'string',
+ format: 'date',
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入'
+ }
+ },
+ roadTransportEndTime: {
+ title: '有效期至',
+ type: 'string',
+ format: 'date',
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入'
+ }
}
},
- required: ['certificatePhotoFront', 'certificatePhotoBack', 'name', 'certificateType', 'certificateNumber','certificatePhotoFrontWatermark','certificatePhotoBackWatermark']
+ required: [
+ 'certificatePhotoFront',
+ 'certificatePhotoBack',
+ 'name',
+ 'certificateType',
+ 'certificateNumber',
+ 'certificatePhotoFrontWatermark',
+ 'certificatePhotoBackWatermark',
+ 'roadTransportEndTime',
+ 'roadTransportStartTime',
+ 'roadTransportLicenceNo',
+ 'roadTransportPhotoWatermark',
+ 'roadTransportAddress',
+ ]
}
},
required: [
@@ -623,13 +719,25 @@ export class NetworkFreightNewComponent implements OnInit {
type: 'string',
addOnAfter: '%',
ui: {
- addOnAfter: '%',
+ addOnAfter: '%',
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
placeholder: '请输入成本费率'
- }
+ }
}
},
required: ['website', 'costRate']
};
}
+ // 道路运输证识别
+ checkTransCard(imgurl: any) {
+ const params = {
+ transportationLicenseUrl: imgurl
+ };
+ this.service.request(this.service.$api_recognizeTransportationLicense, params).subscribe(res => {
+ if (res) {
+ this.sf.setValue('/roadTransportLicenceNo', res?.businessCertificate);
+ this.sf.setValue('/roadTransportStartTime', res?.issueDate);
+ }
+ });
+ }
}
diff --git a/src/app/routes/sys-setting/components/sms-template/sms-template.component.html b/src/app/routes/sys-setting/components/sms-template/sms-template.component.html
new file mode 100644
index 00000000..06e3616b
--- /dev/null
+++ b/src/app/routes/sys-setting/components/sms-template/sms-template.component.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/sys-setting/components/sms-template/sms-template.component.less b/src/app/routes/sys-setting/components/sms-template/sms-template.component.less
new file mode 100644
index 00000000..12fe08a6
--- /dev/null
+++ b/src/app/routes/sys-setting/components/sms-template/sms-template.component.less
@@ -0,0 +1,6 @@
+:host::ng-deep {
+ .filter-wrap {
+ margin-bottom: 20px;
+ text-align: right;
+ }
+}
\ No newline at end of file
diff --git a/src/app/routes/sys-setting/components/sms-template/sms-template.component.ts b/src/app/routes/sys-setting/components/sms-template/sms-template.component.ts
new file mode 100644
index 00000000..7073d001
--- /dev/null
+++ b/src/app/routes/sys-setting/components/sms-template/sms-template.component.ts
@@ -0,0 +1,144 @@
+
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
+import { SFComponent, SFSchema } from '@delon/form';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { SystemService } from '../../services/system.service';
+
+@Component({
+ selector: 'app-sms-template',
+ templateUrl: './sms-template.component.html',
+ styleUrls: ['./sms-template.component.less']
+})
+export class SmsTemplateComponent implements OnInit {
+ @ViewChild('st', { static: true })
+ st!: STComponent;
+ @ViewChild('sf', { static: false })
+ sf!: SFComponent;
+ @ViewChild('sfEdit', { static: false })
+ sfEdit!: SFComponent;
+ visible = false;
+ isVisible = false;
+ tempData = {};
+
+ searchSchema: SFSchema = {
+ properties: {
+ templateCode: {
+ type: 'string',
+ title: '模板编码',
+ ui: { placeholder: '请输入模板编码' }
+ },
+ templateContent: {
+ type: 'string',
+ title: '模板内容',
+ ui: { placeholder: '请输入模板内容' }
+ }
+ }
+ };
+
+ editSchema: SFSchema = {
+ properties: {
+ templateCode: {
+ type: 'string',
+ title: '模板编码',
+ ui: { placeholder: '请输入模板编码' }
+ },
+ templateContent: {
+ type: 'string',
+ title: '模板内容',
+ ui: { placeholder: '请输入模板内容' }
+ },
+ templateName: {
+ type: 'string',
+ title: '模板名称',
+ ui: { placeholder: '请输入模板名称' }
+ }
+ }
+ }
+
+ columns: STColumn[] = [
+ { title: '模板编码', className: 'text-center', index: 'templateCode' },
+ { title: '模板内容', className: 'text-center', index: 'templateContent' },
+ // {
+ // title: '创建人', className: 'text-center', index: 'content',
+ // },
+ {
+ title: '更新时间',
+ index: 'modifyTime',
+ type: 'date',
+ className: 'text-center'
+ },
+ {
+ title: '操作',
+ buttons: [
+ {
+ text: '编辑',
+ click: i => this.edit(i),
+ }
+ ]
+ }
+ ];
+
+ constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {
+ }
+
+ ngOnInit(): void { }
+
+ beforeReq = (requestOptions: STRequestOptions) => {
+ if (this.sf) {
+ Object.assign(requestOptions.body, { ...this.sf.value });
+ }
+ return requestOptions;
+ };
+
+ edit(item: any) {
+ // console.log(item);
+ this.tempData = item;
+ this.isVisible = true;
+ }
+
+ search() {
+ this.st.reload(1);
+ this.visible = false;
+ }
+
+ open(): void {
+ this.visible = true;
+ }
+
+ close(): void {
+ this.visible = false;
+ }
+
+ handleOk(): void {
+ const value = this.sfEdit.value;
+ const { id, templateCode, templateName, templateContent } = value
+ const params = {
+ id,
+ templateCode,
+ templateName,
+ templateContent
+ }
+
+ this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => {
+ // console.log(res);
+ if (res) {
+ this.isVisible = false;
+ this.st.reload();
+ }
+ })
+
+ }
+
+ handleCancel(): void {
+ this.isVisible = false;
+ }
+
+ /**
+ * 重置表单
+ */
+ resetSF() {
+ this.sf.reset();
+ }
+}
diff --git a/src/app/routes/sys-setting/services/system.service.ts b/src/app/routes/sys-setting/services/system.service.ts
index bad5ae64..9c7e7250 100644
--- a/src/app/routes/sys-setting/services/system.service.ts
+++ b/src/app/routes/sys-setting/services/system.service.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-20 17:18:43
- * @LastEditTime : 2022-02-18 13:42:49
+ * @LastEditTime : 2022-04-20 16:48:26
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\services\\system.service.ts
@@ -30,7 +30,6 @@ export class SystemService extends BaseService {
// 运营管理后台转授超管角色
$api_set_shift_admin = `/api/mdc/cuc/userAuthority/shiftAdmin`;
-
// 分页获取应用角色列表
$api_get_role_page = '/api/mdc/cuc/roleInfo/getAppRoleInfoList';
// 分页获取配置角色列表
@@ -112,28 +111,26 @@ export class SystemService extends BaseService {
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_batch = '/api/mdc/pbc/sysConfigItem/updateBatch';
+ // 新增系统配置项
+ public $api_add_config_item = '/api/mdc/pbc/sysConfigItem/save';
+ // 更新系统配置项
+ public $api_update_config_item = '/api/mdc/pbc/sysConfigItem/update';
+ // 批量更新系统配置项
+ public $api_update_config_batch = '/api/mdc/pbc/sysConfigItem/updateBatch';
// 更新系统配置项排序
public $api_update_config_item_sort = '/api/mdc/pbc/sysConfigItem/updateSort';
// 删除系统配置项
public $api_remove_config_item = '/api/mdc/pbc/sysConfigItem/deletebatch';
-
// 根据网络货运人ID获取票务信息
public $api_getTicketByNetworkTransporterId = '/api/mdc/cuc/networkTransporterTicket/getTicketByNetworkTransporterId';
// 保存票务信息
public $api_networkTransporterTicket_save = '/api/mdc/cuc/networkTransporterTicket/save';
- // 根据地区code查询列表
- $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode';
+ // 根据地区code查询列表
+ $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode';
// 根据地区code查询地区详情
$api_getRegionDetailByCode = '/api/mdc/pbc/region/getRegionDetailByCode';
-
// 分页查询按钮列表
$api_getButtonInfoPage = '/api/mdc/cuc/buttonInfo/getButtonInfoPage';
// 新增编辑按钮信息
@@ -143,7 +140,6 @@ export class SystemService extends BaseService {
// 删除按钮信息(id)
$api_deletebatchButton = '/api/mdc/cuc/buttonInfo/deletebatchButton';
-
// 根据条件获取公告列表
$api_getAnnouncementInfoList_page = '/api/mdc/pbc/announcementInfo/getAnnouncementInfoList';
// 获取公告信息详情
@@ -154,37 +150,44 @@ export class SystemService extends BaseService {
$api_modifyAnnouncementInfo = '/api/mdc/pbc/announcementInfo/modifyAnnouncementInfo';
// 新增公告信息
$api_addAnnouncementInfo = '/api/mdc/pbc/announcementInfo/addAnnouncementInfo';
-
-
- // 查询保险配置
- $api_insuranceConfig_list = '/api/mdc/cuc/insuranceConfig/list';
- // 获取保险配置费率
- $api_getInsuranceRate = '/api/mdc/cuc/insuranceConfig/getInsuranceRate';
- // 获取保险配置(id)
- $api_getInsuranceRate_get = '/api/mdc/cuc/insuranceConfig/get';
- // 删除保险配置(id)
- $api_getInsuranceRate_deletebatch = '/api/mdc/cuc/insuranceConfig/deletebatch';
- // 批量保存保险配置
- $api_getInsuranceRate_saveBatch = '/api/mdc/cuc/insuranceConfig/saveBatch';
-
- // 营业执照识别
- $api_ocr_recognize_business_license = '/api/mdc/pbc/hwc/ocr/recognizeBusinessLicense';
- // 短信发送列表
- $api_listSmsSendLog = '/api/mdc/pbc/smsSend/listSmsSendLog';
- // 身份证识别
- $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
- // 获取字典
- $api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue';
- // 设置crm客户
- $api_setCrmCustomer = '/api/mdc/cuc/networkTransporter/setCrmCustomer';
+
+ // 查询保险配置
+ $api_insuranceConfig_list = '/api/mdc/cuc/insuranceConfig/list';
+ // 获取保险配置费率
+ $api_getInsuranceRate = '/api/mdc/cuc/insuranceConfig/getInsuranceRate';
+ // 获取保险配置(id)
+ $api_getInsuranceRate_get = '/api/mdc/cuc/insuranceConfig/get';
+ // 删除保险配置(id)
+ $api_getInsuranceRate_deletebatch = '/api/mdc/cuc/insuranceConfig/deletebatch';
+ // 批量保存保险配置
+ $api_getInsuranceRate_saveBatch = '/api/mdc/cuc/insuranceConfig/saveBatch';
+
+ // 营业执照识别
+ $api_ocr_recognize_business_license = '/api/mdc/pbc/hwc/ocr/recognizeBusinessLicense';
+ // 短信发送列表
+ $api_listSmsSendLog = '/api/mdc/pbc/smsSend/listSmsSendLog';
+ // 身份证识别
+ $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
+ // 获取字典
+ $api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue';
+ // 设置crm客户
+ $api_setCrmCustomer = '/api/mdc/cuc/networkTransporter/setCrmCustomer';
// 获取一、二、三级地区详情
$api_getRegionToThree = '/api/mdc/pbc/region/getRegionToThree';
+ // 道路运输证识别
+ $api_recognizeTransportationLicense = '/api/mdc/pbc/hwc/ocr/recognizeTransportationLicense';
$api_getRoleTemplateInfo: string = '';
$api_getFunctionButtonInfo: string = '/api/mdc/cuc/functionButton/getFunctionButtonByFunctionId';
$api_getFunctionDataInfo: string = '';
$api_getAppList: string = '';
$api_getRoleTemplateListByAppId: string = '';
$api_updateRoleInfo: string = '';
+
+ // 短信模板list
+ $api_smsTemplate_page = '/api/mdc/pbc/smsTemplate/list/page';
+ // 短信模板编辑
+ $api_smsTemplate_edit = '/api/mdc/pbc/smsTemplate/save';
+
constructor(public injector: Injector) {
super(injector);
}
diff --git a/src/app/routes/sys-setting/sys-setting-routing.module.ts b/src/app/routes/sys-setting/sys-setting-routing.module.ts
index 7be49b35..f0670f64 100644
--- a/src/app/routes/sys-setting/sys-setting-routing.module.ts
+++ b/src/app/routes/sys-setting/sys-setting-routing.module.ts
@@ -25,6 +25,7 @@ import { AnnouncementMessageComponent } from './components/announcement-message/
import { InsuranceSetComponent } from './components/insurance-set/insurance-set.component';
import { NetworkFreightNewComponent } from './components/network-freight/new/new.component';
import { NoTeManagementComponent } from './components/note-management/note-management.component';
+import { SmsTemplateComponent } from './components/sms-template/sms-template.component';
const routes: Routes = [
{ path: 'staff-management', component: StaffManagementComponent },
@@ -44,7 +45,8 @@ const routes: Routes = [
{ path: 'close-account', component: CloseAccountComponent },
// { path: 'btn-management', component: BtnManagementComponent },
{ path: 'announcement-message', component: AnnouncementMessageComponent },
- { path: 'insurance-set', component: InsuranceSetComponent }
+ { path: 'insurance-set', component: InsuranceSetComponent },
+ { path: 'sms-template', component: SmsTemplateComponent}
];
@NgModule({
diff --git a/src/app/routes/sys-setting/sys-setting.module.ts b/src/app/routes/sys-setting/sys-setting.module.ts
index ecb6d87a..2e1275c1 100644
--- a/src/app/routes/sys-setting/sys-setting.module.ts
+++ b/src/app/routes/sys-setting/sys-setting.module.ts
@@ -33,6 +33,7 @@ import { AnnouncementMessageComponent } from './components/announcement-message/
import { InsuranceSetComponent } from './components/insurance-set/insurance-set.component';
import { NetworkFreightNewComponent } from './components/network-freight/new/new.component';
import { NoTeManagementComponent } from './components/note-management/note-management.component';
+import { SmsTemplateComponent } from './components/sms-template/sms-template.component';
const COMPONENTS = [
StaffManagementComponent,
@@ -50,7 +51,8 @@ const COMPONENTS = [
NetworkFreightNewComponent,
AnnouncementMessageComponent,
InsuranceSetComponent,
- NoTeManagementComponent
+ NoTeManagementComponent,
+ SmsTemplateComponent
];
const NOTROUTECOMPONENTS = [
BuyerTranspowerComponent,
diff --git a/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.html b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.html
new file mode 100644
index 00000000..7bd651ef
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0">
+
+
+
+
+
+
+
+
+ 待上传
+ 已上传
+ 上传中
+ 上传异常
+
+
+ {{item.billCode}}
+
+
+
+ 校验中
+ 通过
+
+ 不通过
+
+
+
+ {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item?.orderAmount | currency }}
+
+
+
+
+
+
+ 已选择
+ {{ selectedRows.length }} 条数据
+
+
+
+
+
diff --git a/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.less b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.less
new file mode 100644
index 00000000..94ec07e0
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.less
@@ -0,0 +1,22 @@
+:host {
+ .text-black {
+ color: #000;
+ }
+ .icon {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ stroke-width: 0;
+ stroke: currentColor;
+ /* stylelint-disable-next-line order/properties-order */
+ fill: currentColor;
+ }
+ ::ng-deep {
+ .imgBox {
+ display: flex;
+ img {
+ width: 60px !important;
+ }
+ }
+ }
+}
diff --git a/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.ts b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.ts
new file mode 100644
index 00000000..26de04d6
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/invoice-reporting.component.ts
@@ -0,0 +1,460 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { STColumn, STComponent, STData } from '@delon/abc/st';
+import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
+import { ShipperBaseService } from '@shared';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { of } from 'rxjs';
+import { map } from 'rxjs/operators';
+import { TaxManagementService } from '../../services/tax-management.service';
+import { TaxManagementInvoiceUploadSettingComponent } from './upload-setting/upload-setting.component';
+import { TaxManagementInvoiceVerifyResultComponent } from './verify-result/verify-result.component';
+// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
+// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
+
+@Component({
+ selector: 'app-tax-management-invoice-reporting',
+ templateUrl: './invoice-reporting.component.html',
+ styleUrls: ['./invoice-reporting.component.less']
+})
+export class TaxManagementInvoiceReportingComponent implements OnInit {
+ _$expand = false;
+ ui!: SFUISchema;
+ schema!: SFSchema;
+ columns!: STColumn[];
+ @ViewChild('st', { static: false }) st!: STComponent;
+ @ViewChild('sf', { static: false }) sf!: SFComponent;
+ tabType!: string;
+ isLoading: boolean = false;
+ tabs: any[] = [
+ { name: '待上传', value: '0' },
+ { name: '上传中', value: '3' },
+ { name: '已上传', value: '1' },
+ { name: '异常', value: '2' },
+ { name: '全部', value: '' }
+ ];
+ selectedIndex = '0'; //选择的项目
+ serviceTel = '';
+ constructor(
+ public service: TaxManagementService,
+ private router: Router,
+ private ar: ActivatedRoute,
+ public shipperservice: ShipperBaseService,
+ private modal: NzModalService,
+ public shipperSrv: ShipperBaseService
+ ) {
+ }
+
+ /**
+ * 查询字段个数
+ */
+ get queryFieldCount(): number {
+ return Object.keys(this.schema?.properties || {}).length;
+ }
+
+ /**
+ * 查询参数
+ */
+ get reqParams() {
+ const params = Object.assign({}, this.sf?.value || {}, {
+ putStatus: this.selectedIndex,
+ });
+ delete params._$expand;
+ return { ...params };
+ }
+
+ /**
+ * 选中行
+ */
+ get selectedRows() {
+ return this.st?.list.filter((item: any) => item.checked) || [];
+ }
+
+ /**
+ * 伸缩查询条件
+ */
+ expandToggle() {
+ this._$expand = !this._$expand;
+ this.sf?.setValue('/_$expand', this._$expand);
+ }
+
+ /**
+ * 重置表单
+ */
+ resetSF() {
+ this.sf.reset();
+ this._$expand = false;
+ this.isLoading = true
+ }
+ /**
+ * 程序初始化入口
+ */
+ ngOnInit() {
+ this.initSF();
+ this.initST();
+ }
+
+ /**
+ * 初始化查询表单
+ */
+ initSF() {
+ this.schema = {
+ properties: {
+ _$expand: { type: 'boolean', ui: { hidden: true } },
+ putStatus: {
+ title: '上传状态',
+ type: 'string',
+ default: 0,
+ enum: [
+ { label: '全部', value: 0 },
+ { label: '待上传', value: 1 },
+ { label: '上传中', value: 2 },
+ { label: '已上传', value: 3 },
+ { label: '异常', value: 4 }
+ ],
+
+ ui: {
+ placeholder: '请选择',
+ widget: 'select',
+ allowClear: true
+ }
+ },
+ networkTransporter: {
+ type: 'string',
+ title: '网络货运人',
+ ui: {
+ widget: 'select',
+ placeholder: '请选择',
+ allowClear: true,
+ asyncData: () => this.shipperservice.getNetworkFreightForwarder()
+ }
+ },
+ hrto: {
+ type: 'string',
+ title: '购买方',
+ ui: {
+ widget: 'select',
+ placeholder: '请选择',
+ allowClear: true,
+ asyncData: () => this.service.getCRMCustomerId()
+ }
+ },
+ billCode: {
+ title: '订单号', type: 'string', ui: {
+ placeholder: '请输入', visibleIf: {
+ _$expand: (value: boolean) => value
+ }
+ }
+ },
+ recentlyPutTime: {
+ title: '开票日期',
+ type: 'string',
+ ui: {
+ widget: 'sl-from-to',
+ type: 'date',
+ format: 'yyyy-MM-dd',
+ visibleIf: {
+ _$expand: (value: boolean) => value,
+ },
+ } as SFDateWidgetSchema,
+ },
+ orderPayTime: {
+ title: '上传日期',
+ type: 'string',
+ ui: {
+ widget: 'sl-from-to',
+ type: 'date',
+ format: 'yyyy-MM-dd',
+ visibleIf: {
+ _$expand: (value: boolean) => value,
+ },
+ } as SFDateWidgetSchema,
+ },
+ wayBillCode: {
+ type: 'string',
+ title: '发票号码',
+ ui: {
+ placeholder: '请输入',
+ visibleIf: {
+ _$expand: (value: boolean) => value
+ }
+ },
+ },
+ wayBillCode1: {
+ type: 'string',
+ title: '发票代码',
+ ui: {
+ placeholder: '请输入',
+ visibleIf: {
+ _$expand: (value: boolean) => value
+ }
+ },
+ },
+ sts: {
+ title: '发票状态',
+ type: 'string',
+ ui: {
+ widget: 'dict-select',
+ containsAllLabel: true,
+ params: { dictKey: 'vatinv:status' },
+ containAllLable: true,
+ visibleIf: {
+ _$expand: (value: boolean) => value
+ }
+ } as SFSelectWidgetSchema
+ },
+ },
+ };
+ this.ui = {
+ '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
+ $time: { grid: { span: 24 } },
+ };
+ }
+
+ /**
+ * 初始化数据列表
+ */
+ initST() {
+ this.columns = [
+ { title: '', type: 'checkbox', className: 'text-center', width: '60px', },
+ { title: '上传状态', render: 'putStatus', className: 'text-center', width: '120px', },
+ { title: '发票类型', render: 'checkStatus', className: 'text-center', width: '120px', },
+ {
+ title: '发票号码',
+ index: 'billCode',
+ render: 'invoiceNO',
+ className: 'text-center',
+ width: '150px',
+ },
+ { title: '发票代码', index: 'wayBillCode', className: 'text-center', width: '150px', },
+ {
+ title: '网络货运人',
+ index: 'networkTransporterName',
+ className: 'text-center',
+ width: '180px',
+ },
+ { title: '购买方企业名称', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
+ { title: '购买方统一社会信用代码', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
+ { title: '订单号', index: 'unloadAddress', render: 'dischargePlace', className: 'text-center', width: '120px' },
+ { title: '货物名称', index: 'unloadDetailedAddress', className: 'text-center', width: '180px' },
+ { title: '价税合计', index: 'shipperName', className: 'text-center', width: '180px' },
+ { title: '开票日期', index: 'shipperProvinceCode', className: 'text-center', width: '180px' },
+ { title: '发票所属月份', index: 'recordTime', className: 'text-center', width: '250px' },
+ { title: '发票状态', index: 'wayBillCreateTime', className: 'text-center', width: '200px' },
+ { title: '上传日期', index: 'loadTime', className: 'text-center', width: '200px' },
+ ];
+ }
+
+
+
+ /**
+ *撤回
+ * @param record 记录实例
+ */
+ recall() {
+ if (this.selectedRows.length === 0) {
+ this.openWainingModal('请选择需要撤回的数据');
+ return;
+ }
+ let params: any[] = [];
+ this.selectedRows.forEach(item => {
+ params.push(item.id);
+ });
+ this.modal.confirm({
+ nzTitle: '撤回提示',
+ nzContent: ' 撤回后可以重新上传,重新上传会覆盖已上传数据,确定要撤回?',
+ nzOkText: '确定',
+ nzCancelText: '取消',
+ nzOnOk: () => {
+ this.service.request(this.service.$api_get_recessionTaxOrder, params).subscribe((res: any) => {
+ if (res) {
+ this.service.msgSrv.success('撤销成功');
+ this.search();
+ }
+ })
+ }
+ });
+
+ }
+ /**
+ *撤销
+ * @param record 记录实例
+ */
+ resetData() {
+ if (this.selectedRows.length === 0) {
+ this.openWainingModal('请选择需要更新的数据!');
+ return;
+ }
+ let params: any[] = [];
+ this.selectedRows.forEach(item => {
+ params.push(item.billId);
+ });
+ this.service.request(this.service.$api_get_renewalOrderById, params).subscribe((res: any) => {
+ if (res) {
+ this.service.msgSrv.success('更新成功');
+ this.st.load(1);
+ }
+ })
+ }
+ /**
+ *撤销
+ * @param record 记录实例
+ */
+ unnormal(value: any) {
+ // if (this.selectedRows.length === 0) {
+ // this.openWainingModal('请选择需要更新的数据!');
+ // return;
+ // }
+ console.log(this.selectedRows);
+ let params: any[] = [];
+ this.selectedRows.forEach(item => {
+ params.push(item.id);
+ });
+ this.modal.confirm({
+ nzTitle: '税务审核结果',
+ nzContent: '订单结算时间所在月份与申报月份不一致',
+ nzOkText: '确定',
+ nzCancelText: '',
+ nzOnOk: () => {
+ this.service.request(this.service.$api_get_recessionTaxOrder, params).subscribe((res: any) => {
+ if (res) {
+ this.service.msgSrv.success('撤销成功');
+ this.search();
+ }
+ })
+ }
+ });
+
+ }
+
+ selectChange(item: any) {
+ console.log(item);
+
+ this.selectedIndex = item?.value || '';
+ setTimeout(() => {
+ this.st.load();
+ })
+ }
+
+ /**
+ * 查看当行数据
+ */
+ view(record: STData) {
+ // this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
+ this.router.navigate(['../detail'], {
+ queryParams: {
+ id: record.id,
+ },
+ relativeTo: this.ar
+ });
+ }
+
+ // appeal(item: any) {
+ // const modalRef = this.modal.create({
+ // nzTitle: '申诉',
+ // nzWidth: '40%',
+ // nzContent: CtcAppealComponent,
+ // nzComponentParams: {
+ // i: item,
+ // status: 'add'
+ // },
+ // nzFooter: null
+ // });
+ // modalRef.afterClose.subscribe(res => {
+ // if (res) {
+ // this.search({ representationsStatus: '' });
+ // }
+ // })
+ // }
+
+ /**
+ * 上传
+ */
+ upload() {
+ if (this.selectedRows.length === 0) {
+ this.openWainingModal('请选择需要上传的数据');
+ return;
+ }
+ let params: any[] = [];
+ this.selectedRows.forEach(item => {
+ params.push(item.id);
+ });
+ this.service.request(this.service.$api_get_uploadingTaxOrder, params).subscribe((res: any) => {
+ if (res) {
+ this.service.msgSrv.success('上传成功');
+ this.st.load();
+ }
+ })
+ }
+
+
+ /**
+ *
+ * @param params 上传设置
+ */
+ uploadSetting() {
+ const modalRef = this.modal.create({
+ nzTitle: '税务上传设置',
+ nzWidth: 600,
+ nzContent: TaxManagementInvoiceUploadSettingComponent,
+ nzComponentParams: {},
+ nzFooter: null
+ });
+ modalRef.afterClose.subscribe(res => {
+ if (res) {
+ this.st.load();
+ }
+ })
+ }
+
+ /**
+ * 查看校验结果
+ */
+ viewResult(item: any) {
+ const modalRef = this.modal.create({
+ nzTitle: '本地校验结果',
+ nzWidth: 1200,
+ nzContent: TaxManagementInvoiceVerifyResultComponent,
+ nzComponentParams: {
+ record: item
+ },
+ nzFooter: null
+ });
+ modalRef.afterClose.subscribe(res => {
+ if (res) {
+ this.st.load();
+ }
+ })
+ }
+
+ /**
+ * 查看监管审核结果
+ */
+ viewAuditResult(record: any) {
+ if (record?.billStatus !== '2') {
+ return;
+ }
+ this.openWainingModal('监管审核结果', record?.result)
+ }
+
+
+ search() {
+ this.st.load(1);
+ }
+
+ /**
+ * 异步导出
+ */
+ export() {
+ this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
+ }
+
+ openWainingModal(content: string, title = '提示') {
+ this.modal.warning({
+ nzMask: false,
+ nzTitle: title,
+ nzContent: content,
+ })
+ }
+
+}
diff --git a/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.html b/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.html
new file mode 100644
index 00000000..a4f5ae6e
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.html
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.ts b/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.ts
new file mode 100644
index 00000000..c64f9110
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/upload-setting/upload-setting.component.ts
@@ -0,0 +1,110 @@
+import { Component, OnInit } from '@angular/core';
+import { SFSchema, SFUISchema } from '@delon/form';
+import { NzModalRef } from 'ng-zorro-antd/modal';
+import { TaxManagementService } from '../../../services/tax-management.service';
+
+
+@Component({
+ selector: 'app-datatable-invoice-upload-setting',
+ templateUrl: './upload-setting.component.html',
+})
+export class TaxManagementInvoiceUploadSettingComponent implements OnInit {
+ record: any = {};
+ i: any = {};
+ schema!: SFSchema;
+ ui!: SFUISchema;
+
+ constructor(
+ private modal: NzModalRef,
+ public service: TaxManagementService
+ ) { }
+
+ ngOnInit(): void {
+ this.initSF();
+ // this.loadData();
+ }
+
+ /**
+ * 初始化查询表单
+ */
+ initSF() {
+ this.schema = {
+ properties: {
+ no: {
+ type: 'string',
+ title: '订单数据',
+ enum: [
+ {
+ label: '手动上传',
+ value: '1'
+ },
+ {
+ label: '自动上传',
+ value: '2'
+ }
+ ],
+ description: '开启自动上传后,订单将在支付完成且风险单校验通过后自动上传',
+ ui: {
+ widget: 'radio',
+
+ }
+ },
+ owner: {
+ type: 'string',
+ title: '资金数据',
+ enum: [
+ {
+ label: '手动上传',
+ value: '1'
+ },
+ {
+ label: '自动上传',
+ value: '2'
+ }
+ ],
+ description: '开启自动上传后,订单将在支付完成且风险单校验通过后自动上传',
+ ui: {
+ widget: 'radio',
+
+ }
+ },
+ },
+ required: ['owner', 'no'],
+ }
+ this.ui = {
+ '*': {
+ spanLabelFixed: 100,
+ grid: { span: 24 },
+ },
+ };
+ }
+
+ /**
+ * 获取设置数据
+ */
+ loadData() {
+ this.service.request(this.service.$api_get_upload_setting, {}).subscribe(res => {
+ if (res) {
+ this.i = res;
+
+ }
+ })
+ }
+
+ /**
+ * 修改
+ * @param value
+ */
+ save(value: any): void {
+ this.service.request(this.service.$api_upload_setting_save, { ...value }).subscribe(res => {
+ if (res) {
+ this.service.msgSrv.success('保存成功');
+ this.modal.close(true);
+ }
+ })
+ }
+
+ close(): void {
+ this.modal.destroy();
+ }
+}
diff --git a/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.html b/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.html
new file mode 100644
index 00000000..f84ade19
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
{{ item.expenseName }}:{{ item.price | currency }}
+
+
+
+
+
+
diff --git a/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.ts b/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.ts
new file mode 100644
index 00000000..1442ddba
--- /dev/null
+++ b/src/app/routes/tax-management/components/invoice-reporting/verify-result/verify-result.component.ts
@@ -0,0 +1,139 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { Router } from '@angular/router';
+import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
+import { SFSchema } from '@delon/form';
+import { ModalHelper, _HttpClient } from '@delon/theme';
+import { NzModalRef } from 'ng-zorro-antd/modal';
+import { TaxManagementService } from '../../../services/tax-management.service';
+
+@Component({
+ selector: 'app-tax-management-Invoice-reporting-verify-result',
+ templateUrl: './verify-result.component.html',
+})
+export class TaxManagementInvoiceVerifyResultComponent implements OnInit {
+ searchSchema: SFSchema = {
+ properties: {
+ no: {
+ type: 'string',
+ title: '编号'
+ }
+ }
+ };
+ @ViewChild('st') private readonly st!: STComponent;
+ columns: STColumn[] = [];
+ record: any = {}
+ subjectType: string = '0';
+ tabs: any[] = [
+ { name: '平台信息', value: '0' },
+ { name: '货主信息', value: '1' },
+ { name: '司机信息', value: '2' },
+ { name: '订单信息', value: '3' },
+ ];
+
+ // get reqParams() {
+ // console.log(this.subjectType);
+ // const params ={
+ // subjectId: this.record?.shipperId,
+ // subjectType: this.subjectType,
+ // }
+ // return params;
+ // }
+ beforeReq = (requestOptions: STRequestOptions) => {let a: string = '';
+ switch (this.subjectType) {
+ case '0':
+ a = this.record?.networkTransporterId;
+ break
+ case '1':
+ a = this.record?.shipperId;
+ break
+ case '2':
+ a = this.record?.driverId;
+ break
+ case '3':
+ a = this.record?.wayBillId;
+ break
+ }
+ Object.assign(requestOptions.body, {
+ subjectId: a ,
+ subjectType: this.subjectType,
+ });
+ return requestOptions;
+ };
+ afterRes = (data: any[], rawData?: any) => {
+ console.log(data)
+ return data.map(item => ({
+ ...item,
+ }));
+ };
+ constructor(public service: TaxManagementService, private modalRef: NzModalRef, public router: Router) {
+ }
+
+ ngOnInit(): void {
+ console.log(this.record);
+
+ this.initST();
+ }
+
+ /**
+ * 初始化数据列表
+ */
+ initST() {
+ this.columns = [
+ { title: '序号', type: 'no', className: 'text-center', width: '60px', },
+ { title: '校验字段', index: 'checkFieldName', className: 'text-center', width: '120px', },
+ {
+ title: '是否必填',
+ index: 'requiredStatus',
+ className: 'text-center',
+ width: '100px',
+ type: 'enum',
+ enum: {
+ 0: '否',
+ 1: '是'
+ }
+ },
+ { title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', },
+ {
+ title: '本地校验', index: 'checkStatus', className: 'text-center', width: '100px',
+ type: 'enum',
+ enum: {
+ 0: '校验中',
+ 1: '通过',
+ 2: '不通过'
+ }
+ },
+ { title: '错误内容', index: 'remark', className: 'text-center', width: '150px', },
+ ]
+ }
+
+
+ add(): void {
+ // this.modal
+ // .createStatic(FormEditComponent, { i: { id: 0 } })
+ // .subscribe(() => this.st.reload());
+ }
+
+ selectTab(e: any) {
+ setTimeout(() => {
+ console.log(e?.value);
+
+ this.subjectType = e?.value;
+ console.log(this.subjectType);
+ this.st.load(1);
+ })
+ }
+
+ update() {
+ if (this.record?.billType === '1') {
+ window.open(location.origin + `/#/order-management/vehicle-detailChange/${this.record?.id}`)
+
+ } else if (this.record.billType === '2') {
+ window.open(location.origin + `/#/order-management/bulk-detailChange/${this.record?.id}`);
+ }
+ }
+ close(): void {
+ this.modalRef.destroy();
+ }
+
+
+}
diff --git a/src/app/routes/tax-management/tax-management-routing.module.ts b/src/app/routes/tax-management/tax-management-routing.module.ts
index 84b09d08..ce7b3f5f 100644
--- a/src/app/routes/tax-management/tax-management-routing.module.ts
+++ b/src/app/routes/tax-management/tax-management-routing.module.ts
@@ -13,6 +13,7 @@ import { RouterModule, Routes } from '@angular/router';
import { TaxManagementIndividualCollectComponent } from './components/individual-collect/individual-collect.component';
import { TaxManagementIndividualDeclareComponent } from './components/individual-declare/individual-declare.component';
import { TaxManagementIndividualIncomeComponent } from './components/individual-income/individual-income.component';
+import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component';
import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component';
@@ -21,6 +22,7 @@ const routes: Routes = [
{ path: 'income', component: TaxManagementIndividualIncomeComponent },
{ path: 'collect', component: TaxManagementIndividualCollectComponent },
{ path: 'declare', component: TaxManagementIndividualDeclareComponent },
+ { path: 'invoiceReport', component: TaxManagementInvoiceReportingComponent },
];
diff --git a/src/app/routes/tax-management/taxmanagement.module.ts b/src/app/routes/tax-management/taxmanagement.module.ts
index 92dbda10..0c6eb02b 100644
--- a/src/app/routes/tax-management/taxmanagement.module.ts
+++ b/src/app/routes/tax-management/taxmanagement.module.ts
@@ -13,6 +13,9 @@ import { SharedModule, SHARED_G2_MODULES } from '@shared';
import { TaxManagementIndividualCollectComponent } from './components/individual-collect/individual-collect.component';
import { TaxManagementIndividualDeclareComponent } from './components/individual-declare/individual-declare.component';
import { TaxManagementIndividualIncomeComponent } from './components/individual-income/individual-income.component';
+import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component';
+import { TaxManagementInvoiceUploadSettingComponent } from './components/invoice-reporting/upload-setting/upload-setting.component';
+import { TaxManagementInvoiceVerifyResultComponent } from './components/invoice-reporting/verify-result/verify-result.component';
import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component';
import { TaxManagementUploadSettingComponent } from './components/order-reporting/upload-setting/upload-setting.component';
import { TaxManagementOrderVerifyResultComponent } from './components/order-reporting/verify-result/verify-result.component';
@@ -25,9 +28,12 @@ const COMPONENTS: Type
[] = [
TaxManagementUploadSettingComponent,
TaxManagementIndividualIncomeComponent,
TaxManagementIndividualCollectComponent,
- TaxManagementIndividualDeclareComponent
+ TaxManagementIndividualDeclareComponent,
+ TaxManagementInvoiceReportingComponent,
+ TaxManagementInvoiceUploadSettingComponent,
+ TaxManagementInvoiceVerifyResultComponent
]
-
+
@NgModule({
imports: [
diff --git a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts
index f36ec08c..09aa5176 100644
--- a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts
+++ b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts
@@ -4,10 +4,8 @@ import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form';
-import { ShipperBaseService } from '@shared';
-import { isTemplateRef } from 'ng-zorro-antd/core/util';
-import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
+import { delay } from 'rxjs/operators';
import { TicketService } from '../../services/ticket.service';
import { PrintOrderModalComponent } from './print-order-modal/print-order-modal.component';
@@ -278,22 +276,28 @@ export class InvoiceRequestedComponent {
}
downloadPdf(item: any) {
- this.service.request(this.service.$api_downloadPdf, { vatappHId: item.id }).subscribe(res => {
- if (res?.reconciliationUrl) {
- this.service.reviewPDF(res.reconciliationUrl);
- } else {
- this.service
- .request(this.service.$api_download_Reconciliatio_pdf, { vatappHId: item.id, esignFlowId: res.esignFlowId })
- .subscribe(rs => {
- if (rs?.reconciliationUrl) {
- this.service.reviewPDF(rs.reconciliationUrl);
- } else {
- // this.service.msgSrv.warning('获取对账单失败');
- }
- });
- // this.service.msgSrv.warning('获取对账单失败');
- }
- });
+ if (item?.reconciliationUrl) {
+ this.service.reviewPDF(item.reconciliationUrl);
+ } else {
+ this.service
+ .request(this.service.$api_downloadPdf, { vatappHId: item.id })
+ .pipe(delay(3000))
+ .subscribe(res => {
+ if (res?.esignFlowId) {
+ this.service
+ .request(this.service.$api_download_Reconciliatio_pdf, { vatappHId: item.id, esignFlowId: res.esignFlowId })
+ .subscribe(rs => {
+ if (rs?.reconciliationUrl) {
+ this.service.reviewPDF(rs.reconciliationUrl);
+ } else {
+ // this.service.msgSrv.warning('获取对账单失败');
+ }
+ this.st.load(1);
+ });
+ }
+ // this.service.msgSrv.warning('获取对账单失败');
+ });
+ }
}
/**
diff --git a/src/app/routes/usercenter/components/freight/user/detail/detail.component.html b/src/app/routes/usercenter/components/freight/user/detail/detail.component.html
index 42bfb9b9..65315746 100644
--- a/src/app/routes/usercenter/components/freight/user/detail/detail.component.html
+++ b/src/app/routes/usercenter/components/freight/user/detail/detail.component.html
@@ -35,7 +35,7 @@