master
wangxia 3 months ago
parent 3fb1bfa16a
commit 77ef9cb236

@ -19,8 +19,8 @@
</view>
<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="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="g_border_e_b g_flex_row_start g_pb_18">
<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_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)">
<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>
@ -36,6 +36,9 @@
</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>
<g-panel-hr :str="query.isFinish >= 0 && query.isFinish < query.size ? speed + '个工单' : '加载中'" />
</view>
@ -123,7 +126,7 @@ export default {
watch: {},
created() {
this.tabbarHeight = uni.getStorageSync("TABBAR_HEIGHT");
console.log('this.tabbarHeight',this.tabbarHeight);
console.log("this.tabbarHeight", this.tabbarHeight);
},
mounted() {},
//
@ -161,6 +164,9 @@ export default {
});
}
},
sendApply(_item) {
uni.$emit("sendApply", { ..._item, active: this.tabActive + 1 });
},
},
};
</script>

@ -151,11 +151,17 @@ const lastMsgContent = computed(() => {
let _str = "[多媒体]";
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 = "[视频]";
}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") {
_str = "[语音]";

@ -12,7 +12,7 @@
<view class="">
<!-- #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 -->
<view class="">
<view class="m-box-fixed" :style="{ top: 0 }" v-if="isLogin">
@ -20,8 +20,8 @@
<view class="m-select">
<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">
<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>
<view class="g_w_all g_h_40 g_position_abso" style="left: 0; top: 0px; z-index: 9999" @click.stop="goSearch"></view>
<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>
</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" />
</view>
</view>
<g-tabbar class="tabbar"></g-tabbar>
<g-tabbar class="tabbar" v-if="from != 'chat'"></g-tabbar>
</view>
</template>
@ -51,6 +51,16 @@ export default {
};
// return this.G.shareFun();
},
props: {
from: {
type: String,
default: "",
},
upAgencyId: {
type: Number,
default: null,
},
},
data() {
return {
isHaveOrder: -1,
@ -162,13 +172,12 @@ export default {
// that.menuActive = Number(options.status);
// }, 200);
}
console.log(123123123);
},
created() {
let that = this;
console.log(12312312312);
},
onShow() {
let that = this;
console.log(4567456456);
//
that.navInfo = that.G.getNavInfo();
if (uni.getStorageSync("apply-supplierAccount") == 1) {
@ -191,7 +200,7 @@ export default {
that.menuActive = uni.getStorageSync("applyType");
uni.removeStorageSync("applyType");
}
this.getList();
if (!that.isLogin) {
that.loading = false;
that.speed = 0;
@ -202,6 +211,12 @@ export default {
this.menuList = this.tabInfo[this.tabActive].childList;
this.getList();
}
},
onShow() {
let that = this;
if (that.isLogin) {
this.getList();
}
this.getGZHInfo();
that.G.watchUserPage("pages/workBench/index");
},
@ -227,8 +242,9 @@ export default {
{
pageNum: that.query.page,
pageSize: that.query.size,
keys: "",
keys: that.keyword,
classify: 1,
upAgencyId: that.upAgencyId,
// classify: that.tabActive + 1,
statusStr: that.tabInfo[that.tabActive].childList[that.menuActive].tip,
},
@ -347,7 +363,16 @@ export default {
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) {
let that = this;
console.log("$item", $item);

@ -21,12 +21,12 @@
:jobListShow="jobListShow"
@jobListShow="
(e) => {
jobListShow = e;
jobListShow = e.isShow;
popType = e.type;
}
"
:conversation-type="conversationType"
:to="to"
@exportPointJob="exportPointJob"
/>
<!-- </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="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>
<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>
</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>
</scroll-view>
</u-popup>
@ -49,6 +55,7 @@
<script lang="ts" setup>
import gListJob from "../../../../components/list/job";
import gListApply from "../../../../pages/workBench/index.vue";
import { onShow } from "@dcloudio/uni-app";
import { events } from "../../utils/constants";
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;
import api from "../../utils/api.js";
console.log("apiapiapi", api);
const requestComeFrom = computed(() => {
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 popType = ref(""); //
export interface YxReplyMsg {
messageClientId: string;
scene: V2NIMConst.V2NIMConversationType;
@ -410,6 +418,10 @@ onLoad((options) => {
uni.$on(events.HANDLE_MOVE_THROUGH, (flag) => {
moveThrough.value = flag;
});
uni.$on("sendApply", (_val) => {
console.log("_val_val_val_val_val", _val);
sendApply(_val);
});
console.log("options聊天", options);
uni.setNavigationBarTitle({
title: options.ctitle,
@ -419,10 +431,10 @@ const msgHeight = ref(0);
const beCollectedAgencyId = ref(0);
onMounted(() => {
setNavTitle();
console.log('uni.getStorageSync("apply-userinfo")', requestComeFrom.value);
console.log('uni.getStorageSync("apply-userinfo")', appType.value);
let userInfo = uni.getStorageSync("apply-userinfo");
//
if (requestComeFrom.value == "isToB") {
if (appType.value == "isToB") {
tabInfo.value = {
list: [
{
@ -465,12 +477,15 @@ onMounted(() => {
classify: 1,
},
],
active: 0,
active: 2,
};
}
agencyIdByAccId().then((res) => {
beCollectedAgencyId.value = res.agencyId;
getList();
if (appType.value == "isToB") {
getApplyList();
}
});
uni.$on("msgHeight", (res) => {
console.log(res);
@ -501,7 +516,7 @@ onUnmounted(() => {
connectedWatch();
msgsWatch();
conversationTypeWatch();
uni.removeStorageSync('im_sendParams');
uni.removeStorageSync("im_sendParams");
});
const query = ref({
page: 1,
@ -545,6 +560,7 @@ const searchJob = () => {
});
getList();
};
const getApplyList = () => {};
const getList = ($type = "init") => {
loading.value = true;
@ -555,9 +571,9 @@ const getList = ($type = "init") => {
cityName: "全国",
};
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;
if (requestComeFrom.value == "isToC") {
if (appType.value == "isToC") {
url = "yi_job_list";
parmas.classify = 1;
// classify: 3: 2: 1:()
@ -588,10 +604,12 @@ const getList = ($type = "init") => {
console.log("parmas", parmas);
G.Post(api[url], parmas, (res) => {
console.log("res", res);
console.log("res", JSON.parse(JSON.stringify(res)));
loading.value = false;
uni.hideLoading();
res = { ...res, ...res.pageBean };
speed.value = res.recordCount;
query.value.isFinish = res.recordList.length;
console.log("query.value", query.value);
res.recordList = G.toGetAddressv3(res.recordList);
@ -606,6 +624,7 @@ const getList = ($type = "init") => {
...item,
title: item.jobName,
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),
logo: item.agencyLogo,
time: G.setDeadLine(item.updateTime, "jiaofu"),
@ -626,6 +645,7 @@ const getList = ($type = "init") => {
return {
...item,
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),
fuWuFei: G.setReturnFee(item.returnFee, item.returnFeeType),
gender: G.getGenderByMinAge(item),
@ -677,8 +697,8 @@ const sendJob = (_item) => {
title: _item.jobName,
info: _item.info,
label: _item.jobSpecialLabelNameArray.length > 0 ? _item.jobSpecialLabelNameArray : [],
salaryClassifyValue: _item.priceStr,
serviceFee: _item.fuWuFei ? _item.fuWuFei : "",
salaryClassifyValue: _item.priceStr || _item.cus_price,
serviceFee: appType.value == "isToC" ? "" : _item.fuWuFei || "",
monthPay: _item.monthlyPay,
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 = () => {
if (query.value.isFinish == -1 || query.value.isFinish == query.value.size) {
query.value.page++;
@ -705,8 +752,7 @@ onUnload(() => {
uni.$off(events.CANCEL_FORWARD_MSG);
});
const exportPointJob = ()=>{
}
const exportPointJob = () => {};
</script>
<style lang="scss">

@ -1,6 +1,6 @@
<template>
<div style="" class="pbInput" :style="writeStyle">
<div class="input-root" style="position: relative;">
<div class="input-root" style="position: relative">
<!-- 以下这个 div 用于确保 vue2 ref 会更新 -->
<div style="display: none">
<div>{{ teamMute ? "禁言" : "不禁言" }}</div>
@ -66,7 +66,7 @@
<!-- {{ssff}}键盘高度{{keyHeight}} 输入框距离底部距离{{writeStyle}}屏幕高度{{screenHeight}}顶部聊天区域高度{{msgKeyHeight}} -->
<input v-show="!showEmojiInput" :focus="isFocus" class="msg-input-input g_flex_1" :maxlength="-1" :placeholder="isTeamMute ? t('teamMutePlaceholder') : t('chatInputPlaceHolder')" v-model="inputText" type="text" :disabled="isTeamMute" :confirm-hold="true" cursor-spacing="20" :adjust-position="pushUp" confirm-type="send" @keyboardheightchange="keyboardheightchange" @focus="handleInputFocus" @confirm="handleSendTextMsg" @blur="handleInputBlur" @input="handleInput" id="msg-input" />
</div>
<!-- <div class="send-more-panel-item-wrapper">
<div class="send-more-panel-item" @tap="(event) => handleSendJob()">
<div class="iconfont icon-5gongdanguanli g_c_6 g_fs_24 g_fw_600"></div>
@ -75,8 +75,8 @@
<!-- <div class="msg-input-button" v-if="false">
<Icon @tap="handleEmojiVisible" class="g_p_6" style="padding-right: 5px" :size="28" type="icon-biaoqing" />
</div> -->
<div class="msg-input-button" @tap="(event) => handleSendJob()">
<div class="iconfont icon-5gongdanguanli g_c_6 g_fs_24"></div>
<div class="msg-input-button" @tap="(event) => handleSendJob()">
<div class="iconfont icon-detail g_c_6 g_fs_24"></div>
</div>
<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" />
@ -136,12 +136,18 @@
</div>
<div class="icon-text">{{ t("customText") }}</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="iconfont icon-5gongdanguanli g_c_6 g_fs_24 "></div>
<div class="iconfont icon-detail g_c_6 g_fs_24"></div>
</div>
<div class="icon-text">{{ "发送职位" }}</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" @tap="(event) => handleSetting()">
<Icon type="icon-shezhi" :size="30"></Icon>
@ -158,52 +164,26 @@
<UniPopup ref="popupRef" background-color="#ffffff" type="bottom" mask-background-color="rgba(0,0,0,0.4)" @change="onPopupChange">
<MentionMemberList :team-id="to"></MentionMemberList>
</UniPopup>
<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"
>
<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">
<div class="g_w_all g_h_all">
<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">
<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 class="g_flex_row_between">
<div class="g_flex_1 g_flex_column_center">
<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"
v-if="chooseData.salaryClassifyValue"
v-html="chooseData.salaryClassifyValue"> </view>
<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>
<view class="g_fs_14 g_c_9" v-if="chooseData.monthPay">
{{ chooseData.monthPay ? "丨" + chooseData.monthPay : "" }}
</view>
</div>
</div>
<div class="g_flex_none g_flex_column_center" @tap="sendPointJob">
<div style="
font-size: 12px;
border-radius: 20px;
height: 26px;
line-height: 26px;
width: 70px;
text-align: center;
background-color: #1890ff;
color: #fff;
">
发送职位
</div>
<div style="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>
@ -216,7 +196,8 @@
import Face from "./face.vue";
import VoicePanel from "./voice-panel.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 { emojiMap } from "../../../utils/emoji";
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 };
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(
defineProps<{
conversationType: V2NIMConst.V2NIMConversationType;
@ -421,8 +409,6 @@ const keyHeight = ref(350);
const msgKeyHeight = ref("100%");
const ssff = ref(uni.getWindowInfo().safeArea.top);
const handleInputFocus = (e) => {
emojiVisible.value = false;
extVisible.value = false;
@ -430,13 +416,12 @@ const handleInputFocus = (e) => {
sendMoreVisible.value = false;
const systemInfo = uni.getSystemInfoSync();
const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value;
setTimeout(()=>{
setTimeout(() => {
console.log("获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点获取焦点");
uni.$emit("msgKeyHeight", availableHeight); //
writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
uni.$emit(events.ON_SCROLL_BOTTOM);
},80)
}, 80);
// if (e.detail.height === 0) {
// writeStyle.value = "bottom: 0";
// uni.$emit("msgKeyHeight", "100%"); //
@ -453,7 +438,7 @@ const handleInputFocus = (e) => {
// writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
// // let safeBottom = 0;
// }
}
};
// message-input.vuekeyboardheightchange
// message-input.vuekeyboardheightchange
@ -477,9 +462,9 @@ const keyboardheightchange = (e) => {
uni.$emit("msgKeyHeight", availableHeight); //
writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`;
}
setTimeout(()=>{
setTimeout(() => {
uni.$emit(events.ON_SCROLL_BOTTOM);
},80)
}, 80);
};
// const handleInputBlur = () => {
@ -576,9 +561,14 @@ const handleSendFileMsg = () => {
};
const handleSendJob = () => {
console.log("props.jobListShow", props.jobListShow);
emits("jobListShow", true);
emits("jobListShow", { isShow: true, type: "job" });
};
const sendPointJob = () => {
const handleSendapply = () => {
console.log("props.jobListShow", props.jobListShow);
emits("jobListShow", { isShow: true, type: "apply" });
};
const sendPointJob = () => {
emits("exportPointJob");
};
const handleSendCustomMsg = () => {
@ -638,17 +628,16 @@ const handleSendMoreVisible = () => {
emojiVisible.value = false;
sendMoreVisible.value = !sendMoreVisible.value;
setTimeout(()=>{
setTimeout(() => {
if (sendMoreVisible.value) {
// uni.$emit(events.KeyboardEvent, 230);
uni.$emit("msgKeyHeight", uni.getSystemInfoSync().windowHeight - 230 - ssff.value); //
} else {
// uni.$emit(events.KeyboardEvent, 0);
uni.$emit("msgKeyHeight", '100%'); //
uni.$emit("msgKeyHeight", "100%"); //
}
uni.$emit(events.ON_SCROLL_BOTTOM);
},80)
}, 80);
// }, 300)
};
@ -811,7 +800,7 @@ const screenHeight = ref(0);
screenHeight.value = uni.getSystemInfoSync().windowHeight;
const chooseData = ref({});
onMounted(() => {
if(uni.getStorageSync("im_sendParams")){
if (uni.getStorageSync("im_sendParams")) {
chooseData.value = JSON.parse(uni.getStorageSync("im_sendParams")).jobDetail;
}
uninstallTeamWatch = autorun(() => {

@ -269,7 +269,7 @@
</view>
</view>
<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>
<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"
@ -317,7 +317,7 @@
</view>
</view>
<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>
<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"
@ -330,7 +330,35 @@
</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' }"
v-else-if="props.msg.messageType == 100 && props.msg.attachment && JSON.parse(props.msg.attachment.raw).typs == 'msg'">
<Avatar :account="props.msg.senderId" :teamId="
@ -405,7 +433,8 @@
defineProps,
withDefaults,
onMounted,
} from '../../../utils/transformVue'
getCurrentInstance
} from "vue"
import Avatar from '../../../components/Avatar.vue'
import MessageBubble from './message-bubble.vue'
import { events, MSG_ID_FLAG } from '../../../utils/constants'
@ -425,6 +454,14 @@
import MessageIsRead from './message-read.vue'
import Icon from '../../../components/Icon.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)
const props = withDefaults(
defineProps<{
@ -561,6 +598,11 @@
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>
<style scoped lang="scss">

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

@ -1,7 +1,4 @@
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 data = {
ajaxUrl: ajaxUrl,

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

Loading…
Cancel
Save