centaline-data-driven 1.6.70 → 1.6.72
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 +1 -1
- package/release-log.md +14 -0
- package/src/Form.vue +2 -2
- package/src/SearchList.vue +3 -2
- package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +220 -99
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +106 -2
- package/src/centaline/loader/src/ctl/Base.js +3 -0
- package/src/centaline/loader/src/ctl/FormList.js +9 -0
- package/src/centaline/loader/src/ctl/SearchTable.js +39 -11
- package/src/main.js +6 -6
- package/wwwroot/static/centaline/centaline-data-driven.js +224 -20
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
package/release-log.md
CHANGED
package/src/Form.vue
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
|
|
3
3
|
<!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
|
|
4
|
-
<ct-form :api="'/
|
|
4
|
+
<ct-form :api="'/api/third-dept-tran/transaction/detail'" :apiParam="apiParam" :topHeight="topHeight" :documentHeight="'600px'"></ct-form>
|
|
5
5
|
<ct-dialog-list></ct-dialog-list>
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
data() {
|
|
13
13
|
return {
|
|
14
14
|
apiParam:{
|
|
15
|
-
"
|
|
15
|
+
"originalTraId":"1526444754463850498","columnName":"transactionNo","actionType":"1","pageStyle":"2","pageTitle":"成交报告","pageOnly":"true"
|
|
16
16
|
},
|
|
17
17
|
topHeight:10,
|
|
18
18
|
}
|
package/src/SearchList.vue
CHANGED
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
<!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/customermanage/ProjectCustomerList/getLayoutOfSearch'" :searchDataApi="'/customermanage/ProjectCustomerList/getList'"></ct-searchlist> -->
|
|
49
49
|
<!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/dealmanagementreport/StandingBookSZList/getLayoutOfSearch'" :searchDataApi="'/dealmanagementreport/StandingBookSZList/getList'"></ct-searchlist> -->
|
|
50
50
|
<!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/dealmanagementreport/standingbookreport/getLayoutOfSearch'" :searchDataApi="'/dealmanagementreport/standingbookreport/getList'"></ct-searchlist> -->
|
|
51
|
+
<ct-searchlist :apiParam="para" :searchConditionApi="'/saleconfigurationmanagement/CurrencyTypeExchangeRateList/getLayoutOfSearch'" :searchDataApi="'/saleconfigurationmanagement/CurrencyTypeExchangeRateList/getListOfSearchModel'"></ct-searchlist>
|
|
51
52
|
<!-- CCES -->
|
|
52
53
|
|
|
53
54
|
<!-- <ct-searchlist :apiParam="para"
|
|
@@ -114,7 +115,7 @@
|
|
|
114
115
|
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/SystemParameterList/getLayoutOfSearch'" :searchDataApi="'/SystemParameterList/getListOfSearchModel'"></ct-searchlist> -->
|
|
115
116
|
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/EmployeeResourcesTranList/getLayoutOfSearch'" :searchDataApi="'/EmployeeResourcesTranList/getListOfSearchModel'"></ct-searchlist> -->
|
|
116
117
|
<!-- <ct-searchlist :apiParam="apiParam" :searchConditionApi="'/propertyPublishList/getLayoutOfSearch'" :searchDataApi="'/propertyPublishList/getListOfSearchModel'" :searchStatsApi="'/propertyPublishList/getListStats'"></ct-searchlist> -->
|
|
117
|
-
<ct-searchlist :apiParam="para" :searchConditionApi="'/PropertyTrustList/getLayoutOfSearch'" :searchDataApi="'/PropertyTrustList/getListOfSearchModel'"></ct-searchlist>
|
|
118
|
+
<!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/PropertyTrustList/getLayoutOfSearch'" :searchDataApi="'/PropertyTrustList/getListOfSearchModel'"></ct-searchlist> -->
|
|
118
119
|
|
|
119
120
|
<!-- onecard -->
|
|
120
121
|
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/cache/getLayoutOfSearchForCache'" :searchDataApi="'/cache/getListOfSearchModelForCache'"></ct-searchlist> -->
|
|
@@ -155,7 +156,7 @@
|
|
|
155
156
|
appRootUrl:'',
|
|
156
157
|
para:{
|
|
157
158
|
"type":"left",
|
|
158
|
-
chanceID: "10049156"
|
|
159
|
+
// chanceID: "10049156",
|
|
159
160
|
},
|
|
160
161
|
}
|
|
161
162
|
},
|
|
@@ -1,112 +1,227 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ct-form-list" v-focus="foucus">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<
|
|
11
|
-
<
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
<div id="listTable">
|
|
27
|
-
<el-row>
|
|
28
|
-
<el-col :span="24">
|
|
29
|
-
<el-table size="mini" class="max-table--border" :data="model.tableData" border
|
|
30
|
-
style="width: 100%" highlight-current-row :show-summary="model.showSummary" :summary-method="getSummaries">
|
|
31
|
-
<!--操作列-->
|
|
32
|
-
<template v-if="model.rowActionRoutersAlign === 1">
|
|
33
|
-
<el-table-column label="操作" v-if="model.rows[0].edit || model.rows[0].delete || (model.buttons.length > 0 && model.buttonsShow.length > 0)" :fixed="fixedButtons" :width="'100%'" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
34
|
-
<template slot-scope="scope">
|
|
35
|
-
<template v-if="!model.tableDisabled">
|
|
36
|
-
<span v-if="scope.row.edit || scope.row.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,true)">
|
|
37
|
-
{{scope.row.isSet?'保存':"修改"}}
|
|
38
|
-
</span>
|
|
39
|
-
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
40
|
-
删除
|
|
41
|
-
</span>
|
|
42
|
-
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
43
|
-
取消
|
|
44
|
-
</span>
|
|
45
|
-
<span v-for="(v,i) in model.buttons"
|
|
46
|
-
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
47
|
-
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
48
|
-
{{v.label}}
|
|
49
|
-
</span>
|
|
50
|
-
</template>
|
|
51
|
-
</template>
|
|
52
|
-
</el-table-column>
|
|
3
|
+
<el-collapse v-if="model.flagCollapse" v-model="activeName" :class="'el-collapse-saveLine'">
|
|
4
|
+
<el-collapse-item :key="collapseIndex" :title="model.title" :name="model.title"
|
|
5
|
+
:disabled="model.tableDisabled" :class="model.tableDisabled ? 'ct-collapse-item-title' : ''">
|
|
6
|
+
<template slot="title">
|
|
7
|
+
<i class="sign"></i>
|
|
8
|
+
<span>{{ model.title }}</span>
|
|
9
|
+
</template>
|
|
10
|
+
<el-row>
|
|
11
|
+
<div class="list-button">
|
|
12
|
+
<template v-if="!model.tableDisabled">
|
|
13
|
+
<ul>
|
|
14
|
+
<li v-for="(v,i) in model.toolButtonsShow" >
|
|
15
|
+
<component :is="v.is" :vmodel="v" :parentModel="model" @click="toolButtonsClick" @importComplete="importComplete" @change="toolButtonsChangeHandler(v,$event)"></component>
|
|
16
|
+
</li>
|
|
17
|
+
<li v-if="model.selectRouter!==null">
|
|
18
|
+
<component :is="model.selectRouter.is" :vmodel="model.selectRouter" @click="popupSearchListHandle" ></component>
|
|
19
|
+
</li>
|
|
20
|
+
<li v-if="model.create" >
|
|
21
|
+
<el-button :disabled="model.disabled" type="success" class="max-btn-add" style="width: auto;" size="mini" icon="el-icon-circle-plus-outline" @click="addRow">
|
|
22
|
+
{{model.createText}}
|
|
23
|
+
</el-button>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
53
26
|
</template>
|
|
27
|
+
</div>
|
|
54
28
|
|
|
55
|
-
|
|
56
|
-
<el-
|
|
57
|
-
<
|
|
58
|
-
<
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
29
|
+
<div id="listTable">
|
|
30
|
+
<el-row>
|
|
31
|
+
<el-col :span="24">
|
|
32
|
+
<el-table size="mini" class="max-table--border" :data="model.tableData" border
|
|
33
|
+
style="width: 100%" highlight-current-row :show-summary="model.showSummary" :summary-method="getSummaries">
|
|
34
|
+
<!--操作列-->
|
|
35
|
+
<template v-if="model.rowActionRoutersAlign === 1">
|
|
36
|
+
<el-table-column label="操作" v-if="model.rows[0].edit || model.rows[0].delete || (model.buttons.length > 0 && model.buttonsShow.length > 0)" :fixed="fixedButtons" :width="'100%'" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
37
|
+
<template slot-scope="scope">
|
|
38
|
+
<template v-if="!model.tableDisabled">
|
|
39
|
+
<span v-if="scope.row.edit || scope.row.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,true)">
|
|
40
|
+
{{scope.row.isSet?'保存':"修改"}}
|
|
41
|
+
</span>
|
|
42
|
+
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
43
|
+
删除
|
|
44
|
+
</span>
|
|
45
|
+
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
46
|
+
取消
|
|
47
|
+
</span>
|
|
48
|
+
<span v-for="(v,i) in model.buttons"
|
|
49
|
+
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
50
|
+
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
51
|
+
{{v.label}}
|
|
52
|
+
</span>
|
|
53
|
+
</template>
|
|
54
|
+
</template>
|
|
55
|
+
</el-table-column>
|
|
56
|
+
</template>
|
|
57
|
+
|
|
58
|
+
<!--数据列-->
|
|
59
|
+
<el-table-column v-for="(v,i) in model.rows[0].field" :key="i" :prop="v.id" :label="v.label" :width="v.width" :fixed="model.frozenColumns.includes(v.id)" v-if="v.show !== false && v.type!==13" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
60
|
+
<template slot="header" slot-scope="scope">
|
|
61
|
+
<div :class="[{'ct-table-required':v.required&&model.rows[0].edit&& model.rows[0].delete&&!model.tableDisabled},getHeadClass(v)]">
|
|
62
|
+
{{v.label}}
|
|
63
|
+
</div>
|
|
64
|
+
</template>
|
|
65
|
+
<template slot-scope="scope">
|
|
66
|
+
<span v-if="scope.row.isSet">
|
|
67
|
+
<component ref="Fields" :is="model.currentRow.data[v.id].locked || model.currentRow.data[v.id].is!==v.is?model.currentRow.data[v.id].is:v.is"
|
|
68
|
+
:vmodel="model.currentRow.data[v.id]" :api="model.OptApi" :key="model.currentRow.data[v.id].rowKey+itemKey"
|
|
69
|
+
@change="changeHandler(model.currentRow.data[v.id], model.currentRow.data.$sourceIndex)"
|
|
70
|
+
@input="inputHandler(model.currentRow.data[v.id], model.currentRow.data.$sourceIndex)"></component>
|
|
71
|
+
</span>
|
|
72
|
+
<span v-else-if="v.is=='ct-sensitiveeye'">
|
|
73
|
+
<component ref="Fields" :is="v.is" :vmodel="scope.row[v.id]" :vrowmodel="scope.row" :api="model.OptApi" :key="itemKey"></component>
|
|
74
|
+
</span>
|
|
75
|
+
<!--可点击的列-->
|
|
76
|
+
<span v-else-if="v.router" :class="'cell'" style="display: flex;">
|
|
77
|
+
<ct-tablecurrency :router="v.router" :colValue="scope.row[v.id].code1" :rowData="scope.row" @click="rolRouterClickHandler">
|
|
78
|
+
</ct-tablecurrency>
|
|
79
|
+
</span>
|
|
80
|
+
<ct-span v-else :vmodel="scope.row[v.id]" :rowNum="scope.row.$sourceIndex" :rowData="scope.row" :key="scope.row[v.id].rowKey+itemKey" ref="FieldsLabel"></ct-span>
|
|
81
|
+
</template>
|
|
82
|
+
</el-table-column>
|
|
83
|
+
|
|
84
|
+
<!--操作列-->
|
|
85
|
+
<template v-if="model.rowActionRoutersAlign !== 1">
|
|
86
|
+
<el-table-column label="操作" v-if="model.rows[0].edit || model.rows[0].delete || (model.buttons.length > 0 && model.buttonsShow.length > 0)" :fixed="fixedButtons" :width="'100%'" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
87
|
+
<template slot-scope="scope">
|
|
88
|
+
<template v-if="!model.tableDisabled">
|
|
89
|
+
<span v-if="scope.row.edit || scope.row.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,true)">
|
|
90
|
+
{{scope.row.isSet?'保存':"修改"}}
|
|
91
|
+
</span>
|
|
92
|
+
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
93
|
+
删除
|
|
94
|
+
</span>
|
|
95
|
+
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
96
|
+
取消
|
|
97
|
+
</span>
|
|
98
|
+
<span v-for="(v,i) in model.buttons"
|
|
99
|
+
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
100
|
+
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
101
|
+
{{v.label}}
|
|
102
|
+
</span>
|
|
103
|
+
</template>
|
|
104
|
+
</template>
|
|
105
|
+
</el-table-column>
|
|
106
|
+
</template>
|
|
107
|
+
</el-table>
|
|
108
|
+
</el-col>
|
|
109
|
+
</el-row>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<div v-if="model.description" v-html="model.description"></div>
|
|
113
|
+
</el-row>
|
|
114
|
+
</el-collapse-item>
|
|
115
|
+
</el-collapse>
|
|
116
|
+
|
|
117
|
+
<template v-else>
|
|
118
|
+
<div v-if="model.title" class="list-title">
|
|
119
|
+
<h5>{{model.title}}</h5>
|
|
120
|
+
</div>
|
|
121
|
+
<div v-else-if="model.create || (model.selectRouter && model.selectRouter.id) || model.toolButtonsShow.length>0" class="list-title"></div>
|
|
122
|
+
<div class="list-button">
|
|
123
|
+
<template v-if="!model.tableDisabled">
|
|
124
|
+
<ul>
|
|
125
|
+
<li v-for="(v,i) in model.toolButtonsShow" >
|
|
126
|
+
<component :is="v.is" :vmodel="v" :parentModel="model" @click="toolButtonsClick" @importComplete="importComplete" @change="toolButtonsChangeHandler(v,$event)"></component>
|
|
127
|
+
</li>
|
|
128
|
+
<li v-if="model.selectRouter!==null">
|
|
129
|
+
<component :is="model.selectRouter.is" :vmodel="model.selectRouter" @click="popupSearchListHandle" ></component>
|
|
130
|
+
</li>
|
|
131
|
+
<li v-if="model.create" >
|
|
132
|
+
<el-button :disabled="model.disabled" type="success" class="max-btn-add" style="width: auto;" size="mini" icon="el-icon-circle-plus-outline" @click="addRow">
|
|
133
|
+
{{model.createText}}
|
|
134
|
+
</el-button>
|
|
135
|
+
</li>
|
|
136
|
+
</ul>
|
|
137
|
+
</template>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<div id="listTable">
|
|
141
|
+
<el-row>
|
|
142
|
+
<el-col :span="24">
|
|
143
|
+
<el-table size="mini" class="max-table--border" :data="model.tableData" border
|
|
144
|
+
style="width: 100%" highlight-current-row :show-summary="model.showSummary" :summary-method="getSummaries">
|
|
145
|
+
<!--操作列-->
|
|
146
|
+
<template v-if="model.rowActionRoutersAlign === 1">
|
|
147
|
+
<el-table-column label="操作" v-if="model.rows[0].edit || model.rows[0].delete || (model.buttons.length > 0 && model.buttonsShow.length > 0)" :fixed="fixedButtons" :width="'100%'" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
148
|
+
<template slot-scope="scope">
|
|
149
|
+
<template v-if="!model.tableDisabled">
|
|
150
|
+
<span v-if="scope.row.edit || scope.row.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,true)">
|
|
151
|
+
{{scope.row.isSet?'保存':"修改"}}
|
|
152
|
+
</span>
|
|
153
|
+
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
154
|
+
删除
|
|
155
|
+
</span>
|
|
156
|
+
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
157
|
+
取消
|
|
158
|
+
</span>
|
|
159
|
+
<span v-for="(v,i) in model.buttons"
|
|
160
|
+
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
161
|
+
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
162
|
+
{{v.label}}
|
|
163
|
+
</span>
|
|
164
|
+
</template>
|
|
165
|
+
</template>
|
|
166
|
+
</el-table-column>
|
|
78
167
|
</template>
|
|
79
|
-
</el-table-column>
|
|
80
168
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
{{scope.row.isSet?'保存':"修改"}}
|
|
88
|
-
</span>
|
|
89
|
-
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
90
|
-
删除
|
|
91
|
-
</span>
|
|
92
|
-
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
93
|
-
取消
|
|
94
|
-
</span>
|
|
95
|
-
<span v-for="(v,i) in model.buttons"
|
|
96
|
-
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
97
|
-
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
98
|
-
{{v.label}}
|
|
99
|
-
</span>
|
|
169
|
+
<!--数据列-->
|
|
170
|
+
<el-table-column v-for="(v,i) in model.rows[0].field" :key="i" :prop="v.id" :label="v.label" :width="v.width" :fixed="model.frozenColumns.includes(v.id)" v-if="v.show !== false && v.type!==13" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
171
|
+
<template slot="header" slot-scope="scope">
|
|
172
|
+
<div :class="[{'ct-table-required':v.required&&model.rows[0].edit&& model.rows[0].delete&&!model.tableDisabled},getHeadClass(v)]">
|
|
173
|
+
{{v.label}}
|
|
174
|
+
</div>
|
|
100
175
|
</template>
|
|
176
|
+
<template slot-scope="scope">
|
|
177
|
+
<span v-if="scope.row.isSet">
|
|
178
|
+
<component ref="Fields" :is="model.currentRow.data[v.id].locked || model.currentRow.data[v.id].is!==v.is?model.currentRow.data[v.id].is:v.is"
|
|
179
|
+
:vmodel="model.currentRow.data[v.id]" :api="model.OptApi" :key="model.currentRow.data[v.id].rowKey+itemKey"
|
|
180
|
+
@change="changeHandler(model.currentRow.data[v.id], model.currentRow.data.$sourceIndex)"
|
|
181
|
+
@input="inputHandler(model.currentRow.data[v.id], model.currentRow.data.$sourceIndex)"></component>
|
|
182
|
+
</span>
|
|
183
|
+
<span v-else-if="v.is=='ct-sensitiveeye'">
|
|
184
|
+
<component ref="Fields" :is="v.is" :vmodel="scope.row[v.id]" :vrowmodel="scope.row" :api="model.OptApi" :key="itemKey"></component>
|
|
185
|
+
</span>
|
|
186
|
+
<!--可点击的列-->
|
|
187
|
+
<span v-else-if="v.router" :class="'cell'" style="display: flex;">
|
|
188
|
+
<ct-tablecurrency :router="v.router" :colValue="scope.row[v.id].code1" :rowData="scope.row" @click="rolRouterClickHandler">
|
|
189
|
+
</ct-tablecurrency>
|
|
190
|
+
</span>
|
|
191
|
+
<ct-span v-else :vmodel="scope.row[v.id]" :rowNum="scope.row.$sourceIndex" :rowData="scope.row" :key="scope.row[v.id].rowKey+itemKey" ref="FieldsLabel"></ct-span>
|
|
101
192
|
</template>
|
|
102
193
|
</el-table-column>
|
|
103
|
-
</template>
|
|
104
|
-
</el-table>
|
|
105
|
-
</el-col>
|
|
106
|
-
</el-row>
|
|
107
|
-
</div>
|
|
108
194
|
|
|
109
|
-
|
|
195
|
+
<!--操作列-->
|
|
196
|
+
<template v-if="model.rowActionRoutersAlign !== 1">
|
|
197
|
+
<el-table-column label="操作" v-if="model.rows[0].edit || model.rows[0].delete || (model.buttons.length > 0 && model.buttonsShow.length > 0)" :fixed="fixedButtons" :width="'100%'" :render-header="renderHeader" :min-width="tableColumnWith">
|
|
198
|
+
<template slot-scope="scope">
|
|
199
|
+
<template v-if="!model.tableDisabled">
|
|
200
|
+
<span v-if="scope.row.edit || scope.row.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,true)">
|
|
201
|
+
{{scope.row.isSet?'保存':"修改"}}
|
|
202
|
+
</span>
|
|
203
|
+
<span v-if="scope.row.delete && !scope.row.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(scope.$index, scope.row.$sourceIndex)">
|
|
204
|
+
删除
|
|
205
|
+
</span>
|
|
206
|
+
<span v-else-if="scope.row.isSet" class="el-tag el-tag--mini" style="cursor: pointer;" @click="saveRow(scope.row,scope.$index,false)">
|
|
207
|
+
取消
|
|
208
|
+
</span>
|
|
209
|
+
<span v-for="(v,i) in model.buttons"
|
|
210
|
+
v-if="!scope.row.isSet && v.show && ( !v.rightField || !scope.row[v.rightField] || scope.row[v.rightField].value == 1 )"
|
|
211
|
+
class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="buttonClick(scope.row, v)">
|
|
212
|
+
{{v.label}}
|
|
213
|
+
</span>
|
|
214
|
+
</template>
|
|
215
|
+
</template>
|
|
216
|
+
</el-table-column>
|
|
217
|
+
</template>
|
|
218
|
+
</el-table>
|
|
219
|
+
</el-col>
|
|
220
|
+
</el-row>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
<div v-if="model.description" v-html="model.description"></div>
|
|
224
|
+
</template>
|
|
110
225
|
</div>
|
|
111
226
|
</template>
|
|
112
227
|
<script>
|
|
@@ -208,6 +323,8 @@
|
|
|
208
323
|
itemKey: Math.random(),
|
|
209
324
|
tableColumnWith: 0,
|
|
210
325
|
fixedButtons:false,
|
|
326
|
+
collapseIndex:0,
|
|
327
|
+
activeName:'',
|
|
211
328
|
}
|
|
212
329
|
},
|
|
213
330
|
created() {
|
|
@@ -215,6 +332,7 @@
|
|
|
215
332
|
this.model = this.vmodel;
|
|
216
333
|
this.model.OptApi = this.api;
|
|
217
334
|
this.model.$self=self;
|
|
335
|
+
if(this.model.groupExpand) this.activeName = this.model.title;
|
|
218
336
|
|
|
219
337
|
this.$nextTick(function () {
|
|
220
338
|
self.model.refField = this.$refs.Fields;
|
|
@@ -538,6 +656,9 @@
|
|
|
538
656
|
</script>
|
|
539
657
|
|
|
540
658
|
<style>
|
|
659
|
+
.el-collapse-saveLine .el-collapse-item__wrap {
|
|
660
|
+
border-bottom: none;
|
|
661
|
+
}
|
|
541
662
|
.el-table-add-row {
|
|
542
663
|
margin-top: 10px;
|
|
543
664
|
width: 100%;
|
|
@@ -968,7 +968,7 @@ export default {
|
|
|
968
968
|
let rowNew = this.model.listData[newIndex];
|
|
969
969
|
let selectMergedIndexOld = -1;
|
|
970
970
|
let selectMergedIndexNew = -1;
|
|
971
|
-
if (rowOld.$rowsMerged) {
|
|
971
|
+
if (rowOld && rowOld.$rowsMerged) {
|
|
972
972
|
if (rowOld.$rowsMerged.includes(newIndex)) {
|
|
973
973
|
selectMergedIndexNew = oldIndex;
|
|
974
974
|
}
|
|
@@ -2161,7 +2161,7 @@ export default {
|
|
|
2161
2161
|
if (router.flagFreshCurrentRow || router.flagAddRowAfterAction) {
|
|
2162
2162
|
self.tableComplate = true;
|
|
2163
2163
|
self.model.getCurrentRowApiData(
|
|
2164
|
-
function () {
|
|
2164
|
+
function (editFields) {
|
|
2165
2165
|
self.$forceUpdate();
|
|
2166
2166
|
self.tableComplate = false;
|
|
2167
2167
|
self.$emit("searchComplate");
|
|
@@ -2171,12 +2171,56 @@ export default {
|
|
|
2171
2171
|
if(self.model.flagNotificationParentAfterContentChanged){
|
|
2172
2172
|
self.$emit("flagNotificationParentAfterContentChanged");
|
|
2173
2173
|
}
|
|
2174
|
+
|
|
2175
|
+
if(router.flagAddRowAfterAction){
|
|
2176
|
+
self.rowClickHandle(event,0);
|
|
2177
|
+
self.useTableAnimation("filter");
|
|
2178
|
+
}
|
|
2179
|
+
else{
|
|
2180
|
+
if(editFields && editFields.length>0){
|
|
2181
|
+
self.useTableAnimationFields(editFields);
|
|
2182
|
+
}
|
|
2183
|
+
// self.useTableAnimation(router.flagFreshCurrentRow?"update":"filter");
|
|
2184
|
+
}
|
|
2174
2185
|
},
|
|
2175
2186
|
data,
|
|
2176
2187
|
router
|
|
2177
2188
|
);
|
|
2178
2189
|
}
|
|
2179
2190
|
},
|
|
2191
|
+
useTableAnimation(type){
|
|
2192
|
+
this.$nextTick(() => {
|
|
2193
|
+
const targetRow = this.currentRow;
|
|
2194
|
+
const className = `table-row-${type}`;
|
|
2195
|
+
targetRow.classList.add(className);
|
|
2196
|
+
// 动画结束后移除类名
|
|
2197
|
+
setTimeout(() => {
|
|
2198
|
+
targetRow.classList.remove(className);
|
|
2199
|
+
}, 400);
|
|
2200
|
+
});
|
|
2201
|
+
},
|
|
2202
|
+
useTableAnimationFields(editFields){
|
|
2203
|
+
this.$nextTick(() => {
|
|
2204
|
+
const targetRow = this.currentRow;
|
|
2205
|
+
const className = 'table-row-filter';
|
|
2206
|
+
editFields.forEach((item) => {
|
|
2207
|
+
const cell = targetRow.querySelector(`[columnid="${item}"]`);
|
|
2208
|
+
if (cell) {
|
|
2209
|
+
cell.classList.add(className);
|
|
2210
|
+
}
|
|
2211
|
+
});
|
|
2212
|
+
|
|
2213
|
+
// 动画结束后移除类名
|
|
2214
|
+
setTimeout(() => {
|
|
2215
|
+
editFields.forEach((item) => {
|
|
2216
|
+
const cell = targetRow.querySelector(`[columnid="${item}"]`);
|
|
2217
|
+
if (cell) {
|
|
2218
|
+
cell.classList.remove(className);
|
|
2219
|
+
}
|
|
2220
|
+
});
|
|
2221
|
+
}, 400);
|
|
2222
|
+
});
|
|
2223
|
+
},
|
|
2180
2224
|
importComplete(res, field) {
|
|
2181
2225
|
var self = this;
|
|
2182
2226
|
if (res && res.rtnCode && res.rtnCode === 201) {
|
|
@@ -2580,6 +2624,66 @@ export default {
|
|
|
2580
2624
|
border-top: 1px solid #ebeef5;
|
|
2581
2625
|
}
|
|
2582
2626
|
|
|
2627
|
+
.table-row-update {
|
|
2628
|
+
transform-origin: center center;
|
|
2629
|
+
animation: rowRoll 0.9s ease;
|
|
2630
|
+
}
|
|
2631
|
+
@keyframes rowRoll{
|
|
2632
|
+
0% { transform: scaleY(1); }
|
|
2633
|
+
50% { transform: scaleY(0.3); }
|
|
2634
|
+
100% { transform: scaleY(1); }
|
|
2635
|
+
}
|
|
2636
|
+
.table-row-filter {
|
|
2637
|
+
animation: rowfilter 0.9s ease forwards;
|
|
2638
|
+
}
|
|
2639
|
+
/* 编辑动画模糊清晰 */
|
|
2640
|
+
@keyframes rowfilter {
|
|
2641
|
+
0% {filter: blur(4px);opacity: 0.2;}
|
|
2642
|
+
50% {filter: blur(2px);opacity: 0.6;}
|
|
2643
|
+
100% {filter: blur(0);opacity: 1;}
|
|
2644
|
+
}
|
|
2645
|
+
.table-row-add {
|
|
2646
|
+
animation: rowSlideIn 0.4s ease-out;
|
|
2647
|
+
}
|
|
2648
|
+
/* 新增动画从上到下显示 */
|
|
2649
|
+
@keyframes rowSlideIn {
|
|
2650
|
+
from { opacity: 0; transform: translateY(-20px); background-color: #f0f9eb; }
|
|
2651
|
+
to { opacity: 1; transform: translateY(0); background-color: transparent; }
|
|
2652
|
+
}
|
|
2653
|
+
.table-row-delete {
|
|
2654
|
+
/* animation: rowFadeOutRoll 0.35s ease-in forwards; */
|
|
2655
|
+
animation: rowFadeOutFilter 0.5s ease forwards;
|
|
2656
|
+
}
|
|
2657
|
+
/* 删除动画向右移 */
|
|
2658
|
+
@keyframes rowFadeOutRight {
|
|
2659
|
+
from { opacity: 1; transform: translateX(0); }
|
|
2660
|
+
to { opacity: 0; transform: translateX(30px); height: 0; padding: 0; overflow: hidden; }
|
|
2661
|
+
}
|
|
2662
|
+
/* 删除动画向左移 */
|
|
2663
|
+
@keyframes rowFadeOutLeft {
|
|
2664
|
+
from { opacity: 1; transform: translateX(0); }
|
|
2665
|
+
to { opacity: 0; transform: translateX(-30px); height: 0; padding: 0; overflow: hidden; }
|
|
2666
|
+
}
|
|
2667
|
+
/* 删除动画向内消失 */
|
|
2668
|
+
@keyframes rowFadeOutRoll {
|
|
2669
|
+
0% { transform: scaleY(1) scaleX(1); }
|
|
2670
|
+
50% { transform: scaleY(0.3) scaleX(0.5); }
|
|
2671
|
+
100% { transform: scaleY(0) scaleX(0); }
|
|
2672
|
+
}
|
|
2673
|
+
/* 删除动画模糊消失 */
|
|
2674
|
+
@keyframes rowFadeOutFilter {
|
|
2675
|
+
0% {filter: blur(0);opacity: 1;}
|
|
2676
|
+
50% {filter: blur(2px);opacity: 0.5;}
|
|
2677
|
+
100% {filter: blur(4px);opacity: 0;}
|
|
2678
|
+
}
|
|
2679
|
+
.table-row-edit {
|
|
2680
|
+
animation: rowHighlight 0.6s ease;
|
|
2681
|
+
}
|
|
2682
|
+
@keyframes rowHighlight {
|
|
2683
|
+
0%, 100% { background-color: transparent; }
|
|
2684
|
+
50% { background-color: #ecf5ff; }
|
|
2685
|
+
}
|
|
2686
|
+
|
|
2583
2687
|
.ct-searchtable .ct-table {
|
|
2584
2688
|
min-width: 100%;
|
|
2585
2689
|
border-collapse: collapse;
|
|
@@ -41,6 +41,15 @@ const FormList = function (source, master) {
|
|
|
41
41
|
get title() {
|
|
42
42
|
return master.controlLabel || '';
|
|
43
43
|
},
|
|
44
|
+
set title(v) {
|
|
45
|
+
master.controlLabel = v;
|
|
46
|
+
},
|
|
47
|
+
get flagCollapse() {
|
|
48
|
+
return master.flagCollapse || false;
|
|
49
|
+
},
|
|
50
|
+
get groupExpand() {
|
|
51
|
+
return master.groupExpand === true;
|
|
52
|
+
},
|
|
44
53
|
get description() {
|
|
45
54
|
return master.description || '';
|
|
46
55
|
},
|