vue2-client 1.4.64 → 1.5.0

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.
@@ -1,262 +1,504 @@
1
- <template>
2
- <div>
3
- <a-row :gutter="48">
4
- <a-col>
5
- <span :style="{ float: 'left', overflow: 'hidden', marginBottom: '8px' }">
6
- <slot name="expand"></slot>
7
- </span>
8
- </a-col>
9
- <a-col>
10
- <span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">
11
- <a-button-group>
12
- <a-button @click="toggleIsFormShow">
13
- <a-icon :style="iconStyle" type="vertical-align-top"/>
14
- </a-button>
15
- <a-button @click="refresh(true)">
16
- <a-icon :style="iconStyle" type="reload" />
17
- </a-button>
18
- <table-setting v-model="tableColumns" />
19
- </a-button-group>
20
- </span>
21
- </a-col>
22
- </a-row>
23
- <s-table
24
- ref="table"
25
- :alert="true"
26
- :columns="tableColumns"
27
- :data="loadData"
28
- :rowKey="rowKey"
29
- :rowSelection="rowSelection"
30
- :scroll="{ x: scrollXWidth, y: scrollYWidth }"
31
- :showPagination="showPagination"
32
- size="default"
33
- >
34
- <template
35
- v-for="(item, index) in tableColumns"
36
- :slot="item.dataIndex"
37
- slot-scope="text, record">
38
- <!-- 文本溢出省略(ellipsis) -->
39
- <span v-if="item.slotType === 'ellipsis'" :key="index">
40
- <ellipsis :length="item.slotValue" tooltip>{{ text === '' ? '--' : text }}</ellipsis>
41
- </span>
42
- <!-- 徽标(badge) -->
43
- <span v-else-if="item.slotType === 'badge'" :key="index">
44
- <x-badge :badge-key="item.slotKeyMap" :value="text" />
45
- </span>
46
- <!-- 日期(date) -->
47
- <span v-else-if="item.slotType === 'date'" :key="index">
48
- {{ format(text,'yyyy-MM-dd') }}
49
- </span>
50
- <!-- 日期时间(datetime) -->
51
- <span v-else-if="item.slotType === 'dateTime'" :key="index">
52
- {{ format(text,'yyyy-MM-dd hh:mm:ss') }}
53
- </span>
54
- <!-- 操作列(action) -->
55
- <span v-else-if="item.slotType === 'action'" :key="index">
56
- <a @click="action(record, item.dataIndex)">{{ item.slotValue }}</a>
57
- </span>
58
- </template>
59
- <template slot="footer">
60
- <slot name="footer"></slot>
61
- </template>
62
- </s-table>
63
- </div>
64
- </template>
65
- <script>
66
- import { Ellipsis, STable } from '@vue2-client/components'
67
- import { formatDate } from '@vue2-client/utils/util'
68
- import XBadge from '@vue2-client/base-client/components/common/XBadge'
69
- import TableSetting from '@vue2-client/components/TableSetting/TableSetting'
70
-
71
- export default {
72
- name: 'XTable',
73
- components: {
74
- TableSetting,
75
- STable,
76
- Ellipsis,
77
- XBadge
78
- },
79
- data () {
80
- return {
81
- // 加载数据方法 必须为 Promise 对象
82
- loadData: parameter => {
83
- // 取到表格携带的表单参数
84
- const requestParameters = Object.assign({}, parameter)
85
- // 取到父组件传入的表单参数
86
- const conditionParams = Object.assign(this.fixedQueryForm, this.form)
87
- // 如果适用了综合筛选表单,则进行数据处理
88
- if (conditionParams.rowIdName) {
89
- const rowIdName = conditionParams.rowIdName
90
- const rowIdValue = conditionParams.rowIdValue
91
- delete conditionParams.rowIdName
92
- delete conditionParams.rowIdValue
93
- if (rowIdValue) {
94
- conditionParams[rowIdName] = rowIdValue
95
- }
96
- }
97
- // 如果传了燃气公司字段,则进行数据处理
98
- if (conditionParams.orgName) {
99
- requestParameters.orgName = conditionParams.orgName
100
- delete conditionParams.orgName
101
- }
102
- requestParameters.conditionParams = conditionParams
103
- requestParameters.queryParamsName = this.queryParamsName
104
- requestParameters.queryParams = this.queryParams
105
- // 加载数据
106
- return this.loadTableData(requestParameters)
107
- },
108
- rowKey: undefined,
109
- scrollXWidth: 1600,
110
- scrollYWidth: 437,
111
- selectedRowKeys: [],
112
- selectedRows: [],
113
- // 数据列
114
- tableColumns: this.jsonData,
115
- // 是否显示展示列抽屉
116
- visible: false,
117
- loading: false,
118
- dataSource: [],
119
- // 图标样式
120
- iconStyle: {
121
- position: 'relative',
122
- top: '1px'
123
- }
124
- }
125
- },
126
- watch: {
127
- form (rel) {
128
- this.form = rel
129
- this.refresh(true)
130
- },
131
- jsonData () {
132
- this.initTableParams()
133
- }
134
- },
135
- props: {
136
- jsonData: {
137
- type: Array,
138
- default: () => {
139
- return []
140
- }
141
- },
142
- queryParamsName: {
143
- type: String,
144
- default: () => {
145
- return ''
146
- }
147
- },
148
- // 查询参数对象, 用于没有对应查询配置文件名时
149
- queryParams: {
150
- type: Object,
151
- default: null
152
- },
153
- form: {
154
- type: Object,
155
- default: () => {
156
- return {}
157
- }
158
- },
159
- // 固定查询表单
160
- fixedQueryForm: {
161
- type: Object,
162
- default: () => {
163
- return {}
164
- }
165
- },
166
- // 按钮
167
- buttonState: {
168
- type: Object,
169
- default: () => {
170
- return undefined
171
- }
172
- },
173
- // 数据只有一页时是否展示分页,true:展示,auto:隐藏
174
- showPagination: {
175
- type: Boolean,
176
- default: true
177
- }
178
- },
179
- computed: {
180
- rowSelection () {
181
- return {
182
- selectedRowKeys: this.selectedRowKeys,
183
- onChange: this.onSelectChange
184
- }
185
- }
186
- },
187
- mounted () {
188
- this.initTableParams()
189
- },
190
- methods: {
191
- badgeFilter (key, value) {
192
- return this.$appdata.getParam(key, value)
193
- },
194
- initTableParams () {
195
- let totalWidth = 0
196
- this.rowKey = this.tableColumns[0].dataIndex
197
- for (let i = 0; i < this.tableColumns.length; i++) {
198
- const item = this.tableColumns[i]
199
- if (item.slotType === 'action') {
200
- item.fixed = 'right'
201
- item.width = 70
202
- }
203
- if (item.width) {
204
- totalWidth = totalWidth + item.width
205
- } else {
206
- totalWidth = totalWidth + 180
207
- }
208
- }
209
- const width = document.documentElement.clientWidth
210
- if (width >= 1600) {
211
- this.scrollYWidth = 429
212
- } else if (width >= 1200) {
213
- this.scrollYWidth = 390
214
- } else {
215
- this.scrollYWidth = 343
216
- }
217
- // 横向滚动长度大于所有宽度,才能实现固定表头
218
- this.scrollXWidth = totalWidth
219
- },
220
- loadTableData (requestParameters) {
221
- let data = []
222
- this.$emit('loadData', requestParameters, val => {
223
- data = val
224
- })
225
- const _this = this
226
- data.then(res => {
227
- _this.dataSource = res.data
228
- })
229
- return data
230
- },
231
- action (record, actionType) {
232
- this.$emit('action', record, record[this.jsonData[0].dataIndex], actionType)
233
- },
234
- onSelectChange (selectedRowKeys, selectedRows) {
235
- this.selectedRowKeys = selectedRowKeys
236
- this.selectedRows = selectedRows
237
- this.$emit('selectRow', selectedRowKeys, selectedRows)
238
- },
239
- clearRowKeys () {
240
- this.$refs.table.clearSelected()
241
- },
242
- /**
243
- * 表格重新加载方法
244
- * 如果参数为 true, 则强制刷新到第一页
245
- */
246
- refresh (bool) {
247
- this.$refs.table.refresh(bool)
248
- },
249
- format (date, format) {
250
- return formatDate(date, format)
251
- },
252
- showDrawer () {
253
- this.visible = true
254
- },
255
- toggleIsFormShow () {
256
- this.$emit('toggleIsFormShow')
257
- }
258
- }
259
- }
260
- </script>
261
- <style lang="less" scoped>
262
- </style>
1
+ <template>
2
+ <div>
3
+ <a-row :gutter="48">
4
+ <a-col>
5
+ <span :style="{ float: 'left', overflow: 'hidden', marginBottom: '8px' }">
6
+ <a-space>
7
+ <a-button v-if="!buttonState || buttonState.add" type="primary" @click="add">
8
+ <a-icon :style="iconStyle" type="plus"/>新增
9
+ </a-button>
10
+ <a-button
11
+ v-if="!buttonState || buttonState.edit"
12
+ :disabled="!isModify"
13
+ :loading="editLoading"
14
+ class="btn-success"
15
+ type="dashed"
16
+ @click="edit">
17
+ <a-icon :style="iconStyle" type="edit"/>修改
18
+ </a-button>
19
+ <a-button v-if="!buttonState || buttonState.delete" :disabled="!isDelete" type="danger" @click="deleteItem">
20
+ <a-icon :style="iconStyle" type="delete"/>删除
21
+ </a-button>
22
+ <a-button v-if="!buttonState || buttonState.import" type="dashed" @click="importData">
23
+ <a-icon :style="iconStyle" type="import" />导入
24
+ </a-button>
25
+ <a-dropdown v-if="!buttonState || buttonState.export">
26
+ <a-menu slot="overlay">
27
+ <a-menu-item :disabled="selectedRowKeys.length === 0" key="1" @click="handleExport(true)"><a-icon :style="iconStyle" type="ordered-list" />导出选中数据</a-menu-item>
28
+ <a-menu-item key="2" @click="handleExport(false)"><a-icon :style="iconStyle" type="snippets" />导出本页数据</a-menu-item>
29
+ <a-menu-item key="3" @click="handleExportByQuery"><a-icon :style="iconStyle" type="download" />导出所有符合条件的数据</a-menu-item>
30
+ </a-menu>
31
+ <a-button>导出 <a-icon type="down" /> </a-button>
32
+ </a-dropdown>
33
+ <slot :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows" name="button"></slot>
34
+ </a-space>
35
+ <slot name="expand"></slot>
36
+ </span>
37
+ </a-col>
38
+ <a-col>
39
+ <span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">
40
+ <a-button-group>
41
+ <slot name="rightBtnExpand"></slot>
42
+ <a-button @click="refresh(true)">
43
+ <a-icon :style="iconStyle" type="reload" />
44
+ </a-button>
45
+ <table-setting v-if="columnSelectLoaded" v-model="tableColumns" />
46
+ </a-button-group>
47
+ </span>
48
+ </a-col>
49
+ </a-row>
50
+ <s-table
51
+ ref="table"
52
+ :alert="true"
53
+ :columns="tableColumns"
54
+ :data="loadData"
55
+ :rowKey="rowKey"
56
+ :rowSelection="rowSelection"
57
+ :scroll="{ x: scrollXWidth, y: scrollYHeight }"
58
+ :showPagination="showPagination"
59
+ size="default"
60
+ >
61
+ <template
62
+ v-for="(item, index) in tableColumns"
63
+ :slot="item.dataIndex"
64
+ slot-scope="text, record">
65
+ <!-- 文本溢出省略(ellipsis) -->
66
+ <span v-if="item.slotType === 'ellipsis'" :key="index">
67
+ <ellipsis :length="item.slotValue" tooltip>{{ text === '' ? '--' : text }}</ellipsis>
68
+ </span>
69
+ <!-- 徽标(badge) -->
70
+ <span v-else-if="item.slotType === 'badge'" :key="index">
71
+ <x-badge :badge-key="item.slotKeyMap" :value="text" />
72
+ </span>
73
+ <!-- 日期(date) -->
74
+ <span v-else-if="item.slotType === 'date'" :key="index">
75
+ {{ format(text,'yyyy-MM-dd') }}
76
+ </span>
77
+ <!-- 日期时间(datetime) -->
78
+ <span v-else-if="item.slotType === 'dateTime'" :key="index">
79
+ {{ format(text,'yyyy-MM-dd hh:mm:ss') }}
80
+ </span>
81
+ <!-- 操作列(action) -->
82
+ <span v-else-if="item.slotType === 'action'" :key="index">
83
+ <a @click="action(record, item.dataIndex)">{{ item.slotValue }}</a>
84
+ </span>
85
+ </template>
86
+ <template slot="footer">
87
+ <slot name="footer"></slot>
88
+ </template>
89
+ </s-table>
90
+ <!-- 上传文件 -->
91
+ <x-import-excel
92
+ ref="importExcel"
93
+ @ok="refresh(true)"
94
+ :title="title"
95
+ :service-name="serviceName"
96
+ :query-params-name="queryParamsName"
97
+ />
98
+ </div>
99
+ </template>
100
+ <script>
101
+ import { Ellipsis, STable } from '@vue2-client/components'
102
+ import { formatDate } from '@vue2-client/utils/util'
103
+ import XBadge from '@vue2-client/base-client/components/common/XBadge'
104
+ import TableSetting from '@vue2-client/components/TableSetting/TableSetting'
105
+ import { exportJson } from '@vue2-client/utils/excel/Export2Excel'
106
+ import { download, query, queryWithResource, remove } from '@vue2-client/services/api/common'
107
+ import XImportExcel from '@vue2-client/base-client/components/common/XImportExcel'
108
+ import { Modal } from 'ant-design-vue'
109
+ import { post } from '@vue2-client/services/api'
110
+ import { CommonTempTable } from '@vue2-client/services/api/commonTempTable'
111
+
112
+ export default {
113
+ name: 'XTable',
114
+ components: {
115
+ TableSetting,
116
+ STable,
117
+ Ellipsis,
118
+ XBadge,
119
+ XImportExcel
120
+ },
121
+ data () {
122
+ return {
123
+ // 筛选列加载状态
124
+ columnSelectLoaded: false,
125
+ // 预览模式
126
+ viewMode: false,
127
+ // 加载数据方法 必须为 Promise 对象
128
+ loadData: parameter => {
129
+ // 取到表格携带的表单参数
130
+ const requestParameters = Object.assign({}, parameter)
131
+ // 取到父组件传入的表单参数
132
+ const conditionParams = Object.assign(this.form, this.fixedQueryForm)
133
+ // 如果传了燃气公司字段,则进行数据处理
134
+ if (conditionParams.orgName) {
135
+ requestParameters.orgName = conditionParams.orgName
136
+ delete conditionParams.orgName
137
+ }
138
+ requestParameters.conditionParams = conditionParams
139
+ requestParameters.queryParamsName = this.queryParamsName
140
+ requestParameters.queryParams = this.queryParams
141
+ // 加载数据
142
+ return this.loadTableData(requestParameters)
143
+ },
144
+ rowKey: undefined,
145
+ // x滚动条宽度
146
+ scrollXWidth: 1600,
147
+ // y滚动条高度
148
+ scrollYHeight: 437,
149
+ // 表格选择列Key集合
150
+ selectedRowKeys: [],
151
+ // 表格选择Row集合
152
+ selectedRows: [],
153
+ // 业务标题
154
+ title: '',
155
+ // 数据列
156
+ tableColumns: [],
157
+ // 查询用表单
158
+ form: {},
159
+ // 是否允许修改
160
+ isModify: false,
161
+ // 是否允许删除
162
+ isDelete: false,
163
+ // 服务名称
164
+ serviceName: 'af-system',
165
+ // 选中用于修改的id
166
+ selectId: undefined,
167
+ // 是否为临时表
168
+ isTableTemp: false,
169
+ // 是否显示展示列抽屉
170
+ visible: false,
171
+ // 编辑按钮加载状态
172
+ editLoading: false,
173
+ // 按钮状态
174
+ buttonState: {},
175
+ // 图标样式
176
+ iconStyle: {
177
+ position: 'relative',
178
+ top: '1px'
179
+ }
180
+ }
181
+ },
182
+ props: {
183
+ // 查询配置文件名
184
+ queryParamsName: {
185
+ type: String,
186
+ default: () => {
187
+ return ''
188
+ }
189
+ },
190
+ // 查询配置文件Json
191
+ queryParamsJson: {
192
+ type: Object,
193
+ default: null
194
+ },
195
+ // 固定查询表单
196
+ fixedQueryForm: {
197
+ type: Object,
198
+ default: () => {
199
+ return {}
200
+ }
201
+ },
202
+ // 数据只有一页时是否展示分页,true:展示,auto:隐藏
203
+ showPagination: {
204
+ type: Boolean,
205
+ default: true
206
+ }
207
+ },
208
+ computed: {
209
+ rowSelection () {
210
+ return {
211
+ selectedRowKeys: this.selectedRowKeys,
212
+ onChange: this.onSelectChange
213
+ }
214
+ }
215
+ },
216
+ mounted () {},
217
+ methods: {
218
+ /**
219
+ * 为表格附加查询条件
220
+ */
221
+ setQueryForm (form = {}, refresh) {
222
+ this.form = form
223
+ if (refresh) {
224
+ this.refresh(true)
225
+ }
226
+ this.clearRowKeys()
227
+ },
228
+ /**
229
+ * 初始化表格参数
230
+ */
231
+ init (params) {
232
+ const {
233
+ // 查询参数对象, 用于没有对应查询配置文件名时
234
+ queryParams,
235
+ tableColumns,
236
+ buttonState,
237
+ title,
238
+ serviceName = 'af-system',
239
+ viewMode
240
+ } = params
241
+ this.queryParams = queryParams
242
+ this.tableColumns = JSON.parse(JSON.stringify(tableColumns))
243
+ this.buttonState = buttonState
244
+ this.title = title
245
+ this.serviceName = serviceName
246
+ this.viewMode = viewMode
247
+ this.rowKey = this.tableColumns[0].dataIndex
248
+ let totalWidth = 0
249
+ // 设置表格宽度
250
+ for (let i = 0; i < this.tableColumns.length; i++) {
251
+ const item = this.tableColumns[i]
252
+ if (item.slotType === 'action') {
253
+ item.fixed = 'right'
254
+ item.width = 70
255
+ }
256
+ if (item.width) {
257
+ totalWidth = totalWidth + item.width
258
+ } else {
259
+ totalWidth = totalWidth + 180
260
+ }
261
+ }
262
+ const width = document.documentElement.clientWidth
263
+ if (width >= 1600) {
264
+ this.scrollYHeight = 429
265
+ } else if (width >= 1200) {
266
+ this.scrollYHeight = 390
267
+ } else {
268
+ this.scrollYHeight = 343
269
+ }
270
+ // 横向滚动长度大于所有宽度,才能实现固定表头
271
+ this.scrollXWidth = totalWidth
272
+ // 加载筛选列完成
273
+ this.columnSelectLoaded = true
274
+ this.setQueryForm({}, true)
275
+ },
276
+ /**
277
+ * 加载表格数据
278
+ * @param requestParameters 请求参数
279
+ */
280
+ loadTableData (requestParameters) {
281
+ let result = {}
282
+ if (this.queryParamsJson) {
283
+ if (this.queryParamsJson.tableName.startsWith('##')) {
284
+ this.isTableTemp = true
285
+ result = this.initTempTable(requestParameters)
286
+ }
287
+ }
288
+ if (!this.isTableTemp) {
289
+ result = query(requestParameters, this.serviceName)
290
+ }
291
+ this.$emit('afterQuery', result)
292
+ return result
293
+ },
294
+ action (record, actionType) {
295
+ this.$emit('action', record, record[this.getPrimaryKeyName()], actionType)
296
+ },
297
+ onSelectChange (selectedRowKeys, selectedRows) {
298
+ this.selectedRowKeys = selectedRowKeys
299
+ this.selectedRows = selectedRows
300
+ this.isModify = this.selectedRowKeys.length === 1
301
+ this.isDelete = this.selectedRowKeys.length > 0
302
+ this.$emit('selectRow', {
303
+ selectedRowKeys: selectedRowKeys,
304
+ selectedRows: selectedRows
305
+ })
306
+ },
307
+ /**
308
+ * 清除表格选中项
309
+ */
310
+ clearRowKeys () {
311
+ this.$refs.table.clearSelected()
312
+ },
313
+ /**
314
+ * 表格重新加载方法
315
+ * 如果参数为 true, 则强制刷新到第一页
316
+ */
317
+ refresh (bool) {
318
+ this.$refs.table.refresh(bool)
319
+ },
320
+ format (date, format) {
321
+ return formatDate(date, format)
322
+ },
323
+ showDrawer () {
324
+ this.visible = true
325
+ },
326
+ /**
327
+ * 获取主键列名称
328
+ */
329
+ getPrimaryKeyName () {
330
+ return this.tableColumns[0].dataIndex
331
+ },
332
+ // 导出选中或本页数据
333
+ handleExport (isSelected) {
334
+ const tHeader = this.tableColumns.filter(res => res.slotType !== 'action').map(res => res.title)
335
+ const filterVal = this.tableColumns.map(res => res.dataIndex)
336
+ let exportData
337
+ if (isSelected) {
338
+ exportData = this.selectedRows
339
+ } else {
340
+ exportData = this.$refs.table.localDataSource
341
+ }
342
+ const data = this.formatJson(filterVal, exportData)
343
+ exportJson(tHeader, data, this.title + `数据_${new Date().toLocaleString()}`)
344
+ },
345
+ // 导出符合条件的数据
346
+ handleExportByQuery () {
347
+ const that = this
348
+ const conditionParams = Object.assign(that.form, that.fixedQueryForm)
349
+ this.$confirm({
350
+ title: '是否确认导出?',
351
+ content: '此操作将导出当前条件下所有数据而非选中数据',
352
+ onOk () {
353
+ download({
354
+ queryParamsName: that.queryParamsName,
355
+ queryParams: that.queryParams,
356
+ form: conditionParams,
357
+ type: 'exportData'
358
+ }, that.title + `数据_${new Date().toLocaleString()}.xlsx`, that.serviceName)
359
+ },
360
+ onCancel () {}
361
+ })
362
+ },
363
+ // 新增业务
364
+ add () {
365
+ this.$emit('add')
366
+ },
367
+ // 编辑业务
368
+ edit () {
369
+ this.editLoading = true
370
+ // 组织被编辑数据
371
+ const requestParameters = {
372
+ queryParamsName: this.queryParamsName,
373
+ conditionParams: {},
374
+ pageNo: 1,
375
+ pageSize: 1
376
+ }
377
+ this.selectId = this.selectedRowKeys[0]
378
+ const primaryKeyName = this.getPrimaryKeyName()
379
+ requestParameters.conditionParams[primaryKeyName] = this.selectId
380
+ requestParameters.f_businessid = this.selectId
381
+ if (this.isTableTemp) {
382
+ this.$emit('tempTableEdit', requestParameters)
383
+ return
384
+ }
385
+ queryWithResource(requestParameters, this.serviceName).then(res => {
386
+ // 将更新需要的主键值加入到primaryKeyData中
387
+ const primaryKeyData = {}
388
+ primaryKeyData[primaryKeyName] = this.selectId
389
+ const modifyModelData = { data: res.data[0], primaryKeyData: primaryKeyData, images: res.images, files: res.files }
390
+ this.$emit('edit', modifyModelData)
391
+ this.editLoading = false
392
+ })
393
+ },
394
+ // 删除业务
395
+ deleteItem () {
396
+ if (this.viewMode) {
397
+ this.$message.info('预览模式禁止删除')
398
+ return
399
+ }
400
+ Modal.confirm({
401
+ title: '提示',
402
+ content: '您本次要删除共' + this.selectedRowKeys.length + '条数据,确定操作吗?',
403
+ zIndex: 1001,
404
+ onOk: () => {
405
+ return new Promise((resolve, reject) => {
406
+ const requestParameters = {
407
+ queryParamsName: this.queryParamsName,
408
+ idList: this.selectedRowKeys
409
+ }
410
+ remove(requestParameters, this.serviceName).then(res => {
411
+ resolve(res)
412
+ this.$message.success('删除成功!')
413
+ this.refresh(true)
414
+ // afterDelete
415
+ this.$emit('afterDelete', requestParameters)
416
+ }).catch(e => {
417
+ reject(e)
418
+ this.$message.error('删除失败!')
419
+ })
420
+ })
421
+ },
422
+ onCancel () {}
423
+ })
424
+ },
425
+ // 导入业务
426
+ importData () {
427
+ this.$refs.importExcel.importExcelHandleOpen()
428
+ },
429
+ formatJson (filterVal, jsonData) {
430
+ return jsonData.map(v => filterVal.map(j => v[j]))
431
+ },
432
+ // 初始化临时表
433
+ async initTempTable (json) {
434
+ await this.createTempTable(this.queryParamsJson)
435
+ await this.insertTempTableData(this.queryParamsJson)
436
+ let result = {}
437
+ await post(CommonTempTable.initApplySubTable, {
438
+ define: json
439
+ }).then(res => {
440
+ console.log('子表临时表已创建')
441
+ result = res
442
+ })
443
+ return result
444
+ },
445
+ // 创建临时表sql生成
446
+ createTempTable (defineJson) {
447
+ const tableName = defineJson.tableName
448
+ const define = defineJson.column
449
+ return post(CommonTempTable.createTempTable, {
450
+ define: define,
451
+ tableName: tableName
452
+ }).then(res => {
453
+ return res
454
+ }, err => {
455
+ console.log(err)
456
+ })
457
+ },
458
+ // 插入临时表数据sql生成
459
+ insertTempTableData (defineJson) {
460
+ const tableName = defineJson.tableName
461
+ const params = {}
462
+ params.define = defineJson.column
463
+ params.applyId = defineJson.applyId
464
+ params.stepName = defineJson.stepName
465
+ params.tableName = tableName
466
+ return post(CommonTempTable.insertDataToTempTable, {
467
+ tempTableData: params
468
+ }).then(res => {
469
+ return res
470
+ })
471
+ }
472
+ }
473
+ }
474
+ </script>
475
+ <style lang="less" scoped>
476
+ .btn-success {
477
+ color: #ffffff;
478
+ }
479
+ .btn-success:enabled:hover {
480
+ background-color: #85CE61 !important;
481
+ border-color: #85CE61 !important;
482
+ }
483
+ .btn-success:enabled {
484
+ background-color: #67c23a;
485
+ border-color: #67c23a;
486
+ }
487
+ .btn-success:disabled {
488
+ color: rgba(0, 0, 0, 0.25);
489
+ }
490
+ .btn-warn {
491
+ color: #ffffff;
492
+ }
493
+ .btn-warn:enabled:hover {
494
+ background-color: #ffc833 !important;
495
+ border-color: #ffc833 !important;
496
+ }
497
+ .btn-warn:enabled {
498
+ background-color: #ffba00;
499
+ border-color: #ffba00;
500
+ }
501
+ .btn-warn:disabled {
502
+ color: rgba(0, 0, 0, 0.25);
503
+ }
504
+ </style>