gcs-ui-lib 1.2.2 → 1.2.3

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 (50) hide show
  1. package/lib/gcs-ui-lib.common.js +20326 -17567
  2. package/lib/gcs-ui-lib.css +1 -1
  3. package/lib/gcs-ui-lib.umd.js +20326 -17567
  4. package/lib/gcs-ui-lib.umd.min.js +110 -110
  5. package/package.json +7 -1
  6. package/packages/AutoFillDetail/src/components/fillDetail.vue +0 -15
  7. package/packages/AutoFillDetail/src/demo/index.vue +1 -1
  8. package/packages/AutoFillDetail/src/main.vue +22 -7
  9. package/packages/AutoFillDetection/src/components/HandEntred.vue +24 -51
  10. package/packages/AutoFillDetection/src/components/HandEntredThird.vue +225 -0
  11. package/packages/AutoFillDetection/src/components/RuleHit.vue +1 -0
  12. package/packages/AutoFillDetection/src/components/THIRD_ACCOUNT.vue +200 -0
  13. package/packages/AutoFillDetection/src/components/config.js +214 -3
  14. package/packages/AutoFillDetection/src/main.vue +38 -15
  15. package/packages/AutoFillList/src/components/config.js +56 -12
  16. package/packages/AutoFillList/src/main.vue +60 -15
  17. package/packages/AutoFillRuleHistory/src/main.vue +158 -133
  18. package/packages/AutoFillService/src/components/ConditionGroup.vue +36 -18
  19. package/packages/AutoFillService/src/components/basic.vue +162 -119
  20. package/packages/AutoFillService/src/components/fillRules.vue +28 -19
  21. package/packages/AutoFillService/src/demo/index.vue +17 -6
  22. package/packages/AutoFillService/src/main.vue +14 -9
  23. package/packages/Bank/src/main.vue +5 -1
  24. package/packages/CommonExport/index.js +7 -0
  25. package/packages/CommonExport/src/demo/index.vue +18 -0
  26. package/packages/CommonExport/src/main.vue +76 -0
  27. package/packages/MergeAutoFill/demo/NstcMergeAutoFillList.vue +47 -0
  28. package/packages/MergeAutoFill/index.js +28 -0
  29. package/packages/MergeAutoFill/merge/ExtendMergeHistory.vue +62 -0
  30. package/packages/MergeAutoFill/merge/merageBasic.vue +390 -0
  31. package/packages/MergeAutoFill/merge/merageFillService.vue +168 -0
  32. package/packages/MergeAutoFill/merge/merageHistoryRules.vue +133 -0
  33. package/packages/MergeAutoFill/merge/mergeFillDetail.vue +148 -0
  34. package/packages/MergeAutoFill/merge/mergeFillList.vue +94 -0
  35. package/packages/Trade/src/components/all/index.vue +1 -1
  36. package/packages/Trade/src/components/pendingEvent/index.vue +49 -44
  37. package/src/api/setting.js +17 -1
  38. package/src/index.js +18 -0
  39. package/src/preview/router.js +5 -0
  40. package/src/utils/index.js +31 -16
  41. package/.env.development +0 -5
  42. package/.env.production +0 -7
  43. package/.eslintrc.js +0 -5
  44. package/_webpack.config.js +0 -135
  45. package/babel.config.js +0 -16
  46. package/docs/README.md +0 -246
  47. package/npm +0 -1
  48. package/public/favicon.ico +0 -0
  49. package/public/index.html +0 -19
  50. package/vue.config.js +0 -49
@@ -0,0 +1,76 @@
1
+ <!--
2
+ * @Author: yuehong yuehong@nstc.com.cn
3
+ * @Date: 2024-05-11 15:50:15
4
+ * @LastEditors: yuehong yuehong@nstc.com.cn
5
+ * @LastEditTime: 2024-05-18 16:53:48
6
+ * @FilePath: \gcs-settle_webd:\workspace\G20\gcs-dms_web\code\src\components\CommonExport.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <el-dropdown
11
+ v-hasG="permission"
12
+ trigger="hover"
13
+ v-if="btn"
14
+ @command="handleExport"
15
+ >
16
+ <el-button plain size="mini">{{ $l("导出") }}</el-button>
17
+ <el-dropdown-menu style="margin-right: 0px" slot="dropdown">
18
+ <el-dropdown-item command="xls">{{ $l(".xls格式") }}</el-dropdown-item>
19
+ <el-dropdown-item command="xlsx">{{ $l(".xlsx格式") }}</el-dropdown-item>
20
+ </el-dropdown-menu>
21
+ </el-dropdown>
22
+ <el-dropdown
23
+ v-hasG="permission"
24
+ style="width:100%;cursor: pointer; min-width: 60px; text-align: center"
25
+ trigger="hover"
26
+ v-else
27
+ placement="right-start"
28
+ class="custom-drop"
29
+ :hide-timeout="2000"
30
+ @command="handleExport"
31
+ >
32
+ <el-link :underline="false" class="export-name">{{ $l("导出") }}</el-link>
33
+ <el-dropdown-menu style="margin-right: 0px" slot="dropdown">
34
+ <el-dropdown-item command="xls">{{ $l(".xls格式") }}</el-dropdown-item>
35
+ <el-dropdown-item command="xlsx">{{ $l(".xlsx格式") }}</el-dropdown-item>
36
+ </el-dropdown-menu>
37
+ </el-dropdown>
38
+ </template>
39
+ <script>
40
+ export default {
41
+ name: "NstcCommonExport",
42
+ props: {
43
+ permission: {
44
+ type: String,
45
+ required: true,
46
+ default: "",
47
+ },
48
+ btn: {
49
+ type: Boolean,
50
+ default: false,
51
+ },
52
+ },
53
+ methods: {
54
+ handleExport(command) {
55
+ this.$emit("command", command);
56
+ },
57
+ },
58
+ };
59
+ </script>
60
+
61
+ <style scoped lang="scss">
62
+ .custom-drop {
63
+ padding: 4px 0;
64
+ text-align: start !important;
65
+ padding-left: 15px;
66
+ width: 50% !important;
67
+ &:hover {
68
+ background-color: var(--color-primary-light-9);
69
+ }
70
+ }
71
+
72
+ .export-name {
73
+ display: inline-block;
74
+ width: 100%;
75
+ }
76
+ </style>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <NstcMergeAutoFillList
3
+ :settingSource="'2'"
4
+ key="merageFill"
5
+ :type="'merageFill'"
6
+ :pageRelaNo="pageRelaNo"
7
+ :fList="filterList"
8
+ :hList="tableHeader"
9
+ class="payment-auto"
10
+ ></NstcMergeAutoFillList>
11
+ </template>
12
+
13
+ <script>
14
+ import {
15
+ AutoFillListHeader,
16
+ AutoFillListFilter,
17
+ } from "../../AutoFillList/src/components/config";
18
+ import NstcMergeAutoFillList from "../merge/mergeFillList.vue"; // 真正使用的时候不用导入 已全局use
19
+ export default {
20
+ name: "xxxx",
21
+ components: {
22
+ NstcMergeAutoFillList, // 真正使用的时候不用导入 已全局use
23
+ },
24
+ async mounted() {
25
+ this.tableHeader = AutoFillListHeader;
26
+ this.filterList = AutoFillListFilter;
27
+ },
28
+ data() {
29
+ return {
30
+ filterList: [],
31
+ tableHeader: [],
32
+ pageRelaNo: {
33
+ history: "payment00100100006002-01", //历史记录
34
+ add: "payment00100100006001001-01", //新增
35
+ delete: "payment00100100006001002-01", //删除
36
+ // detection: "payment00100100006001007-01", //检测
37
+ import: "payment00100100006001003-01", //导入
38
+ export: "payment00100100006001006-01", //导出
39
+ edit: "payment00100100006001004-01", //编辑
40
+ copy: "payment00100100006001005-01", //复制
41
+ },
42
+ };
43
+ },
44
+ };
45
+ </script>
46
+
47
+ <style lang="scss" scoped></style>
@@ -0,0 +1,28 @@
1
+ import NstcMergeAutoFillList from './merge/mergeFillList.vue'
2
+ import NstcMergeAutoFillDetail from './merge/mergeFillDetail.vue'
3
+ import NstcMergeAutoFillService from './merge/merageFillService.vue'
4
+ import NstcMergeAutoFillRuleHistory from './merge/ExtendMergeHistory.vue'
5
+
6
+ NstcMergeAutoFillList.install = function(Vue) {
7
+ Vue.component(NstcMergeAutoFillList.name, NstcMergeAutoFillList)
8
+ }
9
+
10
+ NstcMergeAutoFillDetail.install = function(Vue) {
11
+ Vue.component(NstcMergeAutoFillDetail.name, NstcMergeAutoFillDetail)
12
+ }
13
+
14
+ NstcMergeAutoFillService.install = function(Vue) {
15
+ Vue.component(NstcMergeAutoFillService.name, NstcMergeAutoFillService)
16
+ }
17
+ NstcMergeAutoFillRuleHistory.install = function(Vue) {
18
+ Vue.component(NstcMergeAutoFillRuleHistory.name, NstcMergeAutoFillRuleHistory)
19
+ }
20
+
21
+
22
+
23
+ export {
24
+ NstcMergeAutoFillList,
25
+ NstcMergeAutoFillDetail,
26
+ NstcMergeAutoFillService,
27
+ NstcMergeAutoFillRuleHistory
28
+ }
@@ -0,0 +1,62 @@
1
+ <script>
2
+ import NstcAutoFillRuleHistory from "../../AutoFillRuleHistory/src/main.vue";
3
+
4
+ export default {
5
+ name: "NstcMergeAutoFillRuleHistory",
6
+ extends: NstcAutoFillRuleHistory,
7
+ props: {
8
+ type: {
9
+ type: String,
10
+ default: "merageFill",
11
+ },
12
+ fList: {
13
+ type: Array,
14
+ default: () => [],
15
+ },
16
+ hList: {
17
+ type: Array,
18
+ default: () => [],
19
+ },
20
+ // 1:收入 2: 支出
21
+ settingSource: {
22
+ type: [Number, String],
23
+ default: "2",
24
+ },
25
+ test: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ pageRelaNo: {
30
+ type: Object,
31
+ default: () => {
32
+ return {
33
+ query: null,
34
+ export: null, //导出
35
+ };
36
+ },
37
+ },
38
+ },
39
+ activated() {},
40
+ async mounted() {
41
+ await this.$nextTick();
42
+ this.filterList = [...this.fList];
43
+ this.tableHeader = [...this.hList];
44
+ // this.queryData();
45
+ },
46
+ methods: {
47
+ handleClick(row) {
48
+ this.$router.push({
49
+ path: "/merageRulesDetail",
50
+ query: {
51
+ matchingHiId: row.matchingIdHi,
52
+ },
53
+ });
54
+ },
55
+ handleOrder(newVal) {
56
+ if (newVal) {
57
+ this.$set(this.detail, "isMatchChildOrder", newVal);
58
+ }
59
+ },
60
+ },
61
+ };
62
+ </script>
@@ -0,0 +1,390 @@
1
+ <template>
2
+ <el-form
3
+ class="label-width-12em"
4
+ label-width="12em"
5
+ :model="form"
6
+ :rules="rules"
7
+ :key="form.refillBasis"
8
+ ref="formRef"
9
+ >
10
+ <!-- 匹配基本规则 -->
11
+ <n20-expandable-pane :title="$l('匹配基本规则')">
12
+ <!-- 适用范围 -->
13
+ <el-form-item
14
+ class="m-b-m auto-form-item"
15
+ :label="$l('适用范围')"
16
+ prop="usedScope"
17
+ >
18
+ <el-select
19
+ class="input-w"
20
+ v-model="form.usedScope"
21
+ clearable
22
+ filterable
23
+ disabled
24
+ @change="applyRangeChange"
25
+ :placeholder="$l('请选择')"
26
+ >
27
+ <el-option
28
+ v-for="item in scopeOptions"
29
+ :key="item.value"
30
+ :label="item.label"
31
+ :value="item.value"
32
+ >
33
+ </el-option>
34
+ </el-select>
35
+ <el-tooltip
36
+ class="m-l-ss"
37
+ effect="dark"
38
+ :content="$l('适用范围+适用单位确定规定该条规则适用的单位范围')"
39
+ placement="top"
40
+ >
41
+ <i
42
+ class="n20-icon-xinxitishi"
43
+ style="color: var(--color-text-secondary)"
44
+ ></i>
45
+ </el-tooltip>
46
+ </el-form-item>
47
+ <!-- 适用单位 -->
48
+ <el-form-item
49
+ :label="$l('适用单位')"
50
+ class="m-b-m auto-form-item"
51
+ prop="cltNo"
52
+ :rules="[
53
+ {
54
+ required: form.usedScope !== 'all',
55
+ message: $l('至少选择一个单位'),
56
+ trigger: ['blur'],
57
+ },
58
+ ]"
59
+ >
60
+ <SelectTreeUnitForm
61
+ ref="selectTreeUnitForm"
62
+ v-model="form.cltNo"
63
+ :searchUnitNo="userUnitNo"
64
+ showAllCheck
65
+ :multiple="true"
66
+ :placeholder="$l('请选择')"
67
+ :url="'/api/nstc-gtcp/1.0/fundTree'"
68
+ :moduleNo="settingSource == 1 ? 'CTMS' : 'PTMS'"
69
+ node-key="id"
70
+ :relaNo="'payment001'"
71
+ :upDateValue="defaultSelect"
72
+ :disabled="form.usedScope == 'all'"
73
+ @dataChange="dataChange"
74
+ />
75
+ </el-form-item>
76
+ <!-- 规则名称 -->
77
+ <el-form-item
78
+ :label="$l('规则名称')"
79
+ class="m-b-m auto-form-item"
80
+ prop="matchingRuleName"
81
+ >
82
+ <el-input
83
+ class="input-w"
84
+ clearable
85
+ v-title
86
+ :show-overflow-tooltip="true"
87
+ :maxlength="64"
88
+ :placeholder="$l('请输入')"
89
+ v-model="form.matchingRuleName"
90
+ />
91
+ </el-form-item>
92
+ <!-- 规则类型 -->
93
+ <el-form-item
94
+ :label="$l('规则类型')"
95
+ class="m-b-m auto-form-item"
96
+ prop="matchingRuleType"
97
+ >
98
+ <el-select
99
+ class="input-w"
100
+ v-model="form.matchingRuleType"
101
+ clearable
102
+ filterable
103
+ disabled
104
+ :placeholder="$l('请选择')"
105
+ >
106
+ <el-option
107
+ v-for="item in methodOptions"
108
+ :key="item.value"
109
+ :label="item.label"
110
+ :value="item.value"
111
+ >
112
+ </el-option>
113
+ </el-select>
114
+ </el-form-item>
115
+ <!-- 匹配优先级 -->
116
+ <el-form-item
117
+ :label="$l('匹配优先级')"
118
+ class="m-b-m auto-form-item"
119
+ prop="matchingPriority"
120
+ :rules="[
121
+ {
122
+ pattern: /^\+?[0-9]\d*$/,
123
+ message: '请输入正确的数量',
124
+ trigger: 'blur',
125
+ },
126
+ ]"
127
+ >
128
+ <el-input
129
+ class="input-w"
130
+ v-model="form.matchingPriority"
131
+ placeholder="请输入"
132
+ />
133
+ <el-tooltip
134
+ class="m-l-ss"
135
+ effect="dark"
136
+ :content="$l('输入正整数,数字越大,匹配优先级越高')"
137
+ placement="top"
138
+ >
139
+ <i
140
+ class="n20-icon-xinxitishi"
141
+ style="color: var(--color-text-secondary)"
142
+ ></i
143
+ ></el-tooltip>
144
+ </el-form-item>
145
+ <!-- 是否自动确认 -->
146
+ <el-form-item
147
+ :label="$l('是否自动确认')"
148
+ class="m-b-m auto-form-item"
149
+ prop="isAutoConfirm"
150
+ >
151
+ <el-radio-group v-model="form.isAutoConfirm">
152
+ <el-radio :label="1">{{ $l("是") }}</el-radio>
153
+ <el-radio :label="0">{{ $l("否") }}</el-radio>
154
+ </el-radio-group>
155
+ </el-form-item>
156
+ <el-form-item
157
+ :label="$l('合并频次')"
158
+ class="m-b-m auto-form-item"
159
+ prop="frequencyMergingName"
160
+ >
161
+ <el-input
162
+ class="input-w"
163
+ disabled
164
+ v-model="form.frequencyMergingName"
165
+ placeholder="请输入"
166
+ />
167
+ </el-form-item>
168
+ <el-form-item class="col-span-24" prop="dimensionsMergingList">
169
+ <template slot="label">
170
+ {{ $l("合并维度") }}
171
+ <i
172
+ class="n20-icon-xinxitishi"
173
+ v-title="$l('空视为特定值,全部为空则一致')"
174
+ style="color: var(--color-text-secondary)"
175
+ ></i>
176
+ </template>
177
+ <el-checkbox-group
178
+ v-model="form.dimensionsMergingList"
179
+ @change="changeDimensions"
180
+ >
181
+ <el-checkbox
182
+ :label="item.fieldCode"
183
+ :disabled="item.disabled"
184
+ v-for="item in dimensionsList"
185
+ :key="item.fieldCode"
186
+ >{{ item.fieldName }}</el-checkbox
187
+ >
188
+ </el-checkbox-group>
189
+ </el-form-item>
190
+ </n20-expandable-pane>
191
+ </el-form>
192
+ </template>
193
+
194
+ <script>
195
+ import { SCOPE_OPTIONS } from "../../AutoFillService/src/components/config.js";
196
+ import { getSession } from "@/utils/session";
197
+ import { flatData } from "@/utils/index.js";
198
+ import { $l } from "n20-common-lib/src/utils/i18n";
199
+ import { axios } from "n20-common-lib";
200
+ export default {
201
+ name: "merageBasic",
202
+ props: {
203
+ settingSource: {
204
+ type: [String, Number],
205
+ default: "2",
206
+ },
207
+
208
+ form: {
209
+ type: Object,
210
+ default: () => {},
211
+ },
212
+ // 禁用 适用业务 默认不禁用
213
+ disableFillBuss: {
214
+ type: Boolean,
215
+ default: false,
216
+ },
217
+ },
218
+ created() {
219
+ this.$set(this.form, "usedAccountType", "THIRD_ACCOUNT");
220
+ this.$set(this.form, "frequencyMerging", "day");
221
+ this.$set(this.form, "frequencyMergingName", "日");
222
+ this.$set(this.form, "dimensionsMergingList", ["unitName", "currencyName"]);
223
+ this.$set(this.form, "matchingRuleType", "INDEPENDENT");
224
+ // this.extendInit();
225
+ },
226
+ components: {
227
+ SelectTreeUnitForm: () => import("../../SelectTreeUnitForm/src/main.vue"),
228
+ Bank: () => import("../../Bank/src/main.vue"),
229
+ },
230
+ data(vm) {
231
+ this.scopeOptions = SCOPE_OPTIONS;
232
+ return {
233
+ dimensionsList: [],
234
+ multipleHitOptions: [
235
+ { value: 1, label: $l("不命中") },
236
+ { value: 2, label: $l("命中实际付款日最早数据") },
237
+ { value: 3, label: $l("命中实际付款日最晚数据") },
238
+ ],
239
+ methodOptions: [
240
+ {
241
+ label: "预先补填",
242
+ value: "GENERAL",
243
+ },
244
+ {
245
+ label: "完结补填",
246
+ value: "INDEPENDENT",
247
+ },
248
+ ],
249
+ defaultSelect: [],
250
+ userUnitNo: getSession("userInfo").cltNo,
251
+ rules: {
252
+ frequencyMergingName: [
253
+ {
254
+ required: true,
255
+ message: vm.$l("请输入合并频次"),
256
+ trigger: "blur",
257
+ },
258
+ ],
259
+ dimensionsMergingList: [
260
+ {
261
+ required: true,
262
+ message: vm.$l("请选择合并维度"),
263
+ trigger: "change",
264
+ },
265
+ ],
266
+ matchingRuleType: [
267
+ {
268
+ required: true,
269
+ message: vm.$l("请选择规则类型"),
270
+ trigger: "change",
271
+ },
272
+ ],
273
+ usedScope: [
274
+ {
275
+ required: true,
276
+ message: vm.$l("请选择适用范围"),
277
+ trigger: "change",
278
+ },
279
+ ],
280
+ isAutoConfirm: [
281
+ {
282
+ required: true,
283
+ message: vm.$l("请选择是否自动确认"),
284
+ trigger: "change",
285
+ },
286
+ ],
287
+ },
288
+ unitOptions: [],
289
+ };
290
+ },
291
+ watch: {
292
+ "form.usedUnit": {
293
+ handler(val) {
294
+ try {
295
+ this.defaultSelect = JSON.parse(val);
296
+ this.$nextTick(() => {
297
+ this.$refs.selectTreeUnitForm?.upDateShowValue(true);
298
+ });
299
+ } catch {}
300
+ },
301
+ deep: true,
302
+ },
303
+ },
304
+ mounted() {
305
+ this.init();
306
+ },
307
+ methods: {
308
+ async init() {
309
+ this.$set(this.form, "usedScope", "all");
310
+ let res = await axios.get(
311
+ `/api/aims/record/record-matching/1.0/matching-field-setting/3/2`,
312
+ {
313
+ usedAccountType: "THIRD_ACCOUNT",
314
+ },
315
+ );
316
+ this.dimensionsList = (res.data || []).map((item) => {
317
+ return {
318
+ ...item,
319
+ disabled: ["unitName", "currencyName"].includes(item.fieldCode),
320
+ };
321
+ });
322
+ this.changeDimensions(this.form.dimensionsMergingList);
323
+ },
324
+ changeDimensions(val) {
325
+ if (!val || val.length === 0) return;
326
+ let temp = this.dimensionsList.filter((item) =>
327
+ val.includes(item.fieldCode),
328
+ );
329
+ this.$emit("changeDimensions", temp);
330
+ },
331
+ applyAccountChange(val) {
332
+ this.$emit("handleAccountChange", val);
333
+ },
334
+ handleBankChange(val) {
335
+ this.$set(
336
+ this.form,
337
+ "usedBanks",
338
+ val.map((item) => {
339
+ return {
340
+ bankCode: item.bankNo,
341
+ bankName: item.bankName,
342
+ };
343
+ }),
344
+ );
345
+ },
346
+ HandleRadioChange(val) {
347
+ this.$emit("radioChange", val);
348
+ },
349
+ extendInit() {
350
+ // this.$set(this.form, "refillBasis", 1);
351
+ },
352
+ applyRangeChange(val) {
353
+ if (val === "all") {
354
+ this.defaultSelect = [];
355
+ this.$nextTick(() => {
356
+ this.$refs.selectTreeUnitForm?.upDateShowValue(true);
357
+ });
358
+ this.$refs.formRef.clearValidate("cltNo");
359
+ this.$emit("unitOptions", []);
360
+ }
361
+ },
362
+ dataChange(val, type) {
363
+ if (!type) return;
364
+ this.form.usedUnits = [...val].map((item) => {
365
+ return {
366
+ unitNo: item.unitNo,
367
+ unitName: item.unitName,
368
+ treeNo: item.treeNo,
369
+ };
370
+ });
371
+ if (this.form.usedScope === "unit_and_sub") {
372
+ let unita = [];
373
+ flatData(val, unita);
374
+ let unitData = [];
375
+ unita.forEach((item) => {
376
+ if (!unitData.find((a) => a.unitNo === item.unitNo)) {
377
+ unitData.push(item);
378
+ }
379
+ });
380
+ this.$emit("unitOptions", [...unitData]);
381
+ return;
382
+ }
383
+ this.$emit("unitOptions", [...val]);
384
+ },
385
+ async submit() {
386
+ await this.$refs.formRef.validate();
387
+ },
388
+ },
389
+ };
390
+ </script>