pull/1/head
袁野 3 years ago
parent 38d050e8ba
commit 448dfdc458
  1. 77
      src/app/admin/index/index/index.component.html
  2. 90
      src/app/admin/index/index/index.component.ts
  3. 2
      src/app/admin/order/order-agent/order-agent.component.ts
  4. 4
      src/app/app-routing.module.ts
  5. 14
      src/app/login/login-routing.module.ts
  6. 311
      src/app/login/login.component.html
  7. 129
      src/app/login/login.component.scss
  8. 194
      src/app/login/login.component.ts
  9. 20
      src/app/login/login.module.ts
  10. 1
      src/app/services/commons.service.ts
  11. 94
      src/app/services/index.service.ts

@ -0,0 +1,77 @@
<!-- start 面包屑 -->
<app-breadcrumb></app-breadcrumb>
<!-- end 面包屑 -->
<!--条件搜索-->
<div class="inner-content">
<div nz-row [nzGutter]="16">
<div nz-col nzSpan="8">
<nz-card nzHoverable [nzLoading]="loading" (click)="isVisible = true">
<h3>汇联通预充值账号</h3>
<p>余额:{{balance}}</p>
<p>订单数量:{{balanceData['count']}}</p>
<p>支付总额:{{balanceData['payRealPrice'] == null ? '0': balanceData['payRealPrice']}}</p>
</nz-card>
</div>
<div nz-col nzSpan="8">
<nz-card nzHoverable [nzLoading]="loading" [routerLink]="['/admin/order/order-list']">
<h3>中石化订单</h3>
<p>订单数量:{{orderData['count']}}</p>
<p>订单总额:{{orderData['orderPrice'] == null ? '0': orderData['orderPrice']}}</p>
<p>支付总额:{{orderData['payRealPrice'] == null ? '0': orderData['payRealPrice']}}</p>
</nz-card>
</div>
<div nz-col nzSpan="8">
<nz-card nzHoverable [nzLoading]="loading" [routerLink]="['/admin/order/order-h-list']">
<h3>话费订单</h3>
<p>订单数量:{{rechargeData['count']}}</p>
<p>订单总额:{{rechargeData['orderPrice'] == null ? '0': rechargeData['orderPrice']}}</p>
<p>支付总额:{{rechargeData['payRealPrice'] == null ? '0': rechargeData['payRealPrice']}}</p>
</nz-card>
</div>
</div>
</div>
<nz-modal [(nzVisible)]="isVisible" nzWidth="1200" nzTitle="订单列表" (nzOnCancel)="isVisible = false" (nzOnOk)="isVisible = false">
<nz-table #basicTable [nzData]="listOfData" [nzScroll]="{ x: '1200px' }">
<thead>
<tr>
<th nzWidth="50px">编号</th>
<th nzWidth="180px">商品名称</th>
<th nzWidth="180px">订单来源</th>
<th nzWidth="180px">订单类型</th>
<th nzWidth="180px">订单号</th>
<th nzWidth="180px">支付流水号</th>
<th nzWidth="120px">客户名称</th>
<th nzWidth="130px">客户电话</th>
<th nzWidth="110px">支付模式</th>
<th nzWidth="100px">支付方式</th>
<th nzWidth="100px">支付金额</th>
<th nzWidth="140px">生成时间</th>
<th nzWidth="140px">支付时间</th>
<th nzWidth="140px">取消时间</th>
<th nzRight nzWidth="100px">状态</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of basicTable.data; let i = index">
<td>{{i+1}}</td>
<td>{{data.goodsName}}</td>
<td>{{data.giveawayType}}</td>
<td>{{data.goodsType}}</td>
<td>{{data.orderNo}}</td>
<td>{{data.paySerialNo}}</td>
<td>{{data.memName == null ? '暂无': data.memName}}</td>
<td>{{data.memPhone == null ? '暂无': data.memPhone}}</td>
<td>{{data.payModel}}</td>
<td>{{data.payType}}</td>
<td>{{data.payPrice}}</td>
<td>{{data.createTime | date: 'yyyy-MM-dd HH:mm:ss'}}</td>
<td>{{data.payTime | date: 'yyyy-MM-dd HH:mm:ss'}}</td>
<td>{{data.cancelTime | date: 'yyyy-MM-dd HH:mm:ss'}}</td>
<td nzRight>{{data.orderStatus}}</td>
</tr>
</tbody>
</nz-table>
</nz-modal>

@ -1,4 +1,9 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {ADMIN_INFO_OBJECT} from '../../../services/local-storage.namespace';
import {LocalStorageService} from '../../../services/local-storage.service';
import {CommonsService} from '../../../services/commons.service';
import {IndexService} from '../../../services/index.service';
import {NzMessageService} from '_ng-zorro-antd@9.3.0@ng-zorro-antd';
@Component({ @Component({
@ -7,13 +12,94 @@ import {Component, OnInit} from '@angular/core';
styleUrls: ['./index.component.less'] styleUrls: ['./index.component.less']
}) })
export class IndexComponent implements OnInit { export class IndexComponent implements OnInit {
constructor(
secRoleId: number;
loading = true;
isVisible = false;
balance: number;
code = 60;
listOfData;
orderData = {};
balanceData = {};
rechargeData = {};
constructor(
private store: LocalStorageService, // 数据缓存
private message: NzMessageService, // 信息提示
private index: IndexService
) { } ) { }
ngOnInit(): void { ngOnInit(): void {
console.log((96.3 + 92.4 + 96.4 + 97.5 + 99.6 + 98.5 + 96.6 + 94.4 + 95.7 + 95.2 + 97.8 + 98.9 ) / 12 - 0.393 * 2.03); this.store.get(ADMIN_INFO_OBJECT)['secRole'].id = this.secRoleId;
if (this.store.get(ADMIN_INFO_OBJECT)['highAgent'] != null) {
this.code = this.store.get(ADMIN_INFO_OBJECT)['highAgent'].id;
}
if (this.store.get(ADMIN_INFO_OBJECT)['bsCompany'].id === 3) {
this.code = 60;
}
this.getHLTBalance();
this.orderByIndex();
this.HLTOrderByIndex();
this.rechargeOrderByIndex();
this.HLTOrderByList();
}
// 查询余额
public getHLTBalance(): void {
const paramsObject = {
codeType: 'HLT_BALANCE',
codeName: '汇联通预充值余额'
};
this.index.getHLTBalance(paramsObject , data => {
if (data['return_code'] === '000000') {
this.loading = false;
this.balance = data['return_data'];
} else {
this.message.error(data['return_msg']);
}
});
}
public orderByIndex(): void {
this.index.orderByIndex(this.code , data => {
if (data['return_code'] === '000000') {
this.orderData = data['return_data'];
this.loading = false;
} else {
this.message.error(data['return_msg']);
}
});
} }
public HLTOrderByIndex(): void {
this.index.HLTOrderByIndex(this.code , data => {
if (data['return_code'] === '000000') {
this.balanceData = data['return_data'];
this.loading = false;
} else {
this.message.error(data['return_msg']);
}
});
}
public rechargeOrderByIndex(): void {
this.index.rechargeOrderByIndex(this.code , data => {
if (data['return_code'] === '000000') {
this.rechargeData = data['return_data'];
this.loading = false;
} else {
this.message.error(data['return_msg']);
}
});
}
public HLTOrderByList(): void {
this.index.HLTOrderByList(this.code , data => {
if (data['return_code'] === '000000') {
this.listOfData = data['return_data'];
} else {
this.message.error(data['return_msg']);
}
});
}
} }

@ -45,8 +45,6 @@ export class OrderAgentComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
console.log(this.store.get(ADMIN_INFO_OBJECT)['highAgent']['id']);
this.init(); this.init();
const whereObject = {}; const whereObject = {};
whereObject['pageNum'] = 1; whereObject['pageNum'] = 1;

@ -9,10 +9,6 @@ const routes: Routes = [
path: 'adminLogin', path: 'adminLogin',
loadChildren: () => import('./admin/login/login.module').then(m => m.LoginModule) loadChildren: () => import('./admin/login/login.module').then(m => m.LoginModule)
}, },
{
path: 'login',
loadChildren: () => import('./login/login.module').then(m => m.LoginModule)
},
{ {
path: 'admin', component: NavigationComponent, path: 'admin', component: NavigationComponent,
children: [ children: [

@ -1,14 +0,0 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {LoginComponent} from './login.component';
const routes: Routes = [
{ path: '', component: LoginComponent}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class LoginRoutingModule { }

@ -1,311 +0,0 @@
<div class="top"></div>
<div class="main">
<div class="main_login">
<div class="fl main_login_left">
<div class="main_login_left_top">
<div class="main_login_left_top_piece cp fl"
*ngFor="let item of topPieceList; let i = index"
[ngClass] = "item.isClick === true? 'click' : 'unClick'"
(click)="getClick(i)">{{item.codeName}}</div>
</div>
<div class="main_login_left_main">
<div class="main_login_left_top_company cp fl" *ngFor="let item of topCompanyList; let i = index">
<img nz-tooltip
nzTooltipTitle="共有{{item.positionNumber}}个在招岗位"
src="{{imageUrl + item.companyLogo}}"/>
</div>
</div>
</div>
<div class="fr main_login_right">
<div class="main_login_right_top">
立刻<span *ngIf="!type">登录</span><span *ngIf="type">注册</span>,查看<span>高薪职位</span>
</div>
<div class="main_login_right_from">
<form nz-form [formGroup]="validateForm" class="login-form">
<nz-form-item>
<nz-form-control nzErrorTip="请输入常用手机号码!">
<nz-input-group style="height: 48px;" [nzPrefix]="suffixIconTelephone">
<input type="text" maxlength="11" nz-input formControlName="phone" placeholder="请输入常用手机号码" />
</nz-input-group>
<ng-template #suffixIconTelephone>
<i nz-icon nzType="mobile"></i>
</ng-template>
</nz-form-control>
</nz-form-item>
<nz-form-item *ngIf="type">
<nz-form-control nzErrorTip="请输入验证码!">
<nz-input-group style="height: 48px; line-height: 38px;" [nzPrefix]="suffixIconCode" [nzSuffix]="suffixA">
<input type="text" maxlength="6" nz-input formControlName="code" placeholder="请输入验证码" />
</nz-input-group>
<ng-template #suffixIconCode>
<i nz-icon nzType="safety"></i>
</ng-template>
<ng-template #suffixA>
<a *ngIf="!verifyCode.disable" (click)="getCode()">获取验证码</a>
<span *ngIf="verifyCode.disable">{{verifyCode.verifyCodeTips}}</span>
</ng-template>
</nz-form-control>
</nz-form-item>
<nz-form-item *ngIf="!type">
<nz-form-control nzErrorTip="请输入密码!">
<nz-input-group style="height: 48px;" [nzPrefix]="suffixIconLock">
<input formControlName="password" nz-input type="password" placeholder="请输入密码" />
</nz-input-group>
<ng-template #suffixIconLock>
<i nz-icon nzType="lock"></i>
</ng-template>
</nz-form-control>
</nz-form-item>
<nz-form-item >
<nz-form-control>
<button nz-button class="login-form-button" (click)="getLogin()" [nzType]="'primary'">
登陆<span *ngIf="type">/注册</span>
</button>
</nz-form-control>
</nz-form-item>
</form>
</div>
<div class="main_login_right_text">
<p>注册即代表同意</p>
<a (click)="showModal()">「瑞职用户协议及隐私政策」</a>
<p class="main_login_right_text_p">
<a (click)="getLoginPassword(!type)">{{typeName}}</a>
</p>
</div>
</div>
</div>
</div>
<nz-modal [(nzVisible)]="isVisible" nzTitle="用户协议" nzWidth="800" (nzOnCancel)="handleCancel()" (nzOnOk)="handleCancel()">
<dd>
<p class="note">(本协议于2020年9月23日最新修订)</p>
<p>
尊敬的用户,我们对《瑞职网用户协议》进行了更新,此版本更新主要集中在用户注册相关条款的修改以及关联平台用人者可同步获取用户简历的新功能。
</p>
<p>正文:</p>
<p>
《瑞职网用户协议》(以下简称“本协议”)作为瑞职网(以下简称“本网站”)提供服务的依据,确定用户在何种条件、以何种方式使用本网站及本网站的服务(具体载体包括但不限于网页、APP应用程序、微信公众号平台、微信小程序等)。在使用本网站及相关服务前,您应当注册成为本网站用户。<span class="underline text-bold">进行用户注册时,请您认真阅读本协议(尤其是字体加粗及/或下划线的内容),一旦完成注册即表示您已经知悉并了解本协议,接受本协议的条款约束,本协议当即具有合同效力; 如您对本协议的任何条款表示异议,您应当立即停止访问瑞职网及使用相关服务。</span>用户根据自身招聘需求可以向本平台购买其他付费服务/产品,相关服务/产品的部分或全部利用本网站所提供的互联网信息业务和增值业务(载体包括但不限于网页、APP、微信公众号、微信小程序等),也应遵守本用户协议的规定。
</p>
<p>
本协议包括基于本协议制定的各项规则,所有规则为本协议不可分割的一部分,与本协议具有同等效力。随着平台业务经营的发展及相关政策的变更,本网站用户协议将不时更新,我们会通过在网站公告、APP端推送、电子邮件等适当方式提醒您相关内容的更新。当您继续使用本网站及相关服务,则视为您接受协议的变更,否则您应当停止访问网站及使用服务。
</p>
<h3>一、服务描述及定义</h3>
<p>
本网站是连接候选人与用人者的中介信息平台及职业社区。“本网站”“本平台”“瑞职”“瑞职招聘”:指四川信华腾科技有限公司全权所有并运营的瑞职网。“用户”:指具有完全民事行为能力的瑞职网使用者。用户身份包括“用人者”、“候选人”等。“用人者”:指有用人需求,具有用人资格,在本网站上发布招聘及相关信息的企事业公司或其他组织。“候选人”:指利用本网站进行职位浏览、投递等等行为的个人。“账号”:指用户为使用本网站及相关服务而登记注册的用户身份识别信息;用户只有注册账号才能使用本网站的服务。
</p>
<h3>二、成为注册用户</h3>
<h4>(一)用户主体适格</h4>
<p>
符合下列条件之一且未曾被本网站封禁账户的自然人或者组织可以注册成为本网站用户,但本网站不保证一定能够通过注册。
</p>
<ul>
<li>具备完全民事行为能力的自然人。</li>
<li>
符合中华人民共和国法律、行政法规、部门规章等规范性文件要求,合法设立并存续的企业、机关、社团、事业公司和其他组织,并且具有合法用人资格及真实招聘需求(统称为“用人者”);代表用人者进行注册的自然人需具备用人者的有效授权、并保证为职务行为。
</li>
</ul>
<h4>(二)用户信息完备</h4>
<p>
用户需要提供明确的联系方式、通讯地址、注册者真实姓名或名称、资质文件(如企业营业执照、个人身份证)等信息方能完成注册或使用本网站的服务。为了合法、合规地为用户提供更好的服务,本网站将不时调整用户需提交的信息,。如用户不同意提供上述信息,则应当停止使用本网站的服务。用户保证以上信息真实、合法、准确,并同意本网站对其注册信息资料进行审查,并就相关疑问或问题进行解答。<span class="underline">本网站将在必要的限度内收集、使用这些信息,并会妥善保存、处理这些信息,具体规则可参见《瑞职网隐私政策》</span>
</p>
<h4>(三)禁止入驻情形</h4>
<ul>
<li>
<p>
用人者入驻本平台需经过本平台审核,有以下情形的不得入驻;如入驻之后出现此等情形的,平台有权对账户进行封禁,对于已支付的服务费用(如有),本网站有权不予退还:
</p>
<p>用人者违反法律、行政法规、部门规章、地方性法规等规范性文件,本网站的各项规则和协议以及社会公序良俗的,包括但不限于以下情形:</p>
<ol>
<li>涉嫌传销、赌博、色情、暴力、邪教与封建迷信、欺诈、非法集资等违法犯罪情形的;</li>
<li>违法失信企业或法定代表人为失信被执行人的企业;/li&gt;
</li><li>被市监、公安、税务、工信、网信、人社、外管、商委、海关等行政机关查处或行政处罚,情节严重的;</li>
<li>涉嫌拖欠/未按法律规定支付薪资/劳务报酬、虚假招聘,或其他可能损害劳动者合法权益的情形。</li>
<li>涉及其他违反法律、行政法规、部门规章等规范性文件的,以及违反社会公序良俗的。</li>
</ol>
<p>对于上述情形,本网站将参考相关政府部门“黑名单”、用户的举报投诉、新闻媒体曝光、用人者提供的资质文件或说明文件(等,并将依据常识及社会大众通常认知水平做出是否合规的判断而不必须依据公权力机关事后通知、查处、判决等文件。</p>
</li>
<li>
对于涉及经营劳务派遣、猎头业务(用户类型明示标记为猎头的除外)、招聘业务、职业教育培训业务的用人者,基于安全性、真实性、产品政策、行业竞争、利益冲突等原因,本平台保留拒绝注册或限制使用部分功能的权利。
</li>
</ul>
<h3>三、本网站的使用</h3>
<p>
用户依据协议及本网站发布的相关规则,在本站进行找工作、招聘及职业问答等活动,享受本网站的用户福利、接受本网站的资讯信息及使用其他服务,具体形式包括但不限于上传简历、发布招聘岗位、在线交流、职业问答、社区交流等。用户与平台基于服务各自享有必要的权利,承担相应的义务。
</p>
<h4>(一)用户承诺</h4>
<ul>
<li class="underline text-bold">用户承诺使用“瑞职网”仅用于用户自身招聘(含招聘宣传、雇主品牌建设)、找工作、职业技能学习以及进行职业问答等用途,不得偏离网站具体功能模块之目的。</li>
<li>
为了使用本网站的服务,用户应当提供真实、合法、准确的信息,包括但不限于姓名或名称、个人身份证明、资质证明、通讯地址、职位信息、公司介绍等(为了进行招聘/求职活动,另一方用户通过本网站的特定功能可以查看此类信息)。用户承诺使用以上内容均出于自愿并已得到有效授权,且应如实描述和及时更新。
</li>
<li>
用户应妥善设置及保管自己的账户和密码(例如设置较为复杂的密码,不将密码泄露给任何人),该账户在本网站进行的所有操作和活动(包括但不限于信息浏览、上传简历、发布招聘相关等)均视为用户自身真实的意思表示。
<span class="underline text-bold">尤其用人者应对其在本网站下账号及子账号的实际使用人(包括但不限于用人者员工)进行严格管理,并保证实际使用人严格遵守本网站的协议与规则,实际使用人在本网站上进行的任何行为均视为用人者行为,用人者就上述行为承担全部责任。</span>
</li>
<li>
用户承诺使用本网站服务过程中的任何行为以及发布的相关信息均应严格遵守法律、法规等规范性文件、本网站的各项规则和协议以及社会公序良俗;并确保不侵犯任何第三人的合法权益(包括但不限于知识产权、商业秘密等),在使用本网站的服务过程中将最大程度的遵守诚实信用原则。
</li>
<li><span class="underline">如用户违反上述承诺,导致自身、平台或第三人遭受任何损失的,应由其自行承担所有责任。</span></li>
<li>付费用户除应遵守本协议外,还应遵守付费服务对应的合同条款的约定。</li>
</ul>
<h4>(二)用户行为限制</h4>
<ul>
<li>
用户的行为(包括但不限于使用本网站过程中的所有行为、针对本网站所进行的任何行为、利用本网站服务进行的后续行为等)不得违反法律、行政法规、部门规章、地方性法规等规范性文件,本网站的各项规则和协议以及社会公序良俗。本网站有权依据常识及社会大众通常认知水平做出是否合规的判断而不必须依据公权力机关事后通知、查处、判决等文件。
</li>
<li>
用户不得在本网站或者利用本网站的服务制作、复制、发布、传播以下信息:反对宪法所确定的基本原则的;危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;损害国家荣誉和利益的;煽动民族仇恨、民族歧视、破坏民族团结的;破坏国家宗教政策,宣扬邪教和封建迷信的;散布谣言,扰乱社会秩序,破坏社会稳定的;散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;侮辱或者诽谤他人,侵害他人合法权利的;涉及政治敏感内容的;含有虚假、有害、胁迫、侵害他人隐私、骚扰、侵害、中伤、粗俗、猥亵、人身攻击、或其它有悖社会公序良俗令人反感的内容;对本网站可能造成严重负面影响的内容的;含有中国法律、法规、规章、条例以及任何具有法律效力的规范所限制或禁止的其它内容的;其他本网站认为不合适的内容。
</li>
<li class="underline">用户不得破坏网站运营秩序,不得从事与本网站服务无关的行为,不得发布除招聘信息、自身简历、职业问答所必需信息外的其他内容。</li>
<li>用户不得以任何形式骚扰、侮辱、伤害其他用户。</li>
<li>用户不得以虚假信息注册账号,不得冒用、盗用、借用他人、关联机构或社会名人的名义注册或使用账号,或以虚伪不实的方式陈述或谎称与任何人或机构有关。</li>
<li>用户在未经本网站同意的情况下,不得转让或授权他人使用其所有的本网站账号。</li>
<li>用户不得使用任何机器人软件、脚本等其他方式,自动访问或登录本网站;未经许可,不得通过其他第三方工具或运营平台获取本网站服务,包括但不限于通过第三方软件登录瑞职网账号、发布职位、浏览职位、收发简历等。</li>
<li>用户不得以任何手段或形式干扰本网站服务,包括但不限于利用技术手段恶意破坏网站、干扰或破坏与本网站相连线之服务器和网络、大量发布垃圾信息等。</li>
<li>
用户不得以任何方式对本网站(以及已有或可能发布的相关App、微信公众号、微信小程序等平台服务载体)进行反向工程;未经网站允许,不得采取任何爬虫、抓取、批量检索等手段对公开或非公开网站信息进行复制、收集。
</li>
<li>
用户不得在未经本网站和招聘/找工作行为相对方的同意下,将本网站提供的服务和/或本网站的任何信息、资料以及在招聘找工作过程中任何信息、资料进行转让、出售、传播(包括但不限于以复制、修改、转发、收集、翻译等形式制作复制品、衍生品,或使其公布于众)或其他商业、非商业用途。
</li>
<li><span class="underline text-bold">如用户违反上述行为限制要求,本网站有权立即采取下列一个或多个措施:立即停止提供服务;对相关信息予以下线、删除或要求整改;封禁用户账号等。对于用户已支付的服务费用(如有),本网站有权不予退还。</span>
</li>
</ul>
<h4 class="text-bold">(三)用人者的特别保证</h4>
<ul>
<li class="text-bold">
对于用人者及其关联公司(包括但不限于分公司、子公司、独立事业部等)入驻本网站并使用招聘相关服务事宜,用人者承诺并担保如下:
用人者使用瑞职网服务仅限用于招聘,承诺不利用服务从事其他事宜,包括但不限于收集求职者数据、简历用作他用,以自身招聘为名招收学员或办理贷款,使用平台服务从事公司业务经营活动,利用平台服务中聊天沟通等功能进行广告营销等情形。用人者成功入驻后,不得出现本协议“禁止入驻情形”条款中所列举的禁止情形。用人者使用本网站服务,保证严格遵守平台用户协议、平台规则及与本网站签署的一切合同文件(如有)。在使用服务期间,保证不从事任何违反平台规则的业务、不发布任何违反平台规则的信息。
</li>
<li class="text-bold underline">
如用人者违反上述承诺,本网站有权立即停止提供服务并对用人者在平台上的公司主页和/或发布的信息进行封禁,且对于用人者已支付的服务费用(如有),本网站有权不予退还。
</li>
</ul>
<h4>(四)找工作行为</h4>
<ul>
<li>用户(候选人)可发布找工作相关信息,通过本网站简历模块完善个人简历及相关信息,也可上传独立简历。上述行为均为用户自行操作,本网站不对用户的简历做任何审查、修改或指导。有关用户简历被共享至用人者以便其查询、浏览、下载、使用、存储的相关规则,具体请参照《瑞职网隐私政策》。</li>
<li>用户利用本网站提供的沟通工具与用人者进行沟通的,应严格遵守本用户协议第三条第(二)款项下的全部规则,且沟通行为及沟通内容应仅限于找工作相关。</li>
<li>
用户找工作,应当如实提供本人基本信息以及应聘岗位相关的知识、技能、工作经历等情况,保证遵守法律、法规对于服务期、从业限制、保密等方面的规定。如前述信息不实或行为违反法律法规的,用户自行承担相应的不利后果,包括被用人者不予录用或录用后解除劳动关系等。因此给用人者、本网站或第三人造成损失的,还应承担相应的赔偿责任。
</li>
<li>本网站将不时举办某些专项活动,用于满足用人者特殊的招聘需求和候选人的职业发展需求。用户可能需要满足一定的要求,如工作经验、技能证书等,经过本网站一定审查,方可获得参与资格。</li>
<li>为提高瑞职网用户求职招聘的成功率和效率,本网站可能会将用户的简历信息共享范围扩大至本网站运营者运营的其他平台或关联公司运营的招聘平台(如“前程无忧”),因此,您在使用本网站服务时,您的个人信息可能会被来自上述平台上的注册用户搜索、查看或联系。您可通过《瑞职网隐私政策》了解我们在此期间如何保障您的个人信息的安全。</li>
</ul>
<h4>(五)招聘行为</h4>
<ul>
<li>用户(用人者)通过本平台审核,并依据法律法规及本协议第二条第(二)款规定提供招聘简章、营业执照或有关部门批准设立的文件、经办人身份证件、用人公司的委托证明等资料后,方可发布招聘信息、进行招聘活动。
</li>
<li>用户在本网站指定位置(包括本网站各级页面、为用人者生成的公司主页等)发布招聘相关信息,包括但不限于职位信息、公司简介(包含公司商标、名称、Logo、文字说明等)、配图等。上述行为均为用户自行操作。
</li>
<li>用人者发布的信息除用于招聘所需的必要信息外不得有其他内容,包括但不限于自身产品或服务的推广、销售等。</li>
<li>本网站认为有必要的情况下,有权对用户发布的信息做出审查、指导,并有权要求用户做出解释、更正或说明。</li>
<li>
用户应当确保发布的招聘信息真实合法。用户招聘信息不实或违规的,用户自行承担相应的不利后果。因此给候选人、本网站或第三人造成损失的,还应承担相应的赔偿责任。涉及违法或构成刑事犯罪的,依据法律法规承担相应的责任。
</li>
<li>
用户发布招聘信息或利用本网站提供的沟通工具与候选人进行沟通的,应严格遵守本用户协议第三条第(二)款项下的全部规则,另外还不得涉及以下内容:非互联网行业职位;涉及性别、地域等各类歧视;涉及薪酬面议、联系方式内容;涉及夸张性描述、夸大性承诺或虚假宣传;职位内容重复描述、无意义描述;多个职位相似;职位要求与职位描述不一致;侮辱、诽谤、骚扰、诋毁、攻击第三人的;招聘信息虚假;与招聘无关;其他可能违反社会公序良俗或伤害候选人权益的情形。<span class="text-bold underline">如用户违反上述要求,本网站有权立即采取下列一个或多个措施:立即停止提供服务;对相关信息予以下线、删除或要求整改;封禁用户账号等。</span>
</li>
</ul>
<h4>(六)用户间保密</h4>
<p>
用户对利用本网站服务进行找工作、招聘和职业问答活动,从而获取的其他用户的任何信息,负有保密的义务。保密的程度依据法律法规、用户间的合意以及一般人的合理注意义务决定。
</p>
<h4>(七)用户间纠纷</h4>
<ul>
<li>
候选人与用人者之间的线下活动,包括沟通、面试、入职、建立劳动关系等,不受本网站的约束。<span class="underline">双方发生纠纷的,依据法律法规、双方合同处理,本网站不负责处理。</span>
</li>
<li>
本网站提供用户反馈渠道,包括网站特定模块或功能,用户可按特定方式表达、反映用户间的纠纷,本网站将尽快处理这些问题,但所做出的答复可能不具有法律约束力,用户仍然可以按照法律法规规定将纠纷提交相关公权力机关。
</li>
</ul>
<h4>(八)用户反馈</h4>
<ul>
<li>
用户在使用本网站服务的过程中,可通过本网站提供的反馈渠道对本网站及本网站的服务提出任何形式的评价、建议或其他意见。本网站设立了专门的投诉举报机制以便用户对其他用户违反法律法规及本用户协议的行为作出投诉、举报。
</li>
<li>用户在招聘活动完成之后,可以在本网站规定的位置以合适的形式发表对另一方用户的评价、建议或其他意见,包括但不限于面试评价、面试满意程度等。前述评价、建议等反馈应当真实、客观,用户对此独立承担责任。
</li>
</ul>
<h4>(九)推广和宣传</h4>
<ul>
<li>
为进一步提升品牌形象以便提供更好的服务,本网站可在本网站页面或者与本网站有关的市场宣传、推广材料上公开使用用户的公开信息,包括但不限于名称、商号、商标、标语等。本网站承诺上述信息不用于与本网站服务无关的事项上。
</li>
<li>用户同意接受来自本网站的信息、资讯,包括但不限于职位信息、活动信息、推广信息等。用户也可通过本平台提供的方式选择只接收部分推送信息或不接收推送信息,具体请参见《瑞职网隐私政策》。</li>
<li>用户在本网站上传或张贴的内容(包括但不限于照片、文字、面试评价等),视为用户授予本网站及其关联公司免费、非独家的使用权,本网站有权为展示、传播及推广前述张贴内容的目的,对上述内容进行复制、修改、出版等。该使用权持续至用户书面通知本网站不得继续使用,且本网站实际收到该等书面通知时止。</li>
</ul>
<h3>四、服务的中断或终止</h3>
<ul>
<li>
用户在使用本网站服务的所有行为,产生的所有信息,必要情况下本网站有权依据法律法规、社会公序良俗、本网站的规则和协议,做出审查。本网站有权中断或终止对违规用户的服务。该用户以其他名义再次注册账户的,本网站有权不予审核通过。
</li>
<li>用户申请终止服务的,经本网站同意后可以解除该用户协议。</li>
<li>本网站中断或终止对用户提供服务后,根据相关法律规定,仍需继续保留用户在本网站的资料和信息(包括但不限于用户的账号信息、交易信息等)。</li>
<li>中断或终止对用户的服务并不免除用户因违反法律法规、社会公序良俗、本网站的规则和协议,而对本网站、网站其他用户或第三方应负的损害赔偿责任。</li>
</ul>
<h3>五、责任声明</h3>
<ul>
<li>
本网站作为信息服务与交流平台,所有职位信息、找工作信息及职业社区交流信息均由用户自行上传、发布。本网站对用户的真实资信状况、用户发布信息的真实性、合法性、准确性等不作保证。本网站不对简历的内容做实质性审查,不保证简历的真实、完整、准确;本网站不对用户实际经营状况做实质性审查,不对用户的资信状况做出保证。因上述原因给第三方造成的损失,本网站不承担责任。
</li>
<li>
本网站致力于为用户提供优质、稳定的服务。但本网站不保证本网站系统:能够满足所有的用户需求;不出现任何的系统宕机、波动;不出现任何的数据丢失。因网络运营商原因、本网站进行网络调整、正常的系统维护升级等造成的本网站无法正常访问,本网站不承担任何责任。
</li>
<li>
用户通过本网站获取的任何资料和信息,无论其来自于本网站或任何外部链接,本网站对其不做出任何保证。本网站提供与其它互联网上的网站或资源的链接,用户可能会因此跳转至其它运营商经营的网站,但不表示本网站与这些运营商有任何关联关系。其它运营商经营的网站均由各经营者自行负责,不属于本网站控制及负责范围之内。对于存在或来源于此类网站或资源的任何内容、广告、物品或其它资料,本网站亦不予保证或负责。因使用或依赖任何此类网站或资源发布的或经由此类网站或资源获得的任何内容、物品或服务所产生的任何损害或损失,本网站不负任何直接或间接的责任。涉及上述条款中的情形,而造成的用户利润、商誉等损失,本网站不承担任何直接、间接、附带、惩罚性的赔偿。
</li>
<li>
本网站将不时地指定本网站(所有者)的关联公司或者第三方作为本网站的代理、基础服务商、技术支持方等,以便为用户提供本平台相应的服务。如用户需使用第三方服务以便使用本网站相应功能(例如使用第三方账号登录本网站、使用第三方支付工具购买本网站付费服务等),还应相应遵守第三方服务提供商的相应规则。
</li>
</ul>
<h3>六、陈述与保证</h3>
<h4>(一)知识产权</h4>
<ul>
<li>
本协议条款明确规定的,以及任何与本网站服务有关的内容的知识产权,由本网站或相关权利人所享有。该条款所指内容包括但不限于本网站设计、本网站代码、本网站内容、本网站资讯、用户信息等。该条款所指知识产权包括但不限
于专利权、著作权、商标权等。
</li>
<li class="underline">本网站将通过技术手段对用户数据进行去标识化处理(去标识化处理的信息将无法识别主体),<span class="text-bold">在此情况下本网站有权使用已经去标识化的信息。在个人信息进行脱敏处理的前提下,对用户数据进行分析并予以利用所形成的所有智力成果均归属于本网站所有(包括但不限于专利权、著作权;例如基于平台用户去标识化信息对互联网行业及招聘领域的分析报告等)。</span>
</li>
</ul>
<h4>(二)隐私权</h4>
<ul>
<li class="text-bold underline">
为使用本网站服务之必需,用户需授权本网站收集、使用、披露用户个人信息;且用户之间可以通过网站特定功能访问、获取其他用户部分个人信息。有关用户个人信息安全及隐私保护的具体约定,需适用《瑞职网隐私政策》,请在使用服务前仔细阅读此《瑞职网隐私政策》并充分理解该隐私政策的全部内容,确定了解本网站对您个人信息的处理规则。如不同意协议中的任何条款,您应立即停止访问瑞职网及使用相关服务。
</li>
</ul>
<h4>(三)保密义务</h4>
<p>
用户保证在使用本网站过程中所获悉的属于本网站及他方的且无法自公开渠道获得的文件及资料(包括但不限于个人信息、商业秘密、公司计划、运营活动、财务信息、技术信息、经营信息及其他商业秘密)属于保密信息。对于此等信息,本网站对用户负有保密义务,用户之间也负有保密义务。未经该资料和文件的原提供方同意,任何一方不得向第三方泄露该保密信息的全部或者部分内容。但法律、行政法规、部门规章等规范性文件另有规定或者双方另有约定的除外。</p>
<h3>七、协议解除、终止</h3>
<p>有以下情形的,本协议归于解除或终止:</p>
<ul>
<li>本网站基于法律法规等规范性文件、本网站的各项规则和协议以及社会公序良俗,终止对用户提供服务的。该情形的协议终止并不免除用户应承担的相应责任。</li>
<li>一方主体归于消灭、撤销等无法有效存续状态的。依据法律法规的规定处理未决问题。</li>
<li>
因不可抗力使本协议无法继续履行或者没有履行必要和意义。不可抗力是指不能遇见、不能避免并不能克服的客观情况,包括但不限于战争、台风、水灾、火灾、雷击或地震、罢工、暴动、法定疾病、黑客攻击、网络病毒、电信部门技术管制、政府行为或任何其它自然或人为造成的灾难等客观情况。
</li>
<li>本协议终止或更新时,用户不接受新的协议。用户应当立即停止使用本网站的服务。</li>
</ul>
<h3>八、违约责任</h3>
<ul>
<li>任何一方违反本协议约定的行为均构成违约行为,均应承担相应的责任。</li>
<li><span class="underline">对于用户的任何违反本协议规定的行为,本网站有权采取相应处理措施,方式包括但不限于记录不良行为、调整用户信用等级、黑白名单限制、暂停服务、下线信息、封禁用户账号等</span>。形式包括系统后台记录或网站公示公开。该等处理措施将影响用户使用本网站的服务,涉及违法、犯罪的,本网站将移交司法机关处理。
</li>
<li>遭受不可抗力事件的一方可暂行中止履行本合同项下的义务直至不可抗力事件的影响消除为止,并且无需为此而承担违约责任;但应尽最大努力克服该事件,减轻其负面影响。</li>
</ul>
<p><span class="underline text-bold">为了核查用户的问题并及时向用户反馈,我们可能需要用户提交身份证明、有效联系方式和书面请求及相关证据。</span>我们将尽快处理用户的问题,用户仍然可以按照法律法规规定向有关政府部门进行反馈。
</p>
<h3>十、其他</h3>
<ul>
<li>瑞职网平台的所有权、运营权、解释权归四川信华腾科技有限公司所有。瑞职网拥有对本协议的最终解释权。</li>
<li>
用户与本平台的任何纠纷,可以通过协商的途径解决。协商不成的,任何一方可向<span class="text-bold">南充仲裁委员会提起仲裁。</span>
</li>
<li>本协议的订立、生效、解释、执行、管辖、争议的解决均适用中华人民共和国法律。</li>
</ul>
</dd>
</nz-modal>

@ -1,129 +0,0 @@
.top {
width: 100%;
height: 100px;
line-height: 100px;
img {
margin-left: 15%;
height: 60px;
}
a {
float: right;
margin-right: 10%;
}
}
.main {
width: 100%;
height: 630px;
background: url(../../assets/common/homeLoginBg.png);
padding-top: 70px;
.main_login {
width: 1000px;
height: 460px;
margin: 0 auto;
.main_login_left {
width: 600px;
height: 100%;
.main_login_left_top {
width: 100%;
height: 66px;
background-color: var(--white);
border-radius: 6px;
.click {
background-color: var(--blue);
color: var(--white);
}
.unClick {
background-color: var(--white);
color: #747474;
}
.main_login_left_top_piece {
width: 96px;
height: 44px;
line-height: 44px;
text-align: center;
margin-top: 11px;
margin-left: 20px;
border-radius: 4px;
font-size: var(--size);
}
}
.main_login_left_main {
width: 100%;
height: 376px;
margin-top: 18px;
.main_login_left_top_company {
width: 140px;
height: 84px;
margin-top: 10px;
margin-left: 8px;
background-color: var(--white);
border-radius: 4px;
img {
border-radius: 4px;
width: 100%;
height: 100%;
}
}
}
}
.main_login_right {
width: 366px;
height: 100%;
background-color: var(--white);
border-radius: 6px;
.main_login_right_top {
width: 100%;
height: 88px;
line-height: 102px;
font-size: 24px;
font-weight: bold;
text-align: center;
span {
color: var(--blue);
}
}
.main_login_right_from {
width: 80%;
margin-left: 10%;
padding: 14px;
height: 240px;
i {
margin-top: 6px;
margin-right: 4px;
font-size: 26px;
}
a {
margin-top: 6px;
}
}
.main_login_right_text {
width: 100%;
height: 100px;
text-align: center;
font-size: 14px;
p {
color: #999999;
}
.main_login_right_text_p {
margin-top: 10px;
text-decoration: underline
}
}
}
}
}
div.main_login_left_top_company:hover {
box-shadow: 0 0 15px #4E4E4E;
padding:10px;
}
.login-form-button {
width: 265px;
height: 48px;
font-size: 18px;
margin-top: 20px;
border-radius: 6px;
}

@ -1,194 +0,0 @@
import {Component, OnInit} from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {LoginService} from '../services/login.service';
import {NzMessageService, NzModalService} from 'ng-zorro-antd';
import {CommonsService} from '../services/commons.service';
import {ValidatorsService} from '../services/validators.service';
import {
FRONT_INFO_OBJECT,
INIT_FLAG,
LOGINTYPE,
RESUME_INFO,
RESUME_STATUS,
RESUME_STATUS_NAME,
TOKEN
} from '../services/local-storage.namespace';
import {LocalStorageService} from '../services/local-storage.service';
import {Router} from '@angular/router';
import {environment} from '../../environments/environment';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
imageUrl = environment.imageUrl;
topPieceList = [];
// 验证码倒计时参数
verifyCode: any = {
verifyCodeTips: '获取验证码',
countDown: 60,
disable: false
};
topCompanyList = [];
validateForm!: FormGroup;
isVisible; // 协议
type = true; // true 验证码登录 false 密码登录
typeName = '密码登录';
constructor(
private fb: FormBuilder,
private login: LoginService,
private message: NzMessageService,
private commons: CommonsService,
private store: LocalStorageService, // 数据请求
private router: Router, // 路由
private modal: NzModalService
) {
}
ngOnInit(): void {
this.validateForm = this.fb.group({
phone: [null, [Validators.required , ValidatorsService.mobile]],
code: [null, [Validators.required]],
password: [null, [Validators.required]],
});
this.commons.getDictionary('HOME_INDUSTRY', data => {
this.topPieceList = data['return_data'];
for (let i = 0; i < this.topPieceList.length; i++) {
if (i === 0) {
this.topPieceList[i]['isClick'] = true;
this.getHomeCompanyList(this.topPieceList[i]['codeName']);
} else {
this.topPieceList[i]['isClick'] = false;
}
}
});
}
public getClick(i): void {
// tslint:disable-next-line:forin
for (const index in this.topPieceList) {
this.topPieceList[index].isClick = Number(index) === Number(i);
}
this.getHomeCompanyList(this.topPieceList[i]['codeName']);
}
public getHomeCompanyList(industry) {
const object = {
industryCategoryName: industry,
showNum: 15
};
this.commons.getHomeCompanyList(object, data => {
this.topCompanyList = data['return_data'];
});
}
// 倒计时旧方法
public getCountDown() {
if (this.verifyCode.countDown === 0) {
this.verifyCode.countDown = 60;
this.verifyCode.verifyCodeTips = '重新获取验证码';
this.verifyCode.disable = false;
return;
} else {
this.verifyCode.countDown--;
}
this.verifyCode.verifyCodeTips = '重新获取(' + this.verifyCode.countDown + ')';
this.verifyCode.disable = true;
setTimeout(() => {
this.getCountDown();
}, 1000);
}
// 获取验证码
public getCode(): void {
// tslint:disable-next-line:forin
for (const i in this.validateForm.controls) {
if (i === 'phone' && this.validateForm.controls[i].errors != null) {
this.validateForm.controls[i].markAsDirty();
this.validateForm.controls[i].updateValueAndValidity();
return;
}
}
this.login.sendVerificationCode(this.validateForm.value.phone, data => {
if (data['return_code'] === '000000') {
this.getCountDown();
} else {
this.message.warning(data['return_msg']);
}
});
}
// 登录or注册
public getLogin(): void {
// tslint:disable-next-line:forin
for (const i in this.validateForm.controls) {
if (this.validateForm.controls[i].errors != null) {
this.validateForm.controls[i].markAsDirty();
this.validateForm.controls[i].updateValueAndValidity();
if (this.type && i === 'code' && this.validateForm.controls[i].errors != null) {
return;
} else if (!this.type && i === 'password' && this.validateForm.controls[i].errors != null) {
return;
}
}
}
if (this.type) {
this.validateForm.value.type = 2;
} else {
this.validateForm.value.type = 1;
}
this.login.registerUser(this.validateForm.value, data => {
if (data['return_code'] === '000000') {
if (data['return_code'] === '000000') {
this.store.set(FRONT_INFO_OBJECT, data['return_data']['object']);
this.store.set(RESUME_INFO, data['return_data']['object']['bsResumeModal']);
if (data['return_data']['object']['bsResumeModal']['bsResume'] != null) {
this.store.set(RESUME_STATUS_NAME, data['return_data']['object']['bsResumeModal']['bsResume']['statusName']);
this.store.set(RESUME_STATUS, data['return_data']['object']['bsResumeModal']['bsResume']['status']);
}
this.store.set(TOKEN, data['return_data']['uniqueCode']);
this.store.set(INIT_FLAG, true);
this.store.set(LOGINTYPE , data['return_data']['type']);
if (data['return_data']['object']['bsResumeModal']['bsResume'] == null) {
this.router.navigateByUrl('/home/resume/editResume').then();
} else {
this.router.navigateByUrl('/home/index').then();
}
} else {
this.modal.warning({
nzTitle: '提示',
nzContent: data['return_msg']
});
}
} else {
this.message.warning(data['return_msg']);
}
});
}
// 弹出协议
public showModal(): void {
this.isVisible = true;
}
// 关闭协议
public handleCancel(): void {
this.isVisible = false;
}
// 密码登录
public getLoginPassword(type): void {
if (type) {
this.typeName = '密码登录';
} else {
this.typeName = '验证码登录/注册';
}
this.type = type;
}
}

@ -1,20 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LoginRoutingModule } from './login-routing.module';
import { LoginComponent } from './login.component';
import {NgZorroAntdModule} from 'ng-zorro-antd';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
@NgModule({
declarations: [LoginComponent],
imports: [
CommonModule,
LoginRoutingModule,
NgZorroAntdModule,
ReactiveFormsModule,
FormsModule,
]
})
export class LoginModule { }

@ -343,5 +343,4 @@ export class CommonsService {
callBack(data); callBack(data);
}); });
} }
} }

@ -0,0 +1,94 @@
import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {CommonsService} from './commons.service';
import {environment} from '../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class IndexService {
constructor(
private http: HttpClient,
private common: CommonsService
) { }
/**
* @Author Sum1Dream
* @methodName getHLTBalance
* @Description // 查询余额
* @Date 12:11 2022/1/10
* @Param [paramsObject: object, callBack]
*/
public getHLTBalance(paramsObject: object, callBack) {
this.http.get(environment.baseUrl + 'common/getHLTBalance?' + this.common.getWhereCondition(paramsObject)).subscribe(data => {
callBack(data);
});
}
/**
* @Author Sum1Dream
* @methodName addHLTBalance
* @Description // 新增余额
* @Date 12:12 2022/1/10
* @Param
*/
public addHLTBalance(params: object, callBack) {
this.http.post(environment.baseUrl + 'common/addHLTBalance', params).subscribe(data => {
callBack(data);
});
}
/**
* @Author Sum1Dream
* @methodName orderByIndex
* @Description // 订单查询
* @Date 4:39 2022/1/10
* @Param [code: number, callBack]
*/
public orderByIndex(code: number, callBack) {
this.http.get(environment.baseUrl + 'highOrder/orderByIndex?code=' + code).subscribe(data => {
callBack(data);
});
}
/**
* @Author Sum1Dream
* @methodName HLTOrderByIndex
* @Description //查询汇联通订单
* @Date 4:42 2022/1/10
* @Param [code: number, callBack]
*/
public HLTOrderByIndex(code: number, callBack) {
this.http.get(environment.baseUrl + 'highOrder/HLTOrderByIndex?code=' + code).subscribe(data => {
callBack(data);
});
}
/**
* @Author Sum1Dream
* @methodName rechargeOrderByIndex
* @Description //TODO
* @Date 4:44 2022/1/10
* @Param [code: number, callBack]
*/
public rechargeOrderByIndex(code: number, callBack) {
this.http.get(environment.baseUrl + 'outRechargeOrder/rechargeOrderByIndex?code=' + code).subscribe(data => {
callBack(data);
});
}
/**
* @Author Sum1Dream
* @methodName HLTOrderByList
* @Description // 查询列表
* @Date 5:34 2022/1/10
* @Param
*/
public HLTOrderByList(code: number, callBack) {
this.http.get(environment.baseUrl + 'highOrder/HLTOrderByList?code=' + code).subscribe(data => {
callBack(data);
});
}
}
Loading…
Cancel
Save