vue2-client 1.20.63 → 1.20.65
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/.idea/CopilotChatHistory.xml +39 -0
- package/.idea/MarsCodeWorkspaceAppSettings.xml +8 -0
- package/.idea/af-vue2-client.iml +7 -4
- package/.idea/migrateChatHistory.xml +10 -0
- package/package.json +1 -1
- package/src/base-client/components/common/Upload/Upload.vue +32 -2
- package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +9 -0
- package/src/base-client/components/common/XForm/XFormItem.vue +9 -1
- package/src/base-client/components/common/XFormCol/XFormCol.vue +1 -1
- package/src/base-client/components/common/XFormTable/demo.vue +133 -37
- package/src/pages/WorkflowDetail/WorkFlowDemo4.vue +127 -0
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +417 -417
- package/src/pages/userInfoDetailManage/index.vue +16 -13
- package/src/utils/module-loader/VueSfcModuleCache.js +99 -93
- package/src/utils/module-loader/index.js +5 -5
- package/.idea/deployment.xml +0 -14
- package/.idea/misc.xml +0 -6
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="CopilotChatHistory">
|
|
4
|
+
<option name="conversations">
|
|
5
|
+
<list>
|
|
6
|
+
<Conversation>
|
|
7
|
+
<option name="createTime" value="1751936027311" />
|
|
8
|
+
<option name="id" value="0197e7864aaf7383abd8fcc579d97f0e" />
|
|
9
|
+
<option name="title" value="新对话 2025年7月08日 08:53:47" />
|
|
10
|
+
<option name="updateTime" value="1751936027311" />
|
|
11
|
+
</Conversation>
|
|
12
|
+
<Conversation>
|
|
13
|
+
<option name="createTime" value="1751504039181" />
|
|
14
|
+
<option name="id" value="0197cdc6ad0d74de92481b3b338ef77d" />
|
|
15
|
+
<option name="title" value="新对话 2025年7月03日 08:53:59" />
|
|
16
|
+
<option name="updateTime" value="1751504039181" />
|
|
17
|
+
</Conversation>
|
|
18
|
+
<Conversation>
|
|
19
|
+
<option name="createTime" value="1751417570211" />
|
|
20
|
+
<option name="id" value="0197c89f43a37f5aa39c941d198784ba" />
|
|
21
|
+
<option name="title" value="新对话 2025年7月02日 08:52:50" />
|
|
22
|
+
<option name="updateTime" value="1751417570211" />
|
|
23
|
+
</Conversation>
|
|
24
|
+
<Conversation>
|
|
25
|
+
<option name="createTime" value="1750899191763" />
|
|
26
|
+
<option name="id" value="0197a9b96fd37d9e8fb5269c9fc6f3ec" />
|
|
27
|
+
<option name="title" value="新对话 2025年6月26日 08:53:11" />
|
|
28
|
+
<option name="updateTime" value="1750899191763" />
|
|
29
|
+
</Conversation>
|
|
30
|
+
<Conversation>
|
|
31
|
+
<option name="createTime" value="1750380684498" />
|
|
32
|
+
<option name="id" value="01978ad1a4d27fcbab7810685ef316e7" />
|
|
33
|
+
<option name="title" value="新对话 2025年6月20日 08:51:24" />
|
|
34
|
+
<option name="updateTime" value="1750380684498" />
|
|
35
|
+
</Conversation>
|
|
36
|
+
</list>
|
|
37
|
+
</option>
|
|
38
|
+
</component>
|
|
39
|
+
</project>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
|
|
4
|
+
<option name="chatAppRouterInfo" value="builder/691d37a10c28806eaf3d4104" />
|
|
5
|
+
<option name="ckgOperationStatus" value="SUCCESS" />
|
|
6
|
+
<option name="progress" value="1.0" />
|
|
7
|
+
</component>
|
|
8
|
+
</project>
|
package/.idea/af-vue2-client.iml
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="
|
|
3
|
-
<component name="NewModuleRootManager"
|
|
4
|
-
<
|
|
5
|
-
|
|
2
|
+
<module type="WEB_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager">
|
|
4
|
+
<content url="file://$MODULE_DIR$">
|
|
5
|
+
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
6
|
+
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
7
|
+
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
8
|
+
</content>
|
|
6
9
|
<orderEntry type="inheritedJdk" />
|
|
7
10
|
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
11
|
</component>
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
</a-upload>
|
|
26
26
|
</template>
|
|
27
27
|
<a-upload-dragger
|
|
28
|
-
v-else-if="model.type === 'file'"
|
|
28
|
+
v-else-if="model.type === 'file' || model.type === 'signature'"
|
|
29
29
|
:accept="model.accept?.join('')"
|
|
30
30
|
:customRequest="uploadFiles"
|
|
31
31
|
:file-list="uploadedFileList"
|
|
@@ -156,6 +156,21 @@ export default {
|
|
|
156
156
|
readOnly: {
|
|
157
157
|
type: Boolean,
|
|
158
158
|
default: false
|
|
159
|
+
},
|
|
160
|
+
// 兼容图片(新的image类型的表单项的字段名可自定义了,不再固定为Images,该属性为传入的新的图片列表)
|
|
161
|
+
// 如果字段名依旧为Images,则不需要该属性,而是使用images属性(兼容旧版的代码)
|
|
162
|
+
compatibleImages: {
|
|
163
|
+
type: Array,
|
|
164
|
+
default: () => {
|
|
165
|
+
return []
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
// 兼容签名(PC端没有签名功能,只做展示,归属到文件上传中,该属性为传入的签名列表)
|
|
169
|
+
signs: {
|
|
170
|
+
type: Array,
|
|
171
|
+
default: () => {
|
|
172
|
+
return []
|
|
173
|
+
}
|
|
159
174
|
}
|
|
160
175
|
},
|
|
161
176
|
computed: {
|
|
@@ -163,7 +178,22 @@ export default {
|
|
|
163
178
|
...mapState('setting', ['compatible'])
|
|
164
179
|
},
|
|
165
180
|
created () {
|
|
166
|
-
const list = this.model.type === 'file' ? [...this.files] : [...this.images]
|
|
181
|
+
// const list = this.model.type === 'file' ? [...this.files] : [...this.images]
|
|
182
|
+
let list = []
|
|
183
|
+
if (this.model.type === 'file') {
|
|
184
|
+
list = [...this.files]
|
|
185
|
+
} else if (this.model.type === 'signature') {
|
|
186
|
+
list = [...this.signs]
|
|
187
|
+
} else {
|
|
188
|
+
if (this.model.type === 'image' && this.model.model === 'Images') {
|
|
189
|
+
list = [...this.images]
|
|
190
|
+
} else if (this.model.type === 'image' && this.model.model !== 'Images') {
|
|
191
|
+
list = [...this.compatibleImages]
|
|
192
|
+
} else {
|
|
193
|
+
list = []
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
167
197
|
if (this.model.useType) {
|
|
168
198
|
// {uid,url,name,f_use_type?,f_form_type?}
|
|
169
199
|
this.uploadedFileList = list.filter(item => item.f_use_type === this.model.useType)
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
:disabled="itemDisabled(item.formItem)"
|
|
30
30
|
:read-only="readonly(item.formItem)"
|
|
31
31
|
:files="files"
|
|
32
|
+
:signs="signs"
|
|
32
33
|
:form="form"
|
|
33
34
|
:images="images"
|
|
34
35
|
:service-name="serviceName"
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
:disabled="itemDisabled(item)"
|
|
84
85
|
:read-only="readonly(item)"
|
|
85
86
|
:files="files"
|
|
87
|
+
:signs="signs"
|
|
86
88
|
v-bind="formItemLayoutGen"
|
|
87
89
|
:style="layout === 'inline' ? { marginTop: '5px' } : undefined"
|
|
88
90
|
:form="form"
|
|
@@ -111,6 +113,7 @@
|
|
|
111
113
|
:disabled="itemDisabled(item)"
|
|
112
114
|
:readonly="readonly(item)"
|
|
113
115
|
:files="files"
|
|
116
|
+
:signs="signs"
|
|
114
117
|
v-bind="formItemLayoutGen"
|
|
115
118
|
:style="layout === 'inline' ? { marginTop: '5px' } : undefined"
|
|
116
119
|
:form="form[groupItem.model]"
|
|
@@ -145,6 +148,7 @@
|
|
|
145
148
|
:disabled="itemDisabled(formItem)"
|
|
146
149
|
:readonly="readonly(formItem)"
|
|
147
150
|
:files="files"
|
|
151
|
+
:signs="signs"
|
|
148
152
|
:enablePopupToBody="enablePopupToBody"
|
|
149
153
|
v-bind="formItemLayoutGen"
|
|
150
154
|
:style="layout === 'inline' ? { marginTop: '5px' } : undefined"
|
|
@@ -260,6 +264,8 @@ export default {
|
|
|
260
264
|
// 修改有文件的表单时使用
|
|
261
265
|
files: [],
|
|
262
266
|
images: [],
|
|
267
|
+
// 签名
|
|
268
|
+
signs: [],
|
|
263
269
|
// 校验
|
|
264
270
|
rules: {},
|
|
265
271
|
// 调用logic获取数据源的追加参数
|
|
@@ -621,6 +627,9 @@ export default {
|
|
|
621
627
|
if (modifyModelData && modifyModelData.images) {
|
|
622
628
|
this.images = modifyModelData.images
|
|
623
629
|
}
|
|
630
|
+
if (modifyModelData && modifyModelData.signs) {
|
|
631
|
+
this.signs = modifyModelData.signs
|
|
632
|
+
}
|
|
624
633
|
this.loaded = true
|
|
625
634
|
this._emitConfigEnd()
|
|
626
635
|
},
|
|
@@ -380,7 +380,7 @@
|
|
|
380
380
|
</x-form-col>
|
|
381
381
|
<!-- 文件上传 -->
|
|
382
382
|
<x-form-col
|
|
383
|
-
v-else-if="(attr.type === 'file' || attr.type === 'image') && show"
|
|
383
|
+
v-else-if="(attr.type === 'file' || attr.type === 'image' || attr.type === 'signature') && show"
|
|
384
384
|
:labelCol="labelCol"
|
|
385
385
|
|
|
386
386
|
:mode="mode"
|
|
@@ -396,8 +396,10 @@
|
|
|
396
396
|
>
|
|
397
397
|
<upload
|
|
398
398
|
:files="files"
|
|
399
|
+
:signs="signs"
|
|
399
400
|
:read-only="readOnly"
|
|
400
401
|
:images="images"
|
|
402
|
+
:compatible-images="form[attr.model]"
|
|
401
403
|
:model="attr"
|
|
402
404
|
v-bind="attr"
|
|
403
405
|
:service-name="serviceName"
|
|
@@ -765,6 +767,12 @@ export default {
|
|
|
765
767
|
return []
|
|
766
768
|
}
|
|
767
769
|
},
|
|
770
|
+
signs: {
|
|
771
|
+
type: Array,
|
|
772
|
+
default: () => {
|
|
773
|
+
return []
|
|
774
|
+
}
|
|
775
|
+
},
|
|
768
776
|
images: {
|
|
769
777
|
type: Array,
|
|
770
778
|
default: () => {
|
|
@@ -88,7 +88,7 @@ export default {
|
|
|
88
88
|
if (this.mode === '新增/修改') {
|
|
89
89
|
if (
|
|
90
90
|
['horizontal', 'vertical'].includes(this.layout) ||
|
|
91
|
-
['textarea', 'file', 'image'].includes(this.attrType)
|
|
91
|
+
['textarea', 'file', 'image','signature'].includes(this.attrType)
|
|
92
92
|
) {
|
|
93
93
|
// 新增修改表单 horizontal 模式下默认为一行
|
|
94
94
|
return {
|
|
@@ -2,31 +2,51 @@
|
|
|
2
2
|
<a-card :bordered="false">
|
|
3
3
|
<x-form-table
|
|
4
4
|
title="示例表单"
|
|
5
|
-
|
|
5
|
+
queryParamsName="scanCodeAndNFCRUD"
|
|
6
6
|
:fixedAddForm="fixedAddForm"
|
|
7
7
|
:externalSelectedRowKeys="selectedKeys"
|
|
8
|
+
:defaultPageSize="100"
|
|
9
|
+
:pageSizeArray="['100','200']"
|
|
8
10
|
@action="action"
|
|
9
11
|
@selectRow="selectRow"
|
|
10
12
|
@columnClick="columnClick"
|
|
11
13
|
@ceshi="ceshi"
|
|
12
|
-
@
|
|
13
|
-
serviceName="af-
|
|
14
|
+
@startService="startService"
|
|
15
|
+
serviceName="af-safecheck"
|
|
14
16
|
ref="xFormTable"
|
|
15
17
|
:reserveSpaceForButtons="true"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
>
|
|
19
|
+
</x-form-table>
|
|
20
|
+
<a-modal
|
|
21
|
+
v-model="formModalVisible"
|
|
22
|
+
title="工单回访"
|
|
23
|
+
:zIndex="1002"
|
|
24
|
+
width="50vw"
|
|
25
|
+
:destroy-on-close="true"
|
|
26
|
+
@cancel="formModalVisible = false"
|
|
27
|
+
@ok="ok"
|
|
28
|
+
>
|
|
29
|
+
<x-add-native-form
|
|
30
|
+
ref="xForm"
|
|
31
|
+
/>
|
|
32
|
+
</a-modal>
|
|
33
|
+
<button @click="backDealData">提交</button>
|
|
18
34
|
</a-card>
|
|
19
35
|
</template>
|
|
20
36
|
|
|
21
37
|
<script>
|
|
22
38
|
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
|
|
39
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
23
40
|
import { microDispatch } from '@vue2-client/utils/microAppUtils'
|
|
41
|
+
import {getConfigByNameAsync, runLogic} from '@vue2-client/services/api/common'
|
|
42
|
+
|
|
24
43
|
export default {
|
|
25
44
|
name: 'Demo',
|
|
26
45
|
components: {
|
|
27
|
-
XFormTable
|
|
46
|
+
XFormTable,
|
|
47
|
+
XAddNativeForm,
|
|
28
48
|
},
|
|
29
|
-
data() {
|
|
49
|
+
data () {
|
|
30
50
|
return {
|
|
31
51
|
// 查询配置文件名
|
|
32
52
|
queryParamsName: 'ceshiCRUD',
|
|
@@ -42,26 +62,32 @@ export default {
|
|
|
42
62
|
selectedKeys: [],
|
|
43
63
|
selected: {
|
|
44
64
|
keys: [],
|
|
45
|
-
rows: []
|
|
46
|
-
}
|
|
65
|
+
rows: [],
|
|
66
|
+
},
|
|
67
|
+
formModalVisible: false,
|
|
47
68
|
}
|
|
48
69
|
},
|
|
49
|
-
|
|
50
70
|
methods: {
|
|
51
|
-
|
|
52
|
-
this.$refs.xFormTable.
|
|
53
|
-
|
|
54
|
-
|
|
71
|
+
backDealData () {
|
|
72
|
+
this.$refs.xFormTable.$refs.xForm.backDealData().then(data => {
|
|
73
|
+
console.log('backDealData', data)
|
|
74
|
+
console.log('selected', this.$refs.xFormTable.$refs.xForm?.form)
|
|
55
75
|
})
|
|
56
76
|
},
|
|
57
|
-
rowDblClick(record) {
|
|
58
|
-
console.log('rowDblClick', record)
|
|
59
|
-
},
|
|
60
77
|
// input框 行編輯參數傳遞
|
|
61
|
-
ceshi(...args) {
|
|
78
|
+
ceshi (...args) {
|
|
62
79
|
// attr, value, currentRecord, currentIndex, nextRecord, nextIndex
|
|
63
|
-
const [attr, value, currentRecord, currentIndex, nextRecord, nextIndex] =
|
|
64
|
-
|
|
80
|
+
const [attr, value, currentRecord, currentIndex, nextRecord, nextIndex] =
|
|
81
|
+
args
|
|
82
|
+
console.log(
|
|
83
|
+
'ceshi',
|
|
84
|
+
attr,
|
|
85
|
+
value,
|
|
86
|
+
currentRecord,
|
|
87
|
+
currentIndex,
|
|
88
|
+
nextRecord,
|
|
89
|
+
nextIndex
|
|
90
|
+
)
|
|
65
91
|
// 示例:当按下 Enter 键且有下一行时,跳转到下一行的同一列
|
|
66
92
|
// 可以在这里执行业务逻辑(例如:保存数据)
|
|
67
93
|
console.log('当前行:', currentIndex, '下一行:', nextIndex)
|
|
@@ -72,45 +98,115 @@ export default {
|
|
|
72
98
|
// 跳转到下一行的同一列
|
|
73
99
|
this.$refs.xFormTable.$refs.xTable.focusInput(nextIndex, attr.model)
|
|
74
100
|
},
|
|
75
|
-
test() {
|
|
101
|
+
test () {
|
|
76
102
|
this.$refs.xFormTable.setTableData([])
|
|
77
103
|
},
|
|
78
|
-
defaultF() {
|
|
104
|
+
defaultF () {
|
|
79
105
|
this.$refs.xFormTable.setTableSize('default')
|
|
80
106
|
},
|
|
81
|
-
middleF() {
|
|
107
|
+
middleF () {
|
|
82
108
|
this.$refs.xFormTable.setTableSize('middle')
|
|
83
109
|
},
|
|
84
|
-
smallF() {
|
|
110
|
+
smallF () {
|
|
85
111
|
this.$refs.xFormTable.setTableSize('small')
|
|
86
112
|
},
|
|
87
|
-
columnClick(key, value, record) {
|
|
113
|
+
columnClick (key, value, record) {
|
|
88
114
|
microDispatch({
|
|
89
115
|
type: 'v3route',
|
|
90
116
|
path: '/bingliguanli/dianzibingliluru',
|
|
91
|
-
props: { selected: arguments[0].his_f_admission_id }
|
|
117
|
+
props: { selected: arguments[0].his_f_admission_id },
|
|
92
118
|
})
|
|
93
119
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
120
|
+
startService (record, id, actionType) {
|
|
121
|
+
getConfigByNameAsync('测试Form', 'af-safecheck').then(config => {
|
|
122
|
+
this.formModalVisible = true
|
|
123
|
+
this.$nextTick(
|
|
124
|
+
() => {
|
|
125
|
+
this.formModalVisible = true
|
|
126
|
+
this.$refs.xForm.init({
|
|
127
|
+
formItems: config.formJson,
|
|
128
|
+
title: '工单回访',
|
|
129
|
+
businessType: '只读',
|
|
130
|
+
...config,
|
|
131
|
+
fixedAddForm: {
|
|
132
|
+
Images:[
|
|
133
|
+
{
|
|
134
|
+
'uid': 1850,
|
|
135
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
136
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
f_image1:[
|
|
140
|
+
{
|
|
141
|
+
'uid': 1850,
|
|
142
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
143
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
signs: [
|
|
147
|
+
{
|
|
148
|
+
'uid': 1850,
|
|
149
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
150
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
modifyModelData: {
|
|
155
|
+
data: {
|
|
156
|
+
Images:[
|
|
157
|
+
{
|
|
158
|
+
'uid': 1850,
|
|
159
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
160
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
f_image1:[
|
|
164
|
+
{
|
|
165
|
+
'uid': 1850,
|
|
166
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
167
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
f_image2: [
|
|
171
|
+
{
|
|
172
|
+
'uid': 1850,
|
|
173
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
174
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
signs: [
|
|
179
|
+
{
|
|
180
|
+
'uid': 1850,
|
|
181
|
+
'url': '/resource/af-system/images/3de85050493f4404ad3d0a00d53bca12.png',
|
|
182
|
+
'name': '3de85050493f4404ad3d0a00d53bca12.png'
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
})
|
|
187
|
+
})
|
|
188
|
+
})
|
|
189
|
+
// this.detailVisible = true
|
|
190
|
+
// console.log('触发了详情操作', record, id, actionType)
|
|
191
|
+
},
|
|
192
|
+
async ok () {
|
|
193
|
+
const res = await this.$refs.xForm.asyncSubmit()
|
|
194
|
+
await runLogic('ceshwewei', res.realForm)
|
|
97
195
|
},
|
|
98
|
-
onClose() {
|
|
196
|
+
onClose () {
|
|
99
197
|
this.detailVisible = false
|
|
100
198
|
// 关闭详情之后重新查询表单
|
|
101
199
|
this.$refs.xFormTable.refreshTable(true)
|
|
102
200
|
},
|
|
103
|
-
selectRow(selectedRowKeys, selectedRows) {
|
|
104
|
-
console.log('selectRow', selectedRowKeys, selectedRows)
|
|
201
|
+
selectRow (selectedRowKeys, selectedRows) {
|
|
105
202
|
this.selected = {
|
|
106
203
|
keys: selectedRowKeys,
|
|
107
|
-
rows: selectedRows
|
|
204
|
+
rows: selectedRows,
|
|
108
205
|
}
|
|
206
|
+
console.log('selectedDemo', this.selected)
|
|
109
207
|
},
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
}
|
|
208
|
+
},
|
|
209
|
+
computed: {},
|
|
114
210
|
}
|
|
115
211
|
</script>
|
|
116
212
|
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<a-card :bordered="false">
|
|
3
|
+
<a-tabs default-active-key="1" @change="changeTab">
|
|
4
|
+
<a-tab-pane key="1" tab="待办">
|
|
5
|
+
<x-form-table
|
|
6
|
+
title="站点工单(待办)"
|
|
7
|
+
ref="xFormTable"
|
|
8
|
+
queryParamsName="teleProcessCRUD"
|
|
9
|
+
:fixed-query-form="{
|
|
10
|
+
wo_f_department_id: currUser.depids,
|
|
11
|
+
}"
|
|
12
|
+
serviceName="af-telephone"
|
|
13
|
+
@toDeal="toDetail"
|
|
14
|
+
@updateInfo="updateInfo"
|
|
15
|
+
@transfer="transfer"
|
|
16
|
+
@toFinish="toFinish"
|
|
17
|
+
>
|
|
18
|
+
</x-form-table>
|
|
19
|
+
</a-tab-pane>
|
|
20
|
+
<a-tab-pane key="2" tab="已办">
|
|
21
|
+
<x-form-table
|
|
22
|
+
title="站点工单(已办)"
|
|
23
|
+
ref="xFormTableDone"
|
|
24
|
+
queryParamsName="teleProcessDoneCRUD"
|
|
25
|
+
:fixed-query-form="{
|
|
26
|
+
wo_f_department_id: currUser.depids,
|
|
27
|
+
}"
|
|
28
|
+
serviceName="af-telephone"
|
|
29
|
+
@action="toView"
|
|
30
|
+
@reminder="toReminder"
|
|
31
|
+
>
|
|
32
|
+
</x-form-table>
|
|
33
|
+
</a-tab-pane>
|
|
34
|
+
</a-tabs>
|
|
35
|
+
<WorkflowDetail
|
|
36
|
+
ref="workFlow"
|
|
37
|
+
@preClick="preClick"
|
|
38
|
+
@success="success"
|
|
39
|
+
@nextClick="nextClick"
|
|
40
|
+
@x-form-item-emit-func="handleFormItemEvent"
|
|
41
|
+
>
|
|
42
|
+
</WorkflowDetail>
|
|
43
|
+
</a-card>
|
|
44
|
+
</template>
|
|
45
|
+
|
|
46
|
+
<script>
|
|
47
|
+
import WorkflowDetail from '@vue2-client/pages/WorkflowDetail/WorkflowDetail.vue'
|
|
48
|
+
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
|
|
49
|
+
import { mapState } from 'vuex'
|
|
50
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
51
|
+
|
|
52
|
+
export default {
|
|
53
|
+
name: 'Telephone',
|
|
54
|
+
components: {
|
|
55
|
+
XFormTable,
|
|
56
|
+
WorkflowDetail,
|
|
57
|
+
XAddNativeForm
|
|
58
|
+
},
|
|
59
|
+
// 透传给子组件的方法(目前XFormTable接了)
|
|
60
|
+
provide () {
|
|
61
|
+
return {
|
|
62
|
+
generalFunction: {}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
data () {
|
|
66
|
+
return {
|
|
67
|
+
// 当前工单id
|
|
68
|
+
currentWorkOrderId: '',
|
|
69
|
+
// 提交加载动画
|
|
70
|
+
confirmLoading: false,
|
|
71
|
+
chargeVisible: false,
|
|
72
|
+
// 环节人员信息
|
|
73
|
+
chargePerson: {},
|
|
74
|
+
chargePersonOptions: [],
|
|
75
|
+
transferData: {
|
|
76
|
+
optionsValue: '',
|
|
77
|
+
remark: ''
|
|
78
|
+
},
|
|
79
|
+
record: {},
|
|
80
|
+
define: {},
|
|
81
|
+
// 是否展示催单结案弹窗
|
|
82
|
+
showReminder: false,
|
|
83
|
+
// 弹窗类型 催单/ 结案
|
|
84
|
+
modelType: ''
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
computed: {
|
|
88
|
+
...mapState('account', { currUser: 'user' }),
|
|
89
|
+
},
|
|
90
|
+
methods: {
|
|
91
|
+
changeTab (key) {
|
|
92
|
+
console.log('切换tab', key)
|
|
93
|
+
if (key === '1') {
|
|
94
|
+
this.$refs.xFormTable.refreshTable(true)
|
|
95
|
+
} else if (key === '2') {
|
|
96
|
+
this.$refs.xFormTableDone.refreshTable(true)
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
success () {
|
|
100
|
+
console.log('完工')
|
|
101
|
+
},
|
|
102
|
+
toDetail (record) {
|
|
103
|
+
// 修改第一步的工单
|
|
104
|
+
if (record.ws_f_step_id === 1 && record.w_f_state === 0) {
|
|
105
|
+
console.log('进入工单详情')
|
|
106
|
+
if (record.w_f_workflow_define_name === '报修单处理流程') {
|
|
107
|
+
this.$refs.dealOrUpdate.dealOrUpdate(record, '处理工单')
|
|
108
|
+
} else if (record.w_f_workflow_define_name === '投诉单处理流程') {
|
|
109
|
+
this.$refs.dealComplaint.dealComplaintOrder(record)
|
|
110
|
+
} else if (record.w_f_workflow_define_name === '咨询单处理流程') {
|
|
111
|
+
this.$refs.dealConsultation.dealConsultationOrder(record)
|
|
112
|
+
} else {
|
|
113
|
+
this.$message.warn('未知流程类型')
|
|
114
|
+
}
|
|
115
|
+
} else {
|
|
116
|
+
// 记录流程节点名称
|
|
117
|
+
this.currentWorkOrderId = record.wo_id
|
|
118
|
+
// 进入流程详情
|
|
119
|
+
this.$refs.workFlow.init({
|
|
120
|
+
workflowId: record.wo_f_workflow_id,
|
|
121
|
+
stepId: record.ws_f_step_id
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
</script>
|