Browse Source

修改链接参数

master
[yxf] 4 days ago
parent
commit
8f404b2df2
  1. 6
      im-admin-ui/src/views/im/code/components/alink.vue
  2. 6
      im-admin-ui/src/views/im/code/components/wangye.vue
  3. 96
      im-admin-ui/src/views/im/code/index.vue
  4. 4
      im-admin-ui/src/views/im/customer/index.vue
  5. 4
      im-admin-ui/src/views/im/user/index.vue

6
im-admin-ui/src/views/im/code/components/alink.vue

@ -17,7 +17,7 @@ export default {
props: { props: {
tokeninfo: {}, tokeninfo: {},
siteUrl: String, siteUrl: String,
kefuId: String, customerid: String,
// uniqueToken // uniqueToken
uniqueToken: String uniqueToken: String
}, },
@ -28,8 +28,8 @@ export default {
// token // token
if (this.uniqueToken) { if (this.uniqueToken) {
if (this.kefuId) { if (this.customerid) {
return `${baseUrl}?token=${this.uniqueToken}&kefuId=${this.kefuId}`; return `${baseUrl}?token=${this.uniqueToken}&customerid=${this.customerid}`;
} }
return `${baseUrl}?token=${this.uniqueToken}`; return `${baseUrl}?token=${this.uniqueToken}`;
} }

6
im-admin-ui/src/views/im/code/components/wangye.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="content"> <div class="content">
<p class="font-w">使用简介</p> <p class="font-w">使用简介</p>
<p class="text-i">网页内快速接入客服让网页拥有客服窗口请把一下代码复制到网页最底部, 如果需要指定用户ID, 则在token后参数中添加kefuid=用户ID</p> <p class="text-i">网页内快速接入客服让网页拥有客服窗口请把一下代码复制到网页最底部, 如果需要指定用户ID, 则在token后参数中添加customerid=用户ID</p>
<el-divider /> <el-divider />
<p class="typetitle">获取代码</p> <p class="typetitle">获取代码</p>
@ -19,7 +19,7 @@
openUrl: '{{ siteUrl }}', openUrl: '{{ siteUrl }}',
token: '{{ uniqueToken }}', token: '{{ uniqueToken }}',
isShowTip: true, isShowTip: true,
kefuid: '{{ kefuId || "" }}', customerid: '{{ customerid || "" }}',
mobileIcon: '{{ floatConfig?.mobileImage || "" }}', mobileIcon: '{{ floatConfig?.mobileImage || "" }}',
pcIcon: '{{ floatConfig?.pcImage || "" }}', pcIcon: '{{ floatConfig?.pcImage || "" }}',
windowStyle:'', windowStyle:'',
@ -49,7 +49,7 @@ const props = defineProps<{
tokeninfo?: any; tokeninfo?: any;
siteUrl?: string; siteUrl?: string;
uniqueToken: string; uniqueToken: string;
kefuId?: number; customerid?: string;
floatConfig?: { // floatConfig?: { //
pcImage: string; pcImage: string;
mobileImage: string; mobileImage: string;

96
im-admin-ui/src/views/im/code/index.vue

@ -2,47 +2,48 @@
<div class="getCode_container"> <div class="getCode_container">
<div class="content"> <div class="content">
<el-card shadow="never"> <el-card shadow="never">
<!-- 客服选择 --> <div class="top-row">
<div class="kefu-selector"> <div class="kefu-selector">
<span class="kefu-label">指定客服</span> <span class="kefu-label">指定客服</span>
<el-select v-model="selectedKefuId" placeholder="不指定(系统自动分配)" size="small" style="width: 240px" @change="onKefuChange"> <el-select v-model="selectedKefuId" placeholder="不指定(系统自动分配)" size="small" style="width: 240px" @change="onKefuChange">
<el-option v-for="item in kefuList" :key="item.id" :label="item.nickName" :value="item.id"> <el-option v-for="item in kefuList" :key="item.id" :label="item.nickName" :value="item.id">
<div style="display: flex; align-items: center; gap: 8px"> <div style="display: flex; align-items: center; gap: 8px">
<el-avatar :src="item.headImageThumb" :size="24" v-if="item.headImageThumb" /> <el-avatar :src="item.headImageThumb" :size="24" v-if="item.headImageThumb" />
<span>{{ item.nickName }}</span> <span>{{ item.nickName }}</span>
</div> </div>
</el-option> </el-option>
</el-select> </el-select>
<el-button <el-button
v-if="selectedKefuId !== ''" v-if="selectedKefuId !== ''"
size="small" size="small"
type="danger" type="danger"
plain plain
@click="onClearKefu" @click="onClearKefu"
style="margin-left: 8px;" style="margin-left: 8px;"
> >
清除 清除
</el-button> </el-button>
</div>
<div class="float-ball-wrap">
<FloatBallSetting
ref="floatBallSettingRef"
:token="uniqueToken"
@save="handleFloatBallConfigSaved"
@update:config="handleFloatBallConfigUpdate"
/>
</div>
</div> </div>
<!-- 使用悬浮球设置组件 -->
<FloatBallSetting
ref="floatBallSettingRef"
:token="uniqueToken"
@save="handleFloatBallConfigSaved"
@update:config="handleFloatBallConfigUpdate"
/>
<el-collapse v-model="activeName" accordion> <el-collapse v-model="activeName" accordion>
<el-collapse-item title="超链接" name="1"> <el-collapse-item title="超链接" name="1">
<alink :tokeninfo="token" :site-url="siteUrl" :unique-token="uniqueToken" :kefu-id="selectedKefuId" @cget-copy="getCopy"></alink> <alink :tokeninfo="token" :site-url="siteUrl" :unique-token="uniqueToken" :customerid="selectedKefuId" @cget-copy="getCopy"></alink>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="网页内嵌" name="2"> <el-collapse-item title="网页内嵌" name="2">
<wangye <wangye
:tokeninfo="token" :tokeninfo="token"
:site-url="siteUrl" :site-url="siteUrl"
:unique-token="uniqueToken" :unique-token="uniqueToken"
:kefu-id="selectedKefuId" :customerid="selectedKefuId"
:float-config="floatBallConfig" :float-config="floatBallConfig"
@cget-copy="getCopy" @cget-copy="getCopy"
></wangye> ></wangye>
@ -289,6 +290,39 @@ function copyToClipboard(elem: HTMLElement) {
font-size: 13px; font-size: 13px;
padding: 10px; padding: 10px;
} }
.top-row {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
padding: 8px 0 16px 0;
margin-bottom: 16px;
// border-bottom: 1px solid #f0f0f0;
.kefu-selector {
display: flex;
align-items: center;
flex-shrink: 0;
.kefu-label {
font-size: 14px;
font-weight: 600;
color: #8e9fb8b8;
white-space: nowrap;
}
}
.float-ball-wrap {
flex-shrink: 0;
display: flex;
align-items: center;
.float-ball-setting .setting-header {
margin-bottom: 0;
}
}
}
.font-w { .font-w {
font-weight: 800; font-weight: 800;
margin: 10px 0; margin: 10px 0;

4
im-admin-ui/src/views/im/customer/index.vue

@ -283,9 +283,9 @@ const fetchUniqueToken = async () => {
* @param row 客服信息 * @param row 客服信息
*/ */
const handleCopyLink = async (row: UserVO) => { const handleCopyLink = async (row: UserVO) => {
// kefuid // customerid
const baseUrl = `${location.origin}/h5`; const baseUrl = `${location.origin}/h5`;
const linkUrl = `${baseUrl}?token=${uniqueToken.value}&kefuid=${row.id}`; const linkUrl = `${baseUrl}?token=${uniqueToken.value}&customerid=${row.id}`;
try { try {
// 使 Clipboard API // 使 Clipboard API

4
im-admin-ui/src/views/im/user/index.vue

@ -7,9 +7,9 @@
<el-form-item label="用户名" prop="userName"> <el-form-item label="用户名" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入用户名" clearable style="width: 180px" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.userName" placeholder="请输入用户名" clearable style="width: 180px" @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="用户昵称" prop="nickName"> <!-- <el-form-item label="用户昵称" prop="nickName">
<el-input v-model="queryParams.nickName" placeholder="请输入用户昵称" clearable style="width: 180px" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nickName" placeholder="请输入用户昵称" clearable style="width: 180px" @keyup.enter="handleQuery" />
</el-form-item> </el-form-item> -->
<el-form-item label="平台来源" prop="platformId"> <el-form-item label="平台来源" prop="platformId">
<el-select v-model="queryParams.platformId" placeholder="请选择平台来源" clearable style="width: 180px"> <el-select v-model="queryParams.platformId" placeholder="请选择平台来源" clearable style="width: 180px">
<el-option v-for="item in platformOptions" :key="item.id" :label="item.platformName" :value="item.id" /> <el-option v-for="item in platformOptions" :key="item.id" :label="item.platformName" :value="item.id" />

Loading…
Cancel
Save