olp-table 5.3.1 → 5.3.4

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 (171) hide show
  1. package/.env.build +1 -0
  2. package/README.md +26 -0
  3. package/babel.config.js +5 -0
  4. package/jsconfig.json +22 -0
  5. package/{olp-table.common.js → olp-table/olp-table.common.js} +5 -5
  6. package/{olp-table.umd.js → olp-table/olp-table.umd.js} +5 -5
  7. package/{olp-table.umd.min.js → olp-table/olp-table.umd.min.js} +3 -3
  8. package/package.json +92 -12
  9. package/public/favicon.ico +0 -0
  10. package/public/index.html +17 -0
  11. package/rmMode.bat +1 -0
  12. package/src/App.vue +199 -0
  13. package/src/api/crud.js +22 -0
  14. package/src/api/dist.js +6 -0
  15. package/src/assets/iconfont/iconfont.css +20 -0
  16. package/src/assets/iconfont/iconfont.json +16 -0
  17. package/src/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/assets/iconfont/iconfont.woff +0 -0
  19. package/src/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/assets/logo.png +0 -0
  21. package/src/components/auto-height/index.vue +75 -0
  22. package/src/components/codemirror-tag.vue +100 -0
  23. package/src/components/lazy-load-select.vue +107 -0
  24. package/src/components/ol-dialog-excel.vue +112 -0
  25. package/src/components/ol-dialog-import.vue +304 -0
  26. package/src/components/ol-dialog-json.vue +82 -0
  27. package/src/components/ol-dialog-table.vue +81 -0
  28. package/src/components/ol-dialog-upload-file.vue +208 -0
  29. package/src/components/ol-dict-tag.vue +271 -0
  30. package/src/components/ol-select-dom.vue +71 -0
  31. package/src/components/ol-table-filter.vue +28 -0
  32. package/src/components/ol-table-render.vue +44 -0
  33. package/src/components/ol-table-select.vue +150 -0
  34. package/src/components/pinia-init.vue +18 -0
  35. package/src/components/table/model/ModelMixins.js +43 -0
  36. package/src/components/table/model/model-index.vue +121 -0
  37. package/src/components/table/model/ot-left-right.vue +18 -0
  38. package/src/components/table/model/ot-left-tree-right-table.scss +14 -0
  39. package/src/components/table/model/ot-left-tree-right-table.vue +41 -0
  40. package/src/components/table/model/ot-top-1-bottom-2.vue +39 -0
  41. package/src/components/table/model/ot-top-2-bottom-1.vue +38 -0
  42. package/src/components/table/model/ot-top-2-bottom-2.vue +38 -0
  43. package/src/components/table/model/ot-top-bottom.vue +18 -0
  44. package/src/components/table/model/splitpanesModel.css +22 -0
  45. package/src/components/table/model/splitpanesModel.vue +54 -0
  46. package/src/components/table/ol-form/index.vue +537 -0
  47. package/src/components/table/ol-form-v3/index.vue +455 -0
  48. package/src/components/table/ol-main-form-sub-table/index.vue +601 -0
  49. package/src/components/table/ol-pager/index.vue +46 -0
  50. package/src/components/table/ol-table/components/ol-table-column-config/columnIndex.vue +233 -0
  51. package/src/components/table/ol-table/components/ol-table-column-config/index.vue +145 -0
  52. package/src/components/table/ol-table/components/ol-table-column-dict-color/index.vue +88 -0
  53. package/src/components/table/ol-table/index.vue +232 -0
  54. package/src/components/table/ol-table-operate/index.vue +61 -0
  55. package/src/components/table/ol-table-search/index.vue +17 -0
  56. package/src/components/table/ol-table-tool-btn/index.vue +60 -0
  57. package/src/components/tree/components/o-tree.vue +289 -0
  58. package/src/components/tree/index.vue +46 -0
  59. package/src/components/v-component/index.vue +43 -0
  60. package/src/config/dev-config.js +5 -0
  61. package/src/config/prod-config.js +5 -0
  62. package/src/config/shared-config.js +20 -0
  63. package/src/data.js +9378 -0
  64. package/src/directives/permission/hasPermi.js +63 -0
  65. package/src/directives/permission/hasRole.js +30 -0
  66. package/src/main.js +55 -0
  67. package/src/mixins/VTMixin/DefaultMethods.js +749 -0
  68. package/src/mixins/VTMixin/OTMixinBody.js +105 -0
  69. package/src/mixins/VTMixin/OTMixinBodyFooter.js +93 -0
  70. package/src/mixins/VTMixin/OTMixinBodyMethods.js +420 -0
  71. package/src/mixins/VTMixin/OTMixinColumnMethod.js +450 -0
  72. package/src/mixins/VTMixin/OTMixinInitMethod.js +130 -0
  73. package/src/mixins/VTMixin/OTMixinPager.js +38 -0
  74. package/src/mixins/VTMixin/OTMixinSortable.js +43 -0
  75. package/src/mixins/VTMixin/index.js +18 -0
  76. package/src/package/index.js +20 -0
  77. package/src/plugins/axios.js +61 -0
  78. package/src/store/dict.js +76 -0
  79. package/src/store/dictType.js +52 -0
  80. package/src/store/permi.js +45 -0
  81. package/src/styles/common.scss +37 -0
  82. package/src/styles/index.scss +48 -0
  83. package/src/styles/theme.scss +32 -0
  84. package/src/utils/AESCRUDUtils.js +87 -0
  85. package/src/utils/DateUtils.js +35 -0
  86. package/src/utils/ExcelUtil.js +159 -0
  87. package/src/utils/TableSortUtil.js +91 -0
  88. package/src/utils/columnProp.js +3 -0
  89. package/src/utils/groupCompute.js +68 -0
  90. package/src/utils/http/httpFactory.js +92 -0
  91. package/src/utils/http/httpFactory2.js +79 -0
  92. package/src/utils/http/httpUtil.js +123 -0
  93. package/src/utils/http/httpUtils.js +38 -0
  94. package/src/utils/loadStyle.js +14 -0
  95. package/src/utils/message.js +56 -0
  96. package/src/utils/object.js +80 -0
  97. package/src/utils/security/TokenUtil.js +19 -0
  98. package/src/utils/tree.js +54 -0
  99. package/src/utils/util.js +127 -0
  100. package/src/views/Test/index.vue +77 -0
  101. package/src/views/Test/index2.vue +33 -0
  102. package/src/views/components/btn-config/index.vue +202 -0
  103. package/src/views/components/option-config/index.vue +192 -0
  104. package/src/views/db/chineseToEnglish.vue +127 -0
  105. package/src/views/db/filed.vue +395 -0
  106. package/src/views/db/index.vue +192 -0
  107. package/src/views/db/preview/index.vue +139 -0
  108. package/src/views/db/preview/left.vue +204 -0
  109. package/src/views/db/preview/right.vue +466 -0
  110. package/src/views/groupTable/index.vue +137 -0
  111. package/src/views/groupTable/ol-table-column-config/columnIndex.vue +194 -0
  112. package/src/views/groupTable/ol-table-column-config/index.vue +92 -0
  113. package/src/views/table/add-or-edit/config/base-config/index.vue +539 -0
  114. package/src/views/table/add-or-edit/config/base-config/table-form.vue +333 -0
  115. package/src/views/table/add-or-edit/config/column-config/header-config.vue +475 -0
  116. package/src/views/table/add-or-edit/config/column-config/index.vue +790 -0
  117. package/src/views/table/add-or-edit/config/data/column.js +218 -0
  118. package/src/views/table/add-or-edit/config/data/crud.js +122 -0
  119. package/src/views/table/add-or-edit/config/data/events.js +109 -0
  120. package/src/views/table/add-or-edit/config/data/method.js +127 -0
  121. package/src/views/table/add-or-edit/config/data/option.js +725 -0
  122. package/src/views/table/add-or-edit/config/data/page.js +79 -0
  123. package/src/views/table/add-or-edit/config/field-config/filed-config-table.vue +42 -0
  124. package/src/views/table/add-or-edit/config/field-config/index.vue +91 -0
  125. package/src/views/table/add-or-edit/config/form-config/index.vue +1179 -0
  126. package/src/views/table/add-or-edit/config/index.vue +376 -0
  127. package/src/views/table/add-or-edit/config/initFormObject.js +25 -0
  128. package/src/views/table/add-or-edit/config/script-config/LeftMeun.vue +71 -0
  129. package/src/views/table/add-or-edit/config/script-config/index.vue +70 -0
  130. package/src/views/table/add-or-edit/config/table-config/btn-config.vue +340 -0
  131. package/src/views/table/add-or-edit/config/table-config/btn-sort.vue +132 -0
  132. package/src/views/table/add-or-edit/config/table-config/index.vue +446 -0
  133. package/src/views/table/add-or-edit/configOld/dataTags/filed-config-table-model.vue +41 -0
  134. package/src/views/table/add-or-edit/configOld/dataTags/filed-config.vue +74 -0
  135. package/src/views/table/add-or-edit/configOld/dataTags/index.vue +439 -0
  136. package/src/views/table/add-or-edit/configOld/dataTags/set-table-sql.vue +79 -0
  137. package/src/views/table/add-or-edit/configOld/dataTags/table-on-config.vue +74 -0
  138. package/src/views/table/add-or-edit/configOld/index.vue +127 -0
  139. package/src/views/table/add-or-edit/configOld/tableTags/columnConfig.js +5 -0
  140. package/src/views/table/add-or-edit/configOld/tableTags/index.vue +353 -0
  141. package/src/views/table/add-or-edit/configOld/tableTags/operation-but-config.vue +75 -0
  142. package/src/views/table/add-or-edit/configOld/tableTags/tool-but-config.vue +92 -0
  143. package/src/views/table/add-or-edit/index.vue +201 -0
  144. package/src/views/table/add-or-edit/themeModel/index.vue +53 -0
  145. package/src/views/table/add-or-edit/themeModel/init-model-table.vue +48 -0
  146. package/src/views/table/add-or-edit/themeModel/init-model.vue +81 -0
  147. package/src/views/table/add-or-edit/themeModel/left-right.vue +24 -0
  148. package/src/views/table/add-or-edit/themeModel/left-tree-right-table.vue +75 -0
  149. package/src/views/table/add-or-edit/themeModel/olTableSearchModelMixins.js +42 -0
  150. package/src/views/table/add-or-edit/themeModel/splitpanesThemeModel.vue +49 -0
  151. package/src/views/table/add-or-edit/themeModel/top-1-bottom-2.vue +29 -0
  152. package/src/views/table/add-or-edit/themeModel/top-2-bottom-1.vue +32 -0
  153. package/src/views/table/add-or-edit/themeModel/top-2-bottom-2.vue +32 -0
  154. package/src/views/table/add-or-edit/themeModel/top-bottom.vue +14 -0
  155. package/src/views/table/index.vue +43 -0
  156. package/src/views/table/index2.vue +199 -0
  157. package/src/views/table/preview/index.vue +29 -0
  158. package/src/views/tree/components/config-core-data.vue +85 -0
  159. package/src/views/tree/components/config-core-table.vue +362 -0
  160. package/src/views/tree/components/config-core-tree/data/events.js +95 -0
  161. package/src/views/tree/components/config-core-tree/data/option.js +88 -0
  162. package/src/views/tree/components/config-core-tree/data/prop.js +28 -0
  163. package/src/views/tree/components/config-core-tree/index.vue +181 -0
  164. package/src/views/tree/components/config-core.vue +42 -0
  165. package/src/views/tree/components/form-config/index.vue +967 -0
  166. package/src/views/tree/index.vue +424 -0
  167. package/vue.config.js +44 -0
  168. /package/{demo.html → olp-table/demo.html} +0 -0
  169. /package/{fonts → olp-table/fonts}/iconfont.1720006583309.7e4906d9.woff +0 -0
  170. /package/{fonts → olp-table/fonts}/iconfont.1720006583309.947a27f0.ttf +0 -0
  171. /package/{olp-table.css → olp-table/olp-table.css} +0 -0
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <slot name="left"></slot>
3
+ <template v-if="$attrs.value !== undefined">
4
+ <vxe-button class="table-right-operation-but"
5
+ v-for="obj in $attrs.value" type="text" :status="obj['status']"
6
+ :loading="bindLoading(obj,props.row)"
7
+ :disabled="getCallBack('disabledCallBack',obj,props.row,false)"
8
+ v-show="getCallBack('showCallBack',obj,props.row,true)"
9
+ @click="$emit('handleOperationClick',{row:props.row,obj:obj,setLoading:setLoading})">
10
+ <i :class="obj['icon']"></i>{{ obj['name'] }}
11
+ </vxe-button>
12
+ </template>
13
+ <slot name="right"></slot>
14
+ </template>
15
+ <script>
16
+ export default {
17
+ name: 'olTableOperate'
18
+ }
19
+ </script>
20
+ <script scope setup>
21
+ import {computed} from "@vue/runtime-core";
22
+ import {reactive, defineProps} from "vue";
23
+
24
+ const props = defineProps({
25
+ row: {
26
+ required: true,
27
+ type: Object
28
+ }
29
+ })
30
+ const getCallBack = (type, obj, row, reVal) => {
31
+ if (obj[type]) {
32
+ try {
33
+ const dynamicFunc = new Function('row', obj[type]);
34
+ const result = dynamicFunc(row); // 返回 true 或 undefined
35
+ if (result != undefined) {
36
+ return result;
37
+ }
38
+ } catch (e) {
39
+ }
40
+ }
41
+ return reVal;
42
+ }
43
+ const setLoading = (o, r, v) => {
44
+ loading[o.code + r._X_ROW_KEY] = v;
45
+ }
46
+ const loading = reactive({})
47
+ const bindLoading = computed(() => (o, row) => {
48
+ if (o.loading == 1) {
49
+ if (loading[o.code + row._X_ROW_KEY] == undefined) {
50
+ loading[o.code + row._X_ROW_KEY] = false;
51
+ }
52
+ }
53
+ return loading[o.code + row._X_ROW_KEY];
54
+ })
55
+
56
+ </script>
57
+ <style lang="less" scoped>
58
+ .table-right-operation-but {
59
+ margin: 0;
60
+ }
61
+ </style>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <vxe-form v-bind="$attrs.formConfig">
3
+ <template v-for='item in $attrs.formConfig.items' v-slot:[item.slotsName]>
4
+ <olSelectDom :item="item" v-model="$attrs.formConfig.data[item.key]"/>
5
+ </template>
6
+ </vxe-form>
7
+ </template>
8
+ <script>
9
+ export default {
10
+ name: 'olTableSearch',
11
+ }
12
+ </script>
13
+ <style lang="less" scoped>
14
+ .table-right-operation-but {
15
+ margin: 0;
16
+ }
17
+ </style>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <div>
3
+ <slot name="left"></slot>
4
+ <template v-if="$attrs.value!== undefined">
5
+ <vxe-button
6
+ v-hasPermi="[currentPermi+obj.code]"
7
+ v-for="obj in $attrs.value"
8
+ :key="obj.code"
9
+ :status="obj['status']"
10
+ :disabled="obj['disabled']"
11
+ v-show="obj['show']"
12
+ :circle="obj.alignMode === 'right' &&!obj['status']"
13
+ :loading="loading[obj.code]"
14
+ @click="handleToolbarBtnClick(obj.code)"
15
+ >
16
+ <span v-if="obj.alignMode === 'right' &&!obj['status']" :title="obj.name">
17
+ <i :class="obj['icon']"></i>
18
+ </span>
19
+ <span v-else-if="obj.code === 'sortable'">
20
+ <i style="color:#1677FF" :class=" obj.values? 'vxe-icon-checkbox-checked' : 'vxe-icon-checkbox-unchecked'"></i>{{
21
+ obj['name']
22
+ }}
23
+ </span>
24
+ <span v-else>
25
+ <i :class="obj['icon']"></i>{{ obj['name'] }}
26
+ </span>
27
+ </vxe-button>
28
+ </template>
29
+ <slot name="right"></slot>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ export default {
35
+ name: 'olTableToolBtn',
36
+ props: {
37
+ currentPermi: {
38
+ type: String,
39
+ default: '',
40
+ required: false
41
+ }
42
+ },
43
+ data() {
44
+ return {
45
+ loading: this.$attrs.loading
46
+ };
47
+ },
48
+ methods: {
49
+ handleToolbarBtnClick(code) {
50
+ this.$emit('toolbarBtnClick', code);
51
+ }
52
+ }
53
+ };
54
+ </script>
55
+
56
+ <style lang="less" scoped>
57
+ .table-right-operation-but {
58
+ margin: 0;
59
+ }
60
+ </style>
@@ -0,0 +1,289 @@
1
+ <template>
2
+ <div :style="'width:'+(treeConfig.width+'px')">
3
+ <div class="search" v-if="treeConfig.search == 1">
4
+ <el-input placeholder="关键字搜索" v-model="filterText" clearable>
5
+ </el-input>
6
+ </div>
7
+ <div class="tree">
8
+ <div class="title" v-if="treeConfig.title || toolButOptions.length >0">
9
+ <b style="font-size: 16px" v-if="treeConfig.title">{{ treeConfig.title }}</b>
10
+ <span @click="handleOperationClick('add')" v-if="toolButOptions.map(o=>o.code).indexOf('add') != -1"
11
+ style="position: absolute;right: 5px;font-size: 18px;line-height: 20px;cursor: pointer;">
12
+ <el-tooltip class="item" effect="dark" content="新增" placement="top">
13
+ <i class="vxe-icon-add" style="margin-right:5px;"></i>
14
+ </el-tooltip>
15
+ </span>
16
+ </div>
17
+ <el-scrollbar style="height: calc(100% - 70px)" v-loading="loading" element-loading-text="正在加载数据中...">
18
+ <el-tree ref="treeBox"
19
+ :lazy="treeConfig.lazy == 1"
20
+ :data="data"
21
+ :load="load"
22
+ :show-border="false"
23
+ :expand-on-click-node="treeConfig['expand-on-click-node']"
24
+ :default-expand-all="treeConfig.lazy == 0 && treeConfig.firstExpandAll == 1"
25
+ :props="props"
26
+ v-bind="$attrs"
27
+ @nodeClick="nodeClick"
28
+ :show-checkbox="treeConfig.showCheckbox == 1"
29
+ :highlight-current="true"
30
+ :filter-node-method="filterNode">
31
+ <template #default="{ node, data }">
32
+ <span class="custom-tree-node">
33
+ <span>{{ node.label }}</span>
34
+ <span style="position: absolute;right: 5px">
35
+ <olTableOperate :row="data" :value="toolButOptions"
36
+ @handleOperationClick="handleOperationClick($event)"></olTableOperate>
37
+ </span>
38
+ </span>
39
+ </template>
40
+ </el-tree>
41
+ </el-scrollbar>
42
+ </div>
43
+ <olForm ref="form" @query="doQuery"></olForm>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+
49
+ import olTableOperate from "@/components/table/ol-table-operate/index.vue";
50
+ import {handleTree} from "@/utils/tree";
51
+ import {useMessage} from "@/utils/message";
52
+ import {fillTemplate} from "@/utils/object";
53
+ import olForm from "@/components/table/ol-form/index.vue";
54
+ import {post} from "@/utils/http/httpUtils";
55
+
56
+ const {error} = useMessage() // 消息弹窗
57
+ export default {
58
+ name: "oTree",
59
+ components: {olForm, olTableOperate},
60
+ props: {
61
+ treeConfig: {},
62
+ toolButOptions: {},
63
+ formMainList: {}
64
+ },
65
+ inject: ['tableAll', 'http'],
66
+ computed: {
67
+ props() {
68
+ return {
69
+ key: this.treeConfig.value,
70
+ label: this.treeConfig.label,
71
+ children: this.treeConfig.children
72
+ }
73
+ }
74
+ },
75
+ data() {
76
+ return {
77
+ data: [],
78
+ search: '关键字搜索',
79
+ filterText: "",
80
+ loading: false,
81
+ value: '',
82
+ }
83
+ },
84
+ methods: {
85
+ nodeClick(params) {
86
+ if (this.treeConfig.optionJson.eventsValue && this.treeConfig.optionJson.eventsValue['node-click']) {
87
+ eval(this.treeConfig.optionJson.eventsValue['node-click']);
88
+ } else if (this.treeConfig.tableQueryParams) {
89
+ this.doRightTable(params)
90
+ }
91
+ },
92
+ doGetParams(param, v, getParams) {
93
+ let kv = param.split(":");
94
+ if (kv.length == 1) {
95
+ getParams[kv[0]] = v[kv[0]]
96
+ } else {
97
+ if (param.indexOf("$") != -1) {
98
+ getParams[kv[0]] = fillTemplate(kv[1], v)
99
+ } else {
100
+ getParams[kv[0]] = v[kv[1]]
101
+ }
102
+
103
+ }
104
+ },
105
+ doRightTable(v) {
106
+ let getParams = {};
107
+ let paramsStr = this.treeConfig.tableQueryParams.trim();
108
+ if (paramsStr.indexOf(",") != -1) {
109
+ let params = paramsStr.split(",");
110
+ for (let param of params) {
111
+ this.doGetParams(param, v, getParams);
112
+ }
113
+ } else {
114
+ this.doGetParams(paramsStr, v, getParams);
115
+ }
116
+ this.tableAll.t1.queryParams(getParams, true);
117
+ },
118
+ async handleOperationClick(e) {
119
+ let {obj, row} = e;
120
+ if (obj.customFunction) {
121
+ eval(obj.customFunction);
122
+ } else if (obj.code == "delete") {
123
+ await this.remove(e);
124
+ } else if (obj.code == 'edit' || obj.code == 'add') {
125
+ let form = {}
126
+ if (obj.code == 'edit') {
127
+ form = this.formMainList.edit
128
+ } else if (obj.code == 'add') {
129
+ form = this.formMainList.add
130
+ }
131
+ let data = {
132
+ type: form.formMain.designer,
133
+ saveUrl: form.formMain.saveUrl,
134
+ formData: row,
135
+ theme: this.theme,
136
+ tableConfigId: this.tableConfigId
137
+ }
138
+ data.form = JSON.parse(form.formJson[data.type == 0 ? 'optionJson' : 'customJson'])
139
+ if (obj.code == 'edit') {
140
+ data.updateKey = form.formMain.updateKey
141
+ this.$refs["form"].init(data, true)
142
+ }
143
+ if (obj.code == 'add') {
144
+ data.formData = {}
145
+ this.$refs["form"].init(data)
146
+ }
147
+ }
148
+ this.$emit("handleOperationClick", e)
149
+ },
150
+ /**
151
+ * 内置删除方法
152
+ * @param o
153
+ * @returns {Promise<void>}
154
+ */
155
+ async remove(o) {
156
+ let {row} = o;
157
+ const type = await this.confirm('数据删除后不可恢复,您确定要删除吗?', '删除提示', 'error')
158
+ if (type != "cancel") {
159
+ /*let params = this.deleteParameter;
160
+ for (let key of Object.keys(this.deleteParameter)) {
161
+ if (key != '$parentId') {
162
+ params[key] = row[key];
163
+ }
164
+ }
165
+ await post(this.http, '/crud/delete', params).then(r => {
166
+ if (r != false) {
167
+ this.query()
168
+ }
169
+ })*/
170
+ }
171
+ },
172
+ load(node, resolve) {
173
+ if (node.level === 0) {
174
+ return;
175
+ } else {
176
+ this.value = node.data[this.treeConfig.value]
177
+ }
178
+ post(this.http, '/online/crud/query', this.getParams()).then(({
179
+ data,
180
+ code,
181
+ msg
182
+ }) => {
183
+ if (code != 200) {
184
+ error(msg);
185
+ return;
186
+ }
187
+ resolve(data.listData)
188
+ })
189
+ },
190
+ getParams(params) {
191
+ if (!params) {
192
+ params = {
193
+ id: this.treeConfig.uuid,
194
+ queryType: 1,
195
+ enablePage: false
196
+ }
197
+ }
198
+ if (this.value) {
199
+ let lazyValue = this.value.trim();
200
+ if (lazyValue.indexOf("=") != -1) {
201
+ params.executeWhere = lazyValue;
202
+ } else {
203
+ params.executeWhere = this.treeConfig.treeParentId.trim() + "='" + lazyValue + "'";
204
+ }
205
+ }
206
+ return params;
207
+ },
208
+ doQuery(params) {
209
+ this.loading = true;
210
+ post(this.http, '/online/crud/query', this.getParams(params), false, false).then(({
211
+ data,
212
+ code,
213
+ msg
214
+ }) => {
215
+ if (code != 200) {
216
+ error(msg);
217
+ return;
218
+ }
219
+ if (this.treeConfig.convertTree == 1) {
220
+ this.data = handleTree(data.listData, this.treeConfig.treeId, this.treeConfig.treeParentId)
221
+ } else {
222
+ this.data = data.listData;
223
+ }
224
+ }).finally(() => {
225
+ this.loading = false;
226
+ });
227
+ },
228
+ filterNode(value, data) {
229
+ if (!this.treeShow) {
230
+ this.treeShow = value;
231
+ }
232
+ if (!value) return true;
233
+ return data[this.treeConfig.label].indexOf(value) !== -1;
234
+ }
235
+ },
236
+ watch: {
237
+ filterText(val) {
238
+ this.$refs.treeBox.filter(val);
239
+ }
240
+ }, created() {
241
+ this.$nextTick(() => {
242
+ if (this.treeConfig.autoInit == 1) {
243
+ if (this.treeConfig.lazy == 1 && this.treeConfig.firstLazyValue != '' && this.treeConfig.firstLazyValue != undefined) {
244
+ this.value = this.treeConfig.firstLazyValue.toString().trim();
245
+ }
246
+ this.doQuery();
247
+ }
248
+ this.$emit("initOk")
249
+ })
250
+ },
251
+
252
+ }
253
+
254
+ </script>
255
+
256
+ <style>
257
+
258
+ </style>
259
+ <style lang="scss" scoped>
260
+ .search {
261
+ height: 38px;
262
+
263
+ div:first-child {
264
+ width: 100%
265
+ }
266
+ }
267
+
268
+ .tree {
269
+ position: relative;
270
+ background-color: white;
271
+ height: 100%;
272
+
273
+ .title {
274
+ height: 20px;
275
+ padding: 6px;
276
+ border-bottom: 1px solid #dcdfe685;
277
+ position: relative;
278
+
279
+ b {
280
+ position: relative;
281
+ font-size: 14px
282
+ }
283
+
284
+ div {
285
+ font-size: 8px;
286
+ }
287
+ }
288
+ }
289
+ </style>
@@ -0,0 +1,46 @@
1
+ <template>
2
+ <o-tree ref="oTree" style="height: 100%" v-if="treeConfig.uuid" v-bind="$attrs" :treeConfig="treeConfig"
3
+ :toolButOptions="toolButOptions" :formMainList="formMainList"></o-tree>
4
+ </template>
5
+
6
+ <script>
7
+ import OTree from "@/components/tree/components/o-tree.vue";
8
+ import {get} from "@/utils/http/httpUtils";
9
+
10
+ export default {
11
+ name: "olTree",
12
+ components: {OTree},
13
+ inject:['http'],
14
+ props: {
15
+ uuid: {}
16
+ },
17
+ data() {
18
+ return {
19
+ treeConfig: {},
20
+ toolButOptions: [],
21
+ formMainList: {}
22
+ }
23
+ },
24
+ methods: {
25
+ init() {
26
+ get(this.http,'/online/treeConfig/getJson', {uuid: this.uuid}).then(({treeConfig, toolButOptions,formMainList}) => {
27
+ treeConfig.optionJson = JSON.parse(treeConfig.optionJson);
28
+ if (treeConfig.optionJson.optionValue) {
29
+ for (let key of Object.keys(treeConfig.optionJson.optionValue)) {
30
+ treeConfig[key] = treeConfig.optionJson.optionValue[key];
31
+ }
32
+ }
33
+ this.treeConfig = treeConfig;
34
+ this.toolButOptions = toolButOptions;
35
+ this.formMainList = formMainList
36
+ })
37
+ }
38
+ }, created() {
39
+ if (this.uuid) {
40
+ this.init();
41
+ }
42
+ }
43
+
44
+ }
45
+
46
+ </script>
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <component v-bind="$attrs" ref="components" v-if="show && customUrl != undefined" :is="customUrl"/>
3
+ </template>
4
+ <script>
5
+ import {useMessage} from "@/utils/message";
6
+
7
+ const msg = useMessage() // 消息弹窗
8
+
9
+ export default {
10
+ name: 'olComponent',
11
+ data() {
12
+ return {
13
+ customUrl: undefined,
14
+ show: false,
15
+ }
16
+ },
17
+ methods: {
18
+ setComponent(url, method, props) {
19
+ this.show = false;
20
+ try {
21
+ this.customUrl = require(`@/${url}`).default
22
+ this.$nextTick(() => {
23
+ this.show = true;
24
+ if (method) {
25
+ this.$nextTick(async () => {
26
+ this.$refs.components[method](props);
27
+ })
28
+ }
29
+ })
30
+ } catch (e) {
31
+ msg.error("找不到路径:" + `@/${url}`)
32
+ }
33
+ },
34
+ handleClose() {
35
+ this.show = false;
36
+ this.customUrl = undefined;
37
+ this.$emit('close')
38
+ }
39
+ },
40
+ created() {
41
+ }
42
+ }
43
+ </script>
@@ -0,0 +1,5 @@
1
+
2
+ module.exports = {
3
+ //服务地址
4
+ SERVER_ADDR: "http://172.18.10.13:8888"
5
+ }
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ //服务地址
3
+ SERVER_ADDR: "http://121.37.0.247:8889"
4
+ //SERVER_ADDR: "http://172.18.10.13:8888"
5
+ }
@@ -0,0 +1,20 @@
1
+ const dev = require("./dev-config")
2
+ const prod = require("./prod-config")
3
+
4
+ module.exports = {
5
+ //系统名称
6
+ VUE_APP_TITLE: "后台基础框架管理系统",
7
+ // 部署时的URL
8
+ PUBLIC_PATH: "/",
9
+ // 打包出入目录
10
+ OUT_PUT_DIR: "online-web",
11
+ //后台服务名称
12
+ VUE_APP_BASE_API: "online-server",
13
+ //后台服务地址
14
+ SERVER_ADDR: process.env.NODE_ENV == "development" ? dev.SERVER_ADDR : prod.SERVER_ADDR,
15
+ //token头部信息
16
+ TOKEN_AUTHENTICATION:"Authorization",
17
+ //设置请求超时时间,单位毫秒
18
+ REQUEST_TIME_OUT: 1000 * 60
19
+
20
+ }