feat: add customer service IM bindings
This commit is contained in:
@@ -65,8 +65,19 @@
|
||||
<n-form-item label="头像地址">
|
||||
<n-input v-model:value="form.avatarUrl" />
|
||||
</n-form-item>
|
||||
<n-grid :cols="2" :x-gap="12">
|
||||
<n-form-item-gi label="IM租户代码" path="imTenantCode">
|
||||
<n-input v-model:value="form.imTenantCode" disabled />
|
||||
</n-form-item-gi>
|
||||
<n-form-item-gi label="IM登录名">
|
||||
<n-input v-model:value="form.imUsername" placeholder="例如 allrich_cs_01" />
|
||||
</n-form-item-gi>
|
||||
</n-grid>
|
||||
<n-form-item label="IM客服用户 ID">
|
||||
<n-input v-model:value="form.imUserId" placeholder="填写 IM 返回的对外用户 ID" />
|
||||
</n-form-item>
|
||||
<n-form-item label="客服跳转 URL" path="serviceUrl">
|
||||
<n-input v-model:value="form.serviceUrl" placeholder="必须使用 HTTPS" />
|
||||
<n-input v-model:value="form.serviceUrl" placeholder="过渡回退地址,可留空" />
|
||||
</n-form-item>
|
||||
<n-form-item label="备用联系方式" path="backupContact">
|
||||
<n-input v-model:value="form.backupContact" />
|
||||
@@ -140,11 +151,11 @@
|
||||
onlineStatus: { required: true, type: 'number', message: '请选择在线状态', trigger: 'change' },
|
||||
status: { required: true, type: 'number', message: '请选择状态', trigger: 'change' },
|
||||
serviceUrl: {
|
||||
required: true,
|
||||
pattern: /^https:\/\/.+/i,
|
||||
message: '请输入有效的 HTTPS 地址',
|
||||
message: '若填写,请输入有效的 HTTPS 地址',
|
||||
trigger: ['input', 'blur'],
|
||||
},
|
||||
imTenantCode: { required: true, message: '请输入 IM 租户代码', trigger: ['input', 'blur'] },
|
||||
backupContact: { required: true, message: '请输入备用联系方式', trigger: ['input', 'blur'] },
|
||||
};
|
||||
const [register] = useForm({
|
||||
|
||||
@@ -3,7 +3,7 @@ import { NTag } from 'naive-ui';
|
||||
import { FormSchema } from '@/components/Form';
|
||||
import { useDictStore } from '@/store/modules/dict';
|
||||
const dict=useDictStore();
|
||||
export class State { id=0;serviceCode='';name='';avatarUrl='';workTime='09:00-18:00';onlineStatus=2;serviceUrl='https://';backupContact='';status=1;sort=0;remark=''; }
|
||||
export class State { id=0;serviceCode='';name='';avatarUrl='';workTime='09:00-18:00';onlineStatus=2;serviceUrl='';backupContact='';imTenantCode='allrich';imUserId='';imUsername='';status=1;sort=0;remark=''; }
|
||||
export const schemas=ref<FormSchema[]>([
|
||||
{field:'name',component:'NInput',label:'客服名称',componentProps:{clearable:true}},
|
||||
{field:'status',component:'NSelect',label:'状态',componentProps:{options:computed(()=>dict.getOptionUnRef('sys_normal_disable')),clearable:true}},
|
||||
@@ -11,7 +11,7 @@ export const schemas=ref<FormSchema[]>([
|
||||
const tag=(type,value)=>h(NTag,{type:dict.getType(type,value),bordered:false},{default:()=>dict.getLabel(type,value)||'-'});
|
||||
export const columns=[
|
||||
{title:'编码',key:'serviceCode',width:130},{title:'客服名称',key:'name',width:140},{title:'工作时间',key:'workTime',width:150},
|
||||
{title:'在线状态',key:'onlineStatus',width:100,render:(r)=>tag('customerServiceOnline',r.onlineStatus)},{title:'跳转 URL',key:'serviceUrl',width:260,ellipsis:{tooltip:true}},
|
||||
{title:'在线状态',key:'onlineStatus',width:100,render:(r)=>tag('customerServiceOnline',r.onlineStatus)},{title:'IM账号',key:'imUsername',width:150,render:(r)=>r.imUsername||'未绑定'},{title:'IM用户ID',key:'imUserId',width:190,ellipsis:{tooltip:true}},
|
||||
{title:'备用联系方式',key:'backupContact',width:220,ellipsis:{tooltip:true}},{title:'状态',key:'status',width:90,render:(r)=>tag('sys_normal_disable',r.status)},
|
||||
{title:'排序',key:'sort',width:80},{title:'创建时间',key:'createdAt',width:180},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user