vue2-client 1.2.5 → 1.2.8
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/CHANGELOG.md +16 -0
- package/package.json +89 -89
- package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +2 -2
- package/src/config/CreateQueryConfig.js +40 -0
- package/src/config/default/setting.config.js +1 -0
- package/src/pages/login/Login.vue +8 -4
- package/src/pages/system/ticket/index.vue +427 -0
- package/src/pages/system/ticket/submitTicketSuccess.vue +249 -0
- package/src/router/async/config.async.js +1 -0
- package/src/router/async/router.map.js +2 -2
- package/src/services/api/EmployeeDetailsViewApi.js +0 -4
- package/src/utils/util.js +34 -4
- package/vue.config.js +0 -10
- package/src/pages/system/applyInstallView/Core.vue +0 -570
- package/src/pages/system/applyInstallView/LFComponents/AddPanel.vue +0 -52
- package/src/pages/system/applyInstallView/LFComponents/Control.vue +0 -78
- package/src/pages/system/applyInstallView/LFComponents/DataDialog.vue +0 -24
- package/src/pages/system/applyInstallView/LFComponents/NodePanel.vue +0 -103
- package/src/pages/system/applyInstallView/PropertySetting/Base.vue +0 -124
- package/src/pages/system/applyInstallView/PropertySetting/CommonProperty.vue +0 -104
- package/src/pages/system/applyInstallView/PropertySetting/PropertyDialog.vue +0 -43
- package/src/pages/system/applyInstallView/background/base.png +0 -0
- package/src/pages/system/applyInstallView/background/click.png +0 -0
- package/src/pages/system/applyInstallView/background/download.png +0 -0
- package/src/pages/system/applyInstallView/background/end.png +0 -0
- package/src/pages/system/applyInstallView/background/push.png +0 -0
- package/src/pages/system/applyInstallView/background/start.png +0 -0
- package/src/pages/system/applyInstallView/background/step.png +0 -0
- package/src/pages/system/applyInstallView/background/time.png +0 -0
- package/src/pages/system/applyInstallView/config.js +0 -22
- package/src/pages/system/applyInstallView/data.json +0 -1284
- package/src/pages/system/applyInstallView/index.vue +0 -34
- package/src/pages/system/applyInstallView/registerNode/Connect.vue +0 -43
- package/src/pages/system/applyInstallView/registerNode/index.js +0 -16
- package/src/pages/system/applyInstallView/registerNode/registerBackEdge.js +0 -44
- package/src/pages/system/applyInstallView/registerNode/registerBase.js +0 -139
- package/src/pages/system/applyInstallView/registerNode/registerConnect.js +0 -60
- package/src/pages/system/applyInstallView/registerNode/registerDownload.js +0 -92
- package/src/pages/system/applyInstallView/registerNode/registerEnd.js +0 -110
- package/src/pages/system/applyInstallView/registerNode/registerPolyline.js +0 -14
- package/src/pages/system/applyInstallView/registerNode/registerPush.js +0 -127
- package/src/pages/system/applyInstallView/registerNode/registerStart.js +0 -105
- package/src/pages/system/applyInstallView/registerNode/registerStep.js +0 -209
- package/src/pages/system/applyInstallView/registerNode/registerTask.js +0 -29
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<a-tabs tab-position="left">
|
|
3
|
-
<a-tab-pane tab="操作">
|
|
4
|
-
<div v-for="item in nodeList" :key="item.type">
|
|
5
|
-
<a-button class="add-node-btn" type="primary" size="small" @click="$_addNode(item)">{{ item.label }}</a-button>
|
|
6
|
-
</div>
|
|
7
|
-
</a-tab-pane>
|
|
8
|
-
</a-tabs>
|
|
9
|
-
</template>
|
|
10
|
-
<script>
|
|
11
|
-
export default {
|
|
12
|
-
name: 'AddPanel',
|
|
13
|
-
props: {
|
|
14
|
-
nodeData: {
|
|
15
|
-
type: Object,
|
|
16
|
-
default: null
|
|
17
|
-
},
|
|
18
|
-
lf: {
|
|
19
|
-
type: Object || String,
|
|
20
|
-
default: null
|
|
21
|
-
},
|
|
22
|
-
nodeList: {
|
|
23
|
-
type: Array,
|
|
24
|
-
default: null
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
data () {
|
|
28
|
-
return {
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
methods: {
|
|
32
|
-
$_addNode (item) {
|
|
33
|
-
const { lf, nodeData } = this.$props
|
|
34
|
-
const { id, x, y } = nodeData
|
|
35
|
-
const nextNode = lf.addNode({
|
|
36
|
-
type: item.type,
|
|
37
|
-
x: x + 0,
|
|
38
|
-
y: y + 120
|
|
39
|
-
})
|
|
40
|
-
const nextId = nextNode.id
|
|
41
|
-
lf.addEdge({ sourceNodeId: id, targetNodeId: nextId })
|
|
42
|
-
this.$emit('addNodeFinish')
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
</script>
|
|
47
|
-
<style scoped>
|
|
48
|
-
.add-node-btn{
|
|
49
|
-
margin-bottom: 10px;
|
|
50
|
-
margin-right: 20px;
|
|
51
|
-
}
|
|
52
|
-
</style>
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<a-button-group>
|
|
4
|
-
<a-button type="plain" size="small" @click="$_zoomIn">放大</a-button>
|
|
5
|
-
<a-button type="plain" size="small" @click="$_zoomOut">缩小</a-button>
|
|
6
|
-
<a-button type="plain" size="small" @click="$_zoomReset">大小适应</a-button>
|
|
7
|
-
<a-button type="plain" size="small" @click="$_translateRest">定位还原</a-button>
|
|
8
|
-
<a-button type="plain" size="small" @click="$_reset">还原(大小&定位)</a-button>
|
|
9
|
-
<a-button type="plain" size="small" @click="$_undo" :disabled="undoDisable">上一步(ctrl+z)</a-button>
|
|
10
|
-
<a-button type="plain" size="small" @click="$_redo" :disabled="redoDisable">下一步(ctrl+y)</a-button>
|
|
11
|
-
<a-button type="plain" size="small" @click="$_download">下载图片</a-button>
|
|
12
|
-
<a-button type="plain" size="small" @click="$_catData">查看数据</a-button>
|
|
13
|
-
<a-button type="plain" size="small" @click="$_catRealData">查看实际数据</a-button>
|
|
14
|
-
<a-button v-if="catTurboData" type="plain" size="small" @click="$_catTurboData">查看turbo数据</a-button>
|
|
15
|
-
</a-button-group>
|
|
16
|
-
</div>
|
|
17
|
-
</template>
|
|
18
|
-
<script>
|
|
19
|
-
export default {
|
|
20
|
-
name: 'Control',
|
|
21
|
-
props: {
|
|
22
|
-
lf: Object || String,
|
|
23
|
-
catTurboData: Boolean
|
|
24
|
-
},
|
|
25
|
-
data () {
|
|
26
|
-
return {
|
|
27
|
-
undoDisable: true,
|
|
28
|
-
redoDisable: true,
|
|
29
|
-
graphData: null,
|
|
30
|
-
dataVisible: false
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
mounted () {
|
|
34
|
-
this.$props.lf.on('history:change', ({ data: { undoAble, redoAble } }) => {
|
|
35
|
-
this.$data.undoDisable = !undoAble
|
|
36
|
-
this.$data.redoDisable = !redoAble
|
|
37
|
-
})
|
|
38
|
-
},
|
|
39
|
-
methods: {
|
|
40
|
-
$_zoomIn () {
|
|
41
|
-
this.$props.lf.zoom(true)
|
|
42
|
-
},
|
|
43
|
-
$_zoomOut () {
|
|
44
|
-
this.$props.lf.zoom(false)
|
|
45
|
-
},
|
|
46
|
-
$_zoomReset () {
|
|
47
|
-
this.$props.lf.resetZoom()
|
|
48
|
-
},
|
|
49
|
-
$_translateRest () {
|
|
50
|
-
this.$props.lf.resetTranslate()
|
|
51
|
-
},
|
|
52
|
-
$_reset () {
|
|
53
|
-
this.$props.lf.resetZoom()
|
|
54
|
-
this.$props.lf.resetTranslate()
|
|
55
|
-
},
|
|
56
|
-
$_undo () {
|
|
57
|
-
this.$props.lf.undo()
|
|
58
|
-
},
|
|
59
|
-
$_redo () {
|
|
60
|
-
this.$props.lf.redo()
|
|
61
|
-
},
|
|
62
|
-
$_download () {
|
|
63
|
-
this.$props.lf.getSnapshot()
|
|
64
|
-
},
|
|
65
|
-
$_catData () {
|
|
66
|
-
this.$emit('catData')
|
|
67
|
-
},
|
|
68
|
-
$_catRealData () {
|
|
69
|
-
this.$emit('catRealData')
|
|
70
|
-
},
|
|
71
|
-
$_catTurboData () {
|
|
72
|
-
this.$emit('catTurboData')
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
</script>
|
|
77
|
-
<style scoped>
|
|
78
|
-
</style>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<json-viewer :copyable="{copyText: '复制', copiedText: '已复制'}" :value="!graphData ? {} : graphData"></json-viewer>
|
|
4
|
-
</div>
|
|
5
|
-
</template>
|
|
6
|
-
<script>
|
|
7
|
-
|
|
8
|
-
import JsonViewer from 'vue-json-viewer'
|
|
9
|
-
export default {
|
|
10
|
-
props: {
|
|
11
|
-
graphData: {
|
|
12
|
-
type: Object,
|
|
13
|
-
default: () => {
|
|
14
|
-
return {}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
components: {
|
|
19
|
-
JsonViewer
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
</script>
|
|
23
|
-
<style scoped>
|
|
24
|
-
</style>
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="node-panel">
|
|
3
|
-
<div
|
|
4
|
-
class="node-item"
|
|
5
|
-
v-for="item in nodeList"
|
|
6
|
-
:key="item.text"
|
|
7
|
-
@mousedown="$_dragNode(item)">
|
|
8
|
-
<div class="node-item-icon" :class="item.class">
|
|
9
|
-
<div v-if="item.type === 'base' || item.type === 'time'" class="shape"></div>
|
|
10
|
-
</div>
|
|
11
|
-
<span class="node-label">{{ item.text }}</span>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
<script>
|
|
16
|
-
export default {
|
|
17
|
-
name: 'NodePanel',
|
|
18
|
-
props: {
|
|
19
|
-
nodeList: {
|
|
20
|
-
type: Array,
|
|
21
|
-
default: null
|
|
22
|
-
},
|
|
23
|
-
lf: {
|
|
24
|
-
type: Object || String,
|
|
25
|
-
default: null
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
methods: {
|
|
29
|
-
$_dragNode (item) {
|
|
30
|
-
this.$props.lf.dnd.startDrag({
|
|
31
|
-
type: item.type
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
</script>
|
|
37
|
-
<style>
|
|
38
|
-
.node-panel {
|
|
39
|
-
position: absolute;
|
|
40
|
-
top: 100px;
|
|
41
|
-
left: 10px;
|
|
42
|
-
width: 70px;
|
|
43
|
-
padding: 20px 10px;
|
|
44
|
-
background-color: white;
|
|
45
|
-
box-shadow: 0 0 10px 1px rgb(228, 224, 219);
|
|
46
|
-
border-radius: 6px;
|
|
47
|
-
text-align: center;
|
|
48
|
-
z-index: 101;
|
|
49
|
-
}
|
|
50
|
-
.node-item {
|
|
51
|
-
margin-bottom: 20px;
|
|
52
|
-
}
|
|
53
|
-
.node-item-icon {
|
|
54
|
-
width: 30px;
|
|
55
|
-
height: 30px;
|
|
56
|
-
margin-left: 10px;
|
|
57
|
-
background-size: cover;
|
|
58
|
-
}
|
|
59
|
-
.node-label {
|
|
60
|
-
font-size: 12px;
|
|
61
|
-
margin-top: 5px;
|
|
62
|
-
user-select: none;
|
|
63
|
-
}
|
|
64
|
-
.node-start{
|
|
65
|
-
background: url('../background/start.png') no-repeat;
|
|
66
|
-
background-size: cover;
|
|
67
|
-
}
|
|
68
|
-
.node-rect{
|
|
69
|
-
border: 1px solid black;
|
|
70
|
-
}
|
|
71
|
-
.node-base{
|
|
72
|
-
background: url('../background/base.png') no-repeat;
|
|
73
|
-
background-size: cover;
|
|
74
|
-
}
|
|
75
|
-
.node-step{
|
|
76
|
-
background: url('../background/step.png') no-repeat;
|
|
77
|
-
background-size: cover;
|
|
78
|
-
}
|
|
79
|
-
.node-back-edge{
|
|
80
|
-
background: url('../background/step.png') no-repeat;
|
|
81
|
-
background-size: cover;
|
|
82
|
-
}
|
|
83
|
-
.node-time{
|
|
84
|
-
background: url('../background/time.png') no-repeat;
|
|
85
|
-
background-size: cover;
|
|
86
|
-
}
|
|
87
|
-
.node-push{
|
|
88
|
-
background: url('../background/push.png') no-repeat;
|
|
89
|
-
background-size: cover;
|
|
90
|
-
}
|
|
91
|
-
.node-download{
|
|
92
|
-
background: url('../background/download.png') no-repeat;
|
|
93
|
-
background-size: cover;
|
|
94
|
-
}
|
|
95
|
-
.node-click{
|
|
96
|
-
background: url('../background/click.png') no-repeat;
|
|
97
|
-
background-size: cover;
|
|
98
|
-
}
|
|
99
|
-
.node-end{
|
|
100
|
-
background: url('../background/end.png') no-repeat;
|
|
101
|
-
background-size: cover;
|
|
102
|
-
}
|
|
103
|
-
</style>
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<a-form-model
|
|
4
|
-
ref="ruleForm"
|
|
5
|
-
:model="formData"
|
|
6
|
-
:label-col="labelCol"
|
|
7
|
-
:wrapper-col="wrapperCol"
|
|
8
|
-
:rules="rules" >
|
|
9
|
-
<a-form-model-item label="流程ID" prop="id">
|
|
10
|
-
<a-input-number v-model="formData.id"></a-input-number>
|
|
11
|
-
</a-form-model-item>
|
|
12
|
-
<a-form-model-item label="流程名称" prop="text">
|
|
13
|
-
<a-input v-model="formData.text"></a-input>
|
|
14
|
-
</a-form-model-item>
|
|
15
|
-
<a-form-model-item label="操作员ID" prop="personId">
|
|
16
|
-
<a-input-number v-model="formData.personId"></a-input-number>
|
|
17
|
-
</a-form-model-item>
|
|
18
|
-
<a-form-model-item label="操作员名称" prop="personName">
|
|
19
|
-
<a-input v-model="formData.personName"></a-input>
|
|
20
|
-
</a-form-model-item>
|
|
21
|
-
<a-form-model-item label="预设属性" prop="joinArray">
|
|
22
|
-
<a-popover title="说明" placement="right">
|
|
23
|
-
<template slot="content">
|
|
24
|
-
<p>配置一些流程用的预设属性</p>
|
|
25
|
-
<p>如subdep, man, userid等</p>
|
|
26
|
-
</template>
|
|
27
|
-
<a-button type="primary" @click="addPropItem()">增加</a-button>
|
|
28
|
-
</a-popover>
|
|
29
|
-
<div v-for="(itemObj, index) in formData.propArray" :key="index">
|
|
30
|
-
<a-input-group compact>
|
|
31
|
-
<a-input v-model="itemObj.name" style="width: 30%;position: relative;bottom: 1px;" placeholder="属性名" />
|
|
32
|
-
<a-input v-model="itemObj.id" style="width: 20%;position: relative;bottom: 1px;" placeholder="属性ID" />
|
|
33
|
-
<a-input v-model="itemObj.description" style="width: 50%" placeholder="说明">
|
|
34
|
-
<a-icon slot="addonAfter" type="close" @click="removeJoinItem(index)"/>
|
|
35
|
-
</a-input>
|
|
36
|
-
</a-input-group>
|
|
37
|
-
</div>
|
|
38
|
-
</a-form-model-item>
|
|
39
|
-
<a-form-model-item>
|
|
40
|
-
<a-button type="primary" @click="onSubmit">保存</a-button>
|
|
41
|
-
</a-form-model-item>
|
|
42
|
-
</a-form-model>
|
|
43
|
-
</div>
|
|
44
|
-
</template>
|
|
45
|
-
<script>
|
|
46
|
-
export default {
|
|
47
|
-
name: '',
|
|
48
|
-
props: {
|
|
49
|
-
nodeData: {
|
|
50
|
-
type: Object,
|
|
51
|
-
default: null
|
|
52
|
-
},
|
|
53
|
-
lf: {
|
|
54
|
-
type: Object || String,
|
|
55
|
-
default: null
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
mounted () {
|
|
59
|
-
const { properties, text } = this.$props.nodeData
|
|
60
|
-
if (properties) {
|
|
61
|
-
this.$data.formData = Object.assign({}, this.$data.formData, properties)
|
|
62
|
-
}
|
|
63
|
-
if (text && text.value) {
|
|
64
|
-
this.$data.formData.text = text.value
|
|
65
|
-
}
|
|
66
|
-
if (text && text.value) {
|
|
67
|
-
this.$data.text = text.value
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
data () {
|
|
71
|
-
return {
|
|
72
|
-
labelCol: { span: 5 },
|
|
73
|
-
wrapperCol: { span: 16 },
|
|
74
|
-
text: '',
|
|
75
|
-
formData: {
|
|
76
|
-
id: null,
|
|
77
|
-
text: '',
|
|
78
|
-
personId: null,
|
|
79
|
-
personName: '',
|
|
80
|
-
propArray: []
|
|
81
|
-
},
|
|
82
|
-
rules: {
|
|
83
|
-
id: [
|
|
84
|
-
{ required: true, message: '请输入流程ID', trigger: 'blur' }
|
|
85
|
-
],
|
|
86
|
-
text: [
|
|
87
|
-
{ required: true, message: '请输入流程名称', trigger: 'blur' }
|
|
88
|
-
],
|
|
89
|
-
personId: [
|
|
90
|
-
{ required: true, message: '请输入操作员ID', trigger: 'blur' }
|
|
91
|
-
],
|
|
92
|
-
personName: [
|
|
93
|
-
{ required: true, message: '请输入操作员名称', trigger: 'blur' }
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
methods: {
|
|
99
|
-
onSubmit () {
|
|
100
|
-
this.$refs.ruleForm.validate(valid => {
|
|
101
|
-
if (valid) {
|
|
102
|
-
const { id } = this.$props.nodeData
|
|
103
|
-
this.$props.lf.setProperties(id, {
|
|
104
|
-
...this.$data.formData
|
|
105
|
-
})
|
|
106
|
-
this.$props.lf.updateText(id, this.$data.formData.text)
|
|
107
|
-
this.$message.success('保存成功')
|
|
108
|
-
this.$emit('onClose')
|
|
109
|
-
} else {
|
|
110
|
-
return false
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
},
|
|
114
|
-
addPropItem () {
|
|
115
|
-
this.formData.propArray.push({})
|
|
116
|
-
},
|
|
117
|
-
removeJoinItem (index) {
|
|
118
|
-
this.formData.propArray.splice(index, 1)
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
</script>
|
|
123
|
-
<style scoped>
|
|
124
|
-
</style>
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<a-form-model
|
|
4
|
-
ref="ruleForm"
|
|
5
|
-
:model="formData"
|
|
6
|
-
:label-col="labelCol"
|
|
7
|
-
:wrapper-col="wrapperCol"
|
|
8
|
-
:rules="rules" >
|
|
9
|
-
<a-form-model-item label="ID" prop="id">
|
|
10
|
-
<a-input-number v-model="formData.id"></a-input-number>
|
|
11
|
-
</a-form-model-item>
|
|
12
|
-
<a-form-model-item label="步骤名称" prop="text">
|
|
13
|
-
<a-input v-model="formData.text"></a-input>
|
|
14
|
-
</a-form-model-item>
|
|
15
|
-
<a-form-model-item label="负责人" prop="name">
|
|
16
|
-
<a-checkbox-group v-model="formData.name" :options="personList" />
|
|
17
|
-
</a-form-model-item>
|
|
18
|
-
<a-form-model-item label="超时时间(小时)" prop="timeout">
|
|
19
|
-
<a-input-number v-model="formData.timeout"></a-input-number>
|
|
20
|
-
</a-form-model-item>
|
|
21
|
-
<a-form-model-item>
|
|
22
|
-
<a-button type="primary" @click="onSubmit">保存</a-button>
|
|
23
|
-
</a-form-model-item>
|
|
24
|
-
</a-form-model>
|
|
25
|
-
</div>
|
|
26
|
-
</template>
|
|
27
|
-
<script>
|
|
28
|
-
export default {
|
|
29
|
-
name: '',
|
|
30
|
-
props: {
|
|
31
|
-
nodeData: {
|
|
32
|
-
type: Object,
|
|
33
|
-
default: null
|
|
34
|
-
},
|
|
35
|
-
lf: {
|
|
36
|
-
type: Object || String,
|
|
37
|
-
default: null
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
mounted () {
|
|
41
|
-
const { properties, text } = this.$props.nodeData
|
|
42
|
-
if (properties) {
|
|
43
|
-
this.$data.formData = Object.assign({}, this.$data.formData, properties)
|
|
44
|
-
}
|
|
45
|
-
if (text && text.value) {
|
|
46
|
-
this.$data.formData.text = text.value
|
|
47
|
-
}
|
|
48
|
-
if (text && text.value) {
|
|
49
|
-
this.$data.text = text.value
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
data () {
|
|
53
|
-
return {
|
|
54
|
-
labelCol: { span: 5 },
|
|
55
|
-
wrapperCol: { span: 14 },
|
|
56
|
-
text: '',
|
|
57
|
-
formData: {
|
|
58
|
-
id: 0,
|
|
59
|
-
text: '',
|
|
60
|
-
name: [],
|
|
61
|
-
timeout: 0
|
|
62
|
-
},
|
|
63
|
-
personList: [
|
|
64
|
-
'市场开发员',
|
|
65
|
-
'工程技术员',
|
|
66
|
-
'大区工程技术员',
|
|
67
|
-
'财务出纳员',
|
|
68
|
-
'设计员',
|
|
69
|
-
'物资管理员',
|
|
70
|
-
'现场管理员',
|
|
71
|
-
'客户服务员'
|
|
72
|
-
],
|
|
73
|
-
rules: {
|
|
74
|
-
id: [
|
|
75
|
-
{ required: true, message: '请输入ID', trigger: 'blur' }
|
|
76
|
-
],
|
|
77
|
-
type: [
|
|
78
|
-
{ type: 'array', required: true, message: '请选择负责人', trigger: 'change' }
|
|
79
|
-
],
|
|
80
|
-
text: [{ required: true, message: '请输入步骤名称', trigger: 'blur' }]
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
methods: {
|
|
85
|
-
onSubmit () {
|
|
86
|
-
this.$refs.ruleForm.validate(valid => {
|
|
87
|
-
if (valid) {
|
|
88
|
-
const { id } = this.$props.nodeData
|
|
89
|
-
this.$props.lf.setProperties(id, {
|
|
90
|
-
...this.$data.formData
|
|
91
|
-
})
|
|
92
|
-
this.$props.lf.updateText(id, this.$data.formData.text)
|
|
93
|
-
this.$message.success('保存成功')
|
|
94
|
-
this.$emit('onClose')
|
|
95
|
-
} else {
|
|
96
|
-
return false
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
</script>
|
|
103
|
-
<style scoped>
|
|
104
|
-
</style>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="property-dialog">
|
|
3
|
-
<Base
|
|
4
|
-
v-if="nodeData.type === 'base'"
|
|
5
|
-
:nodeData="nodeData"
|
|
6
|
-
:lf="lf"
|
|
7
|
-
@onClose="handleClose"/>
|
|
8
|
-
<CommonProperty
|
|
9
|
-
v-else
|
|
10
|
-
:nodeData="nodeData"
|
|
11
|
-
:lf="lf"
|
|
12
|
-
@onClose="handleClose"/>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
<script>
|
|
16
|
-
import CommonProperty from './CommonProperty'
|
|
17
|
-
import Base from './Base.vue'
|
|
18
|
-
|
|
19
|
-
export default {
|
|
20
|
-
name: 'PropertyDialog',
|
|
21
|
-
components: {
|
|
22
|
-
CommonProperty,
|
|
23
|
-
Base
|
|
24
|
-
},
|
|
25
|
-
props: {
|
|
26
|
-
nodeData: Object,
|
|
27
|
-
lf: Object
|
|
28
|
-
},
|
|
29
|
-
data () {
|
|
30
|
-
return {}
|
|
31
|
-
},
|
|
32
|
-
methods: {
|
|
33
|
-
handleClose () {
|
|
34
|
-
this.$emit('setPropertiesFinish')
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
</script>
|
|
39
|
-
<style>
|
|
40
|
-
.property-dialog{
|
|
41
|
-
padding: 20px;
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export const nodeList = [
|
|
2
|
-
{
|
|
3
|
-
text: '开始',
|
|
4
|
-
type: 'start',
|
|
5
|
-
class: 'node-start'
|
|
6
|
-
},
|
|
7
|
-
{
|
|
8
|
-
type: 'base',
|
|
9
|
-
text: '基础',
|
|
10
|
-
class: 'node-base'
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
type: 'step',
|
|
14
|
-
text: '流程',
|
|
15
|
-
class: 'node-step'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
type: 'end',
|
|
19
|
-
text: '结束',
|
|
20
|
-
class: 'node-end'
|
|
21
|
-
}
|
|
22
|
-
]
|