vue2-client 1.9.28 → 1.9.29

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.28",
3
+ "version": "1.9.29",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -24,6 +24,7 @@
24
24
  @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
25
25
  :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
26
26
  @blur="attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
27
+ @keyup.enter="attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
27
28
  :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
28
29
  :ref="`${attr.model}input`"/>
29
30
  <a-button
@@ -49,6 +50,7 @@
49
50
  :disabled="disabled && !readOnly"
50
51
  style="width:100%"
51
52
  @blur="attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
53
+ @keyup.enter="attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
52
54
  :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
53
55
  :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
54
56
  :ref="`${attr.model}input`"/>
@@ -61,6 +63,7 @@
61
63
  :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
62
64
  style="width:100%"
63
65
  @blur="attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
66
+ @keyup.enter="attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
64
67
  :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
65
68
  :ref="`${attr.model}input`"/>
66
69
 
@@ -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>
@@ -72,6 +72,7 @@
72
72
  @action="action"
73
73
  @selectRow="selectRow"
74
74
  @afterQuery="afterQuery"
75
+ @columnClick="columnClick"
75
76
  @tempTableEdit="tempTableEdit"
76
77
  @editButtonStateDataClick="editButtonStateDataClick"
77
78
  @importExcelOk="importExcelOk">
@@ -304,6 +305,9 @@ export default {
304
305
  runLogic,
305
306
  getConfigByNameAsync,
306
307
  getConfigByName,
308
+ columnClick (key, value, record) {
309
+ this.$emit('columnClick', key, value, record)
310
+ },
307
311
  importExcelOk () {
308
312
  this.$emit('importExcelOk')
309
313
  },
@@ -359,7 +363,6 @@ export default {
359
363
  this.$refs.xTable.init({
360
364
  formItems: res.formJson,
361
365
  primaryKey: res.primaryKey,
362
- tableEdit: res.tableEdit,
363
366
  createdQuery: res.createdQuery,
364
367
  queryParams: setQueryParams ? res : null,
365
368
  tableColumns: res.columnJson,
@@ -375,6 +378,7 @@ export default {
375
378
  form: this.$refs.xForm.form,
376
379
  allowedCardMode: res.allowedCardMode,
377
380
  cardModeConfig: res.cardModeConfig,
381
+ createdEditMode: res.createdEditMode,
378
382
  summaryUpdate: true
379
383
  })
380
384
  }
@@ -3,10 +3,10 @@
3
3
  <x-form-table
4
4
  title="示例表单查询"
5
5
  :queryParamsName="queryParamsName"
6
- :x-tree-config-name="xTreeConfigName"
7
6
  :fixedAddForm="fixedAddForm"
8
7
  service-name="af-revenue"
9
8
  @action="action"
9
+ @columnClick="columnClick"
10
10
  ref="xFormTable">
11
11
  </x-form-table>
12
12
  <a-drawer
@@ -25,20 +25,16 @@
25
25
  </template>
26
26
 
27
27
  <script>
28
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
29
- import { mapState } from 'vuex'
30
28
 
29
+ import { microDispatch } from '@vue2-client/utils/microAppUtils'
31
30
  export default {
32
31
  name: 'Demo',
33
- components: {
34
- XFormTable
35
- },
36
32
  data () {
37
33
  return {
38
34
  // 查询配置文件名
39
- queryParamsName: 'address_management',
35
+ queryParamsName: 'UserFilesListCRUD',
40
36
  // 查询配置左侧tree
41
- xTreeConfigName: 'addressType',
37
+ // xTreeConfigName: 'addressType',
42
38
  // 新增表单固定值
43
39
  fixedAddForm: {},
44
40
  // 是否显示详情抽屉
@@ -47,12 +43,10 @@ export default {
47
43
  record: {}
48
44
  }
49
45
  },
50
- created () {
51
- },
52
- mounted () {
53
- console.log('==当前登录人', this.currUser)
54
- },
55
46
  methods: {
47
+ columnClick (key, value, record) {
48
+ microDispatch({ type: 'v3route', path: '/bingliguanli/dianzibingliluru', props: { selected: arguments[0].his_f_admission_id } })
49
+ },
56
50
  action (record, id, actionType) {
57
51
  this.detailVisible = true
58
52
  console.log('触发了详情操作', record, id, actionType)
@@ -1,3 +1,3 @@
1
- import XReport from './XReport'
2
-
3
- export default XReport
1
+ import XReport from './XReport'
2
+
3
+ export default XReport
@@ -134,6 +134,10 @@
134
134
  <span v-else-if="item.slotType === 'index'" :key="'index-' + c_index">
135
135
  {{ index + 1 }}
136
136
  </span>
137
+ <!-- 行链接 -->
138
+ <span v-else-if="item.slotType === 'link'" :key="'link-' + c_index">
139
+ <a @click="columnClick(item.dataIndex,text,record)">{{ text }}</a>
140
+ </span>
137
141
  <!-- 文本溢出省略(ellipsis) -->
138
142
  <span v-else-if="item.slotType === 'ellipsis'" :key="'ellipsis-' + c_index">
139
143
  <ellipsis :length="item.slotValue" tooltip>{{ text === '' ? '--' : text }}</ellipsis>
@@ -231,7 +235,10 @@
231
235
  </a-spin>
232
236
  </template>
233
237
  <template #suffix>
234
- <a-icon v-show="!f.loading" :type="f.success !== false ? 'check-circle' : 'close-circle'" :style="{color: f.success !== false ? 'green' : 'red'}"/>
238
+ <a-icon
239
+ v-show="!f.loading"
240
+ :type="f.success !== false ? 'check-circle' : 'close-circle'"
241
+ :style="{color: f.success !== false ? 'green' : 'red'}"/>
235
242
  </template>
236
243
  </a-statistic>
237
244
  </div>
@@ -458,6 +465,9 @@ export default {
458
465
  window.removeEventListener('resize', this.handleResize)
459
466
  },
460
467
  methods: {
468
+ columnClick (key, value, record) {
469
+ this.$emit('columnClick', key, value, record)
470
+ },
461
471
  getFromItem (model) {
462
472
  const aa = this.formItems.find(item => item.model === model && item.editRow)
463
473
  if (aa) {
@@ -549,12 +559,12 @@ export default {
549
559
  form,
550
560
  serviceName,
551
561
  tableSummaryMap = {},
552
- customTableSummaryArray = [
553
- ],
562
+ customTableSummaryArray = [],
554
563
  viewMode,
555
564
  formItems,
556
565
  env = 'prod',
557
566
  createdQuery = true,
567
+ createdEditMode = false,
558
568
  primaryKey,
559
569
  allowedCardMode = false,
560
570
  cardModeConfig,
@@ -604,6 +614,7 @@ export default {
604
614
  this.allowedCardMode = allowedCardMode
605
615
  this.cardModeConfig = cardModeConfig
606
616
  this.summaryUpdate = summaryUpdate
617
+ this.isEditMode = createdEditMode
607
618
  let totalWidth = 0
608
619
  for (let i = 0; i < this.tableColumns.length; i++) {
609
620
  const item = this.tableColumns[i]
@@ -1,51 +1,51 @@
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
- console.warn(123)
34
- indexedDB.getAll((data) => {
35
- const realData = data.filter(item => item.data && item.data.uuid)
36
- .map(item => item.data)
37
- this.data = realData
38
- })
39
- }
40
- }
41
- }
42
- </script>
43
- <style lang="less" scoped>
44
- .delete_item {
45
- margin-left: 8px;
46
- color: #333;
47
- }
48
- p {
49
- margin: 0
50
- }
51
- </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
+ console.warn(123)
34
+ indexedDB.getAll((data) => {
35
+ const realData = data.filter(item => item.data && item.data.uuid)
36
+ .map(item => item.data)
37
+ this.data = realData
38
+ })
39
+ }
40
+ }
41
+ }
42
+ </script>
43
+ <style lang="less" scoped>
44
+ .delete_item {
45
+ margin-left: 8px;
46
+ color: #333;
47
+ }
48
+ p {
49
+ margin: 0
50
+ }
51
+ </style>
@@ -84,8 +84,8 @@ routerResource.example = {
84
84
  path: 'default',
85
85
  name: '示例页面',
86
86
  // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),
87
- // component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
88
- component: () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo.vue'),
87
+ component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
88
+ // component: () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo.vue'),
89
89
  // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
90
90
  meta: {
91
91
  // 菜单中不显示
@@ -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,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
+ }