--no commit message
Showing
2 changed files
with
327 additions
and
1 deletions
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-07-19 16:04:58 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <div class="fieldcheck"> | ||
9 | <div class="left"> | ||
10 | <div class="header"> | ||
11 | <el-checkbox | ||
12 | class="check" | ||
13 | :indeterminate="isIndeterminate" | ||
14 | v-model="checkAll" | ||
15 | @change="handleCheckAllChange" | ||
16 | >待选合集</el-checkbox | ||
17 | > | ||
18 | <div class="num">/</div> | ||
19 | </div> | ||
20 | <el-checkbox-group | ||
21 | class="concent" | ||
22 | v-model="checkedCities" | ||
23 | @change="handleCheckedCitiesChange" | ||
24 | > | ||
25 | <el-checkbox | ||
26 | v-for="city in cities" | ||
27 | :label="city.name" | ||
28 | :key="city.name" | ||
29 | >{{ city.despriction }}({{ city.name }})</el-checkbox | ||
30 | > | ||
31 | </el-checkbox-group> | ||
32 | </div> | ||
33 | <div class="right"> | ||
34 | <div class="header"> | ||
35 | <el-button> 置顶 </el-button> | ||
36 | <el-button> 上移 </el-button> | ||
37 | <el-button> 下移 </el-button> | ||
38 | <el-button> 置底 </el-button> | ||
39 | </div> | ||
40 | <el-table | ||
41 | class="tablelist" | ||
42 | :data="datalist" | ||
43 | ref="listTable" | ||
44 | row-key="zd" | ||
45 | :pagination="false" | ||
46 | :header-cell-style="{ 'text-align': 'center' }" | ||
47 | :heightNumSetting="true" | ||
48 | :minHeight="150" | ||
49 | height="590" | ||
50 | style="width: 100%" | ||
51 | > | ||
52 | <el-table-column label="字段" prop="name" min-width="100"> | ||
53 | </el-table-column> | ||
54 | |||
55 | <el-table-column | ||
56 | label="字段名称" | ||
57 | prop="desprictionor" | ||
58 | min-width="100" | ||
59 | > | ||
60 | </el-table-column> | ||
61 | <el-table-column label="字段别名" min-width="100"> | ||
62 | <template slot-scope="scope"> | ||
63 | <el-input | ||
64 | v-model="scope.row.despriction" | ||
65 | placeholder="请输入内容" | ||
66 | @input="sumTime(scope.$index, scope.row.tdsyqx)" | ||
67 | > | ||
68 | ></el-input | ||
69 | > | ||
70 | </template> | ||
71 | </el-table-column> | ||
72 | </el-table> | ||
73 | </div> | ||
74 | </div> | ||
75 | <div class="btn"> | ||
76 | <el-button @click="$popupCacel">取消</el-button> | ||
77 | <el-button type="primary" @click="submitForm" plain>确定</el-button> | ||
78 | </div> | ||
79 | </div> | ||
80 | </template> | ||
81 | |||
82 | <script> | ||
83 | import Sortable from "sortablejs"; | ||
84 | import { getFieldList, getFieldListByQlxx, save } from "@/api/SysDjbFieldDO"; | ||
85 | export default { | ||
86 | props: { | ||
87 | formData: { | ||
88 | type: Object, | ||
89 | default: () => {}, | ||
90 | }, | ||
91 | }, | ||
92 | data() { | ||
93 | return { | ||
94 | checkAll: false, | ||
95 | checkedCities: [], | ||
96 | cities: [], | ||
97 | datalist: [], | ||
98 | tablelist: [], | ||
99 | key: 0, | ||
100 | isIndeterminate: true, | ||
101 | }; | ||
102 | }, | ||
103 | mounted() { | ||
104 | this.generateData(); | ||
105 | this.initSort(); | ||
106 | }, | ||
107 | beforeDestroy() { | ||
108 | if (this.sortable) { | ||
109 | this.sortable.destroy(); | ||
110 | } | ||
111 | }, | ||
112 | methods: { | ||
113 | changeIndex(array, index1, index2) { | ||
114 | array[index1] = array.splice(index2, 1, array[index1])[0]; | ||
115 | /** splice 会修改原来的数组 slice 不会 返回的是删除后的数据 所以 index2要删除的位置,删除1个数据 返回是index2的数据 然后最后一个参数是新增的数据为index的数据 */ | ||
116 | }, | ||
117 | initSort() { | ||
118 | this.datalist=[] | ||
119 | this.datalist =this.tablelist | ||
120 | const el = this.$refs.listTable.$el.querySelectorAll( | ||
121 | ".el-table__body-wrapper > table > tbody" | ||
122 | )[0]; | ||
123 | this.sortable = Sortable.create(el, { | ||
124 | ghostClass: "sortable-ghost", | ||
125 | setData: function (dataTransfer) { | ||
126 | dataTransfer.setData("Text", ""); | ||
127 | }, | ||
128 | onEnd: (evt) => { | ||
129 | console.log("evt.oldIndex", evt.oldIndex); | ||
130 | console.log("evt.newIndex", evt.newIndex); | ||
131 | const targetRow = this.tablelist.splice(evt.oldIndex, 1)[0]; | ||
132 | console.log("targetRow", targetRow); | ||
133 | // this.changeIndex(this.datalist,evt.newIndex,evt.oldIndex) | ||
134 | // console.log("this.datalist", this.datalist); | ||
135 | this.datalist.splice(evt.newIndex, 0, targetRow); | ||
136 | console.log(); | ||
137 | this.$set(this.datalist,targetRow); | ||
138 | |||
139 | }, | ||
140 | }); | ||
141 | }, | ||
142 | // initSort () { | ||
143 | // const el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0] | ||
144 | // this.sortable =new Sortable(el, { | ||
145 | // onEnd: (evt) => { // 监听拖动结束事件 | ||
146 | // console.log(this) // this是当前vue上下文 | ||
147 | // console.log(evt.oldIndex) // 当前行的被拖拽前的顺序 | ||
148 | // console.log(evt.newIndex) | ||
149 | // const currRow = this.tableData.splice(evt.oldIndex, 1)[0] | ||
150 | // this.datalist.splice(evt.newIndex, 0, currRow) | ||
151 | // } | ||
152 | // }) | ||
153 | // }, | ||
154 | // initSort(){ | ||
155 | // let el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0] | ||
156 | // //设置配置 | ||
157 | // let _this = this | ||
158 | // Sortable.create(el, { | ||
159 | // animation: 150, | ||
160 | // sort: true, | ||
161 | // // draggable: '.el-table__row', // 设置可拖拽行的类名(el-table自带的类名) | ||
162 | // forceFallback: true, | ||
163 | // onEnd({newIndex, oldIndex}) { | ||
164 | // let currRow = _this.datalist.splice(oldIndex, 1)[0]; | ||
165 | // _this.datalist.splice(newIndex, 0, currRow); | ||
166 | // } | ||
167 | // }) | ||
168 | // }, | ||
169 | /** | ||
170 | * @description: 初始数据集 | ||
171 | * @author: renchao | ||
172 | */ | ||
173 | generateData() { | ||
174 | getFieldList({ qllx: this.formData.qllx }).then((res) => { | ||
175 | if (res.code === 200) { | ||
176 | let listss = res.result; | ||
177 | listss.forEach((item, index) => { | ||
178 | this.cities.push({ | ||
179 | name: item.name, | ||
180 | despriction: item.despriction, | ||
181 | desprictionor: item.despriction, | ||
182 | }); | ||
183 | }); | ||
184 | |||
185 | getFieldListByQlxx({ qllx: this.formData.qllx }).then((res) => { | ||
186 | if (res.code === 200) { | ||
187 | let listss = res.result; | ||
188 | listss.forEach((item, index) => { | ||
189 | this.tablelist.push({ | ||
190 | name: item.name, | ||
191 | despriction: item.despriction, | ||
192 | desprictionor: item.despriction, | ||
193 | }); | ||
194 | this.datalist =this.tablelist | ||
195 | this.checkedCities.push(item.name); | ||
196 | }); | ||
197 | } | ||
198 | }); | ||
199 | } | ||
200 | }); | ||
201 | }, | ||
202 | handleCheckAllChange(val) { | ||
203 | let checkedlist=[] | ||
204 | let orlist=[] | ||
205 | checkedlist = val ? this.cities : []; | ||
206 | this.isIndeterminate = false; | ||
207 | console.log("this.checkedCities", this.checkedCities); | ||
208 | let lists = []; | ||
209 | this.cities.forEach((item, index) => { | ||
210 | |||
211 | checkedlist.forEach((el) => { | ||
212 | orlist.push(el.name) | ||
213 | if (item.name == el.name) { | ||
214 | lists.push(this.cities[index]); | ||
215 | } | ||
216 | }); | ||
217 | }); | ||
218 | console.log("orlist",orlist); | ||
219 | this.checkedCities=orlist | ||
220 | this.tablelist = lists; | ||
221 | this.datalist =this.tablelist | ||
222 | }, | ||
223 | handleCheckedCitiesChange(value) { | ||
224 | console.log("value", value, this.checkedCities); | ||
225 | let checkedCount = value.length; | ||
226 | this.checkAll = checkedCount === this.cities.length; | ||
227 | this.isIndeterminate = | ||
228 | checkedCount > 0 && checkedCount < this.cities.length; | ||
229 | let lists = []; | ||
230 | this.cities.forEach((item, index) => { | ||
231 | this.checkedCities.forEach((el) => { | ||
232 | if (item.name == el) { | ||
233 | console.log("1"); | ||
234 | lists.push(this.cities[index]); | ||
235 | } | ||
236 | }); | ||
237 | }); | ||
238 | this.tablelist = lists; | ||
239 | this.datalist =this.tablelist | ||
240 | }, | ||
241 | submitForm() { | ||
242 | console.log("this.datalistdss", this.datalist); | ||
243 | save(this.formData.bsmMb, this.datalist).then((res) => { | ||
244 | if (res.code == 200) { | ||
245 | this.$popupCacel(); | ||
246 | this.$message({ | ||
247 | message: "保存成功", | ||
248 | type: "success", | ||
249 | }); | ||
250 | } else { | ||
251 | this.$message({ | ||
252 | message: "保存失败", | ||
253 | type: "error", | ||
254 | }); | ||
255 | } | ||
256 | }); | ||
257 | }, | ||
258 | }, | ||
259 | }; | ||
260 | </script> | ||
261 | <style scoped lang="scss"> | ||
262 | @import "~@/styles/mixin.scss"; | ||
263 | @import "~@/styles/dialogBoxheader.scss"; | ||
264 | .fieldcheck { | ||
265 | width: 100%; | ||
266 | height: 650px; | ||
267 | display: flex; | ||
268 | justify-content: space-between; | ||
269 | .left, | ||
270 | .right { | ||
271 | width: 47%; | ||
272 | height: 650px; | ||
273 | border: 1px solid rgb(230, 230, 230); | ||
274 | } | ||
275 | .left { | ||
276 | .header { | ||
277 | width: 100%; | ||
278 | height: 50px; | ||
279 | line-height: 50px; | ||
280 | background-color: rgba(243, 242, 242, 0.897); | ||
281 | display: flex; | ||
282 | justify-content: space-around; | ||
283 | align-items:center .check { | ||
284 | height: 20px; | ||
285 | margin: auto; | ||
286 | } | ||
287 | .num { | ||
288 | height: 20px; | ||
289 | } | ||
290 | } | ||
291 | .concent { | ||
292 | padding: 10px; | ||
293 | width: 100%; | ||
294 | display: inline-block; | ||
295 | padding-left: 20px; | ||
296 | overflow-x: hidden; | ||
297 | height: 600px; | ||
298 | .el-checkbox { | ||
299 | width: 100%; | ||
300 | padding: 10px; | ||
301 | } | ||
302 | .el-checkbox:hover { | ||
303 | padding: 10px; | ||
304 | background-color: rgba(243, 242, 242, 0.897); | ||
305 | } | ||
306 | } | ||
307 | } | ||
308 | .right { | ||
309 | .header { | ||
310 | width: 100%; | ||
311 | height: 50px; | ||
312 | line-height: 50px; | ||
313 | background-color: rgba(243, 242, 242, 0.897); | ||
314 | } | ||
315 | .tablelist { | ||
316 | margin-top: 10px; | ||
317 | height: 680px; | ||
318 | } | ||
319 | } | ||
320 | } | ||
321 | .btn { | ||
322 | margin-top: 10px; | ||
323 | width: 100%; | ||
324 | text-align: center; | ||
325 | } | ||
326 | </style> |
... | @@ -90,7 +90,7 @@ | ... | @@ -90,7 +90,7 @@ |
90 | this.$popupDialog("其他及附记模板", "system/qtjfjmb/components/editDialog", row, '60%') | 90 | this.$popupDialog("其他及附记模板", "system/qtjfjmb/components/editDialog", row, '60%') |
91 | }, | 91 | }, |
92 | djbdisposition(row){ | 92 | djbdisposition(row){ |
93 | this.$popupDialog("配置登记簿打印字段", "system/qtjfjmb/components/djbdisposition", row, '60%') | 93 | this.$popupDialog("配置登记簿打印字段", "system/qtjfjmb/components/djbdispositions", row, '60%') |
94 | } | 94 | } |
95 | } | 95 | } |
96 | } | 96 | } | ... | ... |
-
Please register or sign in to post a comment