gcs-ui-lib 1.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 (231) hide show
  1. package/.env.development +5 -0
  2. package/.env.production +7 -0
  3. package/.eslintrc.js +5 -0
  4. package/README.md +97 -0
  5. package/_webpack.config.js +135 -0
  6. package/babel.config.js +16 -0
  7. package/lib/demo.html +10 -0
  8. package/lib/fonts/SIMSUN.5e0c362c.5e0c362c.ttf +0 -0
  9. package/lib/fonts/element-icons.535877f5.535877f5.woff +0 -0
  10. package/lib/fonts/element-icons.732389de.732389de.ttf +0 -0
  11. package/lib/fonts/iconfont.09d221ee.09d221ee.woff +0 -0
  12. package/lib/fonts/iconfont.1c4bfacc.1c4bfacc.ttf +0 -0
  13. package/lib/fonts/iconfont.a6f34dc7.a6f34dc7.woff2 +0 -0
  14. package/lib/fonts/iconfont.f4c32765.f4c32765.ttf +0 -0
  15. package/lib/gcs-ui-lib.common.js +106776 -0
  16. package/lib/gcs-ui-lib.css +3 -0
  17. package/lib/gcs-ui-lib.umd.js +106786 -0
  18. package/lib/gcs-ui-lib.umd.min.js +330 -0
  19. package/lib/img/bankbackground(1).e1f6e40f.jpg +0 -0
  20. package/lib/img/busibackground(2).7e09bf1f.jpg +0 -0
  21. package/lib/img/document.193a282d.svg +8 -0
  22. package/lib/img/folder.8e019792.svg +9 -0
  23. package/lib/img/icon.fc86764f.gif +0 -0
  24. package/npm +1 -0
  25. package/package.json +101 -0
  26. package/packages/AutoFillDetail/index.js +7 -0
  27. package/packages/AutoFillDetail/src/components/fillDetail.vue +188 -0
  28. package/packages/AutoFillDetail/src/demo/index.vue +18 -0
  29. package/packages/AutoFillDetail/src/main.vue +283 -0
  30. package/packages/AutoFillDetection/index.js +7 -0
  31. package/packages/AutoFillDetection/src/components/FillInfo.vue +36 -0
  32. package/packages/AutoFillDetection/src/components/HandEntred.vue +226 -0
  33. package/packages/AutoFillDetection/src/components/RuleHit.vue +105 -0
  34. package/packages/AutoFillDetection/src/components/SelectEntries.vue +192 -0
  35. package/packages/AutoFillDetection/src/components/config.js +359 -0
  36. package/packages/AutoFillDetection/src/demo/index.vue +18 -0
  37. package/packages/AutoFillDetection/src/main.vue +130 -0
  38. package/packages/AutoFillList/index.js +7 -0
  39. package/packages/AutoFillList/src/components/ImportRules.vue +407 -0
  40. package/packages/AutoFillList/src/components/ImportRulesDialog.vue +40 -0
  41. package/packages/AutoFillList/src/components/config.js +616 -0
  42. package/packages/AutoFillList/src/demo/index.vue +28 -0
  43. package/packages/AutoFillList/src/main.vue +559 -0
  44. package/packages/AutoFillRuleHistory/index.js +7 -0
  45. package/packages/AutoFillRuleHistory/src/demo/index.vue +23 -0
  46. package/packages/AutoFillRuleHistory/src/main.vue +422 -0
  47. package/packages/AutoFillService/index.js +7 -0
  48. package/packages/AutoFillService/src/components/BudgetAccountDialogForSetting.vue +588 -0
  49. package/packages/AutoFillService/src/components/BudgetAccountSettingDialog.vue +377 -0
  50. package/packages/AutoFillService/src/components/ConditionGroup.vue +413 -0
  51. package/packages/AutoFillService/src/components/CustomInput.vue +191 -0
  52. package/packages/AutoFillService/src/components/FillComponent.vue +371 -0
  53. package/packages/AutoFillService/src/components/SelectBudgetAccountDialog.vue +161 -0
  54. package/packages/AutoFillService/src/components/SelectDialog.vue +211 -0
  55. package/packages/AutoFillService/src/components/basic.vue +308 -0
  56. package/packages/AutoFillService/src/components/config.js +549 -0
  57. package/packages/AutoFillService/src/components/fillDetail.vue +145 -0
  58. package/packages/AutoFillService/src/components/fillRules.vue +787 -0
  59. package/packages/AutoFillService/src/components/paymentCategory.vue +297 -0
  60. package/packages/AutoFillService/src/components/paymentCategoryT.vue +292 -0
  61. package/packages/AutoFillService/src/customTemplate/FillBigDecimal.vue +50 -0
  62. package/packages/AutoFillService/src/customTemplate/FillDate.vue +54 -0
  63. package/packages/AutoFillService/src/customTemplate/FillInput.vue +33 -0
  64. package/packages/AutoFillService/src/customTemplate/FillMultiSelect.vue +70 -0
  65. package/packages/AutoFillService/src/customTemplate/FillSelect.vue +72 -0
  66. package/packages/AutoFillService/src/demo/index.vue +30 -0
  67. package/packages/AutoFillService/src/main.vue +432 -0
  68. package/packages/Bank/index.js +7 -0
  69. package/packages/Bank/src/demo/index.vue +18 -0
  70. package/packages/Bank/src/main.vue +70 -0
  71. package/packages/BranchBank/index.js +7 -0
  72. package/packages/BranchBank/src/demo/index.vue +18 -0
  73. package/packages/BranchBank/src/main.vue +97 -0
  74. package/packages/ConfigurableForm/index.js +7 -0
  75. package/packages/ConfigurableForm/src/components/config.js +63 -0
  76. package/packages/ConfigurableForm/src/components/detail.vue +158 -0
  77. package/packages/ConfigurableForm/src/demo/index.vue +279 -0
  78. package/packages/ConfigurableForm/src/main.vue +529 -0
  79. package/packages/DynamicForm/index.js +7 -0
  80. package/packages/DynamicForm/src/components/Amount.vue +51 -0
  81. package/packages/DynamicForm/src/components/AmountRange.vue +76 -0
  82. package/packages/DynamicForm/src/components/CheckboxGroup.vue +63 -0
  83. package/packages/DynamicForm/src/components/DMY.vue +126 -0
  84. package/packages/DynamicForm/src/components/Date.vue +51 -0
  85. package/packages/DynamicForm/src/components/DateRange.vue +51 -0
  86. package/packages/DynamicForm/src/components/Dialog.vue +247 -0
  87. package/packages/DynamicForm/src/components/Input.vue +48 -0
  88. package/packages/DynamicForm/src/components/InputNumber.vue +69 -0
  89. package/packages/DynamicForm/src/components/InputNumberRange.vue +47 -0
  90. package/packages/DynamicForm/src/components/LazySelect.vue +311 -0
  91. package/packages/DynamicForm/src/components/RadioGroup.vue +43 -0
  92. package/packages/DynamicForm/src/components/Rate.vue +57 -0
  93. package/packages/DynamicForm/src/components/Select.vue +307 -0
  94. package/packages/DynamicForm/src/components/Switch.vue +32 -0
  95. package/packages/DynamicForm/src/components/Textarea.vue +58 -0
  96. package/packages/DynamicForm/src/components/TimeSelect.vue +61 -0
  97. package/packages/DynamicForm/src/components/unitTreeSelect.vue +141 -0
  98. package/packages/DynamicForm/src/components/urlLinkInput.vue +100 -0
  99. package/packages/DynamicForm/src/demo/index.vue +486 -0
  100. package/packages/DynamicForm/src/fileUpload.js +232 -0
  101. package/packages/DynamicForm/src/formConfig.js +2910 -0
  102. package/packages/DynamicForm/src/helpers.js +18 -0
  103. package/packages/DynamicForm/src/main.vue +1095 -0
  104. package/packages/FileImport/index.js +7 -0
  105. package/packages/FileImport/src/demo/index.vue +29 -0
  106. package/packages/FileImport/src/main.vue +306 -0
  107. package/packages/MultiCurrencyStatistics/index.js +7 -0
  108. package/packages/MultiCurrencyStatistics/src/demo/index.vue +320 -0
  109. package/packages/MultiCurrencyStatistics/src/main.vue +200 -0
  110. package/packages/SelectTicket/index.js +7 -0
  111. package/packages/SelectTicket/src/Tree/index.vue +13 -0
  112. package/packages/SelectTicket/src/demo/index.vue +139 -0
  113. package/packages/SelectTicket/src/header.js +276 -0
  114. package/packages/SelectTicket/src/main.vue +581 -0
  115. package/packages/SelectTicket/src/printDialog/dialogO.vue +116 -0
  116. package/packages/SelectTicket/src/printDialog/index.vue +69 -0
  117. package/packages/SelectTicket/src/ticketDetail/billInformation/README.MD +6 -0
  118. package/packages/SelectTicket/src/ticketDetail/billInformation/mixins/index.js +35 -0
  119. package/packages/SelectTicket/src/ticketDetail/billInformation/obverse.vue +768 -0
  120. package/packages/SelectTicket/src/ticketDetail/billInformation/overview.vue +115 -0
  121. package/packages/SelectTicket/src/ticketDetail/billInformation/printList.vue +127 -0
  122. package/packages/SelectTicket/src/ticketDetail/billInformation/reverse.vue +205 -0
  123. package/packages/SelectTicket/src/ticketDetail/billInformation//351/231/204/345/212/240/344/277/235/350/257/201/344/277/241/346/201/257/345/255/227/346/256/265/345/257/271/347/205/247.md +246 -0
  124. package/packages/SelectTicket/src/ticketDetail/dialog.vue +73 -0
  125. package/packages/SelectTicket/src/ticketDetail/img/bankbackground(1).jpg +0 -0
  126. package/packages/SelectTicket/src/ticketDetail/img/busibackground(2).jpg +0 -0
  127. package/packages/SelectTicket/src/ticketDetail/img/icon.gif +0 -0
  128. package/packages/SelectTicket/src/ticketDetail/img/icon2.png +0 -0
  129. package/packages/SelectTicket/src/ticketDetail/img/noData.png +0 -0
  130. package/packages/SelectTicket/src/ticketDetail/index.vue +188 -0
  131. package/packages/SelectTreeUnit/index.js +7 -0
  132. package/packages/SelectTreeUnit/src/Tree/document.svg +8 -0
  133. package/packages/SelectTreeUnit/src/Tree/folder.svg +9 -0
  134. package/packages/SelectTreeUnit/src/Tree/index.vue +239 -0
  135. package/packages/SelectTreeUnit/src/demo/index.vue +219 -0
  136. package/packages/SelectTreeUnit/src/forEachs.js +16 -0
  137. package/packages/SelectTreeUnit/src/main.vue +1136 -0
  138. package/packages/SelectTreeUnitForm/index.js +7 -0
  139. package/packages/SelectTreeUnitForm/src/Tree/document.svg +8 -0
  140. package/packages/SelectTreeUnitForm/src/Tree/folder.svg +9 -0
  141. package/packages/SelectTreeUnitForm/src/Tree/index.vue +254 -0
  142. package/packages/SelectTreeUnitForm/src/demo/index.vue +230 -0
  143. package/packages/SelectTreeUnitForm/src/forEachs.js +16 -0
  144. package/packages/SelectTreeUnitForm/src/main.vue +1068 -0
  145. package/packages/StreamRefill/index.js +7 -0
  146. package/packages/StreamRefill/src/components/FillBigDecimal.vue +50 -0
  147. package/packages/StreamRefill/src/components/FillDate.vue +56 -0
  148. package/packages/StreamRefill/src/components/FillInput.vue +36 -0
  149. package/packages/StreamRefill/src/components/FillMultiSelect.vue +54 -0
  150. package/packages/StreamRefill/src/components/FillSelect.vue +51 -0
  151. package/packages/StreamRefill/src/demo/index.vue +254 -0
  152. package/packages/StreamRefill/src/main.vue +335 -0
  153. package/packages/Trade/index.js +7 -0
  154. package/packages/Trade/src/components/all/index.vue +913 -0
  155. package/packages/Trade/src/components/dynamicColumnMixin.js +69 -0
  156. package/packages/Trade/src/components/getDCloumn.js +15 -0
  157. package/packages/Trade/src/components/i18n.json +3337 -0
  158. package/packages/Trade/src/components/pendingEvent/index.vue +934 -0
  159. package/packages/Trade/src/components/server-config.js +60 -0
  160. package/packages/Trade/src/components/setUnitName.js +10 -0
  161. package/packages/Trade/src/components/specialHandle.js +171 -0
  162. package/packages/Trade/src/components/topendingTabs.js +21 -0
  163. package/packages/Trade/src/demo/index.vue +43 -0
  164. package/packages/Trade/src/main.vue +86 -0
  165. package/packages/ValidateQuota/index.js +58 -0
  166. package/packages/ValidateQuota/src/demo/index.vue +190 -0
  167. package/packages/ValidateQuota/src/main.vue +71 -0
  168. package/packages/ZipImport/index.js +7 -0
  169. package/packages/ZipImport/src/demo/index.vue +139 -0
  170. package/packages/ZipImport/src/main.vue +330 -0
  171. package/packages/approvel/index.js +8 -0
  172. package/packages/approvel/src/demo/index.vue +28 -0
  173. package/packages/approvel/src/main.vue +26 -0
  174. package/packages/approvel/src/progress.vue +167 -0
  175. package/packages/approvel/src/url.json +29 -0
  176. package/packages/extends/ElSelect.vue +180 -0
  177. package/packages/imgs/list-select.png +0 -0
  178. package/packages/imgs/list-unselect.png +0 -0
  179. package/packages/imgs/list.png +0 -0
  180. package/packages/imgs/tree-select.png +0 -0
  181. package/packages/imgs/tree-unselect.png +0 -0
  182. package/packages/imgs/tree.png +0 -0
  183. package/packages/inputTag/index.js +7 -0
  184. package/packages/inputTag/src/demo/index.vue +355 -0
  185. package/packages/inputTag/src/main.vue +502 -0
  186. package/public/favicon.ico +0 -0
  187. package/public/index.html +19 -0
  188. package/src/App.vue +61 -0
  189. package/src/api/aims.js +8 -0
  190. package/src/api/common.js +254 -0
  191. package/src/api/fileApi.js +33 -0
  192. package/src/api/setting.js +249 -0
  193. package/src/config/appSettings.js +12 -0
  194. package/src/config/favicon.ico +0 -0
  195. package/src/css/autoFill.scss +252 -0
  196. package/src/css/selectTreeUnit.scss +254 -0
  197. package/src/filter/filter.js +1 -0
  198. package/src/filter/index.js +274 -0
  199. package/src/fonts/demo.css +539 -0
  200. package/src/fonts/iconfont.css +21 -0
  201. package/src/fonts/iconfont.js +1 -0
  202. package/src/fonts/iconfont.json +23 -0
  203. package/src/fonts/iconfont.ttf +0 -0
  204. package/src/index.js +161 -0
  205. package/src/locale/format.js +47 -0
  206. package/src/locale/index.js +48 -0
  207. package/src/locale/lang/cn2hk.json +1270 -0
  208. package/src/locale/lang/en.js +73 -0
  209. package/src/locale/lang/es.js +7 -0
  210. package/src/locale/lang/index.js +66 -0
  211. package/src/locale/lang/ja.js +7 -0
  212. package/src/locale/lang/zh.js +74 -0
  213. package/src/locale/lang/zht.js +27 -0
  214. package/src/main.js +49 -0
  215. package/src/preview/page/Aside/index.vue +60 -0
  216. package/src/preview/router.js +107 -0
  217. package/src/utils/auth.js +12 -0
  218. package/src/utils/directive/asciiWidth.js +107 -0
  219. package/src/utils/directive/clickOutside.js +21 -0
  220. package/src/utils/directive/vtitle.js +140 -0
  221. package/src/utils/excel.js +538 -0
  222. package/src/utils/index.js +581 -0
  223. package/src/utils/request.js +157 -0
  224. package/src/utils/requestCache.js +68 -0
  225. package/src/utils/session.js +36 -0
  226. package/src/utils/thems.js +62 -0
  227. package/src/utils/token.js +26 -0
  228. package/src/utils/tools.js +317 -0
  229. package/src/utils/utils.js +513 -0
  230. package/types/favicon.ico +0 -0
  231. package/vue.config.js +49 -0
@@ -0,0 +1,7 @@
1
+ import NstcFileImport from "./src/main.vue";
2
+
3
+ NstcFileImport.install = function (Vue) {
4
+ Vue.component(NstcFileImport.name, NstcFileImport)
5
+ }
6
+
7
+ export default NstcFileImport
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div>
3
+ <h2>文件导入</h2>
4
+ <hr>
5
+ <h4>外汇</h4>
6
+ <NstcFileImport
7
+ business-type="REGISTER" module-no="FEMS"
8
+ />
9
+
10
+ <h4>保函</h4>
11
+ <NstcFileImport
12
+ business-type="REGISTER"
13
+ module-no="LGM"
14
+ template-no="4"
15
+ parse-url="/api/nstc-lgm/1.0/import/parse"
16
+ success-url="/api/nstc-lgm/1.0/import/exec"
17
+ error-url="/api/nstc-lgm/1.0/import/failed/download"
18
+ />
19
+ </div>
20
+ </template>
21
+
22
+ <script>
23
+ import NstcFileImport from '../main.vue'
24
+ export default {
25
+ components: {
26
+ NstcFileImport
27
+ }
28
+ }
29
+ </script>
@@ -0,0 +1,306 @@
1
+ <template>
2
+ <div>
3
+ <N20-file-import
4
+ v-bind="$attrs"
5
+ v-on="$listeners"
6
+ :template-opt="{headers:{relaNo: relaNo}}"
7
+ :file-name="fileName"
8
+ :footer="footerBtn"
9
+ :pagination="true"
10
+ show-error-export
11
+ :hide-percent="false"
12
+ @importError="exportErrorData"
13
+ :validate-result.sync="validateResult"
14
+ :validate-dialog.sync="validateV"
15
+ :custom-template-download="showDownloadTpl"
16
+ :uploadHttpRequest="uploadFn"
17
+ >
18
+ <el-button slot="import-btn" plain size="mini">{{ $t('common_t_0051') }}</el-button>
19
+ </N20-file-import>
20
+ <N20Dialog v-drag :visible.sync="dialogVisible" :title="$t('common_t_0052')" width="25vw">
21
+ <el-form ref="postFormRef" :model="postForm" :rules="rules">
22
+ <el-form-item prop="templateNo" :label="$t('common_t_0053')">
23
+ <el-select v-model="postForm.templateNo" :placeholder="$t('common_t_0054')" clearable filterable>
24
+ <el-option
25
+ v-for="item in templateList"
26
+ :key="item.templateNo"
27
+ :value="item.templateNo"
28
+ :label="item.templateName"
29
+ />
30
+ </el-select>
31
+ </el-form-item>
32
+ </el-form>
33
+ <span slot="footer" class="dialog-footer m-t-m">
34
+ <el-button type="primary" @click="handleValidate">{{ $t('common_a_0001') }}</el-button>
35
+ <el-button plain @click="dialogVisible = false">{{ $t('common_a_0002') }}</el-button>
36
+ </span>
37
+ </N20Dialog>
38
+ </div>
39
+ </template>
40
+ <script>
41
+ import {axios, FileImport as N20FileImport, Dialog as N20Dialog} from 'n20-common-lib'
42
+ import {amountFormat} from "@/utils";
43
+
44
+ export default {
45
+ name: 'FileImport',
46
+ components: {
47
+ N20FileImport,
48
+ N20Dialog
49
+ },
50
+ props: {
51
+ // 资源权限编码
52
+ relaNo: {
53
+ type: String,
54
+ default: ''
55
+ },
56
+ // 模块编码
57
+ moduleNo: {
58
+ type: String,
59
+ default: '',
60
+ required: true
61
+ },
62
+ // 业务类型
63
+ businessType: {
64
+ type: String,
65
+ default: '',
66
+ required: true
67
+ },
68
+ // 解析地址
69
+ parseUrl: {
70
+ type: String,
71
+ default: '/api/nstc-forex/1.0/management/import/parse',
72
+ },
73
+ // 成功提交地址
74
+ successUrl: {
75
+ type: String,
76
+ default: '/api/nstc-forex/1.0/management/import/exec',
77
+ },
78
+ // 错误文件下载地址
79
+ errorUrl: {
80
+ type: String,
81
+ default: '/api/nstc-forex/1.0/management/import/failed/download',
82
+ },
83
+ // 错误标识
84
+ templateKey: {
85
+ type: String,
86
+ default: ''
87
+ },
88
+ //模板编码
89
+ templateNo: {
90
+ type: [Number, String],
91
+ default: ''
92
+ },
93
+ amountFields: {
94
+ type: Array,
95
+ default: () => []
96
+ },
97
+ rateFields: {
98
+ type: Array,
99
+ default: () => []
100
+ }
101
+ },
102
+ data() {
103
+ return {
104
+ fileName: '',
105
+ validateResult: {
106
+ totalNum: 0,
107
+ successNum: 0,
108
+ columnsList: [],
109
+ errorList: []
110
+ },
111
+ footerBtn: {
112
+ confirm: {
113
+ text: this.$t('common_t_0049'),
114
+ click: this.confirm
115
+ },
116
+ cancel: {
117
+ text: this.$t('common_t_0050'),
118
+ click: this.cancel
119
+ },
120
+ },
121
+ validateV: false,
122
+ dialogVisible: false,
123
+ postForm: {
124
+ templateNo: undefined
125
+ },
126
+ rules: {
127
+ templateNo: [
128
+ {required: true, message: this.$t('common_t_0048'), trigger: ['blur', 'change']}
129
+ ]
130
+ },
131
+ templateList: [],
132
+ fileUUID: undefined,
133
+ }
134
+ },
135
+ methods: {
136
+ async uploadFn(file) {
137
+ this.validateV = false
138
+ const formData = new FormData()
139
+ formData.append('file', file)
140
+ axios.post(this.parseUrl, formData).then(res => {
141
+ const {uuid = '', data = []} = res.data;
142
+ this.fileUUID = uuid;
143
+ const [sheet = {}] = data;
144
+ if (!sheet) {
145
+ this.$message.warning(this.$t('common_t_0047'))
146
+ return
147
+ }
148
+ const {headers = [], records = [], successCount = 0, total} = sheet;
149
+ const baseHeaders = [
150
+ {
151
+ headerCode: 'rowNo',
152
+ headerName: this.$l('序号'),
153
+ fixed: 'right',
154
+ width: 58
155
+ },
156
+ {
157
+ headerCode: 'errorMessage',
158
+ headerName: this.$l('错误类型'),
159
+ fixed: 'center',
160
+ width: 144,
161
+ overflowTooltip: true
162
+ }
163
+ ]
164
+ headers.unshift(...baseHeaders)
165
+ const errorRecords = records.map(item => {
166
+ const {record = {}, validateResult = {errorMessageMap: [], errorMessage: ''}} = item;
167
+ return Object.assign({}, record, {
168
+ errorMap: validateResult.errorMessageMap,
169
+ errorMessage: validateResult.errorMessage || '--'
170
+ })
171
+ })
172
+ if (!total) {
173
+ return this.$message.error(this.$t('common_t_0058'))
174
+ }
175
+ const amountFields = [
176
+ '最大担保额(元)',
177
+ '转开/转递费率',
178
+ this.$t('common_t_0013'),
179
+ this.$t('common_t_0055'),
180
+ ...this.amountFields,
181
+ ]
182
+ const rateFields = [
183
+ '手续费率',
184
+ '保证金利率',
185
+ ...this.rateFields
186
+ ]
187
+ const formatFields = [
188
+ ...amountFields,
189
+ ...rateFields
190
+ ]
191
+ const amountKeys = []
192
+ const rateKeys = []
193
+ const columnsList = headers.map(item => {
194
+ const amountFlag = formatFields.find(field => item.headerName.includes(field))
195
+ if (amountFlag && !amountKeys.includes(item.headerCode)) {
196
+ amountKeys.push(item.headerCode, item)
197
+ }
198
+ const rateFlag = rateFields.find(field => item.headerName.includes(field))
199
+ if (rateFlag && !rateKeys.includes(item.headerCode)) {
200
+ rateKeys.push(item.headerCode, item)
201
+ }
202
+ return {
203
+ ...item,
204
+ prop: item.headerCode,
205
+ label: item.headerName,
206
+ headerAlign: 'center',
207
+ align: amountFlag || amountFlag ? 'right' : 'center',
208
+ width: item.width || 180,
209
+ showOverflowTooltip: true
210
+ }
211
+ })
212
+ errorRecords.forEach(item => {
213
+ const {errorMap = {}, errorMessage = ''} = item
214
+ for (const key in item) {
215
+ item[key] = item[key] || '--'
216
+ }
217
+ amountKeys.forEach(key => {
218
+ if (item[key] !== null && item[key] !== undefined) {
219
+ item[key] = amountFormat(item[key])
220
+ }
221
+ })
222
+ rateKeys.forEach(key => {
223
+ if (item[key] !== null && item[key] !== undefined) {
224
+ item[key] = amountFormat(item[key], 6)
225
+ }
226
+ })
227
+ for (let err in errorMap) {
228
+ item[err] = errorMap[err]?.['errorMsg']
229
+ }
230
+ const errorKeys = Object.keys(errorMap)
231
+ item[`errorList`] = errorMessage ? errorKeys.concat(['errorMessage']) : errorKeys
232
+ })
233
+ this.validateResult = {
234
+ totalNum: total,
235
+ successNum: successCount,
236
+ columnsList,
237
+ errorList: errorRecords
238
+ }
239
+ this.validateV = true
240
+ })
241
+ },
242
+ // 显示模板列表弹窗
243
+ showDownloadTpl() {
244
+ if (!this.moduleNo || !this.businessType) {
245
+ console.error('参数缺失')
246
+ this.$message.error(this.$t('common_t_0045'))
247
+ return
248
+ }
249
+ if (this.templateNo) {
250
+ this.downloadTemplate(this.templateNo)
251
+ } else {
252
+ this.getTemplateList()
253
+ }
254
+ },
255
+ // 获取模板列表
256
+ getTemplateList() {
257
+ axios.get('/api/nstc-gtcp/1.0/template/get', {
258
+ moduleNo: this.moduleNo,
259
+ businessType: this.businessType
260
+ }).then(res => {
261
+ const {data = []} = res
262
+ this.templateList = data
263
+ this.postForm.templateNo = undefined
264
+ this.dialogVisible = true
265
+ })
266
+ },
267
+ handleValidate() {
268
+ this.$refs.postFormRef.validate(valid => {
269
+ if (valid) {
270
+ this.downloadTemplate(this.postForm.templateNo)
271
+ }
272
+ })
273
+ },
274
+ downloadTemplate(templateNo) {
275
+ axios.get('/api/nstc-gtcp/1.0/import/getTemplate', {
276
+ templateNo,
277
+ type: 'xlsx'
278
+ }, {responseType: 'blob'}).then(res => {
279
+ this.$downloadBlob(res, res.name)
280
+ this.$message.success(this.$t('common_t_0046'))
281
+ this.dialogVisible = false
282
+ })
283
+ },
284
+ confirm() {
285
+ axios.post(`${this.successUrl}?uuid=${this.fileUUID}`, {uuid: this.fileUUID}).then(res => {
286
+ this.$message.success(this.$t('common_t_0056'))
287
+ this.dialogVisible = false
288
+ this.$emit('upload-success')
289
+ })
290
+ if (this.validateResult.errorList && this.validateResult.errorList.length) {
291
+ this.exportErrorData()
292
+ }
293
+ },
294
+ cancel() {
295
+ this.dialogVisible = false
296
+ },
297
+ exportErrorData() {
298
+ axios.get(this.errorUrl, {uuid: this.fileUUID, type: 'xlsx'}, {responseType: 'blob'}).then(res => {
299
+ this.dialogVisible = false
300
+ this.$downloadBlob(res, res.name)
301
+ this.$message.success(this.$t('common_t_0057'))
302
+ })
303
+ },
304
+ }
305
+ }
306
+ </script>
@@ -0,0 +1,7 @@
1
+ import NstcMultiCurrencyStatistics from './src/main.vue'
2
+
3
+ NstcMultiCurrencyStatistics.install = function (Vue) {
4
+ Vue.component(NstcMultiCurrencyStatistics.name, NstcMultiCurrencyStatistics)
5
+ }
6
+
7
+ export default NstcMultiCurrencyStatistics
@@ -0,0 +1,320 @@
1
+ <template>
2
+ <div>
3
+ <h2>多币种合计</h2>
4
+ <MultiCurrencyStatistics :config="config" :views="views" :selected="selected"/>
5
+ </div>
6
+ </template>
7
+
8
+ <script>
9
+ import MultiCurrencyStatistics from "./../main.vue";
10
+
11
+ export default {
12
+ components: {
13
+ MultiCurrencyStatistics
14
+ },
15
+ data() {
16
+ return {
17
+ config: [
18
+ {"label": "条数", "code": "totalNumber"},
19
+ {"label": "融资金额", "code": "totalAmount", "key": "amount"},
20
+ {"label": "融资余额", "code": "totalBalance", "key": "balance"}
21
+ ],
22
+ views: [
23
+ {
24
+ "currencyNo": "CNY",
25
+ "currencyName": "人民币",
26
+ "totalNumber": 2197,
27
+ "totalAmount": 4807275500.49,
28
+ "totalBalance": 3581064545.71
29
+ },
30
+ {
31
+ "currencyNo": "USD",
32
+ "currencyName": "美元",
33
+ "totalNumber": 41,
34
+ "totalAmount": 864000,
35
+ "totalBalance": 243370.52
36
+ },
37
+ {
38
+ "currencyNo": "EUR",
39
+ "currencyName": "欧元",
40
+ "totalNumber": 5,
41
+ "totalAmount": 130100,
42
+ "totalBalance": 28000
43
+ },
44
+ {
45
+ "currencyNo": "SGD",
46
+ "currencyName": "新加坡元",
47
+ "totalNumber": 2,
48
+ "totalAmount": 11000,
49
+ "totalBalance": 0
50
+ },
51
+ {
52
+ "currencyNo": "CZK",
53
+ "currencyName": "捷克克朗",
54
+ "totalNumber": 3,
55
+ "totalAmount": 30000,
56
+ "totalBalance": 0
57
+ },
58
+ {"currencyNo": "THB", "currencyName": "泰铢", "totalNumber": 1, "totalAmount": 5000, "totalBalance": 5000}
59
+ ],
60
+ selected: [{
61
+ "contractId": 2417,
62
+ "applyId": null,
63
+ "unitNo": "1756878467306",
64
+ "bussClass": "CLMS02",
65
+ "bussVariety": "GDT_1",
66
+ "contractNo": "RZ20251022001927",
67
+ "bankContractNo": "",
68
+ "interestAccDay": 0,
69
+ "assBankId": null,
70
+ "contractDate": null,
71
+ "startDate": "2025-10-01",
72
+ "endDate": "2026-10-01",
73
+ "termDay": 1,
74
+ "capitalRate": null,
75
+ "purposeNo": null,
76
+ "memo": null,
77
+ "delegateUnitNo": null,
78
+ "delegateUnitName": null,
79
+ "repaySource": null,
80
+ "punitiveRate": null,
81
+ "overseasBank": null,
82
+ "overseasCurrency": null,
83
+ "cost": null,
84
+ "ttCode": null,
85
+ "opAccountNo": null,
86
+ "feesRate": null,
87
+ "isRecourse": null,
88
+ "contacts": null,
89
+ "address": null,
90
+ "phoneNumber": null,
91
+ "lgType": null,
92
+ "ensureActivities": null,
93
+ "intermediary": null,
94
+ "intermediaryFees": null,
95
+ "approveUnit": null,
96
+ "stockMarket": null,
97
+ "issuePrice": null,
98
+ "issueNumber": null,
99
+ "issueDate": null,
100
+ "stockName": null,
101
+ "stockCode": null,
102
+ "principalUnderwriter": null,
103
+ "principalMethod": null,
104
+ "bondType": null,
105
+ "productName": null,
106
+ "yearReturn": null,
107
+ "cooperationAgency": null,
108
+ "followFees": null,
109
+ "rentPayMethod": null,
110
+ "leasedItems": null,
111
+ "expireChoose": null,
112
+ "leasePremium": null,
113
+ "finishDate": null,
114
+ "finishType": null,
115
+ "reason": null,
116
+ "state": 0,
117
+ "billMedium": null,
118
+ "billType": null,
119
+ "contractChannal": null,
120
+ "feeRate": null,
121
+ "expectIntr": null,
122
+ "forFaitingType": null,
123
+ "isImportant": null,
124
+ "comprehensiveCost": null,
125
+ "ratePolicyState": null,
126
+ "isTakeCredit": null,
127
+ "isTakeGuarantee": null,
128
+ "rentPayCycle": null,
129
+ "leasePremiumRatio": null,
130
+ "bondissueId": null,
131
+ "typeId": null,
132
+ "termDaySuffix": null,
133
+ "isSaleRight": null,
134
+ "trustType": null,
135
+ "realCapital": null,
136
+ "fundHolder": null,
137
+ "educationalTariff": null,
138
+ "additionalTaxRate": null,
139
+ "trusteeshipRate": null,
140
+ "capitalCost": null,
141
+ "managementRate": null,
142
+ "overBankName": null,
143
+ "lockGunCash": null,
144
+ "lockRate": null,
145
+ "lockBank": null,
146
+ "creditType": null,
147
+ "atFirst": null,
148
+ "stockType": null,
149
+ "division": null,
150
+ "department": null,
151
+ "orgType": null,
152
+ "termDayUnit": 3,
153
+ "chargeOffPath": null,
154
+ "outGuaranteeWay": null,
155
+ "receAmount": null,
156
+ "factorWay": null,
157
+ "factorKind": null,
158
+ "latefeeAmount": null,
159
+ "fundKind": null,
160
+ "prioritySubject": null,
161
+ "lagSubject": null,
162
+ "priorityProportion": null,
163
+ "lagProportion": null,
164
+ "incomeDistributionWay": null,
165
+ "otherFees": null,
166
+ "fundRate": null,
167
+ "buyintrcltName": null,
168
+ "sellIntrScale": null,
169
+ "isGreenBonds": null,
170
+ "depName": null,
171
+ "divName": null,
172
+ "departmentCode": null,
173
+ "flowNo": null,
174
+ "budgetCode": null,
175
+ "budgetMemberNo": null,
176
+ "usePlanNo": null,
177
+ "guabzj": null,
178
+ "guazy": null,
179
+ "guady": null,
180
+ "guadsfbz": null,
181
+ "guaxy": null,
182
+ "guadsfdy": null,
183
+ "guadsfzy": null,
184
+ "budgetKmcode": null,
185
+ "branchBankNo": "001110012017",
186
+ "custom": null,
187
+ "delegateFlag": null,
188
+ "circulateFlag": 0,
189
+ "unifiedFlag": 0,
190
+ "groupCustom": null,
191
+ "depositFlag": null,
192
+ "financingPurpose": null,
193
+ "isMaintainFetch": null,
194
+ "isSecuritiesName": null,
195
+ "createTime": null,
196
+ "updateTime": null,
197
+ "creator": null,
198
+ "updater": null,
199
+ "extraFieldA": null,
200
+ "extraFieldB": null,
201
+ "extraFieldC": null,
202
+ "extraFieldD": null,
203
+ "extraFieldE": null,
204
+ "extraFieldF": null,
205
+ "extraFieldG": null,
206
+ "extraFieldH": null,
207
+ "extraFieldI": null,
208
+ "extraFieldJ": null,
209
+ "extraFieldK": null,
210
+ "extraFieldL": null,
211
+ "extraFieldM": null,
212
+ "extraFieldN": null,
213
+ "extraFieldO": null,
214
+ "extraFieldP": null,
215
+ "extraFieldQ": null,
216
+ "extraFieldR": null,
217
+ "extraFieldS": null,
218
+ "extraFieldT": null,
219
+ "extraFieldU": null,
220
+ "extraFieldV": null,
221
+ "extraFieldW": null,
222
+ "extraFieldX": null,
223
+ "extraFieldY": null,
224
+ "extraFieldZ": null,
225
+ "discountRate": null,
226
+ "recordId": null,
227
+ "discountAmount": null,
228
+ "discountInterest": null,
229
+ "productType": null,
230
+ "branchBankName": "中国人民银行滨海新区中心支行营业室",
231
+ "unitName": "九恒星兰州有限公司",
232
+ "amountId": 2794,
233
+ "bussVarietyName": "常规贷款",
234
+ "balance": 1085,
235
+ "amount": 12000,
236
+ "currencyNo": "CNY",
237
+ "currencyName": "人民币",
238
+ "status": null,
239
+ "statusName": null,
240
+ "stateName": "正常",
241
+ "deletable": true,
242
+ "authDataNo": "1",
243
+ "unRepaymentAmount": null,
244
+ "rate": 3.35,
245
+ "rateTypeName": "LPR一年期的利率",
246
+ "payInterestTypeName": "到期一次",
247
+ "rePaymentTypeName": "到期一次",
248
+ "circulateFlagName": "否",
249
+ "unifiedFlagName": "否",
250
+ "rePaymentType": 1,
251
+ "payInterestType": 1,
252
+ "payBackType": 0,
253
+ "umAmountList": null,
254
+ "umAttachList": null,
255
+ "umCreditList": null,
256
+ "umGuaranteeList": null,
257
+ "umDepositList": null,
258
+ "umBillList": null,
259
+ "fetchMoneyRegisterViewList": null,
260
+ "gdtContractAmountViews": null,
261
+ "isDue": 0,
262
+ "isExtend": 1,
263
+ "isFetchApply": 0,
264
+ "isFetch": 1,
265
+ "fetchFlagName": "已提款",
266
+ "isRevise": 0,
267
+ "isDraw": 6,
268
+ "unWithdrawalAmount": 10915,
269
+ "fetchFlag": 1,
270
+ "repaymentFlag": 1,
271
+ "extendFlag": 1,
272
+ "fetApplyFlag": 0,
273
+ "fetchCount": 6,
274
+ "bussClassName": "间接融资",
275
+ "termDayName": "1 年",
276
+ "exportId": "2794",
277
+ "baseRateId": 17,
278
+ "billMediumName": "",
279
+ "interestAccDayName": "360",
280
+ "bondTypeName": "",
281
+ "roleLender": null,
282
+ "roleLenderName": null,
283
+ "baseRate": 3.35,
284
+ "floatType": 0,
285
+ "floatTypeName": "不浮动",
286
+ "floatValue": 0,
287
+ "rateAdjustType": 0,
288
+ "rateAdjustTypeName": "固定利率",
289
+ "rateEffectiveDate": "2025-10-01",
290
+ "fetchMoneyType": null,
291
+ "fetchMoneyTypeName": "",
292
+ "payBackTypeName": "主动还款",
293
+ "rePaymentAccount": "",
294
+ "reCollectionAccount": "",
295
+ "rePaymentTypeFrequency": null,
296
+ "rePaymentTypeFrequencyName": "",
297
+ "rePaymentDate": null,
298
+ "payInterestTypeFrequency": null,
299
+ "payInterestTypeFrequencyName": "",
300
+ "payInterestDate": null,
301
+ "bankNo": "16",
302
+ "bankName": "中国人民银行",
303
+ "billTypeName": null,
304
+ "recAccountName": "",
305
+ "recBranchBankNo": "",
306
+ "recBranchBankName": null,
307
+ "payBranchBankNo": null,
308
+ "payBranchBankName": null,
309
+ "rePaymentAccountCurrencyNo": null,
310
+ "rePaymentAccountCurrencyName": null,
311
+ "productTypeName": null,
312
+ "priorityAmount": null,
313
+ "subordinatedAmount": null,
314
+ "termType": null,
315
+ "checked": true
316
+ }],
317
+ }
318
+ }
319
+ }
320
+ </script>