|
|
|
|
@ -282,9 +282,57 @@
|
|
|
|
|
</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).type == 100001">
|
|
|
|
|
<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="goDetail('',JSON.parse(props.msg.attachment.raw).jobId)">
|
|
|
|
|
<div style="font-weight: bold;font-size: 16px;color: #000;">
|
|
|
|
|
{{ JSON.parse(props.msg.attachment.raw).obj.jobName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div style="font-size: 14px;color: #666;margin-top: 8px;margin-bottom: 8px;">
|
|
|
|
|
{{jsa.setJobInfoPositionv3(JSON.parse(props.msg.attachment.raw).obj.storeAddr) + ' | ' + jsa.handleSetSex(JSON.parse(props.msg.attachment.raw).obj).gender + ' | ' + jsa.handleSetAge(JSON.parse(props.msg.attachment.raw).obj).age}}
|
|
|
|
|
</div>
|
|
|
|
|
<view class="g_flex_row_start" style="height: 26px;overflow: hidden;" v-if="JSON.parse(props.msg.attachment.raw).obj.jobRequestLabelNames.length > 0">
|
|
|
|
|
<view v-for="(item, index) in JSON.parse(props.msg.attachment.raw).obj.jobRequestLabelNames.split(', ')"
|
|
|
|
|
:style="{ color: `${labelColor[index % labelColor.length]}`, 'background-color': `${bgColor[index % bgColor.length]}` }"
|
|
|
|
|
class="g_mr_8 g_mb_8 g_pl_4 g_pr_4" style="font-size: 14px;">
|
|
|
|
|
{{ item }}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<div class="g_flex_none g_flex_row_between">
|
|
|
|
|
<view class="g_flex_row_start flex_center">
|
|
|
|
|
<view class="g_fs_16 g_fw_600 g_c_f40 g_lh_1_2 g_flex_column_center"
|
|
|
|
|
v-html="JSON.parse(props.msg.attachment.raw).obj.salaryClassify != 7 ?
|
|
|
|
|
jsa.getSalaryClassifyValueHtml(JSON.parse(props.msg.attachment.raw).obj.salaryClassify, JSON.parse(props.msg.attachment.raw).obj.salaryClassifyValue) :
|
|
|
|
|
jsa.getSalaryClassifyValue(JSON.parse(props.msg.attachment.raw).obj.salaryClassify, JSON.parse(props.msg.attachment.raw).obj.minMonthlyPay, res.maxMonthlyPay)
|
|
|
|
|
"
|
|
|
|
|
> </view>
|
|
|
|
|
<view class="g_fs_14 g_c_9" style="margin-left: 6px;" v-if="JSON.parse(props.msg.attachment.raw).obj.minMonthlyPay">
|
|
|
|
|
{{
|
|
|
|
|
JSON.parse(props.msg.attachment.raw).obj.minMonthlyPay / 100 ?
|
|
|
|
|
(' | ' + JSON.parse(props.msg.attachment.raw).obj.minMonthlyPay / 100 +"-" + JSON.parse(props.msg.attachment.raw).obj.maxMonthlyPay / 100) :
|
|
|
|
|
""
|
|
|
|
|
}}
|
|
|
|
|
</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">
|
|
|
|
|
<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"
|
|
|
|
|
lazy-load="false"></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="g_fs_13">
|
|
|
|
|
{{ JSON.parse(props.msg.attachment.raw).obj.serviceFee ? jsa.setReturnFee(JSON.parse(props.msg.attachment.raw).obj.returnFee, JSON.parse(props.msg.attachment.raw).obj.returnFeeType) : '费用待定' }}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="msg-common" :style="{ flexDirection: !props.msg.isSelf ? 'row' : 'row-reverse' }"
|
|
|
|
|
v-else-if="props.msg.messageType == 100 && props.msg.text">
|
|
|
|
|
v-else-if="props.msg.messageType == 100 && props.msg.attachment && JSON.parse(props.msg.attachment.raw).typs == 'msg'">
|
|
|
|
|
<Avatar :account="props.msg.senderId" :teamId="
|
|
|
|
|
conversationType ===
|
|
|
|
|
V2NIMConst.V2NIMConversationType.V2NIM_CONVERSATION_TYPE_TEAM
|
|
|
|
|
@ -351,6 +399,7 @@
|
|
|
|
|
import { events, MSG_ID_FLAG } from '../../../utils/constants'
|
|
|
|
|
import { autorun } from 'mobx'
|
|
|
|
|
import { deepClone, stopAllAudio } from '../../../utils'
|
|
|
|
|
import jsa from '../../../../../utils/common';
|
|
|
|
|
import { t } from '../../../utils/i18n'
|
|
|
|
|
import ReplyMessage from './message-reply.vue'
|
|
|
|
|
import MessageFile from './message-file.vue'
|
|
|
|
|
@ -364,6 +413,7 @@
|
|
|
|
|
import MessageIsRead from './message-read.vue'
|
|
|
|
|
import Icon from '../../../components/Icon.vue'
|
|
|
|
|
import Appellation from '../../../components/Appellation.vue'
|
|
|
|
|
console.log('message-item',jsa)
|
|
|
|
|
const props = withDefaults(
|
|
|
|
|
defineProps<{
|
|
|
|
|
msg : V2NIMMessageForUI & { timeValue ?: number }
|
|
|
|
|
|