cyl/master-im
wangxia 6 months ago
parent 29dfdea250
commit 90854cf879

@ -26,192 +26,377 @@ import gPanelRecord from './components/panel/record.vue';
import gPanelTime from './components/panel/time.vue';
import gPanelTabbar from './components/panel/tabbar.vue';
import gPanelFixed from './components/panel/fixed.vue';
import { createSSRApp } from 'vue'
export function createApp () {
const app = createSSRApp(App)
app.config.productionTip = false;
Vue.config.productionTip = false;
Vue.component('g-empty', gEmpty);
Vue.component('g-loading', gLoading);
Vue.component('g-button', gButton);
Vue.component('g-list-job', gListJob);
Vue.component('g-list-apply', gListApply);
Vue.component('g-panel-server', gPanelServer);
Vue.component('g-panel-image', gPanelImage);
Vue.component('g-panel-form-item', gPanelFormItem);
Vue.component('g-panel-form-slot', gPanelFormSlot);
Vue.component('g-panel-card-num', gPanelCardNum);
Vue.component('g-panel-card-info', gPanelCardInfo);
Vue.component('g-panel-hr', gPanelHr);
Vue.component('g-panel-fond', gPanelFond);
Vue.component('g-panel-about', gPanelAbout);
Vue.component('g-panel-detail-item', gPanelDetailItem);
Vue.component('g-panel-record', gPanelRecord);
Vue.component('g-panel-time', gPanelTime);
Vue.component('g-panel-tabbar', gPanelTabbar);
Vue.component('g-panel-fixed', gPanelFixed);
Vue.prototype.api = apiInfo;
Vue.prototype.G = Object.assign(G, Ajax, {
/*
* 检查token,获取最新登录者信息
*/
checkToken () {
return new Promise((resolve, reject) => {
G.Get('/checkToken', '', (res) => {
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
resolve(res)
})
})
},
/*
* 新的检查token,获取最新登录者信息
*/
checkTokenNew () {
return new Promise((resolve, reject) => {
G.Get('/appLoginByToken', '', (res) => {
console.log('res', res);
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
resolve(res)
})
})
},
app.component('g-empty', gEmpty);
app.component('g-loading', gLoading);
app.component('g-button', gButton);
app.component('g-list-job', gListJob);
app.component('g-list-apply', gListApply);
app.component('g-panel-server', gPanelServer);
app.component('g-panel-image', gPanelImage);
app.component('g-panel-form-item', gPanelFormItem);
app.component('g-panel-form-slot', gPanelFormSlot);
app.component('g-panel-card-num', gPanelCardNum);
app.component('g-panel-card-info', gPanelCardInfo);
app.component('g-panel-hr', gPanelHr);
app.component('g-panel-fond', gPanelFond);
app.component('g-panel-about', gPanelAbout);
app.component('g-panel-detail-item', gPanelDetailItem);
app.component('g-panel-record', gPanelRecord);
app.component('g-panel-time', gPanelTime);
app.component('g-panel-tabbar', gPanelTabbar);
app.component('g-panel-fixed', gPanelFixed);
/*
*/
uploadImg (callback = () => { }, type = 'default', $num = 1, $sourceType = ['album', 'camera']) {
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: JSON.parse(imgRes)[0],
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
let imageStr = ''
imageStr = JSON.parse(res.data).data;
app.config.globalProperties.api = apiInfo;
app.config.globalProperties.G = Object.assign(G, Ajax, {
/*
* 检查token,获取最新登录者信息
*/
checkToken () {
return new Promise((resolve, reject) => {
G.Get('/checkToken', '', (res) => {
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
if (type == 'idcard') {
// 调用身份证识别
uni.uploadFile({
url: G.ajaxUrl + apiInfo.getIDcard,
filePath: JSON.parse(imgRes)[0],
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
let cardData = {
status: '上传成功',
image: imageStr,
info: JSON.parse(uploadFileRes.data).data
}
uni.hideLoading()
callback(cardData);
}
});
} else {
uni.hideLoading()
callback({
status: '上传成功',
image: imageStr
});
}
},
fail: function (res) { },
});
}, $sourceType);
},
/**
* 上传临时文件(不需要选择图库)
*/
uploadTmpImg ($fileName, callback = () => { }) {
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: $fileName,
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
let imageStr = ''
imageStr = JSON.parse(res.data).data;
callback({
status: '上传成功',
image: imageStr
});
},
fail: function (res) { },
});
},
/*
*/
uploadMedia (callback = () => { }, type = 'default', $num = 9) {
G.uploadM($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
resolve(res)
})
})
},
/*
* 新的检查token,获取最新登录者信息
*/
checkTokenNew () {
return new Promise((resolve, reject) => {
G.Get('/appLoginByToken', '', (res) => {
console.log('res', res);
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
console.log('imgRes', imgRes)
resolve(res)
})
})
},
let args = Array.from(JSON.parse(imgRes));
console.log('args', args)
// return
let imgList = []
args.forEach((item, index) => {
console.log('item,', item)
/*
*/
uploadImg (callback = () => { }, type = 'default', $num = 1, $sourceType = ['album', 'camera']) {
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: item.tempFilePath,
filePath: JSON.parse(imgRes)[0],
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
console.log('uploadFileRes', res)
imgList.push(JSON.parse(res.data).data)
if (imgList.length == args.length) {
let imageStr = ''
imageStr = JSON.parse(res.data).data;
if (type == 'idcard') {
// 调用身份证识别
uni.uploadFile({
url: G.ajaxUrl + apiInfo.getIDcard,
filePath: JSON.parse(imgRes)[0],
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
let cardData = {
status: '上传成功',
image: imageStr,
info: JSON.parse(uploadFileRes.data).data
}
uni.hideLoading()
callback(cardData);
}
});
} else {
uni.hideLoading()
callback({
status: '上传成功',
imgList: imgList
image: imageStr
});
}
},
fail: function (res) {
console.log('res', res)
},
fail: function (res) { },
});
})
});
}, $sourceType);
},
/**
* 上传临时文件(不需要选择图库)
*/
uploadTmpImg ($fileName, callback = () => { }) {
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: $fileName,
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
let imageStr = ''
imageStr = JSON.parse(res.data).data;
callback({
status: '上传成功',
image: imageStr
});
},
fail: function (res) { },
});
},
/*
*/
uploadMedia (callback = () => { }, type = 'default', $num = 9) {
G.uploadM($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
console.log('imgRes', imgRes)
let args = Array.from(JSON.parse(imgRes));
console.log('args', args)
// return
let imgList = []
args.forEach((item, index) => {
console.log('item,', item)
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: item.tempFilePath,
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
console.log('uploadFileRes', res)
imgList.push(JSON.parse(res.data).data)
if (imgList.length == args.length) {
callback({
status: '上传成功',
imgList: imgList
});
}
},
fail: function (res) {
console.log('res', res)
},
});
})
});
}
});
app.use(uView)
return {
app
}
});
console.log('main.js 公共方法:', Object.assign(G, Ajax), ' 当前设备信息:', uni.getSystemInfoSync(), ' API', apiInfo);
}
/**
* Vue2
*/
// Vue.component('g-empty', gEmpty);
// Vue.component('g-loading', gLoading);
// Vue.component('g-button', gButton);
// Vue.component('g-list-job', gListJob);
// Vue.component('g-list-apply', gListApply);
// Vue.component('g-panel-server', gPanelServer);
// Vue.component('g-panel-image', gPanelImage);
// Vue.component('g-panel-form-item', gPanelFormItem);
// Vue.component('g-panel-form-slot', gPanelFormSlot);
// Vue.component('g-panel-card-num', gPanelCardNum);
// Vue.component('g-panel-card-info', gPanelCardInfo);
// Vue.component('g-panel-hr', gPanelHr);
// Vue.component('g-panel-fond', gPanelFond);
// Vue.component('g-panel-about', gPanelAbout);
// Vue.component('g-panel-detail-item', gPanelDetailItem);
// Vue.component('g-panel-record', gPanelRecord);
// Vue.component('g-panel-time', gPanelTime);
// Vue.component('g-panel-tabbar', gPanelTabbar);
// Vue.component('g-panel-fixed', gPanelFixed);
// Vue.prototype.api = apiInfo;
// Vue.prototype.G = Object.assign(G, Ajax, {
// /*
// * 检查token,获取最新登录者信息
// */
// checkToken () {
// return new Promise((resolve, reject) => {
// G.Get('/checkToken', '', (res) => {
// uni.setStorageSync("apply-userinfo", res)
// uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
// uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
// uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
// resolve(res)
// })
// })
// },
// /*
// * 新的检查token,获取最新登录者信息
// */
// checkTokenNew () {
// return new Promise((resolve, reject) => {
// G.Get('/appLoginByToken', '', (res) => {
// console.log('res', res);
// uni.setStorageSync("apply-userinfo", res)
// uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
// uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
// uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
// resolve(res)
// })
// })
// },
// /* 上传图片
// */
// uploadImg (callback = () => { }, type = 'default', $num = 1, $sourceType = ['album', 'camera']) {
// G.uploadImage($num, (imgRes) => {
// uni.showLoading({
// title: '上传中...',
// })
// uni.uploadFile({
// url: G.ajaxUrl + apiInfo.uploadImage,
// method: "post",
// filePath: JSON.parse(imgRes)[0],
// name: "uploadFile",
// header: Object.assign({
// Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
// }, Ajax.setPublicParams()),
// formData: Ajax.setPublicParams(),
// success: function (res) {
// let imageStr = ''
// imageStr = JSON.parse(res.data).data;
// if (type == 'idcard') {
// // 调用身份证识别
// uni.uploadFile({
// url: G.ajaxUrl + apiInfo.getIDcard,
// filePath: JSON.parse(imgRes)[0],
// name: 'uploadFile',
// header: Object.assign({
// Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
// }, Ajax.setPublicParams()),
// formData: Ajax.setPublicParams(),
// success: (uploadFileRes) => {
// let cardData = {
// status: '上传成功',
// image: imageStr,
// info: JSON.parse(uploadFileRes.data).data
// }
// uni.hideLoading()
// callback(cardData);
// }
// });
// } else {
// uni.hideLoading()
// callback({
// status: '上传成功',
// image: imageStr
// });
// }
// },
// fail: function (res) { },
// });
// }, $sourceType);
// },
// /**
// * 上传临时文件(不需要选择图库)
// */
// uploadTmpImg ($fileName, callback = () => { }) {
// uni.uploadFile({
// url: G.ajaxUrl + apiInfo.uploadImage,
// method: "post",
// filePath: $fileName,
// name: "uploadFile",
// header: Object.assign({
// Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
// }, Ajax.setPublicParams()),
// formData: Ajax.setPublicParams(),
// success: function (res) {
// let imageStr = ''
// imageStr = JSON.parse(res.data).data;
// callback({
// status: '上传成功',
// image: imageStr
// });
// },
// fail: function (res) { },
// });
// },
// /* 上传媒体文件
// */
// uploadMedia (callback = () => { }, type = 'default', $num = 9) {
// G.uploadM($num, (imgRes) => {
// uni.showLoading({
// title: '上传中...',
// })
// console.log('imgRes', imgRes)
// let args = Array.from(JSON.parse(imgRes));
// console.log('args', args)
// // return
// let imgList = []
// args.forEach((item, index) => {
// console.log('item,', item)
// uni.uploadFile({
// url: G.ajaxUrl + apiInfo.uploadImage,
// method: "post",
// filePath: item.tempFilePath,
// name: "uploadFile",
// header: Object.assign({
// Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
// }, Ajax.setPublicParams()),
// formData: Ajax.setPublicParams(),
// success: function (res) {
// console.log('uploadFileRes', res)
// imgList.push(JSON.parse(res.data).data)
// if (imgList.length == args.length) {
// callback({
// status: '上传成功',
// imgList: imgList
// });
// }
// },
// fail: function (res) {
// console.log('res', res)
// },
// });
// })
// });
// }
// });
// Vue.use(uView)
// const app = new Vue({
// ...App
// })
// app.$mount()
App.mpType = 'app'
Vue.use(uView)
const app = new Vue({
...App
})
app.$mount()

@ -127,5 +127,5 @@
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "2"
"vueVersion" : "3"
}

@ -13,7 +13,7 @@
/>
<view class="g_mt_10 g_mb_10 g_ml_10 g_mr_10" v-if="isLogin && isCreator">
<!-- 数据展示 -->
<view class="g_bg_f g_radius_8" v-if="true">
<view class="g_bg_f g_radius_8" v-if="false">
<view v-if="isHaveOrder" class="g_pt_12 g_pb_12 g_flex_row_between" style="border-bottom: 1px solid #f5f5f5">
<view class="g_fs_16 g_c_3 g_fw_600 g_flex_none g_pl_16">我的发单账号</view>
<view class="g_flex_row_end g_flex_1 g_pr_16" hover-class="thover" @click="goPage('/root/person/myOrder')">

@ -1,282 +1,295 @@
<template>
<view class="p-root-detail-job g_pt_10 g_pl_20 g_pr_20 g_kuaishou">
<div class="p-root-detail-job g_pt_10 g_pl_20 g_pr_20 g_kuaishou">
<!-- {{ from }} -->
<!-- {{ selfJob }} -->
<view v-if="speed == 0">
<div v-if="speed == 0">
<g-loading />
</view>
<view v-if="speed == 1">
</div>
<div v-if="speed == 1">
<!-- 基本信息 -->
<view class="servicePrice g_flex_row_between flex_center g_p_14 g_pl_20 g_pr_20 g_mb_16" style="" hover-class="none" hover-stop-propagation="false">
<view class="left">
<view class="g_fs_18 g_c_f40 g_fw_600" v-if="jobDetail.policyClassify == 1">
<div class="r_box g_mb_10 g_pl_10 g_pr_10 servicePrice" @click="showFee">
<div class="g_flex_row_between flex_center g_fs_16">
<div class="g_flex_row_start" style="flex: none">
<div class="g_fw_600 g_mr_4 g_h_67 g_flex_column_center">代理佣金</div>
<icon :class="showPrice ? 'icon-zhengyan1' : 'icon-biyan1'" class="iconfont g_c_f40 g_fs_22 g_h_67 g_flex_column_center" @click.stop="() => (showPrice = !showPrice)" style="width: 67px"></icon>
</div>
<div class="g_flex_row_end flex_center g_h_67" style="flex: 1">
<span class v-if="showPrice">{{ jobDetail.serverPrice || "" }}</span>
<span class v-else>***</span>
<div class="iconfont icon-gengduo11 g_fs_14 g_c_6 g_ml_4"></div>
</div>
</div>
</div>
<!-- <div class="servicePrice g_flex_row_between flex_center g_p_14 g_pl_20 g_pr_20 g_mb_16" style="" hover-class="none" hover-stop-propagation="false">
<div class="left">
<div class="g_fs_18 g_c_f40 g_fw_600" v-if="jobDetail.policyClassify == 1">
服务费
<span class v-if="attention && showPrice">{{ jobDetail.serverPrice || "--" }}</span>
<span class v-else>***</span>
</view>
<view class="g_fs_18 g_c_f40 g_fw_600" v-else>
</div>
<div class="g_fs_18 g_c_f40 g_fw_600" v-else>
总价
<span class v-if="attention && showPrice">{{ jobDetail.totalPrice / 100 + "/" || "--" }}</span>
<span class v-else>***</span>
</view>
</view>
<view class="right">
</div>
</div>
<div class="right">
<icon class="iconfont ysd-base-color g_fsi_22 g_c_f40" :class="showPrice ? 'icon-zhengyan1' : 'icon-biyan1'" color @click="showPrice = !showPrice"></icon>
</view>
</view>
<view class="m-info g_mb_12">
<view class="g_flex_1">
<view class="g_mb_10 g_flex_row_between">
<view class="g_flex_1 g_c_3 g_fs_24 g_fw_bold">{{ jobDetail.jobName }}</view>
</div>
</div> -->
<div class="m-info g_mb_12">
<div class="g_flex_1">
<div class="g_mb_10 g_flex_row_between">
<div class="g_flex_1 g_c_3 g_fs_24 g_fw_bold">{{ jobDetail.jobName }}</div>
<!-- <view class="g_flex_none g_flex_column_center">
<!-- <div class="g_flex_none g_flex_column_center">
<g-panel-server :str="attention ? jobDetail.serverPrice : '关注查看'" verson="new" />
</view> -->
</view>
</div> -->
</div>
<template v-if="jobDetail.classify == 1">
<view class="g_fs_14 g_c_6 g_mb_12 g_c_f40 g_lh_1_2 g_flex_column_center g_mr_18">{{ jobDetail.priceStr }}</view>
<view class="g_flex_row_start g_mb_10">
<view class="g_flex_row_start g_mr_18" v-if="jobDetail.addressStr">
<view class="g_flex_column_center">
<div class="g_fs_14 g_c_6 g_mb_12 g_c_f40 g_lh_1_2 g_flex_column_center g_mr_18">{{ jobDetail.priceStr }}</div>
<div class="g_flex_row_start g_mb_10">
<div class="g_flex_row_start g_mr_18" v-if="jobDetail.addressStr">
<div class="g_flex_column_center">
<i class="iconfont icon-dingwei2 g_c_6 g_fs_17 g_lh_1_2"></i>
</view>
<view class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.addressStr }}</view>
</view>
<view class="g_flex_row_start">
<view class="g_flex_column_center">
</div>
<div class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.addressStr }}</div>
</div>
<div class="g_flex_row_start">
<div class="g_flex_column_center">
<i class="iconfont icon-nianling g_c_6 g_fs_16 g_lh_1_2"></i>
</view>
<view class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.genderAge }}</view>
</view>
</view>
<view class="g_flex_row_start">
<view class="g_flex_column_center">
</div>
<div class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.genderAge }}</div>
</div>
</div>
<div class="g_flex_row_start">
<div class="g_flex_column_center">
<i class="iconfont icon-zhaopinqiye g_c_6 g_lh_1_2"></i>
</view>
<view class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.storeName }}</view>
</view>
</div>
<div class="g_fs_14 g_c_6 g_ml_4 g_lh_1_2 g_flex_column_center">{{ jobDetail.storeName }}</div>
</div>
</template>
</view>
</view>
</div>
</div>
<template v-if="jobDetail.classify == 2">
<view class="g_flex_row_between flex_center">
<view style="background-color: rgba(255, 77, 79, 0.1); color: #ff4d4f; display: inline-block; padding: 0 4px; border-radius: 2px" class="g_mr_16">
<div class="g_flex_row_between flex_center">
<div style="background-color: rgba(255, 77, 79, 0.1); color: #ff4d4f; display: inline-block; padding: 0 4px; border-radius: 2px" class="g_mr_16">
{{ corpUserFlag ? jobDetail.supplier : "-" }}
</view>
<view style="float: right; position: relative" @click="makePhone(jobDetail.phone)" v-if="jobDetail.phone">
</div>
<div style="float: right; position: relative" @click="makePhone(jobDetail.phone)" v-if="jobDetail.phone">
<image :src="cdnBaseImg + 'tel.svg'" class="g_w_32 g_h_32"></image>
</view>
</view>
<!-- <view class="g_fs_14 g_c_f40 g_mt_8">
</div>
</div>
<!-- <div class="g_fs_14 g_c_f40 g_mt_8">
{{jobDetail.priceStr}}
</view> -->
</div> -->
</template>
<view class="g_flex_row_start">
<view v-for="(item, index) in jobDetail.jobSpecialLabelNames" class="g_mr_8 g_mb_8 g_pl_4 g_pr_4" :style="{ color: labelColor[index % labelColor.length], 'background-color': bgColor[index % bgColor.length] }"> {{ item }}</view>
</view>
<!-- <view class="g_flex_row_start">
<view v-for="(item, index) in jobDetail.jobRequestLabelNames" class="g_mr_8 g_mb_4 g_pl_4 g_pr_4 g_c_6 g_bg_f_5"> {{ item }}</view>
</view>-->
<div class="g_flex_row_start">
<div v-for="(item, index) in jobDetail.jobSpecialLabelNames" class="g_mr_8 g_mb_8 g_pl_4 g_pr_4" :style="{ color: labelColor[index % labelColor.length], 'background-color': bgColor[index % bgColor.length] }">{{ item }}</div>
</div>
<!-- <div class="g_flex_row_start">
<div v-for="(item, index) in jobDetail.jobRequestLabelNames" class="g_mr_8 g_mb_4 g_pl_4 g_pr_4 g_c_6 g_bg_f_5"> {{ item }}</div>
</div>-->
<!-- 所属公司信息 -->
<view class="m-boss g_mt_15 g_mb_16" hover-class="thover" @click="goUserMain">
<view class="box g_flex_row_between g_h_62 g_radius_3 g_pl_16 g_pr_16">
<view class="g_flex_row_start g_flex_1">
<view class="g_flex_column_center g_mr_9 g_flex_none">
<div class="m-boss g_mt_15 g_mb_16" hover-class="thover" @click="goUserMain">
<div class="box g_flex_row_between g_h_62 g_radius_3 g_pl_16 g_pr_16">
<div class="g_flex_row_start g_flex_1">
<div class="g_flex_column_center g_mr_9 g_flex_none">
<g-panel-image :url="jobDetail.agencyLogo" size="76" />
</view>
<view class="g_flex_1 g_flex_column_center">
<view class="g_ell_1 g_c_3 g_fs_14">{{ jobDetail.agencyName }}</view>
</view>
</view>
<view class="g_flex_column_center g_c_a g_fs_14 g_flex_none g_ml_20">{{ jobDetail.updateTime }}发布</view>
</view>
</view>
</div>
<div class="g_flex_1 g_flex_column_center">
<div class="g_ell_1 g_c_3 g_fs_14">{{ jobDetail.agencyName }}</div>
</div>
</div>
<div class="g_flex_column_center g_c_a g_fs_14 g_flex_none g_ml_20">{{ jobDetail.updateTime }}发布</div>
</div>
</div>
<!-- 地址 -->
<view class="m-address g_mt_16 g_mb_16 g_pt_10 g_pb_10 g_flex_row_start" style="border-top: 1rpx solid #f5f5f5; border-bottom: 1rpx solid #f5f5f5" hover-class="thover" @click="goAddress">
<view class="g_flex_none g_flex_column_center">
<div class="m-address g_mt_16 g_mb_16 g_pt_10 g_pb_10 g_flex_row_start" style="border-top: 1rpx solid #f5f5f5; border-bottom: 1rpx solid #f5f5f5" hover-class="thover" @click="goAddress">
<div class="g_flex_none g_flex_column_center">
<image :src="cdnBaseImg + 'jobaddress.svg'" class="g_w_20 g_h_20"></image>
</view>
<view class="g_flex_1 g_ml_4 g_mr_4 g_flex_column_center">
<view class="g_fs_16 g_c_3 g_ell_1">
</div>
<div class="g_flex_1 g_ml_4 g_mr_4 g_flex_column_center">
<div class="g_fs_16 g_c_3 g_ell_1">
{{ jobDetail.storeAddr || "-" }}
</view>
</view>
<view class="g_flex_none g_flex_column_center">
</div>
</div>
<div class="g_flex_none g_flex_column_center">
<image :src="cdnBaseImg + 'jobmore.svg'" class="g_w_14 g_h_14"></image>
</view>
</view>
<!-- <view class="kefuBox">
<view class="iconBox" v-if="jobDetail.record.customServiceUser && jobDetail.record.customServiceUser.tel">
</div>
</div>
<!-- <div class="kefuBox">
<div class="iconBox" v-if="jobDetail.record.customServiceUser && jobDetail.record.customServiceUser.tel">
<i class="g_fsi_20 iconfont icon-phone g_c_main" @click="takeTel(jobDetail.record)"></i>
</view>
<view class="iconBox" v-if="jobDetail.storeJobDetail && jobDetail.storeJobDetail.customServiceUrl">
</div>
<div class="iconBox" v-if="jobDetail.storeJobDetail && jobDetail.storeJobDetail.customServiceUrl">
<i class="g_fsi_20 iconfont icon-weixin" style="color: #40d559" @click="kefu(jobDetail.record)"></i>
</view>
</view> -->
</div>
</div> -->
<!-- 轮播banner -->
<view class="m-banner g_pb_16 g_border_f5_b" v-if="swiperArray.length > 0">
<div class="m-banner g_pb_16 g_border_f5_b" v-if="swiperArray.length > 0">
<swiper class="swiper" :circular="false" :autoplay="false" :display-multiple-items="swiperArray.length < 5 ? swiperArray.length : 5" style="height: 58px">
<swiper-item v-for="(item, index) in swiperArray" style="max-width: 58px; padding-right: 12px" :key="index" :class="index == 0 ? 'g_ml_0 g_mr_0' : ''">
<u-image :radius="4" v-if="item.type == 'image'" :showLoading="true" :src="item.image" width="58px" height="58px" style="border-radius: 4px" @click="handleViewBig(item, index)"></u-image>
<view class="g_w_58 g_h_58 g_radius_4 videoContainer" style="overflow: hidden" @click="showVideo(item)" v-else>
<div class="g_w_58 g_h_58 g_radius_4 videoContainer" style="overflow: hidden" @click="showVideo(item)" v-else>
<video class="theVideo" :show-fullscreen-btn="false" :show-play-btn="false" :show-center-play-btn="false" :enable-play-gesture="true" :id="item.id" :src="item.image" @fullscreenchange="fullScreen">
<view class="shareVideo">
<div class="shareVideo">
<icon @click="shareVideo(item)" class="iconfont" :class="wxPlat == 'wxwork' ? 'icon-huidaodingbu' : 'icon-zhuanfa1'" hover-class="none" hover-stop-propagation="false"></icon>
</view>
</div>
</video>
</view>
</div>
</swiper-item>
</swiper>
</view>
<view class="g_flex_row_center g_border_f5_b g_mb_16" hover-class="none">
</div>
<div class="g_flex_row_center g_border_f5_b g_mb_16" hover-class="none">
<u-tabs class="g_w_all" bg-color="transparent" from="index" gutter="0" :isScroll="false" :list="tabInfo.list" :current="tabInfo.active" active-color="#00b666" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="32" duration="0.05" height="92"></u-tabs>
</view>
</div>
<!-- 职位描述富文本 -->
<!-- <view class="m-desc g_flex_column_center g_h_28">
<view class="tip g_flex_row_start">
<view class="g_flex_column_center">
<view class="doc g_w_4 g_h_19 g_bg_main g_radius_2 g_mr_10"></view>
</view>
<view class="g_fs_18 g_c_3 g_fw_600 g_flex_column_center">职位描述</view>
</view>
</view> -->
<view class="g_position_rela" v-if="attention && tabInfo.list[tabInfo.active].tip == 1">
<template v-for="(item, index) in templateArr" :key="index">
<view class="g_flex_row_start flex_center g_fw_600 g_mt_12 g_mb_8 g_fs_16" v-if="item.show">
<view class="" v-if="item.num == 1"></view>
<view class="" v-if="item.num == 2"></view>
<view class="" v-if="item.num == 3"></view>
<view class="" v-if="item.num == 4"></view>
<view class="" v-if="item.num == 5"></view>
<view class="" v-if="item.num == 6"></view>
<view class="">
<!-- <div class="m-desc g_flex_column_center g_h_28">
<div class="tip g_flex_row_start">
<div class="g_flex_column_center">
<div class="doc g_w_4 g_h_19 g_bg_main g_radius_2 g_mr_10"></div>
</div>
<div class="g_fs_18 g_c_3 g_fw_600 g_flex_column_center">职位描述</div>
</div>
</div> -->
<div class="g_position_rela" v-if="attention && tabInfo.list[tabInfo.active].tip == 1">
<template v-for="(item, index) in templateArr">
<div class="g_flex_row_start flex_center g_fw_600 g_mt_12 g_mb_8 g_fs_16" :key="index" v-if="item.show">
<div class="" v-if="item.num == 1"></div>
<div class="" v-if="item.num == 2"></div>
<div class="" v-if="item.num == 3"></div>
<div class="" v-if="item.num == 4"></div>
<div class="" v-if="item.num == 5"></div>
<div class="" v-if="item.num == 6"></div>
<div class="">
{{ item.type }}
</view>
</view>
<template v-for="(inner, index) in item.children" :key="index">
<view class="g_flex_row_start g_fs_14" style="line-height: 22px; padding-left: 16px" v-if="inner.show">
<view class="g_flex_row_start flex_start g_fw_600">
<view class="g_mr_4" hover-class="none" hover-stop-propagation="false">
</div>
</div>
<template v-for="(inner, index) in item.children">
<div class="g_flex_row_start g_fs_14" :key="index" style="line-height: 22px; padding-left: 16px" v-if="inner.show">
<div class="g_flex_row_start flex_start g_fw_600">
<div class="g_mr_4" hover-class="none" hover-stop-propagation="false">
{{ `${inner.num}. ` }}
</view>
<view class="g_flex_1">
</div>
<div class="g_flex_1">
{{ `${inner.key}: ` }}
<text class="g_fw_400 g_ml_4" selectable="false" space="false" decode="false">
{{ inner.value }}
</text>
</view>
</view>
</div>
</div>
<!-- @blur="inner.edit = false" -->
</view>
</div>
</template>
</template>
</view>
</div>
<view v-if="tabInfo.list[tabInfo.active].tip == 2">
<div v-if="tabInfo.list[tabInfo.active].tip == 2">
<!-- v-if="IS_CREATOR && selfJob && jobDetail.daotian == 1" -->
<view class="g_position_rela" v-if="(IS_CREATOR && selfJob && jobDetail.daotian == 1) || (IS_CREATOR && selfJob && jobDetail.jobType == 1)">
<view class="g_fs_16 g_c_3 g_fw_600 g_flex_column_center g_mb_12">服务费</view>
<view class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l g_mb_16" style="white-space: pre-line">
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 服务费 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
<div class="g_position_rela" v-if="(IS_CREATOR && selfJob && jobDetail.daotian == 1) || (IS_CREATOR && selfJob && jobDetail.jobType == 1)">
<div class="g_fs_16 g_c_3 g_fw_600 g_flex_column_center g_mb_12">服务费</div>
<div class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l g_mb_16" style="white-space: pre-line">
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">服务费</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.serverPrice || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 服务费详情 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">服务费详情</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.returnFeeDesp || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 1">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 调单费 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
<view v-if="jobDetail.transferFeeRadio == 0"> </view>
<view v-if="jobDetail.transferFeeRadio == 1"> {{ jobDetail.transferFee }}</view>
<view v-if="jobDetail.transferFeeRadio == 2"> {{ jobDetail.transferFee }}</view>
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 1">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 补充说明 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 1">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">调单费</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
<div v-if="jobDetail.transferFeeRadio == 0"></div>
<div v-if="jobDetail.transferFeeRadio == 1"> {{ jobDetail.transferFee }}</div>
<div v-if="jobDetail.transferFeeRadio == 2"> {{ jobDetail.transferFee }}</div>
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 1">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">补充说明</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.storeJobDetail.otherDesp || jobDetail.otherDesp || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 扣税说明 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">扣税说明</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.storeJobDetail.deductTaxDesp || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 账单日</view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">账单日</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.storeJobDetail.outListTime || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 结算说明 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.jobType == 1">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">结算说明</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.storeJobDetail.settlementTime || "-" }}
</view>
</view>
</view>
</view>
<view class="g_position_rela">
<view class="g_fs_16 g_c_3 g_fw_600 g_flex_column_center g_mb_12">代理费</view>
</div>
</div>
</div>
</div>
<div class="g_position_rela">
<div class="g_fs_16 g_c_3 g_fw_600 g_flex_column_center g_mb_12">代理费</div>
<view class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l" style="white-space: pre-line">
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> {{ IS_CREATOR && selfJob ? "代理费" : "代理费" }} </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
<div class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l" style="white-space: pre-line">
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">{{ IS_CREATOR && selfJob ? "代理费" : "代理费" }}</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.agencyServerPrice || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> {{ IS_CREATOR && selfJob ? "代理费详情" : "代理费详情" }} </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">{{ IS_CREATOR && selfJob ? "代理费详情" : "代理费详情" }}</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.agencyReturnFeeDesp || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 0">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 政策模式</view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b" v-if="jobDetail.daotian == 0">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">政策模式</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.policyNumStr || "-" }}
</view>
</view>
</view>
<!-- <view class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" style="white-space: pre-line">
<view class="">
</div>
</div>
</div>
<!-- <div class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" style="white-space: pre-line">
<div class="">
{{ (IS_CREATOR && selfJob ? "代理费:" : "服务费:") + (G.setReturnFee(jobDetail.agencyReturnFee, jobDetail.agencyReturnFeeType) || "-") }}
</view>
<view style="white-space: pre-line; line-height: 26px">
</div>
<div style="white-space: pre-line; line-height: 26px">
{{ (IS_CREATOR && selfJob ? "代理费详情:" : "服务费详情:") + (jobDetail.agencyReturnFeeDesp || "-") }}
</view>
</view> -->
</view>
</view>
<view class="g_position_rela" v-if="attention && tabInfo.list[tabInfo.active].tip == 3">
</div>
</div> -->
</div>
</div>
<div class="g_position_rela" v-if="attention && tabInfo.list[tabInfo.active].tip == 3">
<!-- style="position: absolute; right: 16px; top: -28px" -->
<view class="g_flex_row_end" hover-class="thover" @click="setCopy" style="position: absolute; right: 16px; top: 0px">
<view class="g_c_9 g_flex_row_start flex_center">
<div class="g_flex_row_end" hover-class="thover" @click="setCopy" style="position: absolute; right: 16px; top: 0px">
<div class="g_c_9 g_flex_row_start flex_center">
<i class="iconfont icon-fuzhi g_mr_4"></i>
复制
</view>
</div>
<!-- <g-button btnText="复制" type="none" size="mini" /> -->
</view>
<view class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 2 && jobDetail.daotian == 0" :data-info="jobDetail.jobInfo" style="white-space: pre-line" v-html="jobDetail.jobInfo || '-'"></view>
<view class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 2 && jobDetail.daotian == 1" :data-info="jobDetail.storeJobDetail.jobDesp3" style="white-space: pre-line" v-html="jobDetail.jobDesp || '-'"></view>
<view class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 1" :data-info="jobDetail.storeJobDetail.jobDesp3" style="white-space: pre-line" v-html="jobDetail.storeJobDetail.jobDesp2 || '-'"></view>
</view>
<view v-if="tabInfo.list[tabInfo.active].tip == 4">
<view class="g_position_rela">
<view class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l" style="white-space: pre-line">
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 驻场信息 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
<div class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 2 && jobDetail.daotian == 0" :data-info="jobDetail.jobInfo" style="white-space: pre-line" v-html="jobDetail.jobInfo || '-'"></div>
<div class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 2 && jobDetail.daotian == 1" :data-info="jobDetail.storeJobDetail.jobDesp3" style="white-space: pre-line" v-html="jobDetail.jobDesp || '-'"></div>
<div class="g_fs_16 g_c_6 g_pt_12 g_pb_12 contactInfo" v-if="jobDetail.jobType == 1" :data-info="jobDetail.storeJobDetail.jobDesp3" style="white-space: pre-line" v-html="jobDetail.storeJobDetail.jobDesp2 || '-'"></div>
</div>
<div v-if="tabInfo.list[tabInfo.active].tip == 4">
<div class="g_position_rela">
<div class="g_fs_14 g_c_6 contactInfo g_border_e_r g_border_e_t g_border_e_l" style="white-space: pre-line">
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">驻场信息</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{
jobDetail.onSiteUsers
.map((item) => {
@ -284,135 +297,135 @@
})
.join("") || "-"
}}
</view>
</view>
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_c_6 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 面试地点 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_c_6 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">面试地点</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.interviewAddr || "-" }}
</view>
</view>
<view class="g_flex_row_start g_border_e_b">
<view class="g_w_110 g_c_6 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px"> 其他说明 </view>
<view class="g_flex_1 g_c_3" style="padding: 4px 8px">
</div>
</div>
<div class="g_flex_row_start g_border_e_b">
<div class="g_w_110 g_c_6 g_border_e_r g_flex_column_center g_text_c" style="padding: 4px 12px">其他说明</div>
<div class="g_flex_1 g_c_3" style="padding: 4px 8px">
{{ jobDetail.otherInfo || "-" }}
</view>
</view>
</view>
</view>
</view>
</div>
</div>
</div>
</div>
</div>
<!-- 底部固定操作栏 -->
<view class="g_h_104"></view>
<div class="g_h_104"></div>
<g-panel-fixed>
<slot>
<view class="g_pl_20 g_pr_20 g_flex_row_center flex_center flex_nw" style="width: 100%">
<div class="g_pl_20 g_pr_20 g_flex_row_center flex_center flex_nw" style="width: 100%">
<!-- #ifdef MP-WEIXIN -->
<view class="g_flex_none g_flex_column_center" v-if="from != 'bill'">
<div class="g_flex_none g_flex_column_center" v-if="from != 'bill'">
<button class="g_pl_0 g_pr_0 g_bg_f g_mr_16" hover-class="thover" open-type="share" style="line-height: 1">
<icon class="iconfont icon-zhuanfa1 g_fsi_16" style="color: #787878; line-height: 1; margin-top: -5px"></icon>
<view class="g_fs_12 g_c_6 g_w_28" style="margin-top: 8px">分享</view>
<div class="g_fs_12 g_c_6 g_w_28" style="margin-top: 8px">分享</div>
</button>
</view>
</div>
<!-- #endif -->
<view class="g_flex_none g_flex_column_center" v-if="false && from == 'bill'">
<div class="g_flex_none g_flex_column_center" v-if="false && from == 'bill'">
<button class="g_pl_0 g_pr_0 g_bg_f g_mr_12" hover-class="thover" @click="goEditJob" style="line-height: 1">
<icon class="iconfont icon-bianji g_fsi_16" style="color: #787878; line-height: 1; margin-top: -5px"></icon>
<view class="g_fs_12 g_c_6 g_w_28" style="margin-top: 8px">编辑</view>
<div class="g_fs_12 g_c_6 g_w_28" style="margin-top: 8px">编辑</div>
</button>
</view>
<view class="g_flex_none g_flex_column_center" v-if="attention && from != 'bill'">
</div>
<div class="g_flex_none g_flex_column_center" v-if="attention && from != 'bill'">
<button class="g_pl_0 g_pr_0 g_bg_f g_mr_12 g_w_36" hover-class="thover" style="line-height: 1; border-radius: 0" @click="handleCollection">
<icon v-if="isSc" class="iconfont icon-yishoucang g_fsi_16" style="color: #ff4400; line-height: 1; margin-top: -5px"></icon>
<icon v-else class="iconfont icon-shoucang g_fsi_16" style="color: #787878; line-height: 1; margin-top: -5px"></icon>
<view class="g_fs_12 g_c_6" style="margin-top: 8px">{{ isSc ? "已收藏" : "收藏" }}</view>
<div class="g_fs_12 g_c_6" style="margin-top: 8px">{{ isSc ? "已收藏" : "收藏" }}</div>
</button>
</view>
<view class="g_flex_1 g_flex_column_center">
</div>
<div class="g_flex_1 g_flex_column_center">
<g-button btnText="我要报名" class="g_flex_1 g_fw_600" size="small_auto" :type="jobDetail.recruitment == 2 || !attention ? 'infro' : 'primary'" @clickBtn="handleOpenApplyPopup"></g-button>
</view>
</view>
</div>
</div>
</slot>
</g-panel-fixed>
</view>
</div>
<!-- 报名弹窗 -->
<u-popup v-model="applyPopup.isShow" mode="center" border-radius="8" :mask-close-able="false" width="694rpx">
<view class="g_pt_24 g_pl_32 g_pr_32 g_pb_24 apply">
<view class="g_flex_row_center g_fs_18 g_c_3 g_fw_600 g_mb_16">报名确认</view>
<div class="g_pt_24 g_pl_32 g_pr_32 g_pb_24 apply">
<div class="g_flex_row_center g_fs_18 g_c_3 g_fw_600 g_mb_16">报名确认</div>
<scroll-view>
<view class="link">
<view class="item g_flex_row_start g_mb_10">
<view class="g_flex_none g_fs_14 g_c_3 g_mr_16 g_w_60 g_text_word_c g_flex_column_center"> 报名岗位 </view>
<view class="g_flex_1 g_ell_1 g_fs_15 g_c_3 g_fw_600 g_flex_column_center">
<div class="link">
<div class="item g_flex_row_start g_mb_10">
<div class="g_flex_none g_fs_14 g_c_3 g_mr_16 g_w_60 g_text_word_c g_flex_column_center">报名岗位</div>
<div class="g_flex_1 g_ell_1 g_fs_15 g_c_3 g_fw_600 g_flex_column_center">
{{ jobDetail.jobName }}
</view>
</view>
<view class="item g_flex_row_start g_mb_12">
<view class="g_flex_none g_fs_14 g_c_3 g_mr_16 g_w_60 g_text_word_c g_flex_column_center"> 服务费 </view>
<view class="g_flex_1 g_ell_1 g_c_f0 g_fw_700 g_flex_column_center">
</div>
</div>
<div class="item g_flex_row_start g_mb_12">
<div class="g_flex_none g_fs_14 g_c_3 g_mr_16 g_w_60 g_text_word_c g_flex_column_center">服务费</div>
<div class="g_flex_1 g_ell_1 g_c_f0 g_fw_700 g_flex_column_center">
{{ jobDetail.serverPrice }}
</view>
</view>
<view class="item g_mb_10">
<view class="g_fs_14 g_c_3 label g_mb_5">姓名</view>
<view>
</div>
</div>
<div class="item g_mb_10">
<div class="g_fs_14 g_c_3 label g_mb_5">姓名</div>
<div>
<input type="text" v-model="formInfo.userName" placeholder-class="g_c_c" placeholder="请输入姓名或称呼" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12" />
</view>
</view>
<view class="item g_mb_10">
<view class="g_fs_14 g_c_3 label g_mb_5">身份证</view>
<view style="position: relative; line-height: 40px" :maxlength="18" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12">
</div>
</div>
<div class="item g_mb_10">
<div class="g_fs_14 g_c_3 label g_mb_5">身份证</div>
<div style="position: relative; line-height: 40px" :maxlength="18" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12">
<input type="text" maxlength="18" v-model="formInfo.idCard" placeholder-class="g_c_c" class="g_h_40 g_w_200" placeholder="手动输入或拍照自动识别" />
<view class="t-icon t-icon-paizhao riliIcon" style="width: 16px; height: 14px" @click="getIDCardInfo"> </view>
</view>
</view>
<view class="item g_mb_8">
<view class="g_fs_14 g_c_3 label g_mb_5">联系电话</view>
<view>
<div class="t-icon t-icon-paizhao riliIcon" style="width: 16px; height: 14px" @click="getIDCardInfo"></div>
</div>
</div>
<div class="item g_mb_8">
<div class="g_fs_14 g_c_3 label g_mb_5">联系电话</div>
<div>
<input type="text" v-model="formInfo.tel" :maxlength="11" placeholder-class="g_c_c" placeholder="请输入联系电话" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12" />
</view>
</view>
<view class="g_fs_11 g_mb_10" style="color: #b8b8b8"> 注意不同的报名人填写同一个手机号报名将会失败 </view>
<view class="item g_mb_12">
<view class="g_fs_14 g_c_3 label g_mb_5">预约面试时间</view>
<view @click="show = true" style="position: relative; line-height: 40px" class="g_flex_1 g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12">
<view style="position: absolute; left: 0; top: 0; width: 100%; z-index: 2; padding-left: 12px">
</div>
</div>
<div class="g_fs_11 g_mb_10" style="color: #b8b8b8">注意不同的报名人填写同一个手机号报名将会失败</div>
<div class="item g_mb_12">
<div class="g_fs_14 g_c_3 label g_mb_5">预约面试时间</div>
<div @click="show = true" style="position: relative; line-height: 40px" class="g_flex_1 g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12">
<div style="position: absolute; left: 0; top: 0; width: 100%; z-index: 2; padding-left: 12px">
<picker mode="multiSelector" class="g_h_40" :range="dateTimeArray" :value="dateTime" @change="changeDateTime" @columnchange="changeDateTimeColumn($event)" style="color: #333">
{{ !!currentTime ? currentTime : "----" }}
</picker>
</view>
</div>
<i class="iconfont icon-rili g_fs_16 g_ml_4 g_c_9 riliIcon"></i>
</view>
</view>
<view class="item g_mb_16">
<view class="g_fs_14 g_c_3 g_mb_5">备注</view>
<view>
</div>
</div>
<div class="item g_mb_16">
<div class="g_fs_14 g_c_3 g_mb_5">备注</div>
<div>
<!-- <input type="text" v-model="formInfo.desp" placeholder="请输入备注" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pr_12"> -->
<!-- class="g_bg_f_7" -->
<textarea v-model="formInfo.desp" placeholder-class="g_c_c" type="textarea" placeholder="请输入备注" class="g_bg_f_9 g_radius_4 g_h_40 g_pl_12 g_pt_6" style="min-height: 80px" />
</view>
</view>
<view class="g_flex_row_center g_flex_row_center g_mb_16" style="color: rgba(0, 0, 0, 0.45)">
</div>
</div>
<div class="g_flex_row_center g_flex_row_center g_mb_16" style="color: rgba(0, 0, 0, 0.45)">
<u-checkbox-group @change="radioGroupChange" shape="circle">
<u-checkbox v-model="agreeRadio" name="agree" active-color="#00b666">
<view class="g_flex_row_center g_fs_12 g_flex_row_center">
<view>我已阅读并同意</view>
<view @click="goPage('/root/person/agreeUser')"></view>
<view></view>
<view @click="goPage('/root/person/agreeUser')"></view>
</view>
<div class="g_flex_row_center g_fs_12 g_flex_row_center">
<div>我已阅读并同意</div>
<div @click="goPage('/root/person/agreeUser')"></div>
<div></div>
<div @click="goPage('/root/person/agreeUser')"></div>
</div>
</u-checkbox>
</u-checkbox-group>
</view>
<view class="g_flex_row_between item">
<view class="g_fs_16 g_c_9 g_flex_c g_mr_16" hover-class="btnHoverBg" @click="applyPopup.isShow = false">取消</view>
<view class="btn g_fs_16 g_c_f g_bg_main g_flex_1 g_flex_c g_ml_16" hover-class="thover" @click="handleSubmit"></view>
</view>
</view>
</div>
<div class="g_flex_row_between item">
<div class="g_fs_16 g_c_9 g_flex_c g_mr_16" hover-class="btnHoverBg" @click="applyPopup.isShow = false">取消</div>
<div class="btn g_fs_16 g_c_f g_bg_main g_flex_1 g_flex_c g_ml_16" hover-class="thover" @click="handleSubmit"></div>
</div>
</div>
</scroll-view>
</view>
</div>
</u-popup>
</view>
</div>
</template>
<script>
@ -778,7 +791,7 @@ export default {
return false;
}
uni.navigateTo({
url: "/root/home/quickApplication?jobId=" + this.jobDetail.id + "&jobName=" + this.jobDetail.jobName + "&title=报名&type=" + that.jobDetail.jobType + "&tid=" + that.jobDetail.record.templateId,
url: "/root/home/quickApplication?jobId=" + this.jobDetail.id + "&jobName=" + this.jobDetail.jobName + "&title=报名&type=" + that.jobDetail.jobType + "&agencyId=" + that.jobDetail.agencyId,
});
// if (this.jobDetail.recruitment == 1) {
// this.formInfo = {
@ -1072,6 +1085,27 @@ export default {
// this.getList();
}
},
showFee() {
let that = this;
let content, title;
if (that.jobDetail.returnFeeDesp) {
title = "佣金: " + that.jobDetail.serverPrice;
content = that.jobDetail.returnFeeDesp;
} else {
title = "详询客服";
content = "因三方项目政策变动太快,详情请咨询客服。页面左下角点击“联系客服”直接联系我哟~";
}
that.G.handleConfirm({
title,
content,
contentColor: "#ccc",
confirmColor: "#576b95",
confirmText: "确定",
showCancel: false,
success(res) {},
});
},
},
};
</script>
@ -1157,12 +1191,12 @@ export default {
}
.servicePrice {
height: 64px;
border: 1rpx solid #ff4400;
background-color: #ffeee7;
border-right-color: transparent;
border-left-color: transparent;
width: 100vw;
margin-left: -20px;
border: 1rpx solid #eee;
// background-color: #ffeee7;
// border-right-color: transparent;
// border-left-color: transparent;
// width: 100vw;
// margin-left: -20px;
}
.kefuBox {
position: fixed;

@ -63,28 +63,6 @@
<view class="fs_top text-wrap">
<g-panel-form-slot :list="jobData" @clickResult="changePage" @changeTime="getInviteTime"> </g-panel-form-slot>
</view>
<view class="fs_bottom">
<g-panel-form-slot
:list="[
{
icon: '',
label: '政策模式',
result: '',
path: '',
value: zhengceSelect.text,
tip: 'slot-zhengce',
require: true,
customRequire: true,
type: 'slot-zhengce',
pColumn: 12,
from: 'slot-zhengce',
},
]"
:defaultOption="zhengceTextList"
@updateZhengce="changeZhengce"
>
</g-panel-form-slot>
</view>
</view>
<view>
<view class="card-tip g_pt_24 g_pb_8 g_pl_20 g_c_6">报名备注</view>
@ -121,7 +99,7 @@
<script>
import { nationlist } from "../../utils/nation.js";
import dateUtil from "../../utils/dateUtil.js";
console.log('dateUtil',dateUtil);
console.log("dateUtil", dateUtil);
export default {
onReady() {
this.G.setNavStyle();
@ -142,15 +120,6 @@ export default {
that.updateInfo.jobName = data.info.title;
that.jobType = data.info.jobType;
console.log("data.info", data.info);
if (that.jobType == 1) {
that.templateId = data.info.templateId;
that.getPolicyByJobId({
leafCateId: data.info.leafCateId,
templateId: data.info.templateId,
});
} else {
that.getPolicyById(data.info);
}
that.getJobDetail(data.info);
that.$forceUpdate();
});
@ -176,18 +145,16 @@ export default {
});
if (options.type == 1 || options.type == 2) {
that.jobType = options.type;
if (that.jobType == 1) {
that.templateId = options.tid;
}
}
if (options.agencyId) {
that.updateInfo.upAgencyId = options.agencyId;
}
this.updateInfo.interviewTimeStr = "";
},
data() {
return {
templateId: 0,
IS_CREATOR: false,
jobType: 2,
tid: 0,
cdnBaseImg: this.G.store().cdnBaseImg,
nation: nationlist.map((item, index) => {
return item.name;
@ -212,10 +179,6 @@ export default {
agreeRadio: ["agree"],
jobData: [],
zhengceTextList: [],
zhengceSelect: {
text: "政策一",
id: 1,
},
};
},
onShow() {
@ -316,21 +279,6 @@ export default {
},
];
that.$forceUpdate();
if (that.jobType == 1) {
that.getPolicyByJobId({
leafCateId: that.updateInfo.jobId,
templateId: that.templateId,
});
} else {
if (that.updateInfo.jobId) {
that.getPolicyById({
leafCateId: that.updateInfo.jobId,
});
}
// that.getPolicyById({
// leafCateId: that.updateInfo.jobId,
// });
}
if (that.updateInfo.jobId) {
that.getJobDetail({
leafCateId: that.updateInfo.jobId,
@ -339,93 +287,16 @@ export default {
}, 1);
},
methods: {
getPolicyByJobId($data) {
let that = this,
classify = 0;
if (that.IS_CREATOR) {
classify = 3;
} else {
classify = 2;
}
console.log("$data", $data);
let config = {
storeJobId: $data.templateId,
customJobId: $data.leafCateId,
classify,
};
that.G.Get(that.api.job_getPolicyShare, config, (res) => {
console.log("job_getPolicyShare res", res);
that.jobData = [
{
icon: "",
label: "报名职位",
result: that.updateInfo.jobName,
path: "/root/other/search?from=record",
placeholder: "请选择报名职位",
fontColor: that.updateInfo.jobName == "请选择报名职位" ? "g_c_9" : "g_c_3",
tip: "applia-job",
require: true,
customRequire: true,
pColumn: 12,
},
{
icon: "",
label: "预约面试时间",
result: "",
path: "",
value: that.updateInfo.interviewTimeStr,
tip: "slot-time",
require: true,
customRequire: true,
type: "slot",
pColumn: 12,
from: "reservation-time",
},
{
icon: "",
label: "财务结算",
result: "",
path: "",
value: res,
tip: "slot-caiwu",
require: false,
customRequire: false,
type: "slot",
pColumn: 12,
from: "slot-caiwu",
},
];
});
},
getPolicyById($data) {
getJobDetail($data) {
let that = this;
console.log("自有政策:", $data);
that.G.Get(
that.api.job_getPolicyPerson + "/" + $data.leafCateId,
that.api.job_personDetail + "/" + $data.leafCateId,
{
id: $data.leafCateId,
},
(res) => {
let policyStr = "";
console.log("resres", res);
let sta = "";
if (res.jobInfo) {
sta = res.jobInfo.replaceAll("\n\n", "\n");
}
let a = "",
b = "",
c = "";
a = "员工薪资:" + (sta || "-") + "\n\n";
if (that.IS_CREATOR) {
b = "服务费:" + (res.returnFeeType ? that.G.setReturnFee(res.returnFee, res.returnFeeType) : "-") + " \n" + "服务费详情:" + (res.returnFeeDesp || "-") + "\n\n";
}
c = "代理费:" + (that.G.setReturnFee(res.agencyReturnFee, res.agencyReturnFeeType) || "-") + "\n" + "代理费详情:" + (res.agencyReturnFeeDesp || "-");
policyStr = a + b + c;
// else {
// policyStr = "";
// }
let policyStr = "1. 服务费:" + (res.record.returnFeeType !== "" ? that.G.setReturnFee(res.record.returnFee, res.record.returnFeeType) : "详询客服") + " \n\n" + "2. 服务费详情:" + (res.record.returnFeeDesp || "详询客服") + " \n\n" + "3. 薪资待遇:" + (res.record.salaryDetail || "详询客服") + "\n\n";
console.log("政策列表:", res);
that.jobData = [
{
icon: "",
@ -469,46 +340,6 @@ export default {
}
);
},
getJobDetail($data) {
let that = this;
that.G.Get(
that.api.job_personDetail + "/" + $data.leafCateId,
{
id: $data.leafCateId,
},
(res) => {
console.log("政策列表:", res);
let policyNum;
if (res.storeJobDetail) {
policyNum = res.storeJobDetail.policyNum;
} else {
policyNum = res.record.policyNum;
}
if (policyNum == "" || policyNum == 0) {
policyNum = 1;
}
let list = [];
for (let i = 0; i < policyNum; i++) {
let pickerStr = that.G.policyNumToHanZi(i + 1);
list[i] = {
value: i + 1,
name: pickerStr,
id: i + 1,
isSelected: false,
};
}
that.zhengceTextList = list;
}
);
},
changeZhengce(e) {
let that = this;
console.log("选择政策:", e);
that.zhengceSelect = {
text: e.item.name,
id: e.item.id,
};
},
handleClickIDcard(e) {
this.info.idCard = e;
@ -622,9 +453,6 @@ export default {
uni.showLoading({
title: "提交中",
});
if (that.jobType == 1) {
submitInfo.policyIdx = that.zhengceSelect.id;
}
// submitInfo.sex = submitInfo.sex == "" ? 1 : 2;
if (submitInfo.imgs && submitInfo.imgs.length > 0) {
submitInfo.imgs = submitInfo.imgs.join(",");
@ -639,9 +467,11 @@ export default {
that.persenInfo = [];
// that.$forceUpdate();
// uni.navigateTo({
// url: "/root/home/applicationSuccess",
// });
setTimeout(() => {
uni.navigateTo({
url: "/root/home/applicationSuccess",
});
}, 1500);
});
// setTimeout(() => {
// uni.navigateTo({

Loading…
Cancel
Save