@cmstops/pro-compo 3.9.1-rc.10 → 3.9.1-rc.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +134 -134
  2. package/es/docHistory/style/index.less +37 -37
  3. package/es/index.js +1 -0
  4. package/es/selectAddTo/component.js +127 -0
  5. package/es/selectAddTo/component.vue_vue_type_style_index_0_scoped_true_lang.js +2 -0
  6. package/es/selectAddTo/components/ViewAllColumn/MediaFilter/index.js +169 -0
  7. package/es/selectAddTo/components/ViewAllColumn/index.js +211 -0
  8. package/es/selectAddTo/components/ViewAllColumn/index.vue_vue_type_style_index_0_scoped_true_lang.js +2 -0
  9. package/es/selectAddTo/components/ViewAllColumn/script/useTableColumns.js +102 -0
  10. package/es/selectAddTo/components/ViewAllColumn/script/useViewAllColumnState.js +195 -0
  11. package/es/selectAddTo/index.js +7 -0
  12. package/es/selectAddTo/script/api.js +30 -0
  13. package/es/selectAddTo/script/useSelectAddToState.js +106 -0
  14. package/es/selectAddTo/style/css.js +1 -0
  15. package/es/selectAddTo/style/index.css +3 -0
  16. package/es/selectAddTo/style/index.js +1 -0
  17. package/es/selectAddTo/style/index.less +3 -0
  18. package/es/selectResourceModal/components/List/ListLocal/index.js +1 -1
  19. package/es/selectResourceModal/style/index.less +55 -55
  20. package/es/selectResourceModal/style/list.less +203 -203
  21. package/es/style.css +57 -0
  22. package/es/typeIcons/component.js +1 -1
  23. package/lib/docHistory/style/index.less +37 -37
  24. package/lib/index.js +2 -0
  25. package/lib/selectAddTo/component.js +128 -0
  26. package/lib/selectAddTo/component.vue_vue_type_style_index_0_scoped_true_lang.js +3 -0
  27. package/lib/selectAddTo/components/ViewAllColumn/MediaFilter/index.js +170 -0
  28. package/lib/selectAddTo/components/ViewAllColumn/index.js +212 -0
  29. package/lib/selectAddTo/components/ViewAllColumn/index.vue_vue_type_style_index_0_scoped_true_lang.js +3 -0
  30. package/lib/selectAddTo/components/ViewAllColumn/script/useTableColumns.js +108 -0
  31. package/lib/selectAddTo/components/ViewAllColumn/script/useViewAllColumnState.js +197 -0
  32. package/lib/selectAddTo/index.js +8 -0
  33. package/lib/selectAddTo/script/api.js +35 -0
  34. package/lib/selectAddTo/script/useSelectAddToState.js +108 -0
  35. package/lib/selectAddTo/style/css.js +2 -0
  36. package/lib/selectAddTo/style/index.css +3 -0
  37. package/lib/selectAddTo/style/index.js +2 -0
  38. package/lib/selectAddTo/style/index.less +3 -0
  39. package/lib/selectResourceModal/components/List/ListLocal/index.js +1 -1
  40. package/lib/selectResourceModal/style/index.less +55 -55
  41. package/lib/selectResourceModal/style/list.less +203 -203
  42. package/lib/typeIcons/component.js +1 -1
  43. package/package.json +138 -138
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ var vue = require("vue");
4
+ var webVue = require("@arco-design/web-vue");
5
+ var config = require("../../../../config.js");
6
+ var api = require("../../../script/api.js");
7
+ var batch = require("../../../../hooks/batch.js");
8
+ const useViewAllColumnState = (props, emit) => {
9
+ const _maxSelect = props.maxSelect || 100;
10
+ const selectedData = vue.ref([]);
11
+ const mediaFileData = vue.ref([]);
12
+ const filter = vue.ref(null);
13
+ const dataLoading = vue.ref(false);
14
+ const group_id = vue.ref(0);
15
+ const page = vue.ref({
16
+ index: 1,
17
+ size: 30,
18
+ total: 0
19
+ });
20
+ const tempSelectedData = vue.computed(() => props.defaultSelectedData || []);
21
+ vue.watch(
22
+ () => tempSelectedData.value,
23
+ (val) => {
24
+ selectedData.value = val;
25
+ }
26
+ );
27
+ const importantBanner = vue.computed(() => {
28
+ if (!props.banner || props.banner === "all")
29
+ return false;
30
+ return !!props.banner;
31
+ });
32
+ const { isItemChecked, tableCellMouseEnter, tableCellMouseLeave } = batch();
33
+ const selectTableCell = (record) => {
34
+ if (props.typeKey === "series:special_v3" ? record.isLeaf && record.parentId : true) {
35
+ selectData(record);
36
+ }
37
+ };
38
+ const selectTableAll = (checked) => {
39
+ if (checked) {
40
+ selectedData.value = [];
41
+ mediaFileData.value.forEach((item) => selectData(item));
42
+ } else {
43
+ selectedData.value = [];
44
+ }
45
+ emitChange();
46
+ };
47
+ const selectData = (record) => {
48
+ if (importantBanner.value) {
49
+ const { cover } = record;
50
+ if (!(cover == null ? void 0 : cover.banner)) {
51
+ return webVue.Message.warning({ content: "\u8BE5\u5185\u5BB9\u4E0D\u5177\u5907\u72EC\u7ACB\u8F6E\u64AD\u56FE" });
52
+ }
53
+ }
54
+ addDataToSelectedList(record);
55
+ return true;
56
+ };
57
+ const addDataToSelectedList = async (record) => {
58
+ const index = selectedData.value.findIndex((v) => v.id === record.id);
59
+ if (selectedData.value.length < _maxSelect) {
60
+ if (index === -1) {
61
+ selectedData.value.push(record);
62
+ } else {
63
+ selectedData.value.splice(index, 1);
64
+ }
65
+ emitChange();
66
+ } else {
67
+ if (index === -1) {
68
+ selectedData.value.splice(selectedData.value.length - 1, 1);
69
+ selectedData.value.push(record);
70
+ } else {
71
+ selectedData.value.splice(index, 1);
72
+ }
73
+ emitChange();
74
+ }
75
+ };
76
+ const emitChange = () => {
77
+ emit("change", selectedData.value);
78
+ };
79
+ const search = (_filter) => {
80
+ var _a;
81
+ _filter = { ..._filter };
82
+ const where = [];
83
+ _filter.precise_kw && where.push(`precise_kw:${_filter.precise_kw}`);
84
+ _filter.keywords && where.push(`kw:${_filter.keywords}`);
85
+ _filter.type && where.push(`series:${_filter.type}`);
86
+ _filter.state && where.push(`state:${_filter.state}`);
87
+ _filter.cover_type && where.push(`cover_type:${_filter.cover_type}`);
88
+ _filter.banner && where.push(`banner:${_filter.banner}`);
89
+ if (((_a = _filter.publish_date) == null ? void 0 : _a.length) === 2) {
90
+ where.push(`publish_from:${_filter.publish_date[0] / 1e3}`);
91
+ where.push(`publish_to:${_filter.publish_date[1] / 1e3}`);
92
+ }
93
+ _filter.where = where;
94
+ filter.value = _filter;
95
+ page.value.index = 1;
96
+ loadData();
97
+ };
98
+ const pageChangeHandle = (index) => {
99
+ page.value.index = index;
100
+ loadData();
101
+ };
102
+ vue.watch(
103
+ () => group_id.value,
104
+ () => {
105
+ page.value.index = 1;
106
+ loadData();
107
+ }
108
+ );
109
+ const loadData = async () => {
110
+ var _a, _b;
111
+ const params = {
112
+ limit: page.value.size,
113
+ offset: page.value.size * (page.value.index - 1),
114
+ where: ["state:15|19"]
115
+ };
116
+ params.where.push(props.typeKey);
117
+ if (filter.value) {
118
+ const _filter = filter.value;
119
+ params.order = _filter.order;
120
+ params.sort = _filter.sort;
121
+ if (_filter.where) {
122
+ params.where = [...params.where, ..._filter.where];
123
+ }
124
+ }
125
+ params.where = params.where.join(",");
126
+ dataLoading.value = true;
127
+ try {
128
+ let response;
129
+ if (props.typeKey && props.typeKey !== "ZQ") {
130
+ response = await api.getCategoryMediaNew(config.DEFAULT_BASE_API, params);
131
+ } else {
132
+ params.keyword = ((_a = filter.value) == null ? void 0 : _a.precise_kw) || ((_b = filter.value) == null ? void 0 : _b.keywords) || "";
133
+ params.state = 2;
134
+ response = await api.getPoliticals(config.DEFAULT_BASE_API, params);
135
+ }
136
+ const { code, message } = response;
137
+ if (code === 0) {
138
+ mediaFileData.value = (message.data || message.datas).map((v) => ({
139
+ ...v,
140
+ catalog: "doc",
141
+ target_id: v.id,
142
+ target_type: 3,
143
+ pub_time: v.pub_time || v.created_at,
144
+ update_time: v.updated_at,
145
+ pub_user_alias: v.author_alias,
146
+ key: v.id,
147
+ isLeaf: props.typeKey !== "series:special_v3"
148
+ }));
149
+ page.value.total = message.total || message.count;
150
+ }
151
+ } catch (error) {
152
+ console.error("Failed to load data:", error);
153
+ } finally {
154
+ dataLoading.value = false;
155
+ }
156
+ };
157
+ const loadMore = async (record, done) => {
158
+ try {
159
+ const res = await api.getMlists(config.DEFAULT_BASE_API, {
160
+ rid: props.rid,
161
+ gid: record.special_id
162
+ });
163
+ setTimeout(() => {
164
+ done(
165
+ res.message.map((item) => ({
166
+ ...item,
167
+ isLeaf: true,
168
+ key: item.id,
169
+ parentName: record.title,
170
+ parentId: record.id
171
+ }))
172
+ );
173
+ }, 2e3);
174
+ } catch (error) {
175
+ console.error("Failed to load more data:", error);
176
+ done([]);
177
+ }
178
+ };
179
+ return {
180
+ selectedData,
181
+ mediaFileData,
182
+ filter,
183
+ dataLoading,
184
+ group_id,
185
+ page,
186
+ isItemChecked,
187
+ tableCellMouseEnter,
188
+ tableCellMouseLeave,
189
+ selectTableCell,
190
+ selectTableAll,
191
+ search,
192
+ pageChangeHandle,
193
+ loadData,
194
+ loadMore
195
+ };
196
+ };
197
+ exports.useViewAllColumnState = useViewAllColumnState;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var component = require("./component.js");
3
+ const selectAddTo = Object.assign(component, {
4
+ install: (app) => {
5
+ app.component(component.name, component);
6
+ }
7
+ });
8
+ module.exports = selectAddTo;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ var request = require("../../utils/request.js");
4
+ function getCategoryMediaNew(BASE_API, params) {
5
+ return request(BASE_API, {
6
+ url: `/poplar/v3/s/documents`,
7
+ method: "get",
8
+ params
9
+ });
10
+ }
11
+ function getPoliticals(BASE_API, params) {
12
+ return request(BASE_API, {
13
+ url: "/poplar/v2/politics/list",
14
+ method: "get",
15
+ params
16
+ });
17
+ }
18
+ function getMlists(BASE_API, params) {
19
+ return request(BASE_API, {
20
+ url: `/poplar/v2/mlists`,
21
+ method: "get",
22
+ params
23
+ });
24
+ }
25
+ function getConfigurationNew(BASE_API, params) {
26
+ return request(BASE_API, {
27
+ url: "/poplar/v2/configuration",
28
+ method: "get",
29
+ params
30
+ });
31
+ }
32
+ exports.getCategoryMediaNew = getCategoryMediaNew;
33
+ exports.getConfigurationNew = getConfigurationNew;
34
+ exports.getMlists = getMlists;
35
+ exports.getPoliticals = getPoliticals;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ var vue = require("vue");
4
+ var api = require("./api.js");
5
+ var config = require("../../config.js");
6
+ var user = require("../../hooks/user.js");
7
+ const useSelectAddToState = (props, emit) => {
8
+ const BASE_API = props.BASE_API || config.DEFAULT_BASE_API;
9
+ const visible = vue.computed({
10
+ get() {
11
+ return props.visible;
12
+ },
13
+ set(value) {
14
+ setVisible(value);
15
+ }
16
+ });
17
+ const selectedData = vue.ref([]);
18
+ const configData = vue.ref({});
19
+ const { userInfo, getUserInfoHandle } = user["default"](BASE_API);
20
+ const title = vue.computed(() => {
21
+ const titleMap = {
22
+ "series:video_album": "\u6DFB\u52A0\u81F3\u89C6\u9891\u5408\u96C6",
23
+ "series:special_v3": "\u6DFB\u52A0\u81F3\u4E13\u9898",
24
+ "series:audio_album": "\u6DFB\u52A0\u81F3\u97F3\u9891\u5408\u96C6",
25
+ "series:article_album": "\u6DFB\u52A0\u81F3\u653F\u60C5\u4EBA\u7269\u76F8\u5173\u62A5\u9053"
26
+ };
27
+ return titleMap[props.typeKey || ""] || "";
28
+ });
29
+ const hasSelected = vue.computed(() => selectedData.value.length > 0);
30
+ const typeDataController = vue.computed(() => {
31
+ if (!props.typeData)
32
+ return {};
33
+ try {
34
+ return JSON.parse(JSON.stringify(props.typeData));
35
+ } catch (e) {
36
+ console.warn("Failed to parse typeData:", e);
37
+ return {};
38
+ }
39
+ });
40
+ const setVisible = (bool) => {
41
+ emit("update:visible", bool);
42
+ };
43
+ const selectedDataChangeHandle = (data) => {
44
+ selectedData.value = data;
45
+ };
46
+ const handleOk = () => {
47
+ setVisible(false);
48
+ };
49
+ const handleCancel = () => {
50
+ setVisible(false);
51
+ };
52
+ const comfirm = () => {
53
+ emit("comfirm", JSON.parse(JSON.stringify(selectedData.value)));
54
+ };
55
+ const HandleOpen = () => {
56
+ selectedData.value = props.defaultSelectedData || [];
57
+ };
58
+ const HandleClose = () => {
59
+ selectedData.value = [];
60
+ };
61
+ const tabsChange = () => {
62
+ selectedData.value = [];
63
+ };
64
+ const loadConfig = async () => {
65
+ var _a;
66
+ try {
67
+ const res = await api.getConfigurationNew(BASE_API, {
68
+ module: "third_party_services"
69
+ });
70
+ if (res.code === 0 && ((_a = res.message) == null ? void 0 : _a.length)) {
71
+ res.message.forEach((item) => {
72
+ configData.value[item.key] = JSON.parse(item.value);
73
+ });
74
+ }
75
+ } catch (error) {
76
+ console.error("Failed to load configuration:", error);
77
+ }
78
+ };
79
+ const checkServiceEnable = (key) => {
80
+ const data = configData.value[key];
81
+ if (!data)
82
+ return false;
83
+ if (!data.enable && typeof data.enable !== "undefined")
84
+ return false;
85
+ return true;
86
+ };
87
+ return {
88
+ visible,
89
+ title,
90
+ selectedData,
91
+ hasSelected,
92
+ typeDataController,
93
+ userInfo,
94
+ configData,
95
+ setVisible,
96
+ selectedDataChangeHandle,
97
+ handleOk,
98
+ handleCancel,
99
+ comfirm,
100
+ HandleOpen,
101
+ HandleClose,
102
+ tabsChange,
103
+ loadConfig,
104
+ checkServiceEnable,
105
+ getUserInfoHandle
106
+ };
107
+ };
108
+ exports.useSelectAddToState = useSelectAddToState;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ require("./index.css");
@@ -0,0 +1,3 @@
1
+ .select-add-to {
2
+ display: inline-block;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ require("./index.less");
@@ -0,0 +1,3 @@
1
+ .select-add-to {
2
+ display: inline-block;
3
+ }
@@ -79,7 +79,7 @@ const _sfc_main = vue.defineComponent({
79
79
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
80
80
  key: item.sig_id
81
81
  }, [
82
- vue.createCommentVNode(" \r\n onOptions \u7528\u4E8E\u5904\u7406\u5361\u7247\u91CC\u5916\u90E8\u4E0D\u80FD\u6355\u83B7\u7684\u64CD\u4F5C\r\n 1. \u6BD4\u5982\u5916\u90E8\u65E0\u6CD5\u5904\u7406\u9700\u8981\u91CD\u65B0\u4E0A\u4F20/\u8F6C\u7801/\u5220\u9664\u7684\u903B\u8F91 \r\n 2. \u90A3\u4E48\u5C31\u5C06\u5904\u7406\u7684\u65B9\u6CD5\u4E5F\u4E00\u540C\u629B\u51FA\uFF0C\u7531\u5916\u90E8\u8C03\u7528\r\n "),
82
+ vue.createCommentVNode(" \n onOptions \u7528\u4E8E\u5904\u7406\u5361\u7247\u91CC\u5916\u90E8\u4E0D\u80FD\u6355\u83B7\u7684\u64CD\u4F5C\n 1. \u6BD4\u5982\u5916\u90E8\u65E0\u6CD5\u5904\u7406\u9700\u8981\u91CD\u65B0\u4E0A\u4F20/\u8F6C\u7801/\u5220\u9664\u7684\u903B\u8F91 \n 2. \u90A3\u4E48\u5C31\u5C06\u5904\u7406\u7684\u65B9\u6CD5\u4E5F\u4E00\u540C\u629B\u51FA\uFF0C\u7531\u5916\u90E8\u8C03\u7528\n "),
83
83
  vue.renderSlot(_ctx.$slots, "item", {
84
84
  item,
85
85
  onOptions: handleOptions
@@ -1,55 +1,55 @@
1
- @import './listSelected.less';
2
- @import './listCardWrapper.less';
3
- @import './list.less';
4
-
5
- .resource-select-wrap {
6
- width: 100%;
7
- height: 100%;
8
- }
9
-
10
- .resource-select-modal-body {
11
- height: 80vh;
12
- padding: 0;
13
- }
14
-
15
- .resource-select-main {
16
- height: 100%;
17
- }
18
-
19
- .resource-select-drawer {
20
- .arco-drawer-body {
21
- box-sizing: border-box;
22
- padding: 0;
23
- overflow: hidden;
24
- }
25
- }
26
-
27
- .resource-select-container {
28
- display: flex;
29
- flex-direction: column;
30
- gap: 10px;
31
- box-sizing: border-box;
32
- height: 100%;
33
-
34
- // 头部 tab 样式
35
- .resource-select-header {
36
- padding: 10px 24px 0 24px;
37
-
38
- .arco-tabs-nav::before {
39
- display: none;
40
- }
41
-
42
- .arco-tabs-content {
43
- display: none !important;
44
- }
45
- }
46
-
47
- // 内容区域样式
48
- .resource-list-content {
49
- .resource-list-content-empty {
50
- box-sizing: border-box;
51
- width: 100%;
52
- height: 100%;
53
- }
54
- }
55
- }
1
+ @import './listSelected.less';
2
+ @import './listCardWrapper.less';
3
+ @import './list.less';
4
+
5
+ .resource-select-wrap {
6
+ width: 100%;
7
+ height: 100%;
8
+ }
9
+
10
+ .resource-select-modal-body {
11
+ height: 80vh;
12
+ padding: 0;
13
+ }
14
+
15
+ .resource-select-main {
16
+ height: 100%;
17
+ }
18
+
19
+ .resource-select-drawer {
20
+ .arco-drawer-body {
21
+ box-sizing: border-box;
22
+ padding: 0;
23
+ overflow: hidden;
24
+ }
25
+ }
26
+
27
+ .resource-select-container {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: 10px;
31
+ box-sizing: border-box;
32
+ height: 100%;
33
+
34
+ // 头部 tab 样式
35
+ .resource-select-header {
36
+ padding: 10px 24px 0 24px;
37
+
38
+ .arco-tabs-nav::before {
39
+ display: none;
40
+ }
41
+
42
+ .arco-tabs-content {
43
+ display: none !important;
44
+ }
45
+ }
46
+
47
+ // 内容区域样式
48
+ .resource-list-content {
49
+ .resource-list-content-empty {
50
+ box-sizing: border-box;
51
+ width: 100%;
52
+ height: 100%;
53
+ }
54
+ }
55
+ }