cyl/master-apply
wangxia 6 months ago
parent 3fb1bfa16a
commit 77ef9cb236

@ -19,8 +19,8 @@
</view> </view>
<scroll-view v-if="speed > 0" :style="{ height: `calc(100vh - ${99 + tabbarHeight}px)` }" :scroll-y="true" @scrolltolower="reachBottom" :lower-threshold="100"> <scroll-view v-if="speed > 0" :style="{ height: `calc(100vh - ${99 + tabbarHeight}px)` }" :scroll-y="true" @scrolltolower="reachBottom" :lower-threshold="100">
<view class="" style="min-height: calc(100% - 90px)"> <view class="" style="min-height: calc(100% - 90px)">
<view class="item g_pt_18 g_pl_10 g_pr_10 g_bg_f" hover-class="g_bg_f_5" v-for="(item, index) in query.list" :key="index" @click="goDetail(item, index)"> <view class="item g_pt_18 g_pl_10 g_pr_10 g_pb_18 g_bg_f g_border_e_b" hover-class="g_bg_f_5" v-for="(item, index) in query.list" :key="index" @click="goDetail(item, index)">
<view class="g_border_e_b g_flex_row_start g_pb_18"> <view class="g_flex_row_start">
<view class="g_flex_none g_mr_12 g_w_44 g_h_44 g_radius_50 g_flex_c" @click.stop="goTel(item.tel)"> <view class="g_flex_none g_mr_12 g_w_44 g_h_44 g_radius_50 g_flex_c" @click.stop="goTel(item.tel)">
<image :src="cdnBaseImg + 'tel.svg'" class="g_w_44 g_h_44" v-if="item.tel"></image> <image :src="cdnBaseImg + 'tel.svg'" class="g_w_44 g_h_44" v-if="item.tel"></image>
<image :src="cdnBaseImg + 'order_tel_gray.svg'" class="g_w_44 g_h_44" v-else></image> <image :src="cdnBaseImg + 'order_tel_gray.svg'" class="g_w_44 g_h_44" v-else></image>
@ -36,6 +36,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="g_flex_row_center flex_center g_mt_8" v-if="from" @click.stop>
<g-button btnText="发送" fontSize="14" type="primary" size="mini" @clickBtn="sendApply(item)" />
</view>
</view> </view>
<g-panel-hr :str="query.isFinish >= 0 && query.isFinish < query.size ? speed + '个工单' : '加载中'" /> <g-panel-hr :str="query.isFinish >= 0 && query.isFinish < query.size ? speed + '个工单' : '加载中'" />
</view> </view>
@ -123,7 +126,7 @@ export default {
watch: {}, watch: {},
created() { created() {
this.tabbarHeight = uni.getStorageSync("TABBAR_HEIGHT"); this.tabbarHeight = uni.getStorageSync("TABBAR_HEIGHT");
console.log('this.tabbarHeight',this.tabbarHeight); console.log("this.tabbarHeight", this.tabbarHeight);
}, },
mounted() {}, mounted() {},
// //
@ -161,6 +164,9 @@ export default {
}); });
} }
}, },
sendApply(_item) {
uni.$emit("sendApply", { ..._item, active: this.tabActive + 1 });
},
}, },
}; };
</script> </script>

@ -151,11 +151,17 @@ const lastMsgContent = computed(() => {
let _str = "[多媒体]"; let _str = "[多媒体]";
if (!lastMsg.text && lastMsg.attachment && lastMsg.attachment.raw) { if (!lastMsg.text && lastMsg.attachment && lastMsg.attachment.raw) {
if(!lastMsg.text && lastMsg.attachment && lastMsg.attachment.raw && lastMsg.attachment.ext == '.mp4' && lastMsg.attachment.url){ console.log("lastMsglastMsglastMsg123", lastMsg);
if(!lastMsg.text && lastMsg.attachment && la+stMsg.attachment.raw && lastMsg.attachment.ext == '.mp4' && lastMsg.attachment.url){
_str = "[视频]"; _str = "[视频]";
}else{
_str = "[职位] " + JSON.parse(lastMsg.attachment.raw).title;
} }
else if (JSON.parse(lastMsg.attachment.raw).type == 100002){
_str = "[工单] " + JSON.parse(lastMsg.attachment.raw).userName;
}
else {
_str = "[职位] " + JSON.parse(lastMsg.attachment.raw).title;
}
} }
if (!lastMsg.text && lastMsg.attachment && lastMsg.attachment.ext == ".mp3") { if (!lastMsg.text && lastMsg.attachment && lastMsg.attachment.ext == ".mp3") {
_str = "[语音]"; _str = "[语音]";

@ -12,7 +12,7 @@
<view class=""> <view class="">
<!-- #ifdef APP-PLUS || H5 || MP-KUAISHOU || MP-WEIXIN --> <!-- #ifdef APP-PLUS || H5 || MP-KUAISHOU || MP-WEIXIN -->
<view class="" style="height: calc(58px + 48px)"></view> <view class="" style="height: calc(58px + 48px)" v-if="from != 'chat'"></view>
<!-- #endif --> <!-- #endif -->
<view class=""> <view class="">
<view class="m-box-fixed" :style="{ top: 0 }" v-if="isLogin"> <view class="m-box-fixed" :style="{ top: 0 }" v-if="isLogin">
@ -20,8 +20,8 @@
<view class="m-select"> <view class="m-select">
<view style="height: 52px" class="g_flex_column_center g_pt_8"> <view style="height: 52px" class="g_flex_column_center g_pt_8">
<view class="m-search g_pb_0 g_position_rela" style="padding-bottom: 0; padding-left: 12px; padding-right: 12px"> <view class="m-search g_pb_0 g_position_rela" style="padding-bottom: 0; padding-left: 12px; padding-right: 12px">
<u-search @btnSearch="getSearch" height="80" v-model="keyword" placeholder="搜索姓名/职位/手机号" bg-color="#ededed" :show-action="false" @change="getSearch" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#999999" :maxlength="20"></u-search> <u-search @btnSearch="getSearch" height="80" v-model="keyword" placeholder="搜索姓名/职位/手机号" bg-color="#ededed" :show-action="false" @clear="getSearch('search')" @change="getSearch('clear')" @search="getSearch('search')" 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 class="g_w_all g_h_40 g_position_abso" style="left: 0; top: 0px; z-index: 9999" @click.stop="goSearch"></view> -->
</view> </view>
</view> </view>
</view> </view>
@ -35,7 +35,7 @@
<g-list-apply from="home" @uploadList="getList('concat')" bg="" class="" :tabActive="tabActive" :loading="loading" :speed="speed" :isLogin="isLogin" :query.sync="query" :navInfo="navInfo" /> <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>
</view> </view>
<g-tabbar class="tabbar"></g-tabbar> <g-tabbar class="tabbar" v-if="from != 'chat'"></g-tabbar>
</view> </view>
</template> </template>
@ -51,6 +51,16 @@ export default {
}; };
// return this.G.shareFun(); // return this.G.shareFun();
}, },
props: {
from: {
type: String,
default: "",
},
upAgencyId: {
type: Number,
default: null,
},
},
data() { data() {
return { return {
isHaveOrder: -1, isHaveOrder: -1,
@ -162,13 +172,12 @@ export default {
// that.menuActive = Number(options.status); // that.menuActive = Number(options.status);
// }, 200); // }, 200);
} }
console.log(123123123);
}, },
created() { created() {
let that = this; let that = this;
console.log(12312312312); console.log(4567456456);
},
onShow() {
let that = this;
// //
that.navInfo = that.G.getNavInfo(); that.navInfo = that.G.getNavInfo();
if (uni.getStorageSync("apply-supplierAccount") == 1) { if (uni.getStorageSync("apply-supplierAccount") == 1) {
@ -191,7 +200,7 @@ export default {
that.menuActive = uni.getStorageSync("applyType"); that.menuActive = uni.getStorageSync("applyType");
uni.removeStorageSync("applyType"); uni.removeStorageSync("applyType");
} }
this.getList();
if (!that.isLogin) { if (!that.isLogin) {
that.loading = false; that.loading = false;
that.speed = 0; that.speed = 0;
@ -202,6 +211,12 @@ export default {
this.menuList = this.tabInfo[this.tabActive].childList; this.menuList = this.tabInfo[this.tabActive].childList;
this.getList(); this.getList();
} }
},
onShow() {
let that = this;
if (that.isLogin) {
this.getList();
}
this.getGZHInfo(); this.getGZHInfo();
that.G.watchUserPage("pages/workBench/index"); that.G.watchUserPage("pages/workBench/index");
}, },
@ -227,8 +242,9 @@ export default {
{ {
pageNum: that.query.page, pageNum: that.query.page,
pageSize: that.query.size, pageSize: that.query.size,
keys: "", keys: that.keyword,
classify: 1, classify: 1,
upAgencyId: that.upAgencyId,
// classify: that.tabActive + 1, // classify: that.tabActive + 1,
statusStr: that.tabInfo[that.tabActive].childList[that.menuActive].tip, statusStr: that.tabInfo[that.tabActive].childList[that.menuActive].tip,
}, },
@ -347,7 +363,16 @@ export default {
this.getList(); this.getList();
} }
}, },
getSearch(e) {}, getSearch(type) {
let that = this;
console.log("typetypetype", type);
console.log("getSearch", that.keyword);
if (type == "clear" && !that.keyword) {
that.getList();
} else if (type == "search") {
that.getList();
}
},
goDetail($item, $index) { goDetail($item, $index) {
let that = this; let that = this;
console.log("$item", $item); console.log("$item", $item);

@ -21,12 +21,12 @@
:jobListShow="jobListShow" :jobListShow="jobListShow"
@jobListShow=" @jobListShow="
(e) => { (e) => {
jobListShow = e; jobListShow = e.isShow;
popType = e.type;
} }
" "
:conversation-type="conversationType" :conversation-type="conversationType"
:to="to" :to="to"
@exportPointJob="exportPointJob"
/> />
<!-- </div> --> <!-- </div> -->
@ -36,11 +36,17 @@
<div class="m-search g_p_10 g_pt_8 g_position_rela g_flex_1 g_bg_ed sticky" style id="searchInputBox"> <div class="m-search g_p_10 g_pt_8 g_position_rela g_flex_1 g_bg_ed sticky" style id="searchInputBox">
<div class="g_text_c g_h_24 g_pt_6 g_pb_12">发送职位</div> <div class="g_text_c g_h_24 g_pt_6 g_pb_12">发送职位</div>
<u-search height="80" v-model="keyword" @input="checkLength" @clear="searchJob" @search="searchJob" class="" placeholder="搜索职位名称" bg-color="#fff" :show-action="false" placeholder-class="g_c_c" search-icon-color="#999999" :maxlength="20"></u-search> <u-search height="80" v-model="keyword" @input="checkLength" @clear="searchJob" @search="searchJob" class="" placeholder="搜索职位名称" bg-color="#fff" :show-action="false" placeholder-class="g_c_c" search-icon-color="#999999" :maxlength="20"></u-search>
<div class="g_pt_8"> <div class="g_pt_8" v-if="popType == 'job'">
<u-tabs bg-color="transparent" from="index" gutter="20" :showBar="false" :list="tabInfo.list" :is-scroll="true" v-model="tabInfo.active" active-color="#00b666" @change="handleUpdateTab" font-size="34" duration="0.05" height="48"></u-tabs> <u-tabs bg-color="transparent" from="index" gutter="20" :showBar="false" :list="tabInfo.list" :is-scroll="true" v-model="tabInfo.active" active-color="#00b666" @change="handleUpdateTab" font-size="34" duration="0.05" height="48"></u-tabs>
</div> </div>
</div> </div>
<g-list-job from="chat" @uploadList="getList" @sendJob="sendJob" bg="#ededed" class="" :query="query" :list="query.list" :loading="loading" :speed="speed" :isShowLoginBtn="false" emptyText="嘿,这里还没有数据呢" /> <div class="" v-if="popType == 'apply'">
<gListApply from="chat" :upAgencyId="beCollectedAgencyId" @sendApply="sendApply"></gListApply>
<!-- <g-list-apply from="home" @uploadList="getList('concat')" bg="" class="" :tabActive="tabActive" :loading="loading" :speed="speed" :isLogin="isLogin" :query.sync="query" :navInfo="navInfo" /> -->
</div>
<div class="" v-if="popType == 'job'">
<g-list-job from="chat" @uploadList="getList" @sendJob="sendJob" bg="#ededed" class="" :query="query" :list="query.list" :loading="loading" :speed="speed" :isShowLoginBtn="false" emptyText="嘿,这里还没有数据呢" />
</div>
</div> </div>
</scroll-view> </scroll-view>
</u-popup> </u-popup>
@ -49,6 +55,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import gListJob from "../../../../components/list/job"; import gListJob from "../../../../components/list/job";
import gListApply from "../../../../pages/workBench/index.vue";
import { onShow } from "@dcloudio/uni-app"; import { onShow } from "@dcloudio/uni-app";
import { events } from "../../utils/constants"; import { events } from "../../utils/constants";
import { trackInit } from "../../utils/reporter"; import { trackInit } from "../../utils/reporter";
@ -71,13 +78,14 @@ const G = getCurrentInstance().appContext.app.config.globalProperties.G;
const F = getCurrentInstance().appContext.app.config.globalProperties.F; const F = getCurrentInstance().appContext.app.config.globalProperties.F;
import api from "../../utils/api.js"; import api from "../../utils/api.js";
console.log("apiapiapi", api); console.log("apiapiapi", api);
const requestComeFrom = computed(() => { const appType = computed(() => {
let val = "isToC"; let val = "isToC";
if (G.globalConstantData.requestComeFrom && (G.globalConstantData.requestComeFrom == "assistant_miniapp" || G.globalConstantData.requestComeFrom == "supply_chain_miniapp")) { if (G.globalConstantData.requestComeFrom && (G.globalConstantData.requestComeFrom == "assistant_miniapp" || G.globalConstantData.requestComeFrom == "supply_chain_miniapp")) {
val = "isToB"; val = "isToB";
} }
return val; // return val; //
}); });
const popType = ref(""); //
export interface YxReplyMsg { export interface YxReplyMsg {
messageClientId: string; messageClientId: string;
scene: V2NIMConst.V2NIMConversationType; scene: V2NIMConst.V2NIMConversationType;
@ -410,6 +418,10 @@ onLoad((options) => {
uni.$on(events.HANDLE_MOVE_THROUGH, (flag) => { uni.$on(events.HANDLE_MOVE_THROUGH, (flag) => {
moveThrough.value = flag; moveThrough.value = flag;
}); });
uni.$on("sendApply", (_val) => {
console.log("_val_val_val_val_val", _val);
sendApply(_val);
});
console.log("options聊天", options); console.log("options聊天", options);
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: options.ctitle, title: options.ctitle,
@ -419,10 +431,10 @@ const msgHeight = ref(0);
const beCollectedAgencyId = ref(0); const beCollectedAgencyId = ref(0);
onMounted(() => { onMounted(() => {
setNavTitle(); setNavTitle();
console.log('uni.getStorageSync("apply-userinfo")', requestComeFrom.value); console.log('uni.getStorageSync("apply-userinfo")', appType.value);
let userInfo = uni.getStorageSync("apply-userinfo"); let userInfo = uni.getStorageSync("apply-userinfo");
// //
if (requestComeFrom.value == "isToB") { if (appType.value == "isToB") {
tabInfo.value = { tabInfo.value = {
list: [ list: [
{ {
@ -465,12 +477,15 @@ onMounted(() => {
classify: 1, classify: 1,
}, },
], ],
active: 0, active: 2,
}; };
} }
agencyIdByAccId().then((res) => { agencyIdByAccId().then((res) => {
beCollectedAgencyId.value = res.agencyId; beCollectedAgencyId.value = res.agencyId;
getList(); getList();
if (appType.value == "isToB") {
getApplyList();
}
}); });
uni.$on("msgHeight", (res) => { uni.$on("msgHeight", (res) => {
console.log(res); console.log(res);
@ -501,7 +516,7 @@ onUnmounted(() => {
connectedWatch(); connectedWatch();
msgsWatch(); msgsWatch();
conversationTypeWatch(); conversationTypeWatch();
uni.removeStorageSync('im_sendParams'); uni.removeStorageSync("im_sendParams");
}); });
const query = ref({ const query = ref({
page: 1, page: 1,
@ -545,6 +560,7 @@ const searchJob = () => {
}); });
getList(); getList();
}; };
const getApplyList = () => {};
const getList = ($type = "init") => { const getList = ($type = "init") => {
loading.value = true; loading.value = true;
@ -555,9 +571,9 @@ const getList = ($type = "init") => {
cityName: "全国", cityName: "全国",
}; };
let url = "job_list"; let url = "job_list";
console.log("G.globalConstantData.requestComeFrom", requestComeFrom.value); console.log("G.globalConstantData.appType", appType.value);
let classify = tabInfo.value.list[tabInfo.value.active].classify; let classify = tabInfo.value.list[tabInfo.value.active].classify;
if (requestComeFrom.value == "isToC") { if (appType.value == "isToC") {
url = "yi_job_list"; url = "yi_job_list";
parmas.classify = 1; parmas.classify = 1;
// classify: 3: 2: 1:() // classify: 3: 2: 1:()
@ -588,10 +604,12 @@ const getList = ($type = "init") => {
console.log("parmas", parmas); console.log("parmas", parmas);
G.Post(api[url], parmas, (res) => { G.Post(api[url], parmas, (res) => {
console.log("res", res); console.log("res", JSON.parse(JSON.stringify(res)));
loading.value = false; loading.value = false;
uni.hideLoading(); uni.hideLoading();
res = { ...res, ...res.pageBean };
speed.value = res.recordCount; speed.value = res.recordCount;
query.value.isFinish = res.recordList.length; query.value.isFinish = res.recordList.length;
console.log("query.value", query.value); console.log("query.value", query.value);
res.recordList = G.toGetAddressv3(res.recordList); res.recordList = G.toGetAddressv3(res.recordList);
@ -606,6 +624,7 @@ const getList = ($type = "init") => {
...item, ...item,
title: item.jobName, title: item.jobName,
address: item.district + item.age, address: item.district + item.age,
cus_price: item.salaryClassify != 7 ? G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
priceStr: item.salaryClassify != 7 ? G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay), priceStr: item.salaryClassify != 7 ? G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
logo: item.agencyLogo, logo: item.agencyLogo,
time: G.setDeadLine(item.updateTime, "jiaofu"), time: G.setDeadLine(item.updateTime, "jiaofu"),
@ -626,6 +645,7 @@ const getList = ($type = "init") => {
return { return {
...item, ...item,
title: item.jobName, title: item.jobName,
cus_price: item.salaryClassify != 7 ? G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
priceStr: item.salaryClassify != 7 ? G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay), priceStr: item.salaryClassify != 7 ? G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
fuWuFei: G.setReturnFee(item.returnFee, item.returnFeeType), fuWuFei: G.setReturnFee(item.returnFee, item.returnFeeType),
gender: G.getGenderByMinAge(item), gender: G.getGenderByMinAge(item),
@ -677,8 +697,8 @@ const sendJob = (_item) => {
title: _item.jobName, title: _item.jobName,
info: _item.info, info: _item.info,
label: _item.jobSpecialLabelNameArray.length > 0 ? _item.jobSpecialLabelNameArray : [], label: _item.jobSpecialLabelNameArray.length > 0 ? _item.jobSpecialLabelNameArray : [],
salaryClassifyValue: _item.priceStr, salaryClassifyValue: _item.priceStr || _item.cus_price,
serviceFee: _item.fuWuFei ? _item.fuWuFei : "", serviceFee: appType.value == "isToC" ? "" : _item.fuWuFei || "",
monthPay: _item.monthlyPay, monthPay: _item.monthlyPay,
jobId: _item.id, jobId: _item.id,
}) })
@ -694,6 +714,33 @@ const sendJob = (_item) => {
}, },
}); });
}; };
const sendApply = (_item) => {
console.log("_item", _item);
const customMsg = uni.$UIKitNIM.V2NIMMessageCreator.createCustomMessage(
"",
JSON.stringify({
type: 100002,
userName: _item.userName + G.titleToStr(_item) || "-",
idCard: _item.idCard || "-",
storeJobName: _item.storeJobName || "-",
interviewTime: G.getPointTime(_item.interviewTime, "YY--MM--DD HH:MM") || "-",
tel: _item.tel || "-",
applyId: _item.id || null,
relationId: _item.relationId || null,
active: _item.active,
})
);
console.log("customMsg", customMsg);
uni.$UIKitStore.msgStore.sendMessageActive({
msg: customMsg,
conversationId,
sendBefore: () => {
jobListShow.value = false;
uni.$emit(events.ON_SCROLL_BOTTOM);
// scrollBottom();
},
});
};
const reachBottom = () => { const reachBottom = () => {
if (query.value.isFinish == -1 || query.value.isFinish == query.value.size) { if (query.value.isFinish == -1 || query.value.isFinish == query.value.size) {
query.value.page++; query.value.page++;
@ -705,8 +752,7 @@ onUnload(() => {
uni.$off(events.CANCEL_FORWARD_MSG); uni.$off(events.CANCEL_FORWARD_MSG);
}); });
const exportPointJob = ()=>{ const exportPointJob = () => {};
}
</script> </script>
<style lang="scss"> <style lang="scss">

@ -1,6 +1,6 @@
<template> <template>
<div style="" class="pbInput" :style="writeStyle"> <div style="" class="pbInput" :style="writeStyle">
<div class="input-root" style="position: relative;"> <div class="input-root" style="position: relative">
<!-- 以下这个 div 用于确保 vue2 ref 会更新 --> <!-- 以下这个 div 用于确保 vue2 ref 会更新 -->
<div style="display: none"> <div style="display: none">
<div>{{ teamMute ? "禁言" : "不禁言" }}</div> <div>{{ teamMute ? "禁言" : "不禁言" }}</div>
@ -75,8 +75,8 @@
<!-- <div class="msg-input-button" v-if="false"> <!-- <div class="msg-input-button" v-if="false">
<Icon @tap="handleEmojiVisible" class="g_p_6" style="padding-right: 5px" :size="28" type="icon-biaoqing" /> <Icon @tap="handleEmojiVisible" class="g_p_6" style="padding-right: 5px" :size="28" type="icon-biaoqing" />
</div> --> </div> -->
<div class="msg-input-button" @tap="(event) => handleSendJob()"> <div class="msg-input-button" @tap="(event) => handleSendJob()">
<div class="iconfont icon-5gongdanguanli g_c_6 g_fs_24"></div> <div class="iconfont icon-detail g_c_6 g_fs_24"></div>
</div> </div>
<div class="msg-input-button" v-if="true"> <div class="msg-input-button" v-if="true">
<Icon @tap="handleSendMoreVisible" class="g_p_6" style="padding-left: 5px; padding-right: 8px" type="send-more" :size="28" /> <Icon @tap="handleSendMoreVisible" class="g_p_6" style="padding-left: 5px; padding-right: 8px" type="send-more" :size="28" />
@ -136,12 +136,18 @@
</div> </div>
<div class="icon-text">{{ t("customText") }}</div> <div class="icon-text">{{ t("customText") }}</div>
</div> --> </div> -->
<div class="send-more-panel-item-wrapper" v-if="corpUserFlag"> <div class="send-more-panel-item-wrapper">
<div class="send-more-panel-item" @tap="(event) => handleSendJob()"> <div class="send-more-panel-item" @tap="(event) => handleSendJob()">
<div class="iconfont icon-5gongdanguanli g_c_6 g_fs_24 "></div> <div class="iconfont icon-detail g_c_6 g_fs_24"></div>
</div> </div>
<div class="icon-text">{{ "发送职位" }}</div> <div class="icon-text">{{ "发送职位" }}</div>
</div> </div>
<div class="send-more-panel-item-wrapper" v-if="appType == 'isToB'">
<div class="send-more-panel-item" @tap="(event) => handleSendapply()">
<div class="iconfont icon-5gongdanguanli g_c_6 g_fs_24"></div>
</div>
<div class="icon-text">{{ "发送工单" }}</div>
</div>
<!-- <div class="send-more-panel-item-wrapper"> <!-- <div class="send-more-panel-item-wrapper">
<div class="send-more-panel-item" @tap="(event) => handleSetting()"> <div class="send-more-panel-item" @tap="(event) => handleSetting()">
<Icon type="icon-shezhi" :size="30"></Icon> <Icon type="icon-shezhi" :size="30"></Icon>
@ -159,51 +165,25 @@
<MentionMemberList :team-id="to"></MentionMemberList> <MentionMemberList :team-id="to"></MentionMemberList>
</UniPopup> </UniPopup>
<div class="choose-job-send" <div class="choose-job-send" style="width: calc(100vw - 48px); min-height: 50px; background-color: #fff; position: absolute; left: 50%; transform: translateX(-50%); top: -92px; padding: 12px; border-radius: 12px" v-if="chooseData && chooseData.title && false">
style="
width: calc(100vw - 48px);
min-height: 50px;
background-color: #fff;
position: absolute;
left: 50%;
transform: translateX(-50%);
top: -92px;
padding: 12px;
border-radius: 12px;
"
v-if="chooseData && chooseData.title && false"
>
<div class="g_w_all g_h_all"> <div class="g_w_all g_h_all">
<div class="g_mb_12 g_flex_row_between"> <div class="g_mb_12 g_flex_row_between">
<div style="font-weight:bold;font-size:16px;color:#000" class="g_flex_1">{{ chooseData.title }}</div> <div style="font-weight: bold; font-size: 16px; color: #000" class="g_flex_1">{{ chooseData.title }}</div>
<div class="g_flex_none g_flex_column_center"> <div class="g_flex_none g_flex_column_center">
<i class="iconfont icon-guanbi" style="font-size: 14px;color: #666;"></i> <i class="iconfont icon-guanbi" style="font-size: 14px; color: #666"></i>
</div> </div>
</div> </div>
<div class="g_flex_row_between"> <div class="g_flex_row_between">
<div class="g_flex_1 g_flex_column_center"> <div class="g_flex_1 g_flex_column_center">
<div class="g_flex_row_start"> <div class="g_flex_row_start">
<view class="g_fs_16 g_fw_600 g_c_f40 g_lh_1_2 g_flex_column_center" <view class="g_fs_16 g_fw_600 g_c_f40 g_lh_1_2 g_flex_column_center" v-if="chooseData.salaryClassifyValue" v-html="chooseData.salaryClassifyValue"> </view>
v-if="chooseData.salaryClassifyValue"
v-html="chooseData.salaryClassifyValue"> </view>
<view class="g_fs_14 g_c_9" v-if="chooseData.monthPay"> <view class="g_fs_14 g_c_9" v-if="chooseData.monthPay">
{{ chooseData.monthPay ? "丨" + chooseData.monthPay : "" }} {{ chooseData.monthPay ? "丨" + chooseData.monthPay : "" }}
</view> </view>
</div> </div>
</div> </div>
<div class="g_flex_none g_flex_column_center" @tap="sendPointJob"> <div class="g_flex_none g_flex_column_center" @tap="sendPointJob">
<div style=" <div style="font-size: 12px; border-radius: 20px; height: 26px; line-height: 26px; width: 70px; text-align: center; background-color: #1890ff; color: #fff">发送职位</div>
font-size: 12px;
border-radius: 20px;
height: 26px;
line-height: 26px;
width: 70px;
text-align: center;
background-color: #1890ff;
color: #fff;
">
发送职位
</div>
</div> </div>
</div> </div>
</div> </div>
@ -216,7 +196,8 @@
import Face from "./face.vue"; import Face from "./face.vue";
import VoicePanel from "./voice-panel.vue"; import VoicePanel from "./voice-panel.vue";
import Icon from "../../../components/Icon.vue"; import Icon from "../../../components/Icon.vue";
import { ref, getCurrentInstance, computed, onUnmounted, onMounted, defineProps, withDefaults, defineEmits, watch } from "../../../utils/transformVue"; import { ref, getCurrentInstance, computed, onUnmounted, onMounted, defineProps, withDefaults, defineEmits, watch} from "vue";
// import { ref, getCurrentInstance, computed, onUnmounted, onMounted, defineProps, withDefaults, defineEmits, watch } from "../../../utils/transformVue";
import { ALLOW_AT, events, REPLY_MSG_TYPE_MAP } from "../../../utils/constants"; import { ALLOW_AT, events, REPLY_MSG_TYPE_MAP } from "../../../utils/constants";
import { emojiMap } from "../../../utils/emoji"; import { emojiMap } from "../../../utils/emoji";
import { t } from "../../../utils/i18n"; import { t } from "../../../utils/i18n";
@ -238,7 +219,14 @@ import { V2NIMConst } from "nim-web-sdk-ng/dist/v2/NIM_UNIAPP_SDK";
export type MentionedMember = { accountId: string; appellation: string }; export type MentionedMember = { accountId: string; appellation: string };
const corpUserFlag = ref(uni.getStorageSync("apply-userinfo").corpUserFlag); const corpUserFlag = ref(uni.getStorageSync("apply-userinfo").corpUserFlag);
const G = getCurrentInstance().appContext.app.config.globalProperties.G;
const appType = computed(() => {
let val = "isToC";
if (G.globalConstantData.requestComeFrom && (G.globalConstantData.requestComeFrom == "assistant_miniapp" || G.globalConstantData.requestComeFrom == "supply_chain_miniapp")) {
val = "isToB";
}
return val; //
});
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
conversationType: V2NIMConst.V2NIMConversationType; conversationType: V2NIMConst.V2NIMConversationType;
@ -421,8 +409,6 @@ const keyHeight = ref(350);
const msgKeyHeight = ref("100%"); const msgKeyHeight = ref("100%");
const ssff = ref(uni.getWindowInfo().safeArea.top); const ssff = ref(uni.getWindowInfo().safeArea.top);
const handleInputFocus = (e) => { const handleInputFocus = (e) => {
emojiVisible.value = false; emojiVisible.value = false;
extVisible.value = false; extVisible.value = false;
@ -430,13 +416,12 @@ const handleInputFocus = (e) => {
sendMoreVisible.value = false; sendMoreVisible.value = false;
const systemInfo = uni.getSystemInfoSync(); const systemInfo = uni.getSystemInfoSync();
const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value; const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value;
setTimeout(()=>{ setTimeout(() => {
console.log("获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点"); console.log("获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点");
uni.$emit("msgKeyHeight", availableHeight); // uni.$emit("msgKeyHeight", availableHeight); //
writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`; writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
uni.$emit(events.ON_SCROLL_BOTTOM); uni.$emit(events.ON_SCROLL_BOTTOM);
},80) }, 80);
// if (e.detail.height === 0) { // if (e.detail.height === 0) {
// writeStyle.value = "bottom: 0"; // writeStyle.value = "bottom: 0";
// uni.$emit("msgKeyHeight", "100%"); // // uni.$emit("msgKeyHeight", "100%"); //
@ -453,7 +438,7 @@ const handleInputFocus = (e) => {
// writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`; // writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
// // let safeBottom = 0; // // let safeBottom = 0;
// } // }
} };
// message-input.vuekeyboardheightchange // message-input.vuekeyboardheightchange
// message-input.vuekeyboardheightchange // message-input.vuekeyboardheightchange
@ -477,9 +462,9 @@ const keyboardheightchange = (e) => {
uni.$emit("msgKeyHeight", availableHeight); // uni.$emit("msgKeyHeight", availableHeight); //
writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`; writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
} }
setTimeout(()=>{ setTimeout(() => {
uni.$emit(events.ON_SCROLL_BOTTOM); uni.$emit(events.ON_SCROLL_BOTTOM);
},80) }, 80);
}; };
// const handleInputBlur = () => { // const handleInputBlur = () => {
@ -576,8 +561,13 @@ const handleSendFileMsg = () => {
}; };
const handleSendJob = () => { const handleSendJob = () => {
console.log("props.jobListShow", props.jobListShow); console.log("props.jobListShow", props.jobListShow);
emits("jobListShow", true); emits("jobListShow", { isShow: true, type: "job" });
}; };
const handleSendapply = () => {
console.log("props.jobListShow", props.jobListShow);
emits("jobListShow", { isShow: true, type: "apply" });
};
const sendPointJob = () => { const sendPointJob = () => {
emits("exportPointJob"); emits("exportPointJob");
}; };
@ -638,17 +628,16 @@ const handleSendMoreVisible = () => {
emojiVisible.value = false; emojiVisible.value = false;
sendMoreVisible.value = !sendMoreVisible.value; sendMoreVisible.value = !sendMoreVisible.value;
setTimeout(() => {
setTimeout(()=>{
if (sendMoreVisible.value) { if (sendMoreVisible.value) {
// uni.$emit(events.KeyboardEvent, 230); // uni.$emit(events.KeyboardEvent, 230);
uni.$emit("msgKeyHeight", uni.getSystemInfoSync().windowHeight - 230 - ssff.value); // uni.$emit("msgKeyHeight", uni.getSystemInfoSync().windowHeight - 230 - ssff.value); //
} else { } else {
// uni.$emit(events.KeyboardEvent, 0); // uni.$emit(events.KeyboardEvent, 0);
uni.$emit("msgKeyHeight", '100%'); // uni.$emit("msgKeyHeight", "100%"); //
} }
uni.$emit(events.ON_SCROLL_BOTTOM); uni.$emit(events.ON_SCROLL_BOTTOM);
},80) }, 80);
// }, 300) // }, 300)
}; };
@ -811,7 +800,7 @@ const screenHeight = ref(0);
screenHeight.value = uni.getSystemInfoSync().windowHeight; screenHeight.value = uni.getSystemInfoSync().windowHeight;
const chooseData = ref({}); const chooseData = ref({});
onMounted(() => { onMounted(() => {
if(uni.getStorageSync("im_sendParams")){ if (uni.getStorageSync("im_sendParams")) {
chooseData.value = JSON.parse(uni.getStorageSync("im_sendParams")).jobDetail; chooseData.value = JSON.parse(uni.getStorageSync("im_sendParams")).jobDetail;
} }
uninstallTeamWatch = autorun(() => { uninstallTeamWatch = autorun(() => {

@ -269,7 +269,7 @@
</view> </view>
</view> </view>
<view class="g_flex_row_start g_fs_12 g_pr_4 g_h_20 g_fw_400" <view class="g_flex_row_start g_fs_12 g_pr_4 g_h_20 g_fw_400"
style="background: linear-gradient(138deg, #fde0ad 22%, #fac474); border-radius: 2px; color: #754300; line-height: 20px"> style="background: linear-gradient(138deg, #fde0ad 22%, #fac474); border-radius: 2px; color: #754300; line-height: 20px" v-if="appType != 'isToC'">
<view class> <view class>
<image class="g_mr_4" style="width: 20px; height: 20px; display: block" <image class="g_mr_4" style="width: 20px; height: 20px; display: block"
src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/fee.svg" mode="aspecFill" src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/fee.svg" mode="aspecFill"
@ -317,7 +317,7 @@
</view> </view>
</view> </view>
<view class="g_flex_row_start g_fs_12 g_pr_4 g_h_20 g_fw_400" <view class="g_flex_row_start g_fs_12 g_pr_4 g_h_20 g_fw_400"
style="background: linear-gradient(138deg, #fde0ad 22%, #fac474); border-radius: 2px; color: #754300; line-height: 20px"> style="background: linear-gradient(138deg, #fde0ad 22%, #fac474); border-radius: 2px; color: #754300; line-height: 20px" v-if="appType != 'isToC'">
<view class> <view class>
<image class="g_mr_4" style="width: 20px; height: 20px; display: block" <image class="g_mr_4" style="width: 20px; height: 20px; display: block"
src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/fee.svg" mode="aspecFill" src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/fee.svg" mode="aspecFill"
@ -330,7 +330,35 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 100002代表工单卡片 -->
<div class="msg-common" :style="{ flexDirection: !props.msg.isSelf ? 'row' : 'row-reverse' }"
v-else-if="props.msg.messageType == 100 && props.msg.attachment && JSON.parse(props.msg.attachment.raw).type == 100002">
<div class="job-card"
style="background-color: #ffffff;border-radius: 8px;padding: 12px;width: calc(100% - 24px);position: relative;left: 50%;transform: translateX(-50%);"
@tap="goApplyDetail(JSON.parse(props.msg.attachment.raw))">
<div class="g_text_c g_fw_600 g_fs_16 g_mb_12">工单信息</div>
<div class="g_flex_row_center g_mb_8">
<div class="g_w_120 g_text_r">姓名</div>
<div class="g_flex_1 g_fw_600">{{ JSON.parse(props.msg.attachment.raw).userName }}</div>
</div>
<div class="g_flex_row_center g_mb_8">
<div class="g_w_120 g_text_r">身份证号</div>
<div class="g_flex_1 g_fw_600">{{ JSON.parse(props.msg.attachment.raw).idCard }}</div>
</div>
<div class="g_flex_row_center g_mb_8">
<div class="g_w_120 g_text_r">企业岗位</div>
<div class="g_flex_1 g_fw_600">{{ JSON.parse(props.msg.attachment.raw).storeJobName }}</div>
</div>
<div class="g_flex_row_center g_mb_8">
<div class="g_w_120 g_text_r">面试时间</div>
<div class="g_flex_1 g_fw_600">{{ JSON.parse(props.msg.attachment.raw).interviewTime }}</div>
</div>
<div class="g_flex_row_center g_mb_8">
<div class="g_w_120 g_text_r">电话</div>
<div class="g_flex_1 g_fw_600">{{ JSON.parse(props.msg.attachment.raw).tel }}</div>
</div>
</div>
</div>
<div class="msg-common" :style="{ flexDirection: !props.msg.isSelf ? 'row' : 'row-reverse' }" <div class="msg-common" :style="{ flexDirection: !props.msg.isSelf ? 'row' : 'row-reverse' }"
v-else-if="props.msg.messageType == 100 && props.msg.attachment && JSON.parse(props.msg.attachment.raw).typs == 'msg'"> v-else-if="props.msg.messageType == 100 && props.msg.attachment && JSON.parse(props.msg.attachment.raw).typs == 'msg'">
<Avatar :account="props.msg.senderId" :teamId=" <Avatar :account="props.msg.senderId" :teamId="
@ -405,7 +433,8 @@
defineProps, defineProps,
withDefaults, withDefaults,
onMounted, onMounted,
} from '../../../utils/transformVue' getCurrentInstance
} from "vue"
import Avatar from '../../../components/Avatar.vue' import Avatar from '../../../components/Avatar.vue'
import MessageBubble from './message-bubble.vue' import MessageBubble from './message-bubble.vue'
import { events, MSG_ID_FLAG } from '../../../utils/constants' import { events, MSG_ID_FLAG } from '../../../utils/constants'
@ -425,6 +454,14 @@
import MessageIsRead from './message-read.vue' import MessageIsRead from './message-read.vue'
import Icon from '../../../components/Icon.vue' import Icon from '../../../components/Icon.vue'
import Appellation from '../../../components/Appellation.vue' import Appellation from '../../../components/Appellation.vue'
const G = getCurrentInstance().appContext.app.config.globalProperties.G;
const appType = computed(() => {
let val = "isToC";
if (G.globalConstantData.requestComeFrom && (G.globalConstantData.requestComeFrom == "assistant_miniapp" || G.globalConstantData.requestComeFrom == "supply_chain_miniapp")) {
val = "isToB";
}
return val; //
});
console.log('message-item',jsa) console.log('message-item',jsa)
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
@ -561,6 +598,11 @@
url: '/root/detail/job?id=' + $jid url: '/root/detail/job?id=' + $jid
}) })
} }
const goApplyDetail = (_item)=>{
uni.navigateTo({
url: `/root/detail/apply?id=${_item.applyId}&type=${_item.active}&relationId=${_item.relationId}`,
});
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

@ -1,8 +1,8 @@
@font-face { @font-face {
font-family: "iconfont"; /* Project id 4374774 */ font-family: "iconfont"; /* Project id 4374774 */
src: url('//at.alicdn.com/t/c/font_4374774_ki7e1dxn9va.woff2?t=1756454097212') format('woff2'), src: url('//at.alicdn.com/t/c/font_4374774_y7g55uwl0s.woff2?t=1756693701292') format('woff2'),
url('//at.alicdn.com/t/c/font_4374774_ki7e1dxn9va.woff?t=1756454097212') format('woff'), url('//at.alicdn.com/t/c/font_4374774_y7g55uwl0s.woff?t=1756693701292') format('woff'),
url('//at.alicdn.com/t/c/font_4374774_ki7e1dxn9va.ttf?t=1756454097212') format('truetype'); url('//at.alicdn.com/t/c/font_4374774_y7g55uwl0s.ttf?t=1756693701292') format('truetype');
} }
.iconfont { .iconfont {
@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.icon-detail:before {
content: "\e793";
}
.icon-container:before {
content: "\e7b2";
}
.icon-5gongdanguanli:before { .icon-5gongdanguanli:before {
content: "\e6b8"; content: "\e6b8";
} }

@ -1,7 +1,4 @@
import common from './common.js' import common from './common.js'
console.log('common',common);
// let ajaxUrl = "http://192.168.3.83:8001";
// let ajaxUrl = "https://daotian.matripe.com.cn";
let ajaxUrl = common.store().baseUrl; let ajaxUrl = common.store().baseUrl;
let data = { let data = {
ajaxUrl: ajaxUrl, ajaxUrl: ajaxUrl,

@ -13,8 +13,8 @@ let data = {
fadanBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/", fadanBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/",
loginText: '请登录', loginText: '请登录',
coziID: '7537572244600471579', coziID: '7537572244600471579',
// baseUrl:"https://daotian.matripe.com.cn",// 网络请求的基础路径 baseUrl:"https://daotian.matripe.com.cn",// 网络请求的基础路径
baseUrl: "http://192.168.3.83:8001", // 网络请求的基础路径 // baseUrl: "http://192.168.3.83:8001", // 网络请求的基础路径
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
version: uni.getAccountInfoSync().miniProgram.version || "1.0.16", version: uni.getAccountInfoSync().miniProgram.version || "1.0.16",
// #endif // #endif
@ -286,7 +286,7 @@ let data = {
type = "YY--MM--DD" type = "YY--MM--DD"
} else if (type == "first-week") { } else { } else if (type == "first-week") { } else {
// 时间戳 // 时间戳
time = str ? new Date(str) : new Date(new Date().getTime()); time = new Date(str) ;
} }
if (time && typeof time == 'object') { if (time && typeof time == 'object') {
year = time.getFullYear() year = time.getFullYear()
@ -546,7 +546,7 @@ let data = {
}); });
return $list; return $list;
} else { } else {
return ""; return [];
} }
}, },
/** /**

Loading…
Cancel
Save