@qqt-product/system 0.0.1

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 (198) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.cjs +22 -0
  3. package/.prettierignore +4 -0
  4. package/.prettierrc.cjs +41 -0
  5. package/.vscode/extensions.json +3 -0
  6. package/README.md +16 -0
  7. package/dist/index.es.d.ts +1 -0
  8. package/dist/index.es.js +14234 -0
  9. package/dist/index.umd.js +311 -0
  10. package/dist/lib/components/QAccountList/src/QAccountList.vue.d.ts +143 -0
  11. package/dist/lib/components/QAccountList/src/useConfigData.d.ts +37 -0
  12. package/dist/lib/components/QBackgroundFileTaskList/src/QBackgroundFileTaskList.vue.d.ts +66 -0
  13. package/dist/lib/components/QBackgroundFileTaskList/src/useConfigData.d.ts +14 -0
  14. package/dist/lib/components/QCompanyermissionList/src/form.vue.d.ts +80 -0
  15. package/dist/lib/components/QCompanyermissionList/src/types.d.ts +44 -0
  16. package/dist/lib/components/QElsEmailSendLogList/src/QElsEmailSendLogList.vue.d.ts +68 -0
  17. package/dist/lib/components/QElsEmailSendLogList/src/useConfigData.d.ts +13 -0
  18. package/dist/lib/components/QElsMsgRecordList/src/QElsMsgRecordList.vue.d.ts +72 -0
  19. package/dist/lib/components/QElsMsgRecordList/src/useConfigData.d.ts +16 -0
  20. package/dist/lib/components/QElsTenantPortalNewsList/src/QElsTenantPortalNewsList.vue.d.ts +75 -0
  21. package/dist/lib/components/QI18nList/src/QI18nForm.vue.d.ts +47 -0
  22. package/dist/lib/components/QI18nList/src/QI18nList.vue.d.ts +136 -0
  23. package/dist/lib/components/QI18nList/src/useConfigData.d.ts +31 -0
  24. package/dist/lib/components/QImChatGroupList/src/QImChatGroupList.vue.d.ts +61 -0
  25. package/dist/lib/components/QImChatGroupList/src/useConfigData.d.ts +11 -0
  26. package/dist/lib/components/QMqRecordList/src/QMqRecordList.vue.d.ts +60 -0
  27. package/dist/lib/components/QMqRecordList/src/useConfigData.d.ts +12 -0
  28. package/dist/lib/components/QPasswordSecurityPolicy/src/QPasswordSecurityPolicy.vue.d.ts +49 -0
  29. package/dist/lib/components/QPermissionDataList/src/QPermissionDataAuth.vue.d.ts +3 -0
  30. package/dist/lib/components/QPermissionDataList/src/form.vue.d.ts +50 -0
  31. package/dist/lib/components/QPurchaseNoticeList/src/QPurchaseNoticeList.vue.d.ts +86 -0
  32. package/dist/lib/components/QPurchaseNoticeList/src/useConfigData.d.ts +15 -0
  33. package/dist/lib/components/QPurchaseNoticeTemplateList/src/QPurchaseNoticeTemplateList.vue.d.ts +47 -0
  34. package/dist/lib/components/QPurchaseNoticeTemplateList/src/useConfigData.d.ts +12 -0
  35. package/dist/lib/components/QQuartzJobList/src/QQuartzJobList.vue.d.ts +129 -0
  36. package/dist/lib/components/QQuartzJobList/src/components/JCron.vue.d.ts +23 -0
  37. package/dist/lib/components/QQuartzJobList/src/components/JCronModal.vue.d.ts +100 -0
  38. package/dist/lib/components/QQuartzJobList/src/components/QuartzJobModal.vue.d.ts +55 -0
  39. package/dist/lib/components/QQuartzJobList/src/useConfigData.d.ts +20 -0
  40. package/dist/lib/components/QRoleList/src/QRoleList.vue.d.ts +100 -0
  41. package/dist/lib/components/QRoleList/src/components/content-header/index.d.ts +23 -0
  42. package/dist/lib/components/QRoleList/src/components/userAuthorization/index.d.ts +79 -0
  43. package/dist/lib/components/QRoleList/src/useConfigData.d.ts +30 -0
  44. package/dist/lib/components/QSupplierAccountList/src/QSupplierAccountForm.vue.d.ts +55 -0
  45. package/dist/lib/components/QSupplierAccountList/src/QSupplierAccountList.vue.d.ts +104 -0
  46. package/dist/lib/components/QSupplierAccountList/src/useConfigData.d.ts +29 -0
  47. package/dist/lib/components/QUsageList/src/QUsageList.vue.d.ts +49 -0
  48. package/dist/lib/components/QUsageList/src/useConfigData.d.ts +14 -0
  49. package/dist/lib/components/QcustomConfigEdit/component/TempalePreviewModal.vue.d.ts +31 -0
  50. package/dist/lib/components/QcustomConfigEdit/component/dataFormatComponent.d.ts +46 -0
  51. package/dist/lib/components/QcustomConfigEdit/component/regexComponent.d.ts +41 -0
  52. package/dist/lib/components/QcustomConfigEdit/src/QcustomConfigRender.d.ts +12 -0
  53. package/dist/lib/components/QcustomConfigEdit/src/types.d.ts +61 -0
  54. package/dist/lib/components/QcustomConfigEdit/src/useConfigComputed.d.ts +7 -0
  55. package/dist/lib/components/QcustomConfigEdit/src/useConfigData.d.ts +85 -0
  56. package/dist/lib/components/QcustomConfigEdit/src/useConfigMethods.d.ts +16 -0
  57. package/dist/lib/components/QcustomConfigEdit/src/useConstant.d.ts +18 -0
  58. package/dist/lib/components/QcustomConfigList/component/ImportJsonCustomConfig.vue.d.ts +50 -0
  59. package/dist/lib/components/QcustomConfigList/src/QcustomConfigList.vue.d.ts +112 -0
  60. package/dist/lib/components/QcustomConfigList/src/useConfigData.d.ts +17 -0
  61. package/dist/lib/components/QcustomConfigList/src/useMethods.d.ts +15 -0
  62. package/dist/lib/components/QsysConfigList/src/QsysConfigList.vue.d.ts +66 -0
  63. package/dist/lib/components/QsysConfigList/src/useConfigData.d.ts +11 -0
  64. package/dist/lib/components/QsysConfigList/src/useMethods.d.ts +6 -0
  65. package/dist/lib/components/index.d.ts +39 -0
  66. package/dist/lib/components/integratedNodesList/src/index.vue.d.ts +107 -0
  67. package/dist/lib/components/integratedReportList/src/index.vue.d.ts +70 -0
  68. package/dist/lib/components/integratedReportSearchList/src/index.vue.d.ts +61 -0
  69. package/dist/lib/components/loginAbnormalLogList/src/index.vue.d.ts +46 -0
  70. package/dist/lib/components/loginLogList/src/index.vue.d.ts +45 -0
  71. package/dist/lib/components/loginSupplierLogList/src/index.vue.d.ts +45 -0
  72. package/dist/lib/components/operateLogList/src/index.vue.d.ts +53 -0
  73. package/dist/lib/index.d.ts +6 -0
  74. package/dist/lib/utils/global.hook.d.ts +31 -0
  75. package/dist/lib/utils/global.types.d.ts +41 -0
  76. package/dist/lib/utils/regexp.d.ts +27 -0
  77. package/dist/style.css +1 -0
  78. package/dist/vite-env.d.ts +13 -0
  79. package/dist/vite.svg +1 -0
  80. package/index.html +13 -0
  81. package/package.json +65 -0
  82. package/public/vite.svg +1 -0
  83. package/src/App.vue +8 -0
  84. package/src/lib/components/QAccountList/index.ts +6 -0
  85. package/src/lib/components/QAccountList/src/QAccountDetail.vue +191 -0
  86. package/src/lib/components/QAccountList/src/QAccountEdit.vue +241 -0
  87. package/src/lib/components/QAccountList/src/QAccountList.vue +530 -0
  88. package/src/lib/components/QAccountList/src/useConfigData.ts +53 -0
  89. package/src/lib/components/QBackgroundFileTaskList/index.ts +6 -0
  90. package/src/lib/components/QBackgroundFileTaskList/src/QBackgroundFileTaskList.vue +137 -0
  91. package/src/lib/components/QBackgroundFileTaskList/src/useConfigData.ts +20 -0
  92. package/src/lib/components/QCompanyermissionList/src/editTree.vue +291 -0
  93. package/src/lib/components/QCompanyermissionList/src/form.vue +238 -0
  94. package/src/lib/components/QCompanyermissionList/src/index.vue +309 -0
  95. package/src/lib/components/QCompanyermissionList/src/types.ts +44 -0
  96. package/src/lib/components/QElsEmailSendLogList/index.ts +6 -0
  97. package/src/lib/components/QElsEmailSendLogList/src/QElsEmailSendLogList.vue +166 -0
  98. package/src/lib/components/QElsEmailSendLogList/src/useConfigData.ts +19 -0
  99. package/src/lib/components/QElsMsgRecordList/index.ts +6 -0
  100. package/src/lib/components/QElsMsgRecordList/src/QElsMsgRecordDetail.vue +148 -0
  101. package/src/lib/components/QElsMsgRecordList/src/QElsMsgRecordList.vue +124 -0
  102. package/src/lib/components/QElsMsgRecordList/src/useConfigData.ts +22 -0
  103. package/src/lib/components/QElsTenantPortalNewsList/index.ts +6 -0
  104. package/src/lib/components/QElsTenantPortalNewsList/src/QElsTenantPortalNewsDetail.vue +139 -0
  105. package/src/lib/components/QElsTenantPortalNewsList/src/QElsTenantPortalNewsEdit.vue +196 -0
  106. package/src/lib/components/QElsTenantPortalNewsList/src/QElsTenantPortalNewsList.vue +122 -0
  107. package/src/lib/components/QElsTenantPortalNewsList/src/useConfigData.ts +20 -0
  108. package/src/lib/components/QI18nList/index.ts +6 -0
  109. package/src/lib/components/QI18nList/src/QI18nForm.vue +141 -0
  110. package/src/lib/components/QI18nList/src/QI18nList.vue +361 -0
  111. package/src/lib/components/QI18nList/src/useConfigData.ts +37 -0
  112. package/src/lib/components/QImChatGroupList/index.ts +6 -0
  113. package/src/lib/components/QImChatGroupList/src/QImChatGroupList.vue +94 -0
  114. package/src/lib/components/QImChatGroupList/src/useConfigData.ts +17 -0
  115. package/src/lib/components/QMqRecordList/index.ts +6 -0
  116. package/src/lib/components/QMqRecordList/src/QMqRecordList.vue +105 -0
  117. package/src/lib/components/QMqRecordList/src/useConfigData.ts +18 -0
  118. package/src/lib/components/QPasswordSecurityPolicy/index.ts +6 -0
  119. package/src/lib/components/QPasswordSecurityPolicy/src/QPasswordSecurityPolicy.vue +266 -0
  120. package/src/lib/components/QPermissionDataList/index.ts +6 -0
  121. package/src/lib/components/QPermissionDataList/src/QPermissionDataAuth.vue +3 -0
  122. package/src/lib/components/QPermissionDataList/src/QPermissionDataEdit.vue +221 -0
  123. package/src/lib/components/QPermissionDataList/src/QPermissionDataList.vue +117 -0
  124. package/src/lib/components/QPermissionDataList/src/form.vue +109 -0
  125. package/src/lib/components/QPurchaseNoticeList/index.ts +6 -0
  126. package/src/lib/components/QPurchaseNoticeList/src/QPurchaseNoticeDetail.vue +147 -0
  127. package/src/lib/components/QPurchaseNoticeList/src/QPurchaseNoticeEdit.vue +244 -0
  128. package/src/lib/components/QPurchaseNoticeList/src/QPurchaseNoticeList.vue +163 -0
  129. package/src/lib/components/QPurchaseNoticeList/src/useConfigData.ts +22 -0
  130. package/src/lib/components/QPurchaseNoticeTemplateList/index.ts +6 -0
  131. package/src/lib/components/QPurchaseNoticeTemplateList/src/QPurchaseNoticeTemplateList.vue +85 -0
  132. package/src/lib/components/QPurchaseNoticeTemplateList/src/useConfigData.ts +18 -0
  133. package/src/lib/components/QQuartzJobList/index.ts +6 -0
  134. package/src/lib/components/QQuartzJobList/src/QQuartzJobList.vue +263 -0
  135. package/src/lib/components/QQuartzJobList/src/components/JCron.vue +82 -0
  136. package/src/lib/components/QQuartzJobList/src/components/JCronModal.vue +985 -0
  137. package/src/lib/components/QQuartzJobList/src/components/QuartzJobModal.vue +176 -0
  138. package/src/lib/components/QQuartzJobList/src/useConfigData.ts +26 -0
  139. package/src/lib/components/QRoleList/index.ts +6 -0
  140. package/src/lib/components/QRoleList/src/QRoleList.vue +288 -0
  141. package/src/lib/components/QRoleList/src/components/content-header/contentHeader.less +31 -0
  142. package/src/lib/components/QRoleList/src/components/content-header/index.tsx +42 -0
  143. package/src/lib/components/QRoleList/src/components/userAuthorization/index.tsx +690 -0
  144. package/src/lib/components/QRoleList/src/components/userAuthorization/userAuthorization.less +97 -0
  145. package/src/lib/components/QRoleList/src/useConfigData.ts +33 -0
  146. package/src/lib/components/QSupplierAccountList/index.ts +6 -0
  147. package/src/lib/components/QSupplierAccountList/src/QSupplierAccountForm.vue +187 -0
  148. package/src/lib/components/QSupplierAccountList/src/QSupplierAccountList.vue +302 -0
  149. package/src/lib/components/QSupplierAccountList/src/useConfigData.ts +29 -0
  150. package/src/lib/components/QUsageList/index.ts +6 -0
  151. package/src/lib/components/QUsageList/src/QUsageList.vue +82 -0
  152. package/src/lib/components/QUsageList/src/useConfigData.ts +20 -0
  153. package/src/lib/components/QcustomConfigEdit/component/AddDictCodeModal.vue +140 -0
  154. package/src/lib/components/QcustomConfigEdit/component/TempalePreviewModal.vue +100 -0
  155. package/src/lib/components/QcustomConfigEdit/component/dataFormatComponent.tsx +100 -0
  156. package/src/lib/components/QcustomConfigEdit/component/regexComponent.tsx +71 -0
  157. package/src/lib/components/QcustomConfigEdit/index.ts +6 -0
  158. package/src/lib/components/QcustomConfigEdit/src/QcustomConfigEdit.vue +1807 -0
  159. package/src/lib/components/QcustomConfigEdit/src/QcustomConfigRender.tsx +242 -0
  160. package/src/lib/components/QcustomConfigEdit/src/types.ts +71 -0
  161. package/src/lib/components/QcustomConfigEdit/src/useConfigComputed.ts +75 -0
  162. package/src/lib/components/QcustomConfigEdit/src/useConfigData.ts +123 -0
  163. package/src/lib/components/QcustomConfigEdit/src/useConfigMethods.ts +117 -0
  164. package/src/lib/components/QcustomConfigEdit/src/useConstant.ts +301 -0
  165. package/src/lib/components/QcustomConfigEdit/style/index.less +41 -0
  166. package/src/lib/components/QcustomConfigList/component/ImportJsonCustomConfig.vue +135 -0
  167. package/src/lib/components/QcustomConfigList/index.ts +6 -0
  168. package/src/lib/components/QcustomConfigList/src/QcustomConfigList.vue +268 -0
  169. package/src/lib/components/QcustomConfigList/src/types.ts +1 -0
  170. package/src/lib/components/QcustomConfigList/src/useConfigData.ts +23 -0
  171. package/src/lib/components/QcustomConfigList/src/useMethods.ts +36 -0
  172. package/src/lib/components/QcustomConfigList/style/index.less +3 -0
  173. package/src/lib/components/QsysConfigList/index.ts +6 -0
  174. package/src/lib/components/QsysConfigList/src/QsysConfigList.vue +125 -0
  175. package/src/lib/components/QsysConfigList/src/types.ts +1 -0
  176. package/src/lib/components/QsysConfigList/src/useConfigData.ts +17 -0
  177. package/src/lib/components/QsysConfigList/src/useMethods.ts +11 -0
  178. package/src/lib/components/QsysConfigList/style/index.less +3 -0
  179. package/src/lib/components/index.ts +78 -0
  180. package/src/lib/components/integratedNodesList/src/QIntegratedNodesDetail.vue +49 -0
  181. package/src/lib/components/integratedNodesList/src/QIntegratedNodesEdit.vue +143 -0
  182. package/src/lib/components/integratedNodesList/src/index.vue +136 -0
  183. package/src/lib/components/integratedReportList/src/index.vue +86 -0
  184. package/src/lib/components/integratedReportSearchList/src/index.vue +66 -0
  185. package/src/lib/components/loginAbnormalLogList/src/index.vue +50 -0
  186. package/src/lib/components/loginLogList/src/index.vue +57 -0
  187. package/src/lib/components/loginSupplierLogList/src/index.vue +63 -0
  188. package/src/lib/components/operateLogList/src/index.vue +57 -0
  189. package/src/lib/index.ts +15 -0
  190. package/src/lib/utils/constant.ts +1 -0
  191. package/src/lib/utils/global.hook.ts +337 -0
  192. package/src/lib/utils/global.types.ts +49 -0
  193. package/src/lib/utils/regexp.ts +143 -0
  194. package/src/main.ts +11 -0
  195. package/src/vite-env.d.ts +13 -0
  196. package/tsconfig.json +24 -0
  197. package/tsconfig.node.json +9 -0
  198. package/vite.config.ts +61 -0
@@ -0,0 +1,148 @@
1
+ <template>
2
+ <div class="detail-page">
3
+ <q-detail-page-layout ref="layoutRef" v-bind="options"> </q-detail-page-layout>
4
+ </div>
5
+ </template>
6
+ <script setup lang="ts">
7
+ import { ref, reactive, inject } from 'vue'
8
+ import type { ComponentPublicInstance } from 'vue'
9
+ import type { GlobalPageLayoutTypes } from '@qqt-product/ui'
10
+ const srmI18n = inject('Q_SRM_I18N', (i18nKey: string, defaultValue: string, account?: string | number): string => {
11
+ if (i18nKey) {
12
+ if (account) {
13
+ return account + defaultValue
14
+ }
15
+ return defaultValue
16
+ }
17
+ return defaultValue
18
+ })
19
+
20
+ // 传参 props
21
+ const props = defineProps<{
22
+ currentRow: GlobalPageLayoutTypes.CurrentRow | null
23
+ userInfo: GlobalPageLayoutTypes.UserInfo
24
+ }>()
25
+
26
+ const currentRow = props.currentRow
27
+ ? props.currentRow
28
+ : ref({
29
+ templateNumber: '',
30
+ templateVersion: 0,
31
+ templateAccount: '',
32
+ busAccount: '',
33
+ elsAccount: '',
34
+ })
35
+
36
+ // 编辑组件 ref
37
+ const layoutRef = ref<ComponentPublicInstance | null>(null)
38
+
39
+ // 配置
40
+ const options = reactive<Partial<GlobalPageLayoutTypes.EditPageLayoutProps>>({
41
+ /**
42
+ * 模块业务类型 string
43
+ * 取值根据各模块配置
44
+ * 当定义为"custom"时,使用本地配置
45
+ */
46
+ businessType: 'custom',
47
+ // 布局模式
48
+ pattern: 'vertical',
49
+ // 当前已选行数据a
50
+ currentRow: currentRow as GlobalPageLayoutTypes.CurrentRow,
51
+ // 当前登录租户信息
52
+ userInfo: props.userInfo,
53
+ // 明细接口 -- 接口字符串
54
+ detailApi: '/message/elsMsgRecord/queryById',
55
+ // 本地页面数据配置
56
+ localConfig: {
57
+ groups: [
58
+ {
59
+ groupName: srmI18n('i18n_field_100100', '基本信息'),
60
+ groupCode: 'baseForm',
61
+ groupType: 'head',
62
+ },
63
+ ],
64
+ formFields: [
65
+ {
66
+ groupCode: 'baseForm',
67
+ sortOrder: '5',
68
+ fieldType: 'input',
69
+ fieldLabel: srmI18n('i18n_title_senderElsAccount', '订单号'),
70
+ fieldLabelI18nKey: 'i18n_field_orderNumber',
71
+ fieldName: 'sendElsAccount',
72
+ },
73
+ {
74
+ groupCode: 'baseForm',
75
+ sortOrder: '5',
76
+ fieldType: 'number',
77
+ fieldLabel: srmI18n('i18n_title_senderChildAccount', '发送人子账号'),
78
+ fieldLabelI18nKey: 'i18n_field_sendSubAccount',
79
+ fieldName: 'sendSubAccount',
80
+ },
81
+ {
82
+ groupCode: 'baseForm',
83
+ sortOrder: '5',
84
+ fieldType: 'input',
85
+ fieldLabel: srmI18n('i18n_title_sender', '发送人'),
86
+ fieldLabelI18nKey: 'i18n_field_sendName',
87
+ fieldName: 'sendName',
88
+ },
89
+ {
90
+ groupCode: 'baseForm',
91
+ sortOrder: '5',
92
+ fieldType: 'input',
93
+ fieldLabel: srmI18n('i18n_title_newsTitle', '消息标题'),
94
+ fieldLabelI18nKey: 'i18n_field_msgTitle',
95
+ fieldName: 'msgTitle',
96
+ },
97
+ {
98
+ groupCode: 'baseForm',
99
+ sortOrder: '5',
100
+ fieldType: 'customRender',
101
+ fieldLabel: srmI18n('i18n_title_newsContent', '消息内容'),
102
+ fieldLabelI18nKey: 'i18n_field_newsContent',
103
+ fieldName: 'msgContent',
104
+ },
105
+ {
106
+ groupCode: 'baseForm',
107
+ sortOrder: '5',
108
+ fieldType: 'input',
109
+ fieldLabel: srmI18n('i18n_field_businessType', '业务类型'),
110
+ fieldLabelI18nKey: 'i18n_field_businessType',
111
+ fieldName: 'businessType_dictText',
112
+ },
113
+ {
114
+ groupCode: 'baseForm',
115
+ sortOrder: '5',
116
+ fieldType: 'input',
117
+ fieldLabel: srmI18n('i18n_title_operateType', '操作类型'),
118
+ fieldLabelI18nKey: '',
119
+ fieldName: 'operateType_dictText',
120
+ },
121
+ {
122
+ groupCode: 'baseForm',
123
+ sortOrder: '5',
124
+ fieldType: 'input',
125
+ fieldLabel: srmI18n('i18n_title_sendTime', '发送时间'),
126
+ fieldLabelI18nKey: 'i18n_field_sendTime',
127
+ fieldName: 'sendTime',
128
+ },
129
+ {
130
+ groupCode: 'baseForm',
131
+ sortOrder: '5',
132
+ fieldType: 'input',
133
+ fieldLabel: srmI18n('i18n_field_handleFlag', '阅读状态'),
134
+ fieldLabelI18nKey: 'i18n_field_handleFlag',
135
+ fieldName: 'handleFlag_dictText',
136
+ },
137
+ {
138
+ groupCode: 'baseForm',
139
+ sortOrder: '5',
140
+ fieldType: 'input',
141
+ fieldLabel: srmI18n('i18n_title_sendTime', '阅读时间'),
142
+ fieldLabelI18nKey: 'i18n_field_handleTime',
143
+ fieldName: 'handleTime',
144
+ },
145
+ ],
146
+ },
147
+ })
148
+ </script>
@@ -0,0 +1,124 @@
1
+ <template>
2
+ <q-list-layout ref="listLayoutRef" v-if="!showEditPage" :pageData="pageData" :apiUrls="apiUrls" />
3
+ </template>
4
+
5
+ <script lang="ts">
6
+ //JS
7
+ import { defineComponent, reactive, inject } from 'vue'
8
+ //hook
9
+ import { useConfigData } from './useConfigData'
10
+ import { INJECT_HTTP, HttpClient, MapObjectNoneType } from '../../../utils/global.types'
11
+ import { message } from '@qqt-product/ui'
12
+ export default defineComponent({
13
+ name: 'QElsMsgRecordList',
14
+ props: {
15
+ userInfo: {
16
+ type: Object,
17
+ defalut: () => {
18
+ return {}
19
+ },
20
+ },
21
+ },
22
+ setup(props, { emit }) {
23
+ const srmI18n = inject('Q_SRM_I18N', (i18nKey: string, defaultValue: string, account?: string | number): string => {
24
+ if (i18nKey) {
25
+ if (account) {
26
+ return account + defaultValue
27
+ }
28
+ return defaultValue
29
+ }
30
+ return defaultValue
31
+ })
32
+ const { showEditPage, apiUrls, listLayoutRef } = useConfigData()
33
+ // const { userInfo } = toRefs(props)
34
+ // console.log('userInfos', userInfo)
35
+ //data
36
+ const pageData = reactive({
37
+ statusConfig: {
38
+ show: false,
39
+ },
40
+ optColumn: {
41
+ attrs: {},
42
+ extend: {},
43
+ optColumnList: [
44
+ {
45
+ type: 'view',
46
+ title: srmI18n('i18n_title_see', '查看'),
47
+ click: ({ row }) => {
48
+ emit('detail', row)
49
+ },
50
+ },
51
+ ],
52
+ },
53
+ buttonConfig: {
54
+ attrs: {},
55
+ extend: {},
56
+ buttons: [
57
+ { authorityCode: 'elsMsgRecord#ElsMsgRecord:readBatch', label: srmI18n('i18n_btn_IIZz_25b7aa44', '一键阅读'), icon: 'check', click: readBatch },
58
+ {
59
+ label: srmI18n('i18n_title_listCustom', '列自定义'),
60
+ icon: {
61
+ type: 'icon-Q-setting',
62
+ },
63
+ type: 'setting',
64
+ },
65
+ ],
66
+ },
67
+ queryConfig: {
68
+ attrs: {},
69
+ extend: {},
70
+ form: [
71
+ {
72
+ type: 'select',
73
+ label: srmI18n('i18n_field_businessType', '业务类型'),
74
+ dictCode: 'srmBusinessType',
75
+ fieldName: 'businessType',
76
+ },
77
+ {
78
+ type: 'select',
79
+ label: srmI18n('i18n_field_handleFlag', '阅读状态'),
80
+ fieldName: 'handleFlag',
81
+ dictCode: 'srmHandleFlag',
82
+ },
83
+ {
84
+ type: 'select',
85
+ label: srmI18n('i18n_title_operateType', '操作类型'),
86
+ fieldName: 'operateType',
87
+ dictCode: 'srmOperateType',
88
+ },
89
+ ],
90
+ formState: {},
91
+ },
92
+ pagerConfig: {},
93
+ })
94
+ const qHttp = inject(INJECT_HTTP) as HttpClient
95
+ //methods
96
+
97
+ function readBatch() {
98
+ let selectedRows = listLayoutRef.value.gridInstance.getCheckboxRecords()
99
+ if (selectedRows.length <= 0) {
100
+ message.warning(srmI18n('请勾选需一键阅读的消息行!', '请勾选需一键阅读的消息行!'))
101
+ return
102
+ }
103
+ let params = selectedRows.map((item: MapObjectNoneType) => item.id)
104
+ qHttp
105
+ .post({
106
+ url: apiUrls.value.readBatch,
107
+ data: params,
108
+ })
109
+ .then((res) => {
110
+ if (res.success) {
111
+ message.success(res.message)
112
+ listLayoutRef.value.fetchListData()
113
+ // this.$store.dispatch('updateMatTotal')
114
+ } else {
115
+ message.warning(res.message)
116
+ }
117
+ })
118
+ }
119
+
120
+ return { showEditPage, apiUrls, pageData, listLayoutRef }
121
+ },
122
+ })
123
+ </script>
124
+ <style scoped></style>
@@ -0,0 +1,22 @@
1
+ import { shallowRef, ref } from 'vue'
2
+ // import type { MapObjectNoneType } from './types'
3
+ // import { VxeTableInstance } from 'vxe-table'
4
+ // import type {}
5
+ export function useConfigData() {
6
+ //响应
7
+
8
+ const apiUrls = shallowRef({
9
+ list: '/message/elsMsgRecord/list',
10
+ columnsCode: 'MsgRecordList',
11
+ delete: '/message/elsMsgRecord/delete',
12
+ deleteBatch: '/message/elsMsgRecord/deleteBatch',
13
+ readBatch: '/message/elsMsgRecord/readBatch',
14
+ exportXlsUrl: 'message/elsMsgRecord/exportXls',
15
+ importExcelUrl: 'message/elsMsgRecord/importExcel',
16
+ })
17
+ const uploadShow = shallowRef<boolean>(false)
18
+ const showEditPage = shallowRef<boolean>(false)
19
+ const currentEditRow = ref({})
20
+ const listLayoutRef = ref()
21
+ return { apiUrls, showEditPage, currentEditRow, listLayoutRef, uploadShow }
22
+ }
@@ -0,0 +1,6 @@
1
+ import QElsTenantPortalNewsList from './src/QElsTenantPortalNewsList.vue'
2
+ import qqtUtils from '@qqt-product/utils'
3
+
4
+ export default qqtUtils.withInstall(QElsTenantPortalNewsList)
5
+
6
+ export { QElsTenantPortalNewsList }
@@ -0,0 +1,139 @@
1
+ <template>
2
+ <div class="detail-page">
3
+ <q-detail-page-layout ref="layoutRef" v-bind="options"> </q-detail-page-layout>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { ref, reactive, inject } from 'vue'
9
+ import type { ComponentPublicInstance } from 'vue'
10
+ import type { GlobalPageLayoutTypes } from '@qqt-product/ui'
11
+ const srmI18n = inject('Q_SRM_I18N', (i18nKey: string, defaultValue: string, account?: string | number): string => {
12
+ if (i18nKey) {
13
+ if (account) {
14
+ return account + defaultValue
15
+ }
16
+ return defaultValue
17
+ }
18
+ return defaultValue
19
+ })
20
+
21
+ // 传参 props
22
+ const props = defineProps<{
23
+ currentRow: GlobalPageLayoutTypes.CurrentRow | null
24
+ userInfo: GlobalPageLayoutTypes.UserInfo
25
+ }>()
26
+
27
+ const currentRow = props.currentRow
28
+ ? props.currentRow
29
+ : ref({
30
+ templateNumber: '',
31
+ templateVersion: 0,
32
+ templateAccount: '',
33
+ busAccount: '',
34
+ elsAccount: '',
35
+ })
36
+
37
+ // 编辑组件 ref
38
+ const layoutRef = ref<ComponentPublicInstance | null>(null)
39
+
40
+ // 配置
41
+ const options = reactive<Partial<GlobalPageLayoutTypes.EditPageLayoutProps>>({
42
+ /**
43
+ * 模块业务类型 string
44
+ * 取值根据各模块配置
45
+ * 当定义为"custom"时,使用本地配置
46
+ */
47
+ businessType: 'custom',
48
+ // 布局模式
49
+ pattern: 'vertical',
50
+ // 当前已选行数据a
51
+ currentRow: currentRow as GlobalPageLayoutTypes.CurrentRow,
52
+ // 当前登录租户信息
53
+ userInfo: props.userInfo,
54
+ // 明细接口 -- 接口字符串
55
+ detailApi: '/news/elsTenantPortalNews/queryById',
56
+ // 本地页面数据配置
57
+ localConfig: {
58
+ groups: [
59
+ {
60
+ groupName: '基本信息',
61
+ groupCode: 'baseForm',
62
+ groupType: 'head',
63
+ },
64
+ ],
65
+ formFields: [
66
+ {
67
+ groupCode: 'baseForm',
68
+ fieldType: 'input',
69
+ fieldLabel: srmI18n('i18n_field_subject', '标题'),
70
+ fieldName: 'portalNewsTitle',
71
+ placeholder: srmI18n('i18n_title_pleaseEnterTitle', '请输入标题'),
72
+ required: '1',
73
+ },
74
+ {
75
+ groupCode: 'baseForm',
76
+ fieldType: 'select',
77
+ fieldLabel: srmI18n('i18n_field_VQAc_307be9fb', '新闻类型'),
78
+ fieldName: 'portalNewsType',
79
+ placeholder: srmI18n('i18n_title_selectType', '请选择类型'),
80
+ dictCode: 'portalNewsType',
81
+ required: '1',
82
+ },
83
+ {
84
+ groupCode: 'baseForm',
85
+ fieldType: 'input',
86
+ fieldLabel: srmI18n('i18n_field_IBQIAc_db486758', '目标文件类型'),
87
+ fieldName: 'newsRedirectType',
88
+ placeholder: srmI18n('i18n_field_ViFIBQIAc_a9f7e04f', '请选择目标文件类型'),
89
+ dictCode: 'newsRedirectType',
90
+ },
91
+ {
92
+ groupCode: 'baseForm',
93
+ fieldType: 'input',
94
+ fieldLabel: srmI18n('i18n_field_IBnR_37a162a9', '目标地址'),
95
+ fieldName: 'linkUrl',
96
+ placeholder: srmI18n('i18n_title_enterAddress', '请输入地址'),
97
+ required: '1',
98
+ },
99
+ {
100
+ groupCode: 'baseForm',
101
+ fieldType: 'date',
102
+ fieldLabel: srmI18n('i18n_field_effectiveTime', '生效时间'),
103
+ fieldName: 'effectiveTime',
104
+ dataFormat: 'YYYY-MM-DD HH:mm:ss',
105
+ required: '1',
106
+ },
107
+ {
108
+ groupCode: 'baseForm',
109
+ fieldType: 'date',
110
+ fieldLabel: srmI18n('i18n_field_expiryTime', '失效时间'),
111
+ fieldName: 'expiryTime',
112
+ dataFormat: 'YYYY-MM-DD HH:mm:ss',
113
+ required: '1',
114
+ },
115
+ {
116
+ groupCode: 'baseForm',
117
+ fieldType: 'input',
118
+ fieldLabel: srmI18n('i18n_field_VQIy_307bc2d6', '新闻简介'),
119
+ fieldName: 'portalNewsIntro',
120
+ placeholder: srmI18n('i18n_title_enterDescribe', '请输入简介内容'),
121
+ },
122
+ {
123
+ groupCode: 'baseForm',
124
+ fieldType: 'image',
125
+ fieldLabel: srmI18n('i18n_title_thumbnail', '缩略图'),
126
+ fieldLabelI18nKey: 'i18n_field_AEWWWW_1d586064',
127
+ fieldName: 'portalNewsThumbnail',
128
+ dictCode: '',
129
+ defaultValue: '',
130
+ dataFormat: '',
131
+ alertMsg: '',
132
+ required: '0',
133
+ mobile: 1,
134
+ placeholder: '',
135
+ },
136
+ ],
137
+ },
138
+ })
139
+ </script>
@@ -0,0 +1,196 @@
1
+ <template>
2
+ <div class="edit-page">
3
+ <a-spin :spinning="customLoading">
4
+ <q-edit-page-layout ref="layoutRef" v-bind="options" @customSave="handleCustomSave" @validate-success="handleValidateSuccess" @refresh="handleRefresh"> </q-edit-page-layout>
5
+ </a-spin>
6
+ </div>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref, reactive, inject } from 'vue'
11
+ import type { ComponentPublicInstance } from 'vue'
12
+ import { BUTTON_SAVE } from '@qqt-product/ui'
13
+
14
+ // ui组件库 types
15
+ import type { GlobalPageLayoutTypes } from '@qqt-product/ui'
16
+ import { usePromiseStepHook, useRefInstanceHook } from '@qqt-product/ui'
17
+
18
+ const srmI18n = inject('Q_SRM_I18N', (i18nKey: string, defaultValue: string, account?: string | number): string => {
19
+ if (i18nKey) {
20
+ if (account) {
21
+ return account + defaultValue
22
+ }
23
+ return defaultValue
24
+ }
25
+ return defaultValue
26
+ })
27
+
28
+ // 传参 props
29
+ const props = defineProps<{
30
+ currentRow: GlobalPageLayoutTypes.CurrentRow | null
31
+ userInfo: GlobalPageLayoutTypes.UserInfo
32
+ }>()
33
+
34
+ const currentRow = props.currentRow
35
+ ? props.currentRow
36
+ : ref({
37
+ templateNumber: '',
38
+ templateVersion: 0,
39
+ templateAccount: '',
40
+ busAccount: '',
41
+ elsAccount: '',
42
+ })
43
+
44
+ // 编辑组件 ref
45
+ const layoutRef = ref<ComponentPublicInstance | null>(null)
46
+
47
+ // 配置
48
+ const options = reactive<Partial<GlobalPageLayoutTypes.EditPageLayoutProps>>({
49
+ /**
50
+ * 模块业务类型 string
51
+ * 取值根据各模块配置
52
+ * 当定义为"custom"时,使用本地配置
53
+ */
54
+ businessType: 'custom',
55
+ // 布局模式
56
+ pattern: 'vertical',
57
+ // 当前已选行数据a
58
+ currentRow: currentRow as GlobalPageLayoutTypes.CurrentRow,
59
+ refreshMethods(row?: GlobalPageLayoutTypes.CurrentRow) {
60
+ if (options.currentRow) {
61
+ options.currentRow =
62
+ row ||
63
+ Object.assign({}, options.currentRow, {
64
+ _t: +new Date(),
65
+ })
66
+ }
67
+ },
68
+ // 当前登录租户信息
69
+ userInfo: props.userInfo,
70
+ // 明细接口 -- 接口字符串
71
+ detailApi: '/news/elsTenantPortalNews/queryById',
72
+ // 本地页面数据配置
73
+ localConfig: {
74
+ groups: [
75
+ {
76
+ groupName: '基本信息',
77
+ groupCode: 'baseForm',
78
+ groupType: 'head',
79
+ },
80
+ ],
81
+ formFields: [
82
+ {
83
+ groupCode: 'baseForm',
84
+ fieldType: 'input',
85
+ fieldLabel: srmI18n('i18n_field_subject', '标题'),
86
+ fieldName: 'portalNewsTitle',
87
+ placeholder: srmI18n('i18n_title_pleaseEnterTitle', '请输入标题'),
88
+ required: '1',
89
+ },
90
+ {
91
+ groupCode: 'baseForm',
92
+ fieldType: 'select',
93
+ fieldLabel: srmI18n('i18n_field_VQAc_307be9fb', '新闻类型'),
94
+ fieldName: 'portalNewsType',
95
+ placeholder: srmI18n('i18n_title_selectType', '请选择类型'),
96
+ dictCode: 'portalNewsType',
97
+ required: '1',
98
+ },
99
+ {
100
+ groupCode: 'baseForm',
101
+ fieldType: 'input',
102
+ fieldLabel: srmI18n('i18n_field_IBQIAc_db486758', '目标文件类型'),
103
+ fieldName: 'newsRedirectType',
104
+ placeholder: srmI18n('i18n_field_ViFIBQIAc_a9f7e04f', '请选择目标文件类型'),
105
+ dictCode: 'newsRedirectType',
106
+ },
107
+ {
108
+ groupCode: 'baseForm',
109
+ fieldType: 'input',
110
+ fieldLabel: srmI18n('i18n_field_IBnR_37a162a9', '目标地址'),
111
+ fieldName: 'linkUrl',
112
+ placeholder: srmI18n('i18n_title_enterAddress', '请输入地址'),
113
+ required: '1',
114
+ },
115
+ {
116
+ groupCode: 'baseForm',
117
+ fieldType: 'date',
118
+ fieldLabel: srmI18n('i18n_field_effectiveTime', '生效时间'),
119
+ fieldName: 'effectiveTime',
120
+ dataFormat: 'YYYY-MM-DD HH:mm:ss',
121
+ required: '1',
122
+ },
123
+ {
124
+ groupCode: 'baseForm',
125
+ fieldType: 'date',
126
+ fieldLabel: srmI18n('i18n_field_expiryTime', '失效时间'),
127
+ fieldName: 'expiryTime',
128
+ dataFormat: 'YYYY-MM-DD HH:mm:ss',
129
+ required: '1',
130
+ },
131
+ {
132
+ groupCode: 'baseForm',
133
+ fieldType: 'input',
134
+ fieldLabel: srmI18n('i18n_field_VQIy_307bc2d6', '新闻简介'),
135
+ fieldName: 'portalNewsIntro',
136
+ placeholder: srmI18n('i18n_title_enterDescribe', '请输入简介内容'),
137
+ },
138
+ {
139
+ groupCode: 'baseForm',
140
+ fieldType: 'image',
141
+ fieldLabel: srmI18n('i18n_title_thumbnail', '缩略图'),
142
+ fieldLabelI18nKey: 'i18n_field_AEWWWW_1d586064',
143
+ fieldName: 'portalNewsThumbnail',
144
+ dictCode: '',
145
+ defaultValue: '',
146
+ dataFormat: '',
147
+ alertMsg: '',
148
+ required: '0',
149
+ mobile: 1,
150
+ placeholder: '',
151
+ },
152
+ ],
153
+ },
154
+ // 页面按钮
155
+ pageButtons: [
156
+ {
157
+ ...BUTTON_SAVE,
158
+ title: srmI18n('i18n_title_save', '保存'),
159
+ emit: true,
160
+ emitKey: 'customSave',
161
+ args: {
162
+ url: '/news/elsTenantPortalNews/add',
163
+ },
164
+ },
165
+ ],
166
+ })
167
+
168
+ // LocalConfig ts类型中,定义 pageButtons 为非必填项
169
+ // 所以, undefined 不能赋值为 PageButton[], 故此外需要 ts 断言
170
+ const pageButtons = options.pageButtons as GlobalPageLayoutTypes.PageButton[]
171
+ const refreshMethods = options.refreshMethods
172
+
173
+ const { pageData, layoutConfig, defaultValues } = useRefInstanceHook(layoutRef)
174
+ const { stepTriggerValidate, composeSave, customLoading } = usePromiseStepHook({ pageData, layoutConfig, defaultValues, pageButtons: ref(pageButtons), refreshMethods })
175
+
176
+ // 自定义保存
177
+ const handleCustomSave = () => {
178
+ stepTriggerValidate()
179
+ }
180
+
181
+ // 页面校验成功后执行下一步回调步骤
182
+ const handleValidateSuccess = (button: GlobalPageLayoutTypes.PageButton) => {
183
+ console.log('button :>> ', button)
184
+ if (button.key === BUTTON_SAVE.key) {
185
+ composeSave()
186
+ }
187
+ }
188
+
189
+ // 页面刷新
190
+ const handleRefresh = () => {
191
+ console.log('refresh :>> ')
192
+ if (options.currentRow) {
193
+ options.currentRow._t = +new Date()
194
+ }
195
+ }
196
+ </script>