Commit cf6999e5 by sunchao

投核保问题开发

parent a8442784
<div class="wrapper">
<textarea class="form-control" cols="50" rows="10" placeholder="提出问题,最多输入100字" maxlength="100" [(ngModel)]="problem"></textarea>
<footer (click)="underwritingProblemSave()">
确认提交
</footer>
</div>
\ No newline at end of file
.wrapper{
overflow: hidden;
position: relative;
.form-control{
background: #F5F5F5;
width: 90%;
margin: 20px auto;
font-size: 16px;
}
footer{
height: 55px;
line-height: 55px;
background: #1b5b99;
border-radius: 0;
margin-top: 0;
z-index: 0;
min-width: 320px;
max-width: 640px;
margin: 0 auto;
bottom: 0;
left: 0;
position: fixed;
}
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { AskComponent } from './ask.component';
describe('AskComponent', () => {
let component: AskComponent;
let fixture: ComponentFixture<AskComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AskComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(AskComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { LifeCommonService } from '../../common/life-common.service';
import { MyService } from "../my.service";
import { ModalService, ToastService } from 'ng-zorro-antd-mobile';
import { ActivatedRoute,Router } from "@angular/router";
@Component({
selector: 'ydlife-ask',
templateUrl: './ask.component.html',
styleUrls: ['./ask.component.scss']
})
export class AskComponent implements OnInit {
problem:string;
practitionerId:any;
constructor(private activatedRoute: ActivatedRoute,
private router:Router,private _toast: ToastService,public lifeCommonService: LifeCommonService,private myService:MyService) { }
ngOnInit() {
this.lifeCommonService.setTitle('提出问题');
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
}
underwritingProblemSave(){
if(!this.problem){
const toast = ToastService.show('请输入您的问题!', 0);
setTimeout(() => {
ToastService.hide();
}, 3000);
return;
}
const Param ={
problem:this.problem,
questioner:this.practitionerId,
isActive:1
}
this.myService.underwritingProblemSave(Param).subscribe((res)=>{
console.log(res)
if(res['success']){
const toast = ToastService.show('您的问题已提交成功!', 0);
setTimeout(() => {
ToastService.hide();
}, 3000);
this.router.navigate(['/my_question']);
return;
}else{
const toast = ToastService.show(res['message'], 0);
setTimeout(() => {
ToastService.hide();
}, 3000);
}
})
}
}
......@@ -112,6 +112,16 @@
</div>
<!--body-->
<div class="weui-panel__bd">
<div class="performance_wrapper notice">
<div style="position: relative;">
<h3 style="font-size: 16px;color: #ff002a;">公告</h3><i class="iconfont" style="color: #ff002a;">&#xe645;</i>
<div #hide style="font-size: 14px;position: absolute;z-index:-100" [innerHtml]="firstAnnouncement"></div>
<div>{{this.firstAnnouncementTitle}}</div>
<span style="position:absolute;right:5px;font-size: 12px;color:#408dc9;"
routerLink="importantAnnouncement">更多</span>
</div>
</div>
<div class="tool_wrapper" *ngFor="let menuItem of menuLists;">
<div class="tool_item" *ngIf="menuItem.isShow">
<h3>{{menuItem.title}}</h3>
......@@ -123,8 +133,7 @@
<!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> -->
<span *ngIf="menuItemContent.dot"></span>
<img [src]="getImgUrl(menuItemContent.icon)" alt="">
<div style="font-size: 13px;">{{menuItemContent.subtitle}}</div>
<div>{{menuItemContent.subtitle}}</div>
</div>
</ng-container>
</div>
......@@ -200,7 +209,10 @@
<div class="footer" style="font-size: 12px;padding-top: 10px;text-align: center;background: #f5f5f5;">
<p>上海银盾保险经纪有限公司</p>
<p>保险业务经营许可证:269615000000800</p>
<p>版权所有©2020银盾保险在线 &nbsp;沪ICP备18000565号</p>
<a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31011502018293" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;">
<img src="assets/images/bei.png" style="float:left;width: auto;"/>
<p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">版权所有©2021银盾保险在线 &nbsp;沪ICP备31011502018293号</p>
</a>
</div>
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
......@@ -104,7 +104,7 @@ ul,ol{
border-radius: 8px;
// margin: 5px auto 8px auto;
margin: 0 auto 8px auto;
box-shadow: 0 0px 2.5px #eceaea;
// box-shadow: 0 0px 2.5px #eceaea;
position: relative;
// background: url('../../../assets/images/top_bg.png') no-repeat ;
background: url('../../../assets/images/bg.png') no-repeat ;
......@@ -312,10 +312,14 @@ ul,ol{
right: 30%;
top: 10%;
}
// .iconfont{
// color: #ff002a;
// font-size: 26px;
// }
div{
font-size: 13px;
}
@media (max-width: 320px) {
div{
font-size: 12px;
}
}
}
@media (min-width: 768px) {
.content_item{
......@@ -334,6 +338,11 @@ ul,ol{
padding-bottom: 5px;
}
}
@media (min-width: 320px) {
.tool_content{
padding-bottom: 0;
}
}
}
.hotProduct{
margin: 10px auto;
......
......@@ -56,7 +56,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.deviceType = this.lifeCommonService.checkDeviceType();
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
this.isShowSalay = this.lifeCustomerInfo.canSeeSalaryList==1?true:false;
// this.announcementQuery();
this.announcementQuery();
this.performanceList = [
{ name: `${this.lifeCommonService.dateFormat(new Date, ('M'))}月`, time: 1 },
{ name: `${this.getQuarter(this.lifeCommonService.dateFormat(new Date, ('M')))}`, time: 3 },
......@@ -78,9 +78,29 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
}
ngAfterViewInit() {
// setTimeout(() => {
// this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32')
// }, 400);
setTimeout(() => {
this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32')
}, 400);
}
//截取字符串
getStr(str, len) {
if (!str) return "";
if (len <= 0) return "";
var templen = 0;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 255) {
templen += 2;
} else {
templen++;
}
if (len == templen || len == templen + 1) {
return str.substring(0, i + 1) + '...';
} else if (templen > len + 1) {
return str.substring(0, i);
}
}
return str;
}
getMenuList() {
......@@ -133,7 +153,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{ no: 5, subtitle: '保险ABC', icon: 'abc', path: `https://${window.location.host}/issue`, routerLink: '' ,showSubMenu:true},
{ no: 6, subtitle: '培训课件', icon: 'train', path: '', routerLink: 'training',showSubMenu:true },
{ no: 10, subtitle: '职业类别', icon: 'job', path: 'https://www.ydinsurance.cn/occupationQry/', routerLink: '',showSubMenu:true },
{ no: 26, subtitle: '', icon: 'default', path: '', routerLink: '' ,showSubMenu:true}
{ no: 26, subtitle: '投核保知识库', icon: 'ask', path: '', routerLink: 'underwriting_knowledge' ,showSubMenu:true}
// { no: 17, subtitle: '产品库', icon: 'product', path: '', routerLink: 'https://www.ydinsurance.cn/?page_id=14331' ,showSubMenu:true}
],
isShow: true
......
......@@ -3,7 +3,7 @@
position: relative;
.customer_content{
border-bottom: 1px #e2e2e2 solid;
padding: 10px 15px;
padding: 10px 12px;
li{
display: flex;
justify-content: space-between;
......@@ -11,6 +11,12 @@
height: 35px;
margin-left: 55px;
}
@media (max-width: 320px) {
li{
margin-left: 40px;
font-size: 10px;
}
}
li.customer_btn{
div{
width: 30%;
......@@ -31,6 +37,17 @@
span{
margin-left: 26px;
}
@media (max-width: 320px) {
img{
width: 18px;
height: 18px;
left: 4px;
top: 7px;
}
span{
margin-left: 21px;
}
}
}
div:last-child{
margin-right: 0;
......@@ -40,5 +57,10 @@
position: absolute;
width: 40px;
}
@media (max-width: 320px) {
img{
width: 30px;
}
}
}
}
\ No newline at end of file
<div class="wrapper">
<div class="content">
<div *ngFor="let listItem of List;index as i" class="line_content">
<h4>
<div>
<i *ngIf="listItem.answer && listItem.isView=='0'"></i>
<span>{{listItem.problem}}</span>
</div>
<span class="iconfont icon-xiangxia" (click)="listItem.spread = !listItem.spread;underwritingProblemSave(listItem)"
[ngStyle]="{'transform': listItem.spread ? 'rotate(180deg)' : 'rotate(0)'}"
*ngIf="listItem.answer"
></span>
</h4>
<div class="answerDate" *ngIf="listItem.spread">{{listItem.submitDate}}</div>
<div class="answer" *ngIf="listItem.spread">{{listItem.answer}}</div>
<div class="answerDate" *ngIf="listItem.spread">{{listItem.firstAnswerDate}}</div>
</div>
<div *ngIf="!List?.length" style="margin-top: 10%;text-align: center;font-size: 20px;">暂无投核保问题</div>
</div>
</div>
\ No newline at end of file
.wrapper{
background: #F5F5F5;
height: 100%;
overflow: hidden;
.content{
background: #fff;
padding: 5px 10px 20px 10px;
height: 100%;
overflow: auto;
.line_content{
border-bottom: 1px #ececec solid;
padding-bottom: 10px;
font-family: Source Han Sans CN;
h4{
font-weight: bold;
font-size: 16px;
margin: 10px auto 5px;
color: #333;
display: flex;
justify-content: space-between;
div{
float: left;
position: relative;
i{
display: inline-block;
width: 8px;
height: 8px;
background: #F8002E;
border-radius: 50%;
position: absolute;
left: -6px;
top: 1px;
}
span{
line-height: 25px;
}
}
span.iconfont{
width: 16px;
height: 16px;
display: inline-block;
position: relative;
top: 5px;
}
}
div.answer{
color: #666;
margin: 10px auto;
}
div.answerDate{
color: #999;
}
}
.line_content:last-child{
border-bottom: 0;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MyQuestionComponent } from './my-question.component';
describe('MyQuestionComponent', () => {
let component: MyQuestionComponent;
let fixture: ComponentFixture<MyQuestionComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyQuestionComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyQuestionComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service';
import { LifeCommonService } from '../../common/life-common.service';
@Component({
selector: 'ydlife-my-question',
templateUrl: './my-question.component.html',
styleUrls: ['./my-question.component.scss']
})
export class MyQuestionComponent implements OnInit {
practitionerId:any;
List:Array<any>;
constructor(public lifeCommonService: LifeCommonService,private myService:MyService) { }
ngOnInit() {
this.lifeCommonService.setTitle('我的问题');
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.searchList()
}
searchList(){
const param = {
isActive:1,
questioner:this.practitionerId
}
this.myService.underwritingProblemQuery(param).subscribe((res)=>{
if(res['success']){
this.List = res['data']['problemItems'];
}
})
}
//已读保存
underwritingProblemSave(listItem){
if(listItem.isView == '0'){
let Param = {
...listItem,
isView:'1'
}
this.myService.underwritingProblemSave(Param).subscribe((res)=>{
if(res['success']){
listItem.isView = '1';
}
})
}
}
}
......@@ -61,6 +61,9 @@ import { FileListComponent } from './file-list/file-list.component';
import { MyCustomerComponent } from './my-customer/my-customer.component';
import { CustomerRelationComponent } from './customer-relation/customer-relation.component';
import { MyCustomerPolicyComponent } from './my-customer-policy/my-customer-policy.component';
import { UnderwritingKnowledgeComponent } from './underwriting-knowledge/underwriting-knowledge.component';
import { MyQuestionComponent } from './my-question/my-question.component';
import { AskComponent } from './ask/ask.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
......@@ -128,7 +131,11 @@ const myRoutes: Routes = [
{ path: 'filelist',component:FileListComponent,canActivate:[AuthGuard]},
{ path: 'customer',component:MyCustomerComponent,canActivate:[AuthGuard]},
{ path: 'customer_relation',component:CustomerRelationComponent,canActivate:[AuthGuard]},
{ path: 'customer_policy',component:MyCustomerPolicyComponent,canActivate:[AuthGuard]}
{ path: 'customer_policy',component:MyCustomerPolicyComponent,canActivate:[AuthGuard]},
{ path: 'underwriting_knowledge',component:UnderwritingKnowledgeComponent,canActivate:[AuthGuard]},
{ path: 'my_question',component:MyQuestionComponent,canActivate:[AuthGuard]},
{ path: 'ask',component:AskComponent,canActivate:[AuthGuard]}
];
@NgModule({
......
......@@ -74,9 +74,12 @@ import { FileListComponent } from './file-list/file-list.component';
import { MyCustomerComponent } from './my-customer/my-customer.component';
import { CustomerRelationComponent } from './customer-relation/customer-relation.component';
import { MyCustomerPolicyComponent } from './my-customer-policy/my-customer-policy.component';
import { UnderwritingKnowledgeComponent } from './underwriting-knowledge/underwriting-knowledge.component';
import { MyQuestionComponent } from './my-question/my-question.component';
import { AskComponent } from './ask/ask.component';
@NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent, EmployeeInfoComponent, EmployeeBasicInfoComponent, WorkExperienceComponent, PersonalPhotosComponent, EmployeeIdCardComponent, EmployeeEducationComponent, PersonalStatementComponent, SignatureComponent, EmployeeSubmitComponent, BankCardComponent, MemberDetailComponent, ApprovalListComponent, ApprovalCommentsComponent, ApprovalResultListComponent, MyApplicationComponent, SuggestionComponent, EmployeeSalaryComponent, HistoricalRankComponent, TeamAreaPanelComponent, ArticleComponent, ArticleDetailComponent, ArticleReadComponent,SalaryDetailComponent,SalaryFirstYearComponent,DetailModalComponent, ProductComponent, ProductDataComponent, CommissionComponent, FileListComponent,MyCustomerComponent, CustomerRelationComponent, MyCustomerPolicyComponent],
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent, EmployeeInfoComponent, EmployeeBasicInfoComponent, WorkExperienceComponent, PersonalPhotosComponent, EmployeeIdCardComponent, EmployeeEducationComponent, PersonalStatementComponent, SignatureComponent, EmployeeSubmitComponent, BankCardComponent, MemberDetailComponent, ApprovalListComponent, ApprovalCommentsComponent, ApprovalResultListComponent, MyApplicationComponent, SuggestionComponent, EmployeeSalaryComponent, HistoricalRankComponent, TeamAreaPanelComponent, ArticleComponent, ArticleDetailComponent, ArticleReadComponent,SalaryDetailComponent,SalaryFirstYearComponent,DetailModalComponent, ProductComponent, ProductDataComponent, CommissionComponent, FileListComponent,MyCustomerComponent, CustomerRelationComponent, MyCustomerPolicyComponent, UnderwritingKnowledgeComponent, MyQuestionComponent, AskComponent],
imports: [
CommonModule,
LifeCommonModule,
......
......@@ -702,8 +702,7 @@ export class MyService {
//客户保单查询接口
queryPolicyListByHolderCustomerId(param){
const url = this.ydapi + '/practitioner/queryPolicyListByHolderCustomerId';
return this.http
.post(url, JSON.stringify(param));
return this.http.post(url, JSON.stringify(param));
}
//保单详情接口
......@@ -712,4 +711,22 @@ export class MyService {
return this.http.post(url, JSON.stringify(param));
}
//查询核保问题知识
underwritingProblemQuery(param){
const url = this.API + "/erp/underwritingProblemQuery";
return this.http.post(url, JSON.stringify(param));
}
//投核保问题保存
underwritingProblemSave(param){
const url = this.API + "/erp/underwritingProblemSave";
return this.http.post(url, JSON.stringify(param));
}
//产品名称
productQry(objParam) {
const url = this.API + "/metadata/productQry";
return this.http.post(url, JSON.stringify(objParam));
}
}
......@@ -26,6 +26,7 @@
font-size: 14px;
color: #858585;
background-color: #fff;
font-size: 16px!important;
}
textarea, input {
......
<div class="wrapper">
<header>
<div class="left">
<ul>
<li (click)="changeTag(null,'全部')" [ngClass]="{'selected':tagId === null}">全部</li>
<li *ngFor="let tagItem of tagLists" (click)="changeTag(tagItem.tagId,tagItem.tagName)"
[ngClass]="{'selected':tagId === tagItem.tagId}">
{{tagItem.tagName}}
</li>
</ul>
</div>
<div class="right">
<div class="right_line" (click)="isShowFilter = true;erpInitialize();productQry(insurerId)">
<span class="iconfont icon-shaixuan" style="font-size: 26px;"></span>
<div>过滤搜索</div>
</div>
<div class="right_line" (click)="clickMyQues()">
<span class="iconfont icon-wentixietiao" style="font-size: 28px;position: relative;top: -2px;"></span>
<div style="top: -11px;">我的问题</div>
<i *ngIf="notViewCont>0">{{notViewCont}}</i>
</div>
</div>
<div class="search">
<span class="iconfont icon-chazhao"></span>
<input type="text" class="form-control" placeholder="搜索问题" [(ngModel)]="problem">
<p (click)="tagId=insurerId = productId = null;insurerChName = '点击选择保险公司';productName = '点击选择产品';
searchList()">搜索</p>
</div>
<div *ngIf="isShowFilter" class="filterMask" (click)="isShowFilter = false">
</div>
<div *ngIf="isShowFilter" class="more">
<div style="border-bottom: 1px #ddd solid;">
<span>保险公司</span>
<span (click)="insurerToastFlag = true;insurerListShow = insurerList">{{insurerChName}}</span>
</div>
<div>
<span>产品</span>
<span (click)="productToastFlag = true;productListShow = productList">{{productName}}</span>
</div>
</div>
</header>
<div class="content">
<div *ngFor="let listItem of List;index as i" class="line_content">
<h4>
<div>
<i *ngIf="tagName=='热榜'">{{i+1}}</i>
<span>{{listItem.problem}}</span>
</div>
<span class="iconfont icon-xiangxia" (click)="listItem.spread = !listItem.spread"
[ngStyle]="{'transform': listItem.spread ? 'rotate(180deg)' : 'rotate(0)'}"
></span>
</h4>
<div class="answerDate" *ngIf="listItem.spread">{{listItem.submitDate}}</div>
<div class="answer" *ngIf="listItem.spread">{{listItem.answer}}</div>
<div class="answerDate" *ngIf="listItem.spread">{{listItem.firstAnswerDate}}</div>
</div>
<div *ngIf="!List?.length" style="margin-top: 10%;text-align: center;font-size: 20px;">暂无投核保问题</div>
</div>
<footer [routerLink]="['/ask']">
我要提问
</footer>
</div>
<div class="toastWrapper toast" *ngIf="insurerToastFlag || productToastFlag" (click)="productToastFlag=insurerToastFlag = false;">
</div>
<!--保险公司筛选-->
<div class="editContainer" style="background: #efeff4;padding: 0;" *ngIf="insurerToastFlag">
<SearchBar [placeholder]="'请搜索保险公司名称'" [maxLength]="8"
(onChange)="change($event,1)"
></SearchBar>
<ul class="practitioner_con">
<li (click)="selectInsurer(null,'点击选择保险公司')"></li>
<li *ngFor="let insurerItem of insurerListShow" (click)="selectInsurer(insurerItem.insurerId,insurerItem.insurerChName)">
{{insurerItem.insurerChName}}
</li>
</ul>
</div>
<div class="editContainer" style="background: #efeff4;padding: 0;" *ngIf="productToastFlag">
<SearchBar [placeholder]="'请搜索产品名称'" [maxLength]="8"
(onChange)="change($event,2)"
></SearchBar>
<ul class="practitioner_con">
<li (click)="selectProduct(null,'点击选择产品')"></li>
<li *ngFor="let productItem of productListShow" (click)="selectProduct(productItem.productId,productItem.productName)">
{{productItem.productName}}
</li>
</ul>
</div>
.wrapper{
padding-bottom: 60px;
background: #F5F5F5;
height: 100%;
overflow: hidden;
header {
display: flex;
flex-wrap: wrap;
background: #fff;
padding: 10px 10px 20px 10px;
margin-bottom: 10px;
position: relative;
.left{
width: 70%;
height: 50px;
ul{
display: flex;
li{
margin-right: 5%;
text-align: center;
height: 50px;
line-height: 50px;
}
li:last-child{
margin-right: 0;
}
li.selected{
font-size: 20px;
}
}
}
.right{
display: flex;
width: 30%;
height: 50px;
div.right_line{
width: 50%;
text-align: center;
position: relative;
span{
color: #1b5b99;
font-size: 26px;
}
div{
position: relative;
top: -8px;
font-size: 12px;
}
i{
width: 20px;
height: 20px;
border-radius: 50%;
background: #F8002E;
color: #fff;
text-align: center;
font-style: normal;
position: absolute;
right: 5px;
top: 0;
}
}
}
.search{
position: relative;
margin-top: 15px;
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
.iconfont{
position: absolute;
font-size:24px;
left: 5px;
}
.form-control{
border: 1px #727272 solid;
background: #F1F1F1;
width: 85%;
padding-left: 35px;
font-size: 16px!important;
}
.form-control:focus{
font-size: 16px!important;
}
p{
width: 15%;
text-align: center;
color: #F8002E;
}
}
.filterMask{
width: 100%;
height: 100%;
position:fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1;
}
.more{
width: 100%;
color: #333;
position: absolute;
background: #fff;
z-index: 1;
font-size: 14px;
left: 0;
top: 0;
padding: inherit;
div{
display: flex;
justify-content: space-between;
height: 55px;
line-height: 55px;
}
}
}
.content{
background: #fff;
padding: 5px 10px 20px 10px;
height: 80%;
overflow: auto;
.line_content{
border-bottom: 1px #ececec solid;
padding-bottom: 10px;
font-family: Source Han Sans CN;
h4{
font-weight: bold;
font-size: 16px;
margin: 10px auto 5px;
color: #333;
display: flex;
justify-content: space-between;
div{
float: left;
i{
width: 20px;
height: 20px;
text-align: center;
line-height: 20px;
background: #1B5B99;
color: #fff;
font-size: 14px;
display:inline-block;
font-weight: normal;
margin-right: 5px;
font-style: normal;
}
span{
line-height: 25px;
}
}
span.iconfont{
width: 16px;
height: 16px;
display: inline-block;
position: relative;
top: 5px;
}
}
div.answer{
color: #666;
margin: 10px auto;
}
div.answerDate{
color: #999;
}
}
.line_content:last-child{
border-bottom: 0;
}
}
footer{
height: 55px;
line-height: 55px;
background: #1b5b99;
border-radius: 0;
margin-top: 0;
position: fixed;
z-index: 0;
min-width: 320px;
max-width: 640px;
margin: 0 auto;
bottom: 0;
}
}
.editContainer {
margin-top: 15px;
background: #ffffff;
padding: 10px;
position: fixed;
bottom: 0;
width: 100%;
height: 45%;
background-color: #fff;
z-index: 20;
-webkit-animation: .5s both slowUp;
animation: .5s both slowUp;
min-width: 320px;
max-width: 640px;
margin: 0 auto;
> div {
height: 50px;
border-bottom: 1px solid #dbdbdb;
display: flex;
align-items: center;
justify-content: space-between;
> div:first-child {
width: 100px;
font-size: 15px;
}
> div:last-child {
flex: 1;
}
.form-control {
border: none;
box-shadow: none;
}
}
> div:last-child {
border: none;
}
ul.footer{
display: flex;
list-style: none;
justify-content: center;
margin-top: 15%;
li{
width: 30%;
height: 35px;
line-height: 35px;
text-align: center;
background: #e10d0d;
color: #fff;
margin: 0 10px;
border-radius: 10px;
}
}
ul.practitioner_con{
height: 90%;
overflow: auto;
background: #fff;
padding: 10px;
li{
height: 30px;
line-height: 30px;
}
}
}
.toast {
position: fixed;
left: 0;
right: 0;
min-width: 320px;
max-width: 640px;
width: 100%;
margin: 0 auto;
z-index: 1;
}
.toastWrapper {
height: 100%;
background-color: rgba(0,0,0,.5);
top: 0;
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { UnderwritingKnowledgeComponent } from './underwriting-knowledge.component';
describe('UnderwritingKnowledgeComponent', () => {
let component: UnderwritingKnowledgeComponent;
let fixture: ComponentFixture<UnderwritingKnowledgeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ UnderwritingKnowledgeComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(UnderwritingKnowledgeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { LifeCommonService } from '../../common/life-common.service';
import { ActivatedRoute,Router } from "@angular/router";
import { MyService } from '../my.service';
import { ModalService, ToastService } from 'ng-zorro-antd-mobile';
@Component({
selector: 'ydlife-underwriting-knowledge',
templateUrl: './underwriting-knowledge.component.html',
styleUrls: ['./underwriting-knowledge.component.scss']
})
export class UnderwritingKnowledgeComponent implements OnInit {
tagLists:Array<any>;
tagId:any = null;
insurerId:any;
productId:any;
List:Array<any>;
tagName:string;
showPage:any = 1;
problem:string;
isShowFilter:boolean = false;
insurerToastFlag:boolean = false;
productToastFlag:boolean = false;
insurerList:Array<any>;
insurerListShow:Array<any>;
productList:Array<any>;
productListShow:Array<any>;
insurerChName:string = '点击选择保险公司';
productName:string = '点击选择产品';
notViewCont:any;
constructor(private _toast: ToastService,public lifeCommonService: LifeCommonService,
private activatedRoute: ActivatedRoute,
private router:Router,
private myService:MyService) { }
ngOnInit() {
this.lifeCommonService.setTitle('投核保问题');
this.tagViewQuery();
this.searchList(this.tagId);
this.getNotViewCont();
}
tagViewQuery(){
this.myService.tagViewQuery({"isActive":1,"tagViewType":"343","tagLevel":1}).subscribe((res)=>{
if(res['success']){
this.tagLists = res['data']['tagViewQueryInfos'];
}
})
}
searchList(tagId){
const param = {
insurerId:this.insurerId,
productId:this.productId,
isActive:1,
mdTagId:tagId,
problem:this.problem,
warehousing:1
}
this.myService.underwritingProblemQuery(param).subscribe((res)=>{
if(res['success']){
this.List = res['data']['problemItems'];
}
})
}
changeTag(tagId,tagName){
this.tagId = tagId;
this.tagName = tagName;
this.problem = this.insurerId = this.productId = null;
this.insurerChName = '点击选择保险公司';
this.productName = '点击选择产品';
this.searchList(this.tagId);
}
erpInitialize(){
this.myService.erpInitialize().subscribe((res)=>{
if(res['success']){
this.insurerList = res['data']['insurerItems'];
}
})
}
//产品列表
productQry(insurerId) {
this.myService.productQry({insurerId:insurerId}).subscribe(res => {
this.productList = res["data"].productInfoList;
});
}
//选择保险公司
selectInsurer(insurerId,insurerChName){
this.insurerId = insurerId;
if(insurerId == null){
this.productName = '点击选择产品';
}
this.insurerChName = insurerChName;
this.tagId = this.problem = this.productId = null;
this.searchList(null);
this.isShowFilter = false;
this.insurerToastFlag = false;
}
//选择产品
selectProduct(productId,productName){
this.productId = productId;
this.tagId = this.problem = null;
this.productName = productName;
this.searchList(null);
this.isShowFilter = false;
this.productToastFlag = false;
}
change(event,type){
if(type== 1){
this.insurerListShow = this.insurerList.filter((item)=>{
if(item.insurerChName){
return item.insurerChName.indexOf(event) !==-1;
}
})
}
if(type== 2){
this.productListShow = this.productList.filter((item)=>{
if(item.productName){
return item.productName.indexOf(event) !==-1;
}
})
}
}
//点击我的问题头部&底部不显示,list更新
clickMyQues(){
this.router.navigate([`/my_question`]);
}
//获取经纪人未读信息
getNotViewCont(){
const param = {
questioner:JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
isActive:1,
}
this.myService.underwritingProblemQuery(param).subscribe((res)=>{
if(res['success']){
this.notViewCont = res['data']['notViewCont'];
}
})
}
}
......@@ -55,6 +55,18 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe67d;</span>
<div class="name">筛选</div>
<div class="code-name">&amp;#xe67d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe644;</span>
<div class="name">问题协调</div>
<div class="code-name">&amp;#xe644;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe643;</span>
<div class="name">手机</div>
<div class="code-name">&amp;#xe643;</div>
......@@ -996,9 +1008,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1620992914659') format('woff2'),
url('iconfont.woff?t=1620992914659') format('woff'),
url('iconfont.ttf?t=1620992914659') format('truetype');
src: url('iconfont.woff2?t=1632386770412') format('woff2'),
url('iconfont.woff?t=1632386770412') format('woff'),
url('iconfont.ttf?t=1632386770412') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -1025,6 +1037,24 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-shaixuan"></span>
<div class="name">
筛选
</div>
<div class="code-name">.icon-shaixuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-wentixietiao"></span>
<div class="name">
问题协调
</div>
<div class="code-name">.icon-wentixietiao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shouji"></span>
<div class="name">
手机
......@@ -2439,6 +2469,22 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shaixuan"></use>
</svg>
<div class="name">筛选</div>
<div class="code-name">#icon-shaixuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-wentixietiao"></use>
</svg>
<div class="name">问题协调</div>
<div class="code-name">#icon-wentixietiao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shouji"></use>
</svg>
<div class="name">手机</div>
......
@font-face {
font-family: "iconfont"; /* Project id 356495 */
src: url('iconfont.woff2?t=1620992914659') format('woff2'),
url('iconfont.woff?t=1620992914659') format('woff'),
url('iconfont.ttf?t=1620992914659') format('truetype');
src: url('iconfont.woff2?t=1632386770412') format('woff2'),
url('iconfont.woff?t=1632386770412') format('woff'),
url('iconfont.ttf?t=1632386770412') format('truetype');
}
.iconfont {
......@@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-shaixuan:before {
content: "\e67d";
}
.icon-wentixietiao:before {
content: "\e644";
}
.icon-shouji:before {
content: "\e643";
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,6 +6,20 @@
"description": "",
"glyphs": [
{
"icon_id": "11101936",
"name": "筛选",
"font_class": "shaixuan",
"unicode": "e67d",
"unicode_decimal": 59005
},
{
"icon_id": "22303563",
"name": "问题协调",
"font_class": "wentixietiao",
"unicode": "e644",
"unicode_decimal": 58948
},
{
"icon_id": "6832329",
"name": "手机",
"font_class": "shouji",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment