cyl/master-apply
wangxia 3 months ago
parent 945b6ebcc7
commit 3f75d553c6

@ -30,18 +30,6 @@ let jobInfo = {
new_job_list: '/yishoudan/custom/job/listV2', // 新职位列表
dao_job_list: '/yishoudan/store/job/platform/list', // 稻田职位列表
get_userViewJobList: "/assistant/custom/job/v2/userViewJobList",// 获取用户浏览的职位列表
job_myJobList: "/yishoudan/custom/job/list", // 我的职位列表
status_num_list: "/yishoudan/order/helper/countStatusMap", // 各种状态数量
task_list: "/yishoudan/order/helper/list", // 当前稍后列表
yi_my_apply_list: '/yishoudan/common/order/list', // 一才我的报名列表
person_dataValue: "/statistics/home",// 获取各种数据参数
merchantManagement_userData: `/yishoudan/agency/teamsman/overview`, // 获取用户数据
app_getPosterList:"/poster/getList",// 获取海报列表
job_getUserListOfSameTeam: "/yishoudan/agency/group/user/getUserListOfSameTeam",// 新增简历-跟进人
add_resume: "/yishoudan/user/applyClue/addRecord",// 简历报名
}
export default jobInfo;

@ -554,158 +554,6 @@
}
}
]
},
{
"root": "root/merchantManagement",
"pages": [
{
"path": "teamManage",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "团队管理"
}
},
{
"path": "addOrUpdataMember",
"style": {
"navigationBarTitleText": " ",
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed"
}
},
{
"path": "memberApplyQRCode",
"style": {
"navigationBarTitleText": "添加成员",
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed"
}
},
{
"path": "applyManage",
"style": {
"navigationBarTitleText": "新的成员",
"backgroundColor": "#ffffff",
"backgroundColorTop": "#ffffff",
"backgroundColorBottom": "#ffffff"
}
},
{
"path": "memberApplyAdd",
"style": {
"navigationBarTitleText": "加入团队",
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed"
}
},
{
"path": "todayData",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "团队数据"
}
},
{
"path": "watchedMe",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "谁看过我"
}
},
{
"path": "merchantManagement",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "工作台"
// "navigationStyle": "custom"
}
},
{
"path": "platformJobList",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "平台职位"
// "navigationStyle": "custom"
}
},
{
"path": "relationUs",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "联系我们"
// "navigationStyle": "custom"
}
},
{
"path": "dynamicNotice",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "动态公告"
// "navigationStyle": "custom"
}
},
{
"path": "setting",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "职位配置"
// "navigationStyle": "custom"
}
},
{
"path": "posterShare",
"style": {
"navigationBarTitleText": "海报分享"
}
},
{
"path": "jobForm",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "发布职位"
}
},
{
"path": "message",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "加入团队"
}
},
{
"path": "child/jobLabels",
"style": {
"backgroundColor": "#ededed",
"backgroundColorTop": "#ededed",
"backgroundColorBottom": "#ededed",
"navigationBarTitleText": "职位标签",
"navigationStyle": "custom"
}
}
]
}
],
"globalStyle": {

@ -92,7 +92,7 @@
:list="[
{
icon: 'icon-tuandui1',
label: '团队管理',
label: '团队管理',
result: agencyInfo.fullName || agencyInfo.agencyName || '设置企业信息',
path: '/root/person/teamManage',
pRow: 12,
@ -120,26 +120,19 @@
@clickItem="goPage('/root/person/set')"
/>
</view>
<view class="g_bg_f g_h_56 g_ml_12 g_mr_12 g_mt_24 g_radius_8 g_flex_row_center flex_center g_position_rela" @click="goPage('/root/merchantManagement/merchantManagement')" hover-class="thover" v-if="true">
<view class="iconfont icon-shangjiahoutai g_mr_6 g_mt_2"></view>
<view class="g_fw_600 g_fs_17">商家管理后台</view>
<!-- <view v-if="hasNewResume > 0" class="g_ml_4" style="font-size: 12px; color: #ffffff; background-color: #fa3534; display: inline-flex; justify-content: center; align-items: center; line-height: 24rpx; padding: 4rpx 8rpx; border-radius: 100rpx; z-index: 9">
{{ hasNewResume }}
</view> -->
</view>
<view class="g_h_100"></view>
<!-- #ifdef APP-PLUS -->
<view class="g_mt_32 g_mb_12 g_text_c g_c_9 g_fs_12">
<!-- <view class="g_flex_row_center g_mb_4 g_mt_4">
<view class="g_mt_32 g_mb_12 g_text_c g_c_9 g_fs_12">
<!-- <view class="g_flex_row_center g_mb_4 g_mt_4">
<view class="g_mr_8" @click="goPage('/root/other/showImg?type=rlzy')"> </view>
</view> -->
<view class="g_flex_row_center">
<!-- <view class="g_mr_8" @click="goPage('/root/other/showImg?type=yyzz')"> </view> -->
<view class="">豫ICP备2025146744号</view>
</view>
</view>
<!-- #endif -->
<view class="g_flex_row_center">
<!-- <view class="g_mr_8" @click="goPage('/root/other/showImg?type=yyzz')"> </view> -->
<view class="">豫ICP备2025146744号</view>
</view>
</view>
<!-- #endif -->
<!-- <div class="g_mt_40" v-if="userInfo.admin">
<rh-button primaryColor='#00b666' btnText="添加成员" icon="icon-tianjia g_fsi_16 g_mr_8" @clickBtn="addMemberShow = true"></rh-button>
</div> -->
@ -531,7 +524,7 @@ export default {
} else {
that.isHaveInvite = false;
}
},
}
);
},
getWaitNum() {
@ -548,7 +541,7 @@ export default {
(res) => {
that.waitNum_ups = res.total;
that.getDetail();
},
}
);
},
getDetail() {
@ -596,7 +589,7 @@ export default {
},
];
}
},
}
);
}
},
@ -799,7 +792,7 @@ export default {
},
];
}
},
}
);
},
getCompanyInfo() {
@ -813,7 +806,7 @@ export default {
(res) => {
// console.log("item.", res);
that.userNum = res;
},
}
);
},
getNum() {

@ -127,7 +127,7 @@ export default {
return {};
},
},
//
//
shareAgencyId: {
type: String,
default: "",

@ -1,500 +0,0 @@
<template>
<view class="p-root-detail-fellow g_w_all g_h_all g_bg_f_5 g_kuaishou">
<view>
<view class="g_h_10"></view>
<rh-form-slot
:list="[
{
icon: '',
label: '姓名',
result: '',
value: info.name,
path: '',
tip: 'slot-upID',
img: info.idCardImageUrl,
placeholder: '手动输入或拍照自动识别 → ',
type: 'slot',
pColumn: 8,
require: true,
},
{
icon: '',
label: '身份证号',
result: '',
value: info.idCard,
path: '',
tip: 'slot-code-idcard',
placeholder: '请输入身份证号',
type: 'slot',
pColumn: 8,
require: false,
},
{
icon: '',
label: '性别',
result: '',
value: info.sex,
path: '',
tip: 'slot-sex',
type: 'slot',
pColumn: 12,
require: false,
customRequire: true,
},
{
icon: '',
label: '年龄',
result: '',
value: info.age,
path: '',
tip: 'slot-age',
placeholder: '请输入年龄',
type: 'slot',
pColumn: 8,
require: false,
},
{
icon: '',
label: '民族',
result: '',
value: info.nation,
nationIndex: nationIndex,
path: '',
tip: 'slot-nation',
pColumn: 12,
require: false,
type: 'slot',
customRequire: true,
},
{
icon: '',
label: '家庭住址',
result: '',
value: info.address,
placeholder: '请输入家庭住址',
path: '',
tip: 'slot-address',
type: 'slot',
pColumn: 8,
},
{
icon: '',
label: '上传附件',
result: '',
path: '',
type: 'slot',
tip: 'slot-update-file',
pColumn: 16,
},
]"
@changeName="handleClickName"
@changeSex="handleClickSex"
@changeAge="handleClickAge"
@changeNation="handleClickNation"
@changeIDcard="handleClickIDcard"
@changeAddress="handleClickAddress"
@updateFile="updateFile"
@updateIDInfo="handlerIDInfo"
>
<template v-slot:after>
<view class="g_flex_row_start g_p_10" v-if="imgList.length > 0">
<view v-for="(item, index) in imgList" class="g_position_rela g_mr_10 g_mt_4" :key="index">
<i class="iconfont icon-guanbi img-close" @click="delImg(index, item.id)"></i>
<image :src="item.url" class="g_w_56 g_h_56 g_radius_8" />
</view>
</view>
</template>
</rh-form-slot>
<view class="g_h_10"></view>
<rh-form-slot
:list="[
{
icon: '',
label: '工友电话',
result: '',
path: '',
value: info.tel,
tip: 'slot-mobile',
placeholder: '请输入联系电话',
type: 'slot',
pColumn: 8,
require: false,
},
]"
@changeMobile="handleClickMobile"
></rh-form-slot>
<view class="g_flex_column_between g_flex_1 g_pb_24">
<view class="g_fs_12 g_c_9 g_flex_row_center g_mb_32" style="align-items: center; margin-top: 16px">
<radio-group class="dib">
<radio :checked="switchChecked" @click="switchChecked = !switchChecked" value="0" class="dib biggerSize" color="#00b666" style="transform: scale(0.7)" />
</radio-group>
我已阅读并同意
<navigator url="/root/person/agreeUser" class="g_c_sub">用户服务协议</navigator>
<navigator url="/root/person/agreePrive" class="g_c_sub">隐私政策</navigator>
</view>
</view>
<rh-fixed>
<slot>
<view class="g_pl_12 g_pr_12">
<!-- <rh-button primaryColor='#00b666' btnText="取消" class="g_mr_16" size="small" type="default" @clickBtn="goReturn"></rh-button> -->
<rh-button primaryColor='#00b666' btnText="确定" class @clickBtn="handleSubmit" size="auto" type="primary"></rh-button>
</view>
</slot>
</rh-fixed>
</view>
</view>
</template>
<script>
// import gPanelFormSlot from "@/components/formSlot.vue";
import { nationlist } from "../../utils/nation.js";
export default {
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
return this.G.shareFun();
},
components: {
// gPanelFormSlot,
},
data() {
return {
switchChecked: false,
cdnBaseImg: this.G.store().cdnBaseImg,
info: {
nation: "汉族",
},
nation: nationlist.map((item, index) => {
return item.name;
}),
nationIndex: 0,
imgList: [],
newAddImg: [],
};
},
props: {
// info: {
// type: Object,
// default: {},
// },
},
onLoad(options) {
let that = this;
console.log("快速报名:", options);
if (options) {
if (options.sex) {
options.sex = Number(options.sex);
} else {
options.sex = 1;
}
if (!options.nation) {
options.nation = "汉族";
}
this.info = options;
// if (this.info.imgs) {
// this.imgList = this.info.imgs.split(",");
// }
}
console.log("获取工友信息:", options);
},
onShow() {
let that = this;
that.getImg();
// that.nation.forEach((item, index) => {
// if (item == that.info.nation) {
// console.log(that.info.nation);
// console.log(index);
// that.nationIndex = index;
// }
// });
// that.speed = 0;
// setTimeout(() => {
// }, 300);
},
created() {
let that = this;
},
methods: {
handleClickName(e) {
this.info.name = this.info.userName = e;
this.changeInfo();
},
handleClickSex(e) {
this.info.sex = e;
this.changeInfo();
},
handleClickAge(e) {
this.info.age = e;
this.changeInfo();
},
handleClickMobile(e) {
this.info.tel = e;
this.changeInfo();
},
handleClickNation(e) {
let that = this;
console.log(e.name);
this.info.nation = e.name;
that.nation.forEach((item, index) => {
if (item == e.name) {
// console.log(that.info.nation)
// console.log(index)
that.nationIndex = index;
}
});
this.changeInfo();
},
changeInfo() {
this.$emit("changeInfo", this.info);
},
/**
* 获取上传的身份信息
*/
handlerIDInfo(res) {
console.log("res", res);
let that = this;
that.info.name = res.info.name;
that.info.sex = res.info.sex ? (res.info.sex == "男" ? 1 : 2) : "";
that.info.age = res.info.age;
that.info.nation = res.info.nationality + "族";
that.info.idCard = res.info.num;
that.info.idCardImageUrl = res.image;
that.info.userName = res.info.name;
that.info.address = res.info.address;
that.nation.forEach((item, index) => {
console.log("item1", item);
console.log('that.info.nation + "族"', that.info.nation + "族");
if (item == that.info.nation) {
console.log("item2", item);
that.nationIndex = index;
}
});
this.changeInfo();
console.log("that.info", that.info);
console.log("that.nationIndex", that.nationIndex);
},
getImg() {
let that = this;
uni.request({
url: that.G.ajaxUrl + `/imgs/list/${that.info.userId}?type=20`,
method: "GET",
header: Object.assign(
{
Authorization: "Bearer " + uni.getStorageSync("apply-token"),
},
that.G.setPublicParams()
),
success: (res) => {
if (res.statusCode === 200) {
console.log(res.data.data.userImgs);
if (that.info.fujian) {
that.imgList = that.info.fujian
.split(",")
.map((item) => {
return {
url: item,
};
})
.concat(res.data.data.userImgs);
} else {
that.imgList = res.data.data.userImgs;
}
console.log(that.imgList);
} else {
console.error("Failed to fetch images:", res);
}
},
fail: (error) => {
console.error("Error fetching images:", error);
},
});
},
//
delImg(ind, id) {
let that = this;
uni.showModal({
title: "提示",
content: "确定要删除该图片?",
success: function (res) {
if (res.confirm) {
that.imgList.splice(
that.imgList.findIndex((item, index) => index == ind),
1
);
uni.request({
url: that.G.ajaxUrl + `/imgs/del/${id}`,
method: "GET",
header: Object.assign(
{
Authorization: "Bearer " + uni.getStorageSync("apply-token"),
},
that.G.setPublicParams()
),
success: (res) => {
if (res.statusCode === 200) {
console.log(res.data.data.userImgs);
// imgList
// that.imgList = res.data.data.userImgs;
} else {
console.error("Failed to fetch images:", res);
}
},
fail: (error) => {
console.error("Error fetching images:", error);
},
});
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
},
//
updateFile(e) {
let that = this;
if (that.imgList.length < 4) {
that.imgList.push({ url: e, id: -999 });
// that.info.imgs = that.imgList;
that.newAddImg.push(e);
that.changeInfo();
uni.hideLoading();
} else {
uni.showToast({
title: "最多只能上传4张",
icon: "none",
});
}
},
handleClickIDcard(e) {
this.info.idCard = e;
if (this.info.idCard && (this.info.idCard.length == 15 || this.info.idCard.length == 18)) {
let info = this.G.getInfoByIDcard(this.info.idCard);
this.info.age = info.age;
this.info.sex = info.sex ? (info.sex == "男" ? 1 : 2) : "";
}
this.changeInfo();
// console.log(this.G.getInfoByIDcard(this.info.idCard));
},
handleClickAddress(e) {
this.info.address = e;
this.changeInfo();
},
goReturn() {
uni.navigateBack();
},
handleSubmit() {
let that = this;
console.log("that.info.imgs", that.info.imgs);
console.log("that.imgList", that.imgList);
if (!that.info.name) {
uni.showToast({
icon: "none",
title: "请输入姓名",
});
return false;
}
if (!that.info.tel && !that.info.idCard) {
uni.showToast({
icon: "none",
title: "请输入手机号或身份证号",
});
return false;
}
if (that.info.tel && !that.G.setReg(that.info.tel, "tel")) {
uni.showToast({
icon: "none",
title: "请输入正确的手机号",
});
return false;
}
if (that.info.idCard && !that.G.isValidIdCard(that.info.idCard)) {
uni.showToast({
icon: "none",
title: "请输入正确的身份证号",
});
return false;
}
console.log(that.info);
if (that.imgList.length > 0) {
that.info.imgs = that.newAddImg.toString();
}
let submitInfo = {
name: that.info.userName,
sex: that.info.sex,
age: that.info.age,
nation: that.info.nation,
tel: that.info.tel,
idCard: that.info.idCard,
address: that.info.address,
idCardImageUrl: that.info.idCardImageUrl ? that.info.idCardImageUrl : "",
userName: that.info.userName,
userId: that.info.userId,
orderId: that.info.id,
userApplyOrderFiles:
that.imgList && that.imgList.length > 0
? that.imgList
.map((item) => {
return item.url;
})
.join(",")
: "",
};
let url = "order_submitFellowNew";
that.G.Post(that.api[url], submitInfo, (res) => {
uni.showToast({
icon: "success",
title: "保存成功",
});
uni.$emit("infoUpdate");
uni.navigateBack();
});
// uni.$emit("getTownsman", { info: that.info });
// uni.navigateBack();
},
handleClickInfo() {
let that = this;
that.G.uploadImg((res) => {
console.log("res", res);
that.info.name = res.info.name;
that.info.sex = res.info.sex ? (res.info.sex == "男" ? 1 : 2) : "";
that.info.age = res.info.age;
that.info.nation = res.info.nationality;
that.info.idCard = res.info.num;
that.info.idCardImageUrl = res.image;
that.info.userName = res.info.name;
that.info.address = res.info.address;
that.nation.forEach((item, index) => {
if (item == that.info.nation) {
that.nationIndex = index;
}
});
}, "idcard");
},
},
};
</script>
<style>
.img-close {
position: absolute;
width: 18px;
height: 18px;
right: -6px;
top: -6px;
z-index: 99;
background-color: #666;
color: #fff;
font-size: 8px;
text-align: center;
line-height: 18px;
border-radius: 50%;
}
</style>

@ -1,43 +1,6 @@
<template>
<view class="p-root-detail-fellow g_w_all g_bg_page g_kuaishou">
<view v-if="speed == 0">
<rh-loading />
</view>
<view v-if="speed == 1">
<!-- <view class="g_h_10"></view> -->
<AiApply class="" @outputInfo="getTownsManInfo" v-if="true" />
<!-- <view class="m-photo">
<g-panel-card-info
:info="{
avatar: cdnBaseImg + 'mock_photo.svg',
title: '拍照或相册上传',
num: '系统智能识别并自动填写',
titleFS: 16,
imgSize: 72,
}"
radius="0"
rightType="image"
:rightImage="info.idCardImageUrl"
@clickCard="handleClickInfo"
/>
</view>
<view class="g_h_10"></view> -->
<view class="g_h_10"></view>
<rh-form-slot :list="telList" @changeWeChat="handleChangeWeChat" @changeMobile="handleClickMobile"></rh-form-slot>
<view v-if="pageType == 'add'">
<view class="g_h_10"></view>
<view class="card-tip g_pb_8 g_pl_20 g_c_6">职位信息</view>
<view class="fs_top text-wrap">
<rh-form-slot :list="jobData" @clickResult="changePage"> </rh-form-slot>
</view>
</view>
<view v-if="roleType == 'resumeSpecialist'">
<view class="g_h_10"></view>
<view class="card-tip g_pb_8 g_pl_20 g_c_6">简历分配</view>
<view class="fs_top text-wrap">
<rh-form-slot :list="jlData" @clickResult="openChoosePop"> </rh-form-slot>
</view>
</view>
<view class="p-root-detail-fellow g_w_all g_h_all g_bg_f_5 g_kuaishou">
<view>
<view class="g_h_10"></view>
<rh-form-slot
:list="[
@ -47,11 +10,11 @@
result: '',
value: info.name,
path: '',
tip: 'slot-name',
tip: 'slot-upID',
img: info.idCardImageUrl,
placeholder: '请输入姓名',
placeholder: '手动输入或拍照自动识别 → ',
type: 'slot',
pColumn: 12,
pColumn: 8,
require: true,
},
{
@ -63,7 +26,8 @@
tip: 'slot-code-idcard',
placeholder: '请输入身份证号',
type: 'slot',
pColumn: 12,
pColumn: 8,
require: false,
},
{
icon: '',
@ -75,7 +39,7 @@
type: 'slot',
pColumn: 12,
require: false,
customRequire: false,
customRequire: true,
},
{
icon: '',
@ -86,7 +50,7 @@
tip: 'slot-age',
placeholder: '请输入年龄',
type: 'slot',
pColumn: 12,
pColumn: 8,
require: false,
},
{
@ -98,19 +62,30 @@
path: '',
tip: 'slot-nation',
pColumn: 12,
require: false,
type: 'slot',
customRequire: true,
},
{
icon: '',
label: '身份证住址',
label: '家庭住址',
result: '',
value: info.address,
placeholder: '请输入身份证住址',
placeholder: '请输入家庭住址',
path: '',
tip: 'slot-address',
type: 'slot',
pColumn: 12,
pColumn: 8,
},
{
icon: '',
label: '上传附件',
result: '',
path: '',
type: 'slot',
tip: 'slot-update-file',
pColumn: 16,
},
]"
@changeName="handleClickName"
@ -119,321 +94,146 @@
@changeNation="handleClickNation"
@changeIDcard="handleClickIDcard"
@changeAddress="handleClickAddress"
@updateIDInfo="handlerIDInfo"
@updateFile="updateFile"
@updateIDInfo="handlerIDInfo"
>
<!-- {
icon: '',
label: '上传附件',
result: '',
path: '',
type: 'slot',
tip: 'slot-update-file',
pColumn: 16,
}, -->
<template v-slot:after>
<view class="g_flex_row_start g_p_10" v-if="imgList.length > 0">
<view v-for="(item, index) in imgList" class="g_position_rela" :class="index <= 2 ? 'g_mr_18' : ''" :key="index">
<i class="iconfont icon-guanbi img-close" @click="delImg(index)"></i>
<image :src="item" class="g_w_56 g_h_56 g_radius_8" />
<view v-for="(item, index) in imgList" class="g_position_rela g_mr_10 g_mt_4" :key="index">
<i class="iconfont icon-guanbi img-close" @click="delImg(index, item.id)"></i>
<image :src="item.url" class="g_w_56 g_h_56 g_radius_8" />
</view>
</view>
</template>
</rh-form-slot>
<view style="height: 200px"></view>
<view class="g_h_10"></view>
<rh-form-slot
:list="[
{
icon: '',
label: '工友电话',
result: '',
path: '',
value: info.tel,
tip: 'slot-mobile',
placeholder: '请输入联系电话',
type: 'slot',
pColumn: 8,
require: false,
},
]"
@changeMobile="handleClickMobile"
></rh-form-slot>
<view class="g_flex_column_between g_flex_1 g_pb_24">
<view class="g_fs_12 g_c_9 g_flex_row_center g_mb_32" style="align-items: center; margin-top: 16px">
<radio-group class="dib">
<radio :checked="switchChecked" @click="switchChecked = !switchChecked" value="0" class="dib biggerSize" color="#00b666" style="transform: scale(0.7)" />
</radio-group>
我已阅读并同意
<navigator url="/root/person/agreeUser" class="g_c_sub">用户服务协议</navigator>
<navigator url="/root/person/agreePrive" class="g_c_sub">隐私政策</navigator>
</view>
</view>
<rh-fixed>
<slot>
<view class="g_pl_12 g_pr_12">
<!-- <rh-button :primaryColor='themeColor' btnText="取消" class="g_mr_16" size="small" type="default" @clickBtn="goReturn"></rh-button> -->
<rh-button :primaryColor="themeColor" btnText="确定" class=" " @clickBtn="handleSubmit" size="auto" type="primary"></rh-button>
<!-- <rh-button primaryColor='#00b666' btnText="取消" class="g_mr_16" size="small" type="default" @clickBtn="goReturn"></rh-button> -->
<rh-button primaryColor='#00b666' btnText="确定" class @clickBtn="handleSubmit" size="auto" type="primary"></rh-button>
</view>
</slot>
</rh-fixed>
</view>
<u-popup data-remark="" v-model="peopleModal.isShow" mode="bottom" border-radius="16" height="1000" :mask-close-able="true" :closeable="true">
<view class="g_fs_18 g_c_3 g_flex_row_center g_pt_16"> 跟进人选择 </view>
<scroll-view scroll-y="true" style="height: 384px">
<view class="g_pl_12 g_pr_12">
<view class="g_flex_row_between g_pt_16 g_pb_16 g_border_d_b" v-for="(item, index) in peopleModal.recordList" :key="index" @click="handleChoosePeople(item, index)">
<view class="g_fs_17 g_c_3">{{ item.aliasName || item.userName || item.tel }}</view>
<view class="g_flex_column_center">
<i
v-if="yId == item.id"
class="iconfont icon-a-duigoubeifen2"
style="font-size: 24px"
:style="{
color: yId == item.id ? themeColor : '#fff',
}"
></i>
</view>
</view>
</view>
</scroll-view>
<view class="g_flex_row_center">
<rh-button :primaryColor="themeColor" btnText="确定" class="bocai_btn_size_default g_mt_24" @clickBtn="handleSubmitChoosePeople" type="primary"></rh-button>
</view>
</u-popup>
</view>
</template>
<script>
import AiApply from "@/components/AiApply.vue";
// import gPanelFormSlot from "@/components/formSlot.vue";
import { nationlist } from "../../utils/nation.js";
export default {
components: {
AiApply,
},
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
return this.G.shareFun();
},
components: {
// gPanelFormSlot,
},
data() {
return {
themeColor: getApp().globalData.themeColor,
peopleModal: {
isShow: false,
recordList: [],
},
switchChecked: false,
cdnBaseImg: this.G.store().cdnBaseImg,
speed: 0,
info: {},
info: {
nation: "汉族",
},
nation: nationlist.map((item, index) => {
return item.name;
}),
nationIndex: 0,
imgList: [],
jobData: {},
jlData: {},
telList: [],
pageType: "",
resumeFlag: 0,
chooseUserId: "",
yId: 0,
roleType: "",
isOrder:false,
euid:0
newAddImg: [],
};
},
props: {
// info: {
// type: Object,
// default: {},
// },
},
onLoad(options) {
let that = this;
console.log("info", this.info);
console.log("options", options);
that.isOrder = options.isOrder == 1 ? true : false;
that.euid = options.euid;
if (options.sex) {
options.sex = Number(options.sex);
} else {
options.sex = 1;
}
if (!options.nation) {
options.nation = "汉族";
}
if (options.type == "add") {
this.pageType = "add";
this.resumeFlag = 1;
} else {
console.log("快速报名:", options);
if (options) {
if (options.sex) {
options.sex = Number(options.sex);
} else {
options.sex = 1;
}
if (!options.nation) {
options.nation = "汉族";
}
this.info = options;
// if (this.info.imgs) {
// this.imgList = this.info.imgs.split(",");
// }
}
console.log("获取老乡信息:", options);
if (this.info.imgs) {
this.imgList = this.info.imgs.split(",");
}
this.telList = [
{
icon: "",
label: "手机号",
result: "",
path: "",
value: this.info.tel,
tip: "slot-mobile",
placeholder: "请输入手机号",
type: "slot",
pColumn: 8,
require: true,
},
];
if (this.info.resumeFlag == 1 || this.resumeFlag == 1) {
this.telList.push({
icon: "",
label: "微信",
result: "",
path: "",
value: this.info.weChat,
tip: "slot-weChat",
placeholder: "请输入联系微信",
type: "slot",
pColumn: 8,
require: false,
});
}
that.nation.forEach((item, index) => {
if (item == that.info.nation) {
console.log(that.info.nation);
console.log(index);
that.nationIndex = index;
}
});
that.speed = 0;
setTimeout(() => {
that.speed = 1;
}, 300);
uni.$on("changeJobInfo", function (data) {
console.log("changeJobInfo", data);
that.info.jobId = data.info.leafCateId;
that.info.jobName = data.info.title;
console.log("data.info", data.info);
that.$forceUpdate();
});
console.log("获取工友信息:", options);
},
onShow() {
let that = this;
uni.getStorageSync("currentRoleInfo") && (this.roleType = uni.getStorageSync("currentRoleInfo").roleCode);
this.jobData = [
{
radius: "no_bottom",
icon: "",
label: "意向职位",
result: that.info.jobId ? that.info.jobName : "请选择意向职位",
path: "/root/other/search?from=record",
placeholder: "请选择意向职位",
fontColor: that.info.jobName == "请选择意向职位" || that.info.jobName == "" || that.info.jobName == null ? "g_c_9" : "g_c_3",
tip: "applia-job",
require: false,
customRequire: true,
pColumn: 18,
},
];
this.jlData = [
{
radius: "no_bottom",
icon: "",
label: "跟进人",
result: that.info.fellowId ? that.info.fellowName : "请选择跟进人",
path: "",
placeholder: "请选择跟进人",
fontColor: that.info.fellowName == "请选择跟进人" || that.info.fellowName == "" || that.info.fellowName == null ? "g_c_9" : "g_c_3",
tip: "choose-people-record",
require: false,
pColumn: 18,
},
];
console.log("info", this.info);
console.log("telList", this.telList);
that.getPeopleList();
that.getImg();
// that.nation.forEach((item, index) => {
// if (item == that.info.nation) {
// console.log(that.info.nation);
// console.log(index);
// that.nationIndex = index;
// }
// });
// that.speed = 0;
// setTimeout(() => {
// }, 300);
},
created() {
let that = this;
},
methods: {
getPeopleList() {
let that = this;
that.G.Get(that.api.job_getUserListOfSameTeam, {}, (res) => {
that.peopleModal.recordList = res;
});
},
openChoosePop() {
let that = this;
that.yId = "";
that.chooseUserId = "";
that.peopleModal.isShow = true;
},
handleChoosePeople($item, $index) {
let that = this;
that.yId = $item.id;
},
handleSubmitChoosePeople() {
let that = this;
that.chooseUserId = that.yId;
that.info.fellowId = that.chooseUserId;
that.info.fellowName = that.peopleModal.recordList.find((item) => item.id == that.chooseUserId).aliasName || that.peopleModal.recordList.find((item) => item.id == that.chooseUserId).userName || that.peopleModal.recordList.find((item) => item.id == that.chooseUserId).tel;
this.jlData[0].result = that.info.fellowName;
this.jlData[0].fontColor = that.info.fellowName == "请选择跟进人" || that.info.fellowName == "" || that.info.fellowName == null ? "g_c_9" : "g_c_3";
that.peopleModal.isShow = false;
},
changePage(e) {
uni.navigateTo({
url: e.path,
});
},
getTownsManInfo(_val) {
console.log("info", _val);
if (_val.name) {
this.info = { ..._val, resumeFlag: this.info.resumeFlag };
//
if (!this.info.tel && this.info.weChat && this.G.setReg(this.info.weChat, "tel")) {
this.info.tel = this.info.weChat;
}
if (this.info.resumeFlag == 1 || this.resumeFlag == 1) {
this.telList = [
{
icon: "",
label: "手机号",
result: "",
path: "",
value: this.info.tel,
tip: "slot-mobile",
placeholder: "请输入手机号",
type: "slot",
pColumn: 8,
require: true,
},
{
icon: "",
label: "微信",
result: "",
path: "",
value: this.info.weChat,
tip: "slot-weChat",
placeholder: "请输入联系微信",
type: "slot",
pColumn: 8,
require: false,
},
];
} else {
this.telList = [
{
icon: "",
label: "手机号",
result: "",
path: "",
value: this.info.tel,
tip: "slot-mobile",
placeholder: "请输入手机号",
type: "slot",
pColumn: 8,
require: true,
},
];
}
} else {
uni.showToast({
icon: "none",
title: "识别失败,请重试",
});
}
// uni.$emit("getTownsman", {
// info,
// });
},
handleClickName(e) {
this.info.name = this.info.userName = e;
this.changeInfo();
},
handleClickSex(e) {
this.info.sex = e;
this.changeInfo();
},
handleClickAge(e) {
this.info.age = e;
this.changeInfo();
},
handleClickMobile(e) {
this.info.tel = e;
this.changeInfo();
},
handleClickNation(e) {
let that = this;
@ -446,48 +246,168 @@ export default {
that.nationIndex = index;
}
});
this.changeInfo();
},
handleClickNation(e) {
changeInfo() {
this.$emit("changeInfo", this.info);
},
/**
* 获取上传的身份信息
*/
handlerIDInfo(res) {
console.log("res", res);
let that = this;
console.log(e.name);
this.info.nation = e.name;
that.info.name = res.info.name;
that.info.sex = res.info.sex ? (res.info.sex == "男" ? 1 : 2) : "";
that.info.age = res.info.age;
that.info.nation = res.info.nationality + "族";
that.info.idCard = res.info.num;
that.info.idCardImageUrl = res.image;
that.info.userName = res.info.name;
that.info.address = res.info.address;
that.nation.forEach((item, index) => {
if (item == e.name) {
// console.log(that.info.nation)
// console.log(index)
console.log("item1", item);
console.log('that.info.nation + "族"', that.info.nation + "族");
if (item == that.info.nation) {
console.log("item2", item);
that.nationIndex = index;
}
});
this.changeInfo();
console.log("that.info", that.info);
console.log("that.nationIndex", that.nationIndex);
},
getImg() {
let that = this;
uni.request({
url: that.G.ajaxUrl + `/imgs/list/${that.info.userId}?type=20`,
method: "GET",
header: Object.assign(
{
Authorization: "Bearer " + uni.getStorageSync("apply-token"),
},
that.G.setPublicParams()
),
success: (res) => {
if (res.statusCode === 200) {
console.log(res.data.data.userImgs);
if (that.info.fujian) {
that.imgList = that.info.fujian
.split(",")
.map((item) => {
return {
url: item,
};
})
.concat(res.data.data.userImgs);
} else {
that.imgList = res.data.data.userImgs;
}
console.log(that.imgList);
} else {
console.error("Failed to fetch images:", res);
}
},
fail: (error) => {
console.error("Error fetching images:", error);
},
});
},
//
delImg(ind, id) {
let that = this;
uni.showModal({
title: "提示",
content: "确定要删除该图片?",
success: function (res) {
if (res.confirm) {
that.imgList.splice(
that.imgList.findIndex((item, index) => index == ind),
1
);
uni.request({
url: that.G.ajaxUrl + `/imgs/del/${id}`,
method: "GET",
header: Object.assign(
{
Authorization: "Bearer " + uni.getStorageSync("apply-token"),
},
that.G.setPublicParams()
),
success: (res) => {
if (res.statusCode === 200) {
console.log(res.data.data.userImgs);
// imgList
// that.imgList = res.data.data.userImgs;
} else {
console.error("Failed to fetch images:", res);
}
},
fail: (error) => {
console.error("Error fetching images:", error);
},
});
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
},
//
updateFile(e) {
let that = this;
if (that.imgList.length < 4) {
that.imgList.push({ url: e, id: -999 });
// that.info.imgs = that.imgList;
that.newAddImg.push(e);
that.changeInfo();
uni.hideLoading();
} else {
uni.showToast({
title: "最多只能上传4张",
icon: "none",
});
}
},
handleClickIDcard(e) {
this.info.idCard = e;
if (this.info.idCard && (this.info.idCard.length == 15 || this.info.idCard.length == 18)) {
let info = this.G.getInfoByIDcard(this.info.idCard);
this.info.age = info.age;
this.info.sex = info.sex ? (info.sex == "男" ? 1 : 2) : "";
}
this.changeInfo();
// console.log(this.G.getInfoByIDcard(this.info.idCard));
},
handleClickAddress(e) {
this.info.address = e;
this.changeInfo();
},
goReturn() {
uni.navigateBack();
},
handleSubmit() {
let that = this;
if (this.info.resumeFlag == 1 || this.resumeFlag == 1) {
if (!that.info.tel && !that.info.weChat) {
uni.showToast({
icon: "none",
title: "请输入手机号或微信",
});
return false;
}
} else {
if (!that.info.tel) {
uni.showToast({
icon: "none",
title: "请输入手机号",
});
return false;
}
}
console.log("that.info.imgs", that.info.imgs);
console.log("that.imgList", that.imgList);
if (!that.info.name) {
uni.showToast({
icon: "none",
title: "请输入姓名",
});
return false;
}
if (!that.info.tel && !that.info.idCard) {
uni.showToast({
icon: "none",
title: "请输入手机号或身份证号",
});
return false;
}
if (that.info.tel && !that.G.setReg(that.info.tel, "tel")) {
uni.showToast({
icon: "none",
@ -495,7 +415,6 @@ export default {
});
return false;
}
if (that.info.idCard && !that.G.isValidIdCard(that.info.idCard)) {
uni.showToast({
icon: "none",
@ -503,57 +422,49 @@ export default {
});
return false;
}
// if (that.imgList.length > 0) {
// that.info.imgs = that.imgList;
// }
if (!that.info.nation) {
that.info.nation = "汉族";
}
let url = "";
if (this.pageType == "add") {
url = "add_resume";
if (that.roleType == "resumeSpecialist") {
//
// id
that.info.followUserId = that.chooseUserId;
} else {
// id
that.info.followUserId = uni.getStorageSync("apply-userinfo").id;
}
that.info.clueType = 1;
} else {
url = "order_submitFellow";
}
console.log(204,that.euid,'==',that.info)
if(that.euid && that.euid != 'undefined'){
if(that.isOrder){
that.info.orderId = that.euid;
}else{
that.info.clueId = that.euid;
}
console.log(that.info);
if (that.imgList.length > 0) {
that.info.imgs = that.newAddImg.toString();
}
that.G.Post(that.api[url], that.info, (res) => {
let submitInfo = {
name: that.info.userName,
sex: that.info.sex,
age: that.info.age,
nation: that.info.nation,
tel: that.info.tel,
idCard: that.info.idCard,
address: that.info.address,
idCardImageUrl: that.info.idCardImageUrl ? that.info.idCardImageUrl : "",
userName: that.info.userName,
userId: that.info.userId,
orderId: that.info.id,
userApplyOrderFiles:
that.imgList && that.imgList.length > 0
? that.imgList
.map((item) => {
return item.url;
})
.join(",")
: "",
};
let url = "order_submitFellowNew";
that.G.Post(that.api[url], submitInfo, (res) => {
uni.showToast({
icon: "success",
title: this.pageType == "add" ? "新建成功" : "保存成功",
title: "保存成功",
});
if (this.pageType == "add") {
that.goReturn();
setTimeout(() => {
uni.$emit("goNew", 999);
}, 100);
} else {
setTimeout(() => {
that.goReturn();
}, 300);
}
uni.$emit("infoUpdate");
uni.navigateBack();
});
// uni.$emit("getTownsman", { info: that.info });
// uni.navigateBack();
},
handleClickInfo() {
let that = this;
that.G.uploadImg((res) => {
console.log("res", res);
that.info.name = res.info.name;
that.info.sex = res.info.sex;
that.info.sex = res.info.sex ? (res.info.sex == "男" ? 1 : 2) : "";
that.info.age = res.info.age;
that.info.nation = res.info.nationality;
that.info.idCard = res.info.num;
@ -567,65 +478,23 @@ export default {
});
}, "idcard");
},
handleClickMobile(e) {
console.log(e);
this.info.tel = e;
},
handleChangeWeChat(e) {
console.log(e);
this.info.weChat = e;
},
//
delImg(ind) {
this.imgList.splice(
this.imgList.findIndex((item, index) => index == ind),
1
);
},
//
updateFile(e) {
let that = this;
if (that.imgList.length < 4) {
that.imgList.push(e);
uni.hideLoading();
} else {
uni.showToast({
title: "最多只能上传4张",
icon: "none",
});
}
},
/**
* 获取上传的身份信息
*/
handlerIDInfo(res) {
console.log("res", res);
let that = this;
that.info.name = res.info.name;
that.info.sex = res.info.sex ? (res.info.sex == "男" ? 1 : 2) : "";
that.info.age = res.info.age;
that.info.nation = res.info.nationality + "族";
that.info.idCard = res.info.num;
that.info.idCardImageUrl = res.image;
that.info.userName = res.info.name;
that.info.address = res.info.address;
that.nation.forEach((item, index) => {
// console.log("item1", item);
// console.log('that.info.nation + ""', that.info.nation + "");
if (item == that.info.nation) {
console.log("item2", item);
that.nationIndex = index;
}
});
console.log("that.info", that.info);
console.log("that.nationIndex", that.nationIndex);
that.$forceUpdate();
},
},
};
</script>
<style></style>
<style>
.img-close {
position: absolute;
width: 18px;
height: 18px;
right: -6px;
top: -6px;
z-index: 99;
background-color: #666;
color: #fff;
font-size: 8px;
text-align: center;
line-height: 18px;
border-radius: 50%;
}
</style>

@ -101,7 +101,7 @@
<script>
import { nationlist } from "../../utils/nation.js";
import dateUtil from "../../utils/dateUtil.js";
import AiApply from "@/components/AiApply.vue";
import AiApply from "./components/AiApply.vue";
export default {
components: {
AiApply,

@ -1,195 +0,0 @@
<template>
<div class="team-manage-container g_bg_page">
<div class="g_h_10"></div>
<rh-form-slot
:list="[
{
icon: '',
label: '姓名',
result: '',
value: memberInfo.aliasName,
path: '',
placeholder: '请输入成员姓名',
tip: 'slot-name',
type: 'slot',
pColumn: 8,
require: true,
},
{
icon: '',
label: '手机号',
result: '',
value: memberInfo.tel,
path: '',
tip: 'slot-mobile',
placeholder: '请输入成员手机号',
type: 'slot',
pColumn: 8,
require: true,
disabled: memberInfo.agencyRoleName.indexOf('创建人') > -1,
},
]"
@changeName="changeName"
@changeMobile="changeMobile"
></rh-form-slot>
<div class="g_text_c g_mt_90">
<rh-button primaryColor='#3578f6' btnText="确定" type="primary" class="" @clickBtn="subMemberInfo"></rh-button>
<div class="g_c_sub g_mt_16" v-if="memberInfo.id && memberInfo.agencyRoleName.indexOf('创建人') == -1" @click="delMember"></div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
memberInfo: {},
};
},
onShow() {},
onLoad(options) {
if (options.info) {
console.log("options.info", options.info);
this.memberInfo = JSON.parse(options.info);
uni.setNavigationBarTitle({
title: "修改成员信息",
});
} else {
uni.setNavigationBarTitle({
title: "添加成员",
});
}
},
created() {
console.log(123123);
},
methods: {
getMemberList() {
let that = this;
this.G.Get(this.api.order_peopleList, {}, (res) => {
console.log("报名人列表:", res);
that.memberList = res.recordList;
});
},
addMember() {
this.addMemberShow = true;
},
subMemberInfo() {
let that = this;
if (this.memberInfo.aliasName == "") {
uni.showToast({
title: "请输入成员姓名",
icon: "none",
});
return false;
}
if (this.memberInfo.tel == "") {
uni.showToast({
title: "请输入成员手机号",
icon: "none",
});
return false;
}
let exp = /^1[3-9]\d{9}$/;
console.log("that.memberInfo. tel", that.memberInfo.tel);
console.log("exp.test(that.memberInfo.tel)", exp.test(that.memberInfo.tel));
if (!exp.test(that.memberInfo.tel)) {
uni.showToast({
title: "请输入正确的手机号",
icon: "none",
});
return false;
}
let url = "order_addMember";
if (this.memberInfo.id) {
//
url = "order_updateMember";
}
this.G.Post(this.api[url], this.memberInfo, (res) => {
console.log("resresresres", res);
uni.showToast({
title: "提交成功",
});
setTimeout(() => {
uni.navigateBack({
detail: 1,
});
}, 1500);
});
},
delMember() {
let that = this;
this.G.handleConfirm({
title: "删除",
content: "确定要删除该成员吗?",
success: (res) => {
if (res.confirm) {
that.G.Post(that.api.order_checkMemberDel, { id: that.memberInfo.id }, (checkRes) => {
if (checkRes) {
that.G.handleConfirm({
title: "删除",
content: res,
success: (res) => {
if (res.confirm) {
that.subDel();
}
},
});
} else {
that.subDel();
}
});
}
},
});
},
subDel() {
let that = this;
that.G.Post(that.api.order_delMember, { id: that.memberInfo.id }, (res) => {
console.log(res);
uni.showToast({
title: "删除成功",
});
setTimeout(() => {
uni.navigateBack({
detail: 1,
});
}, 1500);
});
},
changeName(e) {
console.log("e", e);
this.memberInfo.aliasName = e;
},
changeMobile(e) {
console.log("e", e);
this.memberInfo.tel = e;
},
},
};
</script>
<style lang="scss">
.creator {
color: #46c7bb;
border: 1px solid #46c7bb;
background-color: #46c7ba3d;
}
.member {
color: #f9676e;
border: 1px solid #f9676e;
background-color: #f9676e3d;
}
.manager {
color: #0066d6;
border: 1px solid #0066d6;
background-color: #0066d63d;
}
.sticky {
position: sticky;
bottom: 0;
left: 0;
z-index: 999;
}
</style>

@ -1,118 +0,0 @@
<template>
<div class="g_pb_32">
<div v-for="(item, index) in applyList">
<div class="g_pb_8 g_pt_16 g_pl_16 g_border_e_b g_c_9" v-if="item.length > 0">
{{ index == "near" ? "近三天" : "三天前" }}
</div>
<div class="g_flex_row_between flex_center i-items" style="padding: 20px 16px 8px" v-for="i in item" :key="item.id">
<div class="g_mr_12">
<img class="g_w_48 g_h_48 g_radius_50" :src="i.imgSrc || 'https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/APP/default.svg'" alt="" />
</div>
<div class="g_flex_row_between flex_center g_flex_1 g_h_48">
<div>
<div class="g_fs_18">
{{ i.applyUsername }}
</div>
<div class="g_fs_14 g_c_9 g_mt_4">
{{ i.userName }}
</div>
</div>
<div>
<span v-if="i.past && i.status === 0" class="g_fs_14 g_c_9"></span>
<span v-else-if="i.status == 1" class="g_fs_14 g_c_9">已通过</span>
<span v-else-if="i.status == 2" class="g_fs_14 g_c_9">已拒绝</span>
<div class="g_flex_row_end" v-else>
<div class="g_mr_8">
<rh-button primaryColor='#3578f6' btnText="拒绝" fontSize="14" color="#000" customBgColor="#d8d8d8" size="height" type="disabled" height="24" width="50" @clickBtn="approve(i, 'reject')"></rh-button>
</div>
<div>
<rh-button primaryColor='#3578f6' btnText="通过" type="primary" fontSize="14" size="height" height="24" width="50" @clickBtn="approve(i, 'resolve')"></rh-button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
applyList: [],
query: { page: 1, size: 30 },
};
},
onShow() {
this.getUserApplyList();
this.setTeamManagerStatus();
},
created() {},
methods: {
setTeamManagerStatus() {
this.G.Get(this.api.order_updateApplyNumHasViewed, {}, (res) => {
uni.$emit('updateMember')
});
},
getUserApplyList() {
let that = this;
this.G.Post(this.api.order_getUserApplyList, { pageNum: that.query.page, pageSize: that.query.size }, (res) => {
console.log("order_getUserApplyList", res);
let obj = {
near: [],
far: [],
};
res.forEach((item) => {
let diffTime = new Date().getTime() - item.createTime;
if (diffTime <= 3 * 24 * 60 * 60 * 1000) {
obj.near.push(item);
} else {
if (diffTime > 10 * 24 * 60 * 60 * 1000) {
item.past = true;
} else {
item.past = false;
}
obj.far.push(item);
}
});
that.applyList = obj;
});
},
approve(_item, type) {
console.log(_item);
console.log(type);
// return;
this.G.Post(this.api.order_userApplyApprove, { id: _item.id, status: type == "reject" ? 2 : 1 }, (res) => {
console.log(res);
_item.status = type == "reject" ? 2 : 1;
uni.showToast({
title: "操作成功",
icon: "none",
});
});
},
},
};
</script>
<style lang="scss">
.i-items {
// border-bottom: 1px solid #eee;
position: relative;
&:not(:first-child):after {
content: "";
display: block;
height: 1rpx;
width: calc(100% - 76px);
background: #eee;
position: absolute;
bottom: 0;
right: 0;
}
// &:last-child:after {
// border-bottom: none;
// }
}
</style>

@ -1,184 +0,0 @@
<template>
<view class="p-root-job-labels g_w_all g_h_all g_bg_f_5">
<view class="m-nav">
<u-navbar :is-back="false" title="添加标签"
:background="{
'background-color':'#f5f5f5'
}"
>
<view class="g_flex_row_start g_fs_16 g_fw_500 g_pl_16">
<view class="m-btn" @click="goReturn">
取消
</view>
<view class="m-btn g_ml_12" @click="goReturn">
确定
</view>
</view>
</u-navbar>
</view>
<view class="m-input g_flex_column_center g_pl_16 g_pr_16">
<view class="g_flex_row_start">
<view class="m-basics-label">模拟选中标签</view>
<view></view>
</view>
</view>
<view class="m-label">
<view class="tip g_flex_row_between">
<view class="lef">全部标签</view>
<view></view>
</view>
<view class="m-link g_flex_row_start"
>
<view class="m-item"
:class="item.isSelect ? 'm-active' : ''"
v-for="(item,index) in labels" :key="index"
@click="updateIndex(item,index)"
>
{{item.name}}
</view>
<view class="m-item g_flex_row_center" @click="updateIndex({},9)">
<view class="g_mr_2 g_fs_22 g_flex_column_center" style="height: 22px;overflow: hidden;margin-top: -3px;">+</view>
<view class="g_flex_column_center">新建标签</view>
</view>
</view>
</view>
<u-popup v-model="popSelect.isShow" mode="center" uZindex="9999" border-radius="12" :closeable="true" :mask-close-able="true">
<view class="g_pt_32">
<view class="g_fs_18 g_fw_bold g_mb_32 g_text_c">新建标签</view>
<view>
<input type="text" placeholder="" style="background-color: #fff;border-radius: 8px;">
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default{
data(){
return {
popSelect:{
isShow:false
},
labels:[
{
name:'标签',
isSelect:true
},
{
name:'工厂',
isSelect:false
},
{
name:'门店',
isSelect:false
},
{
name:'类型',
isSelect:false
},
{
name:'标表表表表签',
isSelect:false
},
{
name:'工表表厂',
isSelect:false
},
{
name:'门表表表店',
isSelect:false
},
{
name:'类表表表表表表表表型',
isSelect:false
},
{
name:'标表签',
isSelect:false
},
{
name:'工表厂',
isSelect:false
},
{
name:'门表表表店',
isSelect:false
},
{
name:'类型表表',
isSelect:false
},
]
}
},
methods:{
goReturn(){
uni.navigateBack();
},
updateIndex($item,$index){
let that = this;
if($index == 9){
that.popSelect.isShow = true;
}else{
// $item.isSelect = !$item.isSelect;
}
}
}
}
</script>
<style lang="less">
.p-root-job-labels{
.m-nav{
margin-left: 16px;
.m-btn{
background-color: #f5f5f5;
color: #333;
padding: 2px 4px;
border-radius: 4px;
&:last-child{
background-color: rgba(0,0,0,0.05);
color: rgba(0,0,0,0.15);
}
}
}
.m-input{
height: 48px;
background-color: #fff;
}
.m-label{
.tip{
color: #666;
font-size: 14px;
padding: 16px;
}
.m-link{
padding-left: 16px;
.m-item{
background-color: rgba(0,0,0,0.08);
color: rgba(0,0,0,0.5);
border-radius: 50px;
padding: 3px 6px;
margin: 0 12px 12px 0;
border: 1px solid transparent;;
&:last-child{
background-color: transparent;
border: 1px solid rgba(0,0,0,0.08);;
}
}
.m-active{
background: rgba(53,120,246, 0.1);
color: #3578f6;
}
}
}
.m-basics-label{
border-radius: 50px;
padding: 3px 6px;
background: rgba(53,120,246, 0.1);
color: #3578f6;
}
}
</style>

@ -1,229 +0,0 @@
<template>
<view class="p-bil-index g_w_all g_h_all g_bg_f_5 g_kuaishou" :data-env="ENV_VERSION">
<scroll-view class="m-list" :style="{ height: `calc(100vh - ${tabbarHeight}px` }" :scroll-y="true" @scrolltolower="reachBottom">
<view class="m-search flex_center g_bg_f g_pr_10 g_pt_8 g_mb_10" :class="ENV_VERSION == 'develop' || ENV_VERSION == 'trial' ? '' : 'g_pb_8'">
<view class="g_flex_row_between">
<u-search bar-width="0" class="g_flex_1 g_pl_10" @btnSearch="getSearch" height="80" v-model="keyword" :placeholder="placeholder" bg-color="#f5f5f5" :show-action="false" @change="getSearch" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#cccccc" :maxlength="20"></u-search>
</view>
<view class="g_bg_f" v-if="ENV_VERSION == 'develop' || ENV_VERSION == 'trial'">
<u-tabs bg-color="transparent" :list="tabInfo.list" :is-scroll="false" :current="tabInfo.active" :active-color="appid != 'wxb0c590fd696b79be' ? '#3578f6' : '#ff4400'" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="32" duration="0.1" height="76"></u-tabs>
</view>
</view>
<view style="height: 0px" data-loading="loading" data-speed="speed"></view>
<rh-job-list from="tob" class="g_h_all" :list="query.list" @clickCard="goDetail" :loading="loading" :speed="speed" :query="query" emptyText="暂无数据" pt="0" />
</scroll-view>
</view>
</template>
<script>
export default {
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
return this.G.shareFun();
},
onLoad(options) {
console.log(options);
this.navInfo = this.G.getNavInfo();
// this.placeholder = "";
},
onShow() {
let that = this;
that.navInfo = that.G.getNavInfo();
console.log("0901 003", this.show, this.cuindex);
},
created() {
console.log("0901 001", this.show, this.cuindex);
this.speed = -1;
this.loading = true;
this.getList();
},
mounted() {
console.log("0901 002", this.show, this.cuindex);
},
props: {
show: {
type: Boolean,
default: () => {
return false;
},
},
cuindex: {
type: Number,
default: () => {
return 0;
},
},
},
watch: {
show: {
handler(newVal) {
console.log("是否执行newVal", newVal);
if (newVal) {
this.getList();
}
},
},
},
//
data() {
return {
ENV_VERSION: uni.getAccountInfoSync().miniProgram.envVersion,
appid: uni.getAccountInfoSync().miniProgram.appId,
tabbarHeight: uni.getStorageSync("TABBAR_HEIGHT"),
// ENV_VERSION: "develop",
fadanBaseImg: this.G.store().fadanBaseImg,
whichPage: "home",
keyword: "",
loading: false,
speed: -1,
applyType: 0,
query: {
page: 1,
size: 50,
list: [],
isFinish: -1,
jobType: "",
},
placeholder: "搜索职位名称",
navInfo: {},
tabInfo: {
list: [
{
name: "全部",
tip: "",
},
{
name: "自有",
tip: 2,
},
{
name: "平台",
tip: 1,
},
],
active: 0,
},
};
},
//
computed: {},
//
methods: {
goPage($path) {
uni.navigateTo({
url: $path,
});
},
handleUpdateTab(e) {
this.tabInfo.active = e;
this.query.jobType = this.tabInfo.list[e].tip;
this.speed = -1;
this.query.page = 1;
this.getList();
},
goDetail($item) {
console.log("前往详情页", $item);
if (uni.getStorageSync("apply-userinfo")) {
uni.navigateTo({
url: "/root/detail/job?id=" + $item.id,
});
} else {
uni.navigateTo({
url: "/root/login/index",
});
}
},
reachBottom() {
let that = this;
console.log("tolow");
// if (!uni.getStorageSync("apply-token") && that.tabInfo.active == 1) {
// return false;
// }
that.query.page++;
that.getList("concat");
},
getSearch(e) {
console.log(e);
this.speed = -1;
this.keyword = e;
this.query.page = 1;
console.log(this.whichPage);
this.getList();
},
backPrev() {
console.log("backPrev");
uni.navigateBack({
delta: 1,
});
},
getList($type = "init") {
let that = this;
that.G.Post(
that.api.job_myJobList,
{
pageNum: that.query.page,
pageSize: that.query.size,
keys: that.keyword,
jobType: that.query.jobType,
agencyId: uni.getStorageSync("AGENCY_ID"),
},
(res) => {
console.log("一才职位列表:", res);
that.computeCode = 1;
if (res.pageBean.recordCount == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.pageBean.recordCount;
that.query.isFinish = res.pageBean.recordList.length;
if (res.pageBean.recordList && res.pageBean.recordList.length > 0) {
res.pageBean.recordList = that.G.toGetAddressv3(res.pageBean.recordList);
res.pageBean.recordList = that.G.toGetAge(res.pageBean.recordList);
res.pageBean.recordList = that.G.yijobCopy(res.pageBean.recordList);
}
if ($type == "init") {
that.query.list = [];
that.query.list =
res.pageBean.recordList && res.pageBean.recordList.length > 0
? res.pageBean.recordList.map((item, index) => {
return {
...item,
collected: item.collected ? true : false,
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
fuWuFei: that.G.setReturnFee(item.returnFee / 100, item.returnFeeType, 1),
gender: that.G.getGenderByMinAge(item),
recruitmentValue: item.recruitment == 1 ? true : false,
};
})
: [];
} else {
that.query.list = that.query.list.concat(
res.pageBean.recordList && res.pageBean.recordList.length > 0
? res.pageBean.recordList.map((item, index) => {
return {
...item,
collected: item.collected ? true : false,
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
fuWuFei: that.G.setReturnFee(item.returnFee / 100, item.returnFeeType, 1),
gender: that.G.getGenderByMinAge(item),
recruitmentValue: item.recruitment == 1 ? true : false,
};
})
: []
);
}
console.log("that.query.list ", that.query.list);
}
);
},
},
};
</script>
<style lang="less"></style>

@ -1,656 +0,0 @@
<template>
<view class="p-apply-inedx g_w_all g_h_all g_bg_f_5 g_kuaishou g-apply-tab">
<scroll-view class="m-list" :style="{ height: `calc(100vh - ${tabbarHeight}px)` }" :scroll-y="true" @scrolltolower="reachBottom">
<view class="g_h_all">
<!-- #ifdef APP-PLUS || H5 || MP-KUAISHOU || MP-WEIXIN -->
<view class="" :style="{ height: `calc(${from == 'tob' ? '58px + 50px' : '10px'})` }"></view>
<!-- #endif -->
<view class="">
<view class="m-box-fixed" :style="{ top: 0 }" v-if="isLogin && from == 'tob'">
<view style="background-color: #fff" class="">
<view class="m-select">
<view style="height: 52px" class="g_flex_row_between flex_center">
<view class="m-search g_pb_0 g_position_rela g_flex_1" style="padding-bottom: 0; padding-left: 12px; padding-right: 12px">
<u-search @btnSearch="getSearch" height="80" v-model="keyword" placeholder="搜索姓名/职位/手机号" bg-color="#f5f5f5" :show-action="false" @change="getSearch" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#999999" :maxlength="20"></u-search>
<!-- <view class="g_w_all g_h_40 g_position_abso" style="left: 0; top: 0px; z-index: 9999" @click.stop="goSearch"></view> -->
</view>
<view class="g_w_40 g_h_40 g_mr_10" @click="addResume">
<image src="https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/addresume.svg" class="g_w_all g_h_all"></image>
</view>
</view>
</view>
<!-- <view class="g_h_10 g_bg_f_5"></view> -->
</view>
<view style="width: 100vw" class="g_border_e_b">
<!-- item-width="126" itemWidth="auto" -->
<!-- {{query.isFinish}} -->
<u-tabs v-if="query.isFinish != -1" :list="tabInfo" :current="menuActive" :active-color="globalData.themeColor" bar-width="60" bar-height="6" font-size="32" @change="handleUpdateMenu" :gutter="22" duration="0.1" height="84" item-width="126" itemWidth="auto"></u-tabs>
</view>
</view>
<!-- <view class="g_h_10" v-if="isLogin"> </view> -->
<!-- 面板 -->
<gListApply :from="from" @uploadList="getList('concat')" bg="#f5f5f5" class="g_h_all" :classify="tabInfo[menuActive].classify" :list="query.list" :active="tabInfo.active" @shareJob="shareJob" :loading="loading" :speed="speed" :query="query" :isShowLoginBtn="isLogin ? false : true" :emptyText="isLogin ? (tabInfo.active == 0 || tabInfo.active == 2 ? '嘿,这里还没有数据呢' : '嘿,这里还没有数据呢') : '您还有没有登录,请登录后查看'" :emptySubText="isLogin ? (tabInfo.active == 0 ? '关注发单号,我们会第一时间通知您新的动态' : tabInfo.active == 2 ? '快去试试发布职位吧' : '') : ''" />
<!-- <g-list-bill :from="from" @uploadList="getList('concat')" bg="#f5f5f5" class="g_h_all" :classify="tabInfo[menuActive].classify" :list="query.list" :active="tabInfo.active" @shareJob="shareJob" :loading="loading" :speed="speed" :query="query" :isShowLoginBtn="isLogin ? false : true" :emptyText="isLogin ? (tabInfo.active == 0 || tabInfo.active == 2 ? '嘿,这里还没有数据呢' : '嘿,这里还没有数据呢') : '您还有没有登录,请登录后查看'" :emptySubText="isLogin ? (tabInfo.active == 0 ? '关注发单号,我们会第一时间通知您新的动态' : tabInfo.active == 2 ? '快去试试发布职位吧' : '') : ''" /> -->
<!-- <g-list-apply from="home" @uploadList="getList('concat')" bg="" class="" :tabActive="tabActive" :loading="loading" :speed="speed" :isLogin="isLogin" :query.sync="query" :navInfo="navInfo" /> -->
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import gListApply from "@/components/list/applyPage";
export default {
components: {
gListApply,
},
onReady() {
let that = this;
this.G.setNavStyle();
uni.$on("goNew", (res) => {
console.log("goNew", res);
console.log("goNewgoNewgoNewgoNew");
that.menuActive = 0;
if (res) {
that.menuActive = res;
}
that.getList();
});
},
onLoad(options) {
console.log(options);
},
props: {
from: {
type: String,
default: "tob",
},
},
// onShareAppMessage() {
// return this.G.shareFun();
// },
data() {
return {
globalData: getApp().globalData,
themeColor: getApp().globalData.themeColor,
tabbarHeight: uni.getStorageSync("TABBAR_HEIGHT"),
isHaveOrder: -1,
loading: true,
speed: -1,
query: {
page: 1,
size: 50,
list: [],
isFinish: -1,
},
GZHInfo: 0,
cdnBaseImg: this.G.store().cdnBaseImg,
keyword: "",
tabActive: 0,
tabTip: "",
tabInfo: [
{
name: "新简历",
classify: "50",
},
{
name: "推工作",
classify: "60",
},
{
name: "审核中",
classify: "40",
},
{
name: "跟面试",
classify: "70",
},
{
name: "跟入职",
classify: "80",
},
{
name: "跟在职",
classify: "90",
},
{
name: "已完成",
classify: "110",
},
// {
// name: "",
// classify: "120",
// },
],
menuActive: 0,
isLogin: false,
loginInfo: {},
navInfo: {},
};
},
onHide() {
let that = this;
},
mounted() {
let that = this;
//
that.isLogin = uni.getStorageSync("apply-token") ? true : false;
console.log("that.isLogin", that.isLogin);
that.loginInfo = uni.getStorageSync("apply-userinfo");
if (!that.isLogin) {
that.loading = false;
that.speed = 0;
} else {
this.query.page = 1;
this.getList();
}
this.getGZHInfo();
if (that.isLogin) {
this.getNum();
}
},
methods: {
reachBottom() {
let that = this;
console.log("简历工单isfinish:", that.query.isFinish, "size:", that.query.size);
if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
that.query.page++;
that.getList("concat");
}
},
addResume() {
uni.navigateTo({
url: "/root/detail/fellow?resumeFlag=1&type=add",
});
},
getNum() {
let that = this;
if (that.from == "tob") {
that.tabInfo = [
{
name: "新简历",
classify: "50",
},
{
name: "推工作",
classify: "60",
},
{
name: "审核中",
classify: "40",
},
{
name: "跟面试",
classify: "70",
},
{
name: "跟入职",
classify: "80",
},
{
name: "跟在职",
classify: "90",
},
{
name: "已完成",
classify: "110",
},
// {
// name: "",
// classify: "120",
// },
];
} else {
that.tabInfo = [
{
name: "已报名",
classify: "50",
},
{
name: "待审核",
classify: "60",
},
{
name: "待面试",
classify: "40",
},
{
name: "待入职",
classify: "70",
},
{
name: "已入职",
classify: "80",
},
{
name: "已离职",
classify: "90",
},
];
}
// that.tabInfo = [
// {
// name: "",
// classify: "50",
// },
// {
// name: "",
// classify: "60",
// },
// {
// name: "",
// classify: "40",
// },
// {
// name: "",
// classify: "70",
// },
// {
// name: "",
// classify: "80",
// },
// {
// name: "",
// classify: "90",
// },
// {
// name: "",
// classify: "110",
// },
// // {
// // name: "",
// // classify: "120",
// // },
// ];
that.G.Post(
that.api.status_num_list,
{
keys: that.keyword,
},
(res) => {
that.tabInfo.forEach((item) => {
for (const key in item) {
if (key == "classify") {
item.num = res.statusMap[key + item[key]];
}
}
if (that.from == "tob") {
item.name = `${item.name}(${item.num})`;
} else if (that.from == "toc") {
item.name = `${item.name}`;
}
});
that.$forceUpdate();
console.log("that.tabInfo", that.tabInfo);
},
);
},
getList($type = "init") {
let that = this;
console.log("是否登录", that.isLogin);
if (!that.isLogin) {
return false;
}
if ($type == "concat") {
that.loading = true;
}
// tob使
if (that.from == "tob") {
that.G.Post(
that.api.task_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
// agencyId: that.tabInfo.active == 2 ? uni.getStorageSync("apply-agencyId") : "",
// that.tabInfo.list[that.tabActive].classify
classify: that.tabInfo[that.menuActive].classify,
// classify: that.from == "tob" ? that.tabInfo[that.menuActive].classify : 0,
keys: that.keyword,
},
(res) => {
that.computeCode = 1;
let classify = that.tabInfo[that.menuActive].classify;
// console.log('reData',reData.data)
// res = reData.data;
res.recordList.forEach((item) => {
item.status_notify = that.G.setDeadLine(item.notifyTime || new Date().getTime());
item.status_after = that.G.setDeadLine(item.willEntryTime || new Date().getTime(), "后入职");
item.intervie_Time = that.G.getPointTime(item.interviewTime || new Date().getTime(), "MM--DD HH:MM");
item.willEntry_Time = that.G.getPointTime(item.willEntryTime || new Date().getTime(), "MM--DD HH:MM");
item.update_Time = that.G.getPointTime(item.updateTime || new Date().getTime(), "YY--MM--DD HH:MM");
item.entry_Time = that.G.getPointTime(item.entryTime || new Date().getTime(), "MM--DD HH:MM");
item.status_text = that.G.setDeadLine(item.entryTime || new Date().getTime(), "在职");
// || classify == 120
if (classify == 110) {
if (item.statusFailOperateTime) {
item.statusFailOperate_Time = that.G.getPointTime(item.statusFailOperateTime || new Date().getTime(), "MM--DD HH:MM");
} else if (item.leaveTime) {
item.statusFailOperate_Time = that.G.getPointTime(item.leaveTime || new Date().getTime(), "MM--DD HH:MM");
} else {
item.statusFailOperate_Time = "";
}
}
});
if (res.recordCount == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.recordCount;
that.query.isFinish = res.recordList.length;
console.log("$type", $type);
console.log("res.recordList", res.recordList);
if ($type == "init") {
that.query.list = [];
if (res.recordList.length > 0) {
that.query.list = res.recordList;
}
} else {
that.query.list = that.query.list.concat(res.recordList);
}
console.log("首页 列表:", that.query.list);
},
);
} else if (that.from == "toc") {
that.G.Post(
that.api.yi_my_apply_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
},
(res) => {
console.log("我的报名:", res);
that.computeCode = res.length;
if (res.length == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.length;
that.query.isFinish = res.length;
if (res && res.length > 0) {
res = that.G.toGetAddress(res);
res = that.G.toGetAge(res);
res = that.G.yijobCopy(res);
}
if ($type == "init") {
that.query.list = [];
that.query.list = res.map((item, index) => {
return {
...item,
createTime: that.G.getPointTime(item.createTime, "YY--MM--DD HH:MM"),
ageStr: that.setAge(item),
addresa: item.storeDistrict.split(",").join(" | "),
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
status_text: that.G.getOrderStatus().filter((itm, inx) => {
return itm.id == item.status;
})[0].name,
jobSpecialLabelNames: item.jobSpecialLabelNames ? item.jobSpecialLabelNames.split(",").filter((sub, i) => i < 3) : "",
};
});
} else {
that.query.list = that.query.list.concat(
res.map((item, index) => {
return {
...item,
createTime: that.G.getPointTime(item.createTime, "YY--MM--DD HH:MM"),
ageStr: that.setAge(item),
addresa: item.storeDistrict.split(",").join(" | "),
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
status_text: that.G.getOrderStatus().filter((itm, inx) => {
return itm.id == item.status;
})[0].name,
jobSpecialLabelNames: item.jobSpecialLabelNames ? item.jobSpecialLabelNames.split(",").filter((sub, i) => i < 3) : "",
};
}),
);
}
},
);
}
},
setAge(item) {
let str = "";
if (item.minAge && item.maxAge) {
item["age"] = item.minAge + "-" + item.maxAge + "岁";
} else if (item.minAge) {
item["age"] = item.minAge + "岁以上";
} else if (item.maxAge) {
item["age"] = item.maxAge + "岁以下";
} else {
let newArr = [item.minAgeMan, item.maxAgeMan, item.minAgeWoman, item.maxAgeWoman];
newArr.sort();
// console.log('newArr', newArr)
let minAge = newArr[0] == 0 ? newArr[2] : newArr[0];
let maxAge = newArr[3];
item["age"] = minAge + "-" + maxAge + "岁";
}
return item["age"];
},
goTel($item) {
console.log($item);
if ($item) {
uni.makePhoneCall({
phoneNumber: $item,
});
}
},
getGZHInfo() {
let that = this;
if (that.isLogin) {
that.G.Get(that.api.user_getGZHstatus, { type: "BMZS" }, (res) => {
console.log(res);
that.GZHInfo = res;
});
}
},
/**
* 跳转搜索页
*/
goSearch() {
this.G.isLogin();
if (this.G.isLogin()) {
uni.navigateTo({
url: `/root/other/search?from=task&classify=${this.tabInfo[this.menuActive].classify}`,
});
}
},
// tab
handleUpdateTab(e) {
let that = this;
this.tabActive = e;
this.menuActive = 0;
this.speed = -1;
this.query.page = 1;
that.G.isLogin();
if (that.G.isLogin()) {
this.getList();
}
},
// tab
handleUpdateMenu($item, $index) {
let that = this;
this.menuActive = $item;
this.speed = -1;
this.query.page = 1;
that.G.isLogin();
if (that.G.isLogin()) {
this.getList();
}
},
getSearch(e) {
console.log("搜索内容:", e);
let that = this;
that.keyword = e;
that.query.page = 1;
that.getList();
},
goDetail($item, $index) {
let that = this;
console.log("$item", $item);
// return
uni.navigateTo({
// url: "/root/detail/apply?id=" + $item.id + "&type=" + (that.tabActive + 1),
url: `/root/detail/apply?id=${$item.id}&type=${that.tabActive + 1}&relationId=${$item.relationId}`,
});
},
goLogin() {
uni.reLaunch({
url: "/root/login/index",
});
},
toMessage() {
uni.navigateTo({
url: "/root/person/message",
});
},
addResume() {
uni.navigateTo({
url: "/root/detail/fellow?resumeFlag=1&type=add",
});
},
},
onShareAppMessage: function () {
return this.G.shareFun();
},
};
</script>
<style lang="scss">
.apply-header {
position: fixed;
left: 50%;
transform: translateX(-50%);
.box {
padding: 0 2px;
width: 148px;
height: 32px;
background-color: #eeeeee;
border-radius: 4px;
.item {
width: 72px;
height: 28px;
margin-top: 2px;
border-radius: 4px;
.btn {
font-size: 14px;
color: #333;
}
}
.item-active {
background-color: #fff;
}
}
}
.p-apply-inedx {
width: 100vw;
background-color: #f5f5f5;
overflow-x: hidden;
min-height: 100%;
.bg_shawdoc {
background: linear-gradient(180deg, #caf1e0 1%, rgba(249, 249, 249, 0));
}
.suffix {
position: absolute;
right: 20rpx;
top: 10px;
z-index: 1;
border-top-right-radius: 110rpx;
border-bottom-right-radius: 110rpx;
}
.tab-fixed {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: calc(112rpx + 36px);
background-color: #fff;
z-index: 1;
}
.m-search {
.u-icon-wrap {
}
}
.m-search-active {
.u-icon-wrap {
position: inherit;
left: 0rpx;
}
}
.m-select {
.u-tab-bar {
bottom: 5px !important;
}
.link {
.item {
.doc {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
}
}
.showdoc {
// box-shadow: 0 2px 4px rgba(0, 0, 0, .04), 0 0 6px rgba(0, 0, 0, .02);
border-bottom: 1rpx solid #eee;
overflow-x: "auto";
width: 100vw;
.menu-obj {
min-width: 422px;
.menu-btn {
margin-right: 8px;
.btn {
background: rgba(204, 204, 204, 0.2);
color: #666666;
}
&:first-child {
margin-left: 12px;
}
}
.menu-active {
.btn {
background: rgba(0, 182, 102, 0.1);
color: v-bind(themeColor);
}
}
}
}
}
.m-login-false {
height: calc(100% - 92px);
.m-panel,
.link {
height: 100%;
.m-log {
height: 100%;
}
}
}
.m-panel {
min-height: 100%;
}
.m-box-fixed {
position: fixed;
left: 0;
// top: 92px;
width: 100vw;
background-color: #fff;
z-index: 999;
}
}
</style>

@ -1,208 +0,0 @@
<template>
<div class="tools_container g_pl_10 g_pr_10 g_pb_12">
<posterShare></posterShare>
</div>
</template>
<script>
import posterShare from "../posterShare.vue";
export default {
name: "tools",
data() {
return {
showPage: true,
imgList: [],
currentImg: "",
posterShow: false,
};
},
components: {
posterShare
},
onLoad() {},
created() {
setTimeout(() => {
this.showPage = false;
}, 2000);
for (let i = 0; i < 20; i++) {
this.imgList[i] = `https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/poster/a${i + 1}.png`;
}
console.log(this.imgList);
},
props: {
firstLoad: {
type: Boolean,
default: false,
},
},
watch: {
firstLoad(val) {
console.log("firstLoad", val);
if (val) {
this.showPage = true;
setTimeout(() => {
this.showPage = false;
}, 2000);
}
},
},
methods: {
getPoster(e) {
const that = this;
uni.showLoading({
title: "生成中...",
mask: true,
});
that.getWXCanvas(e).then((res) => {
console.log("res", res);
that.currentImg = res.tempFilePath;
that.posterShow = true;
uni.hideLoading();
});
},
//
getWXCanvas(sharelImg, type) {
const that = this;
return new Promise((resolve) => {
var mycenter = 0; //
var myheight = 0; //
const query = uni.createSelectorQuery().in(this);
query
.select("#canvasId")
.fields({
node: true,
size: true,
})
.exec((res) => {
console.log("uni 获取节点信息:", res);
// console.log("sharelImg", sharelImg);
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
new Promise(function (resolve) {
//
uni.getImageInfo({
src: sharelImg, //
success(res) {
console.log("res111", res);
canvas.width = res.width;
canvas.height = res.height;
mycenter = canvas.width / 2;
myheight = canvas.height;
const img = canvas.createImage();
img.src = res.path;
console.log("img111", img);
img.onload = (info) => {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
console.log("info111", info);
resolve(true);
};
},
fail(err) {},
});
}).then(() => {
console.log("inthen");
//使
that
.setShareJobImg(ctx, canvas, mycenter)
.then(function (canvas1) {
console.log("canvas1", canvas1);
uni.canvasToTempFilePath({
canvas: canvas1,
success(res) {
console.log("res222", res);
resolve(res);
},
fail(res) {
uni.hideLoading();
uni.showToast({
title: res.errMsg,
icon: "error",
});
},
});
})
.catch((err) => {
console.log(err);
uni.hideLoading();
uni.showToast({
title: "生成失败,请重试",
});
});
});
});
});
},
//
setShareJobImg(ctx, canvas, mycenter, funObj) {
let that = this;
let labelLeft = 0;
// ctx.arcTo()
let baseTop, QRSize;
baseTop = 470;
QRSize = 2 * 260;
return new Promise((imgres) => {
uni.getImageInfo({
src: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/poster/renhaiQRCode.png",
success(res) {
console.log("res333", res);
const img = canvas.createImage();
img.src = res.path;
img.onload = () => {
console.log("ctx", ctx);
console.log("canvas", canvas);
that.G.roundRect1(ctx, mycenter - 580 / 2, baseTop + 740, 580, 580, 0, "#fff");
that.G.roundRect(ctx, img, mycenter - res.width / 2 - 40, baseTop + 770, QRSize, QRSize, 0);
setTimeout(() => {
imgres(canvas);
}, 300);
};
},
fail(err) {
console.log(err);
},
});
});
},
saveImg() {
let that = this;
console.log("saveImg");
uni.saveImageToPhotosAlbum({
filePath: that.currentImg,
success(res) {
console.log(res);
if (res.errMsg == "saveImageToPhotosAlbum:ok") {
uni.showToast({
title: "保存成功 ",
icon: "none",
duration: 1500,
});
}
},
fail(res) {
console.log(res);
uni.showToast({
title: "图片保存失败",
icon: "none",
duration: 1500,
});
},
});
},
},
};
</script>
<style>
.tools_container {
min-height: 100vh;
background-color: #f5f5f5;
}
.list-image {
background-size: cover;
background-position: top center;
background-repeat: no-repeat;
}
</style>

@ -1,430 +0,0 @@
<template>
<div class="" style="overflow:hidden">
<!-- 今日数据 -->
<div class="g_bg_f g_radius_8 g_ml_10 g_mr_10 g_mt_10" v-if="isAdmin">
<div class="content g_flex_row_start g_h_92">
<div v-for="(i, index) in userNum" :key="i.type" :class="index > 0 ? 'g_border_f5_l' : ''" class="g_flex_1 g_text_c g_flex_column_center" @click="goDetail('/root/merchantManagement/todayData')">
<div class="g_fs_20 g_fw_600 g_c_3 g_mb_4">
{{ i.num || 0 }}
</div>
<div>
{{ i.label || "-" }}
</div>
</div>
</div>
</div>
<!-- 今日数据 -->
<div class="g_bg_f g_radius_8 g_ml_10 g_mr_10 g_mt_10" v-if="isAdmin">
<!-- <div class="title g_flex_row_between g_h_46 flex_center g_pl_12 g_pr_10 g_border_f5_b">
<div class="g_fw_600 g_fs_16">今日数据</div>
<div class="iconfont icon-gengduo11 g_c_9 g_fs_12 g_w_120 g_text_r" @click="goDetail('/root/merchantManagement/todayData')"></div>
</div> -->
<div class="content g_flex_row_start g_h_74">
<div v-for="(i, index) in todayData" :key="i.type" :class="index > 0 ? 'g_border_f5_l' : ''" class="g_flex_1 g_text_c g_flex_column_center" @click="goDetail('/root/merchantManagement/todayData')">
<div class="g_fs_20 g_fw_600 g_c_3 g_mb_4">
{{ map.agencyData[i.type] || 0 }}
</div>
<div>
{{ i.label || "-" }}
</div>
</div>
</div>
</div>
<div class="g_mt_10">
<g-panel-card-num :list="applyData" subhead="全部" titleNav="/root/person/enrollList?from=tob" :speed="1" :marginBottom="16" :height="26" :num="4" cusTitle="当前工单" @clickItem="handleClickNum">
<view v-if="hasNewResume > 0" style="font-size: 12px; color: #ffffff; background-color: #fa3534; display: inline-flex; justify-content: center; align-items: center; line-height: 24rpx; padding: 4rpx 8rpx; border-radius: 100rpx; z-index: 9">
{{ hasNewResume }}
</view>
</g-panel-card-num>
</div>
<div class="g_bg_f g_radius_8 g_mt_10 g_ml_10 g_mr_10" v-if="false">
<div class="title g_flex_row_between g_h_46 flex_center g_pl_12 g_pr_10 g_border_f5_b">
<div class="g_fw_600 g_fs_16">当前工单</div>
<div class="g_fs_14 g_flex_row_between flex_center g_position_rela" @click="goDetail('/root/person/enrollList?from=tob')"><i class="iconfont icon-gengduo11 g_c_9 g_fs_12 g_ml_4"></i><u-badge v-if="hasNewResume > 0" :offset="[-10, -10]" :count="hasNewResume"></u-badge></div>
</div>
<div class="content g_flex_row_start">
<div v-for="(i, index) in applyData" :key="i.classify" :class="index > 0 ? 'g_border_f5_l' : ''" @click="goDetail('/root/person/enrollList?from=tob', i)" class="g_text_c g_flex_column_center g_border_f5_b g_h_74" style="width: 25%; box-sizing: border-box">
<div class="g_fs_20 g_fw_600 g_c_3 g_mb_4">
{{ i.num || 0 }}
</div>
<div>
{{ i.name || "" }}
</div>
</div>
</div>
</div>
<!-- <div class="g_bg_f g_radius_8 g_mt_10 g_ml_10 g_mr_10">
<div class="title g_flex_row_between g_h_46 flex_center g_pl_12 g_pr_10 g_border_f5_b">
<div class="g_fw_600 g_fs_16">我的老乡</div>
<div class="g_fs_14 g_flex_row_between flex_center" @click="goDetail('/root/other/empty?type=我的老乡')"><i class="iconfont icon-gengduo11 g_c_9 g_fs_12 g_ml_4"></i></div>
</div>
<div class="content g_flex_row_start g_h_74">
<div v-for="(i, index) in townsManData" :key="i.type" :class="index > 0 && index < 4 ? 'g_border_f5_l' : ''" class="g_flex_1 g_text_c g_flex_column_center">
<div class="g_fs_20 g_fw_600 g_c_3 g_mb_4">
{{ i.type == "total" ? map.userBinded0 + map.userBinded1 : map[i.type] || map[i.type] === 0 ? map[i.type] : "" }}
</div>
<div>
{{ i.label || "" }}
</div>
</div>
</div>
</div> -->
<div class="g_mt_10 g_pb_40" v-if="isAdmin">
<g-panel-card-num :list="serverList" class="" :marginBottom="20" :height="32" :speed="1" :num="4" cusType="image" cusTitle="商家服务" @clickItem="handleClickNum" />
</div>
</div>
</template>
<script>
export default {
onLoad() {
this.getData();
},
data() {
return {
hasPermission: uni.getStorageSync("HAS_PERMISSION") == 1 ? true : false, //
isAdmin: uni.getStorageSync("IS_MINIAPP_ADMIN"), //
userNum: [
{
type: "total",
label: "总用户",
num: 320,
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "todayAdd",
label: "今日新增",
num: 23,
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "dua",
label: "今日活跃",
num: 42,
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "apply",
label: "今日报名",
num: 12,
path: "/root/merchantManagement/todayData?type=数据报表",
},
],
todayData: [
{
type: "signUps",
label: "约面",
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "arrived",
label: "到面",
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "passed",
label: "通过",
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "entry",
label: "入职",
path: "/root/merchantManagement/todayData?type=数据报表",
},
{
type: "obJob",
label: "在职",
path: "/root/merchantManagement/todayData?type=数据报表",
},
],
applyData: [
{
name: "新简历",
path: "/root/person/enrollList?from=tob&active=0",
classify: 50,
active: 0,
},
{
name: "推工作",
path: "/root/person/enrollList?from=tob&active=1",
classify: 60,
active: 1,
},
{
name: "审核中",
path: "/root/person/enrollList?from=tob&active=2",
classify: 40,
active: 2,
},
{
name: "跟面试",
path: "/root/person/enrollList?from=tob&active=3",
classify: 70,
active: 3,
},
{
name: "跟入职",
path: "/root/person/enrollList?from=tob&active=4",
classify: 80,
active: 4,
},
{
name: "跟在职",
path: "/root/person/enrollList?from=tob&active=5",
classify: 90,
active: 5,
},
{
name: "已完成",
path: "/root/person/enrollList?from=tob&active=6",
classify: 110,
active: 6,
},
],
// townsManData: [
// {
// type: "total",
// label: "",
// },
// {
// type: "userBinded1",
// label: "",
// },
// {
// type: "userBinded0",
// label: "",
// },
// {},
// {},
// ],
map: {
agencyData: {},
userBinded0: 0,
userBinded1: 0,
},
serverList: [],
hasNewApply: 0,
};
},
props: {
hasNewResume: {
default: 0,
},
},
created() {
let that = this;
let appId = getApp().globalData.appId;
uni.$on("updateMember", () => {
this.getMemberNum();
});
console.log("appId", appId);
// if (appId == "wx57e965905e6b4530") {
// this.serverList = [
// {
// name: "",
// icon: "cloud",
// iconType: 1,
// path: "/root/merchantManagement/platformJobList?type=",
// },
// {
// name: "",
// icon: "comment",
// iconType: 1,
// path: "/root/merchantManagement/relationUs?type=",
// },
// // {
// // name: "",
// // icon: "sound",
// // iconType: 1,
// // path: "/root/merchantManagement/dynamicNotice?type=",
// // },
// {
// name: "",
// icon: "team",
// iconType: 1,
// path: "/root/other/empty?type=",
// },
// {
// name: "",
// icon: "apartment",
// iconType: 1,
// path: "/root/other/empty?type=",
// },
// {
// name: "",
// icon: "bell",
// iconType: 1,
// path: "/root/merchantManagement/message?type=",
// },
// {
// name: "",
// icon: "earth",
// iconType: 1,
// path: "/root/other/empty?type=",
// },
// // {
// // name: "",
// // icon: "barchart",
// // iconType: 1,
// // path: "/root/merchantManagement/todayData?type=",
// // },
// {
// name: "",
// icon: "file-image",
// iconType: 1,
// path: "/root/merchantManagement/posterShare?type=",
// },
// {
// name: "",
// icon: "setting",
// iconType: 1,
// path: "/root/merchantManagement/setting?type=",
// },
// ];
// } else {
// }
this.getUserData();
this.getApplyNum();
this.getMemberNum();
this.setService();
},
methods: {
getMemberNum() {
let that = this;
that.G.Get(that.api.order_getNewApplyNumNotViewed, {}, (resapply) => {
that.hasNewApply = resapply;
that.setService();
that.$forceUpdate();
});
},
setService() {
//
this.serverList = [
{
name: "平台职位",
icon: "cloud",
iconType: 1,
path: "/root/merchantManagement/platformJobList?type=平台职位",
},
{
name: "海报分享",
icon: "file-image",
iconType: 1,
path: "/root/merchantManagement/posterShare?type=海报分享",
},
{
name: "团队管理",
icon: "team",
iconType: 1,
path: "/root/merchantManagement/teamManage",
tip: this.hasNewApply,
},
// {
// name: "",
// icon: "sound",
// iconType: 1,
// path: "/root/merchantManagement/dynamicNotice?type=",
// },
// {
// name: "",
// icon: "comment",
// iconType: 1,
// path: "/root/merchantManagement/relationUs?type=",
// },
// {
// name: "",
// icon: "barchart",
// iconType: 1,
// path: "/root/merchantManagement/todayData?type=",
// },
{
name: "谁看过我",
icon: "zhengyan1",
iconType: 1,
path: "/root/merchantManagement/watchedMe",
},
{
name: "配置",
icon: "setting",
iconType: 1,
path: "/root/merchantManagement/setting?type=配置",
},
];
},
getApplyNum() {
console.log("getApplyNum");
let that = this;
that.G.Post(
that.api.status_num_list,
{
keys: "",
},
(res) => {
console.log("res.statusMap", res.statusMap);
that.applyData.forEach((item) => {
for (const key in item) {
if (key == "classify") {
item.num = res.statusMap[key + item[key]];
}
}
});
that.$forceUpdate();
console.log("that.applyData", that.applyData);
}
);
},
getData() {
this.G.Get(this.api.person_dataValue, {}, (res) => {
console.log(res);
//
// for (var k in res) {
// if (typeof res[k] != "object") {
// res[k] = 0;
// } else {
// for (var j in res[k]) {
// res[k][j] = 0;
// }
// }
// }
this.map = res;
});
},
goDetail(e, _item) {
console.log("_item", _item);
if (_item) {
uni.navigateTo({
url: `${e}&active=${_item.active}`,
});
} else {
uni.navigateTo({
url: e,
});
}
},
handleClickNum(e) {
console.log("我的服务:", e);
this.G.isLogin();
if (this.G.isLogin()) {
uni.navigateTo({
url: e.item.path,
});
}
},
getUserData() {
let that = this;
this.G.Get(this.api.merchantManagement_userData, {}, (res) => {
console.log(res);
that.userNum.forEach((i) => {
i.num = res[i.type];
});
console.log("that.userNum", that.userNum);
});
},
},
};
</script>
<style></style>

@ -1,124 +0,0 @@
<template>
<view class="p-root-merchantManagement-dynamicNotice g_bg_f_5 g_p_10 g_pb_120" style="min-height: 100vh;padding-top: 24px;">
<view class="g_pt_10" hover-class="none" hover-stop-propagation="false">
<view class="g_mb_4 g_pl_10 g_c_6">预览</view>
<view class="g_flex_row_start flex_center g_bg_f g_radius_8" style="overflow: hidden">
<view class="g_flex_column_center g_h_48">
<image class="g_w_48 g_h_48" :src="noticeImg" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload=""> </image>
</view>
<u-notice-bar color="#333" padding="0rpx" :playState="playState" font-size="32" style="width: calc(100% - 54px)" :speed="100" :volume-icon="false" type="none" :list="noticList"></u-notice-bar>
</view>
</view>
<view class="g_mt_32">
<view class="g_mb_4 g_pl_10 g_c_6">公告内容</view>
<view class="g_bg_f g_pl_10 g_radius_8">
<u-input type="textarea" height="240" :customStyle="{ fontSize: '34rpx' }" :clearable="false" autoHeight :value="notice" @input="changeNotice"></u-input>
</view>
<view class="g_mt_32" hover-class="none" hover-stop-propagation="false">
<rh-button primaryColor='#3578f6' :type="isChange ? 'primary' : 'disabled'" btnText="提交" @clickBtn="subNameInfo"
:loading="isSubmit"
/>
</view>
</view>
</view>
</template>
<script>
export default {
onShareAppMessage() {
return this.G.shareFun();
},
onLoad(options) {
let appId = getApp().globalData.appId;
if (appId == "wx581db3f39c49ed2b") {
this.noticeImg = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/notice/yinghua.png";
} else if (appId == "wxcd0e4a001e1d87bd") {
this.noticeImg = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/notice/huipin.png";
} else if (appId == "wxd522e45fa0d4be09") {
this.noticeImg = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/notice/xindu.png";
} else if (appId == "wx15bc9c758f4eb129") {
this.noticeImg = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/notice/yexiaoman.png";
} else {
this.noticeImg = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/noticIcon.png";
}
console.log(this.appInfo);
var reg = /[\r\n]/g;
this.noticList[0] = this.appInfo.notice.replace(reg, "");
this.notice = this.appInfo.notice;
this.sqlStr = this.appInfo.notice;
this.playState = "play";
},
data() {
return {
sqlStr:'',
noticeImg: "",
noticList: [""],
notice: "",
playState: "paused",
appInfo: uni.getStorageSync("miniApp-info"),
isSubmit:false,
isChange:false,
};
},
methods: {
changeNotice(e) {
console.log(e);
let that = this;
if(that.sqlStr == e){
this.isChange = false;
}else{
this.isChange = true;
}
this.playState = "paused";
var reg = /[\r\n]/g;
this.notice = e;
this.noticList[0] = e.replace(reg, "");
this.playState = "play";
if (e == "") {
this.playState = "paused";
}
},
subNameInfo() {
let that = this;
if(!that.isChange){
return false;
}
that.isSubmit = true;
this.G.Put(this.api.merchantManagement_updateField, { fieldName: "notice", fieldValue: this.noticList[0] }, () => {
that.isSubmit = false;
uni.showToast({
title: "修改成功",
icon: "none",
});
that.isChange = false;
that.G.getAgencyInfo();
},()=>{
that.isSubmit = false;
});
// 使沿
},
},
};
</script>
<style lang="less">
.p-root-person-idform {
.m-submit {
.bocai_btn_type_infro {
background: #ccc !important;
color: #fff !important;
font-weight: 600 !important;
font-size: 18px !important;
}
}
.cardText {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
}
</style>

File diff suppressed because it is too large Load Diff

@ -1,129 +0,0 @@
<template>
<div class="g_bg_page g_pl_10 g_pr_10">
<div class="g_h_20"></div>
<div class="g_mb_10 g_fs_18 g_pl_10">{{ agencyInfo.inviteUserName || "-" }}邀请您加入他的团队</div>
<div class="r_box g_pt_24 g_pb_16 g_text_c">
<img class="g_h_80 g_w_80 g_radius_50" :src="agencyInfo.logo || 'https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/APP/default.svg'" alt="" />
<div class="g_fs_20 g_mt_12 g_mb_12 g_fw_600">
{{ agencyInfo.fullName || "-" }}
</div>
<div class="g_c_9 g_fs_14">
{{ agencyInfo.desp || "-" }}
</div>
</div>
<div class="g_mt_30">
<div class="g_fs_20 g_mb_8 g_pl_12">填写个人信息:</div>
<div class="r_box g_pl_10">
<u-input v-model="userInfo.userName" height="88" placeholder="请输入你的姓名"></u-input>
</div>
<div class="g_fs_12 g_c_9 g_pl_12">该名称会在团队成员列表显示创建人可以修改</div>
</div>
<div class="g_mt_84">
<rh-button primaryColor='#3578f6' v-if="applying == 0 && agencyInfo.agencyName" btnText="申请加入团队" type="primary" class="" @clickBtn="applyAdd"></rh-button>
<rh-button primaryColor='#3578f6' v-else-if="applying == 2" btnText="已加入" type="disabled" class=""></rh-button>
<rh-button primaryColor='#3578f6' v-else btnText="已申请" type="disabled" class=""></rh-button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
agencyInfo: {
agencyName: "",
fullName: "",
},
userInfo: {
userName: "",
userId: "",
},
applying: 0,
inviteUserId: "",
uid: "",
ing: false,
};
},
onLoad(options) {
console.log(options);
// options.scene = "id=3087_101125";
if (uni.getStorageSync("scene") || options.scene) {
console.log("XXXXXXXXXXXX");
//
var sceneStr = uni.getStorageSync("scene") ? decodeURIComponent(uni.getStorageSync("scene")) : decodeURIComponent(options.scene);
var sceneJson = this.G.sceneToJson(sceneStr);
console.log("sceneJson===", sceneJson);
this.inviteUserId = sceneJson.id.split("_")[1];
this.uid = sceneJson.id.split("_")[0];
this.G.checkToken().then((info) => {
console.log("info11", info);
if (!info.msg) {
this.userInfo = uni.getStorageSync("apply-userinfo");
this.getAgencyById();
this.checkHasApply();
uni.removeStorageSync("scene");
} else {
// uni.reLaunch({
// url: `/root/person/loginIndex?path='/root1/person/memberApplyAdd'&scene=${options.scene}`,
// });
uni.setStorageSync("scene", options.scene);
}
});
// uni.setStorageSync("AGENCY_USER_ID", this.userId);
}
},
created() {},
methods: {
applyAdd() {
let that = this;
if (!this.userInfo.userName) {
uni.showToast({
title: "请输入你的姓名",
icon: "none",
});
return;
}
if (this.ing) {
return;
}
that.ing = true;
this.G.Post(this.api.order_addApply, { agencyId: that.uid, username: this.userInfo.userName, inviteUserId: this.inviteUserId }, (res) => {
uni.showToast({
title: "申请成功",
icon: "none",
});
that.checkHasApply();
console.log(res);
});
},
getAgencyById() {
let that = this;
this.G.Get(this.api.order_getAgencyByIdForApply, { agencyId: that.uid, inviteUserId: this.inviteUserId }, (res) => {
console.log(res);
that.agencyInfo = res;
});
},
checkHasApply() {
let that = this;
this.G.Post(this.api.order_checkHasApply, { agencyId: that.uid, userId: this.userInfo.id }, (res) => {
if (res) {
if (res.userExist == 1) {
that.applying = 2;
} else {
that.applying = 1;
}
} else {
that.applying = 0;
}
that.ing = false;
console.log(res);
});
},
},
};
</script>
<style></style>

@ -1,513 +0,0 @@
<template>
<view class="p-root-bind-my-main g_flex_column_center flex_center g_w_all g_h_all g_bg_f_5 g_kuaishou" :style="{ 'background-image': showBg ? 'url(' + cdnBaseImg + 'share_bg.svg)' : '' }" :class="showBg ? 'g_pt_32' : ''">
<!-- #ifdef APP-PLUS || MP-WEIXIN -->
<image :src="shareJobImg" show-menu-by-longpress style="width: 343px; height: 555px; margin: 0 auto; display: block" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<canvas
:style="{
width: canvasWidth + 'px',
height: canvasHeight + 'px',
position: 'absolute',
left: '-2000px',
background: '#fff',
}"
canvas-id="text"
></canvas>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="canvas-card g_position_rela" id="canvas-card" style="background-image: url('https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/v3/bg.png')">
<view class="m-card g_position_abso" style="left: 50%; transform: translateX(-50%)">
<view class="g_w_all g_h_all g_position_rela">
<view class="g_pl_20 g_pt_18 g_pr_24">
<view class="">
<view class="g_fs_20 g_c_3 g_fw_600">{{ agencyName }}</view>
<view class="g_fs_14 g_c_9 g_mt_6">今日更新职位{{ recommendList.jobUpdateNum }}</view>
</view>
<view>
<image
:src="recommendList.logo"
style="border-radius: 50%; position: absolute; border: 2px solid #fff"
:style="{
width: appLogoSize / 2 + 'px',
height: appLogoSize / 2 + 'px',
top: appLogoTop,
right: appLogoLeft,
}"
></image>
</view>
</view>
<view class="g_flex_row_start g_pl_20" style="margin-top: 28px">
<view class="g_mr_12">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.jobNum }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">总职位</view>
</view>
<view class="g_mr_12">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.recruitmentJobNum.toString() }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">在招数</view>
</view>
<view class="">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.downNum }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">粉丝数</view>
</view>
</view>
</view>
</view>
<view class="m-logo g_flex_c">
<image
:src="wxCode"
style="position: absolute; left: 50%; transform: translateX(-50%)"
:style="{
width: appCodeSize / 2 + 'px',
height: appCodeSize / 2 + 'px',
top: appCodeTop,
}"
></image>
</view>
</view>
<!-- #endif -->
<view v-if="allowClick">
<view class="g_h_100"></view>
<rh-fixed>
<slot>
<view class="g_flex_row_center">
<!-- #ifdef APP-PLUS -->
<rh-button primaryColor='#3578f6' btnText="扫一扫" size="small" type="default" @clickBtn="handleOpenCamera"></rh-button>
<rh-button primaryColor='#3578f6' btnText="保存图片" class="g_ml_16" size="small" type="primary" @clickBtn="saveAppImageCanvas"></rh-button>
<!-- #endif -->
<!-- #ifdef H5 -->
<rh-button primaryColor='#3578f6' btnText="保存图片" size="small" type="primary" @clickBtn="saveH5ImageCanvas"></rh-button>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<rh-button primaryColor='#3578f6' btnText="保存图片" size="small" type="default" @clickBtn="saveWXImageToAlbum"></rh-button>
<rh-button primaryColor='#3578f6' btnText="直接转发" class="g_ml_16" size="small" openType="share" type="primary"></rh-button>
<!-- #endif -->
</view>
</slot>
</rh-fixed>
</view>
<!-- #ifdef MP-WEIXIN -->
<canvas type="2d" style="position: absolute; left: -2000px; width: 425px; height: 350px; background: #fff" id="canvasId" ref="canvasId"></canvas>
<!-- #endif -->
</view>
</template>
<script>
// #ifdef H5
import { saveAs } from "file-saver";
// #endif
export default {
onShow() {
this.getDetail();
},
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
let that = this;
return this.G.shareFun("/root/person/memberApplyAdd?scene=" + `id=${this.userInfo.agencyId}_${this.userInfo.id}`, this.shareImg, that.agencyInfo.fullName + "邀请您加入他的团队");
},
data() {
return {
localBaseImg: this.G.store().localBaseImg,
userInfo: uni.getStorageSync("apply-userinfo"),
agencyInfo: uni.getStorageSync("agencyInfo"),
cdnBaseImg: this.G.store().cdnBaseImg,
wxCode: "",
showBg: false,
appCodeSize: 0,
appLogoSize: 0,
appCodeTop: 0,
appLogoTop: 0,
appLogoLeft: 0,
agencyName: "",
shareJobImg: "",
allowClick: false,
appInfo: {},
appfile: null,
canvasWidth: 0,
canvasHeight: 0,
recommendList: {},
};
},
props: {},
created() {
let that = this;
uni.getImageInfo({
src: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png", //
success(res) {
that.canvasWidth = res.width;
that.canvasHeight = res.height;
},
});
// #ifdef MP-WEIXIN || H5
this.init();
uni.showLoading({
title: "生成中...",
});
// #endif
},
watch: {
shareJobImg(newValue, oldValue) {
if (newValue) {
uni.hideLoading();
}
},
recommendList(val) {
let that = this;
// #ifdef APP-PLUS || MP-KUAISHOU || MP-TOUTIAO
console.log("watch:", val);
uni.showLoading({
title: "生成中...",
});
that.appInfo = val;
this.init();
// #endif
},
// $route: "init",
},
methods: {
init() {
let that = this;
that.appInfo = that.recommendList;
console.log("that.appInfo", that.appInfo);
// #ifdef APP-PLUS || MP-KUAISHOU
let _env = "app";
// #endif
// #ifdef H5
let _env = "app";
// #endif
// #ifdef MP-WEIXIN
let _env = uni.getAccountInfoSync().miniProgram.envVersion;
// #endif
that.G.Get(
// that.api.order_getCompanyQRCode,
that.api.inviteImageForZgb,
{
env: _env,
},
(res) => {
console.log("获取邀请码:", res);
that.wxCode = "https://daotian.matripe.com.cn" + res.qrcode;
that.agencyName = res.agencyName;
// #ifdef MP-WEIXIN
console.log("canvasRes1");
that.getWXCanvas("https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png").then((canvasRes) => {
console.log("canvasRes", canvasRes);
that.shareJobImg = canvasRes.tempFilePath;
that.allowClick = true;
// that.$emit("setImg", that.shareJobImg);
});
// that.$emit("exportCode", {
// code: res.code,
// agencyName: res.agencyName,
// });
// #endif
// #ifdef H5
that.appCodeSize = uni.getSystemInfoSync().windowWidth * (122 / 375) * 2;
that.appCodeTop = (((uni.getSystemInfoSync().windowWidth - 32) * 2248) / 1372) * (290 / 562) + "px";
that.appLogoSize = uni.getSystemInfoSync().windowWidth * (68 / 375) * 2;
that.appLogoTop = (((uni.getSystemInfoSync().windowWidth - 32) * 2248) / 1372) * (36 / 562) - uni.getSystemInfoSync().windowWidth * 0.046 + "px";
that.appLogoLeft = (uni.getSystemInfoSync().windowWidth - 74) * (24 / 303) + uni.getSystemInfoSync().windowWidth * 0.00065 + "px";
uni.hideLoading();
that.allowClick = true;
// that.$emit("exportCode", {
// code: res.code,
// agencyName: res.agencyName,
// });
// #endif
// #ifdef APP-PLUS || MP-KUAISHOU
uni.hideLoading();
that.allowClick = true;
that.getAppCanvas("https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png");
console.log("canvasRes12");
// #endif
}
);
},
// App
getAppCanvas(sharelImg, type) {
let that = this,
ctx = uni.createCanvasContext("text");
let info = that.appInfo;
new Promise(function (resolve) {
//
uni.downloadFile({
url: sharelImg,
success: function (bgRes) {
uni.getImageInfo({
src: bgRes.tempFilePath, //
success(res) {
let _width = res.width;
let _height = res.height;
ctx.drawImage(bgRes.tempFilePath, 0, 0, _width, _height);
uni.downloadFile({
url: info.logo,
success: function (bgRes) {
that.G.roundRect(ctx, bgRes.tempFilePath, 915, 218, 272, 272, 136); // logo
uni.downloadFile({
url: that.wxCode,
success: function (QRres) {
that.G.roundRect(ctx, QRres.tempFilePath, (_width - 488) / 2, 1160, 488, 488, 0);
that.G.fillTextLineBreak(ctx, info.agencyName, 140, 300, info.agencyName.length * 80, 80, "#333", 80, 600, "left"); //
// that.G.fillTextLineBreak(ctx, "" + info.jobUpdateNum, 140, 400, ("" + info.jobUpdateNum).length * 56, 56, "#999", 56, 500, "left"); //
that.G.fillTextLineBreak(ctx, info.jobNum.toString(), 230, 620, info.jobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.recruitmentJobNum.toString(), 480, 620, info.recruitmentJobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.downNum.toString(), 730, 620, info.downNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, "总职位", 230, 700, "总职位".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "在招数", 480, 700, "在招数".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "粉丝数", 730, 700, "粉丝数".length * 56, 56, "#999", 56, 500); //
ctx.restore();
ctx.draw(false, () => {
setTimeout(function () {
that.endAppCanvas(ctx, _width, _height);
}, 50);
});
},
});
},
});
},
fail(err) {},
});
},
});
}).then(() => {});
},
endAppCanvas(ctx, _width, _height) {
let that = this;
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: _width,
height: _height,
canvasId: "text",
success: function (pathRres) {
const savedFilePath = pathRres.tempFilePath; //
const path = plus.io.convertLocalFileSystemURL(savedFilePath); //
const fileReader = new plus.io.FileReader();
fileReader.readAsDataURL(path);
fileReader.onloadend = (res) => {
that.shareJobImg = res.target.result;
that.appfile = savedFilePath;
};
},
});
},
//
getWXCanvas(sharelImg, type) {
const that = this;
return new Promise((resolve) => {
var mycenter = 0; //
var myheight = 0; //
const query = uni.createSelectorQuery().in(this);
query
.select("#canvasId")
.fields({
node: true,
size: true,
})
.exec((res) => {
console.log("uni 获取节点信息:", res);
console.log("sharelImg", sharelImg);
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
new Promise(function (resolve) {
//
uni.getImageInfo({
src: sharelImg, //
success(res) {
console.log("res111", res);
canvas.width = res.width;
canvas.height = res.height;
mycenter = canvas.width;
myheight = canvas.height;
const img = canvas.createImage();
img.src = res.path;
console.log("img111", img);
img.onload = (info) => {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
console.log("info111", info);
resolve(true);
};
},
fail(err) {
console.log("err", err);
},
});
}).then(() => {
//使
this.setShareJobImg(ctx, canvas, mycenter)
.then(function (canvas1) {
console.log("canvas1", canvas1);
uni.canvasToTempFilePath({
canvas: canvas1,
success(res) {
console.log("res222", res);
resolve(res);
},
fail(res) {
uni.hideLoading();
uni.showToast({
title: res.errMsg,
icon: "error",
});
},
});
})
.catch((err) => {
uni.hideLoading();
uni.showToast({
title: "生成失败,请重试",
});
});
});
});
});
},
//
saveWXImageToAlbum() {
let that = this;
uni.saveImageToPhotosAlbum({
filePath: that.shareJobImg,
success() {
uni.showToast({
title: "保存成功",
});
},
fail(err) {
uni.showToast({
title: "保存失败, 请重试",
});
},
});
},
// H5
saveH5ImageCanvas() {
let that = this;
// #ifdef H5
// #endif
},
// APP
saveAppImageCanvas() {
let that = this;
uni.saveImageToPhotosAlbum({
filePath: that.appfile,
success() {
uni.showToast({
title: "保存成功",
icon: "success",
});
},
fail() {
uni.showToast({
title: "保存失败",
icon: "none",
});
},
});
},
//
setShareJobImg(ctx, canvas, mycenter, funObj) {
let that = this;
return new Promise((imgres) => {
uni.getImageInfo({
src: that.wxCode,
success(res) {
const img = canvas.createImage();
console.log("res333", res);
img.src = res.path;
img.onload = () => {
that.G.roundRect(ctx, img, (mycenter - 488) / 2, 1160, 488, 488, 0);
let info = that.recommendList;
console.log("info", info);
if (!info.logo) {
info.logo = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/ibocai/defaultAvatar.png";
}
console.log("that.recommendList333", that.recommendList);
uni.getImageInfo({
src: info.logo,
success(res) {
console.log("res444", res);
const img = canvas.createImage();
img.src = res.path;
img.onload = () => {
that.G.roundRect(ctx, img, 915, 218, 272, 272, 136); // logo
that.G.fillTextLineBreak(ctx, info.fullName, 140, 300, info.fullName.length * 80, 80, "#333", 80, 600, "left"); //
// that.G.fillTextLineBreak(ctx, "" + info.jobUpdateNum, 140, 400, ("" + info.jobUpdateNum).length * 56, 56, "#999", 56, 500, "left"); //
that.G.fillTextLineBreak(ctx, info.jobNum.toString(), 230, 620, info.jobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.recruitmentJobNum.toString(), 480, 620, info.recruitmentJobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.downNum.toString(), 730, 620, info.downNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, "总职位", 230, 700, "总职位".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "在招数", 480, 700, "在招数".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "粉丝数", 730, 700, "粉丝数".length * 56, 56, "#999", 56, 500); //
imgres(canvas);
};
},
fail(err) {},
});
};
},
fail(err) {},
});
});
},
getDetail() {
let that = this;
that.G.Get(
that.api.bind_enterpriseDetail + "/" + uni.getStorageSync("apply-agencyId"),
{
agencyId: uni.getStorageSync("apply-agencyId"),
type: 1,
},
(res) => {
console.log("recommendList", res);
that.recommendList = { ...res, fullName: res.fullName ? res.fullName : res.userName };
console.log("--", that.recommendList);
}
);
},
//
handleOpenCamera() {
let that = this;
that.G.handleScanCode();
},
},
};
</script>
<style lang="scss">
.p-root-bind-my-main {
background-size: 100% 100%;
background-repeat: no-repeat;
.canvas-card {
background-size: 100% 100%;
background-repeat: no-repeat;
width: calc(100vw - 32px);
height: calc(calc(100vw - 32px) * 2248 / 1372);
}
.m-card {
top: calc(calc(calc(100vw - 32px) * 2248 / 1372) * (36 / 562));
border-radius: 15px;
width: calc(100vw - 74px);
height: calc(calc(calc(100vw - 32px) * 2248 / 1372) * (198 / 562));
}
}
</style>

@ -1,553 +0,0 @@
<template>
<view class="p-root-bind-my-main flex_center g_w_all g_bg_page g_kuaishou " :style="{ 'background-image': showBg ? 'url(' + cdnBaseImg + 'share_bg.svg)' : '' }" >
<view class="g_h_32"></view>
<!-- #ifdef APP-PLUS || MP-WEIXIN -->
<image :src="shareJobImg" show-menu-by-longpress style="width: 343px; height: 555px; margin: 0 auto; display: block" mode=""></image>
<view class="g_text_c g_fs_16 g_mt_12 g_mb_32 g_fw_600">长按图片转发给微信好友</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<canvas
:style="{
width: canvasWidth + 'px',
height: canvasHeight + 'px',
position: 'absolute',
left: '-2000px',
background: '#fff',
}"
canvas-id="text"
></canvas>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="canvas-card g_position_rela" id="canvas-card" style="background-image: url('https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/v3/bg.png')">
<view class="m-card g_position_abso" style="left: 50%; transform: translateX(-50%)">
<view class="g_w_all g_h_all g_position_rela">
<view class="g_pl_20 g_pt_18 g_pr_24">
<view class="">
<view class="g_fs_20 g_c_3 g_fw_600">{{ agencyName }}</view>
<view class="g_fs_14 g_c_9 g_mt_6">今日更新职位{{ recommendList.jobUpdateNum }}</view>
</view>
<view>
<image
:src="recommendList.logo"
style="border-radius: 50%; position: absolute; border: 2px solid #fff"
:style="{
width: appLogoSize / 2 + 'px',
height: appLogoSize / 2 + 'px',
top: appLogoTop,
right: appLogoLeft,
}"
></image>
</view>
</view>
<view class="g_flex_row_start g_pl_20" style="margin-top: 28px">
<view class="g_mr_12">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.jobNum }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">总职位</view>
</view>
<view class="g_mr_12">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.recruitmentJobNum.toString() }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">在招数</view>
</view>
<view class="">
<view class="g_fs_22 g_c_3 g_flex_row_center g_fw_600">{{ recommendList.downNum }}</view>
<view class="g_fs_14 g_c_9 g_mt_4 g_flex_row_center">粉丝数</view>
</view>
</view>
</view>
</view>
<view class="m-logo g_flex_c">
<image
:src="wxCode"
style="position: absolute; left: 50%; transform: translateX(-50%)"
:style="{
width: appCodeSize / 2 + 'px',
height: appCodeSize / 2 + 'px',
top: appCodeTop,
}"
></image>
</view>
</view>
<!-- #endif -->
<view v-if="allowClick && false">
<view class="g_h_100"></view>
<rh-fixed>
<slot>
<view class="g_flex_row_center">
<!-- #ifdef APP-PLUS -->
<rh-button primaryColor='#3578f6' btnText="扫一扫" size="small" type="default" @clickBtn="handleOpenCamera"></rh-button>
<rh-button primaryColor='#3578f6' btnText="保存图片" class="g_ml_16" size="small" type="primary" @clickBtn="saveAppImageCanvas"></rh-button>
<!-- #endif -->
<!-- #ifdef H5 -->
<rh-button primaryColor='#3578f6' btnText="保存图片" size="small" type="primary" @clickBtn="saveH5ImageCanvas"></rh-button>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<rh-button primaryColor='#3578f6' btnText="保存图片" size="small" type="default" @clickBtn="saveWXImageToAlbum"></rh-button>
<rh-button primaryColor='#3578f6' btnText="直接转发" class="g_ml_16" size="small" openType="share" type="primary"></rh-button>
<!-- #endif -->
</view>
</slot>
</rh-fixed>
</view>
<!-- #ifdef MP-WEIXIN -->
<canvas type="2d" style="position: absolute; left: -2000px; width: 425px; height: 350px; background: #fff" id="canvasId" ref="canvasId"></canvas>
<!-- #endif -->
</view>
</template>
<script>
// #ifdef H5
import { saveAs } from "file-saver";
// #endif
export default {
onShow() {
this.getDetail();
},
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
let that = this;
return this.G.shareFun("/root/person/memberApplyAdd?scene=" + `id=${this.userInfo.agencyId}_${this.userInfo.id}`, this.shareImg, that.agencyInfo.fullName + "邀请您加入他的团队");
},
data() {
return {
localBaseImg: this.G.store().localBaseImg,
userInfo: uni.getStorageSync("apply-userinfo"),
agencyInfo: uni.getStorageSync("agencyInfo"),
cdnBaseImg: this.G.store().cdnBaseImg,
wxCode: "",
showBg: false,
appCodeSize: 0,
appLogoSize: 0,
appCodeTop: 0,
appLogoTop: 0,
appLogoLeft: 0,
agencyName: "",
shareJobImg: "",
allowClick: false,
appInfo: {},
appfile: null,
canvasWidth: 0,
canvasHeight: 0,
recommendList: {},
};
},
props: {},
created() {
let that = this;
uni.getImageInfo({
src: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png", //
success(res) {
that.canvasWidth = res.width;
that.canvasHeight = res.height;
},
});
// #ifdef MP-WEIXIN || H5
this.init();
uni.showLoading({
title: "生成中...",
});
// #endif
},
watch: {
shareJobImg(newValue, oldValue) {
if (newValue) {
uni.hideLoading();
}
},
recommendList(val) {
let that = this;
// #ifdef APP-PLUS || MP-KUAISHOU || MP-TOUTIAO
console.log("watch:", val);
uni.showLoading({
title: "生成中...",
});
that.appInfo = val;
this.init();
// #endif
},
// $route: "init",
},
methods: {
init() {
let that = this;
console.log("that.G.store().baseUrl", that.G.store().baseUrl);
let baseUrl = that.G.store().baseUrl;
that.appInfo = that.recommendList;
console.log("that.appInfo", that.appInfo);
// #ifdef APP-PLUS || MP-KUAISHOU
let _env = "app";
// #endif
// #ifdef H5
let _env = "app";
// #endif
// #ifdef MP-WEIXIN
let _env = uni.getAccountInfoSync().miniProgram.envVersion;
// #endif
that.G.Get(
// that.api.order_getCompanyQRCode,
that.api.inviteImageH5,
{
env: _env,
},
(res) => {
console.log("获取邀请码:", res);
that.wxCode = baseUrl + res.qrcode;
// that.wxCode = "https://daotian.matripe.com.cn" + res.qrcode;
that.agencyName = res.agencyName;
// #ifdef MP-WEIXIN
console.log("canvasRes1");
that.getWXCanvas("https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png").then((canvasRes) => {
console.log("canvasRes", canvasRes);
that.shareJobImg = canvasRes.tempFilePath;
that.allowClick = true;
// that.$emit("setImg", that.shareJobImg);
});
// that.$emit("exportCode", {
// code: res.code,
// agencyName: res.agencyName,
// });
// #endif
// #ifdef H5
that.appCodeSize = uni.getSystemInfoSync().windowWidth * (122 / 375) * 2;
that.appCodeTop = (((uni.getSystemInfoSync().windowWidth - 32) * 2248) / 1372) * (290 / 562) + "px";
that.appLogoSize = uni.getSystemInfoSync().windowWidth * (68 / 375) * 2;
that.appLogoTop = (((uni.getSystemInfoSync().windowWidth - 32) * 2248) / 1372) * (36 / 562) - uni.getSystemInfoSync().windowWidth * 0.046 + "px";
that.appLogoLeft = (uni.getSystemInfoSync().windowWidth - 74) * (24 / 303) + uni.getSystemInfoSync().windowWidth * 0.00065 + "px";
uni.hideLoading();
that.allowClick = true;
// that.$emit("exportCode", {
// code: res.code,
// agencyName: res.agencyName,
// });
// #endif
// #ifdef APP-PLUS || MP-KUAISHOU
uni.hideLoading();
that.allowClick = true;
that.getAppCanvas("https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/joinTeam.png");
console.log("canvasRes12");
// #endif
}
);
},
// App
getAppCanvas(sharelImg, type) {
let that = this,
ctx = uni.createCanvasContext("text");
let info = that.appInfo;
new Promise(function (resolve) {
//
uni.downloadFile({
url: sharelImg,
success: function (bgRes) {
uni.getImageInfo({
src: bgRes.tempFilePath, //
success(res) {
let _width = res.width;
let _height = res.height;
ctx.drawImage(bgRes.tempFilePath, 0, 0, _width, _height);
uni.downloadFile({
url: info.logo,
success: function (bgRes) {
that.G.roundRect(ctx, bgRes.tempFilePath, 915, 218, 272, 272, 136); // logo
uni.downloadFile({
url: that.wxCode,
success: function (QRres) {
that.G.roundRect(ctx, QRres.tempFilePath, (_width - 488) / 2, 1160, 488, 488, 0);
that.G.fillTextLineBreak(ctx, info.agencyName, 140, 300, info.agencyName.length * 80, 80, "#333", 80, 600, "left"); //
// that.G.fillTextLineBreak(ctx, "" + info.jobUpdateNum, 140, 400, ("" + info.jobUpdateNum).length * 56, 56, "#999", 56, 500, "left"); //
that.G.fillTextLineBreak(ctx, info.jobNum.toString(), 230, 620, info.jobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.recruitmentJobNum.toString(), 480, 620, info.recruitmentJobNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, info.downNum.toString(), 730, 620, info.downNum.toString().length * 88, 88, "#333", 88, 600); //
that.G.fillTextLineBreak(ctx, "总职位", 230, 700, "总职位".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "在招数", 480, 700, "在招数".length * 56, 56, "#999", 56, 500); //
that.G.fillTextLineBreak(ctx, "粉丝数", 730, 700, "粉丝数".length * 56, 56, "#999", 56, 500); //
ctx.restore();
ctx.draw(false, () => {
setTimeout(function () {
that.endAppCanvas(ctx, _width, _height);
}, 50);
});
},
});
},
});
},
fail(err) {},
});
},
});
}).then(() => {});
},
endAppCanvas(ctx, _width, _height) {
let that = this;
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: _width,
height: _height,
canvasId: "text",
success: function (pathRres) {
const savedFilePath = pathRres.tempFilePath; //
const path = plus.io.convertLocalFileSystemURL(savedFilePath); //
const fileReader = new plus.io.FileReader();
fileReader.readAsDataURL(path);
fileReader.onloadend = (res) => {
that.shareJobImg = res.target.result;
that.appfile = savedFilePath;
};
},
});
},
//
getWXCanvas(sharelImg, type) {
const that = this;
return new Promise((resolve) => {
var mycenter = 0; //
var myheight = 0; //
const query = uni.createSelectorQuery().in(this);
query
.select("#canvasId")
.fields({
node: true,
size: true,
})
.exec((res) => {
console.log("uni 获取节点信息:", res);
console.log("sharelImg", sharelImg);
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
new Promise(function (resolve) {
//
uni.getImageInfo({
src: sharelImg, //
success(res) {
console.log("res111", res);
canvas.width = res.width;
canvas.height = res.height;
mycenter = canvas.width;
myheight = canvas.height;
const img = canvas.createImage();
img.src = res.path;
console.log("img111", img);
that.G.roundRect1(ctx, 0, 0, canvas.width, canvas.height, 0, "#e5e8ef");
that.G.roundRect1(ctx, 50, 110, canvas.width - 100, canvas.height - 220, 0, "#fff");
// ctx.shadowColor = "transparent";
// ctx.shadowBlur = 0;
// ctx.shadowOffsetX = 0;
// ctx.shadowOffsetY = 0;
img.onload = (info) => {
// ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
// console.log("info111", info);
resolve(true);
};
},
fail(err) {
console.log("err", err);
},
});
}).then(() => {
//使
this.setShareJobImg(ctx, canvas, mycenter)
.then(function (canvas1) {
console.log("canvas1", canvas1);
uni.canvasToTempFilePath({
canvas: canvas1,
success(res) {
console.log("res222", res);
resolve(res);
},
fail(res) {
uni.hideLoading();
uni.showToast({
title: res.errMsg,
icon: "error",
});
},
});
})
.catch((err) => {
uni.hideLoading();
uni.showToast({
title: "生成失败,请重试",
});
});
});
});
});
},
//
saveWXImageToAlbum() {
let that = this;
uni.saveImageToPhotosAlbum({
filePath: that.shareJobImg,
success() {
uni.showToast({
title: "保存成功",
});
},
fail(err) {
uni.showToast({
title: "保存失败, 请重试",
});
},
});
},
// H5
saveH5ImageCanvas() {
let that = this;
// #ifdef H5
// #endif
},
// APP
saveAppImageCanvas() {
let that = this;
uni.saveImageToPhotosAlbum({
filePath: that.appfile,
success() {
uni.showToast({
title: "保存成功",
icon: "success",
});
},
fail() {
uni.showToast({
title: "保存失败",
icon: "none",
});
},
});
},
//
setShareJobImg(ctx, canvas, mycenter, funObj) {
let that = this;
console.log("that.recommendList333", that.recommendList);
return new Promise((imgres) => {
uni.getImageInfo({
src: that.wxCode,
success(res) {
const img = canvas.createImage();
console.log("res333", res);
img.src = res.path;
img.onload = () => {
// ctx.save(); //
// ctx.shadowColor = "#000";
// ctx.shadowBlur = parseInt(49);
// ctx.shadowOffsetX = parseInt(0);
// ctx.shadowOffsetY = parseInt(0);
// ctx.restore(); //
//
that.G.roundRect1(ctx, (mycenter - 1000) / 2, canvas.height - 1400, 1000, 1150, 0, "#f8f8fa");
that.G.fillTextLineBreak(ctx, "长按识别二维码,加入企业", (mycenter - "长按识别二维码,加入企业".length * 50) / 2, 1120, "长按识别二维码, 加入企业".length * 50, 50, "#999", 50, 500, "center"); //
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
// 0
tomorrow.setHours(0, 0, 0, 0);
//
let time = that.G.getPointTime(tomorrow.getTime() + 3 * 24 * 60 * 60 * 1000, "MM--DD");
that.G.fillTextLineBreak(ctx, `该二维码${time}前有效`, (mycenter - `该二维码${time}前有效`.length * 45) / 2, canvas.height - 420, `该二维码${time}前有效`.length * 50, 50, "#999", 50, 500, "center"); //
that.G.roundRect(ctx, img, (mycenter - 600) / 2, 1160, 600, 600, 0);
let info = that.recommendList;
console.log("info", info);
if (!info.logo) {
info.logo = "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/ibocai/defaultAvatar.png";
}
console.log("that.recommendList333", that.recommendList);
uni.getImageInfo({
src: info.logo,
success(res) {
console.log("res444", res);
const img = canvas.createImage();
img.src = res.path;
img.onload = () => {
that.G.roundRect(ctx, img, (mycenter - 172) / 2, 1360, 172, 172, 0); // logo
that.G.fillTextLineBreak(ctx, info.fullName, (mycenter - info.fullName.length * 80) / 2, 350, info.fullName.length * 80, 80, "#000", 80, 600, "center"); //
that.G.roundRect1(ctx, (mycenter - info.fullName.length * 60) / 2, 440, info.fullName.length * 60, 14, 0, "#caad7a");
that.G.fillTextLineBreak(ctx, "加入企业与同事一起高效协作", (mycenter - "加入企业与同事一起高效协作".length * 60) / 2, 600, "加入企业与同事一起高效协作".length * 60, 60, "#666", 60, 500, "center"); //
// that.G.fillTextLineBreak(ctx, "" + info.jobUpdateNum, 140, 400, ("" + info.jobUpdateNum).length * 56, 56, "#999", 56, 500, "left"); //
// that.G.fillTextLineBreak(ctx, info.jobNum.toString(), 230, 620, info.jobNum.toString().length * 88, 88, "#333", 88, 600); //
// that.G.fillTextLineBreak(ctx, info.recruitmentJobNum.toString(), 480, 620, info.recruitmentJobNum.toString().length * 88, 88, "#333", 88, 600); //
// that.G.fillTextLineBreak(ctx, info.downNum.toString(), 730, 620, info.downNum.toString().length * 88, 88, "#333", 88, 600); //
// that.G.fillTextLineBreak(ctx, "", 230, 700, "".length * 56, 56, "#999", 56, 500); //
// that.G.fillTextLineBreak(ctx, "", 480, 700, "".length * 56, 56, "#999", 56, 500); //
// that.G.fillTextLineBreak(ctx, "", 730, 700, "".length * 56, 56, "#999", 56, 500); //
imgres(canvas);
};
},
fail(err) {},
});
};
},
fail(err) {},
});
});
},
getDetail() {
let that = this;
that.G.Get(
that.api.bind_enterpriseDetail + "/" + uni.getStorageSync("apply-agencyId"),
{
agencyId: uni.getStorageSync("apply-agencyId"),
type: 1,
},
(res) => {
console.log("recommendList", res);
that.recommendList = { ...res, fullName: res.fullName ? res.fullName : res.userName };
console.log("--", that.recommendList);
}
);
},
//
handleOpenCamera() {
let that = this;
that.G.handleScanCode();
},
},
};
</script>
<style lang="scss">
.p-root-bind-my-main {
background-size: 100% 100%;
background-repeat: no-repeat;
.canvas-card {
background-size: 100% 100%;
background-repeat: no-repeat;
width: calc(100vw - 32px);
height: calc(calc(100vw - 32px) * 2248 / 1372);
}
.m-card {
top: calc(calc(calc(100vw - 32px) * 2248 / 1372) * (36 / 562));
border-radius: 15px;
width: calc(100vw - 74px);
height: calc(calc(calc(100vw - 32px) * 2248 / 1372) * (198 / 562));
}
}
</style>

@ -1,173 +0,0 @@
<template>
<div class="p-merchantManagement-container g_bg_page">
<div v-show="currentPage === 0" class="">
<workbench :hasNewResume="hasNewResume" :hasNewApply="hasNewApply"></workbench>
</div>
<div v-if="currentPage === (isAdmin ? 1 : 2)">
<jobList :show="showJob" :cuindex="cuindex"></jobList>
</div>
<div v-if="currentPage === (isAdmin ? 2 : 1)">
<resumeNew />
</div>
<div v-show="currentPage === 3">
<tools :firstLoad="firstLoad"></tools>
</div>
<u-tabbar :iconSize="48" imgType="custom" v-model="currentPage" :hideTabBar="false" :list="list" :active-color="themeColor" :before-switch="handleTab" class="tabbar" iconSize="48" @change="handleChange"></u-tabbar>
</div>
</template>
<script>
import workbench from "./child/workbench.vue";
import jobList from "./child/jobList.vue";
import tools from "./child/tools.vue";
import resumeNew from "./child/resumeNew.vue";
export default {
onLoad() {},
onShow() {
this.getResumeInfo();
},
data() {
return {
isAdmin: uni.getStorageSync("IS_MINIAPP_ADMIN") || true, //
hasNewResume: 0,
hasNewApply: 0,
cdnBaseImg: this.G.store().cdnBaseImg,
themeColor: getApp().globalData.themeColor,
showJob: false,
currentPage: 0,
list: [],
pageTitle: "工作台",
firstLoad: false,
appid: uni.getAccountInfoSync().miniProgram.appId,
cuindex: 0,
};
},
components: {
workbench,
jobList,
tools,
resumeNew,
},
watch: {
showJob(val) {
console.log(val);
},
},
created() {
this.list = this.isAdmin
? [
{
iconPath: "icon-appstore g_c_9 iconfont ",
selectedIconPath: "icon-appstore g_c_main iconfont ",
// iconPath: this.cdnBaseImg + "home.png",
// selectedIconPath: this.cdnBaseImg + "homeActive0925.png",
text: "工作台",
customIcon: true,
imgType: "custom",
iconSize: 48,
// pagePath: "/pages/home/index",
},
{
iconPath: "icon-detail g_c_9 iconfont ",
selectedIconPath: "icon-detail g_c_main iconfont ",
// iconPath: this.cdnBaseImg + "bill.png",
// selectedIconPath: this.cdnBaseImg + "billActive0925.png",
text: "职位管理",
customIcon: true,
imgType: "custom",
iconSize: 48,
// pagePath: "/pages/bill/index",
},
{
iconPath: "icon-solution g_c_9 iconfont ",
selectedIconPath: "icon-solution g_c_main iconfont ",
// iconPath: this.cdnBaseImg + "apply.png",
// selectedIconPath: this.cdnBaseImg + "applyActive0925.png",
text: "简历工单",
customIcon: true,
imgType: "custom",
iconSize: 48,
// pagePath: "/pages/bill/index",
},
// {
// iconPath: this.cdnBaseImg + "apply.png",
// selectedIconPath: this.cdnBaseImg + "applyActive0925.png",
// text: "",
// customIcon: false,
// // pagePath: "/pages/apply/index",
// },
]
: [
{
iconPath: "icon-appstore g_c_9",
selectedIconPath: "icon-appstore g_c_main",
// iconPath: this.cdnBaseImg + "home.png",
// selectedIconPath: this.cdnBaseImg + "homeActive0925.png",
text: "工作台",
customIcon: true,
imgType: "custom",
// pagePath: "/pages/home/index",
},
{
iconPath: "icon-solution g_c_9",
selectedIconPath: "icon-solution g_c_main",
// iconPath: this.cdnBaseImg + "apply.png",
// selectedIconPath: this.cdnBaseImg + "applyActive0925.png",
text: "简历工单",
customIcon: false,
imgType: "custom",
// pagePath: "/pages/bill/index",
},
];
},
methods: {
handleChange(e) {
console.log("ee", e);
this.cuindex = e;
if (e == 1) {
this.showJob = true;
} else {
this.showJob = false;
}
},
getResumeInfo() {
let that = this;
that.G.Get(`/yishoudan/order/helper/check/neworder`, {}, (res) => {
console.log("res", res);
if (res > 0) {
that.hasNewResume = res;
}
console.log("that.hasNewResume", that.hasNewResume);
that.$forceUpdate();
});
},
leftClick() {
console.log("leftClick");
},
handleTab(e) {
console.log(e);
this.pageTitle = this.list[e].text;
uni.setNavigationBarTitle({
title: this.list[e].text,
});
return true;
},
goBack() {
uni.navigateBack({
delta: 1,
});
},
},
};
</script>
<style>
.p-merchantManagement-container {
}
page {
/* background-color: #f5f5f5; */
}
</style>

@ -1,231 +0,0 @@
<template>
<view>
<view class="m-search flex_center g_bg_f g_pl_10 g_pr_10">
<view class="g_flex_row_between g_mb_10" v-if="false">
<u-search bar-width="0" class="g_flex_1" @btnSearch="getSearch" height="40" v-model="keyword" :placeholder="placeholder" bg-color="#f5f5f5" :show-action="false" @change="getSearch" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#999999" :maxlength="20"></u-search>
</view>
<!-- <u-tabs bg-color="transparent" from="index" :list="tabInfo.list" :is-scroll="false" :current="tabInfo.active" active-color="#3578f6" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="34" duration="0.05" height="76"></u-tabs> -->
</view>
<view class="container">
<!-- 消息列表 -->
<view class="" v-if="tabInfo.list[tabInfo.active].classify == 2" hover-class="none" hover-stop-propagation="false">
<view class="g_mb_10 g_radius_8" style="padding: 20px 10px; background-color: #fff" hover-class="thover" :hover-stop-propagation="false" @click="goDetail" :data-id="item.id" data-type="info" v-for="(item, index) in infoList" :key="index">
<view class="g_fs_16 g_mb_12 g_flex_row_between" style="line-height: 16px">
<view class="g_flex_row_start flex_center g_fs_18 g_fw_600" hover-class="none" :hover-stop-propagation="false">
<i v-if="item.readed == 0" class="g_mr_4" style="display: inline-block; width: 8px; height: 8px; background: #f5222d; border-radius: 50%"></i>
{{ item.title }}
</view>
<view class="g_fw_400 g_fs_12 g_c_9" hover-class="none" :hover-stop-propagation="false">{{ item.pubTime || "-" }}</view>
</view>
<view class="g_fs_14 g_c_9 g_ell_1" style="width: 100%">{{ item.remark || "[图片]" }}</view>
</view>
</view>
<view class v-if="infoList.length <= 0" style="text-align: center; margin-top: 120px" hover-class="none" :hover-stop-propagation="false">
<rh-empty text="暂无消息"></rh-empty>
</view>
</view>
</view>
</template>
<script>
// pages/message/index.js
const app = getApp();
export default {
components: {},
onShareAppMessage() {
return this.G.shareFun();
},
data() {
return {
keys: "",
placeholder: "请输入关键字",
isLogin: uni.getStorageSync("apply-token") ? true : false,
infoList: [],
agencyId: uni.getStorageSync("apply-agencyId"),
tabInfo: {
list: [
{
name: "站内消息",
classify: 2,
},
{
name: "职位通知",
classify: 3,
},
],
active: 0,
},
};
},
onReady() {
let that = this;
that.tabInfo.list = [
{
name: "站内消息",
classify: 2,
},
{
name: "职位通知",
classify: 3,
},
];
that.getInfoList();
},
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
methods: {
getEmptyDom(text = "暂无数据", subText = ""){
this.G.getEmptyDom(text, subText)
},
getSearch(e) {
console.log(e);
this.keys = e;
this.getInfoList();
},
/**
* 用户点击右上角分享
*/
onShareAppMessage1() {},
getInfoList() {
let that = this;
that.G.Post(
that.api.message_list,
{
pageSize: 100,
pageNum: 1,
keys: that.keys || "",
agencyId: that.agencyId,
status: 10,
category: that.tabInfo.active == 1 ? 100 : "",
},
(res) => {
res.pageBean.recordList.forEach((item) => {
item["pubTime"] = that.timeShow(item.publishTime);
console.log(item);
});
that.infoList = res.pageBean.recordList;
}
);
},
timeShow(val) {
console.log(val);
if (this.G.isEmptyCheck(val)) {
return "";
}
if (typeof val == "string") {
val = val + "";
if (val.indexOf("T")) {
val = val.replace("T", " "); //LT
}
val = val.replace("-", "/").replace("-", "/");
}
var date = new Date();
var value = new Date(val);
const year0 = date.getFullYear();
const month0 = date.getMonth() + 1;
const day0 = date.getDate();
const hour0 = date.getHours();
const minute0 = date.getMinutes();
// const second = date.getSeconds()
const year1 = value.getFullYear();
const month1 = value.getMonth() + 1;
const day1 = value.getDate();
const hour1 = value.getHours();
const minute1 = value.getMinutes();
// const second = value.getSeconds()
if (year0 == year1 && month0 == month1 && day0 == day1) {
return hour1 + ":" + (minute1 >= 10 ? minute1 : "0" + minute1);
}
let d = new Date(val).setHours(0, 0, 0, 0);
let today = new Date().setHours(0, 0, 0, 0);
if (d - today == -86400000) {
return "昨天";
}
if (year0 == year1) {
return month1 + "月" + day1 + "日";
}
return (year1 + "").slice(2) + "年" + month1 + "月" + day1 + "日";
},
/**
* 阻止滑动穿透
*
*
*/
modalMove() {
return false;
},
goDetail(e) {
console.log(e);
uni.navigateTo({
url: "/root/detail/message?id=" + e.currentTarget.dataset.id,
});
},
handleUpdateTab(e) {
console.log(e);
this.tabInfo.active = e;
this.getInfoList();
},
},
};
</script>
<style scoped lang="less">
/* pages/message/index.wxss */
.container {
background-color: #f5f5f5;
min-height: 100vh;
}
.container {
padding: 10px;
}
.contact {
width: 80%;
height: 350px;
}
.contact .weui-dialog__hd {
margin-top: 40px;
padding: 0;
position: relative;
}
.contact .contact_bottomBtn .v-center {
width: 80px !important;
}
.contact .contact_bottomBtn .rflex button {
padding: 0;
width: 100%;
}
.guanbi {
position: absolute;
right: 16px;
top: -28px;
}
.mb32 {
margin-bottom: 32px;
}
</style>

@ -1,168 +0,0 @@
<template>
<div class="g_bg_page g_pl_10 g_pr_10">
<div v-if="!QRCodeExpired">
<div class="g_h_20"></div>
<div class="g_mb_10 g_fs_18 g_pl_10">{{ agencyInfo.inviteUserName || "-" }}邀请您加入他的团队</div>
<div class="r_box g_pt_24 g_pb_16 g_text_c">
<img class="g_h_80 g_w_80 g_radius_50" :src="agencyInfo.logo || 'https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/APP/default.svg'" alt="" />
<div class="g_fs_20 g_mt_12 g_mb_12 g_fw_600">
{{ agencyInfo.fullName || "-" }}
</div>
<div class="g_c_9 g_fs_14">
{{ agencyInfo.desp || "-" }}
</div>
</div>
<div class="g_mt_30">
<div class="g_fs_20 g_mb_8 g_pl_12">填写个人信息:</div>
<div class="r_box g_pl_10">
<u-input v-model="userInfo.userName" height="88" placeholder="请输入你的姓名"></u-input>
</div>
<div class="g_fs_12 g_c_9 g_pl_12">该名称会在团队成员列表显示创建人可以修改</div>
</div>
<div class="g_mt_84">
<rh-button primaryColor='#3578f6' v-if="applying == 0 && agencyInfo.agencyName" btnText="申请加入团队" type="primary" class="" @clickBtn="applyAdd"></rh-button>
<rh-button primaryColor='#3578f6' v-else-if="applying == 2" btnText="已加入" type="disabled" class=""></rh-button>
<rh-button primaryColor='#3578f6' v-else btnText="已申请" type="disabled" class=""></rh-button>
</div>
</div>
<div v-else>
<div class="g_text_c g_fs_18 g_c_f40" style="padding: 120px 0 32px">二维码已过期</div>
<rh-button primaryColor='#3578f6' btnText="前往首页" type="primary" class="" @clickBtn="goHome"></rh-button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
QRCodeId: "",
agencyInfo: {
agencyName: "",
fullName: "",
},
userInfo: {
userName: "",
userId: "",
},
applying: 0,
inviteUserId: "",
uid: "",
ing: false,
QRCodeExpired: false,
};
},
onLoad(options) {
console.log(options);
// options.scene = "id=3087_101125";
if (uni.getStorageSync("scene") || options.scene) {
console.log("XXXXXXXXXXXX");
//
var sceneStr = uni.getStorageSync("scene") ? decodeURIComponent(uni.getStorageSync("scene")) : decodeURIComponent(options.scene);
var sceneJson = this.G.sceneToJson(sceneStr);
console.log("sceneJson===", sceneJson);
this.QRCodeId = sceneJson.id;
// this.inviteUserId = sceneJson.id.split("_")[1];
// this.uid = sceneJson.id.split("_")[0];
this.G.checkToken().then((info) => {
console.log("info11", info);
if (!info.msg) {
this.getId().then(() => {
this.userInfo = uni.getStorageSync("apply-userinfo");
this.getAgencyById();
this.checkHasApply();
uni.removeStorageSync("scene");
});
} else {
// uni.reLaunch({
// url: `/root/person/loginIndex?path='/root1/person/memberApplyAdd'&scene=${options.scene}`,
// });
uni.setStorageSync("scene", options.scene);
}
});
// uni.setStorageSync("AGENCY_USER_ID", this.userId);
}
},
created() {},
methods: {
/**
* 获取二维码携带的信息
*/
getId() {
let that = this;
return new Promise((resolve, reject) => {
this.G.Get(this.api.common_getQRCode, { id: that.QRCodeId }, (res) => {
console.log("resresresresresres++++++++++++++", res);
let params = JSON.parse(res.params);
that.inviteUserId = params.inviteUserId;
that.uid = params.agencyId;
if (params.expirationTimestamp && params.expirationTimestamp < new Date().getTime()) {
//
uni.showToast({
title: "二维码已过期",
});
that.QRCodeExpired = true;
} else {
resolve();
}
});
});
},
applyAdd() {
let that = this;
if (!this.userInfo.userName) {
uni.showToast({
title: "请输入你的姓名",
icon: "none",
});
return;
}
if (this.ing) {
return;
}
that.ing = true;
this.G.Post(this.api.order_addApply, { agencyId: that.uid, username: this.userInfo.userName, inviteUserId: this.inviteUserId }, (res) => {
uni.showToast({
title: "申请成功",
icon: "none",
});
that.checkHasApply();
console.log(res);
});
},
getAgencyById() {
let that = this;
this.G.Get(this.api.order_getAgencyByIdForApply, { agencyId: that.uid, inviteUserId: this.inviteUserId }, (res) => {
console.log(res);
that.agencyInfo = res;
});
},
checkHasApply() {
let that = this;
this.G.Post(this.api.order_checkHasApply, { agencyId: that.uid, userId: this.userInfo.id }, (res) => {
if (res) {
if (res.userExist == 1) {
that.applying = 2;
} else {
that.applying = 1;
}
} else {
that.applying = 0;
}
that.ing = false;
console.log(res);
});
},
goHome() {
uni.switchTab({
url: "/pages/home/index",
});
},
},
};
</script>
<style></style>

@ -1,178 +0,0 @@
<template>
<view class="p-bill-index g_w_all g_h_all g_bg_f_5 g_kuaishou">
<scroll-view class="m-list" :style="{ height: `calc(100vh - 0px)` }" :scroll-y="true" @scrolltolower="reachBottom">
<view class="m-search g_flex_row_between flex_center g_bg_f g_pl_10 g_pr_10 g_pb_8 g_pt_8 g_mb_10">
<u-search class="g_flex_1" @btnSearch="getSearch" height="80" v-model="keyword" :placeholder="placeholder" bg-color="#f5f5f5" :show-action="false" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#999999" :maxlength="20"></u-search>
<!-- @change="getSearch" -->
<!-- <view class="g_ml_8 g_fs_16" style="color: #576b95" hover-class="thover" @click="backPrev"></view> -->
</view>
<rh-job-list from="tob" class="g_h_all" :list="query.list" @clickCard="goDetail" :loading="loading" :speed="speed" :query="query" emptyText="暂无数据" pt="0" />
</scroll-view>
</view>
</template>
<script>
export default {
onReady() {
this.G.setNavStyle();
},
onShareAppMessage() {
return this.G.shareFun();
},
onLoad(options) {
console.log(options);
this.navInfo = this.G.getNavInfo();
// this.placeholder = "";
},
onShow() {
let that = this;
that.navInfo = that.G.getNavInfo();
},
created() {
console.log(this.show);
this.loading = true;
this.speed = -1;
this.getList();
},
mounted() {},
props: {
show: {
type: Boolean,
default: () => {
return false;
},
},
},
watch: {
show: {
handler(newVal) {
console.log(newVal);
if (newVal) {
this.getList();
}
},
},
},
//
data() {
return {
whichPage: "home",
keyword: "",
loading: false,
speed: -1,
applyType: 0,
query: {
page: 1,
size: 20,
list: [],
isFinish: -1,
},
placeholder: "搜索职位名称",
navInfo: {},
};
},
//
computed: {},
//
methods: {
goDetail($item) {
console.log("前往详情页", $item);
if (uni.getStorageSync("apply-userinfo")) {
uni.navigateTo({
url: "/root/detail/job?id=" + $item.id,
});
} else {
uni.navigateTo({
url: "/root/login/index",
});
}
},
reachBottom() {
let that = this;
console.log("tolow");
// if (!uni.getStorageSync("apply-token") && that.tabInfo.active == 1) {
// return false;
// }
that.query.page++;
that.getList("concat");
},
getSearch(e) {
console.log(e);
this.speed = -1;
this.keyword = e;
this.query.page = 1;
console.log(this.whichPage);
this.getList();
},
backPrev() {
console.log("backPrev");
uni.navigateBack({
delta: 1,
});
},
getList($type = "init") {
let that = this;
that.G.Post(
// that.api.job_list,
that.api.new_job_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
keys: that.keyword,
// agencyId: uni.getStorageSync("AGENCY_ID"),
},
(res) => {
console.log("一才职位列表:", res);
that.computeCode = 1;
if (res.recordCount == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.recordCount;
that.query.isFinish = res.recordList.length;
if (res.recordList && res.recordList.length > 0) {
res.recordList = that.G.toGetAddressv3(res.recordList);
res.recordList = that.G.toGetAge(res.recordList);
res.recordList = that.G.yijobCopy(res.recordList);
}
if ($type == "init") {
that.query.list = [];
that.query.list =
res.recordList && res.recordList.length > 0
? res.recordList.map((item, index) => {
return {
...item,
collected: item.collected ? true : false,
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
fuWuFei: that.G.setReturnFee(item.returnFee / 100, item.returnFeeType, 1),
gender: that.G.getGenderByMinAge(item),
};
})
: [];
} else {
that.query.list = that.query.list.concat(
res.recordList && res.recordList.length > 0
? res.recordList.map((item, index) => {
return {
...item,
collected: item.collected ? true : false,
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
fuWuFei: that.G.setReturnFee(item.returnFee / 100, item.returnFeeType, 1),
gender: that.G.getGenderByMinAge(item),
};
})
: []
);
}
console.log("that.query.list ", that.query.list);
}
);
},
},
};
</script>
<style scoped lang="less"></style>

@ -1,327 +0,0 @@
<template>
<div class="tools_container g_pl_10 g_pr_10 g_pb_12">
<div class="g_flex_row_start u-skeleton" style="column-gap: 6px">
<div v-for="(item, index) in imgList" :key="index" class="g_flex_column_between flex_center g_radius_8 g_bg_f g_mt_6" style="width: calc((100% - 12px) / 3); overflow: hidden">
<div class="g_h_240 g_w_all u-skeleton-rect g_position_rela" style="overflow: hidden">
<u-lazy-load :image="item.img" threshold="-100" @click="getPoster(item.img)" img-mode="widthFix" loadingImg="https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/loading.gif"></u-lazy-load>
<div @click="getPoster(item.img)" class="g_position_abso g_bg_f g_radius_3 g_flex_row_between flex_center" style="width: 94%; height: 15%; padding: 0 6px; transform: translateX(-50%); left: 50%; bottom: 3%; box-sizing: border-box">
<div class="g_position_rela g_flex_row_start flex_center g_flex_1 g_h_all">
<!-- <img style="width: 15%; height: 40%" :src="miniAppInfo.logo || 'https://matripe.oss-cn-beijing.aliyuncs.com/default.png'" alt="" /> -->
<div class="g_ml_2 g_position_abso" style="left: 0%; transform-origin: left; transform: scale(0.4); width: calc(200%)">
<div :style="{ fontSize: '12px' }">
{{ miniAppInfo.fullName || miniAppInfo.agencyName }}
</div>
<div class="g_ell_1 g_w_all" :style="{ fontSize: '10px' }">
{{ miniAppInfo.slogan || "全心全意为老乡服务" }}
</div>
</div>
</div>
<img style="width: 20%; height: 64%" :src="miniAppInfo.qrCode" alt="" />
</div>
</div>
<!-- <rh-button primaryColor='#3578f6' btnText="生成海报" type="primary" size="mini" class="g_mb_12 g_mt_12 u-skeleton-rect" @clickBtn="getPoster(item)" /> -->
</div>
</div>
<u-popup v-model="posterShow" mode="center" :closeable="true" uZindex="9999" width="90%" height="87%" border-radius="12" :mask-close-able="true" @close="currentImg = ''">
<!-- v-if="currentImg" -->
<div v-if="currentImg" class="g_pt_36 g_pb_12 g_text_c g_position_abso" style="height: calc(100% - 56px); width: 100%; box-sizing: border-box; left: 0%; top: 0px; z-index: 999">
<view class="fakerClose g_w_36 g_h_36" style="position: absolute; top: 0; right: 0; z-index: 999" @click="posterShow = false"></view>
<image class="g_position_abso" style="height: 92%; left: 50%; top: 36px; transform: translateX(-50%)" :show-menu-by-longpress="true" :src="currentImg" mode="aspectFit" lazy-load binderror="" bindload=""> </image>
</div>
<!-- v-else -->
<div class="g_w_all g_flex_row_center g_pt_36 g_pb_12" style="height: calc(100% - 56px); box-sizing: border-box">
<div class="g_position_rela" style="height: 100%; aspect-ratio: 9 / 16">
<img :src="fakeImg" class="g_h_all g_w_all" alt="" />
<div class="g_position_abso g_bg_f g_radius_6 g_flex_row_between flex_center" style="width: 94%; height: 18%; padding: 0 4%; transform: translateX(-50%); left: 50%; bottom: 3%; box-sizing: border-box">
<div class="g_flex_row_start flex_center g_flex_1 g_h_all">
<!-- <img style="width: 17%; height: 40%" :src="miniAppInfo.logo || 'https://matripe.oss-cn-beijing.aliyuncs.com/default.png'" alt="" /> -->
<div class="g_ml_4 g_c_6">
<div class="g_fw_600" :style="{ fontSize: '100%' }">
{{ miniAppInfo.fullName || miniAppInfo.agencyName }}
</div>
<div :style="{ fontSize: '60%' }">
{{ miniAppInfo.slogan || "全心全意为老乡服务" }}
</div>
</div>
</div>
<img style="width: 22%; height: 60%" :src="miniAppInfo.qrCode" alt="" />
</div>
</div>
</div>
<div class="g_flex_row_center">
<rh-button primaryColor="#3578f6" :btnText="fakeImg ? '生成中...' : '保存图片'" :loading="fakeImg ? true : false" @clickBtn="saveImg" type="primary" size="160" class="" />
<!-- <rh-button primaryColor='#3578f6' btnText="分享图片" size="small" class="" /> -->
</div>
</u-popup>
<canvas type="2d" style="position: absolute; left: -2000px; width: 425px; height: 350px; background: #fff" id="canvasId" ref="canvasId"></canvas>
<u-skeleton :loading="showPage" :animation="true" border-radius="12"></u-skeleton>
</div>
</template>
<script>
import settingVue from "./setting.vue";
import _G from "./utils/commonSub.js";
export default {
name: "tools",
data() {
return {
showPage: true,
fakeImg: "", //
imgList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
currentImg: "",
posterShow: false,
miniAppInfo: uni.getStorageSync("miniApp-info"),
query: {
page: 1,
size: 50,
list: [],
isFinish: -1,
},
};
},
onLoad() {},
created() {
setTimeout(() => {
this.showPage = false;
}, 2000);
// for (let i = 0; i < 12; i++) {
// this.imgList[i] = `https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/poster/a${i + 1}.png?chuo=` + new Date().getTime();
// }
// console.log(this.imgList);
this.getPosterList();
this.getUserQRCode();
},
props: {
firstLoad: {
type: Boolean,
default: false,
},
},
watch: {
firstLoad(val) {
console.log("firstLoad", val);
if (val) {
this.showPage = true;
setTimeout(() => {
this.showPage = false;
}, 2000);
}
},
},
methods: {
getUserQRCode() {
let that = this;
if (uni.getStorageSync("user_qrcode")) {
that.miniAppInfo.qrCode = uni.getStorageSync("user_qrcode");
}
},
getPosterList() {
let that = this;
let params = {
pageNum: that.query.page,
pageSize: that.query.size,
classify: 1, // 1
};
that.G.Post(that.api.app_getPosterList, params, (res) => {
console.log(res);
that.imgList = res;
});
},
getPoster(e) {
const that = this;
this.fakeImg = e;
that.posterShow = true;
// uni.showLoading({
// title: "...",
// mask: true,
// });
that.getWXCanvas(e).then((res) => {
console.log("res", res);
that.currentImg = res.tempFilePath;
setTimeout(() => {
this.fakeImg = "";
}, 100);
uni.hideLoading();
});
},
//
getWXCanvas(sharelImg, type) {
const that = this;
return new Promise((resolve) => {
var mycenter = 0; //
var myheight = 0; //
const query = uni.createSelectorQuery().in(this);
query
.select("#canvasId")
.fields({
node: true,
size: true,
})
.exec((res) => {
console.log("uni 获取节点信息:", res);
// console.log("sharelImg", sharelImg);
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
new Promise(function (resolve) {
//
uni.getImageInfo({
src: sharelImg, //
success(res) {
console.log("res111", res);
canvas.width = res.width;
canvas.height = res.height;
mycenter = canvas.width / 2;
myheight = canvas.height;
const img = canvas.createImage();
img.src = res.path;
console.log("img111", img);
img.onload = (info) => {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
console.log("info111", info);
resolve(true);
};
},
fail(err) {},
});
}).then(() => {
console.log("inthen");
//使
that
.setShareJobImg(ctx, canvas, mycenter)
.then(function (canvas1) {
console.log("canvas1", canvas1);
uni.canvasToTempFilePath({
canvas: canvas1,
success(res) {
console.log("res222", res);
resolve(res);
},
fail(res) {
uni.hideLoading();
uni.showToast({
title: res.errMsg,
icon: "error",
});
},
});
})
.catch((err) => {
console.log(err);
uni.hideLoading();
uni.showToast({
title: "生成失败,请重试",
});
});
});
});
});
},
//
setShareJobImg(ctx, canvas, mycenter, funObj) {
let that = this;
let labelLeft = 0;
// ctx.arcTo()
let baseTop, QRSize, baseLeft, titleFontSize, contentFontSize;
baseTop = canvas.height - 412;
// baseTop = 1470;
QRSize = 144;
baseLeft = 80;
titleFontSize = 54;
contentFontSize = 36;
_G.roundRect1(ctx, mycenter - (canvas.width - 60) / 2, baseTop, canvas.width - 60, 360, 48, "#fff");
_G.fillTextLineBreak(ctx, that.miniAppInfo.fullName || that.miniAppInfo.agencyName, baseLeft + 20, baseTop + 162, 300, 64, "#000", titleFontSize, "500"); //
let slogan = that.miniAppInfo.slogan || "全心全意为老乡服务";
// let slogan = ''
_G.fillTextLineBreak(ctx, slogan, baseLeft + 20, baseTop + 168 + titleFontSize, 600, 48, "#666", contentFontSize, "500"); // slogan
// miniAppInfo
return new Promise((imgres) => {
let p1 = new Promise((resolve) => {
uni.getImageInfo({
// src: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/poster/renhaiQRCode.png",
src: that.miniAppInfo.qrCode,
success(res) {
console.log("res333", res);
const img = canvas.createImage();
img.src = res.path;
img.onload = () => {
console.log("ctx", ctx);
console.log("canvas", canvas);
console.log("that.miniAppInfo.logo", that.miniAppInfo.logo);
// _G.roundRect1(ctx, mycenter - 580 / 2, baseTop + 740, 580, 580, 0, "#fff");
_G.roundRect(ctx, img, canvas.width - 320, baseTop + 60, 240, 240, 0);
resolve();
};
},
fail(err) {
console.log(err);
},
});
});
let p2 = new Promise((resolve) => {
uni.downloadFile({
url: that.miniAppInfo.logo || "https://matripe.oss-cn-beijing.aliyuncs.com/default.png",
success(res) {
console.log(res);
const img = canvas.createImage();
img.src = res.tempFilePath;
// img.onload = () => {
// _G.roundRect(ctx, img, baseLeft, baseTop + 108, QRSize, QRSize, 0);
// };
resolve();
},
fail(err) {
console.log(err);
},
});
});
Promise.all([p1, p2]).then(() => {
// setTimeout(() => {
imgres(canvas);
// }, 300);
});
});
},
saveImg() {
let that = this;
console.log("saveImg");
if (that.fakeImg) return false;
uni.saveImageToPhotosAlbum({
filePath: that.currentImg,
success(res) {
console.log(res);
if (res.errMsg == "saveImageToPhotosAlbum:ok") {
uni.showToast({
title: "保存成功 ",
icon: "none",
duration: 1500,
});
}
},
fail(res) {
console.log(res);
uni.showToast({
title: "图片保存失败",
icon: "none",
duration: 1500,
});
},
});
},
},
};
</script>
<style>
.tools_container {
min-height: 100vh;
background-color: #ededed;
}
.list-image {
background-size: cover;
background-position: top center;
background-repeat: no-repeat;
}
</style>

@ -1,169 +0,0 @@
<template>
<view class="p-root-merchantManagement-relationUs g_bg_f_5 g_pt_10 g_pb_120" style="min-height: 100vh">
<!-- 图片区 -->
<view class="g_flex_row_center">
<span class="g_position_abso g_c_6" style="left: 40px; top: 20px">预览:</span>
<view class="g_bg_f g_mt_36 g_mb_24 g_p_10 g_flex_column_center flex_center g_radius_8" style="width: calc(100vw - 80px)">
<view class="g_pt_18 g_fw_600 g_pb_24 g_fs_18">联系我们</view>
<view class="g_pb_4 g_fs_14 g_c_6">联系人: {{ submitInfo.contactUserName || "-" }}</view>
<view class="g_pb_10 g_fs_14 g_c_6">联系电话: {{ submitInfo.contactTel || "-" }}</view>
<image class="g_w_184 g_h_184" :src="submitInfo.contactWechatQrcode || 'https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/wr.png'" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" show-menu-by-longpress> </image>
<view class="g_mt_8 g_fs_14 g_pb_24 g_fw_600">长按识别二维码</view>
</view>
</view>
<view class="g_h_10"></view>
<!-- 表单区 -->
<rh-form-slot
:list="[
{
icon: '',
label: '联系人',
result: '',
value: submitInfo.contactUserName,
path: '',
tip: 'slot-name',
placeholder: '输入姓名',
type: 'slot',
pColumn: 8,
},
{
icon: '',
label: '联系电话',
result: '',
path: '',
value: submitInfo.contactTel,
tip: 'slot-mobile',
placeholder: '请输入手机号',
type: 'slot',
pColumn: 8,
},
{
icon: '',
label: '二维码',
result: '',
path: '',
tip: 'update-QRCode',
img: submitInfo.contactWechatQrcode || 'https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/wr.png',
type: 'slot',
pColumn: 12,
},
]"
@changeName="changeName"
@updateFile="uploadPhoto"
@changeMobile="changeMobile"
/>
<!-- 提交区 -->
<!-- -->
<view v-if="!idauth">
<view class="g_flex_row_center g_mt_32 m-submit">
<rh-button primaryColor='#3578f6' btnText="确定"
:loading='isSubmitLoading'
:type="isChange ? 'primary' : 'disabled'"
@clickBtn="subNameInfo" />
</view>
</view>
</view>
</template>
<script>
export default {
onShareAppMessage() {
return this.G.shareFun();
},
onLoad(options) {
let appInfo = uni.getStorageSync("miniApp-info");
this.sqlObj = uni.getStorageSync("miniApp-info");
this.submitInfo = appInfo;
},
data() {
return {
isChange:false,
isSubmitLoading:false,
sqlObj:{},
submitInfo: {
contactUserName: "",
contactTel: "",
contactWechatQrcode: "",
},
};
},
methods: {
changeName(e) {
if(this.sqlObj.contactUserName == e){
this.isChange = false;
}else{
this.isChange = true;
}
this.submitInfo.contactUserName = e;
},
uploadPhoto(e) {
if(this.sqlObj.contactWechatQrcode == e){
this.isChange = false;
}else{
this.isChange = true;
}
this.submitInfo.contactWechatQrcode = e;
},
changeMobile(e) {
if(this.sqlObj.contactTel == e){
this.isChange = false;
}else{
this.isChange = true;
}
this.submitInfo.contactTel = e;
},
subNameInfo() {
let that = this;
let params = {
recordId: this.submitInfo.id,
fullName: this.submitInfo.fullName,
agencyName: this.submitInfo.agencyName,
desp: this.submitInfo.desp,
contactUserName: this.submitInfo.contactUserName,
contactTel: this.submitInfo.contactTel,
contactWechatQrcode: this.submitInfo.contactWechatQrcode,
address: this.submitInfo.address,
lat: this.submitInfo.lat,
lng: this.submitInfo.lng,
slogan: this.submitInfo.slogan,
};
if(!that.isChange){
return false;
}
that.isSubmitLoading = true;
that.G.Post(that.api.user_changeTobeSupplierInfo, params, (res) => {
that.isSubmitLoading = false;
that.isChange = false;
console.log(res);
uni.showToast({
title: "修改成功",
icon: "none",
});
that.G.getAgencyInfo();
},()=>{
that.isSubmitLoading = false;
});
},
},
};
</script>
<style lang="less">
.p-root-person-idform {
.m-submit {
.bocai_btn_type_infro {
background: #ccc !important;
color: #fff !important;
font-weight: 600 !important;
font-size: 18px !important;
}
}
.cardText {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
}
</style>

@ -1,121 +0,0 @@
<template>
<view class="p-root-merchantManagement-dynamicNotice g_bg_f_5 g_p_10 g_pb_120" style="min-height: 100vh;padding-top: 0;">
<view class="m-card">
<view class="g_h_24"></view>
<view class="" hover-class="none" hover-stop-propagation="false">
<view class="g_p_10 g_flex_row_between flex_center g_bg_f g_radius_8 g_fs_16" hover-class="none"
hover-stop-propagation="false" style="padding: 16px 10px;">
<view class="g_flex_column_center g_fw_500 g_c_0 g_fs_17" hover-class="none" hover-stop-propagation="false"> 同步平台职位 </view>
<view class="g_flex_column_center" hover-class="none" hover-stop-propagation="false">
<u-switch @change="handleSwitch($event, 'platform')"
cusSize='24'
cusTop='2'
:cusLeft='jobSwitch ? 3.5 : 2.2'
v-model="jobSwitch"
activeColor="#027aff"
inactiveColor="#e5e5e5"
></u-switch>
</view>
</view>
<view class="g_mt_4 g_c_8 g_fs_14 g_pl_10" style="line-height: 1.5;" hover-class="none" hover-stop-propagation="false"> 打开开关后, 系统会实时同步一次然后系统会每天在23:00自动同步平台上最近上新的职位 </view>
</view>
</view>
<!-- <view class="m-card">
<view class="g_h_32"></view>
<view class="" hover-class="none" hover-stop-propagation="false">
<view class="g_p_10 g_flex_row_between flex_center g_bg_f g_radius_8 g_fs_16" hover-class="none"
hover-stop-propagation="false" style="padding: 16px 10px;">
<view class="g_flex_column_center g_fw_500 g_c_0 g_fs_17" hover-class="none" hover-stop-propagation="false"> 职位列表显示报名数 </view>
<view class="g_flex_column_center" hover-class="none" hover-stop-propagation="false">
<u-switch @change="handleSwitch($event, 'applyNumDisplay')"
cusSize='24'
cusTop='2'
:cusLeft='applySwitch ? 3.5 : 2.2'
v-model="applySwitch"
activeColor="#027aff"
inactiveColor="#e5e5e5"
></u-switch>
</view>
</view>
<view class="g_mt_4 g_c_8 g_fs_14 g_pl_10" style="line-height: 1.5;" hover-class="none" hover-stop-propagation="false"> 打开开关后, 职位列表会显示报名100+等字样目前这个数据可能不太准确仅供参考 </view>
</view>
</view> -->
</view>
</template>
<script>
export default {
onShareAppMessage() {
return this.G.shareFun();
},
onLoad(options) {
this.applySwitch = this.appInfo.applyNumDisplay == 1 ? true : false;
this.getShareInfo();
},
data() {
return {
applySwitch: false,
jobSwitch: false,
appInfo: uni.getStorageSync("miniApp-info"),
};
},
methods: {
getShareInfo() {
this.G.Get(this.api.merchantManagement_getShareJobsBtn, {}, (res) => {
console.log(res);
this.jobSwitch = res;
});
},
handleSwitch(e, type) {
console.log(e, type);
new Promise((resolve, reject) => {
if (type == "platform") {
if (e) {
this.G.Get(this.api.merchantManagement_addAllShareJobs, {}, (res) => {
console.log(res);
resolve();
});
} else {
this.G.Get(this.api.merchantManagement_removeAllShareJobs, {}, (res) => {
console.log(res);
resolve();
});
}
} else {
this.G.Put(this.api.merchantManagement_updateField, { fieldName: "applyNumDisplay", fieldValue: e ? 1 : 0 }, (res) => {
console.log(res);
resolve();
});
}
}).then(() => {
this.G.getAgencyInfo();
});
},
},
};
</script>
<style lang="less">
.p-root-person-idform {
.m-submit {
.bocai_btn_type_infro {
background: #ccc !important;
color: #fff !important;
font-weight: 600 !important;
font-size: 18px !important;
}
}
.cardText {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
}
</style>

@ -1,196 +0,0 @@
<template>
<div class="team-manage-container g_flex_column_between g_bg_page">
<scroll-view class="g_flex_1" enable-flex :style="{ 'min-height': `calc(100vh - ${0}px)`,paddingBottom:'120px' }" :scroll-y="true">
<div class="g_flex_column_between" :style="{ 'min-height': `calc(100vh - ${0}px)` }">
<div class>
<div class="g_h_10"></div>
<div class="g_flex_row_start g_bg_f g_mb_10" style="padding: 12px 16px" @click="goPage('/root/merchantManagement/applyManage')" v-if="applyNum !== 0">
<div class="g_mr_16 iconfont icon-wodetuandui g_c_main" style="background-repeat: no-repeat;font-size:48px"></div>
<div>
<div class="g_fs_18">新的成员</div>
<div class="g_c_9 g_fs_14">您有{{ applyNum }}条申请等待审核</div>
</div>
</div>
<!-- <div class="r_box g_fs_20 g_text_c g_h_60 g_ml_10 g_mr_10 g_mb_10 g_fw_600" style="line-height: 60px">
{{ agencyInfo.fullName || agencyInfo.userName }}
</div> -->
<div class="g_mb_12">
<g-panel-form-item
:list="[
{
icon: '',
label: agencyInfo.fullName || agencyInfo.userName,
result: '',
path: '',
pRow: 12,
itype: 'icon',
},
]"
@clickItem="openChoose"
/>
</div>
<div class="r_box g_ml_10 g_mr_10">
<div v-for="item in memberList" :key="item.id"
@click="editMember(item)"
class="g_border_e_b g_flex_row_between g_fs_18"
style="padding: 19px 12px 19px 22px"
>
<div class="g_flex_row_start flex_center" style="font-size: 16px;color: #333333;">
{{ item.aliasName || item.userName }}
<div class="g_fs_12 g_pl_2 g_h_18 g_pr_2 g_radius_4 g_flex_row_center flex_center g_ml_4"
v-for="i in item.agencyRoleNameList"
:class="i ? (i == '创建人' ? 'creator' : i == '管理员' ? 'manager' : 'member') : ''"
>{{ i }}</div>
</div>
<div class="g_flex_row_end flex_center g_c_6" style="font-size: 16px;color: #888;">
{{ item.tel }}
<i class="iconfont icon-gengduo11 g_c_c" style="font-size: 16px;"></i>
</div>
</div>
</div>
<div class="g_h_40"></div>
</div>
<rh-fixed >
<div class="g_flex_row_center g_pl_16 g_pr_16">
<div class="g_flex_1 g_mr_20">
<rh-button primaryColor='#3578f6' btnText="手动添加" size="auto" @clickBtn="goPage('/root/merchantManagement/addOrUpdataMember')"></rh-button>
</div>
<div class="g_flex_1">
<rh-button primaryColor='#3578f6' btnText="微信邀请" size="auto" type="primary" class @clickBtn="goPage('/root/merchantManagement/memberApplyQRCode')"></rh-button>
</div>
</div>
</rh-fixed>
<!-- <div class="g_h_24"></div> -->
<!-- <div class="sticky g_bg_f g_flex_row_center g_pt_8" style="padding-bottom: calc(constant(safe-area-inset-bottom) + 16px); padding-bottom: calc(env(safe-area-inset-bottom) + 16px); box-shadow: 0px -4px 10px rgba(0, 0, 0, 0.06)">
<rh-button primaryColor='#3578f6' icon="icon-tianjia g_fsi_16 g_mr_8" btnText="添加成员" class="" @clickBtn="addMember"></rh-button>
</div> -->
</div>
</scroll-view>
<!-- <div class="g_flex_row_end g_bg_f" style="padding: 14px 16px 34px"> -->
<!-- <rh-button primaryColor='#3578f6' btnText="添加部门" size="small" class="g_ml_16" @clickBtn="goLogin"></rh-button> -->
<!-- </div> -->
<u-popup v-model="addMemberShow" mode="bottom" z-index="999999" border-radius="12" :closeable="false" :mask-close-able="true" @close="addMemberShow = false">
<view class="g_text_c g_bg_f_5 g_fs_17">
<view class="g_bg_f">
<view class="g_c_3">
<view class="g_p_16 g_border_e_t" @click="goPage('/root/merchantManagement/addOrUpdataMember')"></view>
<view class="g_p_16 g_border_e_t" @click="goPage('/root/merchantManagement/memberApplyQRCode')"></view>
</view>
</view>
<view class="g_p_16 g_mt_10 g_bg_f" style="padding-bottom: calc(constant(safe-area-inset-bottom) + 16px); padding-bottom: calc(env(safe-area-inset-bottom) + 16px)" @click="addMemberShow = false">取消</view>
</view>
</u-popup>
</div>
</template>
<script>
export default {
data() {
return {
memberList: [],
addMemberShow: false,
agencyInfo: uni.getStorageSync("miniApp-info"),
applyNum: 0,
};
},
onShow() {
this.getMemberList();
this.getNewApplyNum();
},
onLoad() {},
created() {
console.log(123123);
},
methods: {
compare(a, b) {
let sortList = ["创建人", "管理员",'成员'];
if (sortList.includes(a) && sortList.includes(b)) {
return sortList.indexOf(a) - sortList.indexOf(b);
} else if (sortList.includes(a)) {
return -1;
} else if (sortList.includes(b)) {
return 1;
} else {
return a.localeCompare(b);
}
},
getMemberList() {
let that = this;
uni.showLoading({
title: "加载中...",
});
this.G.Get(this.api.order_peopleList, { pageSize: 500 }, (res) => {
console.log("报名人列表:", res);
that.memberList = res.recordList;
that.memberList.forEach((item) => {
item.agencyRoleNameList = item.agencyRoleName.split("");
item.agencyRoleNameList = item.agencyRoleNameList.sort(this.compare);
});
uni.hideLoading();
});
},
addMember() {
this.addMemberShow = true;
},
editMember(_item) {
uni.navigateTo({
url: "/root/merchantManagement/addOrUpdataMember?info=" + JSON.stringify(_item),
});
},
goPage(url) {
uni.navigateTo({
url,
});
this.addMemberShow = false;
},
getNewApplyNum() {
let that = this;
this.G.Get(this.api.order_getNewApplyNum, {}, (res) => {
console.log("order_getNewApplyNum", res);
that.applyNum = res;
});
},
openChoose(){
console.log('openChoose')
uni.showActionSheet({
itemList: ['添加团队成员', '修改企业资料'],
success: (res) => {
console.log(res)
if(res.tapIndex == 0){
this.goPage('/root/merchantManagement/addOrUpdataMember')
}else if(res.tapIndex == 1){
this.goPage('/root/person/info?active=1')
}
}
})
}
},
};
</script>
<style lang="scss">
.creator {
color: #ff4d4f;
// border: 1px solid #46c7bb;
background-color: #fff2f0;
}
.member {
color: #666;
// border: 1px solid #f9676e;
background-color: rgba(0, 0, 0, 0.04);
}
.manager {
color: #1677ff;
// border: 1px solid #0066d6;
background-color: #e6f4ff;
}
.sticky {
position: sticky;
bottom: 0;
left: 0;
z-index: 999;
}
</style>

@ -1,441 +0,0 @@
<template>
<div class="g_pt_10">
<div class="g_bg_f">
<!-- <u-tabs bg-color="transparent" from="index" :list="tabInfo.list" :is-scroll="true" :current="tabInfo.active" bar-width="120" item-width="50vw" active-color="#3578f6" bar-height="6" @change="handleUpdateTab" font-size="34" duration="0.05" height="76"></u-tabs> -->
</div>
<div class="g_flex_row_between g_pt_10 g_pb_10 g_pr_12">
<div class="g_flex_row_start g_pl_12 g_pr_10">
<div @click="setOutDate(6)" :class="dateVal == 6 ? 'g_c_main' : ''" class="g_cursor_pointer g_mr_20">今日</div>
<div @click="setOutDate(2)" :class="dateVal == 2 ? 'g_c_main' : ''" class="g_cursor_pointer g_mr_20">本周</div>
<div @click="setOutDate(4)" :class="dateVal == 4 ? 'g_c_main' : ''" class="g_cursor_pointer g_mr_20">本月</div>
<rh-quickconfirm :dropdownShow="dropdownShow" @hideDropdown="(e) => (dropdownShow = e)">
<template v-slot:title>
<div :class="dateType ? 'g_c_main' : ''" @click="showDroundown">{{ dateType || "" }}</div>
</template>
<template v-slot:content>
<div :class="dateType == item.name ? 'ysd-base-color' : ''" class="g_border_b_d g_pt_10 g_pb_10 g_text_c" v-for="(item, index) in dateList" :key="index" @click="setDate(item)">{{ item.name }}</div>
</template>
</rh-quickconfirm>
</div>
<div>
<rh-quickconfirm :dropdownShow="customDateShow" @hideDropdown="(e) => (customDateShow = e)" width="calc(100vw - 48rpx)">
<template v-slot:title>
<div :class="!notCustom ? 'g_c_main' : ''" @click="customDateShow = true">自定义</div>
</template>
<template v-slot:content>
<div class="g_flex_row_between flex_center dateSelect" hover-class="none" hover-stop-propagation="false">
<div class="g_flex_row_start">
<picker mode="date" :value="startTime" :end="notAllowTime" @change="changeDateTime($event, 'start')" style="color: #333">{{ !!startTime ? startTime : "----" }}</picker>
<i class="iconfont icon-rili g_fs_16 g_ml_10 g_c_9" style="line-height: 1"></i>
</div>
-
<div class="afterDate g_flex_row_start">
<picker mode="date" :value="endTime" :end="notAllowTime" @change="changeDateTime($event, 'end')" style="color: #333">{{ !!endTime ? endTime : "----" }}</picker>
<i class="iconfont icon-rili g_fs_16 g_ml_10 g_c_9" style="line-height: 1"></i>
</div>
</div>
</template>
</rh-quickconfirm>
</div>
</div>
<div class="g_bg_f g_ml_10 g_mr_10 g_radius_8" v-if="dataList.length > 0">
<div class="tableTitle g_fw_600 g_fs_12">
<div class="show_all" style="width: 80px">姓名</div>
<div class="g_flex_1 g_flex_row_between">
<div class="dataNum">用户</div>
<div class="dataNum">活跃</div>
<div class="dataNum">报名</div>
<div class="dataNum">约面</div>
<div class="dataNum">到面</div>
<div class="dataNum">通过</div>
<div class="dataNum">入职</div>
<div class="dataNum">
在职
<!-- <i class="t-icon t-icon-zhuyi f14" @click="showToast"></i> -->
</div>
</div>
</div>
<div class="tableSub g_fs_12">
<div class="show_all g_pl_10" style="box-sizing: border-box">其他</div>
<div class="g_text_c g_flex_1">{{ globalData.userNum || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.activeUserNum || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.applyClueNum || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.signUps || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.arrived || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.passed || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.entry || 0 }}</div>
<div class="g_text_c g_flex_1">{{ globalData.obJob || 0 }}</div>
</div>
<div class="tableSub g_fs_12" v-for="(item, index) in dataList" :key="index">
<div class="g_text_l show_all" style>{{ index * 1 + 1 + " " }}{{ item.aliasName || item.agencyTeamName }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 10)">{{ item.userNum }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 10)">{{ item.activeUserNum }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 10)">{{ item.applyClueNum }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 10)">{{ item.signUps }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 20)">{{ item.arrived }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 30)">{{ item.passed }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 40)">{{ item.entry }}</div>
<div class="dataNum" hover-class="thover" @click="toDataDetail(item, 50)">{{ item.obJob }}</div>
</div>
<div class="tableSub g_fw_600 g_fs_12">
<div class="show_all g_pl_12" style="width: 80px; box-sizing: border-box">总计</div>
<div class="g_text_c g_flex_1">{{ globalData.userNum + totalObj.userNum }}</div>
<div class="g_text_c g_flex_1">{{ globalData.activeUserNum + totalObj.activeUserNum }}</div>
<div class="g_text_c g_flex_1">{{ globalData.applyClueNum + totalObj.applyClueNum }}</div>
<div class="g_text_c g_flex_1">{{ totalObj.signUps }}</div>
<div class="g_text_c g_flex_1">{{ totalObj.arrived }}</div>
<div class="g_text_c g_flex_1">{{ totalObj.passed }}</div>
<div class="g_text_c g_flex_1">{{ totalObj.entry }}</div>
<div class="g_text_c g_flex_1">{{ totalObj.obJob }}</div>
</div>
</div>
</div>
</template>
<script>
import dayjs from "dayjs";
// import moment from "moment";
export default {
onLoad() {
this.getGroupList();
},
data() {
return {
dateVal: 6,
globalData: {},
dateType: "",
dropdownShow: false,
customDateShow: false,
startTime: dayjs(new Date()).format("YYYY-MM-DD"),
endTime: dayjs(new Date()).format("YYYY-MM-DD"),
notAllowTime: dayjs(new Date()).format("YYYY-MM-DD"),
sortType: 0,
notCustom: true, //
groupDataList: [], //
dataList: [], //
totalObj: {}, //
dateList: [
{
name: "昨日",
value: 7,
},
{
name: "上周",
value: 3,
},
{
name: "上月",
value: 5,
},
{
name: "近7日",
value: 0,
},
{
name: "近30日",
value: 1,
},
],
tabInfo: {
list: [
{
name: "全部成员",
num: 0,
tip: 0,
classify: 2,
},
{
name: "团队排序",
num: 0,
tip: 1,
classify: 3,
},
],
active: 0,
},
dateList: [
{
name: "昨日",
value: 7,
},
{
name: "上周",
value: 3,
},
{
name: "上月",
value: 5,
},
{
name: "近7日",
value: 0,
},
{
name: "近30日",
value: 1,
},
],
};
},
created() {},
watch: {
dropdownShow(nval, oval) {
console.log(nval, oval);
},
},
methods: {
handleUpdateTab(e) {
console.log(e);
this.tabInfo.active = e;
this.sortType = e;
this.getGroupList("all");
},
showDroundown() {
uni.vibrateShort({
type: "heavy",
success: function (e) {
console.log(e);
},
});
this.dropdownShow = !this.dropdownShow;
},
setDate(e) {
let that = this;
console.log(e);
uni.vibrateShort({
type: "heavy",
success: function (e) {
console.log(e);
},
});
that.dateList.forEach((item) => {
if (item.value == e.value) {
console.log(item.value);
that.dateType = item.name;
that.dateVal = item.value;
that.dropdownShow = false;
that.notCustom = true;
}
});
that.formatDate(that.dateVal);
},
setOutDate(e) {
console.log(e);
uni.vibrateShort({
type: "heavy",
success: function (e) {
console.log(e);
},
});
this.dateType = "";
this.dateVal = e;
this.notCustom = true;
this.formatDate(this.dateVal);
},
changeDateTime(e, type) {
console.log(e);
if (type == "start") {
this.startTime = e.detail.value;
} else if (type == "end") {
this.endTime = e.detail.value;
}
let time1 = new Date(this.startTime).getTime();
let time2 = new Date(this.endTime).getTime();
console.log(time1);
console.log(time2);
if (time1 > time2) {
uni.showToast({
duration: 2000,
title: "结束时间不能早于开始时间",
mask: true,
icon: "none",
});
return;
}
this.dateVal = -1;
this.notCustom = false;
this.getGroupList();
},
formatDate(tag) {
let start, end;
console.log(tag);
if (tag == 0) {
start = dayjs().add(-6, "day").format("YYYY-MM-DD");
end = dayjs().format("YYYY-MM-DD");
} else if (tag == 1) {
start = dayjs().add(-29, "day").format("YYYY-MM-DD");
end = dayjs().format("YYYY-MM-DD");
} else if (tag == 2) {
start = dayjs().startOf("week").format("YYYY-MM-DD");
end = dayjs().format("YYYY-MM-DD");
} else if (tag == 3) {
start = dayjs()
.week(dayjs().week() - 1)
.startOf("week")
.format("YYYY-MM-DD");
end = dayjs()
.week(dayjs().week() - 1)
.endOf("week")
.format("YYYY-MM-DD");
console.log(start);
console.log(end);
} else if (tag == 4) {
start = dayjs().startOf("month").format("YYYY-MM-DD");
end = dayjs().format("YYYY-MM-DD");
} else if (tag == 5) {
start = dayjs().subtract(1, "month").startOf("month").format("YYYY-MM-DD");
end = dayjs().subtract(1, "month").endOf("month").format("YYYY-MM-DD");
} else if (tag == 6) {
start = dayjs().add(0, "day").format("YYYY-MM-DD");
end = dayjs().format("YYYY-MM-DD");
} else if (tag == 7) {
start = dayjs().subtract(1, "day").format("YYYY-MM-DD");
end = dayjs().subtract(1, "day").format("YYYY-MM-DD");
}
this.startTime = start;
this.endTime = end;
console.log(start);
console.log(end);
this.getGroupList();
},
/**
* 获取团队列表
*/
getGroupList() {
let that = this;
that.G.Post(that.api.merchantManagement_userGlobalData, { start: this.startTime, end: this.endTime }, (res) => {
console.log(res);
that.globalData = res.data;
});
that.G.Post(that.api.merchantManagement_todayData, { start: this.startTime, end: this.endTime }, (res) => {
let list = [];
res.list.forEach((item) => {
list = list.concat(item.users);
});
console.log(list);
let totalObj = {
arrived: 0,
entry: 0,
obJob: 0,
passed: 0,
signUps: 0,
userNum: 0,
applyClueNum: 0,
activeUserNum: 0,
finshedGPA: 0,
entryGPA: 0,
};
list.forEach((item, index) => {
console.log(item);
totalObj.arrived += item.arrived;
totalObj.entry += item.entry;
totalObj.obJob += item.obJob;
totalObj.passed += item.passed;
totalObj.signUps += item.signUps;
totalObj.userNum = totalObj.userNum + Number(item.userNum) || 0;
totalObj.applyClueNum = totalObj.applyClueNum + Number(item.applyClueNum) || 0;
totalObj.activeUserNum = totalObj.activeUserNum + Number(item.activeUserNum) || 0;
totalObj.finshedGPA += item.finshedGPA;
totalObj.entryGPA += item.entryGPA;
totalObj.index = index + 2;
});
that.totalObj = totalObj;
console.log("totalObj", totalObj);
let newList = [];
// list.forEach((item, index) => {
// newList = newList.concat(item.users);
// console.log(item);
// console.log(index);
// });
console.log(newList);
// if (that.sortType != 0) {
that.dataList = that.G.fullCopy(list);
if (that.currentGroup) {
that.selectGroup(that.currentGroup);
}
// } else {
// list.sort((a, b) => b.funnel - a.funnel);
// that.dataList = that.G.fullCopy(list);
// }
console.log("that.dataList", that.dataList);
that.groupDataList = that.G.fullCopy(list);
// that.isspinning = false
that.groupDataList.forEach((item) => {
console.log(item);
item.title = item.agencyTeamName;
});
that.groupDataList.unshift({
title: "全部部门",
agencyTeamId: 12,
agencyTeamIdx: 2,
arrived: 3,
entry: 1,
entryGPA: 0.03,
finshedGPA: 1.86,
funnel: 3.2,
obJob: 71,
packageIdx: 138,
passed: 2,
signUps: 8,
});
});
},
toDataDetail() {},
},
};
</script>
<style lang="less">
page {
background: #f5f5f5;
}
.dateSelect {
display: flex;
justify-content: space-between;
padding: 10px 20px;
}
.dateSelect > div {
width: 147px;
height: 30px;
border: 1px solid #cccccc;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
}
.tableTitle {
display: flex;
text-align: center;
justify-content: space-between;
align-items: center;
padding: 12px 20px;
// padding-right: 24px;
}
.tableSub {
display: flex;
text-align: center;
justify-content: space-between;
align-items: center;
padding: 12px;
border-top: 1px solid #f5f5f5;
/* overflow: hidden; */
.dataNum {
/* padding-left: 8px; */
flex: 1;
text-align: center;
// color: #576b95;
// text-decoration: underline;
}
}
.show_all {
width: 80px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: left;
}
</style>

@ -1,72 +0,0 @@
let data = {
/**
* canvas绘图 start
*/
/**
* 文字绘制
*/
fillTextLineBreak (ctx, text, x, y, lw, lh, color = "#333", font = "32", weight = "500") {
// , align = "center"
var i = 0;
var n = 0;
var r = -1;
// var initHeight = 0;
ctx.font = weight + " " + font + "px Arial"; //字体大小
ctx.fillStyle = color; //字体颜色
// ctx.textBaseline = align;
// ctx.textAlign = align;
while (i < text.length) {
while (ctx.measureText(text.substring(n, i)).width < lw && i < text.length) {
i++;
}
r++;
ctx.fillText(text.substring(n, i), x, y + lh * r);
n = i;
}
},
/**
* 背景图绘制
*/
roundRect (ctx, img, bg_x, bg_y, bg_w, bg_h, bg_r) {
// 开始绘制
ctx.save();
ctx.beginPath();
ctx.arc(bg_x + bg_r, bg_y + bg_r, bg_r, Math.PI, Math.PI * 1.5);
ctx.arc(bg_x + bg_w - bg_r, bg_y + bg_r, bg_r, Math.PI * 1.5, Math.PI * 2);
ctx.arc(bg_x + bg_w - bg_r, bg_y + bg_h - bg_r, bg_r, 0, Math.PI * 0.5);
ctx.arc(bg_x + bg_r, bg_y + bg_h - bg_r, bg_r, Math.PI * 0.5, Math.PI);
ctx.clip();
ctx.drawImage(img, bg_x, bg_y, bg_w, bg_h);
// 恢复之前保存的绘图上下文
ctx.restore();
},
roundRect_yuan (ctx, x, y, size) {
// 开始绘制
ctx.save(); // 保存
ctx.beginPath(); // 开始绘制
// ctx.arc(100, 75, 50, 0, 2 * Math.PI)
ctx.arc(size / 2 + x, size / 2 + y, size / 2, 0, Math.PI * 2, false);
ctx.clip();
// 恢复之前保存的绘图上下文
ctx.restore();
},
roundRect1 (ctx, x, y, w, h, r, color) {
//绘制圆角矩形(无填充色))
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineJoin = "round"; //交点设置成圆角
ctx.lineWidth = r;
ctx.strokeRect(x + r / 2, y + r / 2, w - r, h - r);
ctx.fillRect(x + r, y + r, w - r * 2, h - r * 2);
ctx.stroke();
ctx.closePath();
},
/**
* canvas绘图 end
*/
}
export default data;

@ -1,189 +0,0 @@
<template>
<div class="g_bg_page">
<scroll-view :style="{ height: `calc(100vh )` }" @scrolltolower="reachBottomUserList" :scroll-y="true">
<view class="g_m_10 g_bg_f g_radius_8">
<view class="g_p_12 g_border_e_b" v-for="(item, index) in queryWithUserList.list" :key="index" @click="watchDetail(item)">
<view class="g_flex_row_between g_fs_16 g_mb_4">
<view>
{{ item.userName || "-" }}
</view>
<view @click.stop="takeTel(item.tel)">
{{ item.tel || "-" }}
</view>
</view>
<view class="g_fs_14 g_c_6">
最后访问时间:
{{ item.lastViewTime || "-" }}
</view>
</view>
</view>
<view class="g_text_c">
<view v-if="queryWithUserList.list.length > 0 && queryWithUserList.list.length < queryWithUserList.total && loading">
<u-loading></u-loading>
<view>加载中...</view>
</view>
<view v-else-if="queryWithUserList.list.length > 0 && queryWithUserList.list.length < queryWithUserList.total">上划加载更多</view>
<view v-else-if="queryWithUserList.list.length == queryWithUserList.total && !loading">数据加载完了</view>
</view>
<view class="g_h_64"> </view>
</scroll-view>
<u-popup v-model="showPop" mode="bottom" :closeable="true" uZindex="9999" border-radius="12" @close="showPop = false" :mask-close-able="true" height="80vh">
<scroll-view :style="{ height: `80vh` }" @scrolltolower="reachBottomJobList" :scroll-y="true">
<view>
<view class="g_text_c g_fs_18 g_fw_600 g_p_12 g_bg_f sticky">职位查看记录-{{ currentUser.userName + "" + currentUser.tel + "" }}</view>
<view>
<view class="g_p_12 g_border_e_b" v-for="(item, index) in queryWithUserJobList.list" :key="index" @click="goDetail(item)">
<view class="g_flex_row_between g_fs_16 g_mb_4">
<view class="g_ell_1" style="max-width: 60%">
{{ item.jobName }}
</view>
<view class="g_fs_14 g_c_6">
{{ item.viewTimeStr }}
</view>
</view>
<view class="g_flex_row_between">
<view class="g_c_f40 g_fs_16">{{ item.cus_price }} </view>
<view class="g_fs_14">
{{ item.gender + item.age }}
</view>
</view>
</view>
</view>
</view>
<view class="g_text_c g_pb_20 g_pt_12" v-if="queryWithUserJobList.list.length > 0 && queryWithUserJobList.list.length < queryWithUserJobList.total && loading">
<u-loading></u-loading>
<view>加载中...</view>
</view>
<view v-if="queryWithUserJobList.list.length == 0" style="padding-top: 120px">
<rh-empty text="暂无更多"></rh-empty>
</view>
<view class="g_h_32"> </view>
</scroll-view>
</u-popup>
</div>
</template>
<script>
export default {
//
components: {},
//
props: {},
//
data() {
return {
loading: true,
queryWithUserList: {
page: 1,
size: 50,
total: "",
list: [],
},
queryWithUserJobList: {
page: 1,
size: 50,
total: "",
list: [],
},
currentUser: {},
showPop: false,
};
},
onLoad() {
this.getViewJobUserPageForZgb();
},
//
methods: {
takeTel(e) {
console.log(e);
if (e) {
uni.makePhoneCall({
phoneNumber: e,
});
}
},
reachBottomUserList() {
if (this.queryWithUserList.list.length < this.queryWithUserList.total) {
this.queryWithUserList.page++;
this.getViewJobUserPageForZgb("concat");
}
},
reachBottomJobList() {
if (this.queryWithUserJobList.list.length < this.queryWithUserJobList.total) {
this.queryWithUserJobList.page++;
this.getDetail("concat");
}
},
getViewJobUserPageForZgb(type) {
let that = this;
let params = {
pageNum: that.queryWithUserList.page,
pageSize: that.queryWithUserList.size,
};
that.loading = true;
that.G.Post(that.api.user_getViewJobUserPageForZgb, params, (res) => {
that.queryWithUserList.total = res.recordCount;
if (type == "concat") {
that.queryWithUserList.list = res.recordList.length > 0 ? that.queryWithUserList.list.concat(res.recordList) : that.queryWithUserList.list;
} else {
that.queryWithUserList.list = res.recordList;
}
console.log("that.queryWithUserList.list", that.queryWithUserList.list);
console.log("res", res);
that.loading = false;
});
},
watchDetail(_item) {
let that = this;
that.currentUser = _item;
that.getDetail();
},
getDetail(type) {
let that = this;
let params = {
pageNum: that.queryWithUserJobList.page,
pageSize: that.queryWithUserJobList.size,
userId: that.currentUser.userId,
};
that.loading = true;
that.G.Post(that.api.user_getUserViewJobPageForZgb, params, (res) => {
console.log("res", res);
that.queryWithUserJobList.total = res.recordCount;
res.recordList = that.G.disposeJobListData(res.recordList);
// res.recordList = that.G.toGetAge(res.recordList);
res.recordList.forEach((item) => {
item.cus_price = item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : "月薪";
item.viewTimeStr = that.G.getPointTime(item.viewTime, "YY--MM--DD HH:MM");
});
if (type == "concat") {
that.queryWithUserJobList.list = res.recordList.length > 0 ? that.queryWithUserJobList.list.concat(res.recordList) : that.queryWithUserJobList.list;
} else {
that.queryWithUserJobList.list = res.recordList;
}
console.log("res.recordList", res.recordList);
this.showPop = true;
that.loading = false;
});
},
goDetail($item) {
console.log("前往详情页", $item);
uni.navigateTo({
url: "/root/detail/job?id=" + $item.id,
});
},
},
};
</script>
<style scoped lang="less">
.sticky {
position: sticky;
top: 0px;
left: 0;
z-index: 99;
}
</style>

@ -238,13 +238,13 @@
</div>
</div>
</scroll-view>
<rh-fixed>
<g-panel-fixed>
<slot>
<div class="g_flex_row_center">
<rh-button primaryColor="#00b666" btnText="确定" type="primary" @clickBtn="submitZhengce" />
</div>
</slot>
</rh-fixed>
</g-panel-fixed>
</u-popup>
</div>
</template>

@ -109,7 +109,7 @@ let data = {
// console.log("公共参数,+++++", Object.assign($parmas, that.setPublicParams()));
uni.getNetworkType({
success: function (res) {
console.log('resresresres networkType', res);
console.log('resresresres networkType',res);
if (res.networkType !== 'none') {
uni.request({
url: ajaxUrl + $url,

Loading…
Cancel
Save