style:登记情形设定
Showing
7 changed files
with
240 additions
and
65 deletions
src/components/lb-table/index.js
0 → 100644
... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
17 | :index="column.index" | 17 | :index="column.index" |
18 | :column-key="column.columnKey" | 18 | :column-key="column.columnKey" |
19 | :width="column.width" | 19 | :width="column.width" |
20 | :min-width="setColumnWidth(column.label)" | 20 | :min-width="column.minWidth" |
21 | :fixed="column.fixed" | 21 | :fixed="column.fixed" |
22 | :scoped-slot="column.renderHeader" | 22 | :scoped-slot="column.renderHeader" |
23 | :sortable="column.sortable || false" | 23 | :sortable="column.sortable || false" |
... | @@ -26,9 +26,9 @@ | ... | @@ -26,9 +26,9 @@ |
26 | :sort-orders="column.sortOrders" | 26 | :sort-orders="column.sortOrders" |
27 | :resizable="column.resizable || true" | 27 | :resizable="column.resizable || true" |
28 | :formatter="column.formatter" | 28 | :formatter="column.formatter" |
29 | :show-overflow-tooltip="column.showOverflowTooltip != null ? column.showOverflowTooltip : true" | 29 | :show-overflow-tooltip="column.showOverflowTooltip || false" |
30 | :align="column.align!=null ? column.align : 'left'" | 30 | :align="column.align || align || 'center'" |
31 | :header-align="column.headerAlign || headerAlign || column.align || align || 'left'" | 31 | :header-align="column.headerAlign || headerAlign || column.align || align || 'center'" |
32 | :class-name="column.className" | 32 | :class-name="column.className" |
33 | :label-class-name="column.labelClassName" | 33 | :label-class-name="column.labelClassName" |
34 | :selectable="column.selectable" | 34 | :selectable="column.selectable" |
... | @@ -76,27 +76,6 @@ export default { | ... | @@ -76,27 +76,6 @@ export default { |
76 | LbRender | 76 | LbRender |
77 | }, | 77 | }, |
78 | methods: { | 78 | methods: { |
79 | |||
80 | setColumnWidth(str) { | ||
81 | let columnWidth = 0; | ||
82 | for (let char of str) { | ||
83 | if ((char >= 'A' && char <= 'Z') || (char >= 'a' && char <= 'z')) { | ||
84 | // 如果是英文字符,为字符分配10个单位宽度,单位宽度可根据字体大小调整 | ||
85 | columnWidth += 10 | ||
86 | } else if (char >= '\u4e00' && char <= '\u9fa5') { | ||
87 | // 如果是中文字符,为字符分配14个单位宽度,单位宽度可根据字体大小调整 | ||
88 | columnWidth += 14 | ||
89 | } else { | ||
90 | // 其他种类字符,为字符分配10个单位宽度,单位宽度可根据字体大小调整 | ||
91 | columnWidth += 10 | ||
92 | } | ||
93 | } | ||
94 | if (columnWidth < 120) { | ||
95 | // 设置最小宽度 | ||
96 | columnWidth = 120 | ||
97 | } | ||
98 | return columnWidth + 'px' | ||
99 | }, | ||
100 | setColumn () { | 79 | setColumn () { |
101 | if (this.column.type) { | 80 | if (this.column.type) { |
102 | this.column.renderHeader = forced[this.column.type].renderHeader | 81 | this.column.renderHeader = forced[this.column.type].renderHeader | ... | ... |
... | @@ -10,14 +10,15 @@ | ... | @@ -10,14 +10,15 @@ |
10 | 10 | ||
11 | <template> | 11 | <template> |
12 | <div :class="['lb-table', customClass]"> | 12 | <div :class="['lb-table', customClass]"> |
13 | <el-table ref="elTable" :row-class-name="tableRowClassName" :border="border" :show-header='showHeader' | 13 | <el-table ref="elTable" :border='border' :row-class-name="tableRowClassName" :show-header='showHeader' |
14 | :header-cell-style="{ background: '#F8FAFA' }" v-bind="$attrs" :height="tableHeight" v-on="$listeners" | 14 | :header-cell-style="{ background: '#f5f7fa' }" v-bind="$attrs" :height="tableHeight" v-on="$listeners" |
15 | :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod"> | 15 | :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod"> |
16 | <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item"> | 16 | <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item"> |
17 | </lb-column> | 17 | </lb-column> |
18 | </el-table> | 18 | </el-table> |
19 | <br> | ||
19 | <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background | 20 | <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background |
20 | :page-sizes="[10, 15, 20, 50]" layout="total, sizes, prev, pager, next" @current-change="paginationCurrentChange" | 21 | :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next" @current-change="paginationCurrentChange" |
21 | :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }"> | 22 | :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }"> |
22 | </el-pagination> | 23 | </el-pagination> |
23 | </div> | 24 | </div> |
... | @@ -48,7 +49,7 @@ export default { | ... | @@ -48,7 +49,7 @@ export default { |
48 | }, | 49 | }, |
49 | heightNum: { | 50 | heightNum: { |
50 | type: Number, | 51 | type: Number, |
51 | default: 275, | 52 | default: 285, |
52 | }, | 53 | }, |
53 | heightNumSetting: { | 54 | heightNumSetting: { |
54 | type: Boolean, | 55 | type: Boolean, |
... | @@ -60,7 +61,7 @@ export default { | ... | @@ -60,7 +61,7 @@ export default { |
60 | }, | 61 | }, |
61 | paginationAlign: { | 62 | paginationAlign: { |
62 | type: String, | 63 | type: String, |
63 | default: 'right', | 64 | default: 'left', |
64 | }, | 65 | }, |
65 | merge: Array, | 66 | merge: Array, |
66 | }, | 67 | }, |
... | @@ -77,9 +78,6 @@ export default { | ... | @@ -77,9 +78,6 @@ export default { |
77 | created () { | 78 | created () { |
78 | this.getMergeArr(this.data, this.merge) | 79 | this.getMergeArr(this.data, this.merge) |
79 | this.getHeight() | 80 | this.getHeight() |
80 | |||
81 | }, | ||
82 | mounted () { | ||
83 | }, | 81 | }, |
84 | computed: { | 82 | computed: { |
85 | dataLength () { | 83 | dataLength () { |
... | @@ -176,33 +174,11 @@ export default { | ... | @@ -176,33 +174,11 @@ export default { |
176 | }, | 174 | }, |
177 | } | 175 | } |
178 | </script> | 176 | </script> |
179 | <style rel="stylesheet/scss" lang="scss" > | 177 | <style rel="stylesheet/scss" lang="scss"> |
180 | .lb-table { | 178 | .lb-table { |
181 | .interlaced { | 179 | .interlaced { |
182 | background: #FCFDFD; | 180 | background: #fafcff; |
183 | ; | 181 | border: 1px solid #ebf2fa; |
184 | border: 1px solid #ECECEE; | ||
185 | } | ||
186 | |||
187 | .el-table { | ||
188 | border: 1px solid #ECECEE; | ||
189 | border-radius: 4px 4px 0 0; | ||
190 | } | ||
191 | |||
192 | .el-table::before { | ||
193 | display: none; | ||
194 | } | 182 | } |
195 | |||
196 | .el-table--enable-row-hover .el-table__body tr:hover>td { | ||
197 | background: #FBFCFD !important; | ||
198 | } | ||
199 | } | ||
200 | |||
201 | .el-table th>.cell { | ||
202 | padding-left: 20px; | ||
203 | } | ||
204 | |||
205 | .el-table .cell { | ||
206 | padding-left: 20px; | ||
207 | } | 183 | } |
208 | </style> | 184 | </style> | ... | ... |
... | @@ -225,6 +225,7 @@ input[type="number"] { | ... | @@ -225,6 +225,7 @@ input[type="number"] { |
225 | 225 | ||
226 | .lb-table .el-table { | 226 | .lb-table .el-table { |
227 | border: 1px solid #E4EBF4; | 227 | border: 1px solid #E4EBF4; |
228 | border-bottom: none; | ||
228 | border-radius: 4px 4px 0 0; | 229 | border-radius: 4px 4px 0 0; |
229 | } | 230 | } |
230 | 231 | ... | ... |
src/utils/operation.js
0 → 100644
1 | import { Message } from "element-ui"; | ||
2 | // 上移下移 | ||
3 | export function upward (index, data) { | ||
4 | if (index > 0) { | ||
5 | let upData = data[index - 1]; | ||
6 | data.splice(index - 1, 1); | ||
7 | data.splice(index, 0, upData); | ||
8 | } else { | ||
9 | Message({ | ||
10 | message: '已经是第一条,上移失败', | ||
11 | }); | ||
12 | } | ||
13 | } | ||
14 | export function down (index, data) { | ||
15 | if ((index + 1) == data.length) { | ||
16 | Message({ | ||
17 | message: '已经是最后一条,下移失败', | ||
18 | }); | ||
19 | } else { | ||
20 | let downData = data[index + 1]; | ||
21 | data.splice(index + 1, 1); | ||
22 | data.splice(index, 0, downData); | ||
23 | } | ||
24 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | 功能:登记情形设定 | ||
3 | --> | ||
4 | <template> | ||
5 | <div class='该组件名称'> | ||
6 | <el-form :model="ruleForm" :rules="rules" label-width="135px"> | ||
7 | <el-row :gutter="20"> | ||
8 | <el-col :span="8"> | ||
9 | <el-form-item label="登记业务编码" prop="djywbm"> | ||
10 | <el-input v-model="ruleForm.djywbm"></el-input> | ||
11 | </el-form-item> | ||
12 | </el-col> | ||
13 | <el-col :span="16"> | ||
14 | <el-form-item label="登记业务名称" prop="djywmc"> | ||
15 | <el-input v-model="ruleForm.djywmc"></el-input> | ||
16 | </el-form-item> | ||
17 | </el-col> | ||
18 | </el-row> | ||
19 | </el-form> | ||
20 | <lb-table :column="column" border :key="key" :heightNum="390" :pagination="false" heightNumSetting | ||
21 | :data="tableData"> | ||
22 | </lb-table> | ||
23 | </div> | ||
24 | </template> | ||
25 | <script> | ||
26 | import { upward, down } from '@/utils/operation' | ||
27 | export default { | ||
28 | data () { | ||
29 | return { | ||
30 | key: 0, | ||
31 | ruleForm: { | ||
32 | djywbm: '', | ||
33 | djywmc: '' | ||
34 | }, | ||
35 | mcOptions: [ | ||
36 | { | ||
37 | name: '买卖', | ||
38 | value: '1' | ||
39 | }, | ||
40 | { | ||
41 | name: '买卖继承', | ||
42 | value: '2' | ||
43 | } | ||
44 | ], | ||
45 | rules: { | ||
46 | djywbm: [ | ||
47 | { required: true, message: '登记业务编码', trigger: 'blur' }, | ||
48 | ], | ||
49 | djywmc: [ | ||
50 | { required: true, message: '登记业务名称', trigger: 'blur' }, | ||
51 | ], | ||
52 | }, | ||
53 | column: [ | ||
54 | { | ||
55 | width: '60', | ||
56 | renderHeader: (h, scope) => { | ||
57 | return <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }} style="color:#409EFF"></i> | ||
58 | }, | ||
59 | render: (h, scope) => { | ||
60 | return ( | ||
61 | <i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i> | ||
62 | ) | ||
63 | } | ||
64 | }, | ||
65 | { | ||
66 | width: '60', | ||
67 | label: '序号', | ||
68 | type: 'index' | ||
69 | }, | ||
70 | { | ||
71 | prop: 'djqxbm', | ||
72 | label: '登记情形编码', | ||
73 | render: (h, scope) => { | ||
74 | return ( | ||
75 | <el-input placeholder="登记情形编码" value={scope.row[scope.column.property]} | ||
76 | onInput={(val) => { scope.row[scope.column.property] = val }}></el-input> | ||
77 | ) | ||
78 | } | ||
79 | }, | ||
80 | { | ||
81 | prop: 'djqxmc', | ||
82 | label: '登记情形名称', | ||
83 | render: (h, scope) => { | ||
84 | return ( | ||
85 | <el-input placeholder="登记情形名称" value={scope.row[scope.column.property]} | ||
86 | onInput={(val) => { scope.row[scope.column.property] = val }}></el-input> | ||
87 | ) | ||
88 | } | ||
89 | }, | ||
90 | { | ||
91 | label: '是否启用登记情形', | ||
92 | width: '160', | ||
93 | render: (h, scope) => { | ||
94 | return ( | ||
95 | <el-radio-group v-model={scope.row.sfqy} onChange={(val) => { scope.row[scope.column.property] = val }}> | ||
96 | <el-radio label={1}>启用</el-radio> | ||
97 | <el-radio label={0}>禁用</el-radio> | ||
98 | </el-radio-group> | ||
99 | ) | ||
100 | } | ||
101 | }, | ||
102 | { | ||
103 | prop: 'djyymb', | ||
104 | label: '登记原因模板', | ||
105 | render: (h, scope) => { | ||
106 | return ( | ||
107 | <el-input placeholder="登记原因模板" value={scope.row[scope.column.property]} | ||
108 | onInput={(val) => { scope.row[scope.column.property] = val }}></el-input> | ||
109 | ) | ||
110 | } | ||
111 | }, | ||
112 | { | ||
113 | label: '是否启用模板', | ||
114 | width: '160', | ||
115 | render: (h, scope) => { | ||
116 | return ( | ||
117 | <el-radio-group v-model={scope.row.sfqymb} onChange={(val) => { scope.row[scope.column.property] = val }}> | ||
118 | <el-radio label={1}>启用</el-radio> | ||
119 | <el-radio label={0}>禁用</el-radio> | ||
120 | </el-radio-group> | ||
121 | ) | ||
122 | } | ||
123 | }, | ||
124 | { | ||
125 | label: '移动', | ||
126 | width: '90', | ||
127 | render: (h, scope) => { | ||
128 | return ( | ||
129 | <div> | ||
130 | <i class="el-icon-top pointer" disabled={scope.$index == 0} style="color:#409EFF" onClick={() => { this.moveUpward(scope.$index, scope.row) }}></i> | ||
131 | <i class="el-icon-bottom pointer" disabled={(scope.$index + 1) == this.tableData.length} style="color:#409EFF" onClick={() => { this.moveDown(scope.$index, scope.row) }}></i> | ||
132 | </div> | ||
133 | ) | ||
134 | } | ||
135 | } | ||
136 | ], | ||
137 | tableData: [{ | ||
138 | djqxmc: '', | ||
139 | djqxbm: '', | ||
140 | djyymb: '', | ||
141 | sfqymb: 1, | ||
142 | sfqy: 1 | ||
143 | }, | ||
144 | { | ||
145 | djqxmc: '', | ||
146 | djqxbm: '', | ||
147 | djyymb: '', | ||
148 | sfqymb: 0, | ||
149 | sfqy: 0 | ||
150 | }] | ||
151 | } | ||
152 | }, | ||
153 | watch: { | ||
154 | tableData: { | ||
155 | handler (newValue, oldValue) { | ||
156 | this.$emit('updateValue', newValue) | ||
157 | }, | ||
158 | deep: true | ||
159 | } | ||
160 | }, | ||
161 | methods: { | ||
162 | handleAdd () { | ||
163 | this.tableData.push( | ||
164 | { | ||
165 | djqxmc: '', | ||
166 | djqxbm: '', | ||
167 | djyymb: '', | ||
168 | sfqymb: 0, | ||
169 | sfqy: 0 | ||
170 | } | ||
171 | ) | ||
172 | }, | ||
173 | handleMinus () { }, | ||
174 | // 上移下移 | ||
175 | moveUpward (index, row) { | ||
176 | upward(index, this.tableData) | ||
177 | this.key++ | ||
178 | }, | ||
179 | moveDown (index, row) { | ||
180 | down(index, this.tableData) | ||
181 | this.key++ | ||
182 | }, | ||
183 | } | ||
184 | } | ||
185 | </script> | ||
186 | <style scoped lang='scss'> | ||
187 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
7 | }}</li> | 7 | }}</li> |
8 | </ul> | 8 | </ul> |
9 | <div class="sqywgz-edit-right"> | 9 | <div class="sqywgz-edit-right"> |
10 | <el-form :model="ruleForm" :rules="rules" label-width="135px" ref="ruleForm"> | 10 | <el-form :model="ruleForm" v-if="n == 0" :rules="rules" label-width="135px" ref="ruleForm"> |
11 | <el-row> | 11 | <el-row> |
12 | <el-col :span="8"> | 12 | <el-col :span="8"> |
13 | <el-form-item label="权利类型编码" prop="qllxbm"> | 13 | <el-form-item label="权利类型编码" prop="qllxbm"> |
... | @@ -28,8 +28,6 @@ | ... | @@ -28,8 +28,6 @@ |
28 | </el-form-item> | 28 | </el-form-item> |
29 | </el-col> | 29 | </el-col> |
30 | </el-row> | 30 | </el-row> |
31 | |||
32 | |||
33 | <el-row> | 31 | <el-row> |
34 | <el-col :span="8"> | 32 | <el-col :span="8"> |
35 | <el-form-item label="登记类型编码" prop="djlxbm"> | 33 | <el-form-item label="登记类型编码" prop="djlxbm"> |
... | @@ -50,7 +48,6 @@ | ... | @@ -50,7 +48,6 @@ |
50 | </el-form-item> | 48 | </el-form-item> |
51 | </el-col> | 49 | </el-col> |
52 | </el-row> | 50 | </el-row> |
53 | |||
54 | <el-row> | 51 | <el-row> |
55 | <el-col :span="8"> | 52 | <el-col :span="8"> |
56 | <el-form-item label="登记业务编码" prop="djywbm"> | 53 | <el-form-item label="登记业务编码" prop="djywbm"> |
... | @@ -63,7 +60,6 @@ | ... | @@ -63,7 +60,6 @@ |
63 | </el-form-item> | 60 | </el-form-item> |
64 | </el-col> | 61 | </el-col> |
65 | </el-row> | 62 | </el-row> |
66 | |||
67 | <el-row> | 63 | <el-row> |
68 | <el-col :span="8"> | 64 | <el-col :span="8"> |
69 | <el-form-item label="是否启用" prop="sfqy"> | 65 | <el-form-item label="是否启用" prop="sfqy"> |
... | @@ -79,7 +75,6 @@ | ... | @@ -79,7 +75,6 @@ |
79 | </el-form-item> | 75 | </el-form-item> |
80 | </el-col> | 76 | </el-col> |
81 | </el-row> | 77 | </el-row> |
82 | |||
83 | <el-row> | 78 | <el-row> |
84 | <el-col :span="8"> | 79 | <el-col :span="8"> |
85 | <el-form-item label="登记情形及材料" prop="djqxcl"> | 80 | <el-form-item label="登记情形及材料" prop="djqxcl"> |
... | @@ -93,7 +88,6 @@ | ... | @@ -93,7 +88,6 @@ |
93 | </el-upload> | 88 | </el-upload> |
94 | </el-col> | 89 | </el-col> |
95 | </el-row> | 90 | </el-row> |
96 | |||
97 | <el-row> | 91 | <el-row> |
98 | <el-col :span="8"> | 92 | <el-col :span="8"> |
99 | <el-form-item label="登记原因设置" prop="djyysz"> | 93 | <el-form-item label="登记原因设置" prop="djyysz"> |
... | @@ -113,6 +107,7 @@ | ... | @@ -113,6 +107,7 @@ |
113 | </el-col> | 107 | </el-col> |
114 | </el-row> | 108 | </el-row> |
115 | </el-form> | 109 | </el-form> |
110 | <djqxsd v-else-if="n == 1" @updateValue="getValue" /> | ||
116 | </div> | 111 | </div> |
117 | </div> | 112 | </div> |
118 | </dialogBox> | 113 | </dialogBox> |
... | @@ -120,7 +115,11 @@ | ... | @@ -120,7 +115,11 @@ |
120 | 115 | ||
121 | <script> | 116 | <script> |
122 | import fileController from '@/api/fileController' | 117 | import fileController from '@/api/fileController' |
118 | import djqxsd from './djqxsd.vue' | ||
123 | export default { | 119 | export default { |
120 | components: { | ||
121 | djqxsd | ||
122 | }, | ||
124 | props: { | 123 | props: { |
125 | value: { type: Boolean, default: false }, | 124 | value: { type: Boolean, default: false }, |
126 | }, | 125 | }, |
... | @@ -208,6 +207,9 @@ export default { | ... | @@ -208,6 +207,9 @@ export default { |
208 | }; | 207 | }; |
209 | }, | 208 | }, |
210 | methods: { | 209 | methods: { |
210 | getValue (val) { | ||
211 | console.log(val); | ||
212 | }, | ||
211 | submitForm () { | 213 | submitForm () { |
212 | this.$refs['ruleForm'].validate(async (valid) => { | 214 | this.$refs['ruleForm'].validate(async (valid) => { |
213 | if (valid) { | 215 | if (valid) { | ... | ... |
-
Please register or sign in to post a comment