cyl/dev
wangxia 3 years ago
parent 6a7ee9735a
commit 911d91240f

@ -18,6 +18,7 @@
"js-cookie": "^3.0.1",
"moment": "^2.29.1",
"popmotion": "^9.3.5",
"v-viewer": "^1.6.4",
"vue": "^2.6.11",
"vue-amap": "^0.5.10",
"vue-cropper": "^0.5.8",
@ -45,8 +46,7 @@
"prettier": "^2.2.1",
"vue-template-compiler": "^2.6.11"
},
"gitHooks": {
},
"gitHooks": {},
"lint-staged": {
"*.{js,jsx,vue}": [
"vue-cli-service lint",

@ -1,10 +1,16 @@
import request from "../utils/request";
import qs from "qs";
let setqs = function (data) {
return qs.stringify(data);
};
// 获取职位列表
export function JobListApi(data) {
return request({
url: "/yishoudan/store/job/list",
method: "post",
params: data,
// data: setqs(data),
// headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: setqs(data),
});
}
// 获取职位详情
@ -37,10 +43,13 @@ export function getCityApi(id) {
}
// 录单报名
export function recordBillApi(data) {
console.log(data);
return request({
url: "/yishoudan/user/apply/order/addByAgency",
method: "post",
params: data,
data,
headers: { "Content-Type": "application/x-www-form-urlencoded" },
});
}
// 报名上传识别身份证信息
@ -48,7 +57,7 @@ export function getIdCardInfoApi(data) {
return request({
url: "/yishoudan/commons/idCardOcrRecognize",
method: "post",
data: data,
data,
headers: { "Content-Type": "multipart/form-data" },
});
}

@ -1,10 +1,14 @@
import request from "../utils/request";
import qs from "qs";
let setqs = function (data) {
return qs.stringify(data);
};
// 登录相关接口
export function loginApi(data) {
return request({
url: "/yishoudan/login",
method: "post",
params: data,
data: setqs(data),
});
}
// 获取验证码
@ -12,7 +16,7 @@ export function getPhoneCodeApi(data) {
return request({
url: "/yishoudan/commons/sendMsgCode",
method: "post",
params: data,
data: setqs(data),
});
}
// 注册接口
@ -20,14 +24,14 @@ export function registerApi(data) {
return request({
url: "/yishoudan/register",
method: "post",
params: data,
data: setqs(data),
});
}
// 退出登录
export function logoutApi() {
return request({
url: "/yishoudan/logout",
// params: data,
// data: data,
});
}
// 修改密码
@ -35,6 +39,6 @@ export function logoutApi() {
export function updatePswApi(data) {
return request({
url: "/yishoudan/updatePassword",
params: data,
data: data,
});
}

@ -1,10 +1,14 @@
import request from "../utils/request";
import qs from "qs";
let setqs = function (data) {
return qs.stringify(data);
};
// 获取卡券信息
export function userCardApi(data) {
return request({
url: "/yishoudan/usercoupon/list",
// method: "post",
params: data,
data: data,
});
}
// 获取用户余额信息
@ -12,7 +16,7 @@ export function userBalanceApi(data) {
return request({
url: "/yishoudan/wallet/info",
// method: "post",
params: data,
data: data,
});
}
@ -21,7 +25,7 @@ export function userDetailApi(data) {
return request({
url: "/yishoudan/wallet/withdrawal/list",
// method: "post",
params: data,
data: data,
});
}
// // 获取我的老乡信息
@ -29,15 +33,15 @@ export function userDetailApi(data) {
// return request({
// url: "/yishoudan/workorder/getLaoXiangList",
// // method: "post",
// params: data,
// data: data,
// });
// }
// 获取我的报名信息
export function userBillApi(data) {
return request({
url: "/yishoudan/user/apply/order/list",
// method: "post",
params: data,
method: "post",
data: setqs(data),
});
}
// 获取我的报名状态数量
@ -45,7 +49,7 @@ export function userBillNumberApi(data) {
return request({
url: "/yishoudan/user/apply/order/listStatisticsNum",
// method: "post",
params: data,
data: data,
});
}
// 获取跟进记录详情
@ -60,7 +64,7 @@ export function userBaseInfoApi(data) {
return request({
url: "/yishoudan/user/getUserInfo",
// method: "post",
params: data,
data: data,
});
}
// 获取用户积分信息
@ -69,7 +73,7 @@ export function getPointApi(data) {
return request({
url: "/yishoudan/wallet/getPoint",
// method: "post",
params: data,
data: data,
});
}
// 获取用户积分使用信息
@ -78,7 +82,7 @@ export function getPointDetailApi(data) {
return request({
url: "/yishoudan/pointUseRecord/list",
// method: "post",
params: data,
data: data,
});
}
// 登录状态账号设置修改密码
@ -86,8 +90,8 @@ export function getPointDetailApi(data) {
export function setUserPswApi(data) {
return request({
url: "/yishoudan/changePassword",
// method: "post",
params: data,
method: "post",
data: setqs(data),
});
}
// 登录状态账号修改绑定手机号
@ -96,7 +100,7 @@ export function setUserTelApi(data) {
return request({
url: "/yishoudan/user/changeTel",
// method: "post",
params: data,
data: data,
});
}
// 账号修改绑定银行卡
@ -105,7 +109,7 @@ export function getUserBankListApi(data) {
return request({
url: "/yishoudan/user/bank/getUserBankList",
// method: "post",
params: data,
data: data,
});
}
// 实名认证
@ -114,7 +118,7 @@ export function setUserRealNameApi(data) {
return request({
url: "/yishoudan/user/realNameAuth",
// method: "post",
params: data,
data: data,
});
}
// 获取用户微信绑定的二维码
@ -122,7 +126,7 @@ export function getUserWxApi(data) {
return request({
url: "/yishoudan/user/getMiniAppQrCodeOfBindUser",
// method: "post",
params: data,
data: data,
});
}
// 上传用户头像
@ -140,16 +144,44 @@ export function userTownsmanApi(data) {
return request({
url: "/yishoudan/agency/user/list",
method: "post",
params: data,
data: setqs(data),
// data,
});
}
// 获取点击的老乡详情
export function townsmanDetailApi(data) {
return request({
url: "/yishoudan/agency/user/details/" + data,
// data,
});
}
// 获取点击的老乡图片
export function townsmanDetailImgsApi(data) {
return request({
url: "/imgs/list/" + data + "?type=20",
// data,
});
}
// 删除图片
export function delTowmsmanDetailImgApi(data) {
return request({
url: "/imgs/del/" + data,
});
}
// 提交老乡的信息
export function updateTownsmanInfoApi(data) {
return request({
url: "/user/updateInfo",
method: "post",
data: data,
});
}
// 我的老乡各个状态统计
export function gettownsManCountApi(data) {
return request({
url: "/yishoudan/agency/user/listStatistics",
method: "post",
params: data,
data: data,
});
}
// 成员管理:获取成员列表
@ -157,7 +189,7 @@ export function getMemberListApi(data) {
return request({
url: "/yishoudan/user/getAgencyCorpUsers",
method: "post",
params: data,
data: data,
});
}
// 成员管理:删除成员
@ -165,7 +197,7 @@ export function deleteMemberApi(data) {
return request({
url: "/yishoudan/user/delAgencyCorpUser",
method: "post",
params: data,
data: data,
});
}
@ -174,6 +206,6 @@ export function addMemberApi(data) {
return request({
url: "/yishoudan/user/addAgencyUser",
method: "post",
params: data,
data: data,
});
}

@ -105,17 +105,17 @@
</a-drawer>-->
<!-- 面包屑 -->
<a-breadcrumb class="w">
<a-breadcrumb-item href="">
<a-breadcrumb-item href>
<router-link to="/main">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item href="">
<a-breadcrumb-item href>
<a @click="toList">
<span>一手职位</span>
</a>
</a-breadcrumb-item>
<a-breadcrumb-item href="">
<a-breadcrumb-item href>
<span style="color: #333">企业详情</span>
</a-breadcrumb-item>
</a-breadcrumb>
@ -123,45 +123,19 @@
<div class="maincontent w">
<div class="maincontentleft">
<div class="subset">
<a-skeleton
avatar
active
class="skeleton1"
v-show="skeletonshow"
:paragraph="{ rows: 4 }"
/>
<a-skeleton avatar active class="skeleton1" v-show="skeletonshow" :paragraph="{ rows: 4 }" />
<div class="subsetleft" v-show="!skeletonshow">
<div class="imgbox">
<a-carousel
arrows
:autoplay="true"
effect="fade"
:dots="true"
ref="scrollimg"
v-if="storeImage.length !== 0"
>
<div
slot="prevArrow"
class="custom-slick-arrow"
style="left: 5px; z-index: 99"
>
<a-carousel arrows :autoplay="true" effect="fade" :dots="true" ref="scrollimg" v-if="storeImage.length !== 0">
<div slot="prevArrow" class="custom-slick-arrow" style="left: 5px; z-index: 99">
<a-icon type="left-circle" />
</div>
<div
slot="nextArrow"
class="custom-slick-arrow"
style="right: 5px; z-index: 99"
>
<div slot="nextArrow" class="custom-slick-arrow" style="right: 5px; z-index: 99">
<a-icon type="right-circle" />
</div>
<img
v-for="(item, index) in storeImage"
:key="index"
:src="item"
alt=""
/>
<img v-for="(item, index) in storeImage" :key="index" :src="item" alt />
</a-carousel>
<img v-else src="../../../static/img/nopicture.png" alt="" />
<img v-else src="../../../static/img/nopicture.png" alt />
</div>
<div class="jobinfobox">
<div class="jobname">{{ jobDetail.jobName }}</div>
@ -172,52 +146,30 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<a-tag
:color="labelColor[index % labelColor.length]"
v-for="(item, index) in jobDetail.jobRequestLabelNames"
:key="index"
>{{ item }}</a-tag
>
<a-tag :color="labelColor[index % labelColor.length]" v-for="(item, index) in jobDetail.jobRequestLabelNames" :key="index">{{ item }}</a-tag>
</div>
<div
style="height: 27px"
v-if="!jobDetail.jobRequestLabelNames"
class="jobtag"
>
<div style="height: 27px" v-if="!jobDetail.jobRequestLabelNames" class="jobtag">
<a-tag :color="labelColor[1]">暂无要求</a-tag>
</div>
<div class="jobtag1">
<!-- <span>返费</span> -->
<a-tag
v-for="(item, index) in jobDetail.jobSpecialLabelNames"
:key="index"
>{{ item }}</a-tag
>
<a-tag v-for="(item, index) in jobDetail.jobSpecialLabelNames" :key="index">{{ item }}</a-tag>
</div>
<div
style="height: 27px"
v-if="!jobDetail.jobSpecialLabelNames"
class="jobtag"
>
<div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag">
<a-tag style="backgroundcolor: #f5f5f5">暂无特色</a-tag>
</div>
<div
style="
<div style="
display: flex;
align-items: center;
height: 26px;
margin-top: 16px;
"
>
<div
class="jobpricehour"
v-html="
">
<div class="jobpricehour" v-html="
getSalaryClassifyValue(
jobDetail.salaryClassify,
jobDetail.salaryClassifyValue
)
"
>
">
<!-- <template v-if="jobDetail.hourlyPay"
><span>{{ jobDetail.hourlyPay }}</span
>/小时</template
@ -229,9 +181,8 @@
</div>
<span style="font-size: 16px">&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<div class="jobpricemonth">
<span>{{ jobDetail.minMonthlyPay }}</span
>-<span>{{ jobDetail.maxMonthlyPay }}</span
>/
<span>{{ jobDetail.minMonthlyPay }}</span>-
<span>{{ jobDetail.maxMonthlyPay }}</span>/
</div>
</div>
@ -264,13 +215,7 @@
<a-button type="primary" class="jobDesp">职位详单</a-button>
</a-popover>-->
<button
class="dropdown bottombox1"
@click="torecord()"
v-if="jobDetail.recruitment == '1'"
>
报名
</button>
<button class="dropdown bottombox1" @click="torecord()" v-if="jobDetail.recruitment == '1'"></button>
<button class="norecruitment bottombox1" v-else></button>
</div>
</div>
@ -282,56 +227,33 @@
<div class="jobinformationbox">
<h1>
<div class="infotitle">
<span
@click="tabchange = 1"
:class="tabchange === 1 ? 'active' : ''"
>基本信息</span
>
<span
@click="tabchange = 0"
:class="tabchange === 0 ? 'active' : ''"
>财务结算</span
>
<span
@click="tabchange = 2"
:class="tabchange === 2 ? 'active' : ''"
>职位通告</span
>
<span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span>
<span @click="tabchange = 0" :class="tabchange === 0 ? 'active' : ''">财务结算</span>
<span @click="tabchange = 2" :class="tabchange === 2 ? 'active' : ''">职位通告</span>
</div>
<!-- <div class="copy" @click="xiangdanVisible = true">通告</div>-->
<a-modal
v-model="xiangdanVisible"
title="通告"
class="xiangdan"
:footer="null"
@ok="handleOk"
>
<a-modal v-model="xiangdanVisible" title="通告" class="xiangdan" :footer="null" @ok="handleOk">
<!-- <template slot="content" class="jobDesp_content"> -->
<div class="copy" @click="copyText($event)"></div>
<span v-if="jobDetail.jobDesp" class="copyInfo">{{
<span v-if="jobDetail.jobDesp" class="copyInfo">
{{
jobDetail.jobDesp
}}</span
><span v-else></span>
}}
</span>
<span v-else></span>
<!-- </template> -->
</a-modal>
</h1>
<div class="pay" id="tip" v-show="tabchange === 1">
<div class="mb12 mt20 titlestyle">温馨提示</div>
<div class="showInfo" style="width: unset">
{{ jobDetail.notes || "-" }}
</div>
<div class="showInfo" style="width: unset">{{ jobDetail.notes || "-" }}</div>
</div>
<div v-if="tabchange === 1" style="display: flex">
<!-- 薪资 -->
<div class="baseInfoContent" v-if="tabchange === 1">
<div class="pay" id="pay">
<div class="mb12 mt20">薪资待遇</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc boubleLevel"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc boubleLevel">
<!-- <a-descriptions-item class="test1">
<span slot="label" class="fw500">工价</span>
<span>{{ jobDetail.calculationUnit }}</span>
@ -374,9 +296,11 @@
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class="fw500">薪资说明</span>
<span style="white-space: break-spaces">{{
<span style="white-space: break-spaces">
{{
jobDetail.salaryDesp || "-"
}}</span>
}}
</span>
</a-descriptions-item>
<!-- <a-descriptions-item style="padding: 0">
<span slot="label">薪资说明</span>
@ -414,26 +338,22 @@
<!-- 岗位要求 -->
<div class="required" id="required">
<div class="mb12 mt20">面试要求</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">性别年龄</span>
<span>
<span class="man" v-if="jobDetail.minAgeMan"
> {{ jobDetail.minAgeMan }}
<span v-if="jobDetail.maxAgeMan">{{
<span class="man" v-if="jobDetail.minAgeMan">
{{ jobDetail.minAgeMan }}
<span v-if="jobDetail.maxAgeMan">
{{
"- " + jobDetail.maxAgeMan
}}</span
> </span
><span class="woman" v-if="jobDetail.minAgeWoman">
}}
</span>
</span>
<span class="woman" v-if="jobDetail.minAgeWoman">
{{ jobDetail.minAgeWoman }}
<span> {{ "- " + jobDetail.maxAgeWoman }}</span
></span
>
<span>{{ "- " + jobDetail.maxAgeWoman }}</span>
</span>
</span>
</a-descriptions-item>
<a-descriptions-item>
@ -481,14 +401,9 @@
</a-descriptions>
</div>
<!-- 基本信息 -->
<div class=" " id="contentspecial">
<div class id="contentspecial">
<div class="mb12 mt20">岗位说明</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">工作内容</span>
<span>{{ jobDetail.workContent || "-" }}</span>
@ -525,9 +440,11 @@
</a-descriptions-item>-->
<a-descriptions-item>
<span slot="label" class="fw500">换岗调班</span>
<span style="white-space: break-spaces">{{
<span style="white-space: break-spaces">
{{
jobDetail.otherDesp || "-"
}}</span>
}}
</span>
</a-descriptions-item>
</a-descriptions>
</div>
@ -539,8 +456,8 @@
<div>吃饭</div>
<ul>
<li>
<span>吃饭</span
><span>{{ jobDetail.workingLunch || "-" }}</span>
<span>吃饭</span>
<span>{{ jobDetail.workingLunch || "-" }}</span>
</li>
<!-- <li>
<span>餐补</span
@ -569,25 +486,26 @@
<div>住宿</div>
<ul>
<li>
<span>住宿费用</span
><span>{{ jobDetail.dormitory || "-" }}</span>
<span>住宿费用</span>
<span>{{ jobDetail.dormitory || "-" }}</span>
</li>
<li>
<span>宿舍设施</span
><span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
<span>宿舍设施</span>
<span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
</li>
<li>
<span>宿舍距离</span
><span>{{ jobDetail.dormDistance || "-" }}</span>
<span>宿舍距离</span>
<span>{{ jobDetail.dormDistance || "-" }}</span>
</li>
<li>
<span>厂车</span><span>{{ jobDetail.bus || "-" }}</span>
<span>厂车</span>
<span>{{ jobDetail.bus || "-" }}</span>
</li>
<li>
<span>住宿要求</span
><span>{{ jobDetail.dormitoryDesp || "-" }}</span>
<span>住宿要求</span>
<span>{{ jobDetail.dormitoryDesp || "-" }}</span>
</li>
<!-- <li>
<span>宿舍距离</span
@ -666,12 +584,10 @@
</div>
<div class="otherInfo" id="other">
<div class="mb12 mt20">其他信息</div>
<div style="white-space: break-spaces">
{{ jobDetail.otherInfo || "-" }}
<div style="white-space: break-spaces">{{ jobDetail.otherInfo || "-" }}</div>
</div>
</div>
</div>
<a-anchor @click.prevent="" class="navigation">
<a-anchor @click.prevent class="navigation">
<a-anchor-link href="#pay" title="薪资" />
<a-anchor-link href="#required" title="要求" />
<a-anchor-link href="#contentspecial" title="岗位" />
@ -684,17 +600,9 @@
<div v-else-if="tabchange == 0">
<div class="pay" id="tip">
<div class="mb12 mt20 titlestyle">代理须知</div>
<div class="showInfo" style="width: 640px">
{{ jobDetail.agencyStatement || "-" }}
</div>
<div class="showInfo" style="width: 640px">{{ jobDetail.agencyStatement || "-" }}</div>
</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc mt20"
style="width: 900px"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">代理利润</span>
<span>{{ jobDetail.agencyProfit || "-" }}</span>
@ -735,7 +643,9 @@
</div>
<div class="maincontentright">
<div class="hotphone">
<h1 class="bottombox"><i>服务热线</i></h1>
<h1 class="bottombox">
<i>服务热线</i>
</h1>
<p>0371-6611 3723</p>
</div>
<!-- <div class="jobDetailInfo" style="display:none">
@ -744,11 +654,13 @@
</div>-->
<div class="companyinfo">
<div class="companydetail">
<h1 class="bottombox"><i>企业详情</i></h1>
<h1 class="bottombox">
<i>企业详情</i>
</h1>
<p style="text-align: center">{{ jobDetail.aliasName }}</p>
<div class="imgbox">
<img v-if="storeImage.length !== 0" :src="storeImage[0]" alt="" />
<img v-else src="../../../static/img/nopicture.png" alt="" />
<img v-if="storeImage.length !== 0" :src="storeImage[0]" alt />
<img v-else src="../../../static/img/nopicture.png" alt />
</div>
<p>
<!-- 我是文案我很长很长我是文案我 很长很长我是文案我很长很长我
@ -756,7 +668,9 @@
</p>
</div>
<div class="companylocation" v-if="positionInfo.lng">
<h1 class="bottombox"><i>企业位置</i></h1>
<h1 class="bottombox">
<i>企业位置</i>
</h1>
<div class="imgbox">
<!-- <GDMap/> -->
<GDMap :positionInfo="positionInfo"></GDMap>
@ -779,20 +693,17 @@
</div>
</template>
<script>
import { getJobDetailApi } from "../../api/job";
import {
disposeJobListData,
getSalaryClassifyValue,
} from "../../utils/commonUtil";
import recommend from "../../components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import GDMap from "../map.vue";
import { getJobDetailApi } from '../../api/job'
import { disposeJobListData, getSalaryClassifyValue } from '../../utils/commonUtil'
import recommend from '../../components/FirstJob/components/recommend.vue'
import { nationlist } from '../../utils/datalist'
import GDMap from '../map.vue'
// import recordbill from "@/components/FirstJob/components/recordbill.vue";
import Clipboard from "clipboard";
import Clipboard from 'clipboard'
// import map from '../map.vue'
export default {
//
name: "",
name: '',
//
components: {
recommend,
@ -818,29 +729,20 @@ export default {
skeletonshow: true,
tabchange: 1,
nationlist,
labelColor: [
"pink",
"blue",
"purple",
"orange",
"green",
"cyan",
"red",
"purple",
],
labelColor: ['pink', 'blue', 'purple', 'orange', 'green', 'cyan', 'red', 'purple'],
form: {
//
name: "",
peoplecard: "",
gender: "",
nation: "",
location: "",
firm: "",
post: "",
pattern: "",
policy: "",
proxy: "",
facedate: "",
name: '',
peoplecard: '',
gender: '',
nation: '',
location: '',
firm: '',
post: '',
pattern: '',
policy: '',
proxy: '',
facedate: '',
},
storeJob: {},
// rules: {
@ -849,7 +751,7 @@ export default {
// // tel: [{ required: true, message: "", trigger: "submit" }],
// },
apply: {},
};
}
},
//
computed: {},
@ -863,8 +765,8 @@ export default {
beforeCreate() {},
created() {
// console.log(this.$router.matcher.match());
console.log(this.$route); // params
this.getJobDetail();
console.log(this.$route) // params
this.getJobDetail()
// Object.defineProperties("window.opener", "sessionStorage", {
// LOGIN_DATA: {},
// });
@ -882,35 +784,33 @@ export default {
methods: {
async getJobDetail() {
try {
const { data } = await getJobDetailApi(this.id);
console.log(data);
const { data } = await getJobDetailApi(this.id)
console.log(data)
if (data.status === 200) {
console.log(data);
this.jobDetail = disposeJobListData(data.data.storeJob);
this.positionInfo = data.data.store;
this.positionInfo.desc = this.positionInfo.detailPosition;
this.positionInfo.containerName = "mapContainer";
this.positionInfo.name = this.positionInfo.aliasName;
this.skeletonshow = false;
this.jobDetail.district = disposeJobListData(
data.data.store
).district;
console.log(data)
this.jobDetail = disposeJobListData(data.data.storeJob)
this.positionInfo = data.data.store
this.positionInfo.desc = this.positionInfo.detailPosition
this.positionInfo.containerName = 'mapContainer'
this.positionInfo.name = this.positionInfo.aliasName
this.skeletonshow = false
this.jobDetail.district = disposeJobListData(data.data.store).district
let newdata = {
id: data.data.storeJob.id,
aliasName: data.data.store.aliasName,
jobName: data.data.storeJob.jobName,
};
this.storeInfo = newdata;
}
this.storeInfo = newdata
let regs = /\.(jpg|jpeg|png)(\?.*)?$/;
let regs = /\.(jpg|jpeg|png)(\?.*)?$/
data.data.storeImage.forEach((item) => {
if (regs.test(item.url.toLowerCase())) {
this.storeImage.push(item.url);
this.storeImage.push(item.url)
}
});
})
// console.log(this.storeImage);
} else {
this.$message.warning("数据获取失败");
this.$message.warning('数据获取失败')
}
// = data.data.recordList;
@ -922,31 +822,31 @@ export default {
},
//
handleCancel() {
this.visible = false;
this.visible = false
this.form = {
//
name: "",
tel: "",
peoplecard: "",
username: "",
};
name: '',
tel: '',
peoplecard: '',
username: '',
}
},
//
handleOk() {
this.$refs.ruleForm.validate((ispass, no) => {
// console.log(ispass);
if (ispass) {
this.confirmLoading = true;
this.confirmLoading = true
setTimeout(() => {
this.confirmLoading = false;
this.visible = false;
}, 2000);
this.confirmLoading = false
this.visible = false
}, 2000)
} else {
// console.log(123);
}
console.log(no);
});
console.log(no)
})
},
//
// showmodal() {
@ -954,68 +854,68 @@ export default {
// console.log(this.id);
// },
showmodal() {
this.visible = true;
this.visible = true
// this.apply = item;
// console.log(this.apply);
// console.log(id);
},
onClose() {
this.visible = false;
this.visible = false
this.form = {
//
name: "",
peoplecard: "",
gender: "", //
nation: "", //
location: "", //
firm: "", //
post: "", //
pattern: "", //
policy: "", //
proxy: "", //
facedate: "", //
};
name: '',
peoplecard: '',
gender: '', //
nation: '', //
location: '', //
firm: '', //
post: '', //
pattern: '', //
policy: '', //
proxy: '', //
facedate: '', //
}
},
torecord(item) {
//
console.log(item);
console.log(item)
// let userinfo = JSON.stringify(item);
console.log(this.jobDetail);
console.log(this.storeInfo);
this.storeInfo.currentPageNum = this.currentPageNum;
console.log(this.storeInfo);
this.$router.push({ name: "recordbill", params: this.storeInfo });
sessionStorage.setItem("CURRENT_FIRM", JSON.stringify(this.storeInfo));
console.log(this.jobDetail)
console.log(this.storeInfo)
this.storeInfo.currentPageNum = this.currentPageNum
console.log(this.storeInfo)
this.$router.push({ name: 'recordbill', params: this.storeInfo })
sessionStorage.setItem('CURRENT_FIRM', JSON.stringify(this.storeInfo))
},
getSalaryClassifyValue(salaryClassify, salaryClassifyValue) {
return getSalaryClassifyValue(salaryClassify, salaryClassifyValue);
return getSalaryClassifyValue(salaryClassify, salaryClassifyValue)
},
copyText() {
console.log(123);
var clipboard = new Clipboard(".copy", {
console.log(123)
var clipboard = new Clipboard('.copy', {
// .copy
target: function () {
// target
return document.querySelector(".copyInfo"); // .copyInfo
return document.querySelector('.copyInfo') // .copyInfo
},
});
clipboard.on("success", (e) => {
})
clipboard.on('success', (e) => {
// success success => error
console.log(e);
this.$message.success("复制成功");
});
console.log(e)
this.$message.success('复制成功')
})
},
toList() {
//
this.$router.push({
name: "JobList",
name: 'JobList',
params: {
pagenum: this.currentPageNum,
},
});
})
},
},
};
}
</script>
<style scoped lang="less">
@ -1740,12 +1640,7 @@ export default {
font-size: 16px;
color: #333;
}
.boubleLevel
> .ant-descriptions-view
> table
> tbody
> .ant-descriptions-row:last-child
> .ant-descriptions-item-content {
.boubleLevel > .ant-descriptions-view > table > tbody > .ant-descriptions-row:last-child > .ant-descriptions-item-content {
// padding: 0 !important;
.noborder {
.ant-descriptions-view {

@ -23,35 +23,16 @@
>
</a-modal> -->
<!-- 城市的弹出框 -->
<a-modal
class="cityModal"
transitionName=""
v-model="visible"
width="680px"
@cancel="cityModalClose"
title="请选择城市"
:footer="null"
>
<a-modal class="cityModal" transitionName="" v-model="visible" width="680px" @cancel="cityModalClose" title="请选择城市" :footer="null">
<div class="inputBox">
<a-input
placeholder="请输入城市名称"
allow-clear
width="300px"
v-model="cityValue"
@keyup.enter="searchCity"
@input="resetCityList"
></a-input>
<a-input placeholder="请输入城市名称" allow-clear width="300px" v-model="cityValue" @keyup.enter="searchCity" @input="resetCityList"></a-input>
<a-button @click="searchCity"></a-button>
</div>
<ul class="firstList">
<li @click="[(currentCityList = hotCityList), (activeInd = -1)]">
<div :class="activeInd == -1 ? 'active' : ''">热门地区</div>
</li>
<li
v-for="(item, index) in hasJobCityList.firstList"
:key="index"
@click="[changeCurrentCity(index), (activeInd = index)]"
>
<li v-for="(item, index) in hasJobCityList.firstList" :key="index" @click="[changeCurrentCity(index), (activeInd = index)]">
<div :class="activeInd == index ? 'active' : ''">
<span v-for="i in item" :key="i">{{ i }}</span>
</div>
@ -72,10 +53,7 @@
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-yishoudanlogo"></use></svg
> -->
<img
src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png"
class="icon"
/>
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" class="icon" />
</router-link>
</span>
<!-- 特色筛选的列表盒子 -->
@ -211,39 +189,11 @@
</div>
</li>
</ul> -->
<div
class="searchBox"
@blur="hidedownHotStore"
@focus="showHotStore"
tabindex="0"
outline="0"
hidefocus="true"
>
<a-input
placeholder="搜索职位、企业名称、年龄要求"
@keyup.enter="onSearch"
@input="resetsearch"
@blur="hidedownHotStore"
@focus="showHotStore"
tabindex="0"
v-model="searchValue"
class="searchinput"
style=""
allow-clear
>
<div
slot="prefix"
@focus.stop=""
tabindex="0"
@click.stop="visible = true"
>
<div class="searchBox" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" outline="0" hidefocus="true">
<a-input placeholder="搜索职位、企业名称、年龄要求" @keyup.enter="onSearch" @input="resetsearch" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" v-model="searchValue" class="searchinput" style="" allow-clear>
<div slot="prefix" @focus.stop="" tabindex="0" @click.stop="visible = true">
<span>{{ currentCity }}</span
><i class="iconfont icon-sousuoxiala"></i
><i
class="iconfont icon-guanbishixin"
v-show="currentCity != '全国'"
@click.stop="resetCity"
></i>
><i class="iconfont icon-sousuoxiala"></i><i class="iconfont icon-guanbishixin" v-show="currentCity != '全国'" @click.stop="resetCity"></i>
</div>
<button slot="suffix" @click="onSearch" style="">搜索</button>
</a-input>
@ -257,11 +207,7 @@
<div class="hotStore">
<!-- <span>热门企业</span> -->
<ul>
<li
v-for="(item, index) in hotStoreList"
:key="index"
@click="getHotStoreList(item)"
>
<li v-for="(item, index) in hotStoreList" :key="index" @click="getHotStoreList(item)">
{{ item.storeName }}
</li>
<!-- <li @click="resetResult" style="color: #aaa">重置</li> -->
@ -296,60 +242,18 @@
<div class="w" id="maincontent">
<div class="maincontentleft" style="padding-top: 50px">
<div class="tabBar" @click="changeTab($event)">
<div
class="tabSubset"
:class="{ active: signType == '' }"
data-type="0"
>
全部
</div>
<div
class="tabSubset"
:class="{ active: signType == 1 }"
data-type="1"
>
自营
</div>
<div
class="tabSubset"
:class="{ active: signType == 2 }"
data-type="2"
>
三方
</div>
<div class="tabSubset" :class="{ active: signType == '' }" data-type="0">全部</div>
<div class="tabSubset" :class="{ active: signType == 1 }" data-type="1">自营</div>
<div class="tabSubset" :class="{ active: signType == 2 }" data-type="2">三方</div>
</div>
<div class="filter" :class="[filterStatus == 0 ? '' : 'nobd']" style="">
<div
class="filter-title"
:style="{ top: filterStatus == 0 ? '-32px' : '-21px' }"
>
<div class="filter-title" :style="{ top: filterStatus == 0 ? '-32px' : '-21px' }">
<span
><span>所有筛选<i class="iconfont icon-youjiantou"></i></span>
<span class="filter-show">
<span
@click="delFilter($event, 'price')"
v-show="filterObj.price"
>{{ filterObj.price
}}<i
class="iconfont icon-guanbi2"
v-show="filterObj.price"
></i
></span>
<span
@click="delFilter($event, 'gender')"
v-show="filterObj.gender"
>{{ filterObj.gender
}}<i
class="iconfont icon-guanbi2"
v-show="filterObj.gender"
></i
></span>
<span
@click="delFilter($event, 'special', item)"
v-for="(item, index) in filterObj.specialactive"
:key="index"
>{{ item.name }}<i class="iconfont icon-guanbi2"></i
></span>
<span @click="delFilter($event, 'price')" v-show="filterObj.price">{{ filterObj.price }}<i class="iconfont icon-guanbi2" v-show="filterObj.price"></i></span>
<span @click="delFilter($event, 'gender')" v-show="filterObj.gender">{{ filterObj.gender }}<i class="iconfont icon-guanbi2" v-show="filterObj.gender"></i></span>
<span @click="delFilter($event, 'special', item)" v-for="(item, index) in filterObj.specialactive" :key="index">{{ item.name }}<i class="iconfont icon-guanbi2"></i></span>
<i v-show="showDotted" style="line-height: 24px">...</i>
</span>
</span>
@ -358,8 +262,7 @@
}}<i
class="iconfont icon-sousuoxiala"
:style="{
transform:
filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
transform: filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
}"
></i
></span>
@ -433,12 +336,7 @@
<dl>
<dt>性别</dt>
<dd @click="searchGender">
<span
:style="{ color: filterObj.gender == '男' ? '#ff4400' : '' }"
></span
><span
:style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }"
></span
<span :style="{ color: filterObj.gender == '男' ? '#ff4400' : '' }"></span><span :style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }"></span
><span
:style="{
color: filterObj.gender == '男女不限' ? '#ff4400' : '',
@ -454,8 +352,7 @@
v-for="(item, index) in tagArray1"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -469,8 +366,7 @@
v-for="(item, index) in tagArray3"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -484,8 +380,7 @@
v-for="(item, index) in tagArray0"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -499,8 +394,7 @@
v-for="(item, index) in tagArray4"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -514,8 +408,7 @@
v-for="(item, index) in tagArray2"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -545,13 +438,7 @@
background: item.recruitment == '1' ? '#fff' : '#f5f5f5',
}"
>
<router-link
target="_blank"
:to="
'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum
"
rel="opener"
>
<router-link target="_blank" :to="'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum" rel="opener">
<div class="subsetleft" @click="totop">
<div class="imgbox">
<img v-if="item.logo.length !== 0" :src="item.logo" />
@ -572,39 +459,18 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<i
class="iconfont icon-ziying"
v-if="item.signType == 1"
style=""
></i>
<span
v-for="(item1, index) in item.jobSpecialLabelNames"
:key="index"
>{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"
>暂无特色</span
>
<i class="iconfont icon-ziying" v-if="item.signType == 1" style=""></i>
<span v-for="(item1, index) in item.jobSpecialLabelNames" :key="index">{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"></span>
</div>
<div class="jobpricemonth">
<!-- :style="{ opacity: item.minMonthlyPay ? '1' : '0' }" -->
<span>{{
item.minMonthlyPay ? item.minMonthlyPay : ""
}}</span
>-<span>{{
item.maxMonthlyPay ? item.maxMonthlyPay : ""
}}</span
<span>{{ item.minMonthlyPay ? item.minMonthlyPay : "" }}</span
>-<span>{{ item.maxMonthlyPay ? item.maxMonthlyPay : "" }}</span
>/
</div>
<div
class="jobpricehour"
v-html="
getSalaryClassifyValue(
item.salaryClassify,
item.salaryClassifyValue
)
"
>
<div class="jobpricehour" v-html="getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue)">
<!-- <template v-if="item.hourlyPay"
><span>{{ item.hourlyPay }}</span
>/小时</template
@ -620,10 +486,7 @@
<div class="subsetright">
<div class="topContainer">
<div class="updateTime" style="display: none">
<span
>更新时间{{ item.updateTime || "--" }} (
{{ item.diffTime || "--" }} )
</span>
<span>更新时间{{ item.updateTime || "--" }} ( {{ item.diffTime || "--" }} ) </span>
</div>
<div class="topbox">
<div>服务费</div>
@ -637,18 +500,7 @@
<span v-if="item.jobDesp" :class="'copyInfo' + index">{{ item.jobDesp }}</span
><span v-else></span>
</template> -->
<router-link
target="_blank"
:to="
'/detail?' +
'id=' +
item.id +
'&' +
'page=' +
formvalue.pageNum
"
rel="opener"
>
<router-link target="_blank" :to="'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum" rel="opener">
<button
type="primary"
class="jobDesp"
@ -660,13 +512,7 @@
</button>
</router-link>
<!-- </a-popover> -->
<button
class="apply"
@click="torecord(item)"
v-if="item.recruitment == '1'"
>
报名
</button>
<button class="apply" @click="torecord(item)" v-if="item.recruitment == '1'"></button>
<button class="norecruitment" v-else></button>
<!-- <button @click="showmodal(item)" @click="">报名</button> -->
@ -675,21 +521,8 @@
</div>
</div>
<div class="pagecontainer">
<a-pagination
:current="+formvalue.pageNum"
:default-current="1"
:defaultPageSize="8"
:total="formvalue.total"
@change="pageChange"
/>
<div class="ant-pagination-options-quick-jumper">
跳至<input
ref="pageinput"
type="text"
@keyup.enter="inputpageChange"
@blur="inputpageChange"
/>
</div>
<a-pagination :current="+formvalue.pageNum" :default-current="1" :defaultPageSize="8" :total="formvalue.total" @change="pageChange" />
<div class="ant-pagination-options-quick-jumper">跳至<input ref="pageinput" type="text" @keyup.enter="inputpageChange" @blur="inputpageChange" /></div>
</div>
</div>
<div class="maincontentright">
@ -737,11 +570,7 @@ import {
getHotStoreApi,
// getCityApi,
} from "../../api/job";
import {
moneyToFixed,
getSalaryClassifyValue,
isNotEmptyCheck,
} from "../../utils/commonUtil";
import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck } from "../../utils/commonUtil";
import recommend from "@/components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import Clipboard from "clipboard";
@ -811,7 +640,7 @@ export default {
tagArray2: [],
tagArray3: [],
tagArray4: [],
proxyinfo: JSON.parse(sessionStorage.getItem("LOGIN_DATA")),
proxyinfo: JSON.parse(localStorage.getItem("LOGIN_DATA")),
nationlist: nationlist,
specialHotTag: [],
dateinfo: {
@ -1044,10 +873,7 @@ export default {
console.log(typeof this.searchValue.trim());
if (this.searchValue.trim() !== "") {
this.formvalue.pageNum = 1;
if (
typeof +this.searchValue.trim() == "number" &&
!isNaN(+this.searchValue.trim())
) {
if (typeof +this.searchValue.trim() == "number" && !isNaN(+this.searchValue.trim())) {
this.formvalue.ageStr = this.searchValue.trim();
} else {
this.formvalue.aliasName = this.searchValue.trim();
@ -1079,16 +905,8 @@ export default {
} else if (e.target.nodeName == "BUTTON") {
console.log(this.minMonthlyPay);
console.log(this.maxMonthlyPay);
if (
this.minMonthlyPay.length != 0 &&
this.maxMonthlyPay.length != 0 &&
typeof +this.minMonthlyPay == "number" &&
typeof +this.maxMonthlyPay == "number" &&
!isNaN(+this.minMonthlyPay) &&
!isNaN(+this.maxMonthlyPay)
) {
this.formvalue.monthlyPayStr =
this.minMonthlyPay + "-" + this.maxMonthlyPay;
if (this.minMonthlyPay.length != 0 && this.maxMonthlyPay.length != 0 && typeof +this.minMonthlyPay == "number" && typeof +this.maxMonthlyPay == "number" && !isNaN(+this.minMonthlyPay) && !isNaN(+this.maxMonthlyPay)) {
this.formvalue.monthlyPayStr = this.minMonthlyPay + "-" + this.maxMonthlyPay;
this.filterObj.price = this.formvalue.monthlyPayStr;
this.getJobList();
}
@ -1129,16 +947,9 @@ export default {
//
getJobSpecial() {
// var timestamp = new Date().getTime();
console.log(
new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"))
);
console.log(
new Date(
new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"))
)
);
let diffTime =
new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"));
console.log(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST")));
console.log(new Date(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"))));
let diffTime = new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST"));
if (isNotEmptyCheck(localStorage.getItem("SPECIALLIST"))) {
if (diffTime / 3600000 > 2) {
console.log("======================", "needRequest");
@ -1156,11 +967,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1171,9 +978,7 @@ export default {
});
});
} else {
this.specialList = JSON.parse(
localStorage.getItem("SPECIALLIST")
).data;
this.specialList = JSON.parse(localStorage.getItem("SPECIALLIST")).data;
this.specialList.forEach((item) => {
if (item.typeClassify == "0") {
this.tagArray0.push(item);
@ -1186,11 +991,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1215,11 +1016,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1234,6 +1031,7 @@ export default {
//
changeTab(e) {
console.log(e.target.dataset.type);
if (e.target.dataset.type != undefined) {
if (e.target.dataset.type != 0) {
this.formvalue.signType = this.signType = e.target.dataset.type;
} else {
@ -1241,6 +1039,7 @@ export default {
}
this.formvalue.pageNum = 1;
this.getJobList();
}
},
async getJobSpecialList() {
const { data } = await getJobSpecialApi();
@ -1396,10 +1195,7 @@ export default {
this.filterObj.gender = "";
this.formvalue.sex = "";
} else {
this.filterObj.specialactive.splice(
this.filterObj.specialactive.indexOf(items),
1
);
this.filterObj.specialactive.splice(this.filterObj.specialactive.indexOf(items), 1);
this.specialvalue.splice(this.specialvalue.indexOf(items.id), 1);
this.formvalue.jobSpecialLabelIds = this.specialvalue;

@ -13,14 +13,7 @@
</a>
</a-breadcrumb-item>
<a-breadcrumb-item>
<router-link :to="
'/detail?' +
'id=' +
firminfo.id +
'&' +
'page=' +
firminfo.currentPageNum
">
<router-link :to="'/detail?' + 'id=' + firminfo.id + '&' + 'page=' + firminfo.currentPageNum">
<!-- <span @click="$router.back(-1)"></span> -->
<span>企业详情</span>
</router-link>
@ -43,24 +36,22 @@
:disabled="true"
/> -->
<div class="pzbox" style="width: 100%">
<span v-if="proxyStatus === ''">
{{
proxyinfo.userName !== "" &&
proxyinfo.userName !== null &&
proxyinfo.userName !== undefined
? proxyinfo.userName
: proxyinfo.tel
}}</span>
<span v-if="proxyStatus === ''"> {{ proxyinfo.userName !== "" && proxyinfo.userName !== null && proxyinfo.userName !== undefined ? proxyinfo.userName : proxyinfo.tel }}</span>
<a-select v-if="proxyStatus === 'proxy'" mode="combobox" auto-focus style="width: calc(100% - 200px)" placeholder="请选择代理" @blur="proxyStatus = ''">
<a-select-option v-for="i in proxyList" :key="i.userName" @click="proxyChange(i)">
{{ i.userName }}
</a-select-option>
</a-select>
<span @click="proxyStatus = 'proxy'" :style="{
<span
@click="proxyStatus = 'proxy'"
:style="{
color: '#ff4400',
marginLeft: '10px',
cursor: 'pointer',
}" v-if="isMaster && proxyStatus !== 'proxy'">修改</span>
}"
v-if="isMaster && proxyStatus !== 'proxy'"
>修改</span
>
</div>
</a-form-model-item>
<a-form-model-item ref="username" label="报名企业" prop="username" :wrapperCol="{ span: 18 }" :labelCol="{ span: 4 }" style="height: 30px; margin-bottom: 18px">
@ -72,11 +63,16 @@
{{ i.aliasName }}
</a-select-option>
</a-select>
<span @click="storeStatus = 'store'" :style="{
<span
@click="storeStatus = 'store'"
:style="{
color: '#ff4400',
marginLeft: '10px',
cursor: 'pointer',
}" v-if="isMaster && storeStatus !== 'store'">修改</span>
}"
v-if="isMaster && storeStatus !== 'store'"
>修改</span
>
</div>
</a-form-model-item>
<a-form-model-item ref="username" label="岗位" prop="username" :wrapperCol="{ span: 18 }" :labelCol="{ span: 4 }" style="height: 30px">
@ -88,11 +84,16 @@
{{ i.aliasName }}
</a-select-option>
</a-select>
<span @click="selected" :style="{
<span
@click="selected"
:style="{
color: '#ff4400',
marginLeft: '10px',
cursor: 'pointer',
}" v-if="isMaster && jobnameStatus !== 'jobname'">修改</span>
}"
v-if="isMaster && jobnameStatus !== 'jobname'"
>修改</span
>
</div>
</a-form-model-item>
<a-form-model-item class="time-input" ref="interviewTime" label="面试时间" prop="interviewTime" :wrapperCol="{ span: 18 }" :labelCol="{ span: 4 }">
@ -127,20 +128,12 @@
:src="form.idCardImageUrl"
alt="avatar"
/> -->
<div v-if="fileList.length == 0" style="
display: flex;
justify-content: center;
align-items: center;
" class="nloding">
<div v-if="fileList.length == 0" style="display: flex; justify-content: center; align-items: center" class="nloding">
<a-icon type="plus" />
<div class="ant-upload-text">上传证件</div>
</div>
</a-upload>
<div v-if="loading" style="
display: flex;
justify-content: center;
align-items: center;
" class="uploading">
<div v-if="loading" style="display: flex; justify-content: center; align-items: center" class="uploading">
<a-icon :type="loading ? 'loading' : 'plus'" style="margin-right: 10px" />
<div class="ant-upload-text">上传中</div>
</div>
@ -193,39 +186,45 @@
<div class="policy" style="min-height: 30px !important">
{{ form.policy }}
</div>
<div class="openContral" v-if="isContainerShow">
<span v-if="isFold" @click="toFold(1)">展开</span><span v-else @click="toFold(2)"></span>
</div>
<div class="openContral" v-if="isContainerShow"><span v-if="isFold" @click="toFold(1)">展开</span><span v-else @click="toFold(2)"></span></div>
</a-form-model-item>
<a-form-model-item ref="headerUploadRef" label="附件" prop="peoplecard" :wrapperCol="{ span: 18 }" :labelCol="{ span: 4 }">
<a-upload :customRequest="customRequestFun2" multiple list-type="picture" :default-file-list="fileList2" class="upload-list-inline" @change="handleChange2" :remove="
<a-upload
:customRequest="customRequestFun2"
multiple
list-type="picture"
:default-file-list="fileList2"
class="upload-list-inline"
@change="handleChange2"
:remove="
(file) => {
removeFile(file, 'header');
}
" @preview="handlePreview" :beforeUpload="beforeUpload" :data="dataObj">
"
@preview="handlePreview"
:beforeUpload="beforeUpload"
:data="dataObj"
>
<a-button> <a-icon type="upload" /> 上传 </a-button>
</a-upload>
</a-form-model-item>
</a-form-model>
<div class="upline">
<div>
<a-button type="primary" @click="onClose" :style="{
<a-button
type="primary"
@click="onClose"
:style="{
color: '#666',
backgroundColor: '#fafafa',
borderColor: '#ddd',
boxShadow: 'none',
textShadow: 'none',
}">
}"
>
取消
</a-button>
<a-button style="
margin-left: 10px;
color: #fff;
background-color: #ff4400;
border-color: #ff4400;
" @click="handleOk" :loading="confirmLoading">
提交
</a-button>
<a-button style="margin-left: 10px; color: #fff; background-color: #ff4400; border-color: #ff4400" @click="handleOk" :loading="confirmLoading"> 提交 </a-button>
</div>
</div>
</div>
@ -240,14 +239,9 @@ import { nationlist } from "../../utils/datalist";
import moment from "moment";
import { isEmptyCheck, getAgeFromBirthday } from "../../utils/commonUtil";
import timepicker from "./components/timepicker.vue";
import {
recordBillApi,
getProxyInfoApi,
getStoreAliasApi,
getStoreJobApi,
getPolicyByJobIdApi,
} from "@/api/job";
import { recordBillApi, getProxyInfoApi, getStoreAliasApi, getStoreJobApi, getPolicyByJobIdApi } from "@/api/job";
import request from "@/utils/request";
import qs from 'qs'
// import axios from "axios";
import $ from "jquery";
// import axiosUpload from "axios";
@ -359,8 +353,7 @@ export default {
// trigger: "blur",
// },
{
pattern:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
pattern: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
message: "请输入正确的手机号",
trigger: "blur",
},
@ -409,7 +402,7 @@ export default {
}
// this.userinfo = JSON.parse(userinfo);
this.proxyinfo = JSON.parse(sessionStorage.getItem("LOGIN_DATA"));
this.proxyinfo = JSON.parse(localStorage.getItem("LOGIN_DATA"));
if (this.proxyinfo.roleOfPmd) {
this.isMaster = true;
}
@ -418,7 +411,6 @@ export default {
this.getJob(this.firminfo);
this.getPolicyByJobId(this.firminfo.id);
console.log(this.proxyinfo);
// sessionStorage.setItem("CURRENT_FIRM", JSON.stringify(userinfo));
console.log(this.firminfo);
},
/**
@ -480,14 +472,7 @@ export default {
interviewTime: "", //
idCardImageUrl: "",
};
this.$router.push(
"/detail?" +
"id=" +
this.firminfo.id +
"&" +
"page=" +
this.firminfo.currentPageNum
);
this.$router.push("/detail?" + "id=" + this.firminfo.id + "&" + "page=" + this.firminfo.currentPageNum);
},
handleOk() {
var that = this;
@ -502,12 +487,15 @@ export default {
if (ispass) {
console.log(this.form);
this.form["imgs"] = that.fileListT2.toString();
const { data } = await recordBillApi({
console.log({
...this.form,
storeJobId: this.firminfo.id,
});
console.log(data);
let dataObj = qs.stringify({
...this.form,
storeJobId: this.firminfo.id,
})
const { data } = await recordBillApi(dataObj);
if (data.status === 200) {
console.log(data);
// this.$message.success("");
@ -591,19 +579,10 @@ export default {
//"S": val.getMilliseconds() //
//"q+": Math.floor((val.getMonth() + 3) / 3) //
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(value.getFullYear() + "").substr(4 - RegExp.$1.length)
);
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (value.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1
? o[k]
: ("00" + o[k]).substr(("" + o[k]).length)
);
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return fmt;
@ -616,12 +595,7 @@ export default {
var mydate = new Date();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
this.form.interviewTime =
mydate.toTimeString() >= "16:00"
? this.formatDateYMD(tomorrow.toLocaleDateString()) + " " + "09:00"
: this.formatDateYMD(mydate.toLocaleDateString()) +
" " +
`${mydate.getHours() + 1}:00`;
this.form.interviewTime = mydate.toTimeString() >= "16:00" ? this.formatDateYMD(tomorrow.toLocaleDateString()) + " " + "09:00" : this.formatDateYMD(mydate.toLocaleDateString()) + " " + `${mydate.getHours() + 1}:00`;
}
console.log(this.form.interviewTime);
},
@ -633,12 +607,7 @@ export default {
var mydate = new Date();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
this.form.receptionTime =
mydate.toTimeString() >= "16:00"
? this.formatDateYMD(tomorrow.toLocaleDateString()) + " " + "09:00"
: this.formatDateYMD(mydate.toLocaleDateString()) +
" " +
`${mydate.getHours() + 1}:00`;
this.form.receptionTime = mydate.toTimeString() >= "16:00" ? this.formatDateYMD(tomorrow.toLocaleDateString()) + " " + "09:00" : this.formatDateYMD(mydate.toLocaleDateString()) + " " + `${mydate.getHours() + 1}:00`;
}
console.log(this.form.receptionTime);
},
@ -697,8 +666,7 @@ export default {
that.dataObj.policy = response.data.policy;
that.dataObj.signature = response.data.signature;
that.dataObj.ossaccessKeyId = response.data.accessid;
that.dataObj.key =
response.data.dir + that.getUUID() + "_${filename}";
that.dataObj.key = response.data.dir + that.getUUID() + "_${filename}";
that.dataObj.dir = response.data.dir;
that.dataObj.host = response.data.host;
console.log("响应的数据222。。。", that.dataObj);
@ -712,9 +680,7 @@ export default {
},
getUUID() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
return (
c === "x" ? (Math.random() * 16) | 0 : "r&0x3" | "0x8"
).toString(16);
return (c === "x" ? (Math.random() * 16) | 0 : "r&0x3" | "0x8").toString(16);
});
},
async customRequestFun(file) {
@ -749,8 +715,7 @@ export default {
// headers: {'Content-Type': 'application/x-www-form-urlencoded'}
headers: {
"Content-Type":
"multipart/form-data;boundary = " + new Date().getTime(),
"Content-Type": "multipart/form-data;boundary = " + new Date().getTime(),
},
})
.then(({ data }) => {
@ -794,15 +759,9 @@ export default {
processData: false,
success: function (data) {
file.onSuccess();
console.log(document.querySelector(".ant-upload-list-item-info"));
_self.uploadFileFlag = true;
console.log(data);
var img =
_self.dataObj.host +
"/" +
_self.dataObj.key.replace("${filename}", file.file.name);
var img = _self.dataObj.host + "/" + _self.dataObj.key.replace("${filename}", file.file.name);
_self.form.idCardImageUrl = img;
console.log(_self.form.idCardImageUrl);
},
@ -836,9 +795,7 @@ export default {
// } catch (err) {
// console.log(err);
// }
file.onProgress();
$.ajax({
type: "post",
url: "http://matripe-cms.oss-cn-beijing.aliyuncs.com",
@ -847,14 +804,8 @@ export default {
processData: false,
success: function (data) {
file.onSuccess();
console.log(document.querySelector(".ant-upload-list-item-info"));
console.log(data);
var img =
_self.dataObj.host +
"/" +
_self.dataObj.key.replace("${filename}", file.file.name);
var img = _self.dataObj.host + "/" + _self.dataObj.key.replace("${filename}", file.file.name);
that.fileListT2.push(img);
},
fail: function (err) {

@ -5,28 +5,15 @@
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-yishoudanlogo"></use>
</svg> -->
<img
src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png"
style="width: 80px; text-align: center"
alt=""
/>
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" style="width: 80px; text-align: center" alt="" />
</div>
<ul class="loginchange centerall">
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">
用户名密码登录
</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">
手机验证码登录
</li>
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">用户名密码登录</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">手机验证码登录</li>
</ul>
<div class="formbox">
<template v-if="loginway === 1">
<a-form
id="components-form-demo-normal-login"
:form="form"
class="login-form"
@submit="userhandleSubmit"
>
<a-form id="components-form-demo-normal-login" :form="form" class="login-form" @submit="userhandleSubmit">
<a-form-item style="text-align: left">
<a-input
v-decorator="[
@ -48,11 +35,7 @@
:maxLength="11"
placeholder="请输入用户名"
>
<i
slot="prefix"
class="iconfont icon-yonghuming"
style="font-size: 24px"
/>
<i slot="prefix" class="iconfont icon-yonghuming" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
@ -78,25 +61,13 @@
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i
class="iconfont icon-weixuanzhong"
v-else
style="color: #999"
></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label></span
>
<router-link to="updatepsw" class="login-form-forgot" href=""
>忘记密码</router-link
>
<router-link to="updatepsw" class="login-form-forgot" href="">忘记密码</router-link>
</div>
<a-form-item>
<a-button
type="primary"
html-type="submit"
class="login-form-button"
>
登录
</a-button>
<a-button type="primary" html-type="submit" class="login-form-button"> 登录 </a-button>
</a-form-item>
</a-form>
<!-- <div class="register">
@ -104,12 +75,7 @@
</div> -->
</template>
<template v-if="loginway === 2">
<a-form
id="components-form-demo-normal-login"
:form="form1"
class="login-form"
@submit="phonehandleSubmit"
>
<a-form id="components-form-demo-normal-login" :form="form1" class="login-form" @submit="phonehandleSubmit">
<a-form-item style="text-align: left">
<a-input
v-decorator="[
@ -129,11 +95,7 @@
:maxLength="11"
placeholder="请输入手机号"
>
<i
slot="prefix"
class="icon-shouji iconfont"
style="font-size: 24px"
/>
<i slot="prefix" class="icon-shouji iconfont" style="font-size: 24px" />
</a-input>
</a-form-item>
<a-form-item style="text-align: left">
@ -154,38 +116,19 @@
placeholder="请输入验证码"
>
<i slot="prefix" class="icon-duanxinyanzheng iconfont" />
<span class="getrulecode" slot="suffix"
><span
@click="getPhoneCode"
data-mark="getcode"
v-if="timedata.isfinish"
>获取验证码</span
><timmer :timedata="timedata" v-if="!timedata.isfinish"
/></span>
<span class="getrulecode" slot="suffix"><span @click="getPhoneCode" data-mark="getcode" v-if="timedata.isfinish"></span><timmer :timedata="timedata" v-if="!timedata.isfinish" /></span>
</a-input>
</a-form-item>
<div class="autologin">
<span @click="isauto = !isauto" style="opacity: 0">
<i class="iconfont icon-xuanzhong" v-if="isauto"></i>
<i
class="iconfont icon-weixuanzhong"
v-else
style="color: #999"
></i>
<i class="iconfont icon-weixuanzhong" v-else style="color: #999"></i>
<label for="register">下次自动登录</label>
</span>
<router-link to="/updatepsw" class="login-form-forgot" href=""
>忘记密码</router-link
>
<router-link to="/updatepsw" class="login-form-forgot" href="">忘记密码</router-link>
</div>
<a-form-item>
<a-button
type="primary"
html-type="submit"
class="login-form-button"
>
登录
</a-button>
<a-button type="primary" html-type="submit" class="login-form-button"> 登录 </a-button>
</a-form-item>
</a-form>
<!-- <div class="register">
@ -261,9 +204,9 @@ export default {
this.$message.warning(data.msg);
return;
}
sessionStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
Cookies.set("LOGIN_DATA", JSON.stringify(data.data));
localStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
this.$router.push("/list");
// console.log(Cookies.get("LOGIN_DATA"));
this.reload();
// this.$router.push("/list");
} catch (err) {
@ -288,8 +231,7 @@ export default {
this.$message.warning(data.msg);
return;
}
sessionStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
Cookies.set("LOGIN_DATA", JSON.stringify(data.data));
localStorage.setItem("LOGIN_DATA", JSON.stringify(data.data));
this.$router.push("/list");
this.reload();
} catch (err) {

@ -8,32 +8,21 @@
<div class="middleslogan" :style="{ opacity: isshow ? '1' : '0' }">
<!-- </i> -->
<i class="iconfont" style="margin-bottom: 0">
<img
src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/zzlogo.png"
style="width: 100px !important; height: 50px; margin-bottom: 30px"
alt=""
/>
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/zzlogo.png" style="width: 100px !important; height: 50px; margin-bottom: 30px" alt="" />
</i>
<i class="iconfont icon-yigezhuanmenfuwudailidepingtai"></i>
<!-- <p style="font-size:90px;color:white">一个专门服务代理的平台</p> -->
<div v-if="isLogin">
<router-link to="/list" style="display: inline-block; width: 100%"
>查看职位</router-link
>
<router-link to="/list" style="display: inline-block; width: 100%">查看职位</router-link>
</div>
<div v-else>
<router-link to="/list" style="display: inline-block; width: 100%"
>登录</router-link
>
<router-link to="/list" style="display: inline-block; width: 100%">登录</router-link>
</div>
</div>
<div
id="toAboutBill"
style="height: 84px; width: 1200px; position: absolute; bottom: 0"
></div>
<div id="toAboutBill" style="height: 84px; width: 1200px; position: absolute; bottom: 0;display:none"></div>
</div>
<div class="navigationBar" ref="navigationBar" id="navigationBar">
<div class="navigationBar" ref="navigationBar" id="navigationBar" style="display:none">
<!-- <ul>
<li @click="toTargetLocation('aboutBill')"></li>
<li @click="toTargetLocation('cooperativeBrand')"></li>
@ -48,23 +37,17 @@
</a-anchor>
</div>
<div class="aboutBill" id="aboutBill">
<div class="aboutBill" id="aboutBill" style="display:none">
<div class="w">
<div class="title">关于稻田</div>
<div class="content">
<p>
伯才稻田隶属郑州伯才科技有限公司是一个专门服务同业合作伙伴的综合平台一个专门服务代理的平台平台为合作伙伴提供交付全流程的产品和服务是伯才供应链产品矩阵中的旗舰产品平台通过直签联合派遣和战略合作等方式严选上线项目深度介入服务的每一个环节为合作伙伴的顺利交付保驾护航
</p>
<p>
郑州伯才科技有限公司的前身为北京矩阵动力科技有限公司项目于2015年5月在郑州启动并于2016年5月在北京正式注册公司开始商业化运作伯才科技旗下有郑州伯才人力资源服务有限公司江西人海企业管理有限公司等多家企业服务业务公司
</p>
<p>
公司2021年启用全新品牌伯才新品牌新里程品牌升级但初心不变伯才团队以崭新的面貌继续全心全意服务老乡成就伙伴
</p>
<p>伯才稻田隶属郑州伯才科技有限公司是一个专门服务同业合作伙伴的综合平台一个专门服务代理的平台平台为合作伙伴提供交付全流程的产品和服务是伯才供应链产品矩阵中的旗舰产品平台通过直签联合派遣和战略合作等方式严选上线项目深度介入服务的每一个环节为合作伙伴的顺利交付保驾护航</p>
<p>郑州伯才科技有限公司的前身为北京矩阵动力科技有限公司项目于2015年5月在郑州启动并于2016年5月在北京正式注册公司开始商业化运作伯才科技旗下有郑州伯才人力资源服务有限公司江西人海企业管理有限公司等多家企业服务业务公司</p>
<p>公司2021年启用全新品牌伯才新品牌新里程品牌升级但初心不变伯才团队以崭新的面貌继续全心全意服务老乡成就伙伴</p>
</div>
</div>
</div>
<div class="cooperativeBrand" id="cooperativeBrand">
<div class="cooperativeBrand" id="cooperativeBrand" style="display:none">
<div class="w">
<div class="title">合作品牌</div>
<div class="content">
@ -73,19 +56,11 @@
<img :src="`../../../${item}`" alt="" />
</li>
</ul>
<span
style="
float: right;
font-size: 14px;
line-height: 20px;
margin-top: 16px;
"
>* 部分合作品牌展示</span
>
<span style="float: right; font-size: 14px; line-height: 20px; margin-top: 16px">* 部分合作品牌展示</span>
</div>
</div>
</div>
<div class="businessLandscape" id="businessLandscape">
<div class="businessLandscape" id="businessLandscape" style="display:none">
<div class="w">
<div class="title">业务版图</div>
<div class="content">
@ -97,15 +72,12 @@
<p>覆盖华东华南华中华北西南西北6大区域</p>
</div>
<div class="right">
<img
src="http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/map.svg"
alt=""
/>
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/map.svg" alt="" />
</div>
</div>
</div>
</div>
<div class="relationUs" id="relationUs">
<div class="relationUs" id="relationUs" style="display:none">
<div class="w">
<div class="title">联系我们</div>
<div class="content">
@ -116,30 +88,22 @@
</div>
<div class="right">
<span
><img
src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/bcdtgzh.jpg"
style="width: 100px"
alt=""
/>
><img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/bcdtgzh.jpg" style="width: 100px" alt="" />
<p>伯才稻田公众号</p></span
>
<span
><img
src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/bcdtxcx.jpg"
style="width: 100px"
alt=""
/>
><img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/bcdtxcx.jpg" style="width: 100px" alt="" />
<p>伯才稻田小程序</p></span
>
</div>
</div>
</div>
</div>
<div class="banner">
<!-- <div class="banner">
<div class="w">
<i class="iconfont icon-yigezhuanmenfuwudailidepingtai"></i>
</div>
</div>
</div> -->
<footer>
<div class="w">
<!-- <ul>
@ -155,9 +119,7 @@
</ul> -->
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index">豫ICP备2023001993号</a>
</div>
</div>
</footer>
@ -184,11 +146,7 @@ export default {
data() {
return {
isshow: false,
imglist: [
"http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner1.webp",
"http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner2.webp",
"http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner3.webp",
],
imglist: ["http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner1.webp", "http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner2.webp", "http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/newBanner/banner3.webp"],
cooperativeImg: [],
isLogin: false,
};
@ -202,7 +160,7 @@ export default {
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
if (sessionStorage.getItem("LOGIN_DATA") || Cookies.get("LOGIN_DATA")) {
if (localStorage.getItem("LOGIN_DATA")) {
this.isLogin = true;
}
setTimeout(() => {
@ -228,10 +186,7 @@ export default {
files.keys().forEach((key) => {
const names = path.basename(key, ".png"); //
let content = files(key).default || files(key);
if (
names.indexOf("imgList") != -1 &&
names.substr(names.length - 1, 1) == "1"
) {
if (names.indexOf("imgList") != -1 && names.substr(names.length - 1, 1) == "1") {
this.cooperativeImg.push(content);
}
});
@ -407,8 +362,7 @@ export default {
padding-top: 100px;
// padding-bottom: 96px;
height: 740px;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/cooperativeBrandBg.webp")
no-repeat 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/cooperativeBrandBg.webp") no-repeat 100%;
.content {
ul {
li {
@ -464,8 +418,7 @@ export default {
justify-content: center;
padding: unset;
height: 445px;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/relationUsBg.webp")
no-repeat 100% 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/relationUsBg.webp") no-repeat 100% 100%;
// padding-bottom: 126px;
.content {
@ -511,7 +464,11 @@ export default {
// background-color: black;
}
footer {
padding: 20px 30px;
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
padding: 40px 30px;
margin-top: 20px;
.w {
ul {
@ -533,8 +490,9 @@ export default {
div {
text-align: center;
// margin-top: 16px;
color: #4d575e;
font-size: 14px;
// color: #4d575e;
color: #fff;
font-size: 12px;
i {
display: inline-block;
vertical-align: middle;

@ -1,36 +1,11 @@
<template>
<div class="accountsetting-container">
<a-modal
v-model="visible"
title="设置图标"
@cancel="modalcancel"
on-ok="handleOk"
>
<a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk">
<div class="container">
<div class="cropper-content">
<div class="cropper-box">
<div class="cropper">
<vue-cropper
ref="cropper"
:img="option.img"
:outputSize="option.outputSize"
:outputType="option.outputType"
:info="option.info"
:canScale="option.canScale"
:autoCrop="option.autoCrop"
:autoCropWidth="option.autoCropWidth"
:autoCropHeight="option.autoCropHeight"
:fixed="option.fixed"
:fixedNumber="option.fixedNumber"
:canMoveBox="option.canMoveBox"
:height="option.height"
:infoTrue="option.infoTrue"
:maxImgSize="option.maxImgSize"
:enlarge="option.enlarge"
:mode="option.mode"
@realTime="realTime"
>
</vue-cropper>
<vue-cropper ref="cropper" :img="option.img" :outputSize="option.outputSize" :outputType="option.outputType" :info="option.info" :canScale="option.canScale" :autoCrop="option.autoCrop" :autoCropWidth="option.autoCropWidth" :autoCropHeight="option.autoCropHeight" :fixed="option.fixed" :fixedNumber="option.fixedNumber" :canMoveBox="option.canMoveBox" :height="option.height" :infoTrue="option.infoTrue" :maxImgSize="option.maxImgSize" :enlarge="option.enlarge" :mode="option.mode" @realTime="realTime"> </vue-cropper>
</div>
</div>
<div class="previewcontainer">
@ -58,79 +33,46 @@
<div class="userinfobox">
<div class="avatarbox">
<i @click="uploadavatar" style="cursor: pointer">
<span
class="iconfont icon-morentouxiang"
v-if="!userbaseInfo.imgSrc"
></span>
<span class="iconfont icon-morentouxiang" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" alt="" v-else />
<div class="mask"><div>修改头像</div></div></i
>
<input
type="file"
ref="updateicon"
@change="filepick($event)"
style="display: none"
/>
</div>
<div class="username" v-if="userinfo.userName">
Hi,{{ userinfo.userName }}
<input type="file" ref="updateicon" @change="filepick($event)" style="display: none" />
</div>
<div class="username" v-if="userinfo.userName">Hi,{{ userinfo.userName }}</div>
<div class="username" v-else>Hi,{{ userinfo.hidetel }}</div>
</div>
<div class="priceinfo">
<ul style="display: none">
<li
@click="pushto('/accountsetting/myintegral')"
:class="{ tagactive: activelist === 6 }"
>
<li @click="pushto('/accountsetting/myintegral')" :class="{ tagactive: activelist === 6 }">
<span><i class="iconfont icon-jifen"></i>我的积分</span
><span
><span>{{ userpoint >= 0 ? userpoint : "--" }}</span
><i class="iconfont icon-youjiantou"></i
><span>{{ userpoint >= 0 ? userpoint : "--" }}</span><i class="iconfont icon-youjiantou"></i
></span>
</li>
<li
@click="pushto('/accountsetting/mycard')"
:class="{ tagactive: activelist === 7 }"
>
<li @click="pushto('/accountsetting/mycard')" :class="{ tagactive: activelist === 7 }">
<span><i class="iconfont icon-kaquan"></i>我的卡券</span
><span
><span
>{{
cardinfo.recordCount ? cardinfo.recordCount : "0"
}}</span
><i class="iconfont icon-youjiantou"></i
><span>{{ cardinfo.recordCount ? cardinfo.recordCount : "0" }}</span><i class="iconfont icon-youjiantou"></i
></span>
</li>
<li
@click="pushto('/accountsetting/mybalance')"
:class="{ tagactive: activelist === 8 }"
>
<li @click="pushto('/accountsetting/mybalance')" :class="{ tagactive: activelist === 8 }">
<span><i class="iconfont icon-yue"></i>我的余额</span
><span
><span>{{ userbalance >= 0 ? userbalance : "0" }}</span>
<i class="iconfont icon-youjiantou"></i
><span>{{ userbalance >= 0 ? userbalance : "0" }}</span> <i class="iconfont icon-youjiantou"></i
></span>
</li>
</ul>
</div>
<ul>
<li
@click="pushto('/accountsetting/boundtel')"
:class="{ tagactive: activelist === 1 }"
>
<span
><i class="iconfont icon-gerenzhongxin-bangdingshouji"></i
>绑定手机</span
<li @click="pushto('/accountsetting/boundtel')" :class="{ tagactive: activelist === 1 }">
<span><i class="iconfont icon-gerenzhongxin-bangdingshouji"></i>绑定手机</span
><span
><span>{{ userinfo.hidetel }}</span>
<i class="iconfont icon-youjiantou"></i>
</span>
</li>
<li
@click="pushto('/accountsetting/boundwx')"
:class="{ tagactive: activelist === 2 }"
>
<li @click="pushto('/accountsetting/boundwx')" :class="{ tagactive: activelist === 2 }">
<span><i class="iconfont icon-weixin1"></i>绑定微信</span
><span
><span v-if="userinfo.openIdAppDTDL"></span>
@ -151,10 +93,7 @@
</li> -->
</ul>
<ul>
<li
@click="pushto('/accountsetting/loginpsw')"
:class="{ tagactive: activelist === 0 }"
>
<li @click="pushto('/accountsetting/loginpsw')" :class="{ tagactive: activelist === 0 }">
<span><i class="iconfont icon-gerenzhongxin-mima"></i>登录密码</span
><span
><span>已设置</span>
@ -176,12 +115,7 @@
</ul>
</div>
<div class="rightcontent">
<router-view
:userinfo="userinfo"
:userbanklist="userbanklist"
:userpoint="userpoint"
:userbalance="userbalance"
></router-view>
<router-view :userinfo="userinfo" :userbanklist="userbanklist" :userpoint="userpoint" :userbalance="userbalance"></router-view>
</div>
</div>
</div>
@ -222,7 +156,7 @@ export default {
visible: false,
previewStyle3: {},
previews: {},
userbaseInfo: JSON.parse(sessionStorage.getItem("LOGIN_DATA")),
userbaseInfo: JSON.parse(localStorage.getItem("LOGIN_DATA")),
option: {
//
img: "", //
@ -293,10 +227,7 @@ export default {
const beforeId = this.userinfo.IDCard.substr(0, 1);
const afterId = this.userinfo.IDCard.substr(17, 1);
this.userinfo.hideId = beforeId + "****************" + afterId;
const hidename = this.userinfo.realName.substr(
this.userinfo.realName.length - 1,
1
);
const hidename = this.userinfo.realName.substr(this.userinfo.realName.length - 1, 1);
// this.userinfo.hidename = hidename;
let newstr = "";
for (let i = 0; i < this.userinfo.realName.length - 1; i++) {
@ -468,17 +399,16 @@ export default {
// headers: {'Content-Type': 'application/x-www-form-urlencoded'}
headers: {
"Content-Type":
"multipart/form-data;boundary = " + new Date().getTime(),
"Content-Type": "multipart/form-data;boundary = " + new Date().getTime(),
},
})
.then(({ data }) => {
console.log(data);
console.log();
if (data.status === 200) {
let userinfo = JSON.parse(sessionStorage.getItem("LOGIN_DATA"));
userinfo.imgSrc = data.data.url;
sessionStorage.setItem("LOGIN_DATA", JSON.stringify(userinfo));
let userinfo = JSON.parse(localStorage.getItem("LOGIN_DATA"));
// userinfo.imgSrc =;
localStorage.setItem("LOGIN_DATA", JSON.stringify({ ...userinfo, imgSrc: data.data.url }));
that.reload();
}
})

@ -21,9 +21,7 @@
跟在职<span>{{ billNumber.num40 == 0 ? "" : billNumber.num40 }}</span>
</li>
<li @click="pagination.status = 999" :class="{ townsmanactive: pagination.status === 999 }">
已完成<span>{{
billNumber.num999 == 0 ? "" : billNumber.num999
}}</span>
已完成<span>{{ billNumber.num999 == 0 ? "" : billNumber.num999 }}</span>
</li>
<!-- <li
@click="pagination.status = 50"
@ -48,7 +46,8 @@
<div class="contentbody">
<div class="searchbox">
<div class="searchinput">
<a-input placeholder="搜索工单号/职位/姓名/电话/身份证号" allowClear @keyup.enter="onSearch" @input="resetsearch" v-model="pagination.keys"><i slot="prefix" class="iconfont icon-sousuo"></i>
<a-input placeholder="搜索工单号/职位/姓名/电话/身份证号" allowClear @keyup.enter="onSearch" @input="resetsearch" v-model="pagination.keys"
><i slot="prefix" class="iconfont icon-sousuo"></i>
<button slot="suffix" @click="onSearch"></button>
</a-input>
<div>
@ -72,8 +71,7 @@
<li>
<div>状态</div>
<a-select size="small" placeholder="" allowClear @change="resetStatus" :dropdownMatchSelectWidth="false" dropdownClassName="statusclass" style="">
<a-select-option v-for="(i, index) in orderStatus" :key="index" @click="handleChange(i)">
{{ i.name }}</a-select-option>
<a-select-option v-for="(i, index) in orderStatus" :key="index" @click="handleChange(i)"> {{ i.name }}</a-select-option>
</a-select>
</li>
</ul>
@ -98,9 +96,14 @@
<ul class="billInfo" style="">
<li>
<div class="serial">{{ index + 1 }}</div>
<i class="iconfont icon-shenfenzheng" :style="{
<i
class="iconfont icon-shenfenzheng"
:style="{
color: item.idCardImageUrl !== '' ? '#ff4400cc' : '#666',
}" @click.stop="showdiymodal(item)"></i><span>{{ item.userName }}/{{ item.sex }}/{{ item.age }}</span>
}"
@click.stop="showdiymodal(item)"
></i
><span>{{ item.userName }}/{{ item.sex }}/{{ item.age }}</span>
<span>{{ item.tel }}</span>
</li>
<li>
@ -108,12 +111,11 @@
</li>
<li>
<p>{{ item.policy }}</p>
<div v-show="item.isunfold" class="policyControl" @click="changeStatus(item, index)" :ref="'Control' + index">
<span v-show="item.controlUnfold"></span><span v-show="!item.controlUnfold"></span>
</div>
<div v-show="item.isunfold" class="policyControl" @click="changeStatus(item, index)" :ref="'Control' + index"><span v-show="item.controlUnfold">展开</span><span v-show="!item.controlUnfold"></span></div>
</li>
<li>
<span style="color: #ff4400; cursor: pointer" @click="showDetail(item)">{{ item.statusTag }}</span><span v-show="item.statusShowTime">{{ item.statusTimeInfo }}: {{ item.statusShowTime }}</span>
<span style="color: #ff4400; cursor: pointer" @click="showDetail(item)">{{ item.statusTag }}</span
><span v-show="item.statusShowTime">{{ item.statusTimeInfo }}: {{ item.statusShowTime }}</span>
<span v-show="item.status == 40 || item.status == 50"></span>
</li>
</ul>
@ -151,106 +153,103 @@
</div>
</div>
<a-modal class="billDetailModal" v-model="billDetailVisible" width="756px" @cancel="billDetailModalClose" :footer="null">
<div slot='title'>
跟进记录
</div>
<div slot="title">跟进记录</div>
<div id="progressinfo" v-if="Object.keys(currentBillDetail).length != 0">
<template v-for="(group, key) in currentBillDetail">
<div class="titleMain">
<div v-if="spliceStr(key) == '1'">
<img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/shz.svg" alt="">
<img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/shz.svg" alt="" />
报名审核中
</div>
<div v-if="spliceStr(key) == '2'"> <img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/bmcg.svg" alt=""></div>
<div v-if="spliceStr(key) == '3'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/mstg.svg" alt=""></div>
<div v-if="spliceStr(key) == '4'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/rzcg.svg" alt=""></div>
<div v-if="spliceStr(key) == '5'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/ylz.svg" alt=""></div>
<div v-if="spliceStr(key) == '6'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/bmcg.svg" alt=""></div>
<div v-if="spliceStr(key) == '9'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/yylz.svg" alt=""></div>
<div v-if="spliceStr(key) == '11'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt=""></div>
<div v-if="spliceStr(key) == '12'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/yjd.svg" alt=""></div>
<div v-if="spliceStr(key) == '13'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt=""></div>
<div v-if="spliceStr(key) == '14'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt=""></div>
<div v-if="spliceStr(key) == '15'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt=""></div>
<div v-if="spliceStr(key) == '2'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/bmcg.svg" alt="" />报名成</div>
<div v-if="spliceStr(key) == '3'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/mstg.svg" alt="" />待入</div>
<div v-if="spliceStr(key) == '4'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/rzcg.svg" alt="" />在职</div>
<div v-if="spliceStr(key) == '5'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/ylz.svg" alt="" />已离</div>
<div v-if="spliceStr(key) == '6'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/bmcg.svg" alt="" />已完</div>
<div v-if="spliceStr(key) == '9'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/yylz.svg" alt="" />约离</div>
<div v-if="spliceStr(key) == '11'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt="" />报名失</div>
<div v-if="spliceStr(key) == '12'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/yjd.svg" alt="" />已接</div>
<div v-if="spliceStr(key) == '13'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt="" />未接</div>
<div v-if="spliceStr(key) == '14'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt="" />面试未通</div>
<div v-if="spliceStr(key) == '15'"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/imgs/wei.svg" alt="" />未入</div>
</div>
<div v-for="(item, index) in group" class="ui-step-one">
<div class="cb-cricle"></div>
<div class="ui-list-info">
<!-- :style="padding-bottom: item.desp == '' ? '18px' : '24px';" -->
<div class="f12 c6" style="white-space: pre-line;" v-if="item.desp != ''">{{item.desp}}
<!-- <template v-if="item.policy"> -->
<span class="ml12" style="color:#ff4400;cursor: pointer;" @click="showInfo2(item.policy)">
</span>
<!-- </template> -->
<a-modal class="billDetailModal recordInfo" title="报名信息" :visible="zzvisible" @cancel="policyModalCancel" width="716px" :footer='null'>
<a-row class='f16 mb8'>
<div class="f12 c6" style="white-space: pre-line" v-if="item.desp != ''">
{{ item.desp }}
<template v-if="item.policy">
<span class="ml12" style="color: #ff4400; cursor: pointer" @click="showInfo2(item.policy)"> </span>
</template>
<a-modal class="billDetailModal recordInfo" title="报名信息" :visible="zzvisible" @cancel="policyModalCancel" width="716px" :footer="null">
<a-row class="f16 mb8">
<a-col :span="4">
<span class="dib tr">姓名</span>
</a-col>
<a-col :span="18">
<span class="fwb" v-if='currentBillInfo.userName'>{{currentBillInfo.userName}}</span>
<span class="fwb" v-if='currentBillInfo.sex'>/{{currentBillInfo.sex == '1' || currentBillInfo.sex == '男' ? '男' : '女'}}</span>
<span class="fwb" v-if='currentBillInfo.age'>/{{currentBillInfo.age}}</span>
<span class="fwb" v-if='currentBillInfo.nation && currentBillInfo.nation!=""'>/{{currentBillInfo.nation}}</span>
<span class="fwb" v-if="currentBillInfo.userName">{{ currentBillInfo.userName }}</span>
<span class="fwb" v-if="currentBillInfo.sex">/{{ currentBillInfo.sex == "1" || currentBillInfo.sex == "" ? "" : "" }}</span>
<span class="fwb" v-if="currentBillInfo.age">/{{ currentBillInfo.age }}</span>
<span class="fwb" v-if="currentBillInfo.nation && currentBillInfo.nation != '族'">/{{ currentBillInfo.nation }}</span>
</a-col>
</a-row>
<a-row class='f16 mb8'>
<a-row class="f16 mb8">
<a-col :span="4">
<span class="dib tr">电话</span>
</a-col>
<a-col :span="18">
<span>{{currentBillInfo.tel == '' || currentBillInfo.tel == null || currentBillInfo.tel == 'undefined' ? '-' : currentBillInfo.tel}}</span>
<span>{{ currentBillInfo.tel == "" || currentBillInfo.tel == null || currentBillInfo.tel == "undefined" ? "-" : currentBillInfo.tel }}</span>
</a-col>
</a-row>
<a-row class='f16 mb8'>
<a-row class="f16 mb8">
<a-col :span="4">
<span class="dib tr">身份证号</span>
</a-col>
<a-col :span="18">
<span>{{currentBillInfo.idCard == '' || currentBillInfo.idCard == null || currentBillInfo.idCard == 'undefined' ? '-' : currentBillInfo.idCard}}</span>
<span>{{ currentBillInfo.idCard == "" || currentBillInfo.idCard == null || currentBillInfo.idCard == "undefined" ? "-" : currentBillInfo.idCard }}</span>
</a-col>
</a-row>
<a-row class='f16'>
<a-row class="f16">
<a-col :span="4">
<span class="dib tr">家庭住址</span>
</a-col>
<a-col :span="18">
<span>{{currentBillInfo.address == '' || currentBillInfo.address == null || currentBillInfo.address == 'undefined' ? '-' : currentBillInfo.address}}</span>
<span>{{ currentBillInfo.address == "" || currentBillInfo.address == null || currentBillInfo.address == "undefined" ? "-" : currentBillInfo.address }}</span>
</a-col>
</a-row>
<div style="border-top: 1px dashed #eeeeee;margin-top: 24px;margin-bottom: 24px;"></div>
<a-row class='f16 mb8'>
<div style="border-top: 1px dashed #eeeeee; margin-top: 24px; margin-bottom: 24px"></div>
<a-row class="f16 mb8">
<a-col :span="4">
<span class="dib tr">报名岗位</span>
</a-col>
<a-col :span="18">
<span class="fwb">{{currentBillInfo.storeJobName || '-'}}</span>
<span class="fwb">{{ currentBillInfo.storeJobName || "-" }}</span>
</a-col>
</a-row>
<a-row class='f16 mb8'>
<a-row class="f16 mb8">
<a-col :span="4">
<span class="dib tr">政策</span>
</a-col>
<a-col :span="18">
<span style="white-space:pre-wrap">{{currentBillInfo.policy || '-'}}</span>
<span style="white-space: pre-wrap">{{ currentBillInfo.policy || "-" }}</span>
</a-col>
</a-row>
<a-row class='f16 mb8'>
<a-col :span="4">
</a-col>
<a-row class="f16 mb8">
<a-col :span="4"> </a-col>
<a-col :span="18" class="bfbutton">
<a-button style="background-color:#ff4400;color:white;border-radius:0;border:none" @click="handleCancel">
复制文本
</a-button>
<a-button style="background-color: #ff4400; color: white; border-radius: 0; border: none" @click="handleCancel"> </a-button>
</a-col>
</a-row>
</a-modal>
</div>
<div class="f12 c9 mt8">{{item.creator}} <span class="ml8">
<div class="f12 c9 mt8">
{{ item.creator }}
<span class="ml8">
{{ formatDateYMDHM(item.createTime) }}
</span></div>
</span>
</div>
</div>
</div>
</template>
@ -263,17 +262,8 @@
</template>
<script>
import {
userBillApi,
userBillNumberApi,
userBillDetailApi,
} from "../../../../api/userinfo";
import {
getUserApplyOrderStatusById,
isEmptyCheck,
formatDateYMDHM,
formatDateYMD,
} from "../../../../utils/commonUtil";
import { userBillApi, userBillNumberApi, userBillDetailApi } from "../../../../api/userinfo";
import { getUserApplyOrderStatusById, isEmptyCheck, formatDateYMDHM, formatDateYMD } from "../../../../utils/commonUtil";
export default {
//
@ -449,8 +439,7 @@ export default {
console.log(this.billList);
setTimeout(() => {
this.billList.forEach((item, index) => {
let differenceTime =
new Date().getTime() - new Date(item.updateTime).getTime();
let differenceTime = new Date().getTime() - new Date(item.updateTime).getTime();
var D = Math.floor(differenceTime / (24 * 60 * 60 * 1000));
var level1 = differenceTime % (24 * 3600 * 1000);
var H = Math.floor(level1 / (3600 * 1000));
@ -503,27 +492,14 @@ export default {
item.leaveTime = formatDateYMDHM(item.leaveTime);
// item.updateTime = formatDateYMDHMS(item.updateTime);
// item.createTime = formatDateYMDHMS(item.createTime);
item.updateTime = isEmptyCheck(item.updateTime)
? "2022-03-16 14:19"
: formatDateYMDHM(item.updateTime);
item.createTime = isEmptyCheck(item.createTime)
? "2022-03-16 14:19"
: formatDateYMDHM(item.createTime);
item.updateTime = isEmptyCheck(item.updateTime) ? "2022-03-16 14:19" : formatDateYMDHM(item.updateTime);
item.createTime = isEmptyCheck(item.createTime) ? "2022-03-16 14:19" : formatDateYMDHM(item.createTime);
item.index = index + 1;
// console.log(that.$refs["Control" + index][0]);
// setTimeout(() => {
if (
item.status == 10 ||
item.status == 20 ||
item.status == 21 ||
item.status == 25 ||
item.status == 26 ||
item.status == 30 ||
item.status == 35 ||
item.status == 45
) {
if (item.status == 10 || item.status == 20 || item.status == 21 || item.status == 25 || item.status == 26 || item.status == 30 || item.status == 35 || item.status == 45) {
item.statusTimeInfo = "面试时间";
item.statusShowTime = item.interviewTime;
} else if (item.status == 40) {
@ -665,17 +641,16 @@ export default {
}
},
onSearch() {
this.pagination.pageNum = 1;
this.pagination.pageSize = 10;
this.pagination.status = -1;
// console.log();
this.getBill();
this.userBillNumber();
},
changepage(num) {
console.log(Math.ceil(this.pagination.total / this.pagination.pageSize));
if (
(this.pagination.pageNum === 1 && num === -1) ||
(this.pagination.pageNum ===
Math.ceil(this.pagination.total / this.pagination.pageSize) &&
num === 1)
) {
if ((this.pagination.pageNum === 1 && num === -1) || (this.pagination.pageNum === Math.ceil(this.pagination.total / this.pagination.pageSize) && num === 1)) {
if (num === -1) {
this.$message.warning("已经到第一页了");
} else {
@ -825,26 +800,25 @@ export default {
截出跟进记录字符串
*/
spliceStr(str) {
console.log(str.split("_")[1]);
return str.split("_")[1];
},
/*
显示跟进记录详情弹出框
*/
showInfo2(record) {
// this.currentBillInfo = JSON.parse(record);
this.currentBillInfo = {
userName: "李俊中",
nation: "汉族",
age: "52",
sex: 1,
tel: 1311111111,
idCard: 412825197101040513,
address: "河南省上蔡县芦岗乡看花楼村王会庄9988",
storeJobName: "郑州西区格力绿色再生资源",
policy:
"●年龄性别:男 35-55女 35-46 ●薪资明细计件工资多劳多得。不同岗位计件工资约200-280元/天出勤七天内男170元/天在职不满30天的保底工资按60%或按实际操作量计算工资)。入职会安全培训,上岗实习等,以上时间无工资 ●吃饭住宿:吃饭自理;住宿免费,水电均摊 ●代理利润出勤15天利润400元具体政策以面试当天为准",
};
this.currentBillInfo = JSON.parse(record);
// this.currentBillInfo = {
// userName: "",
// nation: "",
// age: "52",
// sex: 1,
// tel: 1311111111,
// idCard: 412825197101040513,
// address: "9988",
// storeJobName: "西绿",
// policy:
// " 35-55 35-46 200-280/170/3060% 宿;宿 15400",
// };
this.zzvisible = true;
},
/*
@ -853,39 +827,7 @@ export default {
handleCancel() {
var that = this;
var text =
"姓名:" +
that.currentBillInfo.userName +
"/" +
(that.currentBillInfo.sex == 1 || that.currentBillInfo.sex == "男"
? "男"
: "女") +
"/" +
that.currentBillInfo.age +
"岁" +
(that.currentBillInfo.nation == "族"
? ""
: "/" + that.currentBillInfo.nation) +
"\n电话" +
(that.currentBillInfo.tel == "" ||
that.currentBillInfo.tel == undefined ||
that.currentBillInfo.tel == null
? "-"
: that.currentBillInfo.tel) +
"\n身份证号" +
(that.currentBillInfo.idCard == ""
? "-"
: that.currentBillInfo.idCard) +
"\n家庭地址" +
(that.currentBillInfo.address == "" ||
that.currentBillInfo.address == undefined ||
that.currentBillInfo.address == null
? "-"
: that.currentBillInfo.address) +
"\n报名岗位" +
that.currentBillInfo.storeJobName +
"\n政策" +
that.currentBillInfo.policy;
var text = "姓名:" + that.currentBillInfo.userName + "/" + (that.currentBillInfo.sex == 1 || that.currentBillInfo.sex == "男" ? "男" : "女") + "/" + that.currentBillInfo.age + "岁" + (that.currentBillInfo.nation == "族" ? "" : "/" + that.currentBillInfo.nation) + "\n电话" + (that.currentBillInfo.tel == "" || that.currentBillInfo.tel == undefined || that.currentBillInfo.tel == null ? "-" : that.currentBillInfo.tel) + "\n身份证号" + (that.currentBillInfo.idCard == "" ? "-" : that.currentBillInfo.idCard) + "\n家庭地址" + (that.currentBillInfo.address == "" || that.currentBillInfo.address == undefined || that.currentBillInfo.address == null ? "-" : that.currentBillInfo.address) + "\n报名岗位" + that.currentBillInfo.storeJobName + "\n政策" + that.currentBillInfo.policy;
this.zzvisible = false;
this.$copyText(text).then(
@ -1345,9 +1287,6 @@ export default {
.billInfo {
display: flex;
justify-content: space-between;
.policyControl {
white-space: pre-line;
}
li {
display: flex;
flex-direction: column;
@ -1435,8 +1374,6 @@ export default {
}
// background-color: green;
}
li.unfold {
}
li:nth-child(4) {
display: flex;
flex-direction: column;

File diff suppressed because it is too large Load Diff

@ -25,12 +25,7 @@ router.beforeEach(async (to, from, next) => {
"/updatepsw",
// "/register",
];
if (Cookies.get("LOGIN_DATA")) {
console.log(!sessionStorage.getItem("LOGIN_DATA"));
if (!sessionStorage.getItem("LOGIN_DATA")) {
console.log("notset");
sessionStorage.setItem("LOGIN_DATA", Cookies.get("LOGIN_DATA"));
}
if (localStorage.getItem("LOGIN_DATA")) {
var isLogin = true;
}
// const isLogin = localStorage.getItem("LOGIN_DATA") !== null ? true : false;

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/c/font_3135652_me9fsfpihrt.css";
@import "http://at.alicdn.com/t/c/font_3135652_jrvheq4b5p.css";
// 初始化页面样式
body,
h1,
@ -587,3 +587,14 @@ p.bottombox {
border-color: #ddd !important;
box-shadow: none !important;
}
.ant-btn-primary:hover {
border-color: #ff4400;
background-color: #ff5416;
color: #fff;
}
.ant-input:hover {
border-color: #ff4400;
}
.ant-select-selection:active {
box-shadow: none;
}

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/c/font_3135652_me9fsfpihrt.css";
@import "http://at.alicdn.com/t/c/font_3135652_jrvheq4b5p.css";
body,
h1,
h2,
@ -526,3 +526,14 @@ p.bottombox::after {
border-color: #ddd !important;
box-shadow: none !important;
}
.ant-btn-primary:hover {
border-color: #ff4400;
background-color: #ff5416;
color: #fff;
}
.ant-input:hover {
border-color: #ff4400;
}
.ant-select-selection:active {
box-shadow: none;
}

@ -1,6 +1,8 @@
import axios from "axios";
import router from "@/router";
import Cookies from "js-cookie";
import qs from "qs";
// import Vue from "vue";
// const baseURL = "http://1shoudan.com"; // 正式环境线上
const baseURL = "http://idaotian.com"; // 正式环境线上
@ -13,33 +15,58 @@ const baseURL = "http://idaotian.com"; // 正式环境线上
// const data1 = require.context("./", false, /\.js$/); // 测试用
// console.log(data1.keys());
axios.defaults.withCredentials = true; //添加这行代码
// axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"
// console.log(axios);
const service = axios.create({
baseURL: "/api_prod", // url = base url + request url 测试
// baseURL: baseURL, // baseURL: "/api", // url = base url + request url 正式
// baseURL: "/api_prod", // url = base url + request url 测试
baseURL: baseURL, // baseURL: "/api", // url = base url + request url 正式
withCredentials: true, // send cookies when cross-domain requests
timeout: 60000, // request timeout
crossDomain: true,
});
service.interceptors.request.use(
(req) => {
console.log(req);
// if (req.method == "post" && req.headers["Content-type"]) {
// if (req.headers["Content-type"].indexOf("multipart/form-data") == -1 && req.headers["Content-type"].indexOf("application/x-www-form-urlencoded") == -1) {
// let dataObj = qs.stringify(req.data);
// console.log(dataObj);
// req.data = dataObj;
// }
// }
if (localStorage.getItem("LOGIN_DATA")) {
req.headers.Authorization = "Bearer " + JSON.parse(localStorage.getItem("LOGIN_DATA")).token;
}
// application/json
// if(req.headers.common.Accept.indexOf('application/json') > 0 || req.headers.Accept.indexOf('application/json') > 0){
// console.log('is application/json');
// }
return req;
},
(err) => {
console.log(err);
}
);
service.interceptors.response.use(
(response) => {
const { msg, status } = response.data;
return response;
// console.log(status) ;
// if (status == 9999) {
// sessionStorage.removeItem("LOGIN_DATA");
// Cookies.remove("LOGIN_DATA");
// router.push("/login");
// // 跳转到登录页面
// // this.$message.warning(msg);
// return Promise.reject(new Error("token过期"));
// }
// if (response.status === 200) {
console.log(response);
let { msg, status } = response.data;
// return response;
// } else {
// // Message.error(message)
// return Promise.reject(new Error(msg));
// }
console.log(status);
if (status == 9999) {
localStorage.removeItem("LOGIN_DATA");
router.push("/login");
// 跳转到登录页面
// this.$message.warning(msg);
return Promise.reject(new Error("token过期"));
}
if (response.status === 200) {
return response;
} else {
// Message.error(message)
return Promise.reject(new Error(msg));
}
},
(error) => {
console.log(error);

@ -191,12 +191,11 @@
</div>
</div> -->
<!-- banner广告栏 -->
<div class="banner" v-if="isbannershow">
<!-- <div class="banner" v-if="isbannershow">
<div class="w">
<i class="iconfont icon-yigezhuanmenfuwudailidepingtai"></i>
<!-- <img src="../assets/phone.png" alt="" /> -->
</div>
</div>
</div> -->
<!-- footer部分 -->
<footer v-if="isfootershow">
<div class="w">
@ -214,7 +213,7 @@
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>豫ICP备2023001993号</a
>
</div>
</div>
@ -354,10 +353,9 @@ export default {
*/
created() {
console.log();
if (sessionStorage.getItem("LOGIN_DATA") || Cookies.get("LOGIN_DATA")) {
if (localStorage.getItem("LOGIN_DATA")) {
this.isLogin = true;
}
console.log(JSON.parse(sessionStorage.getItem("LOGIN_DATA")));
this.getJobList();
this.isLaoxiangshow();
this.getRecommendJob();
@ -368,11 +366,10 @@ export default {
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
console.log(sessionStorage.getItem("LOGIN_DATA"));
this.loginValue =
sessionStorage.getItem("LOGIN_DATA") !== null
? JSON.parse(sessionStorage.getItem("LOGIN_DATA"))
localStorage.getItem("LOGIN_DATA") !== null
? JSON.parse(localStorage.getItem("LOGIN_DATA"))
: { tel: "" };
// console.log(this.loginValue);
// console.log(document.querySelector(".ant-pagination-options-quick-jumper"));
@ -533,8 +530,7 @@ export default {
const data = await logoutApi();
console.log(data);
if (data.status === 200) {
sessionStorage.removeItem("LOGIN_DATA");
Cookies.remove("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA");
this.reload();
this.$router.push("/main");
} else {

@ -169,7 +169,7 @@
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>豫ICP备2023001993号</a
>
</div>
</div>
@ -280,12 +280,11 @@ export default {
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
console.log(sessionStorage.getItem("LOGIN_DATA"));
this.isLogin = sessionStorage.getItem("LOGIN_DATA") !== null ? true : false;
this.isLogin = localStorage.getItem("LOGIN_DATA") !== null ? true : false;
this.loginValue =
sessionStorage.getItem("LOGIN_DATA") !== null
? JSON.parse(sessionStorage.getItem("LOGIN_DATA"))
localStorage.getItem("LOGIN_DATA") !== null
? JSON.parse(localStorage.getItem("LOGIN_DATA"))
: { tel: "" };
// console.log(document.querySelector(".ant-pagination-options-quick-jumper"));
},
@ -315,9 +314,7 @@ export default {
const data = await logoutApi();
console.log(data);
if (data.status === 200) {
sessionStorage.removeItem("LOGIN_DATA");
Cookies.remove("LOGIN_DATA");
Cookies.remove("LOGIN_DATA");
localStorage.removeItem("LOGIN_DATA");
this.reload();
this.$router.push("/main");
} else {

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
let current = 4;
let mounthList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
let newlist = mounthList.slice(mounthList.indexOf(current)).concat(mounthList.slice(0,current - 1));
console.log(newlist);
</script>
</body>
</html>

@ -8731,6 +8731,11 @@ thread-loader@^2.1.3:
loader-utils "^1.1.0"
neo-async "^2.6.0"
throttle-debounce@^2.0.1:
version "2.3.0"
resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2"
integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==
through2@^2.0.0:
version "2.0.5"
resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
@ -9124,6 +9129,14 @@ uuid@^8.3.2:
resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v-viewer@^1.6.4:
version "1.6.4"
resolved "https://registry.npmmirror.com/v-viewer/-/v-viewer-1.6.4.tgz#39e36b534baab34076fb816704c6a734de0dc72f"
integrity sha512-LVkiUHpmsbsZXebeNXnu8krRCi5i2n07FeLFxoIVGhw8lVvTBO0ffpbDC6mLEuacCjrIh09HjIqpciwUtWE8lQ==
dependencies:
throttle-debounce "^2.0.1"
viewerjs "^1.5.0"
v8-compile-cache@^2.0.3:
version "2.3.0"
resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
@ -9156,6 +9169,11 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
viewerjs@^1.5.0:
version "1.11.3"
resolved "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.3.tgz#6569c519590776190f86b531bf43a5888a7a472f"
integrity sha512-efG3U61Umuj/1x6JAtdvnY9m407C/RkrkFilsMcLEWKDivpjNU3/FeL+feCY1Vkur9aQeBJ+z6K4CCPP7hv6vA==
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"

Loading…
Cancel
Save