@zhijiancloud/bpm 0.0.5 → 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 (99) 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 +13 -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/index.js +7 -0
  12. package/components/lib/bpmAudit/src/main.vue +117 -0
  13. package/components/lib/bpmAudit/src/part/auditor/audit-new.vue +534 -0
  14. package/components/lib/bpmAudit/src/part/auditor/audit-select.vue +127 -0
  15. package/components/lib/bpmAudit/src/part/auditor/audit-with-others.vue +634 -0
  16. package/components/lib/bpmAudit/src/part/auditor.vue +54 -0
  17. package/components/lib/bpmAudit/src/part/editor.vue +318 -0
  18. package/components/lib/bpmAudit/src/part/reader.vue +218 -0
  19. package/components/lib/bpmDateTime/src/part/editor.vue +3 -1
  20. package/components/lib/bpmField/src/main.vue +5 -147
  21. package/components/lib/bpmFieldsFilter/index.js +7 -0
  22. package/components/lib/bpmFieldsFilter/src/main.vue +324 -0
  23. package/components/lib/bpmFormField/index.js +7 -0
  24. package/components/lib/bpmFormField/src/lib/form_mixin.js +818 -0
  25. package/components/lib/bpmFormField/src/lib/mixin.js +245 -0
  26. package/components/lib/bpmFormField/src/main.vue +35 -0
  27. package/components/lib/bpmMulFile/src/main.vue +0 -1
  28. package/components/lib/bpmMulFile/src/part/editor.vue +1 -1
  29. package/components/lib/bpmMulFile/src/part/reader.vue +12 -33
  30. package/components/lib/bpmMulImage/src/main.vue +1 -2
  31. package/components/lib/bpmMulImage/src/part/editor.vue +10 -6
  32. package/components/lib/bpmMulImage/src/part/reader.vue +14 -4
  33. package/components/lib/bpmNumber/src/part/editor.vue +8 -9
  34. package/components/lib/bpmSelect/src/part/reader.vue +11 -2
  35. package/components/lib/bpmSelectCheckItem/src/part/editor.vue +3 -7
  36. package/components/lib/bpmSelectEntranceForm/index.js +7 -0
  37. package/components/lib/bpmSelectEntranceForm/src/main.vue +529 -0
  38. package/components/lib/bpmSelectFromField/src/main.vue +1 -0
  39. package/components/lib/bpmSelectFromField/src/part/editor.vue +27 -13
  40. package/components/lib/bpmSelectFromForm/src/part/editor.vue +2 -5
  41. package/components/lib/bpmSelectHouseOwner/index.js +7 -0
  42. package/components/lib/bpmSelectHouseOwner/src/main.vue +102 -0
  43. package/components/lib/bpmSelectHouseOwner/src/part/editor.vue +101 -0
  44. package/components/lib/bpmSelectHouseOwner/src/part/reader.vue +17 -0
  45. package/components/lib/bpmSelectIssue/index.js +7 -0
  46. package/components/lib/bpmSelectIssue/src/main.vue +180 -0
  47. package/components/lib/bpmSignature/index.js +7 -0
  48. package/components/lib/bpmSignature/src/main.vue +248 -0
  49. package/components/lib/bpmSubForm/src/main.vue +25 -3
  50. package/components/lib/bpmTime/src/part/editor.vue +3 -2
  51. package/components/lib/field-const.js +6 -2
  52. package/components/lib/index.ts +57 -7
  53. package/components/mixins/field_base_mixin.vue +188 -0
  54. package/components/vendor/draw.js +240 -0
  55. package/dist/bpmAudit.umd.js +2 -0
  56. package/dist/bpmAudit.umd.js.LICENSE.txt +9 -0
  57. package/dist/bpmDateTime.umd.js +1 -1
  58. package/dist/bpmField.umd.js +7 -1
  59. package/dist/bpmField.umd.js.LICENSE.txt +2 -0
  60. package/dist/bpmFieldsFilter.umd.js +8 -0
  61. package/dist/bpmFieldsFilter.umd.js.LICENSE.txt +1 -0
  62. package/dist/bpmFormField.umd.js +8 -0
  63. package/dist/bpmFormField.umd.js.LICENSE.txt +11 -0
  64. package/dist/bpmMulFile.umd.js +1 -1
  65. package/dist/bpmMulImage.umd.js +1 -1
  66. package/dist/bpmNumber.umd.js +1 -1
  67. package/dist/bpmSelect.umd.js +1 -1
  68. package/dist/bpmSelectCheckItem.umd.js +1 -1
  69. package/dist/bpmSelectEntranceForm.umd.js +8 -0
  70. package/dist/bpmSelectEntranceForm.umd.js.LICENSE.txt +1 -0
  71. package/dist/bpmSelectFromField.umd.js +1 -1
  72. package/dist/bpmSelectFromForm.umd.js +1 -1
  73. package/dist/bpmSelectHouseOwner.umd.js +1 -0
  74. package/dist/bpmSelectIssue.umd.js +1 -0
  75. package/dist/bpmSignature.umd.js +2 -0
  76. package/dist/bpmSignature.umd.js.LICENSE.txt +9 -0
  77. package/dist/bpmSubForm.umd.js +1 -1
  78. package/dist/bpmText.umd.js +1 -1
  79. package/dist/bpmTime.umd.js +1 -1
  80. package/dist/css/bpmAudit.css +1 -0
  81. package/dist/css/bpmMulFile.css +1 -1
  82. package/dist/css/bpmSelectEntranceForm.css +1 -0
  83. package/dist/css/bpmSelectHouseOwner.css +1 -0
  84. package/dist/css/bpmSignature.css +1 -0
  85. package/dist/css/bpmText.css +1 -1
  86. package/dist/css/common.css +1 -0
  87. package/dist/css/index.css +1 -1
  88. package/dist/demo.umd.js +1 -1
  89. package/dist/demo2.umd.js +1 -1
  90. package/dist/index.umd.js +7 -1
  91. package/dist/index.umd.js.LICENSE.txt +2 -0
  92. package/package.json +26 -18
  93. package/CHANGELOG.md +0 -23
  94. package/dist/bpmDateTime.umd.js.LICENSE.txt +0 -38
  95. package/dist/bpmNumber.umd.js.LICENSE.txt +0 -38
  96. package/dist/bpmSelect.umd.js.LICENSE.txt +0 -38
  97. package/dist/bpmSelectUser.umd.js +0 -1
  98. package/dist/bpmText.umd.js.LICENSE.txt +0 -38
  99. 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{
@@ -52,3 +56,7 @@ img{
52
56
  height: 100%;
53
57
  width: auto;
54
58
  }
59
+
60
+ .viewer-container{
61
+ z-index: 10000!important;
62
+ }
@@ -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";
@@ -0,0 +1,7 @@
1
+ import BpmAudit from './src/main.vue'
2
+
3
+ BpmAudit.install = function(Vue) {
4
+ Vue.component(BpmAudit.name , BpmAudit);
5
+ }
6
+
7
+ export default BpmAudit
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <component
3
+ class="bpm-audit"
4
+ v-model="curVal"
5
+ :is="curComponent"
6
+ :fieldConf="fieldConf"
7
+ :row="row"
8
+ :mode="mode"
9
+ :uiType="uiType"
10
+ v-bind="$attrs"
11
+ v-on="$listeners"
12
+ @change="onChange"
13
+ :container="container"
14
+ >
15
+ </component>
16
+
17
+ </template>
18
+ <script>
19
+ import editorComponent from "./part/editor.vue";
20
+ import readerComponent from "./part/reader.vue";
21
+ import auditorComponent from "./part/auditor.vue";
22
+
23
+ export default {
24
+ name: "BpmAudit",
25
+ components: {
26
+ editorComponent,
27
+ readerComponent,
28
+ auditorComponent
29
+ },
30
+ props: {
31
+ value: {
32
+ type: [Object]
33
+ },
34
+ fieldConf: {
35
+ type: Object,
36
+ default() {
37
+ return {};
38
+ },
39
+ },
40
+ row: {
41
+ type: Object,
42
+ default() {
43
+ return {};
44
+ },
45
+ },
46
+ mode: {
47
+ type: String,
48
+ default() {
49
+ return "view";
50
+ },
51
+ },
52
+ uiType: {
53
+ type: String,
54
+ default() {
55
+ return "default";
56
+ },
57
+ },
58
+ container: {
59
+ type: [Object,null],
60
+ default () {
61
+ return null
62
+ }
63
+ },
64
+ },
65
+ computed: {
66
+ curComponent() {
67
+ if (this.mode == "view") {
68
+ return readerComponent;
69
+ } else {
70
+ if(this.uiType == 'audit'){
71
+ return auditorComponent
72
+ }else{
73
+ return readerComponent;
74
+ }
75
+ }
76
+ },
77
+ },
78
+ data() {
79
+ return {
80
+ curVal: {},
81
+ };
82
+ },
83
+ watch: {
84
+ value() {
85
+ this.curVal = this.value;
86
+ },
87
+ },
88
+ mounted() {
89
+ this.curVal = this.value;
90
+ },
91
+ methods: {
92
+ onChange(val){
93
+ console.log("onChange", _.cloneDeep(val))
94
+ this.$emit("input", val);
95
+ this.$emit("change", val);
96
+ }
97
+ }
98
+ };
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>