feat: 调整
This commit is contained in:
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import router from '@/router';
|
import router from '@/router';
|
||||||
import { clearToken } from '@/utils/auth';
|
import { clearToken } from '@/utils/auth';
|
||||||
import { Message } from '@arco-design/web-vue';
|
import { message } from 'ant-design-vue';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理业务逻辑定义的错误code
|
* 处理业务逻辑定义的错误code
|
||||||
@ -28,5 +28,5 @@ export const handleCodeError = (error: any) => {
|
|||||||
default:
|
default:
|
||||||
errMessage = error.msg || `未知错误-${error.code}`;
|
errMessage = error.msg || `未知错误-${error.code}`;
|
||||||
}
|
}
|
||||||
Message.error(errMessage);
|
message.error(errMessage);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -118,10 +118,10 @@ const handleError = (error) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const customRequest = async (option) => {
|
const customRequest = async (option) => {
|
||||||
const { onProgress, onError, onSuccess, fileItem, name } = option;
|
const { onProgress, onError, onSuccess, file, name } = option;
|
||||||
try {
|
try {
|
||||||
// 1. 获取预签名上传URL
|
// 1. 获取预签名上传URL
|
||||||
const response = await fetchImageUploadFile({ suffix: getFileExtension(fileItem.file.name) });
|
const response = await fetchImageUploadFile({ suffix: getFileExtension(file.name) });
|
||||||
const preSignedUrl = response?.data?.upload_url;
|
const preSignedUrl = response?.data?.upload_url;
|
||||||
|
|
||||||
if (!preSignedUrl) {
|
if (!preSignedUrl) {
|
||||||
@ -129,9 +129,9 @@ const customRequest = async (option) => {
|
|||||||
}
|
}
|
||||||
console.log('preSignedUrl', preSignedUrl);
|
console.log('preSignedUrl', preSignedUrl);
|
||||||
// 2. 使用预签名URL上传文件
|
// 2. 使用预签名URL上传文件
|
||||||
const blob = new Blob([fileItem.file], { type: fileItem.file.type });
|
const blob = new Blob([file], { type: file.type });
|
||||||
await axios.put(preSignedUrl, blob, {
|
await axios.put(preSignedUrl, blob, {
|
||||||
headers: { 'Content-Type': fileItem.file.type },
|
headers: { 'Content-Type': file.type },
|
||||||
});
|
});
|
||||||
|
|
||||||
onSuccess(JSON.stringify(response));
|
onSuccess(JSON.stringify(response));
|
||||||
|
|||||||
@ -1,172 +0,0 @@
|
|||||||
/*
|
|
||||||
* @Author: 田鑫
|
|
||||||
* @Date: 2023-02-16 15:02:51
|
|
||||||
* @LastEditors: 田鑫
|
|
||||||
* @LastEditTime: 2023-03-09 11:20:59
|
|
||||||
* @Description: table-hooks
|
|
||||||
*/
|
|
||||||
import type { PaginationProps, TableBorder, TableColumnData, TableData, TableRowSelection } from '@arco-design/web-vue';
|
|
||||||
type Size = 'mini' | 'small' | 'medium' | 'large';
|
|
||||||
interface IDefaultProps {
|
|
||||||
/** 是否显示边框 */
|
|
||||||
bordered?: TableBorder;
|
|
||||||
/** 是否显示选中效果 */
|
|
||||||
hoverable?: boolean;
|
|
||||||
/** 表格的大小 */
|
|
||||||
size?: Size;
|
|
||||||
/** 是否允许调整列宽 */
|
|
||||||
'column-resizable'?: boolean;
|
|
||||||
/** 是否为加载中状态 */
|
|
||||||
loading?: boolean;
|
|
||||||
/** 分页参数 */
|
|
||||||
pagination?: PaginationProps;
|
|
||||||
/** table数据类型 */
|
|
||||||
data?: any[];
|
|
||||||
/** 表头参数 */
|
|
||||||
columns?: TableColumnData[];
|
|
||||||
/** 表格行 key 的取值字段 */
|
|
||||||
'row-key'?: string;
|
|
||||||
/** 表格的行选择器配置 */
|
|
||||||
'row-selection'?: TableRowSelection;
|
|
||||||
'selected-keys'?: (string | number)[];
|
|
||||||
[x: string]: any;
|
|
||||||
}
|
|
||||||
interface IPagination {
|
|
||||||
/** 当前页数 */
|
|
||||||
current?: number;
|
|
||||||
/** 总页数默认是0条 */
|
|
||||||
total?: number;
|
|
||||||
}
|
|
||||||
interface ITableResponse<T> {
|
|
||||||
current?: number;
|
|
||||||
records?: T[];
|
|
||||||
size?: number;
|
|
||||||
total?: number;
|
|
||||||
[x: string]: any;
|
|
||||||
}
|
|
||||||
type GetListFunc<T> = (v: object) => Promise<ITableResponse<T>>;
|
|
||||||
export default function useTableProps<T>(loadListFunc: GetListFunc<T>) {
|
|
||||||
const defaultProps: IDefaultProps = {
|
|
||||||
bordered: { cell: true },
|
|
||||||
size: 'large',
|
|
||||||
'column-resizable': true,
|
|
||||||
loading: true,
|
|
||||||
data: [] as any[],
|
|
||||||
pagination: {
|
|
||||||
current: 1,
|
|
||||||
pageSize: 20,
|
|
||||||
total: 0,
|
|
||||||
showPageSize: true,
|
|
||||||
showTotal: true,
|
|
||||||
},
|
|
||||||
hoverable: false,
|
|
||||||
columns: [],
|
|
||||||
};
|
|
||||||
//* 属性组
|
|
||||||
const propsRes = reactive<IDefaultProps>(defaultProps);
|
|
||||||
//* 设置请求参数,如果出了分页参数还有搜索参数,在模板页面调用此方法,可以加入参数
|
|
||||||
const loadListParams = reactive<object>({
|
|
||||||
page: 1,
|
|
||||||
size: 20,
|
|
||||||
});
|
|
||||||
/**
|
|
||||||
* 单独设置默认属性
|
|
||||||
* @param params
|
|
||||||
*/
|
|
||||||
const setProps = (params: IDefaultProps) => {
|
|
||||||
if (Object.keys(params).length > 0) {
|
|
||||||
Object.assign(defaultProps, params);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* 设置表头数据
|
|
||||||
* @param columns
|
|
||||||
*/
|
|
||||||
const setColumns = (columns: TableColumnData[]) => {
|
|
||||||
propsRes.columns = columns;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* 设置loading
|
|
||||||
* @param status
|
|
||||||
*/
|
|
||||||
const setLoading = (status: boolean) => {
|
|
||||||
propsRes.loading = status;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* 设置分页
|
|
||||||
* @param param0
|
|
||||||
*/
|
|
||||||
const setPagination = ({ current, total }: IPagination) => {
|
|
||||||
propsRes.pagination!.current = current;
|
|
||||||
total && (propsRes.pagination!.total = total);
|
|
||||||
Object.assign(loadListParams, { page: current });
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* 设置列表请求参数
|
|
||||||
* @param params
|
|
||||||
*/
|
|
||||||
const setLoadListParams = <R>(params?: R) => {
|
|
||||||
Object.assign(loadListParams, params);
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* 加载列表
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
const loadTableData = async (resetPageIndex = false) => {
|
|
||||||
if (resetPageIndex) {
|
|
||||||
setPagination({ current: 1 });
|
|
||||||
}
|
|
||||||
setLoading(true);
|
|
||||||
try {
|
|
||||||
const resData = await loadListFunc({
|
|
||||||
...loadListParams,
|
|
||||||
});
|
|
||||||
console.log(resData);
|
|
||||||
const response = resData as ITableResponse<T>;
|
|
||||||
propsRes.data = response.records;
|
|
||||||
setPagination({
|
|
||||||
current: response.current,
|
|
||||||
total: response.total,
|
|
||||||
});
|
|
||||||
setLoading(false);
|
|
||||||
return resData;
|
|
||||||
} catch (error) {
|
|
||||||
setLoading(false);
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 事件触发组
|
|
||||||
const propsEvent = reactive({
|
|
||||||
// 排序触发
|
|
||||||
sorterChange: (dataIndex: string, direction: string) => {
|
|
||||||
console.log(dataIndex, direction);
|
|
||||||
},
|
|
||||||
// 分页触发
|
|
||||||
pageChange: (current: number) => {
|
|
||||||
setPagination({ current });
|
|
||||||
loadTableData();
|
|
||||||
},
|
|
||||||
// 修改每页显示条数
|
|
||||||
pageSizeChange: (size: number) => {
|
|
||||||
propsRes.pagination!.pageSize = size;
|
|
||||||
Object.assign(loadListParams, { size });
|
|
||||||
loadTableData();
|
|
||||||
},
|
|
||||||
selectionChange: (rowKeys: (string | number)[]) => {
|
|
||||||
propsRes['selected-keys'] = rowKeys;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
propsRes,
|
|
||||||
propsEvent,
|
|
||||||
loadListParams,
|
|
||||||
setProps,
|
|
||||||
setColumns,
|
|
||||||
setLoading,
|
|
||||||
setPagination,
|
|
||||||
loadTableData,
|
|
||||||
setLoadListParams,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -3,7 +3,7 @@
|
|||||||
* @Date: 2025-06-23 03:56:22
|
* @Date: 2025-06-23 03:56:22
|
||||||
*/
|
*/
|
||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import type { AppState, RouteRecordNormalized, NotificationReturn } from './types';
|
import type { AppState, RouteRecordNormalized } from './types';
|
||||||
|
|
||||||
import defaultSettings from '@/config/settings.json';
|
import defaultSettings from '@/config/settings.json';
|
||||||
import type { AppRouteRecordRaw } from '@/router/routes/types';
|
import type { AppRouteRecordRaw } from '@/router/routes/types';
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
import type { RouteRecordNormalized } from 'vue-router';
|
import type { RouteRecordNormalized } from 'vue-router';
|
||||||
import type { NotificationReturn } from '@arco-design/web-vue/es/notification/interface';
|
|
||||||
import type { AppRouteRecordRaw } from '@/router/routes/types';
|
import type { AppRouteRecordRaw } from '@/router/routes/types';
|
||||||
|
|
||||||
export { RouteRecordNormalized, NotificationReturn };
|
export { RouteRecordNormalized };
|
||||||
|
|
||||||
export interface AppState {
|
export interface AppState {
|
||||||
theme: string;
|
theme: string;
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Button, Input } from 'ant-design-vue';
|
import { Button, Input, Image } from 'ant-design-vue';
|
||||||
const { TextArea } = Input;
|
const { TextArea } = Input;
|
||||||
import { Image, Spin, Affix } from '@arco-design/web-vue';
|
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
import SvgIcon from '@/components/svg-icon/index.vue';
|
import SvgIcon from '@/components/svg-icon/index.vue';
|
||||||
import DeleteCommentModal from './delete-comment-modal.vue';
|
import DeleteCommentModal from './delete-comment-modal.vue';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Button } from 'ant-design-vue';
|
import { Button } from 'ant-design-vue';
|
||||||
import { Spin } from '@arco-design/web-vue';
|
import { Spin } from 'ant-design-vue';
|
||||||
import AiSuggest from './components/ai-suggest/';
|
import AiSuggest from './components/ai-suggest/';
|
||||||
|
|
||||||
import { getShareWorksList, getShareWorksDetail, patchShareWorksConfirm } from '@/api/all/generationWorkshop.ts';
|
import { getShareWorksList, getShareWorksDetail, patchShareWorksConfirm } from '@/api/all/generationWorkshop.ts';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
import { Image, Spin } from '@arco-design/web-vue';
|
import { Image, Spin } from 'ant-design-vue';
|
||||||
|
|
||||||
import { exactFormatTime } from '@/utils/tools';
|
import { exactFormatTime } from '@/utils/tools';
|
||||||
import { handleUserHome } from '@/utils/user.ts';
|
import { handleUserHome } from '@/utils/user.ts';
|
||||||
|
|||||||
@ -3,6 +3,9 @@
|
|||||||
.ant-drawer-mask {
|
.ant-drawer-mask {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
.ant-drawer-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.ant-drawer-body {
|
.ant-drawer-body {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { Swiper, SwiperSlide } from 'swiper/vue';
|
import { Swiper, SwiperSlide } from 'swiper/vue';
|
||||||
import { Button, Form, Input, FormItem, Tabs, message } from 'ant-design-vue';
|
import { Button, Form, Input, FormItem, Tabs, message, Image, Upload, Spin } from 'ant-design-vue';
|
||||||
import { IconLoading } from '@arco-design/web-vue/es/icon';
|
import { IconLoading } from '@arco-design/web-vue/es/icon';
|
||||||
import { Image, Upload, Spin } from '@arco-design/web-vue';
|
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
import HighlightTextarea from './highlight-textarea';
|
import HighlightTextarea from './highlight-textarea';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Button, message } from 'ant-design-vue';
|
import { Button, message } from 'ant-design-vue';
|
||||||
import { Spin } from '@arco-design/web-vue';
|
import { Spin } from 'ant-design-vue';
|
||||||
import CancelCheckModal from './cancel-check-modal.vue';
|
import CancelCheckModal from './cancel-check-modal.vue';
|
||||||
import CheckSuccessModal from './check-success-modal.vue';
|
import CheckSuccessModal from './check-success-modal.vue';
|
||||||
import HeaderCard from './components/header-card';
|
import HeaderCard from './components/header-card';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { Button, Form, FormItem, Input, message } from 'ant-design-vue';
|
import { Button, Form, FormItem, Input, message } from 'ant-design-vue';
|
||||||
import { Upload } from '@arco-design/web-vue';
|
import { Upload } from 'ant-design-vue';
|
||||||
// import CommonSelect from '@/components/common-select';
|
// import CommonSelect from '@/components/common-select';
|
||||||
// import { VueDraggable } from 'vue-draggable-plus';
|
// import { VueDraggable } from 'vue-draggable-plus';
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Modal, Button, Form, FormItem, RadioGroup, Radio, Input, message } from 'ant-design-vue';
|
import { Modal, Button, Form, FormItem, RadioGroup, Radio, Input, message, Upload } from 'ant-design-vue';
|
||||||
import { Upload } from '@arco-design/web-vue';
|
|
||||||
import { useClipboard } from '@vueuse/core';
|
import { useClipboard } from '@vueuse/core';
|
||||||
import { getWriterLinksGenerate, getTemplateUrl, postWorksByLink, postWorksByFile } from '@/api/all/generationWorkshop';
|
import { getWriterLinksGenerate, getTemplateUrl, postWorksByLink, postWorksByFile } from '@/api/all/generationWorkshop';
|
||||||
import { generateFullUrl } from '@/utils/tools';
|
import { generateFullUrl } from '@/utils/tools';
|
||||||
@ -148,9 +147,7 @@ export default {
|
|||||||
// 文件上传处理
|
// 文件上传处理
|
||||||
const handleUpload = async (option) => {
|
const handleUpload = async (option) => {
|
||||||
taskStatus.value = TASK_STATUS.LOADING;
|
taskStatus.value = TASK_STATUS.LOADING;
|
||||||
const {
|
const { file } = option;
|
||||||
fileItem: { file },
|
|
||||||
} = option;
|
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append('file', file);
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Spin } from '@arco-design/web-vue';
|
import { Spin } from 'ant-design-vue';
|
||||||
import { Button, message } from 'ant-design-vue';
|
import { Button, message } from 'ant-design-vue';
|
||||||
|
|
||||||
import { useRouter, useRoute } from 'vue-router';
|
import { useRouter, useRoute } from 'vue-router';
|
||||||
|
|||||||
@ -4,9 +4,8 @@
|
|||||||
-->
|
-->
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { ref, computed } from 'vue';
|
import { ref, computed } from 'vue';
|
||||||
import { Button, Modal, Form, FormItem, RadioGroup, Radio, Input, message, Tooltip } from 'ant-design-vue';
|
import { Button, Modal, Form, FormItem, RadioGroup, Radio, Input, message, Tooltip, Upload, Switch } from 'ant-design-vue';
|
||||||
const { TextArea } = Input;
|
const { TextArea } = Input;
|
||||||
import { Upload, Switch } from '@arco-design/web-vue';
|
|
||||||
import AuthorizedAccountModal from '../authorized-account-modal';
|
import AuthorizedAccountModal from '../authorized-account-modal';
|
||||||
// import ImportPromptModal from '../import-prompt-modal';
|
// import ImportPromptModal from '../import-prompt-modal';
|
||||||
import StatusBox from '@/views/property-marketing/media-account/components/status-select/status-box.tsx';
|
import StatusBox from '@/views/property-marketing/media-account/components/status-select/status-box.tsx';
|
||||||
@ -122,10 +121,9 @@ export default {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
function handleUpload(option) {
|
function handleUpload(option) {
|
||||||
const { fileItem } = option;
|
|
||||||
uploadStatus.value = UploadStatus.WAITING;
|
uploadStatus.value = UploadStatus.WAITING;
|
||||||
file.value = fileItem.file;
|
file.value = option.file;
|
||||||
fileName.value = fileItem.name;
|
fileName.value = option.file.name;
|
||||||
}
|
}
|
||||||
function removeFile() {
|
function removeFile() {
|
||||||
fileName.value = '';
|
fileName.value = '';
|
||||||
|
|||||||
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
import { Button, Tabs, Space, Pagination, Spin } from 'ant-design-vue';
|
import { Button, Tabs, Space, Pagination, Spin, message as Amessage } from 'ant-design-vue';
|
||||||
const { TabPane } = Tabs;
|
const { TabPane } = Tabs;
|
||||||
import PlacementGuideList from './components/table-data/placementGuideList.vue';
|
import PlacementGuideList from './components/table-data/placementGuideList.vue';
|
||||||
import listSearchForm from './components/table-data/listSearchForm.vue';
|
import listSearchForm from './components/table-data/listSearchForm.vue';
|
||||||
@ -85,7 +85,6 @@ import {
|
|||||||
getPlacementGuideHistory,
|
getPlacementGuideHistory,
|
||||||
savePlacementGuide,
|
savePlacementGuide,
|
||||||
} from '@/api/all/propertyMarketing';
|
} from '@/api/all/propertyMarketing';
|
||||||
import { Message } from '@arco-design/web-vue';
|
|
||||||
import { AiResultStatus, generatePDF } from '@/views/property-marketing/put-account/investment-guidelines/constants';
|
import { AiResultStatus, generatePDF } from '@/views/property-marketing/put-account/investment-guidelines/constants';
|
||||||
import { uploadPdf } from '@/views/property-marketing/put-account/investment-guidelines/constants';
|
import { uploadPdf } from '@/views/property-marketing/put-account/investment-guidelines/constants';
|
||||||
|
|
||||||
@ -180,7 +179,7 @@ const downPage = async () => {
|
|||||||
document.body.removeChild(link);
|
document.body.removeChild(link);
|
||||||
exportLoading.value = false;
|
exportLoading.value = false;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Message.error(error.message);
|
Amessage.error(error.message);
|
||||||
exportLoading.value = false;
|
exportLoading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -215,7 +214,7 @@ const syncGetAiResult = async () => {
|
|||||||
aiResult.action_guide = data.result?.action_guide?.modules || [];
|
aiResult.action_guide = data.result?.action_guide?.modules || [];
|
||||||
aiResult.overview = data.result?.overview?.content_blocks[0] || [];
|
aiResult.overview = data.result?.overview?.content_blocks[0] || [];
|
||||||
} else if (data.ai_result_status === AiResultStatus.FAILED) {
|
} else if (data.ai_result_status === AiResultStatus.FAILED) {
|
||||||
Message.error('AI分析失败');
|
Amessage.error('AI分析失败');
|
||||||
aiError();
|
aiError();
|
||||||
}
|
}
|
||||||
saveForm.code = data?.code;
|
saveForm.code = data?.code;
|
||||||
@ -262,7 +261,7 @@ const handleSave = async () => {
|
|||||||
};
|
};
|
||||||
const { code, message, data } = await savePlacementGuide(updatedSaveForm);
|
const { code, message, data } = await savePlacementGuide(updatedSaveForm);
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
Message.success(message);
|
Amessage.success(message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,9 @@
|
|||||||
.ant-drawer-mask {
|
.ant-drawer-mask {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
.ant-drawer-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.ant-drawer-body {
|
.ant-drawer-body {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -7,7 +7,7 @@ const { TextArea } = Input;
|
|||||||
const { TabPane } = Tabs;
|
const { TabPane } = Tabs;
|
||||||
|
|
||||||
import { IconLoading, message } from '@arco-design/web-vue/es/icon';
|
import { IconLoading, message } from '@arco-design/web-vue/es/icon';
|
||||||
import { Image, Upload, Spin } from '@arco-design/web-vue';
|
import { Image, Upload, Spin } from 'ant-design-vue';
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
|
|
||||||
import 'swiper/css';
|
import 'swiper/css';
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { Button, Form, FormItem, Input, message } from 'ant-design-vue';
|
import { Button, Form, FormItem, Input, message, Upload } from 'ant-design-vue';
|
||||||
const { TextArea } = Input;
|
const { TextArea } = Input;
|
||||||
import { Upload } from '@arco-design/web-vue';
|
|
||||||
import CommonSelect from '@/components/common-select';
|
import CommonSelect from '@/components/common-select';
|
||||||
import { VueDraggable } from 'vue-draggable-plus';
|
import { VueDraggable } from 'vue-draggable-plus';
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Modal, Button, Form, FormItem, Input, message } from 'ant-design-vue';
|
import { Modal, Button, Form, FormItem, Input, message, Upload } from 'ant-design-vue';
|
||||||
const { TextArea } = Input;
|
const { TextArea } = Input;
|
||||||
import { Upload } from '@arco-design/web-vue';
|
|
||||||
import {
|
import {
|
||||||
getTemplateUrlWriter,
|
getTemplateUrlWriter,
|
||||||
postWorksByLinkWriter,
|
postWorksByLinkWriter,
|
||||||
@ -122,9 +121,7 @@ export default {
|
|||||||
const handleUpload = async (option) => {
|
const handleUpload = async (option) => {
|
||||||
taskStatus.value = TASK_STATUS.LOADING;
|
taskStatus.value = TASK_STATUS.LOADING;
|
||||||
|
|
||||||
const {
|
const { file } = option;
|
||||||
fileItem: { file },
|
|
||||||
} = option;
|
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append('file', file);
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { Button } from 'ant-design-vue';
|
import { Button, Spin } from 'ant-design-vue';
|
||||||
import { Spin } from '@arco-design/web-vue';
|
|
||||||
|
|
||||||
import { useRouter, useRoute } from 'vue-router';
|
import { useRouter, useRoute } from 'vue-router';
|
||||||
import { AuditStatus } from '@/views/writer-material-center/components/finished-products/constants';
|
import { AuditStatus } from '@/views/writer-material-center/components/finished-products/constants';
|
||||||
|
|||||||
Reference in New Issue
Block a user