feat: 生成写手链接

This commit is contained in:
rd
2025-08-04 18:05:51 +08:00
parent c719b9a9d3
commit 447b0d1be3
3 changed files with 39 additions and 16 deletions

View File

@ -13,8 +13,8 @@ export const postShareLinksGenerate = (params = {}) => {
return Http.post('/v1/share-links/generate', params);
};
// 生成写手链接
export const postWriterLinksGenerate = (params = {}) => {
return Http.post('/v1/writer-links/generate', params);
export const getWriterLinksGenerate = () => {
return Http.get('/v1/writer-links/generate');
};
// 内容稿件-修改
export const putWorksUpdate = (params = {}) => {
@ -61,8 +61,3 @@ export const putWorkAuditsAuditPass = (params = {}) => {
const { id: auditId, ...rest } = params as { id: string; [key: string]: any };
return Http.put(`/v1/work-audits/${auditId}/audit-pass`, rest);
};
// 生成分享链接
export const getWriterLinksGenerate = (params = {}) => {
return Http.get('/v1/writer-links/generate', params);
};

View File

@ -10,6 +10,7 @@ import axios from 'axios';
import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import { handleUserLogout, goUserLogin } from '@/utils/user';
import { useEnterpriseStore } from '@/stores/modules/enterprise';
import { glsWithCatch } from '@/utils/stroage';
import pinia from '@/stores';
const contentType = 'application/json';
@ -43,7 +44,7 @@ export class Request {
(config: AxiosRequestConfig) => {
const store = useEnterpriseStore(pinia);
const token = localStorage.getItem('accessToken') as string;
const token = glsWithCatch('accessToken');
config.headers!.Authorization = token;
if (store.enterpriseInfo) {

View File

@ -12,6 +12,7 @@ import {
Textarea,
} from '@arco-design/web-vue';
import { useClipboard } from '@vueuse/core';
import { getWriterLinksGenerate } from '@/api/all/generationWorkshop';
import TextOverTips from '@/components/text-over-tips';
import icon1 from '@/assets/img/media-account/icon-feedback-fail.png';
@ -33,7 +34,7 @@ const UPLOAD_TYPE = {
// 初始表单数据
const INITIAL_FORM = {
linkUrl: '',
link: '',
writerLink: '',
};
// 模拟数据生成
@ -58,7 +59,7 @@ export default {
const totalCount = ref(0);
// 剪贴板功能
const { copy } = useClipboard({ source: form.value.link });
const { copy } = useClipboard({ source: form.value.writerLink });
const isLink = computed(() => uploadType.value === UPLOAD_TYPE.LINK);
const isLocal = computed(() => uploadType.value === UPLOAD_TYPE.LOCAL);
@ -86,12 +87,29 @@ export default {
totalCount.value = 0;
};
// 打开模态框
const getWriterLink = async () => {
const data = {
code: 1,
};
const url = new URL(window.location.href);
url.searchParams.set('writer_code', data.code);
form.value.writerLink = url.toString();
console.log('getWriterLinksGenerate -----writer-code---->', form.value.writerLink);
// const { code, data } = await getWriterLinksGenerate();
// if (code === 200) {
// const url = new URL(window.location.href);
// url.searchParams.set('writer_code', data.code);
// form.value.writerLink = url.toString();
// console.log('getWriterLinksGenerate -----writer-code---->', form.value.writerLink);
// }
};
const open = () => {
getWriterLink();
visible.value = true;
};
// 关闭模态框
const onClose = () => {
reset();
visible.value = false;
@ -121,12 +139,12 @@ export default {
// 手写提交处理
const handleHandwriteSubmit = () => {
if(!form.value.link) {
if (!form.value.writerLink) {
AMessage.warning('请输入上传链接!');
return;
}
copy(form.value.link);
copy(form.value.writerLink);
AMessage.success('复制成功!');
onClose();
};
@ -163,6 +181,15 @@ export default {
AMessage.success('删除成功');
};
// 上传方式切换
const onUploadTypeChange = (val) => {
if (val === UPLOAD_TYPE.HANDWRITE) {
getWriterLink();
}
// uploadType.value = val;
// formRef.value?.clearValidate?.();
};
// 下载模板
const handleDownloadTemplate = async () => {
AMessage.info('下载模板功能开发中...');
@ -183,7 +210,7 @@ export default {
// 渲染手写上传表单
const renderHandwriteForm = () => (
<FormItem label="上传链接">
<Input v-model={form.value.link} placeholder="请输入..." size="large" />
<Input v-model={form.value.writerLink} placeholder="请输入..." disabled size="large" />
</FormItem>
);
@ -337,7 +364,7 @@ export default {
<Form ref="formRef" model={form.value} layout="horizontal" auto-label-width>
{isDefault.value && (
<FormItem label="上传方式">
<RadioGroup v-model={uploadType.value}>
<RadioGroup v-model={uploadType.value} onChange={onUploadTypeChange}>
<Radio value={UPLOAD_TYPE.LINK}>链接上传</Radio>
<Radio value={UPLOAD_TYPE.LOCAL}>本地上传</Radio>
<Radio value={UPLOAD_TYPE.HANDWRITE}>写手上传</Radio>