@zhijiancloud/bpm 0.0.6 → 0.0.7

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 (97) hide show
  1. package/components/api/batch-loader.js +61 -0
  2. package/components/api/index.js +108 -0
  3. package/components/css/bpmAudit.less +13 -0
  4. package/components/css/bpmMulFile.less +9 -5
  5. package/components/css/bpmSelectEntranceForm.less +62 -0
  6. package/components/css/bpmSelectHouseOwner.less +30 -0
  7. package/components/css/bpmSignature.less +40 -0
  8. package/components/css/bpmText.less +0 -10
  9. package/components/css/common.less +43 -0
  10. package/components/css/index.less +6 -1
  11. package/components/lib/bpmAudit/src/main.vue +35 -4
  12. package/components/lib/bpmAudit/src/part/auditor/audit-new.vue +534 -0
  13. package/components/lib/bpmAudit/src/part/auditor/audit-select.vue +127 -0
  14. package/components/lib/bpmAudit/src/part/auditor/audit-with-others.vue +634 -0
  15. package/components/lib/bpmAudit/src/part/auditor.vue +54 -0
  16. package/components/lib/bpmAudit/src/part/editor.vue +7 -5
  17. package/components/lib/bpmAudit/src/part/reader.vue +10 -9
  18. package/components/lib/bpmDateTime/src/part/editor.vue +3 -1
  19. package/components/lib/bpmField/src/main.vue +5 -150
  20. package/components/lib/bpmFieldsFilter/index.js +7 -0
  21. package/components/lib/bpmFieldsFilter/src/main.vue +324 -0
  22. package/components/lib/bpmFormField/index.js +7 -0
  23. package/components/lib/bpmFormField/src/lib/form_mixin.js +818 -0
  24. package/components/lib/bpmFormField/src/lib/mixin.js +245 -0
  25. package/components/lib/bpmFormField/src/main.vue +35 -0
  26. package/components/lib/bpmMulFile/src/main.vue +0 -1
  27. package/components/lib/bpmMulFile/src/part/editor.vue +1 -1
  28. package/components/lib/bpmMulFile/src/part/reader.vue +12 -33
  29. package/components/lib/bpmMulImage/src/main.vue +1 -2
  30. package/components/lib/bpmMulImage/src/part/editor.vue +5 -1
  31. package/components/lib/bpmMulImage/src/part/reader.vue +14 -4
  32. package/components/lib/bpmNumber/src/part/editor.vue +8 -9
  33. package/components/lib/bpmSelect/src/part/reader.vue +11 -2
  34. package/components/lib/bpmSelectCheckItem/src/part/editor.vue +3 -7
  35. package/components/lib/bpmSelectEntranceForm/index.js +7 -0
  36. package/components/lib/bpmSelectEntranceForm/src/main.vue +529 -0
  37. package/components/lib/bpmSelectFromField/src/main.vue +1 -0
  38. package/components/lib/bpmSelectFromField/src/part/editor.vue +27 -13
  39. package/components/lib/bpmSelectFromForm/src/part/editor.vue +2 -5
  40. package/components/lib/bpmSelectHouseOwner/index.js +7 -0
  41. package/components/lib/bpmSelectHouseOwner/src/main.vue +102 -0
  42. package/components/lib/bpmSelectHouseOwner/src/part/editor.vue +101 -0
  43. package/components/lib/bpmSelectHouseOwner/src/part/reader.vue +17 -0
  44. package/components/lib/bpmSelectIssue/index.js +7 -0
  45. package/components/lib/bpmSelectIssue/src/main.vue +180 -0
  46. package/components/lib/bpmSignature/index.js +7 -0
  47. package/components/lib/bpmSignature/src/main.vue +248 -0
  48. package/components/lib/bpmSubForm/src/main.vue +25 -3
  49. package/components/lib/bpmTime/src/part/editor.vue +3 -2
  50. package/components/lib/field-const.js +5 -2
  51. package/components/lib/index.ts +32 -2
  52. package/components/mixins/field_base_mixin.vue +188 -0
  53. package/components/vendor/draw.js +240 -0
  54. package/dist/bpmAudit.umd.js +1 -1
  55. package/dist/bpmDateTime.umd.js +1 -1
  56. package/dist/bpmField.umd.js +7 -1
  57. package/dist/bpmField.umd.js.LICENSE.txt +2 -0
  58. package/dist/bpmFieldsFilter.umd.js +8 -0
  59. package/dist/bpmFieldsFilter.umd.js.LICENSE.txt +1 -0
  60. package/dist/bpmFormField.umd.js +8 -0
  61. package/dist/bpmFormField.umd.js.LICENSE.txt +11 -0
  62. package/dist/bpmMulFile.umd.js +1 -1
  63. package/dist/bpmMulImage.umd.js +1 -1
  64. package/dist/bpmNumber.umd.js +1 -1
  65. package/dist/bpmSelect.umd.js +1 -1
  66. package/dist/bpmSelectCheckItem.umd.js +1 -1
  67. package/dist/bpmSelectEntranceForm.umd.js +8 -0
  68. package/dist/bpmSelectEntranceForm.umd.js.LICENSE.txt +1 -0
  69. package/dist/bpmSelectFromField.umd.js +1 -1
  70. package/dist/bpmSelectFromForm.umd.js +1 -1
  71. package/dist/bpmSelectHouseOwner.umd.js +1 -0
  72. package/dist/bpmSelectIssue.umd.js +1 -0
  73. package/dist/bpmSignature.umd.js +2 -0
  74. package/dist/bpmSignature.umd.js.LICENSE.txt +9 -0
  75. package/dist/bpmSubForm.umd.js +1 -1
  76. package/dist/bpmText.umd.js +1 -1
  77. package/dist/bpmTime.umd.js +1 -1
  78. package/dist/css/bpmAudit.css +1 -0
  79. package/dist/css/bpmMulFile.css +1 -1
  80. package/dist/css/bpmSelectEntranceForm.css +1 -0
  81. package/dist/css/bpmSelectHouseOwner.css +1 -0
  82. package/dist/css/bpmSignature.css +1 -0
  83. package/dist/css/bpmText.css +1 -1
  84. package/dist/css/common.css +1 -0
  85. package/dist/css/index.css +1 -1
  86. package/dist/demo.umd.js +1 -1
  87. package/dist/demo2.umd.js +1 -1
  88. package/dist/index.umd.js +7 -1
  89. package/dist/index.umd.js.LICENSE.txt +2 -0
  90. package/package.json +25 -18
  91. package/CHANGELOG.md +0 -27
  92. package/dist/bpmDateTime.umd.js.LICENSE.txt +0 -38
  93. package/dist/bpmNumber.umd.js.LICENSE.txt +0 -38
  94. package/dist/bpmSelect.umd.js.LICENSE.txt +0 -38
  95. package/dist/bpmSelectUser.umd.js +0 -1
  96. package/dist/bpmText.umd.js.LICENSE.txt +0 -38
  97. package/dist/bpmTime.umd.js.LICENSE.txt +0 -38
@@ -0,0 +1,61 @@
1
+ import _ from 'lodash'
2
+
3
+ class BatchLoader {
4
+ constructor(fnBatchLoad, options={}){
5
+ this._fnBatchLoad = fnBatchLoad
6
+ this._options = options
7
+ this._queue = []
8
+ }
9
+
10
+ async load(key){
11
+ let results = await this.loads(key)
12
+ return _.get(results, "0")
13
+ }
14
+
15
+
16
+ loads(...keys){
17
+ let promise = new Promise((resolve, reject)=>{
18
+ this._queue.push({
19
+ keys,
20
+ resolve,
21
+ reject
22
+ })
23
+
24
+ if(this._queue.length == 1){
25
+ this.nextTick(()=>{
26
+ this.process()
27
+ })
28
+ }
29
+ })
30
+ return promise
31
+ }
32
+
33
+ nextTick(fn){
34
+ setTimeout(fn, 0);
35
+ }
36
+
37
+ process(){
38
+ let queue = this._queue
39
+ this._queue = []
40
+ let resultMap = {}
41
+ _.each(queue, item=> {
42
+ _.each(item.keys, key => resultMap[key] = null)
43
+ })
44
+
45
+ let uniqueKeys = _.keys(resultMap)
46
+ this._fnBatchLoad(uniqueKeys).then(results=>{
47
+
48
+ _.each(uniqueKeys, (key, i)=>{
49
+ resultMap[key] = results[i]
50
+ })
51
+ _.each(queue, ({keys, resolve})=>{
52
+ let results = _.map(keys, key => resultMap[key])
53
+ resolve(results)
54
+ })
55
+ }).catch(error=>{
56
+ _.each(queue, ({reject})=> reject(error))
57
+ })
58
+ }
59
+ }
60
+
61
+ export default BatchLoader
@@ -0,0 +1,108 @@
1
+ import { isMobile } from '../lib/utils.js'
2
+ import BatchLoader from './batch-loader.js'
3
+
4
+ // TODO 待去除对$bpm的依赖
5
+ const requestAppendOrgParams = async (reqArgs, vm$bpm, orgInfo) => {
6
+ console.log("netHeader", vm$bpm.netHeader)
7
+ // let startTime = new Date().getTime()
8
+ vm$bpm.networking = true
9
+ if (vm$bpm.netHeader) reqArgs.headers = {
10
+ common: vm$bpm.netHeader
11
+ }
12
+ reqArgs.params = _.merge({}, reqArgs.params, orgInfo)
13
+ if (vm$bpm.env.ignore_levels) {
14
+ _.set(reqArgs.params, "ignore_levels", true)
15
+ }
16
+
17
+ if (isMobile()) {
18
+ let token = zj.utils.pageParam().token
19
+ reqArgs.params = _.merge({
20
+ token,
21
+ platform: 'phone'
22
+ }, reqArgs.params)
23
+ }
24
+ reqArgs.isSilentOnErr = (res) => {
25
+ let result = _.get(res, "data.result")
26
+ if (result >= 19000000 || result <= 19999999) return true
27
+ return false
28
+ }
29
+ let res = await zj.net.request(reqArgs)
30
+ // TODO gio埋点
31
+ // let endTime = new Date().getTime()
32
+ // let diff = endTime - startTime
33
+ // gio('track', 'getInterfaceTime', {
34
+ // interface_time: diff,
35
+ // interface_path: reqArgs.path
36
+ // });
37
+
38
+ vm$bpm.networking = false
39
+ return res
40
+ }
41
+
42
+ const batchLoaderMap = {}
43
+
44
+ export default {
45
+ assistSelectEntranceForm: {
46
+ getListDefinition (vm$bpm, {formDefId, fieldDefId, orgInfo, isDm}) {
47
+ let url = isDm ?
48
+ `/app_flow/v1/papi/assist_select_entrance_form/${formDefId}/${fieldDefId}/list_definition/` :
49
+ `/app_flow/v1/papi/assist_select_entrance_form/${formDefId}/${fieldDefId}/list_definition/`
50
+ return requestAppendOrgParams({
51
+ url: url,
52
+ method: 'GET'
53
+ }, vm$bpm, orgInfo)
54
+ },
55
+ getOptions (vm$bpm, {formDefId, fieldDefId, orgInfo, isDm}, params) {
56
+ return requestAppendOrgParams({
57
+ url: `/app_flow/v1/papi/assist_select_entrance_form/${formDefId}/${fieldDefId}/list_search/`,
58
+ method: 'GET',
59
+ params: params
60
+ }, vm$bpm, orgInfo)
61
+ },
62
+ getListSelected (vm$bpm, {formDefId, fieldDefId, orgInfo, isDm}, params) {
63
+ return requestAppendOrgParams({
64
+ url: `/app_flow/v1/papi/assist_select_entrance_form/${formDefId}/${fieldDefId}/list_selected/`,
65
+ method: 'GET',
66
+ params: params
67
+ }, vm$bpm, orgInfo)
68
+ }
69
+ },
70
+
71
+ assistField: {
72
+ // 沿用原命名,换取id值对应的名称
73
+ getBatchLoader (vm$bpm, {formDefId, fieldDefId, orgInfo, uniqueId}) {
74
+ // loader区分key
75
+ const key = `${formDefId}/${fieldDefId}`
76
+ const loader = batchLoaderMap[key] || new BatchLoader(async (values) => {
77
+ console.log('assist_field/list_title requeset is call')
78
+
79
+ let url = `/app_flow/v1/papi/assist_field/${formDefId}/${fieldDefId}/list_title/`
80
+
81
+ const res = await requestAppendOrgParams({
82
+ url: url,
83
+ method: 'GET',
84
+ params: {
85
+ values: JSON.stringify(values)
86
+ },
87
+ }, vm$bpm, orgInfo)
88
+ const valueLabelMap = _.get(res, 'data.data.data', {})
89
+ let result = []
90
+ _.map(values, value => {
91
+ if (uniqueId) {
92
+ value = JSON.parse(value)
93
+ value = _.get(value, `${uniqueId}`)
94
+ result = _.concat(result, valueLabelMap[value])
95
+ } else {
96
+ result = _.concat(result, valueLabelMap[value])
97
+ }
98
+ })
99
+
100
+ return result
101
+ })
102
+
103
+ batchLoaderMap[key] = loader
104
+
105
+ return loader
106
+ },
107
+ },
108
+ }
@@ -0,0 +1,13 @@
1
+ .bpm-audit{
2
+ .aduit-result-title{
3
+ padding: 0px 10px;
4
+ border-radius: 8px;
5
+ overflow: hidden;
6
+ line-height: 25px;
7
+ height: 25px;
8
+ box-sizing: border-box;
9
+ display: inline-block;
10
+ vertical-align: middle;
11
+ }
12
+ }
13
+
@@ -2,9 +2,11 @@
2
2
  .file-box{
3
3
  overflow: hidden;
4
4
  margin-top: 10px;
5
- max-width: 360px;
5
+ // max-width: 360px;
6
6
  padding: 0 6px;
7
7
  display: flex;
8
+ align-items: center;
9
+
8
10
  &:hover{
9
11
  background: #EFF2F7;
10
12
  border-radius: 4px;
@@ -20,15 +22,17 @@
20
22
  .file-link{
21
23
  margin-top: 5px;
22
24
  margin-left: 5px;
23
- max-width: 266px;
25
+ // max-width: 266px;
24
26
  overflow: hidden;
25
27
  text-overflow: ellipsis;
26
28
  white-space: nowrap;
27
29
  }
28
30
  }
29
31
  .file-remove, .operation-box{
30
- float: right;
32
+ // float: right;
33
+ flex-shrink: 0;
31
34
  font-weight: 400;
35
+ width: 94px;
32
36
  font-size: 12px;
33
37
  color: #246AE3;
34
38
  line-height: 14px;
@@ -43,8 +47,8 @@
43
47
  margin-top: 4px;
44
48
  }
45
49
  .file-icon{
46
- height: 20px;
47
- margin-top: 4px;
50
+ // height: 20px;
51
+ // margin-top: 4px;
48
52
  }
49
53
  }
50
54
  img{
@@ -0,0 +1,62 @@
1
+ .bpm-select-entrance-form {
2
+ .main-wrap {
3
+ position: relative;
4
+ // padding-top: 40px;
5
+ }
6
+ .search-wrap {
7
+ position: sticky;
8
+ top: 0;
9
+ left: 0;
10
+ right: 0;
11
+ margin-bottom: 10px;
12
+ z-index: 99;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: flex-end;
16
+ }
17
+
18
+ .select-option-card {
19
+ margin-bottom: 10px;
20
+
21
+ .card-body-content {
22
+ color: #333;
23
+ font-size: 14px;
24
+ }
25
+ .label {
26
+ color: #848484;
27
+ width: 120px;
28
+ display: inline-block;
29
+ }
30
+ }
31
+
32
+ .edit-list {
33
+ // 不知道为啥有个font-size:0;导致卡片标题不显示
34
+ .el-checkbox-group {
35
+ font-size: 14px;
36
+ }
37
+ &-item {
38
+ display: flex;
39
+ align-items: center;
40
+
41
+ .checkbox {
42
+ margin-bottom: 10px;
43
+ }
44
+ .select-option-card {
45
+ flex: 1;
46
+ }
47
+ }
48
+ }
49
+
50
+ .footer {
51
+ display: flex;
52
+ justify-content: space-between;
53
+
54
+ .subtext {
55
+ color: #666;
56
+ margin-left: 16px;
57
+ }
58
+ .width-button {
59
+ min-width: 150px;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,30 @@
1
+ .bpm-autocomplete {
2
+ width: 100%;
3
+
4
+ .el-input__inner {
5
+ font-size: 16px;
6
+ padding: 0;
7
+ border: 0 none;
8
+ border-bottom: 1px solid #BDBDBD;
9
+ transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
10
+ }
11
+ }
12
+
13
+ .select-house-owner{
14
+ position: relative;
15
+ }
16
+ .select-house-owner::after{
17
+ content: "业主手机号";
18
+ position: absolute;
19
+ left: 31px;
20
+ top: 56px;
21
+ font-size: 16px;
22
+ color: #999999;
23
+ word-break: break-word;
24
+ }
25
+ .mobile{
26
+ .select-house-owner::after{
27
+ color: #666;
28
+ }
29
+
30
+ }
@@ -0,0 +1,40 @@
1
+ .bpm-signature {
2
+ // view
3
+ .signature-reader {
4
+ height: 320px;
5
+ }
6
+ .canvas-box {
7
+ display: flex;
8
+ flex-direction: column;
9
+ width: 100%;
10
+ height: 220px;
11
+ border: 1px dashed #c9c5c5;
12
+ overflow: hidden;
13
+ canvas {
14
+ flex: 1;
15
+ cursor: crosshair;
16
+ }
17
+ // edit
18
+ .signature-reader {
19
+ height: 100%;
20
+ flex: 1;
21
+ }
22
+ }
23
+ .action-wrap {
24
+ padding: 6px 0;
25
+ display: flex;
26
+ justify-content: space-between;
27
+ }
28
+ }
29
+ .desktop {
30
+ .bpm-signature .canvas-box {
31
+ height: 320px;
32
+ max-width: 100%;
33
+ }
34
+ }
35
+ .mobile{
36
+ .bpm-signature .sign-next-use{
37
+ font-size: 12px;
38
+ margin-bottom: 3px;
39
+ }
40
+ }
@@ -37,13 +37,3 @@
37
37
  }
38
38
  }
39
39
  }
40
-
41
-
42
- .bpm-text-view.table-text-view {
43
- word-break: break-all;
44
- text-overflow: ellipsis;
45
- display: -webkit-box;
46
- -webkit-box-orient: vertical;
47
- -webkit-line-clamp: 3;
48
- overflow: hidden;
49
- }
@@ -0,0 +1,43 @@
1
+ // reset
2
+ ul, li {
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+
8
+ .typing_loader {
9
+ display: inline-block;
10
+ width: 6px;
11
+ height: 6px;
12
+ border-radius: 50%;
13
+ animation: typing 1s linear infinite alternate;
14
+ }
15
+
16
+ @keyframes typing {
17
+ 0% {
18
+ background-color: rgba(136,136,136, 1);
19
+ box-shadow: 12px 0px 0px 0px rgba(136,136,136,0.2),
20
+ 24px 0px 0px 0px rgba(136,136,136,0.2);
21
+ }
22
+ 25% {
23
+ background-color: rgba(136,136,136, 0.4);
24
+ box-shadow: 12px 0px 0px 0px rgba(136,136,136,2),
25
+ 24px 0px 0px 0px rgba(136,136,136,0.2);
26
+ }
27
+ 75% {
28
+ background-color: rgba(136,136,136, 0.4);
29
+ box-shadow: 12px 0px 0px 0px rgba(136,136,136,0.2),
30
+ 24px 0px 0px 0px rgba(136,136,136,1);
31
+ }
32
+ }
33
+
34
+ // 状态的样式
35
+ .bpm-status_tag-status {
36
+ color: #fff;
37
+ font-size: 13px;
38
+ line-height: 1.2;
39
+ padding: 5px 8px;
40
+ border-radius: 10px;
41
+ background: #888;
42
+ display: inline-block;
43
+ }
@@ -1,3 +1,8 @@
1
+ @import "./common.less";
1
2
  @import './demo.less';
2
3
  @import './demo2.less';
3
- @import './bpmText.less';
4
+ @import './bpmText.less';
5
+ @import './bpmMulFile.less';
6
+ @import "./bpmSelectEntranceForm.less";
7
+ @import "./bpmSignature.less";
8
+ @import "./bpmAudit.less";
@@ -10,6 +10,7 @@
10
10
  v-bind="$attrs"
11
11
  v-on="$listeners"
12
12
  @change="onChange"
13
+ :container="container"
13
14
  >
14
15
  </component>
15
16
 
@@ -17,12 +18,14 @@
17
18
  <script>
18
19
  import editorComponent from "./part/editor.vue";
19
20
  import readerComponent from "./part/reader.vue";
21
+ import auditorComponent from "./part/auditor.vue";
20
22
 
21
23
  export default {
22
24
  name: "BpmAudit",
23
25
  components: {
24
26
  editorComponent,
25
- readerComponent
27
+ readerComponent,
28
+ auditorComponent
26
29
  },
27
30
  props: {
28
31
  value: {
@@ -51,14 +54,24 @@ export default {
51
54
  default() {
52
55
  return "default";
53
56
  },
54
- }
57
+ },
58
+ container: {
59
+ type: [Object,null],
60
+ default () {
61
+ return null
62
+ }
63
+ },
55
64
  },
56
65
  computed: {
57
66
  curComponent() {
58
67
  if (this.mode == "view") {
59
68
  return readerComponent;
60
69
  } else {
61
- return editorComponent;
70
+ if(this.uiType == 'audit'){
71
+ return auditorComponent
72
+ }else{
73
+ return readerComponent;
74
+ }
62
75
  }
63
76
  },
64
77
  },
@@ -83,4 +96,22 @@ export default {
83
96
  }
84
97
  }
85
98
  };
86
- </script>
99
+ </script>
100
+
101
+ <style lang="less">
102
+ .bpm-audit{
103
+ .audit-editor,.audit-reader{
104
+ .aduit-result{
105
+ padding: 0px 10px;
106
+ border-radius: 8px;
107
+ overflow: hidden;
108
+ line-height: 25px;
109
+ height: 25px;
110
+ box-sizing: border-box;
111
+ display: inline-block;
112
+ vertical-align: middle;
113
+ }
114
+ }
115
+ }
116
+
117
+ </style>