diff --git a/apps/web-antd/.env.development b/apps/web-antd/.env.development
index cff255764..fe07e867c 100644
--- a/apps/web-antd/.env.development
+++ b/apps/web-antd/.env.development
@@ -4,9 +4,9 @@ VITE_PORT=5666
VITE_BASE=/
# 请求路径
-VITE_BASE_URL=http://127.0.0.1:48080
+VITE_BASE_URL=http://47.103.66.220:48080
# 接口地址
-VITE_GLOB_API_URL=/admin-api
+VITE_GLOB_API_URL=http://47.103.66.220:48080/admin-api
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
# 是否打开 devtools,true 为打开,false 为关闭
diff --git a/apps/web-antd/src/api/mp/draft/index.ts b/apps/web-antd/src/api/mp/draft/index.ts
index 435f13e0b..9032ffd57 100644
--- a/apps/web-antd/src/api/mp/draft/index.ts
+++ b/apps/web-antd/src/api/mp/draft/index.ts
@@ -35,9 +35,13 @@ export function getDraftPage(params: PageParam) {
/** 创建草稿 */
export function createDraft(accountId: number, articles: MpDraftApi.Article[]) {
- return requestClient.post('/mp/draft/create', articles, {
- params: { accountId },
- });
+ return requestClient.post(
+ '/mp/draft/create',
+ { articles },
+ {
+ params: { accountId },
+ },
+ );
}
/** 更新草稿 */
@@ -46,9 +50,13 @@ export function updateDraft(
mediaId: string,
articles: MpDraftApi.Article[],
) {
- return requestClient.put('/mp/draft/update', articles, {
- params: { accountId, mediaId },
- });
+ return requestClient.put(
+ '/mp/draft/update',
+ { articles },
+ {
+ params: { accountId, mediaId },
+ },
+ );
}
/** 删除草稿 */
diff --git a/apps/web-antd/src/views/mp/draft/data.ts b/apps/web-antd/src/views/mp/draft/data.ts
new file mode 100644
index 000000000..89492f63e
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/data.ts
@@ -0,0 +1,41 @@
+import type { VbenFormSchema } from '#/adapter/form';
+import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+
+import { markRaw } from 'vue';
+
+import WxAccountSelect from '#/views/mp/modules/wx-account-select/main.vue';
+
+/** 获取表格列配置 */
+export function useGridColumns(): VxeTableGridOptions['columns'] {
+ return [
+ {
+ field: 'content',
+ title: '图文内容',
+ minWidth: 300,
+ slots: { default: 'content' },
+ },
+ {
+ field: 'updateTime',
+ title: '更新时间',
+ minWidth: 180,
+ formatter: 'formatDateTime',
+ },
+ {
+ title: '操作',
+ width: 200,
+ fixed: 'right',
+ slots: { default: 'actions' },
+ },
+ ];
+}
+
+/** 列表的搜索表单 */
+export function useGridFormSchema(): VbenFormSchema[] {
+ return [
+ {
+ fieldName: 'accountId',
+ label: '公众号',
+ component: markRaw(WxAccountSelect),
+ },
+ ];
+}
diff --git a/apps/web-antd/src/views/mp/draft/index.vue b/apps/web-antd/src/views/mp/draft/index.vue
index 9f1b6297b..e9ef78442 100644
--- a/apps/web-antd/src/views/mp/draft/index.vue
+++ b/apps/web-antd/src/views/mp/draft/index.vue
@@ -1,29 +1,316 @@
-
+
-
-
-
+
+ {
+ gridApi.query();
+ }
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/mp/draft/modules/cover-select.vue b/apps/web-antd/src/views/mp/draft/modules/cover-select.vue
new file mode 100644
index 000000000..ea6e9323e
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/modules/cover-select.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
封面:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 支持 bmp/png/jpeg/jpg/gif 格式,大小不超过 2M
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/mp/draft/modules/draft-table.vue b/apps/web-antd/src/views/mp/draft/modules/draft-table.vue
new file mode 100644
index 000000000..36ef5b0a6
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/modules/draft-table.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/mp/draft/modules/form.vue b/apps/web-antd/src/views/mp/draft/modules/form.vue
new file mode 100644
index 000000000..9b73ca3fb
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/modules/form.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/mp/draft/modules/news-form.vue b/apps/web-antd/src/views/mp/draft/modules/news-form.vue
new file mode 100644
index 000000000..9dbf2bc0c
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/modules/news-form.vue
@@ -0,0 +1,341 @@
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ news.title }}
+
+
+
+
+
+
+
+
+
{{ news.title }}
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/mp/draft/modules/types.ts b/apps/web-antd/src/views/mp/draft/modules/types.ts
new file mode 100644
index 000000000..774e3a2cb
--- /dev/null
+++ b/apps/web-antd/src/views/mp/draft/modules/types.ts
@@ -0,0 +1,41 @@
+interface NewsItem {
+ title: string;
+ thumbMediaId: string;
+ author: string;
+ digest: string;
+ showCoverPic: number;
+ content: string;
+ contentSourceUrl: string;
+ needOpenComment: number;
+ onlyFansCanComment: number;
+ thumbUrl: string;
+ picUrl?: string; // 用于预览封面
+}
+
+interface NewsItemList {
+ newsItem: NewsItem[];
+}
+
+interface Article {
+ mediaId: string;
+ content: NewsItemList;
+ updateTime: number;
+}
+
+const createEmptyNewsItem = (): NewsItem => {
+ return {
+ title: '',
+ thumbMediaId: '',
+ author: '',
+ digest: '',
+ showCoverPic: 0,
+ content: '',
+ contentSourceUrl: '',
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ thumbUrl: '',
+ };
+};
+
+export type { Article, NewsItem, NewsItemList };
+export { createEmptyNewsItem };
diff --git a/apps/web-ele/.env.development b/apps/web-ele/.env.development
index 77c13d398..274ab994d 100644
--- a/apps/web-ele/.env.development
+++ b/apps/web-ele/.env.development
@@ -4,9 +4,11 @@ VITE_PORT=5777
VITE_BASE=/
# 请求路径
-VITE_BASE_URL=http://127.0.0.1:48080
+VITE_BASE_URL=http://47.103.66.220:48080
+# VITE_BASE_URL=http://192.168.1.49:48080
# 接口地址
-VITE_GLOB_API_URL=/admin-api
+VITE_GLOB_API_URL=http://47.103.66.220:48080/admin-api
+# VITE_GLOB_API_URL=http://192.168.1.49:48080/admin-api
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
# 是否打开 devtools,true 为打开,false 为关闭
diff --git a/apps/web-ele/src/api/mp/draft/index.ts b/apps/web-ele/src/api/mp/draft/index.ts
index 435f13e0b..9032ffd57 100644
--- a/apps/web-ele/src/api/mp/draft/index.ts
+++ b/apps/web-ele/src/api/mp/draft/index.ts
@@ -35,9 +35,13 @@ export function getDraftPage(params: PageParam) {
/** 创建草稿 */
export function createDraft(accountId: number, articles: MpDraftApi.Article[]) {
- return requestClient.post('/mp/draft/create', articles, {
- params: { accountId },
- });
+ return requestClient.post(
+ '/mp/draft/create',
+ { articles },
+ {
+ params: { accountId },
+ },
+ );
}
/** 更新草稿 */
@@ -46,9 +50,13 @@ export function updateDraft(
mediaId: string,
articles: MpDraftApi.Article[],
) {
- return requestClient.put('/mp/draft/update', articles, {
- params: { accountId, mediaId },
- });
+ return requestClient.put(
+ '/mp/draft/update',
+ { articles },
+ {
+ params: { accountId, mediaId },
+ },
+ );
}
/** 删除草稿 */
diff --git a/apps/web-ele/src/views/mp/draft/data.ts b/apps/web-ele/src/views/mp/draft/data.ts
new file mode 100644
index 000000000..89492f63e
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/data.ts
@@ -0,0 +1,41 @@
+import type { VbenFormSchema } from '#/adapter/form';
+import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+
+import { markRaw } from 'vue';
+
+import WxAccountSelect from '#/views/mp/modules/wx-account-select/main.vue';
+
+/** 获取表格列配置 */
+export function useGridColumns(): VxeTableGridOptions['columns'] {
+ return [
+ {
+ field: 'content',
+ title: '图文内容',
+ minWidth: 300,
+ slots: { default: 'content' },
+ },
+ {
+ field: 'updateTime',
+ title: '更新时间',
+ minWidth: 180,
+ formatter: 'formatDateTime',
+ },
+ {
+ title: '操作',
+ width: 200,
+ fixed: 'right',
+ slots: { default: 'actions' },
+ },
+ ];
+}
+
+/** 列表的搜索表单 */
+export function useGridFormSchema(): VbenFormSchema[] {
+ return [
+ {
+ fieldName: 'accountId',
+ label: '公众号',
+ component: markRaw(WxAccountSelect),
+ },
+ ];
+}
diff --git a/apps/web-ele/src/views/mp/draft/index.vue b/apps/web-ele/src/views/mp/draft/index.vue
new file mode 100644
index 000000000..adca0ec51
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/index.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+ {
+ gridApi.query();
+ }
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mp/draft/mock.js b/apps/web-ele/src/views/mp/draft/mock.js
new file mode 100644
index 000000000..04b12c873
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/mock.js
@@ -0,0 +1,164 @@
+export default {
+ list: [
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-q-G9pdsmZw0OYG4FzHQkKfpLfEwIH51wy2bxisx8PvW',
+ content: {
+ newsItem: [
+ {
+ title: '我是标题(OOO)',
+ author: '我是作者',
+ digest: '我是摘要',
+ content: '我是内容',
+ contentSourceUrl: 'https://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9XaFphcmtJVFh3VEc4Q1MxQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN2QxTE56SFBCYXc2RE9NcUxIeS1CQjJuUHhTWjBlN2VOeGRpRi1fZUhwN1FNQjdrQV9yRU9EU0hibHREZmZoVW5acnZrN3ZjaWsxejR3RGpKczBzTHFIM0dFNFZWVkpBc0dWWlAzUEhlVmpnfn4%3D&chksm=1f6354802814dd969ef83c0f3babe555c614270b30bc383beaf7ffd13b0257f0fe5ced9af694#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png',
+ },
+ {
+ title: '我是标题(XXX)',
+ author: '我是作者',
+ digest: '我是摘要',
+ content: '我是内容',
+ contentSourceUrl: 'https://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9yTlYwOEs1clpwcE5OUEhCQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN0NSMjFqN3N1aUZMbFNVLTZHN2ZDME9qOGp2THk2RFNlSTlKZ3Y1czFVZDdQQm5IeUg3dEppSUtpQUh5SExOOTRkT3dHNUdBdHdWSWlOendlREV3dS1jUEVQbFpiVTZmVW5iRWhZcGdkNTFRfn4%3D&chksm=1f6354802814dd96a403151cd44c7da4eecf0e475d25423e46ecd795b513bafd829a75daef9b#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png',
+ },
+ ],
+ },
+ updateTime: 1_673_655_730,
+ },
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-jGpXnO73ihN0lsNXknCRQHapp2xgHMRxHKG50LituFe',
+ content: {
+ newsItem: [
+ {
+ title: '我是标题(修改)',
+ author: '我是作者',
+ digest: '我是摘要',
+ content: '我是内容',
+ contentSourceUrl: 'https://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl95WVFXYndIZnZJd0t5cjgvQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN1dlNURPbWswbEF4RDd5dVJTdjQ4cm9Cc0Q1TWhpMUh6SE1hVEE3ZHljaHhlZjZYSGF5N2JNSHpDTlh6ajNZbkpGTGpTcUQ4M3NMdW41ZUpXNFZZQ1VKbVlaMVp5ekxEV1czREdsY1dOYTZnfn4%3D&chksm=1f6354be2814dda8e6238037c2ebd52b1c8e80e93249a861ad80e4d40e5ca7207233475ca689#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png',
+ },
+ ],
+ },
+ updateTime: 1_673_655_584,
+ },
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-v5SrbNCPpD6M_p3TmSrYwTjKogs-0DMJgmjMyNZPeMO',
+ content: {
+ newsItem: [
+ {
+ title: '1321',
+ author: '3232',
+ digest: '1333',
+ content: '
444
',
+ contentSourceUrl: 'http://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9jelJiaDAzbmdpSkJOZ2M2QWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNDNXVVc2ZDRYeTY0Zm1weXR6dE9vQWh1TzEwbEpUVnRfVzJyaGFDNXBkZ0ZXM2JFOTNaRHNhOHRUeFdEanhMeS01X01kMUNWQ1BpRER3cjYwTl9pMnpFLUJhZXFucVVfM1pDUXlTUEl1S25nfn4%3D&chksm=1f6354bc2814ddaa56a90ad5bc3d078601c8d1589ba01827a8170587bc830ff9747b5f59c3a0#rd',
+ thumbUrl:
+ 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukfSJXz509boa21SpH8OVHAqXCJiaiaAaHQJNxwwsa0gHRXVr0G5EZYamw/0?wx_fmt=png',
+ },
+ ],
+ },
+ updateTime: 1_673_628_969,
+ },
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-vdWrisK5EZbk4Y3tzh8P0PG0eEUbnQrh0BcsEb3WNP0',
+ content: {
+ newsItem: [
+ {
+ title: 'tudou',
+ author: 'haha',
+ digest: '312',
+ content: '132312
',
+ contentSourceUrl: 'http://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qdkJ1ZjBoUmg2Uk9TS3RlQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNVg2aTJsaC1fMkU2eXNacUplN3VDTTZFZkhtMjhuTUZvWkxsNDBRSXExY2tiVXRHb09TaHgtREhzY3doZ0JYeC1TSTZ5eWZldXJsOWtfbV8yMi1aYkcyZ2pOY0haM0Ntb3VSWEtxUGVFRlNBfn4%3D&chksm=1f6354ba2814ddacf0184b24d310483641ef190b1faac098c285eb416c70017e2f54decfa1af#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png',
+ },
+ ],
+ },
+ updateTime: 1_673_628_760,
+ },
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-u9kTIm1DhWZDdXyxsxUVv2Z5DAB99IPxkIRTUUD206k',
+ content: {
+ newsItem: [
+ {
+ title: '12',
+ author: '333',
+ digest: '123',
+ content: '123',
+ contentSourceUrl: 'https://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qVVhpSDZUaFJWTzBBWWRVQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNWRnTDJWYmF2NER0clV1bThmQ0xUR3hqQnJkZ3BJSUNmNDJmc0lCZ1dadkVnZ3Z5bkN4YWtVUjhoaWZWYzZURUR4NnpMd0Y4Z3U5aUdib0lkMzI4Rjg3SG9JX2FycTMxbUctOHplaTlQVVhnfn4%3D&chksm=1f6354b62814dda076c778af33f06580165d8aa81f7798d55cfabb1886b5c74d9b2124a3535c#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg',
+ },
+ ],
+ },
+ updateTime: 1_673_626_494,
+ },
+ {
+ mediaId:
+ 'r6ryvl6LrxBU0miaST4Y-sO24upobaENDmeByfBTfaozB3aOqSMAV0lGy-UkHXE7',
+ content: {
+ newsItem: [
+ {
+ title: '我是标题',
+ author: '我是作者',
+ digest: '我是摘要',
+ content: '我是内容',
+ contentSourceUrl: 'https://www.iocoder.cn',
+ thumbMediaId:
+ 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn',
+ showCoverPic: 0,
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9LT2dqRnpMNUpsR0hjYWtBQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNGNmazZTdlE5WkxvU0tfX2V5cjV2WjJiR0xjQUhyREFSZWo2eWNrUW9EYVh6ZkpWRXBLR3FmTEV6YldBMno3Q2ZvVXBSdzlaVDc3aFhndEpQWUwzWmFMUWt0YVVURE1VZ1FsQTdPMlRtc3JBfn4%3D&chksm=1f6354aa2814ddbcc2637382f963a8742993ac38ebcebe6e3411df5ac82ac7bbdb391be6494a#rd',
+ thumbUrl:
+ 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png',
+ },
+ ],
+ },
+ updateTime: 1_673_534_279,
+ },
+ ],
+ total: 6,
+};
diff --git a/apps/web-ele/src/views/mp/draft/modules/cover-select.vue b/apps/web-ele/src/views/mp/draft/modules/cover-select.vue
new file mode 100644
index 000000000..f72cb7633
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/modules/cover-select.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
封面:
+
+
+
+
+
+
+ 本地上传
+
+
+ 素材库选择
+
+
+
+ 支持 bmp/png/jpeg/jpg/gif 格式,大小不超过 2M
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mp/draft/modules/draft-table.vue b/apps/web-ele/src/views/mp/draft/modules/draft-table.vue
new file mode 100644
index 000000000..46f6e7440
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/modules/draft-table.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mp/draft/modules/form.vue b/apps/web-ele/src/views/mp/draft/modules/form.vue
new file mode 100644
index 000000000..fde1c5e20
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/modules/form.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mp/draft/modules/news-form.vue b/apps/web-ele/src/views/mp/draft/modules/news-form.vue
new file mode 100644
index 000000000..73b15e3f7
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/modules/news-form.vue
@@ -0,0 +1,341 @@
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ news.title }}
+
+
+ moveDownNews(index)"
+ >
+
+
+ removeNews(index)"
+ >
+
+
+
+
+
+
+
{{ news.title }}
+
+
![]()
+
+
+
+ moveDownNews(index)"
+ >
+
+
+ moveUpNews(index)"
+ >
+
+
+ removeNews(index)"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 摘要:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-ele/src/views/mp/draft/modules/types.ts b/apps/web-ele/src/views/mp/draft/modules/types.ts
new file mode 100644
index 000000000..774e3a2cb
--- /dev/null
+++ b/apps/web-ele/src/views/mp/draft/modules/types.ts
@@ -0,0 +1,41 @@
+interface NewsItem {
+ title: string;
+ thumbMediaId: string;
+ author: string;
+ digest: string;
+ showCoverPic: number;
+ content: string;
+ contentSourceUrl: string;
+ needOpenComment: number;
+ onlyFansCanComment: number;
+ thumbUrl: string;
+ picUrl?: string; // 用于预览封面
+}
+
+interface NewsItemList {
+ newsItem: NewsItem[];
+}
+
+interface Article {
+ mediaId: string;
+ content: NewsItemList;
+ updateTime: number;
+}
+
+const createEmptyNewsItem = (): NewsItem => {
+ return {
+ title: '',
+ thumbMediaId: '',
+ author: '',
+ digest: '',
+ showCoverPic: 0,
+ content: '',
+ contentSourceUrl: '',
+ needOpenComment: 0,
+ onlyFansCanComment: 0,
+ thumbUrl: '',
+ };
+};
+
+export type { Article, NewsItem, NewsItemList };
+export { createEmptyNewsItem };