vue2-client 1.9.46 → 1.9.49

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.9.46",
3
+ "version": "1.9.49",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -93,16 +93,34 @@
93
93
  <a-button v-if="showSubmitBtn" :loading="loading" type="primary" @click="onSubmit()">提交</a-button>
94
94
  </a-row>
95
95
  </a-form-model>
96
+ <a-modal
97
+ v-model="listSelectData.show"
98
+ :closable="false"
99
+ :centered="true"
100
+ :destroyOnClose="true"
101
+ @ok="listSelectHandle"
102
+ width="75vw"
103
+ okText="确认"
104
+ >
105
+ <x-form-table
106
+ title="请选择一条数据"
107
+ :queryParamsName="listSelectData.configName"
108
+ :listSelectMode="true"
109
+ :service-name="serviceName"
110
+ ref="listSelectTable">
111
+ </x-form-table>
112
+ </a-modal>
96
113
  </div>
97
114
  </template>
98
115
  <script>
99
116
  import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
100
- import { formatDate } from '@vue2-client/utils/util'
117
+ import { formatDate, setDataByRealKey } from '@vue2-client/utils/util'
101
118
  import { mapState } from 'vuex'
102
119
  import { addOrModify, getConfigByName, getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
103
120
  import { checkIdNumber, REG_EMAIL, REG_LANDLINE, REG_PHONE } from '@vue2-client/utils/reg'
104
121
  import moment from 'moment/moment'
105
122
  import { executeStrFunction } from '@vue2-client/utils/runEvalFunction'
123
+ import util from '@/utils/util'
106
124
 
107
125
  export default {
108
126
  name: 'XAddNativeForm',
@@ -151,7 +169,13 @@ export default {
151
169
  // 当前环境
152
170
  env: 'prod',
153
171
  // 表单模式 horizontal | vertical | inline
154
- layout: 'horizontal'
172
+ layout: 'horizontal',
173
+ // 列表选择框数据暂存
174
+ listSelectData: {
175
+ show: false,
176
+ configName: '',
177
+ dataChangeFunc: ''
178
+ }
155
179
  }
156
180
  },
157
181
  computed: {
@@ -805,10 +829,37 @@ export default {
805
829
  }
806
830
  }
807
831
  },
832
+ async listSelectHandle () {
833
+ if (this.$refs?.listSelectTable?.table_selectedRows?.length) {
834
+ // 如果配置了自定义函数
835
+ if (this.listSelectData.dataChangeFunc) {
836
+ await executeStrFunction(this.listSelectData.dataChangeFunc, [this.form, this.setForm, {
837
+ ...this.attr,
838
+ selectRows: this.$refs.listSelectTable.table_selectedRows
839
+ }, util, this.mode, runLogic, getConfigByNameAsync])
840
+ } else {
841
+ if (this.$refs?.listSelectTable?.table_selectedRows?.length !== 1) {
842
+ this.$message.warning('请选择一条数据')
843
+ return
844
+ }
845
+ setDataByRealKey(this.form, this.$refs.listSelectTable.table_selectedRows[0])
846
+ }
847
+ this.listSelectData.show = false
848
+ } else {
849
+ this.$message.warning('请选择一条数据')
850
+ }
851
+ },
808
852
  setForm (obj) {
809
853
  this.form = Object.assign(this.form, obj)
810
854
  },
811
855
  emitFunc (func, data) {
856
+ // 打开列表选择框逻辑
857
+ if (func === 'openSelectCRUDFrom') {
858
+ this.listSelectData.show = true
859
+ this.listSelectData.configName = data.keyName.split('@')[data.keyName.split('@').length - 1]
860
+ this.listSelectData.dataChangeFunc = data.dataChangeFunc
861
+ return
862
+ }
812
863
  if (data?.model) {
813
864
  this.$emit(func, data, this.form[data.model])
814
865
  } else {
@@ -6,7 +6,8 @@ export default {
6
6
  name: 'Demo',
7
7
  components: { XAddNativeForm },
8
8
  mounted () {
9
- getConfigByNameAsync('outpatientfeesForm', 'af-his').then(res => {
9
+ getConfigByNameAsync('formtestForm', 'af-system').then(res => {
10
+ console.log('===res', res)
10
11
  this.$refs.xAddFrom.init(res)
11
12
  })
12
13
  },
@@ -487,6 +487,28 @@
487
487
  ref="xTreeSelect">
488
488
  </x-tree-select>
489
489
  </x-form-col>
490
+ <!-- 列表选择框 -->
491
+ <x-form-col
492
+ v-else-if="attr.type === 'listSelect' && show"
493
+ :flex="attr.flex">
494
+ <a-form-model-item
495
+ :ref="attr.model"
496
+ :label="showLabel?attr.name:undefined"
497
+ :labelCol="layout === 'inline' && attr.occupyCol ? labelAndWrapperCol[attr.occupyCol].labelCol:undefined"
498
+ :wrapperCol="layout === 'inline'&& attr.occupyCol ? labelAndWrapperCol[attr.occupyCol].wrapperCol:undefined"
499
+ :style="layout === 'inline'&& attr.occupyCol && attr.occupyCol > 1? {width:`calc(100% - ${attr.occupyCol * 1.533}rem)`}:{}"
500
+ :prop="attr.prop ? attr.prop : attr.model">
501
+ <!-- 如果配置了后置按钮插槽 -->
502
+ <a-input
503
+ v-model="form[attr.model]"
504
+ @click="emitFunc('openSelectCRUDFrom',attr)"
505
+ :whitespace="true"
506
+ :read-only="true"
507
+ style="width:100%"
508
+ :placeholder="attr.placeholder ? attr.placeholder : '请选择'+attr.name.replace(/\s*/g, '')"
509
+ :ref="`${attr.model}listSelect`"/>
510
+ </a-form-model-item>
511
+ </x-form-col>
490
512
  <!-- 评分框 -->
491
513
  <x-form-col
492
514
  v-else-if="attr.type === 'rate' && show"
@@ -1,40 +1,40 @@
1
- <script>
2
- import XFormGroup from '@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'
3
- import { getConfigByNameAsync } from '@vue2-client/services/api/common'
4
-
5
- export default {
6
- name: 'Demo',
7
- components: { XFormGroup },
8
- created () {
9
- getConfigByNameAsync('addUserGeneralInfoFrom', 'af-revenue').then(res => {
10
- this.$refs.xFormGroupDemo.init({
11
- ...res,
12
- serviceName: 'af-revenue',
13
- showLeftTab: true,
14
- })
15
- })
16
- },
17
- methods: {
18
- submitForm () {
19
- this.$refs.xFormGroupDemo.onSubmit().then(res => {
20
- console.log('所有表单的结果', res)
21
- })
22
- }
23
- }
24
- }
25
- </script>
26
-
27
- <template>
28
- <a-modal
29
- :visible="true"
30
- :bodyStyle="{height:'70vh'}"
31
- title="测试表单组"
32
- @ok="submitForm"
33
- width="85vw">
34
- <x-form-group ref="xFormGroupDemo"></x-form-group>
35
- </a-modal>
36
- </template>
37
-
38
- <style scoped lang="less">
39
-
40
- </style>
1
+ <script>
2
+ import XFormGroup from '@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'
3
+ import { getConfigByNameAsync } from '@vue2-client/services/api/common'
4
+
5
+ export default {
6
+ name: 'Demo',
7
+ components: { XFormGroup },
8
+ created () {
9
+ getConfigByNameAsync('addUserGeneralInfoFrom', 'af-revenue').then(res => {
10
+ this.$refs.xFormGroupDemo.init({
11
+ ...res,
12
+ serviceName: 'af-revenue',
13
+ showLeftTab: true,
14
+ })
15
+ })
16
+ },
17
+ methods: {
18
+ submitForm () {
19
+ this.$refs.xFormGroupDemo.onSubmit().then(res => {
20
+ console.log('所有表单的结果', res)
21
+ })
22
+ }
23
+ }
24
+ }
25
+ </script>
26
+
27
+ <template>
28
+ <a-modal
29
+ :visible="true"
30
+ :bodyStyle="{height:'70vh'}"
31
+ title="测试表单组"
32
+ @ok="submitForm"
33
+ width="85vw">
34
+ <x-form-group ref="xFormGroupDemo"></x-form-group>
35
+ </a-modal>
36
+ </template>
37
+
38
+ <style scoped lang="less">
39
+
40
+ </style>
@@ -229,6 +229,13 @@ export default {
229
229
  return false
230
230
  }
231
231
  },
232
+ // 是否作为选择列表
233
+ listSelectMode: {
234
+ type: Boolean,
235
+ default: () => {
236
+ return false
237
+ }
238
+ },
232
239
  // 环境
233
240
  env: {
234
241
  type: String,
@@ -384,6 +391,7 @@ export default {
384
391
  title: this.title,
385
392
  viewMode: this.viewMode,
386
393
  localEditMode: this.localEditMode,
394
+ listSelectMode: this.listSelectMode,
387
395
  tableSummaryMap: res.tableSummaryMap,
388
396
  serviceName: this.serviceName,
389
397
  env: this.env,
@@ -1,3 +1,3 @@
1
- import XReport from './XReport'
2
-
3
- export default XReport
1
+ import XReport from './XReport'
2
+
3
+ export default XReport
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div v-show="tableColumns.length > 0">
3
- <a-row :gutter="48">
4
- <a-col>
3
+ <a-row :gutter="48" v-show="shouOperaBtn || showRightTools">
4
+ <a-col v-show="shouOperaBtn">
5
5
  <span :style="{ float: 'left', overflow: 'hidden', marginBottom: '8px' }">
6
6
  <a-space>
7
7
  <slot name="leftButton" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
@@ -308,6 +308,8 @@ export default {
308
308
  isLocalDataSourceLoadedExternally: false,
309
309
  // 是否展示右侧工具栏
310
310
  showRightTools: true,
311
+ // 是否展示左边按钮栏
312
+ shouOperaBtn: true,
311
313
  // 加载数据方法 必须为 Promise 对象
312
314
  loadData: parameter => {
313
315
  // 取到表格携带的表单参数
@@ -565,6 +567,7 @@ export default {
565
567
  customTableSummaryArray = [],
566
568
  viewMode,
567
569
  localEditMode,
570
+ listSelectMode,
568
571
  formItems,
569
572
  env = 'prod',
570
573
  createdQuery = true,
@@ -617,6 +620,10 @@ export default {
617
620
  this.buttonState.export = false
618
621
  this.showRightTools = false
619
622
  }
623
+ if (listSelectMode) {
624
+ this.showRightTools = false
625
+ this.shouOperaBtn = false
626
+ }
620
627
  this.buttonPermissions = buttonPermissions
621
628
  this.editButtonStateData = editButtonStateData
622
629
  this.title = title
@@ -792,7 +799,8 @@ export default {
792
799
  extraHeight = innerHeight - modalRect.bottom + 32 + 48
793
800
  }
794
801
  }
795
- if (innerHeight - (tHeaderBottom + extraHeight) < 0) {
802
+ console.log('====innerHeight - (tHeaderBottom + extraHeight)', innerHeight - (tHeaderBottom + extraHeight))
803
+ if (innerHeight - (tHeaderBottom + extraHeight) < 210) {
796
804
  this.scrollYHeight = 'calc(100vh - 31rem)'
797
805
  return
798
806
  }
@@ -1,50 +1,50 @@
1
- <template>
2
- <div>
3
- <a-list v-show="!loading" size="small" :data-source="data">
4
- <a-list-item slot="renderItem" slot-scope="item">
5
- <div>
6
- <p><a @click="$emit('openFavorites', item.uuid)">{{ item.question }} </a></p>
7
- <p>{{ item.date }}</p>
8
- </div>
9
- <a class="delete_item">
10
- <a-icon type="close" @click="$emit('saveToFavorites', item.uuid)"/>
11
- </a>
12
- </a-list-item>
13
- </a-list>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- import { indexedDB } from '@vue2-client/utils/indexedDB'
19
-
20
- export default {
21
- name: 'FavoriteList',
22
- data () {
23
- return {
24
- data: [],
25
- loading: false
26
- }
27
- },
28
- mounted () {
29
- this.loadData()
30
- },
31
- methods: {
32
- loadData () {
33
- indexedDB.getAll((data) => {
34
- const realData = data.filter(item => item.data && item.data.uuid)
35
- .map(item => item.data)
36
- this.data = realData
37
- })
38
- }
39
- }
40
- }
41
- </script>
42
- <style lang="less" scoped>
43
- .delete_item {
44
- margin-left: 8px;
45
- color: #333;
46
- }
47
- p {
48
- margin: 0
49
- }
50
- </style>
1
+ <template>
2
+ <div>
3
+ <a-list v-show="!loading" size="small" :data-source="data">
4
+ <a-list-item slot="renderItem" slot-scope="item">
5
+ <div>
6
+ <p><a @click="$emit('openFavorites', item.uuid)">{{ item.question }} </a></p>
7
+ <p>{{ item.date }}</p>
8
+ </div>
9
+ <a class="delete_item">
10
+ <a-icon type="close" @click="$emit('saveToFavorites', item.uuid)"/>
11
+ </a>
12
+ </a-list-item>
13
+ </a-list>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ import { indexedDB } from '@vue2-client/utils/indexedDB'
19
+
20
+ export default {
21
+ name: 'FavoriteList',
22
+ data () {
23
+ return {
24
+ data: [],
25
+ loading: false
26
+ }
27
+ },
28
+ mounted () {
29
+ this.loadData()
30
+ },
31
+ methods: {
32
+ loadData () {
33
+ indexedDB.getAll((data) => {
34
+ const realData = data.filter(item => item.data && item.data.uuid)
35
+ .map(item => item.data)
36
+ this.data = realData
37
+ })
38
+ }
39
+ }
40
+ }
41
+ </script>
42
+ <style lang="less" scoped>
43
+ .delete_item {
44
+ margin-left: 8px;
45
+ color: #333;
46
+ }
47
+ p {
48
+ margin: 0
49
+ }
50
+ </style>
@@ -1,18 +1,18 @@
1
- import { post } from '@vue2-client/services/api/restTools'
2
-
3
- const entityApi = {
4
- // 根据ID查询数据
5
- getById: (entityName, id, data = {}, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
6
- return post(`/api/${serviceName}/entity/query/${entityName}/${id}`, data)
7
- },
8
- // 根据ID集合查询所有数据
9
- findAllByIds: (entityName, data, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
10
- return post(`/api/${serviceName}/entity/query/${entityName}`, data)
11
- },
12
- // 查询实体的总数量
13
- getCount: (entityName, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
14
- return post(`/api/${serviceName}/entity/queryCount/${entityName}`, {})
15
- }
16
- }
17
-
18
- export { entityApi }
1
+ import { post } from '@vue2-client/services/api/restTools'
2
+
3
+ const entityApi = {
4
+ // 根据ID查询数据
5
+ getById: (entityName, id, data = {}, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
6
+ return post(`/api/${serviceName}/entity/query/${entityName}/${id}`, data)
7
+ },
8
+ // 根据ID集合查询所有数据
9
+ findAllByIds: (entityName, data, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
10
+ return post(`/api/${serviceName}/entity/query/${entityName}`, data)
11
+ },
12
+ // 查询实体的总数量
13
+ getCount: (entityName, serviceName = process.env.VUE_APP_SYSTEM_NAME) => {
14
+ return post(`/api/${serviceName}/entity/queryCount/${entityName}`, {})
15
+ }
16
+ }
17
+
18
+ export { entityApi }
@@ -1,63 +1,63 @@
1
- // 工单专用api
2
- const workFlowViewApi = {
3
- // 查询:获取工作流基本数据
4
- getWorkFlowBasicInfo: '/logic/getWorkFlowBasicInfo',
5
- // 保存工作流流程定义
6
- saveWorkFlowWorkflowDefine: '/logic/saveWorkFlowWorkflowDefine',
7
- // 获取工作流流程定义
8
- getWorkFlowDefine: '/logic/getWorkFlowDefine',
9
- // 获取工作流当前步骤
10
- getWorkFlowCurrentSubState: '/logic/getWorkFlowCurrentSubState',
11
- // 保存用户每一步输入的表单内容
12
- saveWorkFlowStepFormData: '/logic/saveWorkFlowStepFormData',
13
- // 获取已经完成步骤的用户填写数据
14
- getWorkFlowCompletedStepData: '/logic/getWorkFlowCompletedStepData',
15
- // 改变工作流进度
16
- updateWorkFlowState: '/logic/updateWorkFlowState',
17
- // 完工确认后更改工作流状态
18
- afterWorkFlowFinalStepSubmit: '/logic/afterWorkFlowFinalStepSubmit',
19
- // 获取步骤留言和表单填写人姓名
20
- getStepNoteAndHandler: '/logic/getStepNoteAndHandler',
21
- // 更新步骤信息
22
- updateWorkFlowStepData: '/logic/updateWorkFlowStepData',
23
- // 保存工作流日志
24
- saveWorkFlowLog: '/logic/saveWorkFlowLog',
25
- // 获取工作流日志
26
- getWorkFlowLog: '/logic/getWorkFlowLog',
27
- // 获取员工任务详情信息
28
- getEmployeeTaskDetail: '/logic/getEmployeeTaskDetail',
29
- // 根据条件查询任务
30
- getWorkFlowListByCondition: '/logic/getWorkFlowListByCondition',
31
- // 根据流程名称获取所有步骤名称
32
- getWorkFlowStepNames: '/logic/getWorkFlowStepNames',
33
- // 获取工作流任务留言
34
- getWorkFlowLeaveMessage: '/logic/getWorkFlowLeaveMessage',
35
- // 更新任务完成时间
36
- updateWorkFlowCompleteTime: '/logic/updateWorkFlowCompleteTime',
37
- // 获取任务完成时间更改记录
38
- getWorkFlowCompleteTimeChange: '/logic/getWorkFlowCompleteTimeChange',
39
- // 修改工单
40
- updateWorkFlow: '/logic/updateWorkFlow',
41
- // 获取工作流流程图设计
42
- getWorkFlowPaintWorkFlowDefine: '/logic/getWorkFlowPaintWorkFlowDefine',
43
- // 简单添加字典项
44
- simpleInsertIntoDictionary: '/logic/simpleInsertIntoDictionary',
45
- // 删除工作流项目
46
- deleteWorkFlow: '/logic/deleteWorkFlow',
47
- // 获取流程分类数据
48
- getWorkFlowCategoryTree: '/logic/getWorkFlowCategoryTree',
49
- // 创建任务
50
- createWorkflowTask: '/logic/createWorkflowTask',
51
- // 获取部门选择框数据
52
- getDepartmentList: '/logic/getDepartmentList',
53
- // 获取人员任务汇总数据
54
- getEmployeeSummary: '/logic/getEmployeeSummary',
55
- // 获取逾期任务排行榜
56
- getOverdueRanking: '/logic/getOverdueRanking',
57
- // 根据人查询对应的t_workflow_step中字段f_workflow_id的数据组
58
- getWorkFlowStepWorkFlowId: '/logic/getWorkFlowStepWorkFlowId',
59
- // 表单提交到下一步
60
- submitToNextStep: '/logic/submitToNextStep'
61
- }
62
-
63
- export { workFlowViewApi }
1
+ // 工单专用api
2
+ const workFlowViewApi = {
3
+ // 查询:获取工作流基本数据
4
+ getWorkFlowBasicInfo: '/logic/getWorkFlowBasicInfo',
5
+ // 保存工作流流程定义
6
+ saveWorkFlowWorkflowDefine: '/logic/saveWorkFlowWorkflowDefine',
7
+ // 获取工作流流程定义
8
+ getWorkFlowDefine: '/logic/getWorkFlowDefine',
9
+ // 获取工作流当前步骤
10
+ getWorkFlowCurrentSubState: '/logic/getWorkFlowCurrentSubState',
11
+ // 保存用户每一步输入的表单内容
12
+ saveWorkFlowStepFormData: '/logic/saveWorkFlowStepFormData',
13
+ // 获取已经完成步骤的用户填写数据
14
+ getWorkFlowCompletedStepData: '/logic/getWorkFlowCompletedStepData',
15
+ // 改变工作流进度
16
+ updateWorkFlowState: '/logic/updateWorkFlowState',
17
+ // 完工确认后更改工作流状态
18
+ afterWorkFlowFinalStepSubmit: '/logic/afterWorkFlowFinalStepSubmit',
19
+ // 获取步骤留言和表单填写人姓名
20
+ getStepNoteAndHandler: '/logic/getStepNoteAndHandler',
21
+ // 更新步骤信息
22
+ updateWorkFlowStepData: '/logic/updateWorkFlowStepData',
23
+ // 保存工作流日志
24
+ saveWorkFlowLog: '/logic/saveWorkFlowLog',
25
+ // 获取工作流日志
26
+ getWorkFlowLog: '/logic/getWorkFlowLog',
27
+ // 获取员工任务详情信息
28
+ getEmployeeTaskDetail: '/logic/getEmployeeTaskDetail',
29
+ // 根据条件查询任务
30
+ getWorkFlowListByCondition: '/logic/getWorkFlowListByCondition',
31
+ // 根据流程名称获取所有步骤名称
32
+ getWorkFlowStepNames: '/logic/getWorkFlowStepNames',
33
+ // 获取工作流任务留言
34
+ getWorkFlowLeaveMessage: '/logic/getWorkFlowLeaveMessage',
35
+ // 更新任务完成时间
36
+ updateWorkFlowCompleteTime: '/logic/updateWorkFlowCompleteTime',
37
+ // 获取任务完成时间更改记录
38
+ getWorkFlowCompleteTimeChange: '/logic/getWorkFlowCompleteTimeChange',
39
+ // 修改工单
40
+ updateWorkFlow: '/logic/updateWorkFlow',
41
+ // 获取工作流流程图设计
42
+ getWorkFlowPaintWorkFlowDefine: '/logic/getWorkFlowPaintWorkFlowDefine',
43
+ // 简单添加字典项
44
+ simpleInsertIntoDictionary: '/logic/simpleInsertIntoDictionary',
45
+ // 删除工作流项目
46
+ deleteWorkFlow: '/logic/deleteWorkFlow',
47
+ // 获取流程分类数据
48
+ getWorkFlowCategoryTree: '/logic/getWorkFlowCategoryTree',
49
+ // 创建任务
50
+ createWorkflowTask: '/logic/createWorkflowTask',
51
+ // 获取部门选择框数据
52
+ getDepartmentList: '/logic/getDepartmentList',
53
+ // 获取人员任务汇总数据
54
+ getEmployeeSummary: '/logic/getEmployeeSummary',
55
+ // 获取逾期任务排行榜
56
+ getOverdueRanking: '/logic/getOverdueRanking',
57
+ // 根据人查询对应的t_workflow_step中字段f_workflow_id的数据组
58
+ getWorkFlowStepWorkFlowId: '/logic/getWorkFlowStepWorkFlowId',
59
+ // 表单提交到下一步
60
+ submitToNextStep: '/logic/submitToNextStep'
61
+ }
62
+
63
+ export { workFlowViewApi }
@@ -1,3 +1,5 @@
1
+ const util = require('@vue2-client/utils/util')
2
+
1
3
  /**
2
4
  * 把对象按照 js配置文件的格式进行格式化
3
5
  * @param obj 格式化的对象
@@ -66,15 +68,7 @@ function formatConfig (obj, dep) {
66
68
  }
67
69
 
68
70
  function getRealKeyData (data) {
69
- const obj = {}
70
- Object.keys(data).forEach(k => {
71
- if (k.indexOf('_') >= 0) {
72
- obj[k.substring(k.indexOf('_') + 1)] = data[k]
73
- } else {
74
- obj[k] = data[k]
75
- }
76
- })
77
- return obj
71
+ return util.getRealKeyData(data)
78
72
  }
79
73
 
80
74
  module.exports = { formatConfig, getRealKeyData }
package/src/utils/util.js CHANGED
@@ -278,4 +278,33 @@ export function compareRows (beforeRow, afterRow) {
278
278
  return changeItem
279
279
  }
280
280
 
281
+ export function getRealKeyData (data) {
282
+ return Object.keys(data).reduce((obj, key) => {
283
+ const realKey = key.includes('_') ? key.split('_').pop() : key
284
+ obj[realKey] = data[key] // 赋值
285
+ return obj
286
+ }, {})
287
+ }
288
+
289
+ export function setDataByRealKey (form, data) {
290
+ // 创建一个映射 realKey -> formKey
291
+ const realFormMap = {}
292
+
293
+ // 遍历 form,建立真实键名和 form 键的映射
294
+ Object.keys(form).forEach(key => {
295
+ const realKey = key.includes('_') ? key.split('_').pop() : key // 获取真实键名
296
+ realFormMap[realKey] = key // 存储映射关系
297
+ })
298
+
299
+ // 遍历 data,更新 form 中的值
300
+ Object.keys(data).forEach(key => {
301
+ const realKey = key.includes('_') ? key.split('_').pop() : key // 获取真实键名
302
+ if (realFormMap[realKey]) {
303
+ form[realFormMap[realKey]] = data[key] // 根据映射关系赋值
304
+ }
305
+ })
306
+
307
+ return form
308
+ }
309
+
281
310
  const _toString = Object.prototype.toString
@@ -1,31 +1,31 @@
1
- /**
2
- * @description: createWaterMark.js 加水印功能
3
- */
4
- let waterMarkDOM
5
-
6
- const clearWaterMark = () => {
7
- if (waterMarkDOM) waterMarkDOM.remove()
8
- }
9
- /**
10
- * @description: 创建水印
11
- * @param waterMarkName 水印内容
12
- */
13
- export default function createWaterMark (waterMarkName) {
14
- clearWaterMark()
15
- if (!waterMarkName) {
16
- return
17
- }
18
- const width = window.parseInt(document.body.clientWidth)
19
- const canvasWidth = width / window.parseInt(width / 320)
20
- const fontFamily = window.getComputedStyle(document.body)['font-family']
21
- const fragment = document.createDocumentFragment()
22
- waterMarkDOM = document.createElement('div')
23
- waterMarkDOM.className = 'water-mark-wrap'
24
- let spanStr = ''
25
- for (let i = 0; i < 100; i++) {
26
- spanStr += `<span class="water-word" style=width:${canvasWidth}px;height:200px;font: ${fontFamily}>${waterMarkName}</span>`
27
- }
28
- waterMarkDOM.innerHTML = spanStr
29
- fragment.appendChild(waterMarkDOM)
30
- document.body.appendChild(fragment)
31
- }
1
+ /**
2
+ * @description: createWaterMark.js 加水印功能
3
+ */
4
+ let waterMarkDOM
5
+
6
+ const clearWaterMark = () => {
7
+ if (waterMarkDOM) waterMarkDOM.remove()
8
+ }
9
+ /**
10
+ * @description: 创建水印
11
+ * @param waterMarkName 水印内容
12
+ */
13
+ export default function createWaterMark (waterMarkName) {
14
+ clearWaterMark()
15
+ if (!waterMarkName) {
16
+ return
17
+ }
18
+ const width = window.parseInt(document.body.clientWidth)
19
+ const canvasWidth = width / window.parseInt(width / 320)
20
+ const fontFamily = window.getComputedStyle(document.body)['font-family']
21
+ const fragment = document.createDocumentFragment()
22
+ waterMarkDOM = document.createElement('div')
23
+ waterMarkDOM.className = 'water-mark-wrap'
24
+ let spanStr = ''
25
+ for (let i = 0; i < 100; i++) {
26
+ spanStr += `<span class="water-word" style=width:${canvasWidth}px;height:200px;font: ${fontFamily}>${waterMarkName}</span>`
27
+ }
28
+ waterMarkDOM.innerHTML = spanStr
29
+ fragment.appendChild(waterMarkDOM)
30
+ document.body.appendChild(fragment)
31
+ }
package/vue.config.js CHANGED
@@ -16,7 +16,7 @@ const gateway = 'http://192.168.50.67:31467'
16
16
  const testUpload = 'http://123.60.214.109:8406'
17
17
  const OSSServerDev = 'http://192.168.50.67:30351'
18
18
  // const revenue = 'http://aote-office.8866.org:31567'
19
- const revenue = 'http://127.0.0.1:8080'
19
+ const revenue = 'http://aote-office.8866.org:31567'
20
20
  // const OSSServerProd = 'http://192.168.50.67:31351'
21
21
  // const testUploadLocal = 'http://127.0.0.1:9001'
22
22
  // v3 铜川
@@ -66,7 +66,7 @@ module.exports = {
66
66
  '/api': {
67
67
  // v3用
68
68
  // pathRewrite: { '^/api/af-system/': '/rs/', '^/api/af-iot/': '/rs/' },
69
- pathRewrite: { '^/api/': '/' },
69
+ // pathRewrite: { '^/api/': '/' },
70
70
  target: revenue,
71
71
  changeOrigin: true
72
72
  },