Merge branch 'master' into dev
Showing
21 changed files
with
2483 additions
and
1644 deletions
... | @@ -4,6 +4,6 @@ | ... | @@ -4,6 +4,6 @@ |
4 | "CODE": "BDCJGPT", | 4 | "CODE": "BDCJGPT", |
5 | "SERVERAPI": "/bdcsjsb", | 5 | "SERVERAPI": "/bdcsjsb", |
6 | "calcHeight": 160, | 6 | "calcHeight": 160, |
7 | "echartTextColor": "#FFFFFF", | 7 | "echartTextColor": "#4A4A4A", |
8 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management" | 8 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management" |
9 | } | 9 | } | ... | ... |
1 | .itemForm { | ||
2 | position: relative; | ||
3 | padding: 10px; | ||
4 | |||
5 | /deep/.el-select { | ||
6 | width: 100%; | ||
7 | } | ||
8 | |||
9 | /deep/.el-form-item__error { | ||
10 | right: 25px; | ||
11 | top: 15px; | ||
12 | text-align: right; | ||
13 | pointer-events: none; | ||
14 | } | ||
15 | |||
16 | /deep/.el-date-editor { | ||
17 | width: 100%; | ||
18 | } | ||
19 | |||
20 | /deep/.el-date-editor--date { | ||
21 | width: 100%; | ||
22 | } | ||
23 | |||
24 | /deep/.el-cascader { | ||
25 | width: 100%; | ||
26 | } | ||
27 | |||
28 | // table 样式 | ||
29 | /deep/.el-form-item__label { | ||
30 | border-right: none; | ||
31 | text-align: center; | ||
32 | padding: 0; | ||
33 | color: #05bbdb; | ||
34 | line-height: 16px; | ||
35 | font-size: 12px; | ||
36 | margin-top: 8px !important; | ||
37 | } | ||
38 | |||
39 | /deep/.el-form-item__content { | ||
40 | display: flex; | ||
41 | margin-right: -1px; | ||
42 | } | ||
43 | |||
44 | .obligee-item-name, | ||
45 | .receivingInfo-item-name, | ||
46 | .auditInfo-item-name { | ||
47 | background: url("~@/image/itembg.png") no-repeat; | ||
48 | background-size: 100% 100%; | ||
49 | color: #FFFFFF; | ||
50 | } | ||
51 | |||
52 | /deep/.el-textarea__inner { | ||
53 | margin: 5px; | ||
54 | width: 96%; | ||
55 | background: none; | ||
56 | color: #FFFFFF; | ||
57 | border-radius: 2px; | ||
58 | border: 1px solid #6BC1FC; | ||
59 | } | ||
60 | |||
61 | /deep/.el-input-number { | ||
62 | width: 100%; | ||
63 | } | ||
64 | |||
65 | /deep/.el-input-number__increase { | ||
66 | background: #05275B; | ||
67 | color: #FFFFFF; | ||
68 | border: none; | ||
69 | right: 7px; | ||
70 | top: 2px; | ||
71 | } | ||
72 | |||
73 | /deep/.el-input-number__decrease { | ||
74 | background: #05275B; | ||
75 | color: #FFFFFF; | ||
76 | border: none; | ||
77 | right: 7px; | ||
78 | bottom: 10px; | ||
79 | } | ||
80 | |||
81 | /deep/.el-input__inner { | ||
82 | margin: 5px; | ||
83 | width: 96%; | ||
84 | background: #05275B; | ||
85 | border-radius: 2px; | ||
86 | border: 1px solid #6BC1FC; | ||
87 | text-align: left; | ||
88 | |||
89 | } | ||
90 | |||
91 | /deep/.el-form-item { | ||
92 | margin-bottom: 0; | ||
93 | margin-top: -1px; | ||
94 | } | ||
95 | |||
96 | .item-label { | ||
97 | display: flex; | ||
98 | align-items: flex-end; | ||
99 | flex-direction: column; | ||
100 | font-size: 12px; | ||
101 | flex: 0 0 90px; | ||
102 | margin-right: 3px; | ||
103 | |||
104 | p { | ||
105 | line-height: 16px; | ||
106 | white-space: nowrap; | ||
107 | text-align: right; | ||
108 | } | ||
109 | |||
110 | p:nth-child(1) { | ||
111 | position: relative; | ||
112 | right: 5px; | ||
113 | } | ||
114 | } | ||
115 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-03-17 10:25:19 | 4 | * @LastEditTime: 2023-03-17 10:25:19 |
5 | --> | 5 | --> |
... | @@ -18,65 +18,29 @@ | ... | @@ -18,65 +18,29 @@ |
18 | </div> | 18 | </div> |
19 | </template> | 19 | </template> |
20 | <script> | 20 | <script> |
21 | import { getReceiveDataReportResult } from "@/api/dataReport.js"; | 21 | import { getReceiveDataReportResult } from "@/api/dataReport.js"; |
22 | export default { | 22 | export default { |
23 | components: {}, | 23 | components: {}, |
24 | props: { | 24 | props: { |
25 | formData: { | 25 | formData: { |
26 | type: Object, | 26 | type: Object, |
27 | default: {} | 27 | default: {} |
28 | } | ||
29 | }, | ||
30 | data () { | ||
31 | return { | ||
32 | REPMSGXML: '', | ||
33 | ERRORINFO: '', | ||
34 | } | ||
35 | }, | ||
36 | created () { | ||
37 | getReceiveDataReportResult(this.formData.bsmReport).then(res => { | ||
38 | let data = res.result | ||
39 | this.REPMSGXML = data.REPMSGXML | ||
40 | this.ERRORINFO = data.ERRORINFO | ||
41 | }) | ||
28 | } | 42 | } |
29 | }, | ||
30 | data () { | ||
31 | return { | ||
32 | REPMSGXML: '', | ||
33 | ERRORINFO: '', | ||
34 | } | ||
35 | }, | ||
36 | created () { | ||
37 | getReceiveDataReportResult(this.formData.bsmReport).then(res => { | ||
38 | let data = res.result | ||
39 | this.REPMSGXML = data.REPMSGXML | ||
40 | this.ERRORINFO = data.ERRORINFO | ||
41 | }) | ||
42 | } | 43 | } |
43 | } | ||
44 | </script> | 44 | </script> |
45 | <style scoped lang='scss'> | 45 | <style scoped lang='scss'> |
46 | .result { | ||
47 | padding: 15px; | ||
48 | height: 100%; | ||
49 | |||
50 | /deep/.el-textarea__inner { | ||
51 | height: 50%; | ||
52 | color: #ffffff; | ||
53 | border: none !important; | ||
54 | color: #ffffff; | ||
55 | } | ||
56 | |||
57 | &-con { | ||
58 | background: #04275B; | ||
59 | border-radius: 2px; | ||
60 | padding: 10px; | ||
61 | box-sizing: border-box; | ||
62 | height: 49%; | ||
63 | |||
64 | p { | ||
65 | color: #2997E8; | ||
66 | font-size: 14px; | ||
67 | position: relative; | ||
68 | padding-left: 10px; | ||
69 | } | ||
70 | |||
71 | p::before { | ||
72 | position: absolute; | ||
73 | content: ''; | ||
74 | width: 3px; | ||
75 | height: 10px; | ||
76 | background-color: #2997E8; | ||
77 | left: 0; | ||
78 | top: 3px; | ||
79 | } | ||
80 | } | ||
81 | } | ||
82 | </style> | 46 | </style> | ... | ... |
1 | <template> | 1 | <template> |
2 | <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" custom-class="dialogBox dataReporting editDialogBox mainCenter" | 2 | <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" |
3 | :visible.sync="dialogVisible" width="92%"> | 3 | custom-class="dialogBox dataReporting editDialogBox sbdialog commonDialog mainCenter" :visible.sync="dialogVisible" |
4 | width="92%"> | ||
4 | <div slot="title" class="dialog_title" ref="dialogTitle"> | 5 | <div slot="title" class="dialog_title" ref="dialogTitle"> |
5 | {{ title || '详情' }} | 6 | {{ title || '详情' }} |
6 | </div> | 7 | </div> |
... | @@ -111,7 +112,7 @@ | ... | @@ -111,7 +112,7 @@ |
111 | </div> | 112 | </div> |
112 | </div> | 113 | </div> |
113 | <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xml'"> | 114 | <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xml'"> |
114 | <JsonEditor :resultInfo="resultInfo" /> | 115 | <JsonEditor class="editXML" :resultInfo="resultInfo" /> |
115 | </div> | 116 | </div> |
116 | <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xyjg'"> | 117 | <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xyjg'"> |
117 | <Xyjg :form-data='dataReport'></Xyjg> | 118 | <Xyjg :form-data='dataReport'></Xyjg> |
... | @@ -128,218 +129,209 @@ | ... | @@ -128,218 +129,209 @@ |
128 | </template> | 129 | </template> |
129 | 130 | ||
130 | <script> | 131 | <script> |
131 | import axios from "axios"; | 132 | import axios from "axios"; |
132 | import SERVER from '@/api/config' | 133 | import SERVER from '@/api/config' |
133 | const urlHeader = SERVER.SERVERAPI + '/rest/sjsb/DataReport/' | 134 | const urlHeader = SERVER.SERVERAPI + '/rest/sjsb/DataReport/' |
134 | import { mapGetters } from "vuex"; | 135 | import { mapGetters } from "vuex"; |
135 | import JsonEditor from "@/components/JsonEditor.vue"; | 136 | import JsonEditor from "@/components/JsonEditor.vue"; |
136 | import Xyjg from "./Result"; | 137 | import Xyjg from "./Result"; |
137 | import { getTabsDetail, getXml, getReportDetail, restartGenerateXml, edit } from "@/api/dataReport.js"; | 138 | import { getTabsDetail, getXml, getReportDetail, restartGenerateXml, edit } from "@/api/dataReport.js"; |
138 | export default { | 139 | export default { |
139 | components: { JsonEditor, Xyjg }, | 140 | components: { JsonEditor, Xyjg }, |
140 | props: { | 141 | props: { |
141 | title: { | 142 | title: { |
142 | type: String, | 143 | type: String, |
143 | default: '' | 144 | default: '' |
144 | }, | 145 | }, |
145 | tabsActiveName: { | 146 | tabsActiveName: { |
146 | type: String, | 147 | type: String, |
147 | default: '' | 148 | default: '' |
149 | }, | ||
150 | visiableXml: { | ||
151 | type: Boolean, | ||
152 | default: false | ||
153 | } | ||
154 | }, | ||
155 | |||
156 | computed: { | ||
157 | ...mapGetters(["dicData"]), | ||
158 | }, | ||
159 | data () { | ||
160 | return { | ||
161 | key: 0, | ||
162 | resultInfo: '', | ||
163 | |||
164 | titleName: 'sjmx', | ||
165 | // 报文list | ||
166 | bwoptions: [], | ||
167 | dataReport: {}, | ||
168 | index: 0, | ||
169 | bsmYwsjb: "", | ||
170 | ruleFormList: { | ||
171 | BizMsgId: "", // 业务报文ID | ||
172 | ASID: "", // ASID | ||
173 | AreaCode: "", //行政区划编码 | ||
174 | PreEstateNum: "", //上次不动产单元号 | ||
175 | RecType: "", // 业务编码 | ||
176 | RightType: "", // 权利类型 | ||
177 | RegType: "", //登记类型 | ||
178 | CertCount: "", //不动产权证书数量 | ||
179 | createDate: "", //创建时间 | ||
180 | RecFlowID: "", // 业务流水号 | ||
181 | ParcelID: "", //宗地/宗海代码 | ||
182 | ProofCount: "", //证明数量 | ||
183 | EstateNum: "", // 不动产单元号 | ||
184 | RegOrgID: "", // 登记机构 | ||
185 | PreCertID: "", //次不动产权证号/不动产登记证明 | ||
148 | }, | 186 | }, |
149 | visiableXml: { | 187 | images: require("./images/success.gif"), |
150 | type: Boolean, | 188 | dialogVisible: false, |
151 | default: false | 189 | activeName: undefined, |
190 | editItem: "", | ||
191 | headerList: [], | ||
192 | dataTable: "", | ||
193 | }; | ||
194 | }, | ||
195 | methods: { | ||
196 | dicStatus (val, code) { | ||
197 | let data = this.dicData[code], | ||
198 | name = '' | ||
199 | if (data) { | ||
200 | data.map((item) => { | ||
201 | if (item.DCODE == val) { | ||
202 | name = item.DNAME | ||
203 | } | ||
204 | }) | ||
205 | return name | ||
152 | } | 206 | } |
153 | }, | 207 | }, |
154 | 208 | handleTitleTab (val) { | |
155 | computed: { | ||
156 | ...mapGetters(["dicData"]), | ||
157 | }, | 209 | }, |
158 | data () { | 210 | isShow (item) { |
159 | return { | 211 | this.$set(this.bwoptions, 0, { |
160 | key: 0, | 212 | value: item.bizMsgid, |
161 | resultInfo: '', | 213 | label: item.bizMsgid, |
162 | 214 | }) | |
163 | titleName: 'sjmx', | 215 | this.$set(this.bwoptions, 1, { |
164 | // 报文list | 216 | value: item.bizMsgid + 'CBXZ', |
165 | bwoptions: [], | 217 | label: item.bizMsgid + 'CBXZ', |
166 | dataReport: {}, | 218 | }) |
167 | index: 0, | 219 | this.$set(this.bwoptions, 2, { |
168 | bsmYwsjb: "", | 220 | value: item.bizMsgid + 'BBXZ', |
169 | ruleFormList: { | 221 | label: item.bizMsgid + 'BBXZ', |
170 | BizMsgId: "", // 业务报文ID | 222 | }) |
171 | ASID: "", // ASID | 223 | this.titleName = 'sjmx'; |
172 | AreaCode: "", //行政区划编码 | 224 | this.dialogVisible = true; |
173 | PreEstateNum: "", //上次不动产单元号 | 225 | //获取表头列表 |
174 | RecType: "", // 业务编码 | 226 | this._getList(item) |
175 | RightType: "", // 权利类型 | 227 | //不动产数据查询上报详情 |
176 | RegType: "", //登记类型 | 228 | getReportDetail({ bsmReport: item.bsmSjsb || item.bsmReport }).then((res) => { |
177 | CertCount: "", //不动产权证书数量 | 229 | if (res.code == 200) { |
178 | createDate: "", //创建时间 | 230 | this.dataReport = res.result; |
179 | RecFlowID: "", // 业务流水号 | 231 | } |
180 | ParcelID: "", //宗地/宗海代码 | 232 | }) |
181 | ProofCount: "", //证明数量 | 233 | // 获取xml |
182 | EstateNum: "", // 不动产单元号 | 234 | if (this.visiableXml) { |
183 | RegOrgID: "", // 登记机构 | 235 | getXml(item.bizMsgid).then((res) => { |
184 | PreCertID: "", //次不动产权证号/不动产登记证明 | 236 | this.resultInfo = res.message |
185 | }, | 237 | }) |
186 | images: require("./images/success.gif"), | 238 | } |
187 | dialogVisible: false, | 239 | }, |
188 | activeName: undefined, | 240 | // 获取列表接口 |
189 | editItem: "", | 241 | _getList (data) { |
190 | headerList: [], | 242 | getTabsDetail({ bsmReport: data.bsmReport || data.bsmSjsb }).then((res) => { |
191 | dataTable: "", | 243 | if (res.code == 200) { |
192 | }; | 244 | this.headerList = res.result; |
245 | this.activeName = this.tabsActiveName == '' ? res.result[0].soleurl : this.tabsActiveName | ||
246 | this.bsmYwsjb = this.headerList[0].bsmYwsjb; | ||
247 | this.editItem = this.loadView(this.activeName); | ||
248 | } | ||
249 | }); | ||
250 | }, | ||
251 | changeList (val) { | ||
252 | let _index = val.index; | ||
253 | if (_index > this.index) { | ||
254 | } | ||
255 | this.index = _index; | ||
256 | this.bsmYwsjb = this.headerList[val.index].bsmYwsjb; | ||
257 | this.editItem = this.loadView(this.activeName); | ||
258 | // this.diaData.list.forEach((item) => { | ||
259 | // if (item.soleurl == this.activeName) { | ||
260 | // this.dataTable = item.dataTable; | ||
261 | // } | ||
262 | // }); | ||
263 | }, | ||
264 | loadView (view) { | ||
265 | return (r) => | ||
266 | require.ensure([], () => r(require(`@/components/Business/${view}.vue`))); | ||
193 | }, | 267 | }, |
194 | methods: { | 268 | closeDialog () { |
195 | dicStatus (val, code) { | 269 | this.dialogVisible = false; |
196 | let data = this.dicData[code], | 270 | //关闭弹框时将tabs项置空 |
197 | name = '' | 271 | this.editItem = ""; |
198 | if (data) { | 272 | this.headerList = []; |
199 | data.map((item) => { | 273 | }, |
200 | if (item.DCODE == val) { | 274 | /** |
201 | name = item.DNAME | 275 | * @description: 提交 |
276 | * @author: renchao | ||
277 | */ | ||
278 | submitForm: _.debounce(async function () { | ||
279 | let _this = this | ||
280 | // 上报请求头修改 | ||
281 | try { | ||
282 | var headRes = await axios.post('/api' + urlHeader + 'edit', this.dataReport, | ||
283 | { | ||
284 | headers: { | ||
285 | 'Authorization': sessionStorage.getItem("token") || "" | ||
202 | } | 286 | } |
203 | }) | 287 | }) |
204 | return name | 288 | if (headRes.code == 200) { |
289 | _this._getList(_this.dataReport) | ||
205 | } | 290 | } |
206 | }, | 291 | } catch (error) { |
207 | handleTitleTab (val) { | 292 | this.$message({ |
208 | }, | 293 | message: '报文头修改出错', |
209 | isShow (item) { | 294 | type: 'error' |
210 | this.$set(this.bwoptions, 0, { | ||
211 | value: item.bizMsgid, | ||
212 | label: item.bizMsgid, | ||
213 | }) | 295 | }) |
214 | this.$set(this.bwoptions, 1, { | 296 | } |
215 | value: item.bizMsgid + 'CBXZ', | 297 | let listRes = await this.$refs["editItem"].handleUpdateForm() |
216 | label: item.bizMsgid + 'CBXZ', | 298 | if (headRes.data?.code == 200 && listRes == 200) { |
217 | }) | 299 | this.$message({ |
218 | this.$set(this.bwoptions, 2, { | 300 | message: '修改成功', |
219 | value: item.bizMsgid + 'BBXZ', | 301 | type: 'success' |
220 | label: item.bizMsgid + 'BBXZ', | ||
221 | }) | 302 | }) |
222 | this.titleName = 'sjmx'; | 303 | } |
223 | this.dialogVisible = true; | 304 | }, 500), |
224 | //获取表头列表 | 305 | /** |
225 | this._getList(item) | 306 | * @description: 重新上报 |
226 | //不动产数据查询上报详情 | 307 | * @author: renchao |
227 | getReportDetail({ bsmReport: item.bsmSjsb || item.bsmReport }).then((res) => { | 308 | */ |
228 | if (res.code == 200) { | 309 | handleResubmit () { |
229 | this.dataReport = res.result; | 310 | let _this = this |
230 | } | 311 | this.$confirm('重新生成报文,是否上报省厅?', '提示', { |
312 | confirmButtonText: '确定', | ||
313 | cancelButtonText: '取消', | ||
314 | type: 'warning' | ||
315 | }).then(() => { | ||
316 | createXml() | ||
317 | }).catch(() => { | ||
318 | this.$message({ | ||
319 | type: 'info', | ||
320 | message: '已取消删除' | ||
231 | }) | 321 | }) |
232 | // 获取xml | 322 | }) |
233 | if (this.visiableXml) { | 323 | function createXml () { |
234 | getXml(item.bizMsgid).then((res) => { | 324 | restartGenerateXml(_this.dataReport.bsmSjsb || _this.dataReport.bsmReport).then((res) => { |
235 | this.resultInfo = res.message | ||
236 | }) | ||
237 | } | ||
238 | }, | ||
239 | // 获取列表接口 | ||
240 | _getList (data) { | ||
241 | getTabsDetail({ bsmReport: data.bsmReport || data.bsmSjsb }).then((res) => { | ||
242 | if (res.code == 200) { | 325 | if (res.code == 200) { |
243 | this.headerList = res.result; | 326 | _this.resultInfo = res.message |
244 | this.activeName = this.tabsActiveName == '' ? res.result[0].soleurl : this.tabsActiveName | 327 | _this.$message({ |
245 | this.bsmYwsjb = this.headerList[0].bsmYwsjb; | 328 | message: '修改成功', |
246 | this.editItem = this.loadView(this.activeName); | 329 | type: 'success' |
247 | } | ||
248 | }); | ||
249 | }, | ||
250 | changeList (val) { | ||
251 | let _index = val.index; | ||
252 | if (_index > this.index) { | ||
253 | } | ||
254 | this.index = _index; | ||
255 | this.bsmYwsjb = this.headerList[val.index].bsmYwsjb; | ||
256 | this.editItem = this.loadView(this.activeName); | ||
257 | // this.diaData.list.forEach((item) => { | ||
258 | // if (item.soleurl == this.activeName) { | ||
259 | // this.dataTable = item.dataTable; | ||
260 | // } | ||
261 | // }); | ||
262 | }, | ||
263 | loadView (view) { | ||
264 | return (r) => | ||
265 | require.ensure([], () => r(require(`@/components/Business/${view}.vue`))); | ||
266 | }, | ||
267 | closeDialog () { | ||
268 | this.dialogVisible = false; | ||
269 | //关闭弹框时将tabs项置空 | ||
270 | this.editItem = ""; | ||
271 | this.headerList = []; | ||
272 | }, | ||
273 | /** | ||
274 | * @description: 提交 | ||
275 | * @author: renchao | ||
276 | */ | ||
277 | submitForm: _.debounce(async function () { | ||
278 | let _this = this | ||
279 | // 上报请求头修改 | ||
280 | try { | ||
281 | var headRes = await axios.post('/api' + urlHeader + 'edit', this.dataReport, | ||
282 | { | ||
283 | headers: { | ||
284 | 'Authorization': sessionStorage.getItem("token") || "" | ||
285 | } | ||
286 | }) | 330 | }) |
287 | if (headRes.code == 200) { | ||
288 | _this._getList(_this.dataReport) | ||
289 | } | 331 | } |
290 | } catch (error) { | ||
291 | this.$message({ | ||
292 | message: '报文头修改出错', | ||
293 | type: 'error' | ||
294 | }) | ||
295 | } | ||
296 | let listRes = await this.$refs["editItem"].handleUpdateForm() | ||
297 | if (headRes.data?.code == 200 && listRes == 200) { | ||
298 | this.$message({ | ||
299 | message: '修改成功', | ||
300 | type: 'success' | ||
301 | }) | ||
302 | } | ||
303 | }, 500), | ||
304 | /** | ||
305 | * @description: 重新上报 | ||
306 | * @author: renchao | ||
307 | */ | ||
308 | handleResubmit () { | ||
309 | let _this = this | ||
310 | this.$confirm('重新生成报文,是否上报省厅?', '提示', { | ||
311 | confirmButtonText: '确定', | ||
312 | cancelButtonText: '取消', | ||
313 | type: 'warning' | ||
314 | }).then(() => { | ||
315 | createXml() | ||
316 | }).catch(() => { | ||
317 | this.$message({ | ||
318 | type: 'info', | ||
319 | message: '已取消删除' | ||
320 | }) | ||
321 | }) | 332 | }) |
322 | function createXml () { | ||
323 | restartGenerateXml(_this.dataReport.bsmSjsb || _this.dataReport.bsmReport).then((res) => { | ||
324 | if (res.code == 200) { | ||
325 | _this.resultInfo = res.message | ||
326 | _this.$message({ | ||
327 | message: '修改成功', | ||
328 | type: 'success' | ||
329 | }) | ||
330 | } | ||
331 | }) | ||
332 | } | ||
333 | } | 333 | } |
334 | } | 334 | } |
335 | } | 335 | } |
336 | } | ||
336 | </script> | 337 | </script> |
337 | <style scoped lang="scss"> | ||
338 | /deep/.editDialogBox { | ||
339 | .el-dialog__header { | ||
340 | display: flex; | ||
341 | margin-bottom: 10px; | ||
342 | } | ||
343 | } | ||
344 | </style> | ||
345 | ... | ... |
... | @@ -12,15 +12,4 @@ export default { | ... | @@ -12,15 +12,4 @@ export default { |
12 | } | 12 | } |
13 | } | 13 | } |
14 | } | 14 | } |
15 | |||
16 | </script> | ||
17 | |||
18 | <style scoped lang="scss"> | ||
19 | /deep/.el-textarea__inner { | ||
20 | height: 67vh !important; | ||
21 | border: none !important; | ||
22 | background-color: #08346F !important; | ||
23 | color: #ffffff; | ||
24 | border: none !important; | ||
25 | } | ||
26 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
15 | </script> | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -526,6 +526,14 @@ | ... | @@ -526,6 +526,14 @@ |
526 | border-radius: 2px; | 526 | border-radius: 2px; |
527 | border: 1px solid #6BC1FC; | 527 | border: 1px solid #6BC1FC; |
528 | margin: 0 18px 10px 18px; | 528 | margin: 0 18px 10px 18px; |
529 | |||
530 | // .el-form-item__label { | ||
531 | // color: #fff; | ||
532 | // } | ||
533 | |||
534 | // .el-form-item__content { | ||
535 | // color: #fff; | ||
536 | // } | ||
529 | } | 537 | } |
530 | 538 | ||
531 | .item-content-input { | 539 | .item-content-input { |
... | @@ -666,6 +674,14 @@ | ... | @@ -666,6 +674,14 @@ |
666 | 674 | ||
667 | // 登簿日志弹出框 | 675 | // 登簿日志弹出框 |
668 | .entryJournal { | 676 | .entryJournal { |
677 | .el-textarea__inner { | ||
678 | height: 67vh !important; | ||
679 | border: none !important; | ||
680 | background-color: #08346F !important; | ||
681 | color: #ffffff; | ||
682 | border: none !important; | ||
683 | } | ||
684 | |||
669 | .el-tabs__header { | 685 | .el-tabs__header { |
670 | margin: 0; | 686 | margin: 0; |
671 | } | 687 | } |
... | @@ -1112,4 +1128,121 @@ | ... | @@ -1112,4 +1128,121 @@ |
1112 | padding: 0px 120px 0px; | 1128 | padding: 0px 120px 0px; |
1113 | text-align: center; | 1129 | text-align: center; |
1114 | } | 1130 | } |
1115 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1131 | } | ||
1132 | |||
1133 | // 权利人信息样式 | ||
1134 | .itemForm { | ||
1135 | position: relative; | ||
1136 | padding: 10px; | ||
1137 | |||
1138 | /deep/.el-select { | ||
1139 | width: 100%; | ||
1140 | } | ||
1141 | |||
1142 | /deep/.el-form-item__error { | ||
1143 | right: 25px; | ||
1144 | top: 15px; | ||
1145 | text-align: right; | ||
1146 | pointer-events: none; | ||
1147 | } | ||
1148 | |||
1149 | /deep/.el-date-editor { | ||
1150 | width: 100%; | ||
1151 | } | ||
1152 | |||
1153 | /deep/.el-date-editor--date { | ||
1154 | width: 100%; | ||
1155 | } | ||
1156 | |||
1157 | /deep/.el-cascader { | ||
1158 | width: 100%; | ||
1159 | } | ||
1160 | |||
1161 | // table 样式 | ||
1162 | /deep/.el-form-item__label { | ||
1163 | border-right: none; | ||
1164 | text-align: center; | ||
1165 | padding: 0; | ||
1166 | color: #05bbdb; | ||
1167 | line-height: 16px; | ||
1168 | font-size: 12px; | ||
1169 | margin-top: 8px !important; | ||
1170 | } | ||
1171 | |||
1172 | /deep/.el-form-item__content { | ||
1173 | display: flex; | ||
1174 | margin-right: -1px; | ||
1175 | } | ||
1176 | |||
1177 | .obligee-item-name, | ||
1178 | .receivingInfo-item-name, | ||
1179 | .auditInfo-item-name { | ||
1180 | background: url("~@/image/itembg.png") no-repeat; | ||
1181 | background-size: 100% 100%; | ||
1182 | color: #FFFFFF; | ||
1183 | } | ||
1184 | |||
1185 | /deep/.el-textarea__inner { | ||
1186 | margin: 5px; | ||
1187 | width: 96%; | ||
1188 | background: none; | ||
1189 | color: #FFFFFF; | ||
1190 | border-radius: 2px; | ||
1191 | border: 1px solid #6BC1FC; | ||
1192 | } | ||
1193 | |||
1194 | /deep/.el-input-number { | ||
1195 | width: 100%; | ||
1196 | } | ||
1197 | |||
1198 | /deep/.el-input-number__increase { | ||
1199 | background: #05275B; | ||
1200 | color: #FFFFFF; | ||
1201 | border: none; | ||
1202 | right: 7px; | ||
1203 | top: 2px; | ||
1204 | } | ||
1205 | |||
1206 | /deep/.el-input-number__decrease { | ||
1207 | background: #05275B; | ||
1208 | color: #FFFFFF; | ||
1209 | border: none; | ||
1210 | right: 7px; | ||
1211 | bottom: 10px; | ||
1212 | } | ||
1213 | |||
1214 | /deep/.el-input__inner { | ||
1215 | margin: 5px; | ||
1216 | width: 96%; | ||
1217 | background: #05275B; | ||
1218 | border-radius: 2px; | ||
1219 | border: 1px solid #6BC1FC; | ||
1220 | text-align: left; | ||
1221 | |||
1222 | } | ||
1223 | |||
1224 | /deep/.el-form-item { | ||
1225 | margin-bottom: 0; | ||
1226 | margin-top: -1px; | ||
1227 | } | ||
1228 | |||
1229 | .item-label { | ||
1230 | display: flex; | ||
1231 | align-items: flex-end; | ||
1232 | flex-direction: column; | ||
1233 | font-size: 12px; | ||
1234 | flex: 0 0 90px; | ||
1235 | margin-right: 3px; | ||
1236 | |||
1237 | p { | ||
1238 | line-height: 16px; | ||
1239 | white-space: nowrap; | ||
1240 | text-align: right; | ||
1241 | } | ||
1242 | |||
1243 | p:nth-child(1) { | ||
1244 | position: relative; | ||
1245 | right: 5px; | ||
1246 | } | ||
1247 | } | ||
1248 | } | ... | ... |
... | @@ -85,9 +85,7 @@ input[type="number"] { | ... | @@ -85,9 +85,7 @@ input[type="number"] { |
85 | // to fixed https://github.com/ElemeFE/element/issues/2461 | 85 | // to fixed https://github.com/ElemeFE/element/issues/2461 |
86 | // refine element ui upload | 86 | // refine element ui upload |
87 | .el-input.is-disabled .el-input__inner { | 87 | .el-input.is-disabled .el-input__inner { |
88 | color: #FFFFFF !important; | ||
89 | background-color: transparent !important; | 88 | background-color: transparent !important; |
90 | border: 1px solid #224C7C !important; | ||
91 | } | 89 | } |
92 | 90 | ||
93 | .upload-container { | 91 | .upload-container { | ... | ... |
... | @@ -32,9 +32,9 @@ | ... | @@ -32,9 +32,9 @@ |
32 | padding: 15px; | 32 | padding: 15px; |
33 | } | 33 | } |
34 | 34 | ||
35 | .el-dialog__close { | 35 | // .el-dialog__close { |
36 | font-size: 0; | 36 | // font-size: 0; |
37 | } | 37 | // } |
38 | 38 | ||
39 | .el-form-item { | 39 | .el-form-item { |
40 | display: flex; | 40 | display: flex; |
... | @@ -150,8 +150,31 @@ | ... | @@ -150,8 +150,31 @@ |
150 | 150 | ||
151 | // 角色管理人员菜单配置弹框样式 | 151 | // 角色管理人员菜单配置弹框样式 |
152 | .roleconfiguration { | 152 | .roleconfiguration { |
153 | .el-dialog__close { | 153 | .el-tabs__item { |
154 | font-size: 16px !important; | 154 | color: #cef8ff !important; |
155 | // background: url("~@/image/tabitem.png") no-repeat; | ||
156 | // background-size: 100% 100%; | ||
157 | background-color: #3D59C4; | ||
158 | border-radius: 3px; | ||
159 | } | ||
160 | |||
161 | .el-dialog__headerbtn .el-dialog__close { | ||
162 | font-size: 20px; | ||
163 | color: white; | ||
164 | } | ||
165 | |||
166 | .el-dialog__header { | ||
167 | width: 100%; | ||
168 | display: flex; | ||
169 | justify-content: center; | ||
170 | font-size: 24px; | ||
171 | background-color: #3D59C4; | ||
172 | |||
173 | .dialog_title { | ||
174 | |||
175 | color: white; | ||
176 | margin-bottom: 10px; | ||
177 | } | ||
155 | } | 178 | } |
156 | 179 | ||
157 | } | 180 | } |
... | @@ -173,7 +196,6 @@ | ... | @@ -173,7 +196,6 @@ |
173 | width: 2px; | 196 | width: 2px; |
174 | position: relative; | 197 | position: relative; |
175 | left: 10px; | 198 | left: 10px; |
176 | color: #FFFFFF; | ||
177 | } | 199 | } |
178 | 200 | ||
179 | .el-breadcrumb__inner { | 201 | .el-breadcrumb__inner { |
... | @@ -204,233 +226,6 @@ | ... | @@ -204,233 +226,6 @@ |
204 | font-weight: normal; | 226 | font-weight: normal; |
205 | } | 227 | } |
206 | 228 | ||
207 | // .button { | ||
208 | // width: 76px; | ||
209 | // height: 32px; | ||
210 | // color: #ffffff; | ||
211 | // cursor: pointer; | ||
212 | // border: 0; | ||
213 | // font-size: 12px; | ||
214 | // } | ||
215 | |||
216 | // // 按钮样式 | ||
217 | // .cx { | ||
218 | // background: url("../image/btn.png") no-repeat 0 -34px; | ||
219 | // background-size: cover; | ||
220 | // } | ||
221 | |||
222 | // .cx:hover { | ||
223 | // background: url("../image/btn.png") no-repeat 0 -34px; | ||
224 | // background-size: cover; | ||
225 | // color: white; | ||
226 | // } | ||
227 | |||
228 | // .cz { | ||
229 | // background: url("../image/btn.png") no-repeat 0 0; | ||
230 | // background-size: cover; | ||
231 | // } | ||
232 | |||
233 | // .cz:hover { | ||
234 | // background: url("../image/btn.png") no-repeat 0 0; | ||
235 | // background-size: cover; | ||
236 | // color: white; | ||
237 | // } | ||
238 | |||
239 | // .el-button:focus { | ||
240 | // background: none; | ||
241 | // } | ||
242 | |||
243 | // .cx:focus { | ||
244 | // background: url("../image/btn.png") no-repeat 0 -34px; | ||
245 | // background-size: cover; | ||
246 | // color: white; | ||
247 | // } | ||
248 | |||
249 | // .cz:focus { | ||
250 | // background: url("../image/btn.png") no-repeat 0 0; | ||
251 | // background-size: cover; | ||
252 | // color: white; | ||
253 | // } | ||
254 | |||
255 | // 监管弹框样式 | ||
256 | .dialogBox { | ||
257 | overflow: hidden; | ||
258 | // min-height: 90vh; | ||
259 | |||
260 | .dialog_title { | ||
261 | // display: flex; | ||
262 | // position: relative; | ||
263 | // font-size: 22px; | ||
264 | // top: -10px; | ||
265 | // width: 38%; | ||
266 | // height: 40px; | ||
267 | // margin-left: 28px; | ||
268 | // justify-content: center; | ||
269 | // white-space: nowrap; | ||
270 | |||
271 | b { | ||
272 | // font-weight: 200; | ||
273 | // display: inline-block; | ||
274 | // position: relative; | ||
275 | font-size: 24px; | ||
276 | // top: -11px; | ||
277 | // width: 38%; | ||
278 | // height: 40px; | ||
279 | // margin-left: 28px; | ||
280 | // // @include flex-center; | ||
281 | display: flex; | ||
282 | justify-content: center; | ||
283 | } | ||
284 | } | ||
285 | |||
286 | .dialog_full { | ||
287 | position: absolute; | ||
288 | top: 0; | ||
289 | right: 30px; | ||
290 | } | ||
291 | |||
292 | .el-dialog__body { | ||
293 | max-height: 88vh; | ||
294 | overflow-x: hidden; | ||
295 | overflow-y: hidden; | ||
296 | } | ||
297 | |||
298 | .dialog_footer { | ||
299 | margin-bottom: 8px; | ||
300 | display: flex; | ||
301 | justify-content: center; | ||
302 | align-items: center; | ||
303 | } | ||
304 | |||
305 | .dialogBox-content { | ||
306 | height: auto | ||
307 | } | ||
308 | |||
309 | .editDialogBox-box { | ||
310 | border-radius: 3px; | ||
311 | border: 1px solid #6BC1FC; | ||
312 | |||
313 | .el-form-item__label { | ||
314 | color: #000000; | ||
315 | } | ||
316 | |||
317 | .el-form-item__content { | ||
318 | color: #000000; | ||
319 | } | ||
320 | } | ||
321 | |||
322 | .item-content-input { | ||
323 | .el-input__inner { | ||
324 | border: none !important; | ||
325 | text-align: right; | ||
326 | } | ||
327 | } | ||
328 | |||
329 | .regularHeight { | ||
330 | display: flex; | ||
331 | flex-direction: column; | ||
332 | height: 87vh; | ||
333 | |||
334 | .editDialogBox-con, | ||
335 | .JsonEditor { | ||
336 | flex: 1; | ||
337 | height: 100%; | ||
338 | } | ||
339 | } | ||
340 | |||
341 | .dialog-from { | ||
342 | padding: 13px; | ||
343 | border-radius: 2px; | ||
344 | box-sizing: border-box; | ||
345 | |||
346 | .el-row { | ||
347 | display: flex; | ||
348 | flex-wrap: nowrap; | ||
349 | } | ||
350 | |||
351 | .el-col { | ||
352 | line-height: 18px; | ||
353 | display: flex; | ||
354 | align-items: center; | ||
355 | margin-bottom: 3px; | ||
356 | color: #000000; | ||
357 | border-radius: 2px; | ||
358 | border: 1px solid #224C7C; | ||
359 | |||
360 | span { | ||
361 | display: inline-block; | ||
362 | padding: 3px; | ||
363 | border-radius: 3px; | ||
364 | overflow: hidden; | ||
365 | white-space: nowrap; | ||
366 | text-align: left; | ||
367 | color: #02D9FD; | ||
368 | } | ||
369 | |||
370 | p { | ||
371 | flex: 1; | ||
372 | width: 100%; | ||
373 | padding-left: 5px; | ||
374 | line-height: 20px; | ||
375 | color: #000307; | ||
376 | cursor: not-allowed; | ||
377 | white-space: nowrap; | ||
378 | margin-right: 5px; | ||
379 | text-align: right; | ||
380 | } | ||
381 | } | ||
382 | |||
383 | } | ||
384 | |||
385 | .el-textarea__inner { | ||
386 | // border: 1px solid #224C7C; | ||
387 | // margin: 0 0 10px 0 !important; | ||
388 | // width: 100% !important; | ||
389 | // color: #dadde3 !important; | ||
390 | // background: transparent !important; | ||
391 | } | ||
392 | |||
393 | .el-input__inner { | ||
394 | // border: 1px solid #224C7C !important; | ||
395 | // margin: 0 !important; | ||
396 | // width: 100% !important; | ||
397 | // color: #111111 !important; | ||
398 | // background: transparent !important; | ||
399 | } | ||
400 | |||
401 | .el-dialog__header { | ||
402 | color: #070000; | ||
403 | // height: 46px !important; | ||
404 | // width: 97%; | ||
405 | // margin: 0 auto; | ||
406 | // margin-top: 2px; | ||
407 | } | ||
408 | |||
409 | .el-dialog__body { | ||
410 | padding-top: 0; | ||
411 | padding-bottom: 0; | ||
412 | // height: 95vh; | ||
413 | } | ||
414 | |||
415 | // .el-dialog__headerbtn { | ||
416 | // right: 40px; | ||
417 | // top: 33px; | ||
418 | |||
419 | // &:hover { | ||
420 | // // background: rgb(4, 172, 250); | ||
421 | // right: 40px; | ||
422 | // top: 33px; | ||
423 | // } | ||
424 | // } | ||
425 | |||
426 | |||
427 | .el-form-item { | ||
428 | display: flex; | ||
429 | width: 100%; | ||
430 | } | ||
431 | |||
432 | } | ||
433 | |||
434 | .contentCenter { | 229 | .contentCenter { |
435 | position: absolute; | 230 | position: absolute; |
436 | top: 50%; | 231 | top: 50%; |
... | @@ -451,9 +246,24 @@ | ... | @@ -451,9 +246,24 @@ |
451 | } | 246 | } |
452 | 247 | ||
453 | // 登簿日志弹出框 | 248 | // 登簿日志弹出框 |
454 | .entryJournal { | 249 | .commonDialog { |
250 | /deep/.dialog-from_header { | ||
251 | margin: 0 !important; | ||
252 | } | ||
253 | |||
254 | .el-dialog__headerbtn .el-dialog__close { | ||
255 | font-size: 20px; | ||
256 | color: white; | ||
257 | } | ||
258 | |||
259 | .el-dialog__header { | ||
260 | text-align: center; | ||
261 | font-size: 24px; | ||
262 | background-color: #3D59C4; | ||
263 | } | ||
264 | |||
455 | .el-tabs__header { | 265 | .el-tabs__header { |
456 | margin: 0; | 266 | margin: 0 !important; |
457 | } | 267 | } |
458 | 268 | ||
459 | .el-dialog { | 269 | .el-dialog { |
... | @@ -464,6 +274,7 @@ | ... | @@ -464,6 +274,7 @@ |
464 | .el-dialog__body { | 274 | .el-dialog__body { |
465 | display: flex; | 275 | display: flex; |
466 | flex-direction: column; | 276 | flex-direction: column; |
277 | padding-top: 0px; | ||
467 | padding-bottom: 30px; | 278 | padding-bottom: 30px; |
468 | height: 100%; | 279 | height: 100%; |
469 | flex: 1; | 280 | flex: 1; |
... | @@ -473,30 +284,36 @@ | ... | @@ -473,30 +284,36 @@ |
473 | .regularHeight { | 284 | .regularHeight { |
474 | display: flex; | 285 | display: flex; |
475 | flex-direction: column; | 286 | flex-direction: column; |
476 | height: 87vh; | 287 | height: 80vh; |
477 | margin-bottom: 5px; | 288 | margin-bottom: 5px; |
478 | 289 | ||
479 | .editDialogBox-con, | 290 | .editDialogBox-con, |
480 | .JsonEditor { | 291 | .JsonEditor { |
481 | flex: 1; | 292 | flex: 1; |
482 | } | 293 | } |
483 | } | ||
484 | 294 | ||
485 | .d-center {} | 295 | .editXML { |
296 | border: 1px solid blue; | ||
297 | margin-top: 10px; | ||
298 | |||
299 | .el-textarea__inner { | ||
300 | height: 68vh !important; | ||
301 | } | ||
302 | } | ||
303 | } | ||
486 | 304 | ||
487 | .dialog_title { | 305 | .dialog_title { |
488 | top: -6px | 306 | color: white; |
307 | margin-bottom: 10px; | ||
489 | } | 308 | } |
490 | 309 | ||
491 | .el-tabs__item { | 310 | .el-tabs__item { |
492 | color: #CEF8FF !important; | 311 | color: #CEF8FF !important; |
493 | 312 | background-color: none; | |
494 | display: flex; | 313 | display: flex; |
495 | flex-direction: row; | 314 | flex-direction: row; |
496 | justify-content: center; | 315 | justify-content: center; |
497 | background: url("~@/image/tabitem.png") no-repeat; | 316 | border-radius: 3px; |
498 | background-size: 100% 100%; | ||
499 | border: none !important; | ||
500 | } | 317 | } |
501 | 318 | ||
502 | .el-tabs__nav { | 319 | .el-tabs__nav { |
... | @@ -513,8 +330,7 @@ | ... | @@ -513,8 +330,7 @@ |
513 | } | 330 | } |
514 | 331 | ||
515 | .el-tabs__item.is-active { | 332 | .el-tabs__item.is-active { |
516 | background: url("~@/image/tabitemse.png") no-repeat; | 333 | background-color: #3D59C4; |
517 | background-size: 100% 100%; | ||
518 | } | 334 | } |
519 | 335 | ||
520 | .from-clues-content { | 336 | .from-clues-content { |
... | @@ -526,13 +342,15 @@ | ... | @@ -526,13 +342,15 @@ |
526 | .editDialogBox-box { | 342 | .editDialogBox-box { |
527 | position: relative; | 343 | position: relative; |
528 | top: 10px; | 344 | top: 10px; |
529 | height: 100%; | ||
530 | } | 345 | } |
531 | 346 | ||
532 | .dialog-from { | 347 | .dialog-from { |
533 | padding-top: 0; | 348 | padding-top: 0; |
534 | 349 | ||
535 | .el-col { | 350 | .el-col { |
351 | height: 40px; | ||
352 | line-height: 40px; | ||
353 | display: flex; | ||
536 | justify-content: space-between; | 354 | justify-content: space-between; |
537 | } | 355 | } |
538 | 356 | ||
... | @@ -553,23 +371,62 @@ | ... | @@ -553,23 +371,62 @@ |
553 | } | 371 | } |
554 | 372 | ||
555 | &_header { | 373 | &_header { |
556 | margin: 0 -5px !important; | 374 | // margin: 0 -5px !important; |
557 | } | 375 | } |
558 | 376 | ||
559 | &_title { | 377 | &_title { |
560 | font-size: 14px; | 378 | font-size: 14px; |
561 | color: #d7eaee; | 379 | font-weight: 600; |
380 | color: #000000; | ||
562 | margin: 3px 0; | 381 | margin: 3px 0; |
563 | } | 382 | } |
564 | } | 383 | } |
565 | } | 384 | } |
566 | 385 | ||
386 | .entryJournal { | ||
387 | .el-textarea__inner { | ||
388 | height: 67vh !important; | ||
389 | border: none !important; | ||
390 | background-color: #ffffff !important; | ||
391 | color: #000000 !important; | ||
392 | } | ||
393 | } | ||
394 | |||
395 | // 上报日志弹出框 | ||
396 | .sbdialog { | ||
397 | .el-textarea__inner { | ||
398 | height: 30vh !important; | ||
399 | border: none !important; | ||
400 | background-color: #ffffff !important; | ||
401 | color: #000000 !important; | ||
402 | } | ||
403 | } | ||
404 | |||
567 | // 数据上报弹出框 | 405 | // 数据上报弹出框 |
568 | .dataReporting { | 406 | .dataReporting { |
407 | .el-dialog__header { | ||
408 | width: 100%; | ||
409 | display: flex; | ||
410 | justify-content: center; | ||
411 | font-size: 24px; | ||
412 | background-color: #3D59C4; | ||
413 | |||
414 | .dialog_title { | ||
415 | |||
416 | color: white; | ||
417 | margin-bottom: 10px; | ||
418 | } | ||
419 | } | ||
420 | |||
421 | .el-dialog__headerbtn .el-dialog__close { | ||
422 | font-size: 20px; | ||
423 | color: white; | ||
424 | } | ||
425 | |||
569 | .el-dialog__body { | 426 | .el-dialog__body { |
427 | padding-top: 0px; | ||
570 | display: flex; | 428 | display: flex; |
571 | flex-direction: column; | 429 | flex-direction: column; |
572 | padding-bottom: 30px; | ||
573 | } | 430 | } |
574 | 431 | ||
575 | .el-tabs { | 432 | .el-tabs { |
... | @@ -604,26 +461,63 @@ | ... | @@ -604,26 +461,63 @@ |
604 | 461 | ||
605 | .el-tabs__item { | 462 | .el-tabs__item { |
606 | color: #cef8ff !important; | 463 | color: #cef8ff !important; |
607 | |||
608 | display: flex; | 464 | display: flex; |
609 | flex-direction: row; | 465 | flex-direction: row; |
610 | justify-content: center; | 466 | justify-content: center; |
611 | background: url("~@/image/tabitem.png") no-repeat; | 467 | background-color: #3D59C4; |
612 | background-size: 100% 100%; | 468 | border-radius: 3px; |
613 | border: none !important; | ||
614 | } | 469 | } |
615 | 470 | ||
616 | .obligee-item-name { | 471 | .obligee-item-name { |
617 | background: #05275b; | 472 | // background: url("~@/image/itembg.png") no-repeat; |
618 | color: #ffffff; | 473 | // background-size: 100% 100%; |
619 | background: url("~@/image/itembg.png") no-repeat; | 474 | background-color: #3D59C4; |
620 | background-size: 100% 100%; | 475 | border-radius: 3px; |
476 | border: 1px solid blue !important; | ||
621 | } | 477 | } |
622 | 478 | ||
623 | .el-tabs__nav-scroll { | 479 | .el-tabs__nav-scroll { |
624 | background: none; | 480 | background: none; |
625 | } | 481 | } |
626 | 482 | ||
483 | .result { | ||
484 | padding: 15px; | ||
485 | height: 100%; | ||
486 | |||
487 | /deep/.el-textarea__inner { | ||
488 | height: 50%; | ||
489 | color: #ffffff; | ||
490 | border: none !important; | ||
491 | color: #ffffff; | ||
492 | } | ||
493 | |||
494 | &-con { | ||
495 | background: #ffffff; | ||
496 | border: 1px solid blue; | ||
497 | border-radius: 2px; | ||
498 | padding: 10px; | ||
499 | box-sizing: border-box; | ||
500 | height: 49%; | ||
501 | |||
502 | p { | ||
503 | color: #2997E8; | ||
504 | font-size: 14px; | ||
505 | position: relative; | ||
506 | padding-left: 10px; | ||
507 | } | ||
508 | |||
509 | p::before { | ||
510 | position: absolute; | ||
511 | content: ''; | ||
512 | width: 3px; | ||
513 | height: 10px; | ||
514 | background-color: #2997E8; | ||
515 | left: 0; | ||
516 | top: 3px; | ||
517 | } | ||
518 | } | ||
519 | } | ||
520 | |||
627 | .el-tabs__nav { | 521 | .el-tabs__nav { |
628 | display: flex; | 522 | display: flex; |
629 | border: none !important; | 523 | border: none !important; |
... | @@ -649,8 +543,8 @@ | ... | @@ -649,8 +543,8 @@ |
649 | } | 543 | } |
650 | 544 | ||
651 | .el-tabs__item.is-active { | 545 | .el-tabs__item.is-active { |
652 | background: url("~@/image/tabitemse.png") no-repeat; | 546 | background-color: #1c3294; |
653 | background-size: 100% 100%; | 547 | color: #FFFFFF; |
654 | } | 548 | } |
655 | 549 | ||
656 | .success-images { | 550 | .success-images { |
... | @@ -709,6 +603,9 @@ | ... | @@ -709,6 +603,9 @@ |
709 | padding-top: 0; | 603 | padding-top: 0; |
710 | 604 | ||
711 | .el-col { | 605 | .el-col { |
606 | height: 40px; | ||
607 | line-height: 40px; | ||
608 | display: flex; | ||
712 | justify-content: space-between; | 609 | justify-content: space-between; |
713 | } | 610 | } |
714 | 611 | ||
... | @@ -754,28 +651,34 @@ | ... | @@ -754,28 +651,34 @@ |
754 | } | 651 | } |
755 | } | 652 | } |
756 | 653 | ||
757 | // 人员管理上下移动按钮样式 | 654 | // // 人员管理上下移动按钮样式 |
758 | .el-button.is-disabled.el-button--text { | 655 | // .el-button.is-disabled.el-button--text { |
759 | width: 64px; | 656 | // width: 64px; |
760 | height: 28px; | 657 | // height: 28px; |
761 | background: rgba(255, 255, 255, 0.1); | 658 | // background: rgba(255, 255, 255, 0.1); |
762 | border-radius: 16px; | 659 | // border-radius: 16px; |
763 | } | 660 | // } |
764 | 661 | ||
765 | // 人员管理角色管理菜单管理修改新增弹框样式 | 662 | // 人员管理角色管理菜单管理修改新增弹框样式 |
766 | .PersonnelDialog { | 663 | .PersonnelDialog { |
664 | .el-dialog__headerbtn .el-dialog__close { | ||
665 | font-size: 20px; | ||
666 | color: white; | ||
667 | } | ||
767 | 668 | ||
768 | .el-dialog__header { | 669 | .el-dialog__header { |
769 | text-align: center; | 670 | text-align: center; |
770 | margin-bottom: 10px; | 671 | margin-bottom: 10px; |
672 | font-size: 24px; | ||
673 | background-color: #3D59C4; | ||
771 | 674 | ||
772 | .el-dialog__title { | 675 | .dialog_title { |
773 | color: rgb(0, 0, 0); | 676 | b { |
774 | } | 677 | color: white !important; |
775 | } | 678 | } |
776 | 679 | ||
777 | .el-form-item__label { | 680 | margin-bottom: 10px; |
778 | color: rgb(0, 0, 0); | 681 | } |
779 | } | 682 | } |
780 | 683 | ||
781 | .el-input__inner { | 684 | .el-input__inner { |
... | @@ -793,29 +696,8 @@ | ... | @@ -793,29 +696,8 @@ |
793 | // color: rgb(0, 0, 0); | 696 | // color: rgb(0, 0, 0); |
794 | } | 697 | } |
795 | 698 | ||
796 | .el-form-item__label { | ||
797 | color: rgb(2, 0, 0); | ||
798 | } | ||
799 | |||
800 | .el-dialog__header { | 699 | .el-dialog__header { |
801 | .dialog_title { | ||
802 | // display: -webkit-box; | ||
803 | // display: -ms-flexbox; | ||
804 | // display: flex; | ||
805 | // position: relative; | ||
806 | // top: -7px; | ||
807 | // width: 29%; | ||
808 | // height: 40px; | ||
809 | // margin-left: 28px; | ||
810 | // -webkit-box-pack: center; | ||
811 | // -ms-flex-pack: center; | ||
812 | // justify-content: center; | ||
813 | // white-space: nowrap; | ||
814 | 700 | ||
815 | b { | ||
816 | font-size: 16px; | ||
817 | } | ||
818 | } | ||
819 | 701 | ||
820 | .el-dialog__headerbtn { | 702 | .el-dialog__headerbtn { |
821 | right: 20px !important; | 703 | right: 20px !important; |
... | @@ -895,4 +777,144 @@ | ... | @@ -895,4 +777,144 @@ |
895 | padding: 0px 120px 0px; | 777 | padding: 0px 120px 0px; |
896 | text-align: center; | 778 | text-align: center; |
897 | } | 779 | } |
898 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
780 | } | ||
781 | |||
782 | // 权利人信息样式 | ||
783 | .itemForm { | ||
784 | position: relative; | ||
785 | padding: 10px; | ||
786 | |||
787 | .el-select { | ||
788 | width: 100%; | ||
789 | } | ||
790 | |||
791 | .el-form-item__error { | ||
792 | right: 25px; | ||
793 | top: 15px; | ||
794 | text-align: right; | ||
795 | pointer-events: none; | ||
796 | } | ||
797 | |||
798 | .el-date-editor { | ||
799 | width: 100%; | ||
800 | } | ||
801 | |||
802 | .el-date-editor--date { | ||
803 | width: 100%; | ||
804 | } | ||
805 | |||
806 | .el-cascader { | ||
807 | width: 100%; | ||
808 | } | ||
809 | |||
810 | // table 样式 | ||
811 | .el-form-item__label { | ||
812 | border-right: none; | ||
813 | text-align: center; | ||
814 | padding: 0; | ||
815 | line-height: 16px; | ||
816 | font-size: 12px; | ||
817 | text-align: right; | ||
818 | margin-top: 8px !important; | ||
819 | } | ||
820 | |||
821 | .el-form-item__content { | ||
822 | display: flex; | ||
823 | margin-right: -1px; | ||
824 | } | ||
825 | |||
826 | .obligee-item-name, | ||
827 | .receivingInfo-item-name, | ||
828 | .auditInfo-item-name { | ||
829 | background-color: #3D59C4; | ||
830 | border-radius: 3px; | ||
831 | border: 1px solid blue !important; | ||
832 | color: #FFFFFF; | ||
833 | } | ||
834 | |||
835 | .el-textarea__inner { | ||
836 | margin: 5px; | ||
837 | width: 96%; | ||
838 | background: none; | ||
839 | color: #FFFFFF; | ||
840 | border-radius: 2px; | ||
841 | border: 1px solid #6BC1FC; | ||
842 | } | ||
843 | |||
844 | .el-input-number { | ||
845 | width: 100%; | ||
846 | } | ||
847 | |||
848 | .el-input-number__increase { | ||
849 | // background: #05275B; | ||
850 | color: #FFFFFF; | ||
851 | border: none; | ||
852 | right: 7px; | ||
853 | top: 2px; | ||
854 | } | ||
855 | |||
856 | .el-input-number__decrease { | ||
857 | // background: #05275B; | ||
858 | color: #FFFFFF; | ||
859 | border: none; | ||
860 | right: 7px; | ||
861 | bottom: 10px; | ||
862 | } | ||
863 | |||
864 | .el-input__inner { | ||
865 | margin: 5px; | ||
866 | width: 96%; | ||
867 | // background: #05275B; | ||
868 | border-radius: 2px; | ||
869 | border: 1px solid #6BC1FC; | ||
870 | text-align: left; | ||
871 | |||
872 | } | ||
873 | |||
874 | .el-form-item { | ||
875 | margin-bottom: 0; | ||
876 | margin-top: -1px; | ||
877 | } | ||
878 | |||
879 | .item-label { | ||
880 | display: flex; | ||
881 | align-items: flex-end; | ||
882 | flex-direction: column; | ||
883 | font-size: 12px; | ||
884 | flex: 0 0 90px; | ||
885 | margin-right: 3px; | ||
886 | |||
887 | p { | ||
888 | line-height: 16px; | ||
889 | white-space: nowrap; | ||
890 | text-align: right; | ||
891 | } | ||
892 | |||
893 | p:nth-child(1) { | ||
894 | position: relative; | ||
895 | right: 5px; | ||
896 | } | ||
897 | } | ||
898 | } | ||
899 | |||
900 | // 字典管理弹框 | ||
901 | .dictionary { | ||
902 | .el-dialog__header { | ||
903 | width: 100%; | ||
904 | display: flex; | ||
905 | justify-content: center; | ||
906 | font-size: 24px; | ||
907 | background-color: #3D59C4; | ||
908 | |||
909 | .dialog_title { | ||
910 | |||
911 | color: white; | ||
912 | margin-bottom: 10px; | ||
913 | } | ||
914 | } | ||
915 | |||
916 | .el-dialog__headerbtn .el-dialog__close { | ||
917 | font-size: 20px; | ||
918 | color: white; | ||
919 | } | ||
920 | } | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-03-20 14:45:57 | 4 | * @LastEditTime: 2023-03-28 14:11:01 |
5 | --> | 5 | --> |
6 | <!-- | 6 | <!-- |
7 | 功能:结果 | 7 | 功能:结果 |
... | @@ -18,45 +18,45 @@ | ... | @@ -18,45 +18,45 @@ |
18 | </div> | 18 | </div> |
19 | </template> | 19 | </template> |
20 | <script> | 20 | <script> |
21 | import { getReceiveDataReportResult } from "@/api/dataReport.js"; | 21 | import { getReceiveDataReportResult } from "@/api/dataReport.js"; |
22 | export default { | 22 | export default { |
23 | components: {}, | 23 | components: {}, |
24 | props: { | 24 | props: { |
25 | formData: { | 25 | formData: { |
26 | type: Object, | 26 | type: Object, |
27 | default: {} | 27 | default: {} |
28 | } | ||
29 | }, | ||
30 | data () { | ||
31 | return { | ||
32 | REPMSGXML: '', | ||
33 | ERRORINFO: '', | ||
34 | } | ||
35 | }, | ||
36 | created () { | ||
37 | getReceiveDataReportResult(this.formData.bsmReport).then(res => { | ||
38 | let data = res.result | ||
39 | this.REPMSGXML = data.REPMSGXML | ||
40 | this.ERRORINFO = data.ERRORINFO | ||
41 | }) | ||
28 | } | 42 | } |
29 | }, | ||
30 | data () { | ||
31 | return { | ||
32 | REPMSGXML: '', | ||
33 | ERRORINFO: '', | ||
34 | } | ||
35 | }, | ||
36 | created () { | ||
37 | getReceiveDataReportResult(this.formData.bsmReport).then(res => { | ||
38 | let data = res.result | ||
39 | this.REPMSGXML = data.REPMSGXML | ||
40 | this.ERRORINFO = data.ERRORINFO | ||
41 | }) | ||
42 | } | 43 | } |
43 | } | ||
44 | </script> | 44 | </script> |
45 | <style scoped lang='scss'> | 45 | <style scoped lang='scss'> |
46 | .result { | 46 | .result { |
47 | padding: 15px; | 47 | padding: 15px; |
48 | 48 | ||
49 | p { | 49 | p { |
50 | color: #ffffff; | 50 | color: #ffffff; |
51 | line-height: 26px; | 51 | line-height: 26px; |
52 | font-size: 18px; | 52 | font-size: 18px; |
53 | } | ||
53 | } | 54 | } |
54 | } | ||
55 | 55 | ||
56 | /deep/.el-textarea__inner { | ||
57 | min-height: 33vh !important; | ||
58 | background-color: #08346F !important; | ||
59 | color: #ffffff; | ||
60 | border: none !important; | ||
61 | } | ||
62 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
56 | /deep/.el-textarea__inner { | ||
57 | min-height: 33vh !important; | ||
58 | background-color: #08346f !important; | ||
59 | color: #ffffff; | ||
60 | border: none !important; | ||
61 | } | ||
62 | </style> | ... | ... |
1 | <template> | 1 | <template> |
2 | <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" custom-class="dialogBox entryJournal editDialogBox mainCenter" | 2 | <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" |
3 | :visible.sync="dialogVisible" width="90%"> | 3 | custom-class="dialogBox entryJournal commonDialog editDialogBox mainCenter" :visible.sync="dialogVisible" width="90%"> |
4 | <div slot="title" class="dialog_title" ref="dialogTitle"> | 4 | <div slot="title" class="dialog_title" ref="dialogTitle"> |
5 | {{ title || '登薄日志' }} | 5 | {{ title || '登薄日志' }} |
6 | </div> | 6 | </div> |
... | @@ -193,270 +193,269 @@ | ... | @@ -193,270 +193,269 @@ |
193 | </template> | 193 | </template> |
194 | 194 | ||
195 | <script> | 195 | <script> |
196 | import { sbdata, sendThis } from './data/sbdata' | 196 | import { sbdata, sendThis } from './data/sbdata' |
197 | import { dbdata, sendThis1 } from './data/dbdata' | 197 | import { dbdata, sendThis1 } from './data/dbdata' |
198 | import { getDetail, edit, regenerateDbXml } from "@/api/recordLog.js" | 198 | import { getDetail, edit, regenerateDbXml } from "@/api/recordLog.js" |
199 | import JsonEditor from "@/components/JsonEditor.vue"; | 199 | import JsonEditor from "@/components/JsonEditor.vue"; |
200 | import { judgeListComplete } from "@/utils/tools.js" | 200 | import { judgeListComplete } from "@/utils/tools.js" |
201 | export default { | 201 | export default { |
202 | components: { JsonEditor }, | 202 | components: { JsonEditor }, |
203 | data () { | 203 | data () { |
204 | return { | 204 | return { |
205 | key: 0, | 205 | key: 0, |
206 | title: '', | 206 | title: '', |
207 | dialogVisible: false, | 207 | dialogVisible: false, |
208 | titleName: 'sjmx', | 208 | titleName: 'sjmx', |
209 | titleName2: 'drdbxd', | 209 | titleName2: 'drdbxd', |
210 | dbBsm: '', | 210 | dbBsm: '', |
211 | // 头部信息 | 211 | // 头部信息 |
212 | accessLog: { | 212 | accessLog: { |
213 | AREACODE: '', | 213 | AREACODE: '', |
214 | AREANAME: '', | 214 | AREANAME: '', |
215 | ACCESSDATE: '', | 215 | ACCESSDATE: '', |
216 | REMARK: '' | 216 | REMARK: '' |
217 | }, | 217 | }, |
218 | // 当日登薄信息记录数 | 218 | // 当日登薄信息记录数 |
219 | registerInfo: { | ||
220 | TOTALNUM: '', // 总数量 | ||
221 | FIRSTREG: '', // 首次登记数量 | ||
222 | TRANSFERREG: '', // 转移登记数量 | ||
223 | CHANGEREG: '', // 变更登记数量 | ||
224 | LOGOUTREG: '', // 注销登记数量 | ||
225 | RIVISEREG: '', // 更正登记数量 | ||
226 | DISSENTINGREG: '', // 异议登记数量 | ||
227 | ADVANCEREG: '', // 预告登记数量 | ||
228 | SEIZEREG: '', // 查封登记数量 | ||
229 | EASEMENTREG: '', // 地役权登记数量 | ||
230 | otherReg: '', // 其他登记数量 | ||
231 | BUSINESSTYPECOUNT: '', // 业务类型总数 | ||
232 | }, | ||
233 | // 当日上报记录数 | ||
234 | accessInfo: { | ||
235 | TOTALNUM: '', // 总数量 | ||
236 | FIRSTREG: '', // 首次登记数量 | ||
237 | TRANSFERREG: '', // 转移登记数量 | ||
238 | CHANGEREG: '', // 变更登记数量 | ||
239 | LOGOUTREG: '', // 注销登记数量 | ||
240 | RIVISEREG: '', // 更正登记数量 | ||
241 | DISSENTINGREG: '', // 异议登记数量 | ||
242 | ADVANCEREG: '', // 预告登记数量 | ||
243 | SEIZEREG: '', // 查封登记数量 | ||
244 | EASEMENTREG: '', // 地役权登记数量 | ||
245 | otherReg: '', // 其他登记数量 | ||
246 | BUSINESSTYPECOUNT: '', // 业务类型总数 | ||
247 | }, | ||
248 | // 当日登薄详单 | ||
249 | tableDBData: { | ||
250 | data: [], | ||
251 | column: dbdata.columns() | ||
252 | }, | ||
253 | // 当日上报详单 | ||
254 | tableSBData: { | ||
255 | data: [], | ||
256 | column: sbdata.columns() | ||
257 | }, | ||
258 | // XML详情 | ||
259 | resultInfo: '', | ||
260 | dataReport: {} | ||
261 | } | ||
262 | }, | ||
263 | mounted () { | ||
264 | sendThis(this); | ||
265 | sendThis1(this); | ||
266 | }, | ||
267 | watch: { | ||
268 | registerInfo: { | 219 | registerInfo: { |
269 | handler: function (newVal, oldVal) { | 220 | TOTALNUM: '', // 总数量 |
270 | this.registerInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) + | 221 | FIRSTREG: '', // 首次登记数量 |
271 | (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0) | 222 | TRANSFERREG: '', // 转移登记数量 |
272 | + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0) | 223 | CHANGEREG: '', // 变更登记数量 |
273 | }, | 224 | LOGOUTREG: '', // 注销登记数量 |
274 | deep: true | 225 | RIVISEREG: '', // 更正登记数量 |
226 | DISSENTINGREG: '', // 异议登记数量 | ||
227 | ADVANCEREG: '', // 预告登记数量 | ||
228 | SEIZEREG: '', // 查封登记数量 | ||
229 | EASEMENTREG: '', // 地役权登记数量 | ||
230 | otherReg: '', // 其他登记数量 | ||
231 | BUSINESSTYPECOUNT: '', // 业务类型总数 | ||
275 | }, | 232 | }, |
233 | // 当日上报记录数 | ||
276 | accessInfo: { | 234 | accessInfo: { |
277 | handler: function (newVal, oldVal) { | 235 | TOTALNUM: '', // 总数量 |
278 | this.accessInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) + | 236 | FIRSTREG: '', // 首次登记数量 |
279 | (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0) | 237 | TRANSFERREG: '', // 转移登记数量 |
280 | + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0) | 238 | CHANGEREG: '', // 变更登记数量 |
281 | }, | 239 | LOGOUTREG: '', // 注销登记数量 |
282 | deep: true | 240 | RIVISEREG: '', // 更正登记数量 |
283 | } | 241 | DISSENTINGREG: '', // 异议登记数量 |
284 | }, | 242 | ADVANCEREG: '', // 预告登记数量 |
285 | methods: { | 243 | SEIZEREG: '', // 查封登记数量 |
286 | closeDialog () { | 244 | EASEMENTREG: '', // 地役权登记数量 |
287 | this.dialogVisible = false; | 245 | otherReg: '', // 其他登记数量 |
246 | BUSINESSTYPECOUNT: '', // 业务类型总数 | ||
288 | }, | 247 | }, |
289 | isShow (item) { | 248 | // 当日登薄详单 |
290 | this.title = '登薄日志(' + item.ACCESSDATE + ')' | 249 | tableDBData: { |
291 | this.titleName = 'sjmx' | 250 | data: [], |
292 | this.dialogVisible = true | 251 | column: dbdata.columns() |
293 | this.dbBsm = item.dbBsm | ||
294 | this._getDetails(item.dbBsm) | ||
295 | }, | 252 | }, |
296 | /** | 253 | // 当日上报详单 |
297 | * @description: 获取列表接口 | 254 | tableSBData: { |
298 | * @author: renchao | 255 | data: [], |
299 | */ | 256 | column: sbdata.columns() |
300 | _getDetails (data) { | ||
301 | getDetail(data).then(res => { | ||
302 | let { accessLog, registerInfo, accessInfo, accessList, registerList | ||
303 | } = res.result | ||
304 | this.accessLog = accessLog | ||
305 | this.resultInfo = accessLog.LOGSXML | ||
306 | this.registerInfo = registerInfo | ||
307 | this.accessInfo = accessInfo | ||
308 | this.tableDBData.data = _.cloneDeep(registerList) | ||
309 | this.tableSBData.data = _.cloneDeep(accessList) | ||
310 | this.tableDBData.data.forEach((item, index) => { | ||
311 | this.$set(item, 'index', index) | ||
312 | }) | ||
313 | this.tableSBData.data.forEach((item, index) => { | ||
314 | this.$set(item, 'index', index) | ||
315 | }) | ||
316 | }) | ||
317 | }, | 257 | }, |
318 | // 当日登薄详单 | 258 | // XML详情 |
319 | handleDBAdd () { | 259 | resultInfo: '', |
320 | this.tableDBData.data.push({ | 260 | dataReport: {} |
321 | YWH: '', | 261 | } |
322 | DJLX: '', | 262 | }, |
323 | QLLX: '', | 263 | mounted () { |
324 | BDCDYH: '', | 264 | sendThis(this); |
325 | ZSZMH: '', | 265 | sendThis1(this); |
326 | SFSB: '', | 266 | }, |
327 | BWID: '', | 267 | watch: { |
328 | BSM_DBLOG: this.accessLog.bsmDblog | 268 | registerInfo: { |
269 | handler: function (newVal, oldVal) { | ||
270 | this.registerInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) + | ||
271 | (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0) | ||
272 | + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0) | ||
273 | }, | ||
274 | deep: true | ||
275 | }, | ||
276 | accessInfo: { | ||
277 | handler: function (newVal, oldVal) { | ||
278 | this.accessInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) + | ||
279 | (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0) | ||
280 | + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0) | ||
281 | }, | ||
282 | deep: true | ||
283 | } | ||
284 | }, | ||
285 | methods: { | ||
286 | closeDialog () { | ||
287 | this.dialogVisible = false; | ||
288 | }, | ||
289 | isShow (item) { | ||
290 | this.title = '登薄日志(' + item.ACCESSDATE + ')' | ||
291 | this.titleName = 'sjmx' | ||
292 | this.dialogVisible = true | ||
293 | this.dbBsm = item.dbBsm | ||
294 | this._getDetails(item.dbBsm) | ||
295 | }, | ||
296 | /** | ||
297 | * @description: 获取列表接口 | ||
298 | * @author: renchao | ||
299 | */ | ||
300 | _getDetails (data) { | ||
301 | getDetail(data).then(res => { | ||
302 | let { accessLog, registerInfo, accessInfo, accessList, registerList | ||
303 | } = res.result | ||
304 | this.accessLog = accessLog | ||
305 | this.resultInfo = accessLog.LOGSXML | ||
306 | this.registerInfo = registerInfo | ||
307 | this.accessInfo = accessInfo | ||
308 | this.tableDBData.data = _.cloneDeep(registerList) | ||
309 | this.tableSBData.data = _.cloneDeep(accessList) | ||
310 | this.tableDBData.data.forEach((item, index) => { | ||
311 | this.$set(item, 'index', index) | ||
312 | }) | ||
313 | this.tableSBData.data.forEach((item, index) => { | ||
314 | this.$set(item, 'index', index) | ||
315 | }) | ||
316 | }) | ||
317 | }, | ||
318 | // 当日登薄详单 | ||
319 | handleDBAdd () { | ||
320 | this.tableDBData.data.push({ | ||
321 | YWH: '', | ||
322 | DJLX: '', | ||
323 | QLLX: '', | ||
324 | BDCDYH: '', | ||
325 | ZSZMH: '', | ||
326 | SFSB: '', | ||
327 | BWID: '', | ||
328 | BSM_DBLOG: this.accessLog.bsmDblog | ||
329 | }) | ||
330 | this.tableDBData.data.forEach((item, index) => { | ||
331 | this.$set(item, 'index', index) | ||
332 | }) | ||
333 | }, | ||
334 | handleDBMinus (row) { | ||
335 | this.$confirm('此操作将删除列表, 是否继续?', '提示', { | ||
336 | confirmButtonText: '确定', | ||
337 | cancelButtonText: '取消', | ||
338 | type: 'warning' | ||
339 | }).then(() => { | ||
340 | this.tableDBData.data.splice(row.index, 1) | ||
341 | this.$message({ | ||
342 | type: 'success', | ||
343 | message: '删除成功!' | ||
329 | }) | 344 | }) |
330 | this.tableDBData.data.forEach((item, index) => { | 345 | this.tableDBData.data.forEach((item, index) => { |
331 | this.$set(item, 'index', index) | 346 | this.$set(item, 'index', index) |
332 | }) | 347 | }) |
333 | }, | 348 | }).catch(() => { |
334 | handleDBMinus (row) { | 349 | this.$message({ |
335 | this.$confirm('此操作将删除列表, 是否继续?', '提示', { | 350 | type: 'info', |
336 | confirmButtonText: '确定', | 351 | message: '已取消删除' |
337 | cancelButtonText: '取消', | ||
338 | type: 'warning' | ||
339 | }).then(() => { | ||
340 | this.tableDBData.data.splice(row.index, 1) | ||
341 | this.$message({ | ||
342 | type: 'success', | ||
343 | message: '删除成功!' | ||
344 | }) | ||
345 | this.tableDBData.data.forEach((item, index) => { | ||
346 | this.$set(item, 'index', index) | ||
347 | }) | ||
348 | }).catch(() => { | ||
349 | this.$message({ | ||
350 | type: 'info', | ||
351 | message: '已取消删除' | ||
352 | }) | ||
353 | }) | 352 | }) |
354 | }, | 353 | }) |
355 | // 当日上报详单 | 354 | }, |
356 | handleSBAdd () { | 355 | // 当日上报详单 |
357 | this.tableSBData.data.push({ | 356 | handleSBAdd () { |
358 | YWH: '', | 357 | this.tableSBData.data.push({ |
359 | BDCDYH: '', | 358 | YWH: '', |
360 | BWID: '', | 359 | BDCDYH: '', |
361 | BSM_DBLOG: this.accessLog.bsmDblog | 360 | BWID: '', |
361 | BSM_DBLOG: this.accessLog.bsmDblog | ||
362 | }) | ||
363 | this.tableSBData.data.forEach((item, index) => { | ||
364 | this.$set(item, 'index', index) | ||
365 | }) | ||
366 | }, | ||
367 | handleSBMinus (row) { | ||
368 | this.$confirm('此操作将删除列表, 是否继续?', '提示', { | ||
369 | confirmButtonText: '确定', | ||
370 | cancelButtonText: '取消', | ||
371 | type: 'warning' | ||
372 | }).then(() => { | ||
373 | this.tableSBData.data.splice(row.index, 1) | ||
374 | this.$message({ | ||
375 | type: 'success', | ||
376 | message: '删除成功!' | ||
362 | }) | 377 | }) |
363 | this.tableSBData.data.forEach((item, index) => { | 378 | this.tableSBData.data.forEach((item, index) => { |
364 | this.$set(item, 'index', index) | 379 | this.$set(item, 'index', index) |
365 | }) | 380 | }) |
366 | }, | 381 | }).catch(() => { |
367 | handleSBMinus (row) { | 382 | this.$message({ |
368 | this.$confirm('此操作将删除列表, 是否继续?', '提示', { | 383 | type: 'info', |
369 | confirmButtonText: '确定', | 384 | message: '已取消删除' |
370 | cancelButtonText: '取消', | ||
371 | type: 'warning' | ||
372 | }).then(() => { | ||
373 | this.tableSBData.data.splice(row.index, 1) | ||
374 | this.$message({ | ||
375 | type: 'success', | ||
376 | message: '删除成功!' | ||
377 | }) | ||
378 | this.tableSBData.data.forEach((item, index) => { | ||
379 | this.$set(item, 'index', index) | ||
380 | }) | ||
381 | }).catch(() => { | ||
382 | this.$message({ | ||
383 | type: 'info', | ||
384 | message: '已取消删除' | ||
385 | }) | ||
386 | }) | 385 | }) |
387 | }, | 386 | }) |
388 | /** | 387 | }, |
389 | * @description: 确定修改详情 | 388 | /** |
390 | * @param {*} function | 389 | * @description: 确定修改详情 |
391 | * @author: renchao | 390 | * @param {*} function |
392 | */ | 391 | * @author: renchao |
393 | submitForm: _.debounce(function () { | 392 | */ |
394 | let _this = this | 393 | submitForm: _.debounce(function () { |
395 | if (_verify(this.tableDBData.data, '当日登薄详单列表必填') && _verify(this.tableSBData.data, '当日上报详单列表必填')) { | 394 | let _this = this |
396 | _editDetail() | 395 | if (_verify(this.tableDBData.data, '当日登薄详单列表必填') && _verify(this.tableSBData.data, '当日上报详单列表必填')) { |
396 | _editDetail() | ||
397 | } | ||
398 | function _verify (data, msg) { | ||
399 | let flag = true | ||
400 | if (!judgeListComplete(data)) { | ||
401 | _this.$message({ | ||
402 | message: msg, | ||
403 | type: 'warning' | ||
404 | }) | ||
405 | flag = false | ||
397 | } | 406 | } |
398 | function _verify (data, msg) { | 407 | return flag |
399 | let flag = true | 408 | } |
400 | if (!judgeListComplete(data)) { | 409 | function _editDetail () { |
410 | edit({ | ||
411 | accessLog: _this.accessLog, registerInfo: _this.registerInfo, | ||
412 | accessInfo: _this.accessInfo, | ||
413 | accessList: _this.tableSBData.data, | ||
414 | registerList: _this.tableDBData.data | ||
415 | }).then(res => { | ||
416 | if (res.code == 200) { | ||
401 | _this.$message({ | 417 | _this.$message({ |
402 | message: msg, | 418 | message: '保存成功', |
403 | type: 'warning' | 419 | type: 'success' |
404 | }) | 420 | }) |
405 | flag = false | 421 | _this._getDetails(_this.dbBsm) |
422 | } | ||
423 | }) | ||
424 | } | ||
425 | }, 600), | ||
426 | /** | ||
427 | * @description: 登薄日志重新生成报文 | ||
428 | * @param {*} function | ||
429 | * @author: renchao | ||
430 | */ | ||
431 | handleResubmit () { | ||
432 | let _this = this | ||
433 | this.$confirm('重新生成报文,是否上报省厅?', '提示', { | ||
434 | confirmButtonText: '确定', | ||
435 | cancelButtonText: '取消', | ||
436 | type: 'warning' | ||
437 | }).then(() => { | ||
438 | createXml() | ||
439 | }).catch(() => { | ||
440 | this.$message({ | ||
441 | type: 'info', | ||
442 | message: '已取消删除' | ||
443 | }) | ||
444 | }) | ||
445 | function createXml () { | ||
446 | regenerateDbXml(_this.dbBsm).then(res => { | ||
447 | if (res.code == 200) { | ||
448 | _this.$message({ | ||
449 | message: '生成成功', | ||
450 | type: 'success' | ||
451 | }) | ||
452 | _this.resultInfo = res.message | ||
406 | } | 453 | } |
407 | return flag | ||
408 | } | ||
409 | function _editDetail () { | ||
410 | edit({ | ||
411 | accessLog: _this.accessLog, registerInfo: _this.registerInfo, | ||
412 | accessInfo: _this.accessInfo, | ||
413 | accessList: _this.tableSBData.data, | ||
414 | registerList: _this.tableDBData.data | ||
415 | }).then(res => { | ||
416 | if (res.code == 200) { | ||
417 | _this.$message({ | ||
418 | message: '保存成功', | ||
419 | type: 'success' | ||
420 | }) | ||
421 | _this._getDetails(_this.dbBsm) | ||
422 | } | ||
423 | }) | ||
424 | } | ||
425 | }, 600), | ||
426 | /** | ||
427 | * @description: 登薄日志重新生成报文 | ||
428 | * @param {*} function | ||
429 | * @author: renchao | ||
430 | */ | ||
431 | handleResubmit () { | ||
432 | let _this = this | ||
433 | this.$confirm('重新生成报文,是否上报省厅?', '提示', { | ||
434 | confirmButtonText: '确定', | ||
435 | cancelButtonText: '取消', | ||
436 | type: 'warning' | ||
437 | }).then(() => { | ||
438 | createXml() | ||
439 | }).catch(() => { | ||
440 | this.$message({ | ||
441 | type: 'info', | ||
442 | message: '已取消删除' | ||
443 | }) | ||
444 | }) | 454 | }) |
445 | function createXml () { | ||
446 | regenerateDbXml(_this.dbBsm).then(res => { | ||
447 | if (res.code == 200) { | ||
448 | _this.$message({ | ||
449 | message: '生成成功', | ||
450 | type: 'success' | ||
451 | }) | ||
452 | _this.resultInfo = res.message | ||
453 | } | ||
454 | }) | ||
455 | } | ||
456 | } | 455 | } |
457 | } | 456 | } |
458 | } | 457 | } |
458 | } | ||
459 | </script> | 459 | </script> |
460 | <style scoped lang="scss"> | 460 | |
461 | </style> | ||
462 | 461 | ... | ... |
src/views/sthj/ywjr/data/index.js
0 → 100644
1 | import filter from '@/utils/filter.js' | ||
2 | class data extends filter { | ||
3 | constructor() { | ||
4 | super() | ||
5 | } | ||
6 | columns () { | ||
7 | return [ | ||
8 | { | ||
9 | prop: "name", | ||
10 | label: "区县代码", | ||
11 | width: 130 | ||
12 | }, | ||
13 | { | ||
14 | prop: "description", | ||
15 | label: "业务号" | ||
16 | }, | ||
17 | { | ||
18 | prop: "description", | ||
19 | label: "受理业务名称" | ||
20 | }, | ||
21 | { | ||
22 | prop: "description", | ||
23 | label: "受理业务编码" | ||
24 | }, | ||
25 | { | ||
26 | prop: "description", | ||
27 | label: "受理时间" | ||
28 | }, | ||
29 | { | ||
30 | prop: "description", | ||
31 | label: "登记时间" | ||
32 | }, | ||
33 | { | ||
34 | prop: "description", | ||
35 | label: "接收时间" | ||
36 | }, | ||
37 | { | ||
38 | prop: "description", | ||
39 | label: "读取时间" | ||
40 | } | ||
41 | ] | ||
42 | } | ||
43 | } | ||
44 | export default new data() |
src/views/sthj/ywjr/edit-dialog.vue
0 → 100644
1 | <!-- 新增 & 修改角色 --> | ||
2 | <template> | ||
3 | <dialogBox | ||
4 | class="PersonnelDialog" | ||
5 | :title="title" | ||
6 | :width="'567px'" | ||
7 | :isMain="true" | ||
8 | @closeDialog="close" | ||
9 | @submitForm="submitForm" | ||
10 | v-model="myValue"> | ||
11 | <div class="dialogCon"> | ||
12 | <el-form ref="form" :model="dialogForm" :rules="rules" label-width="82px"> | ||
13 | <el-row :gutter="24"> | ||
14 | <el-col :span="23"> | ||
15 | <el-form-item label="角色名称:" prop="roleName"> | ||
16 | <el-input | ||
17 | v-model="dialogForm.roleName" | ||
18 | clearable | ||
19 | placeholder="角色名称" /> | ||
20 | </el-form-item> | ||
21 | </el-col> | ||
22 | </el-row> | ||
23 | <el-row> | ||
24 | <el-col :span="23"> | ||
25 | <el-form-item label="备注:" class="form-item-mb0"> | ||
26 | <el-input | ||
27 | v-model="dialogForm.roleTextArea" | ||
28 | clearable | ||
29 | :rows="10" | ||
30 | type="textarea" | ||
31 | placeholder="备注" /> | ||
32 | </el-form-item> | ||
33 | </el-col> | ||
34 | </el-row> | ||
35 | </el-form> | ||
36 | </div> | ||
37 | <!-- <template slot="footer"> | ||
38 | <el-button | ||
39 | class="cancel-button" | ||
40 | @click="handleCloseDialog">取消</el-button> | ||
41 | |||
42 | <el-button | ||
43 | type="primary" | ||
44 | @click="handleSaveRole()">保存</el-button> | ||
45 | </template> --> | ||
46 | </dialogBox> | ||
47 | </template> | ||
48 | |||
49 | <script> | ||
50 | import Dialog from "@/components/Dialog/"; | ||
51 | import { api, httpAction } from '@/api/manageApi' | ||
52 | export default { | ||
53 | components: { | ||
54 | Dialog | ||
55 | }, | ||
56 | props: { | ||
57 | value: { type: Boolean, default: false }, | ||
58 | }, | ||
59 | data () { | ||
60 | return { | ||
61 | myValue: this.value, | ||
62 | title: '', | ||
63 | showAddEditDialog: false, | ||
64 | menuType: '', | ||
65 | roleId: '', | ||
66 | sort: 0, | ||
67 | dialogForm: { | ||
68 | roleName: '', | ||
69 | roleType: '', | ||
70 | roleTextArea: '' | ||
71 | }, | ||
72 | rules: { | ||
73 | roleName: [ | ||
74 | { required: true, message: '请输入角色名称', trigger: 'blur' } | ||
75 | ], | ||
76 | }, | ||
77 | roleTypeOptions: [ | ||
78 | { name: '定制', value: '定制' }, | ||
79 | { name: '其他', value: '其他' } | ||
80 | ] | ||
81 | } | ||
82 | }, | ||
83 | watch: { | ||
84 | value (val) { | ||
85 | this.myValue = val | ||
86 | } | ||
87 | }, | ||
88 | methods: { | ||
89 | // 保存新增或关闭事件 | ||
90 | submitForm () { | ||
91 | this.$refs.form.validate((valid) => { | ||
92 | if (valid) { | ||
93 | try { | ||
94 | const params = { | ||
95 | category: 2, | ||
96 | description: this.dialogForm.roleTextArea, | ||
97 | name: this.dialogForm.roleName, | ||
98 | sort: this.sort, | ||
99 | type: this.dialogForm.roleType | ||
100 | } | ||
101 | if (this.roleId) { | ||
102 | params.id = this.roleId | ||
103 | httpAction(`${api.roles}/${params.id}`, params, 'post').then( | ||
104 | (res) => { | ||
105 | if (res.status === 1) { | ||
106 | this.$message.success({ | ||
107 | message: '修改成功', | ||
108 | showClose: true | ||
109 | }) | ||
110 | this.dialogForm = { | ||
111 | roleName: '', | ||
112 | } | ||
113 | // this.showAddEditDialog = val | ||
114 | this.$emit('ok') | ||
115 | } else { | ||
116 | this.$message.error({ | ||
117 | message: res.message, | ||
118 | showClose: true | ||
119 | }) | ||
120 | } | ||
121 | } | ||
122 | ) | ||
123 | } else { | ||
124 | httpAction(api.roles, params, 'post').then((res) => { | ||
125 | if (res.status === 1) { | ||
126 | this.$message.success({ | ||
127 | message: '新增成功', | ||
128 | showClose: true | ||
129 | }) | ||
130 | this.close() | ||
131 | |||
132 | this.$emit('ok') | ||
133 | // this.showAddEditDialog = val | ||
134 | this.$emit('ok', this.menuType) | ||
135 | } else { | ||
136 | this.$message.error({ | ||
137 | message: res.message, | ||
138 | showClose: true | ||
139 | }) | ||
140 | } | ||
141 | }) | ||
142 | } | ||
143 | } catch (e) { | ||
144 | console.error(e) | ||
145 | } | ||
146 | } | ||
147 | }) | ||
148 | }, | ||
149 | resetForm () { | ||
150 | this.dialogForm = { | ||
151 | roleName: '', | ||
152 | } | ||
153 | this.$refs.form.resetFields() | ||
154 | }, | ||
155 | close () { | ||
156 | this.resetForm() | ||
157 | this.$emit('input', false) | ||
158 | } | ||
159 | } | ||
160 | } | ||
161 | </script> | ||
162 | <style scoped lang="scss"> | ||
163 | </style> |
src/views/sthj/ywjr/index.vue
0 → 100644
1 | <template> | ||
2 | <div class="timedTask from-clues"> | ||
3 | <div class="from-clues-header"> | ||
4 | <el-form ref="ruleForm" :model="form" label-width="100px"> | ||
5 | <el-form-item v-if="BASE_API.THEME=='jg'"> | ||
6 | <Breadcrumb /> | ||
7 | </el-form-item> | ||
8 | <el-row class="mb-5"> | ||
9 | <el-col :span="4"> | ||
10 | <el-form-item label="业务号:" prop="ywh"> | ||
11 | <el-input v-model="form.ywh" class="width100" clearable placeholder="业务号"></el-input> | ||
12 | </el-form-item> | ||
13 | </el-col> | ||
14 | <el-col :span="4"> | ||
15 | <el-form-item label="业务名称" prop="ywmc"> | ||
16 | <el-input v-model.trim="form.rolesName" class="width100" clearable placeholder="业务名称"></el-input> | ||
17 | </el-form-item> | ||
18 | </el-col> | ||
19 | <el-col :span="6"> | ||
20 | <el-form-item label="开始日期" prop="startTime"> | ||
21 | <el-date-picker type="date" class="width100" placeholder="开始日期" :picker-options="pickerOptionsStart" | ||
22 | clearable v-model="form.startTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> | ||
23 | </el-form-item> | ||
24 | </el-col> | ||
25 | <el-col :span="6"> | ||
26 | <el-form-item label="结束日期" prop="endTime"> | ||
27 | <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" clearable | ||
28 | v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> | ||
29 | </el-form-item> | ||
30 | </el-col> | ||
31 | <!-- 操作按钮 --> | ||
32 | <el-col :span="4" class="btnColRight"> | ||
33 | <btn nativeType="cz" @click="resetForm">重置</btn> | ||
34 | <btn nativeType="cx" @click="handleSearch">查询</btn> | ||
35 | </el-col> | ||
36 | </el-row> | ||
37 | </el-form> | ||
38 | </div> | ||
39 | <div class="from-clues-content"> | ||
40 | <lb-table :pagination="false" @size-change="handleSizeChange" :calcHeight="200" | ||
41 | @p-current-change="handleCurrentChange" :column="tableData.columns" :data="listdata" :expand-row-keys="keyList" | ||
42 | row-key="dictid"> | ||
43 | </lb-table> | ||
44 | </div> | ||
45 | </div> | ||
46 | </template> | ||
47 | <script> | ||
48 | import { | ||
49 | getUuid, | ||
50 | judgeSort, | ||
51 | realMove, | ||
52 | findParents, | ||
53 | removeTreeListItem, | ||
54 | } from "@/utils/operation"; | ||
55 | import { getRolesById, getAuthorityListAction } from "@/api/authorityManage"; | ||
56 | import { getUserRoles } from "@/api/personnelManage"; | ||
57 | import data from "./data"; | ||
58 | import { getMenuInfo } from "@/api/user"; | ||
59 | import { api, getAction, deleteAction } from "@/api/manageApi"; | ||
60 | import tableMixin from "@/mixins/tableMixin.js"; | ||
61 | import EditDialog from "./edit-dialog.vue"; | ||
62 | import Roleslistdiglog from "./roleslistdiglog.vue"; | ||
63 | import { mapGetters } from "vuex"; | ||
64 | import { updateOrder } from "@/api/orders" | ||
65 | export default { | ||
66 | name: "menus", | ||
67 | mixins: [tableMixin], | ||
68 | components: { | ||
69 | EditDialog, | ||
70 | Roleslistdiglog, | ||
71 | }, | ||
72 | data () { | ||
73 | return { | ||
74 | // 开始结束日期限制 | ||
75 | pickerOptionsStart: { | ||
76 | disabledDate: (time) => { | ||
77 | if (this.form.endTime) { | ||
78 | return time.getTime() >= new Date(this.form.endTime).getTime() | ||
79 | } | ||
80 | } | ||
81 | }, | ||
82 | // 结束日期限制 | ||
83 | pickerOptionsEnd: { | ||
84 | disabledDate: (time) => { | ||
85 | if (this.form.startTime) { | ||
86 | return time.getTime() < new Date(this.form.startTime).getTime() | ||
87 | } | ||
88 | } | ||
89 | }, | ||
90 | listdata: [], | ||
91 | setlistdata: [], | ||
92 | // 表单 | ||
93 | form: { | ||
94 | ywh: '', | ||
95 | ywmc: '', | ||
96 | startTime: '', | ||
97 | endTime: '', | ||
98 | currentPage: 1 | ||
99 | }, | ||
100 | tableData: { | ||
101 | columns: [ | ||
102 | { | ||
103 | label: "序号", | ||
104 | type: "index", | ||
105 | width: "50", | ||
106 | index: this.indexMethod, | ||
107 | }, | ||
108 | ] | ||
109 | .concat(data.columns()) | ||
110 | .concat({ | ||
111 | prop: "state", | ||
112 | label: "状态", | ||
113 | width: '120', | ||
114 | render: (h, scope) => { | ||
115 | return ( | ||
116 | <div> | ||
117 | <span class='adopt' v-show={scope.row.state == 3}>上报失败</span> | ||
118 | <span class='adopt' v-show={scope.row.state == 2}>上报成功</span> | ||
119 | <span class='warehousing' v-show={scope.row.state == 1}>接入上报异常</span> | ||
120 | </div> | ||
121 | ) | ||
122 | } | ||
123 | }) | ||
124 | .concat([]), | ||
125 | }, | ||
126 | data: [], | ||
127 | } | ||
128 | }, | ||
129 | created () { | ||
130 | this.getTableData(); | ||
131 | }, | ||
132 | mounted () { }, | ||
133 | methods: { | ||
134 | //查询 | ||
135 | searchQuery () { | ||
136 | if (this.form.rolesName) { | ||
137 | this.listdata = this.childrenFn(this.setlistdata, this.form.rolesName); | ||
138 | } else { | ||
139 | this.getTableData() | ||
140 | } | ||
141 | }, | ||
142 | childrenFn (arr, key) { | ||
143 | let searchTree = []; | ||
144 | arr.forEach((item, index) => { | ||
145 | if (item.name.indexOf(key) != -1) { | ||
146 | |||
147 | searchTree.push(item); | ||
148 | } | ||
149 | }); | ||
150 | if (searchTree != undefined && searchTree.length != 0) { | ||
151 | return judgeSort(searchTree); | ||
152 | } | ||
153 | }, | ||
154 | // 获取角色列表 | ||
155 | getTableData () { | ||
156 | getRolesById([1, 2]) | ||
157 | .then((res) => { | ||
158 | this.listdata = res.content; | ||
159 | this.listdata = judgeSort(this.listdata); | ||
160 | this.setlistdata = res.content; | ||
161 | }) | ||
162 | .catch((e) => console.error(e)); | ||
163 | }, | ||
164 | |||
165 | |||
166 | }, | ||
167 | }; | ||
168 | </script> | ||
169 | <style scoped lang="scss"> | ||
170 | @import "~@/styles/mixin.scss"; | ||
171 | // @import "~@/styles/public.scss"; | ||
172 | |||
173 | /deep/.el-button.is-disabled.el-button--text { | ||
174 | width: 64px; | ||
175 | height: 28px; | ||
176 | background: rgba(255, 255, 255, 0.1); | ||
177 | border-radius: 16px; | ||
178 | } | ||
179 | </style> |
src/views/sthj/ywjr/roleslistdiglog.vue
0 → 100644
1 | <template> | ||
2 | <el-dialog | ||
3 | :close-on-click-modal="false" | ||
4 | top="0" | ||
5 | @click="close()" | ||
6 | class="roleconfiguration" | ||
7 | custom-class="dialogBox editDialogBox mainCenter" | ||
8 | :visible.sync="visible" | ||
9 | width="85%"> | ||
10 | <div slot="title" class="dialog_title" ref="dialogTitle"> | ||
11 | {{ title || "标题" }} | ||
12 | </div> | ||
13 | <div class="editDialogBox-box"> | ||
14 | <el-tabs v-model="activeName" type="card" @tab-click="handleClick"> | ||
15 | <el-tab-pane label="人员配置" name="first"></el-tab-pane> | ||
16 | <el-tab-pane label="菜单配置" name="second"></el-tab-pane> | ||
17 | </el-tabs> | ||
18 | <lb-table | ||
19 | v-if="activeName == 'first'" | ||
20 | ref="multipleTable" | ||
21 | :pagination="false" | ||
22 | :column="usertableData.column" | ||
23 | :data="lastuserList" | ||
24 | @selection-change="handleSelectionChange" | ||
25 | @row-click="handleClickTableRow"> | ||
26 | > | ||
27 | </lb-table> | ||
28 | <lb-table | ||
29 | :key="menukey" | ||
30 | v-if="activeName == 'second'" | ||
31 | :pagination="false" | ||
32 | :column="menutableData.column" | ||
33 | :data="lastMenuList" | ||
34 | row-key="id" | ||
35 | default-expand-all | ||
36 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> | ||
37 | </lb-table> | ||
38 | </div> | ||
39 | <template slot="footer"> | ||
40 | <btn nativeType="cx" type="primary" @click="handleSaveMember()">保存</btn> | ||
41 | <btn nativeType="cz" @click="close()">取消</btn> | ||
42 | </template> | ||
43 | </el-dialog> | ||
44 | </template> | ||
45 | |||
46 | <script> | ||
47 | import { api } from "@/api/manageApi"; | ||
48 | import { getRoleAuthorityList, roleAuthority } from "@/api/authorityManage"; | ||
49 | import { updateUser } from "@/api/personnelManage"; | ||
50 | export default { | ||
51 | name: "", | ||
52 | data () { | ||
53 | return { | ||
54 | title: "人员配置", | ||
55 | visible: false, | ||
56 | menutableData: { | ||
57 | column: [ | ||
58 | { | ||
59 | prop: "name", | ||
60 | width: 830, | ||
61 | label: "菜单名称", | ||
62 | } | ||
63 | ].concat([ | ||
64 | { | ||
65 | label: "权限", | ||
66 | render: (h, scope) => { | ||
67 | return ( | ||
68 | <div> | ||
69 | <el-checkbox v-model={scope.row.checkArr[0].value} | ||
70 | disabled={scope.row.checkArr[0].disabled} | ||
71 | label={scope.row.checkArr[0].name} onChange={(checked) => { | ||
72 | this.changeCheck(checked, scope.row.checkArr[0].id, scope); | ||
73 | }} /> | ||
74 | <el-checkbox v-model={scope.row.checkArr[1].value} | ||
75 | disabled={scope.row.checkArr[0].disabled} | ||
76 | label={scope.row.checkArr[1].name} | ||
77 | onChange={(checked) => { | ||
78 | this.changeCheck(checked, scope.row.checkArr[1].id, scope); | ||
79 | }} /> | ||
80 | </div> | ||
81 | ); | ||
82 | }, | ||
83 | }, | ||
84 | ]), | ||
85 | }, | ||
86 | usertableData: { | ||
87 | column: [ | ||
88 | { | ||
89 | type: "selection", | ||
90 | width: 330, | ||
91 | }, | ||
92 | { | ||
93 | prop: "name", | ||
94 | width: 330, | ||
95 | label: "姓名", | ||
96 | }, | ||
97 | { | ||
98 | prop: "loginName", | ||
99 | label: "用户名", | ||
100 | }, | ||
101 | ], | ||
102 | }, | ||
103 | // 角色id | ||
104 | roleId: "", | ||
105 | menuList: [], // 菜单列表 | ||
106 | menukey: 0, | ||
107 | activeName: "first", | ||
108 | lastuserList: [], // 人员表格数据 | ||
109 | lastMenuList: [], // 重构完成的菜单表格数据 | ||
110 | usermultipleSelection: [], | ||
111 | // 选中菜单列表 | ||
112 | checkArr: [], // 重构操作符列表 | ||
113 | authorityList: [], // 授权回显数组 | ||
114 | checklistbor: [], | ||
115 | // 授权对象数据 | ||
116 | menuprams: {}, | ||
117 | // 系统code | ||
118 | selectedSubsystemCode: "" | ||
119 | }; | ||
120 | }, | ||
121 | computed: {}, | ||
122 | |||
123 | created () { | ||
124 | }, | ||
125 | mounted () { | ||
126 | }, | ||
127 | methods: { | ||
128 | |||
129 | // 人员配置点击行勾选数据 | ||
130 | handleClickTableRow (row, event) { | ||
131 | this.checkNum = 0; | ||
132 | this.isCheck = false; | ||
133 | if (event.label == "操作") { | ||
134 | return; | ||
135 | } else { | ||
136 | if (row.status == "0") { | ||
137 | return; | ||
138 | } else { | ||
139 | if (this.usermultipleSelection.length > 0) { | ||
140 | if ( | ||
141 | JSON.stringify(this.usermultipleSelection).indexOf( | ||
142 | JSON.stringify(row) | ||
143 | ) == -1 | ||
144 | ) { | ||
145 | this.usermultipleSelection.push(row); | ||
146 | this.$refs.multipleTable.toggleRowSelection(row, true); | ||
147 | } else { | ||
148 | this.usermultipleSelection.map((item, index) => { | ||
149 | if (item.id == row.id) { | ||
150 | this.usermultipleSelection.splice(index, 1); | ||
151 | this.$refs.multipleTable.toggleRowSelection(row, false); | ||
152 | } | ||
153 | }); | ||
154 | } | ||
155 | } else { | ||
156 | this.usermultipleSelection.push(row); | ||
157 | this.$refs.multipleTable.toggleRowSelection(row, true); | ||
158 | } | ||
159 | } | ||
160 | } | ||
161 | if (this.usermultipleSelection.length > 0) { | ||
162 | this.checkNum = this.usermultipleSelection.length; | ||
163 | this.isCheck = true; | ||
164 | } else { | ||
165 | this.isCheck = false; | ||
166 | } | ||
167 | }, | ||
168 | // 获取授权主体的菜单权限 | ||
169 | // getMenuAuthorityList | ||
170 | menulist (operationList, id, Code, menutablelistData, operationCodes) { | ||
171 | this.selectedSubsystemCode = Code | ||
172 | this.menuList = menutablelistData; | ||
173 | getRoleAuthorityList( | ||
174 | id, | ||
175 | operationList.toString(), | ||
176 | Code + '_MENU' | ||
177 | ).then(res => { | ||
178 | if (res.status === 1) { | ||
179 | this.authorityList = res.content | ||
180 | this.getRecursionTreeData(this.menuList, this.authorityList, operationCodes) | ||
181 | this.getAuthorizedInfo() | ||
182 | // this.setCheckAllArr() | ||
183 | // this.getAuthorizedInfo() | ||
184 | } else { | ||
185 | this.$message.error({ message: res.message, showClose: true }) | ||
186 | } | ||
187 | }) | ||
188 | |||
189 | |||
190 | }, | ||
191 | /** | ||
192 | * 递归渲染列表数据 | ||
193 | * list:原始数组 | ||
194 | * authorityList:已授权数组 | ||
195 | */ | ||
196 | getRecursionTreeData (list, authorityList, operationCodes) { | ||
197 | ++this.menukey | ||
198 | this.checkArr = [] | ||
199 | for (const k in operationCodes) { | ||
200 | const obj = {} | ||
201 | obj.name = operationCodes[k] | ||
202 | obj.id = k | ||
203 | obj.value = false | ||
204 | obj.disabled = false | ||
205 | // obj.isAll = false; | ||
206 | this.checkArr.push(obj) | ||
207 | } | ||
208 | for (const [index, item] of Object.entries(list)) { | ||
209 | this.setAuthorizedConditions( | ||
210 | authorityList, | ||
211 | this.$deepCopy(this.checkArr), | ||
212 | item | ||
213 | ) | ||
214 | if ( | ||
215 | item.children && | ||
216 | item.children !== null && | ||
217 | item.children.length !== 0 | ||
218 | ) { | ||
219 | item.children.forEach((child, j) => { | ||
220 | this.setAuthorizedConditions( | ||
221 | authorityList, | ||
222 | this.$deepCopy(this.checkArr), | ||
223 | child | ||
224 | ) | ||
225 | }) | ||
226 | this.getRecursionTreeData(item.children, authorityList, operationCodes) | ||
227 | } | ||
228 | } | ||
229 | this.lastMenuList = list | ||
230 | // this.setCheckAllArr(list) | ||
231 | }, | ||
232 | // 授权条件 | ||
233 | setAuthorizedConditions (authorityList, checkArr, item) { | ||
234 | if (this.roleId === '') { | ||
235 | checkArr.forEach(ele => { | ||
236 | ele.disabled = true | ||
237 | ele.value = false | ||
238 | }) | ||
239 | } else { | ||
240 | if (authorityList.length !== 0) { | ||
241 | if (authorityList[0].superPermission === true) { | ||
242 | checkArr.forEach(ele => { | ||
243 | ele.value = true | ||
244 | ele.disabled = true | ||
245 | }) | ||
246 | } else { | ||
247 | const repeatArr = authorityList.filter(authorityItem => { | ||
248 | return authorityItem.resourceUri === item.id | ||
249 | }) | ||
250 | repeatArr.forEach(element => { | ||
251 | checkArr.forEach(ele => { | ||
252 | if (element.operationCode === ele.id) { | ||
253 | ele.value = true | ||
254 | if (this.roleId !== element.subjectId) { | ||
255 | ele.disabled = true | ||
256 | } | ||
257 | } | ||
258 | }) | ||
259 | }) | ||
260 | } | ||
261 | } | ||
262 | } | ||
263 | this.$set(item, 'checkArr', this.$deepCopy(checkArr)) | ||
264 | }, | ||
265 | // 获取拼接授权信息 | ||
266 | getAuthorizedInfo () { | ||
267 | const lastArr = [] | ||
268 | const authorizedList = [] | ||
269 | const wholeArr = this.$deepCopy(this.lastMenuList) | ||
270 | const arr = this.$treeConvertToArr(wholeArr) | ||
271 | arr.forEach(ele => { | ||
272 | ele.checkArr.forEach(val => { | ||
273 | if (val.value === true && val.disabled === false) { | ||
274 | const obj = { | ||
275 | operationCode: val.id, | ||
276 | name: ele.name, | ||
277 | id: ele.id | ||
278 | } | ||
279 | lastArr.push(obj) | ||
280 | } | ||
281 | }) | ||
282 | }) | ||
283 | lastArr.forEach(element => { | ||
284 | authorizedList.push({ | ||
285 | operationCode: element.operationCode, // 标识符 | ||
286 | productCode: this.selectedSubsystemCode, // 子系统code | ||
287 | resourceCategoryCode: this.selectedSubsystemCode + '_MENU', // 资源类别code默认为MENU | ||
288 | resourceName: element.name, | ||
289 | resourceUri: element.id, // 授权菜单id | ||
290 | subjectId: this.roleId, // 授权对象id | ||
291 | subjectType: 'ROLE' // 授权对象类别 | ||
292 | }) | ||
293 | }) | ||
294 | this.menuprams = { | ||
295 | subjectId: this.roleId, | ||
296 | authorizedList: authorizedList | ||
297 | } | ||
298 | }, | ||
299 | // 获取人员列表做筛选 | ||
300 | personlist (a, rid) { | ||
301 | this.roleId = rid; | ||
302 | this.visible = true; | ||
303 | this.lastuserList = a; | ||
304 | this.lastuserList.forEach((item, index) => { | ||
305 | if (item.selectStatus === 0) { | ||
306 | this.$nextTick(async () => { | ||
307 | await this.$refs.multipleTable | ||
308 | if (this.$refs.multipleTable) { | ||
309 | this.$refs.multipleTable.toggleRowSelection( | ||
310 | this.lastuserList[index], | ||
311 | true | ||
312 | ); | ||
313 | } | ||
314 | |||
315 | }); | ||
316 | } | ||
317 | }); | ||
318 | }, | ||
319 | // 关闭事件 | ||
320 | close () { | ||
321 | this.visible = false; | ||
322 | }, | ||
323 | // 保存事件 | ||
324 | handleSaveMember () { | ||
325 | // 人员授权 | ||
326 | const idList = this.usermultipleSelection.map((item) => { | ||
327 | return item.id; | ||
328 | }) | ||
329 | updateUser(this.roleId, idList).then((res) => { | ||
330 | if (res.status === 1) { | ||
331 | this.$message.success({ message: "保存成功", showClose: true }); | ||
332 | this.visible = false; | ||
333 | } else this.$message.error({ message: res.message, showClose: true }); | ||
334 | }); | ||
335 | // 菜单授权 | ||
336 | roleAuthority( | ||
337 | this.menuprams.subjectId, | ||
338 | this.menuprams.authorizedList | ||
339 | ).then((res) => { | ||
340 | if (res.status === 1) { | ||
341 | this.$message.success({ | ||
342 | message: res.message, | ||
343 | }) | ||
344 | // this.authorizedContChange() | ||
345 | } else { | ||
346 | this.$message.error({ message: res.message, showClose: true }) | ||
347 | } | ||
348 | }) | ||
349 | }, | ||
350 | // 勾选人员事件 | ||
351 | handleSelectionChange (val) { | ||
352 | this.lastuserList.forEach((element, index) => { | ||
353 | delete this.lastuserList[index].selectStatus | ||
354 | }); | ||
355 | this.usermultipleSelection = val; | ||
356 | this.lastuserList.forEach((element, index) => { | ||
357 | this.usermultipleSelection.forEach(element1 => { | ||
358 | if (element.id == element1.id) { | ||
359 | this.lastuserList[index].selectStatus = 0 | ||
360 | } | ||
361 | }); | ||
362 | }); | ||
363 | }, | ||
364 | // 数据筛选 | ||
365 | setarrdata (scope, arr) { | ||
366 | |||
367 | arr.forEach((item, index, arr) => { | ||
368 | if (item.id == scope.row.id) { | ||
369 | this.checklistbor = [...arr] | ||
370 | } else if (item.id !== scope.row.id && item.children) { | ||
371 | this.setarrdata(scope, item.children) | ||
372 | } | ||
373 | |||
374 | }) | ||
375 | |||
376 | }, | ||
377 | // 勾选菜单事件 | ||
378 | changeCheck (flag, checkId, scope) { | ||
379 | this.checklistbor = [] | ||
380 | this.setarrdata(scope, this.lastMenuList) | ||
381 | const parents = this.$findParent(this.lastMenuList, scope.row.parentId) | ||
382 | const childs = this.$findChildren(this.lastMenuList, scope.row.id) | ||
383 | this.$setChildArr( | ||
384 | this.lastMenuList, | ||
385 | scope.row.id, | ||
386 | checkId, | ||
387 | flag, | ||
388 | this.checklistbor, | ||
389 | parents, | ||
390 | childs | ||
391 | ) | ||
392 | this.getAuthorizedInfo() | ||
393 | }, | ||
394 | handleClick (tab, event) { | ||
395 | this.lastuserList.forEach((item, index) => { | ||
396 | if (item.selectStatus === 0) { | ||
397 | this.$nextTick(async () => { | ||
398 | await this.$refs.multipleTable | ||
399 | if (this.$refs.multipleTable) { | ||
400 | this.$refs.multipleTable.toggleRowSelection( | ||
401 | this.lastuserList[index], | ||
402 | true | ||
403 | ); | ||
404 | } | ||
405 | |||
406 | }); | ||
407 | } | ||
408 | }); | ||
409 | } | ||
410 | |||
411 | }, | ||
412 | }; | ||
413 | </script> | ||
414 | <style scoped lang="scss"> | ||
415 | /deep/.dialogBox .el-dialog__header { | ||
416 | height: 59px !important; | ||
417 | } | ||
418 | </style> |
1 | <template> | 1 | <template> |
2 | <!-- 编辑 --> | 2 | <!-- 编辑 --> |
3 | <dialogBox submitForm="submitForm" class="tableClass" @closeDialog="closeDialog" @submitForm="handleSubmit" width="60%" | 3 | <dialogBox submitForm="submitForm" class="tableClass dictionary" @closeDialog="closeDialog" @submitForm="handleSubmit" width="60%" |
4 | v-model="myValue" :isMain="true" title="字典信息"> | 4 | v-model="myValue" :isMain="true" title="字典信息"> |
5 | <div class="editDialogBox-box "> | 5 | <div class="editDialogBox-box "> |
6 | <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> | 6 | <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> |
... | @@ -159,13 +159,14 @@ | ... | @@ -159,13 +159,14 @@ |
159 | }, | 159 | }, |
160 | }, | 160 | }, |
161 | { | 161 | { |
162 | width: "130", | 162 | width: "200", |
163 | label: "移动", | 163 | label: "移动", |
164 | render: (h, scope) => { | 164 | render: (h, scope) => { |
165 | return ( | 165 | return ( |
166 | <div> | 166 | <div> |
167 | <el-button | 167 | <el-button |
168 | type="text" | 168 | type="text" |
169 | class='movebtnColor' | ||
169 | disabled={scope.row.isTop} | 170 | disabled={scope.row.isTop} |
170 | onClick={() => { | 171 | onClick={() => { |
171 | this.moveUpward(scope.$index, scope.row); | 172 | this.moveUpward(scope.$index, scope.row); |
... | @@ -175,6 +176,7 @@ | ... | @@ -175,6 +176,7 @@ |
175 | </el-button> | 176 | </el-button> |
176 | <el-button | 177 | <el-button |
177 | type="text" | 178 | type="text" |
179 | class='movebtnColor' | ||
178 | disabled={scope.row.isBottom} | 180 | disabled={scope.row.isBottom} |
179 | onClick={() => { | 181 | onClick={() => { |
180 | this.moveDown(scope.$index, scope.row); | 182 | this.moveDown(scope.$index, scope.row); |
... | @@ -187,13 +189,14 @@ | ... | @@ -187,13 +189,14 @@ |
187 | }, | 189 | }, |
188 | }, | 190 | }, |
189 | { | 191 | { |
190 | width: "100", | 192 | width: "200", |
191 | label: "操作", | 193 | label: "操作", |
192 | render: (h, scope) => { | 194 | render: (h, scope) => { |
193 | return ( | 195 | return ( |
194 | <div> | 196 | <div> |
195 | <el-button | 197 | <el-button |
196 | type="text" | 198 | type="text" |
199 | class='resetbtnColor' | ||
197 | style="margin-right:10px" | 200 | style="margin-right:10px" |
198 | onClick={() => { | 201 | onClick={() => { |
199 | this.handleAddSubordinate(scope.row); | 202 | this.handleAddSubordinate(scope.row); |
... | @@ -203,6 +206,7 @@ | ... | @@ -203,6 +206,7 @@ |
203 | </el-button> | 206 | </el-button> |
204 | <el-button | 207 | <el-button |
205 | type="text" | 208 | type="text" |
209 | class='delColor' | ||
206 | style="margin-left:0" | 210 | style="margin-left:0" |
207 | onClick={() => { | 211 | onClick={() => { |
208 | this.handleMinus(scope.$index, scope.row); | 212 | this.handleMinus(scope.$index, scope.row); | ... | ... |
... | @@ -208,9 +208,9 @@ | ... | @@ -208,9 +208,9 @@ |
208 | message: res.message, | 208 | message: res.message, |
209 | showClose: true | 209 | showClose: true |
210 | }) | 210 | }) |
211 | 211 | close() | |
212 | this.resetForm() | ||
213 | this.$emit('ok') | 212 | this.$emit('ok') |
213 | |||
214 | } else { | 214 | } else { |
215 | this.$message.error({ message: res.message, showClose: true }) | 215 | this.$message.error({ message: res.message, showClose: true }) |
216 | } | 216 | } | ... | ... |
... | @@ -29,181 +29,182 @@ | ... | @@ -29,181 +29,182 @@ |
29 | </div> | 29 | </div> |
30 | </template> | 30 | </template> |
31 | <script> | 31 | <script> |
32 | // 定时任务 | 32 | // 定时任务 |
33 | import data from "./data"; | 33 | import data from "./data"; |
34 | import { deleteAction, getAction, api } from "@/api/manageApi"; | 34 | import { deleteAction, getAction, api } from "@/api/manageApi"; |
35 | import EditDialog from "./edit-dialog.vue"; | 35 | import EditDialog from "./edit-dialog.vue"; |
36 | import { mapGetters } from "vuex"; | 36 | import { mapGetters } from "vuex"; |
37 | import { getMenuInfo } from "@/api/user"; | 37 | import { getMenuInfo } from "@/api/user"; |
38 | import { | 38 | import { |
39 | getUuid, | 39 | getUuid, |
40 | judgeSort, | 40 | judgeSort, |
41 | realMove, | 41 | realMove, |
42 | findParents, | 42 | findParents, |
43 | removeTreeListItem, | 43 | removeTreeListItem, |
44 | } from "@/utils/operation"; | 44 | } from "@/utils/operation"; |
45 | export default { | 45 | export default { |
46 | name: "menus", | 46 | name: "menus", |
47 | components: { | 47 | components: { |
48 | EditDialog, | 48 | EditDialog, |
49 | }, | 49 | }, |
50 | data () { | 50 | data () { |
51 | return { | 51 | return { |
52 | isDialog: false, | 52 | isDialog: false, |
53 | tablelistData: [], | 53 | tablelistData: [], |
54 | listData: [], | 54 | listData: [], |
55 | resourceCategoryId: "", | 55 | resourceCategoryId: "", |
56 | taskData: null, | 56 | taskData: null, |
57 | form: { | 57 | form: { |
58 | menuName: "", | 58 | menuName: "", |
59 | }, | 59 | }, |
60 | title: "", | 60 | title: "", |
61 | queryParam: {}, | 61 | queryParam: {}, |
62 | selectType: "0", | 62 | selectType: "0", |
63 | queryName: "", | 63 | queryName: "", |
64 | organizationId: "", // 组织机构ID | 64 | organizationId: "", // 组织机构ID |
65 | departmentId: "", // 部门ID | 65 | departmentId: "", // 部门ID |
66 | departmentList: [], // 部门列表 | 66 | departmentList: [], // 部门列表 |
67 | levelList: [], // 职务级别 | 67 | levelList: [], // 职务级别 |
68 | sexList: [], | 68 | sexList: [], |
69 | 69 | ||
70 | selectionList: [], | 70 | selectionList: [], |
71 | tableData: { | 71 | tableData: { |
72 | columns: [].concat(data.columns()).concat([ | 72 | columns: [].concat(data.columns()).concat([ |
73 | { | 73 | { |
74 | label: "操作", | 74 | label: "操作", |
75 | width: 380, | 75 | width: 380, |
76 | render: (h, scope) => { | 76 | render: (h, scope) => { |
77 | return ( | 77 | return ( |
78 | <div> | 78 | <div> |
79 | <el-button | 79 | <el-button |
80 | type="text" | 80 | type="text" |
81 | class='successColor' | 81 | class='successColor' |
82 | onClick={() => { | 82 | onClick={() => { |
83 | this.handleEdit(scope.row); | 83 | this.handleEdit(scope.row); |
84 | }} | 84 | }} |
85 | > | 85 | > |
86 | 修改 | 86 | 修改 |
87 | </el-button> | 87 | </el-button> |
88 | 88 | ||
89 | <el-button | 89 | <el-button |
90 | type="text" | 90 | type="text" |
91 | class='delColor' | 91 | class='delColor' |
92 | onClick={() => { | 92 | onClick={() => { |
93 | this.handleDelete(scope.row.id, scope.row.name); | 93 | this.handleDelete(scope.row.id, scope.row.name); |
94 | }} | 94 | }} |
95 | > | 95 | > |
96 | 删除 | 96 | 删除 |
97 | </el-button> | 97 | </el-button> |
98 | </div> | 98 | </div> |
99 | ); | 99 | ); |
100 | }, | ||
100 | }, | 101 | }, |
101 | }, | 102 | ]), |
102 | ]), | 103 | data: [], |
103 | data: [], | 104 | }, |
104 | }, | 105 | tableUrl: api.menus, // 菜单接口地址 |
105 | tableUrl: api.menus, // 菜单接口地址 | 106 | meumurlid: api.subsystem,// 项目id接口地址 |
106 | meumurlid: api.subsystem,// 项目id接口地址 | 107 | productId: ""//项目id |
107 | productId: ""//项目id | 108 | }; |
108 | }; | 109 | }, |
109 | }, | 110 | created () { |
110 | created () { | 111 | this.getTableList(); |
111 | this.getTableList(); | ||
112 | }, | ||
113 | computed: { | ||
114 | ...mapGetters(["products"]) | ||
115 | }, | ||
116 | methods: { | ||
117 | //查询 | ||
118 | searchQuery () { | ||
119 | if (this.form.menuName) { | ||
120 | this.tablelistData = this.childrenFn(this.listData, this.form.menuName); | ||
121 | } else { | ||
122 | this.getTableList() | ||
123 | } | ||
124 | }, | 112 | }, |
125 | childrenFn (arr, key) { | 113 | computed: { |
126 | const that = this; | 114 | ...mapGetters(["products"]) |
127 | let searchTree = []; | 115 | }, |
128 | arr.forEach((item, index) => { | 116 | methods: { |
129 | if (item.children != undefined && item.children.length != 0) { | 117 | //查询 |
130 | let leaf = that.childrenFn(item.children, key); | 118 | searchQuery () { |
131 | if (leaf != undefined) { | 119 | if (this.form.menuName) { |
132 | let { name, code, resourceCategoryId, id, iproductId, operations, metadata } = item; | 120 | this.tablelistData = this.childrenFn(this.listData, this.form.menuName); |
133 | let parentObj = { | 121 | } else { |
134 | code, name, resourceCategoryId, id, iproductId, operations, metadata, children: leaf | 122 | this.getTableList() |
135 | }; | 123 | } |
136 | searchTree.push(parentObj); | 124 | }, |
125 | childrenFn (arr, key) { | ||
126 | const that = this; | ||
127 | let searchTree = []; | ||
128 | arr.forEach((item, index) => { | ||
129 | if (item.children != undefined && item.children.length != 0) { | ||
130 | let leaf = that.childrenFn(item.children, key); | ||
131 | if (leaf != undefined) { | ||
132 | let { name, code, resourceCategoryId, id, iproductId, operations, metadata } = item; | ||
133 | let parentObj = { | ||
134 | code, name, resourceCategoryId, id, iproductId, operations, metadata, children: leaf | ||
135 | }; | ||
136 | searchTree.push(parentObj); | ||
137 | } else { | ||
138 | if (item.name.indexOf(key) != -1) { | ||
139 | searchTree.push(item); | ||
140 | } | ||
141 | } | ||
137 | } else { | 142 | } else { |
138 | if (item.name.indexOf(key) != -1) { | 143 | if (item.name.indexOf(key) != -1) { |
144 | |||
139 | searchTree.push(item); | 145 | searchTree.push(item); |
140 | } | 146 | } |
141 | } | 147 | } |
142 | } else { | 148 | }); |
143 | if (item.name.indexOf(key) != -1) { | 149 | if (searchTree != undefined && searchTree.length != 0) { |
144 | 150 | return searchTree; | |
145 | searchTree.push(item); | ||
146 | } | ||
147 | } | 151 | } |
148 | }); | 152 | }, |
149 | if (searchTree != undefined && searchTree.length != 0) { | 153 | // 加载表格数据 |
150 | return searchTree; | 154 | getTableList () { |
151 | } | 155 | getMenuInfo(this.BASE_API.CODE).then((res) => { |
152 | }, | 156 | console.log("/sthj", res); |
153 | // 加载表格数据 | 157 | if (res.code === 200) { |
154 | getTableList () { | 158 | this.tablelistData = judgeSort(res.result) |
155 | getMenuInfo(this.BASE_API.CODE).then((res) => { | 159 | this.listData = this.tablelistData |
156 | if (res.code === 200) { | 160 | } else { |
157 | this.tablelistData = judgeSort(res.result) | 161 | this.$message.error({ message: res.message, showClose: true }) |
158 | this.listData = this.tablelistData | 162 | } |
159 | } else { | ||
160 | this.$message.error({ message: res.message, showClose: true }) | ||
161 | } | ||
162 | }) | ||
163 | const queryOptionsid = { | ||
164 | conditionGroup: { | ||
165 | queryRelation: "AND", | ||
166 | conditions: [ | ||
167 | { | ||
168 | property: "code", | ||
169 | value: sessionStorage.getItem("products"), | ||
170 | operator: "EQ", | ||
171 | }, | ||
172 | ], | ||
173 | }, | ||
174 | }; | ||
175 | const params = { | ||
176 | queryOptions: queryOptionsid, | ||
177 | }; | ||
178 | // 获取系统id | ||
179 | getAction(this.meumurlid, params) | ||
180 | .then((res) => { | ||
181 | this.productId = res.content[0].id; | ||
182 | this.getAuthorityList(res.content[0].id, res.content[0].code) | ||
183 | this.selectedSubsystemCode = res.content[0].code | ||
184 | |||
185 | }) | ||
186 | .catch((error) => { | ||
187 | console.log("er", error); | ||
188 | }) | 163 | }) |
189 | }, | 164 | const queryOptionsid = { |
190 | // 新增菜单 | 165 | conditionGroup: { |
191 | handleAdd () { | 166 | queryRelation: "AND", |
192 | this.isDialog = true | 167 | conditions: [ |
193 | this.$refs.dialogForm.add(); | 168 | { |
194 | this.$refs.dialogForm.title = "新增"; | 169 | property: "code", |
195 | }, | 170 | value: this.BASE_API.CODE, |
171 | operator: "EQ", | ||
172 | }, | ||
173 | ], | ||
174 | }, | ||
175 | }; | ||
176 | const params = { | ||
177 | queryOptions: queryOptionsid, | ||
178 | }; | ||
179 | // 获取系统id | ||
180 | getAction(this.meumurlid, params) | ||
181 | .then((res) => { | ||
182 | this.productId = res.content[0].id; | ||
183 | this.getAuthorityList(res.content[0].id, res.content[0].code) | ||
184 | this.selectedSubsystemCode = res.content[0].code | ||
196 | 185 | ||
197 | // 修改 | 186 | }) |
198 | handleEdit (record) { | 187 | .catch((error) => { |
199 | this.isDialog = true | 188 | console.log("er", error); |
200 | this.$refs.dialogForm.edit(record); | 189 | }) |
201 | this.$refs.dialogForm.title = "修改"; | 190 | }, |
202 | }, | 191 | // 新增菜单 |
203 | // 删除 | 192 | handleAdd () { |
204 | handleDelete (id, content) { | 193 | this.isDialog = true |
205 | this.$confirm( | 194 | this.$refs.dialogForm.add(); |
206 | `<div class="customer-message-wrapper"> | 195 | this.$refs.dialogForm.title = "新增"; |
196 | }, | ||
197 | |||
198 | // 修改 | ||
199 | handleEdit (record) { | ||
200 | this.isDialog = true | ||
201 | this.$refs.dialogForm.edit(record); | ||
202 | this.$refs.dialogForm.title = "修改"; | ||
203 | }, | ||
204 | // 删除 | ||
205 | handleDelete (id, content) { | ||
206 | this.$confirm( | ||
207 | `<div class="customer-message-wrapper"> | ||
207 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> | 208 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> |
208 | <p class="content" aria-controls="${content}">${content} | 209 | <p class="content" aria-controls="${content}">${content} |
209 | </p> | 210 | </p> |
... | @@ -211,48 +212,48 @@ export default { | ... | @@ -211,48 +212,48 @@ export default { |
211 | <span >无法恢复</span> | 212 | <span >无法恢复</span> |
212 | </p> | 213 | </p> |
213 | </div>`, | 214 | </div>`, |
214 | '执行确认', | 215 | '执行确认', |
215 | { | 216 | { |
216 | dangerouslyUseHTMLString: true, | 217 | dangerouslyUseHTMLString: true, |
217 | customClass: 'customer-delete', | 218 | customClass: 'customer-delete', |
218 | confirmButtonText: '确定', | 219 | confirmButtonText: '确定', |
219 | cancelButtonText: '取消', | 220 | cancelButtonText: '取消', |
220 | type: 'warning' | 221 | type: 'warning' |
221 | } | ||
222 | ) | ||
223 | .then(() => { | ||
224 | if (!this.tableUrl) { | ||
225 | this.$message.error({ | ||
226 | message: '请设置tableUrl属性为接口地址!', | ||
227 | showClose: true | ||
228 | }) | ||
229 | return | ||
230 | } | 222 | } |
231 | const url = this.tableUrl + '/' + id | 223 | ) |
232 | deleteAction(url).then(res => { | 224 | .then(() => { |
233 | if (res.status === 1) { | 225 | if (!this.tableUrl) { |
234 | this.$message.success({ message: res.message, showClose: true }) | 226 | this.$message.error({ |
235 | this.reloadTableData() | 227 | message: '请设置tableUrl属性为接口地址!', |
236 | } else { | 228 | showClose: true |
237 | this.$message.error({ message: res.message, showClose: true }) | 229 | }) |
230 | return | ||
238 | } | 231 | } |
232 | const url = this.tableUrl + '/' + id | ||
233 | deleteAction(url).then(res => { | ||
234 | if (res.status === 1) { | ||
235 | this.$message.success({ message: res.message, showClose: true }) | ||
236 | this.reloadTableData() | ||
237 | } else { | ||
238 | this.$message.error({ message: res.message, showClose: true }) | ||
239 | } | ||
240 | }) | ||
239 | }) | 241 | }) |
240 | }) | 242 | .catch(() => { }) |
241 | .catch(() => { }) | 243 | }, |
242 | }, | 244 | // 新增、编辑回显 |
243 | // 新增、编辑回显 | 245 | reloadTableData () { |
244 | reloadTableData () { | 246 | this.getTableList() |
245 | this.getTableList() | 247 | }, |
246 | }, | 248 | }, |
247 | }, | 249 | }; |
248 | }; | ||
249 | </script> | 250 | </script> |
250 | <style scoped lang="scss"> | 251 | <style scoped lang="scss"> |
251 | @import "~@/styles/mixin.scss"; | 252 | @import "~@/styles/mixin.scss"; |
252 | 253 | ||
253 | // @import "~@/styles/public.scss"; | 254 | // @import "~@/styles/public.scss"; |
254 | 255 | ||
255 | /deep/.el-table__expand-icon { | 256 | /deep/.el-table__expand-icon { |
256 | color: #fff; | 257 | color: #fff; |
257 | } | 258 | } |
258 | </style> | 259 | </style> | ... | ... |
... | @@ -29,439 +29,439 @@ | ... | @@ -29,439 +29,439 @@ |
29 | </div> | 29 | </div> |
30 | </template> | 30 | </template> |
31 | <script> | 31 | <script> |
32 | import { | 32 | import { |
33 | getUuid, | 33 | getUuid, |
34 | judgeSort, | 34 | judgeSort, |
35 | realMove, | 35 | realMove, |
36 | findParents, | 36 | findParents, |
37 | removeTreeListItem, | 37 | removeTreeListItem, |
38 | } from "@/utils/operation"; | 38 | } from "@/utils/operation"; |
39 | import { getRolesById, getAuthorityListAction } from "@/api/authorityManage"; | 39 | import { getRolesById, getAuthorityListAction } from "@/api/authorityManage"; |
40 | import { getUserRoles } from "@/api/personnelManage"; | 40 | import { getUserRoles } from "@/api/personnelManage"; |
41 | import data from "./data"; | 41 | import data from "./data"; |
42 | import { getMenuInfo } from "@/api/user"; | 42 | import { getMenuInfo } from "@/api/user"; |
43 | import { api, getAction, deleteAction } from "@/api/manageApi"; | 43 | import { api, getAction, deleteAction } from "@/api/manageApi"; |
44 | import tableMixin from "@/mixins/tableMixin.js"; | 44 | import tableMixin from "@/mixins/tableMixin.js"; |
45 | import EditDialog from "./edit-dialog.vue"; | 45 | import EditDialog from "./edit-dialog.vue"; |
46 | import Roleslistdiglog from "./roleslistdiglog.vue"; | 46 | import Roleslistdiglog from "./roleslistdiglog.vue"; |
47 | import { mapGetters } from "vuex"; | 47 | import { mapGetters } from "vuex"; |
48 | import { updateOrder } from "@/api/orders" | 48 | import { updateOrder } from "@/api/orders" |
49 | export default { | 49 | export default { |
50 | name: "menus", | 50 | name: "menus", |
51 | mixins: [tableMixin], | 51 | mixins: [tableMixin], |
52 | components: { | 52 | components: { |
53 | EditDialog, | 53 | EditDialog, |
54 | Roleslistdiglog, | 54 | Roleslistdiglog, |
55 | }, | 55 | }, |
56 | data () { | 56 | data () { |
57 | return { | 57 | return { |
58 | isDialog: false, | 58 | isDialog: false, |
59 | personlist: null, | 59 | personlist: null, |
60 | waitMemberList: [], | 60 | waitMemberList: [], |
61 | keyList: [], | 61 | keyList: [], |
62 | listdata: [], | 62 | listdata: [], |
63 | setlistdata: [], | 63 | setlistdata: [], |
64 | tableUrlroles: api.roles, | 64 | tableUrlroles: api.roles, |
65 | form: { | 65 | form: { |
66 | rolesName: "", | 66 | rolesName: "", |
67 | }, | ||
68 | // 当前所选角色id | ||
69 | roleId: "", | ||
70 | title: "", | ||
71 | queryParam: {}, | ||
72 | multipleSelection: [], | ||
73 | // 菜单列表 | ||
74 | menutablelistData: [], | ||
75 | tableUrl: api.menus, // 菜单接口地址 | ||
76 | meumurlid: api.subsystem, // 项目id接口地址 | ||
77 | selectType: "0", | ||
78 | queryName: "", | ||
79 | organizationId: "", // 组织机构ID | ||
80 | departmentId: "", // 部门ID | ||
81 | departmentList: [], // 部门列表 | ||
82 | levelList: [], // 职务级别 | ||
83 | sexList: [], | ||
84 | operationCodes: null, // 操作符对象 | ||
85 | operationList: [], // 获取授权列表需要提交的操作符数组 | ||
86 | typeOptions: [ | ||
87 | { | ||
88 | value: "0", | ||
89 | label: "姓名", | ||
90 | }, | ||
91 | { | ||
92 | value: "1", | ||
93 | label: "工号", | ||
94 | }, | ||
95 | { | ||
96 | value: "2", | ||
97 | label: "部门", | ||
98 | }, | ||
99 | { | ||
100 | value: "3", | ||
101 | label: "机构", | ||
102 | }, | 67 | }, |
103 | ], | 68 | // 当前所选角色id |
104 | 69 | roleId: "", | |
105 | selectionList: [], | 70 | title: "", |
106 | tableData: { | 71 | queryParam: {}, |
107 | columns: [ | 72 | multipleSelection: [], |
73 | // 菜单列表 | ||
74 | menutablelistData: [], | ||
75 | tableUrl: api.menus, // 菜单接口地址 | ||
76 | meumurlid: api.subsystem, // 项目id接口地址 | ||
77 | selectType: "0", | ||
78 | queryName: "", | ||
79 | organizationId: "", // 组织机构ID | ||
80 | departmentId: "", // 部门ID | ||
81 | departmentList: [], // 部门列表 | ||
82 | levelList: [], // 职务级别 | ||
83 | sexList: [], | ||
84 | operationCodes: null, // 操作符对象 | ||
85 | operationList: [], // 获取授权列表需要提交的操作符数组 | ||
86 | typeOptions: [ | ||
108 | { | 87 | { |
109 | label: "序号", | 88 | value: "0", |
110 | type: "index", | 89 | label: "姓名", |
111 | width: "50", | ||
112 | index: this.indexMethod, | ||
113 | }, | 90 | }, |
114 | ] | 91 | { |
115 | .concat(data.columns()) | 92 | value: "1", |
116 | .concat([ | 93 | label: "工号", |
94 | }, | ||
95 | { | ||
96 | value: "2", | ||
97 | label: "部门", | ||
98 | }, | ||
99 | { | ||
100 | value: "3", | ||
101 | label: "机构", | ||
102 | }, | ||
103 | ], | ||
104 | |||
105 | selectionList: [], | ||
106 | tableData: { | ||
107 | columns: [ | ||
117 | { | 108 | { |
118 | label: "排序", | 109 | label: "序号", |
119 | width: 300, | 110 | type: "index", |
120 | render: (h, scope) => { | 111 | width: "50", |
121 | return ( | 112 | index: this.indexMethod, |
122 | <div> | ||
123 | <el-button | ||
124 | type="text" | ||
125 | class='movebtnColor' | ||
126 | disabled={scope.row.isTop} | ||
127 | onClick={() => { | ||
128 | this.updateOrder(scope.row, 'TOP'); | ||
129 | }} | ||
130 | > | ||
131 | 置顶 | ||
132 | </el-button> | ||
133 | <el-button | ||
134 | type="text" | ||
135 | class='movebtnColor' | ||
136 | disabled={scope.row.isTop} | ||
137 | onClick={() => { | ||
138 | this.updateOrder(scope.row, 'UP'); | ||
139 | }} | ||
140 | > | ||
141 | 上移 | ||
142 | </el-button> | ||
143 | <el-button | ||
144 | type="text" | ||
145 | class='movebtnColor' | ||
146 | disabled={scope.row.isBottom} | ||
147 | onClick={() => { | ||
148 | this.updateOrder(scope.row, 'DOWN'); | ||
149 | }} | ||
150 | > | ||
151 | 下移 | ||
152 | </el-button> | ||
153 | <el-button | ||
154 | type="text" | ||
155 | class='movebtnColor' | ||
156 | disabled={scope.row.isBottom} | ||
157 | onClick={() => { | ||
158 | this.updateOrder(scope.row, 'BOTTOM'); | ||
159 | }} | ||
160 | > | ||
161 | 置底 | ||
162 | </el-button> | ||
163 | </div> | ||
164 | ); | ||
165 | }, | ||
166 | }, | 113 | }, |
167 | ]) | 114 | ] |
168 | .concat([ | 115 | .concat(data.columns()) |
169 | { | 116 | .concat([ |
170 | label: "操作", | 117 | { |
171 | width: 280, | 118 | label: "排序", |
172 | render: (h, scope) => { | 119 | width: 300, |
173 | return ( | 120 | render: (h, scope) => { |
174 | <div> | 121 | return ( |
175 | <el-tooltip | 122 | <div> |
176 | class="item" | 123 | <el-button |
177 | effect="dark" | 124 | type="text" |
178 | disabled={scope.row.type !== "Everyone"} | 125 | class='movebtnColor' |
179 | content="没有点击的权限" | 126 | disabled={scope.row.isTop} |
180 | placement="top" | 127 | onClick={() => { |
181 | > | 128 | this.updateOrder(scope.row, 'TOP'); |
182 | <span> | 129 | }} |
183 | <el-button | 130 | > |
184 | disabled={scope.row.type === "Everyone"} | 131 | 置顶 |
185 | type="text" | 132 | </el-button> |
186 | size="mini" | 133 | <el-button |
187 | class="configurationbtnColor" | 134 | type="text" |
188 | onClick={() => { | 135 | class='movebtnColor' |
189 | this.getList(scope.row); | 136 | disabled={scope.row.isTop} |
190 | }} | 137 | onClick={() => { |
191 | > | 138 | this.updateOrder(scope.row, 'UP'); |
192 | 配置 | 139 | }} |
193 | </el-button> | 140 | > |
194 | </span> | 141 | 上移 |
195 | </el-tooltip> | 142 | </el-button> |
196 | <el-tooltip | 143 | <el-button |
197 | class="item" | 144 | type="text" |
198 | effect="dark" | 145 | class='movebtnColor' |
199 | disabled={scope.row.category !== 1} | 146 | disabled={scope.row.isBottom} |
200 | content="系统内置角色 不允许修改" | 147 | onClick={() => { |
201 | placement="top" | 148 | this.updateOrder(scope.row, 'DOWN'); |
202 | > | 149 | }} |
203 | <span> | 150 | > |
204 | <el-button | 151 | 下移 |
205 | disabled={scope.row.category === 1} | 152 | </el-button> |
206 | type="text" | 153 | <el-button |
207 | size="mini" | 154 | type="text" |
208 | class='successColor' | 155 | class='movebtnColor' |
209 | onClick={() => { | 156 | disabled={scope.row.isBottom} |
210 | this.handleAddEdit(scope.row); | 157 | onClick={() => { |
211 | }} | 158 | this.updateOrder(scope.row, 'BOTTOM'); |
212 | > | 159 | }} |
213 | 修改 | 160 | > |
214 | </el-button> | 161 | 置底 |
215 | </span> | 162 | </el-button> |
216 | </el-tooltip> | 163 | </div> |
217 | <el-tooltip | 164 | ); |
218 | class="item" | 165 | }, |
219 | effect="dark" | ||
220 | disabled={scope.row.category !== 1} | ||
221 | content="系统内置角色 不允许删除" | ||
222 | placement="top" | ||
223 | > | ||
224 | <span> | ||
225 | <el-button | ||
226 | type="text" | ||
227 | disabled={scope.row.category === 1} | ||
228 | size="mini" | ||
229 | class='delColor' | ||
230 | // style="color:#F56C6C" | ||
231 | onClick={() => { | ||
232 | this.handleDelete(scope.row.id, scope.row.name); | ||
233 | }} | ||
234 | > | ||
235 | 删除 | ||
236 | </el-button> | ||
237 | </span> | ||
238 | </el-tooltip> | ||
239 | </div> | ||
240 | ); | ||
241 | }, | 166 | }, |
167 | ]) | ||
168 | .concat([ | ||
169 | { | ||
170 | label: "操作", | ||
171 | width: 280, | ||
172 | render: (h, scope) => { | ||
173 | return ( | ||
174 | <div> | ||
175 | <el-tooltip | ||
176 | class="item" | ||
177 | effect="dark" | ||
178 | disabled={scope.row.type !== "Everyone"} | ||
179 | content="没有点击的权限" | ||
180 | placement="top" | ||
181 | > | ||
182 | <span> | ||
183 | <el-button | ||
184 | disabled={scope.row.type === "Everyone"} | ||
185 | type="text" | ||
186 | size="mini" | ||
187 | class="configurationbtnColor" | ||
188 | onClick={() => { | ||
189 | this.getList(scope.row); | ||
190 | }} | ||
191 | > | ||
192 | 配置 | ||
193 | </el-button> | ||
194 | </span> | ||
195 | </el-tooltip> | ||
196 | <el-tooltip | ||
197 | class="item" | ||
198 | effect="dark" | ||
199 | disabled={scope.row.category !== 1} | ||
200 | content="系统内置角色 不允许修改" | ||
201 | placement="top" | ||
202 | > | ||
203 | <span> | ||
204 | <el-button | ||
205 | disabled={scope.row.category === 1} | ||
206 | type="text" | ||
207 | size="mini" | ||
208 | class='successColor' | ||
209 | onClick={() => { | ||
210 | this.handleAddEdit(scope.row); | ||
211 | }} | ||
212 | > | ||
213 | 修改 | ||
214 | </el-button> | ||
215 | </span> | ||
216 | </el-tooltip> | ||
217 | <el-tooltip | ||
218 | class="item" | ||
219 | effect="dark" | ||
220 | disabled={scope.row.category !== 1} | ||
221 | content="系统内置角色 不允许删除" | ||
222 | placement="top" | ||
223 | > | ||
224 | <span> | ||
225 | <el-button | ||
226 | type="text" | ||
227 | disabled={scope.row.category === 1} | ||
228 | size="mini" | ||
229 | class='delColor' | ||
230 | // style="color:#F56C6C" | ||
231 | onClick={() => { | ||
232 | this.handleDelete(scope.row.id, scope.row.name); | ||
233 | }} | ||
234 | > | ||
235 | 删除 | ||
236 | </el-button> | ||
237 | </span> | ||
238 | </el-tooltip> | ||
239 | </div> | ||
240 | ); | ||
241 | }, | ||
242 | 242 | ||
243 | }]), | 243 | }]), |
244 | }, | 244 | }, |
245 | data: [], | 245 | data: [], |
246 | } | ||
247 | }, | ||
248 | created () { | ||
249 | this.getTableData(); | ||
250 | this.getTableList() | ||
251 | }, | ||
252 | computed: { | ||
253 | ...mapGetters(["products"]) | ||
254 | }, | ||
255 | mounted () { }, | ||
256 | methods: { | ||
257 | //查询 | ||
258 | searchQuery () { | ||
259 | if (this.form.rolesName) { | ||
260 | this.listdata = this.childrenFn(this.setlistdata, this.form.rolesName); | ||
261 | } else { | ||
262 | this.getTableData() | ||
263 | } | 246 | } |
264 | }, | 247 | }, |
265 | childrenFn (arr, key) { | 248 | created () { |
266 | let searchTree = []; | 249 | this.getTableData(); |
267 | arr.forEach((item, index) => { | 250 | this.getTableList() |
268 | if (item.name.indexOf(key) != -1) { | ||
269 | |||
270 | searchTree.push(item); | ||
271 | } | ||
272 | }); | ||
273 | if (searchTree != undefined && searchTree.length != 0) { | ||
274 | return judgeSort(searchTree); | ||
275 | } | ||
276 | }, | 251 | }, |
277 | // 获取角色列表 | 252 | computed: { |
278 | getTableData () { | 253 | ...mapGetters(["products"]) |
279 | getRolesById([1, 2]) | ||
280 | .then((res) => { | ||
281 | this.listdata = res.content; | ||
282 | this.listdata = judgeSort(this.listdata); | ||
283 | this.setlistdata = res.content; | ||
284 | }) | ||
285 | .catch((e) => console.error(e)); | ||
286 | }, | 254 | }, |
287 | 255 | mounted () { }, | |
288 | // 获取菜单列表 | 256 | methods: { |
289 | getTableList () { | 257 | //查询 |
290 | getMenuInfo(this.BASE_API.CODE).then((res) => { | 258 | searchQuery () { |
291 | if (res.code === 200) { | 259 | if (this.form.rolesName) { |
292 | this.menutablelistData = judgeSort(res.result) | 260 | this.listdata = this.childrenFn(this.setlistdata, this.form.rolesName); |
293 | } else { | 261 | } else { |
294 | this.$message.error({ message: res.message, showClose: true }) | 262 | this.getTableData() |
295 | } | 263 | } |
296 | }) | 264 | }, |
297 | const queryOptionsid = { | 265 | childrenFn (arr, key) { |
298 | conditionGroup: { | 266 | let searchTree = []; |
299 | queryRelation: "AND", | 267 | arr.forEach((item, index) => { |
300 | conditions: [ | 268 | if (item.name.indexOf(key) != -1) { |
301 | { | 269 | |
302 | property: "code", | 270 | searchTree.push(item); |
303 | value: this.products, | 271 | } |
304 | operator: "EQ", | ||
305 | }, | ||
306 | ], | ||
307 | }, | ||
308 | }; | ||
309 | const params = { | ||
310 | queryOptions: queryOptionsid, | ||
311 | }; | ||
312 | // 获取系统id | ||
313 | getAction(this.meumurlid, params) | ||
314 | .then((res) => { | ||
315 | this.productId = res.content[0].id; | ||
316 | this.getAuthorityList(res.content[0].id, res.content[0].code) | ||
317 | this.selectedSubsystemCode = res.content[0].code | ||
318 | // let queryOptions = { | ||
319 | // conditionGroup: { | ||
320 | // conditions: [ | ||
321 | // { | ||
322 | // property: "productId", | ||
323 | // value: this.productId, | ||
324 | // operator: "EQ", | ||
325 | // }, | ||
326 | // ], | ||
327 | // queryRelation: "AND", | ||
328 | // }, | ||
329 | // orderBys: [{ property: "sort", direction: "desc" }], | ||
330 | // }; | ||
331 | // if (!this.tableUrl) { | ||
332 | // console.log("请设置tableUrl属性为接口地址!"); | ||
333 | // return; | ||
334 | // } | ||
335 | // if (this.queryOptions !== "") { | ||
336 | // this.queryParam.queryOptions = JSON.stringify(queryOptions); | ||
337 | // } | ||
338 | // 查询系统菜单 | ||
339 | // getAction(this.tableUrl, this.queryParam) | ||
340 | // .then((res) => { | ||
341 | // if (res.status === 1) { | ||
342 | // this.loading = false; | ||
343 | // // this.menutablelistData = res.content; | ||
344 | // console.log("res.content菜单", res.content); | ||
345 | // } else { | ||
346 | // this.$message.error({ message: res.message, showClose: true }); | ||
347 | // this.loading = false; | ||
348 | // } | ||
349 | // }) | ||
350 | // .catch((error) => { | ||
351 | // console.log("er", error); | ||
352 | // this.loading = false; | ||
353 | // }); | ||
354 | }) | ||
355 | .catch((error) => { | ||
356 | console.log("er", error); | ||
357 | }); | 272 | }); |
358 | }, | 273 | if (searchTree != undefined && searchTree.length != 0) { |
359 | // 获取权限列表 | 274 | return judgeSort(searchTree); |
360 | getAuthorityList (productId, code) { | 275 | } |
361 | getAuthorityListAction(productId, code).then( | 276 | }, |
362 | res => { | 277 | // 获取角色列表 |
363 | if (res.status === 1) { | 278 | getTableData () { |
364 | if (res.content.length !== 0) { | 279 | getRolesById([1, 2]) |
365 | this.operationCodes = res.content[0].operations | 280 | .then((res) => { |
366 | this.operationList = [] | 281 | this.listdata = res.content; |
367 | for (var k in this.operationCodes) { | 282 | this.listdata = judgeSort(this.listdata); |
368 | this.operationList.push(k) | 283 | this.setlistdata = res.content; |
369 | } | 284 | }) |
370 | } | 285 | .catch((e) => console.error(e)); |
286 | }, | ||
287 | |||
288 | // 获取菜单列表 | ||
289 | getTableList () { | ||
290 | getMenuInfo(this.BASE_API.CODE).then((res) => { | ||
291 | if (res.code === 200) { | ||
292 | this.menutablelistData = judgeSort(res.result) | ||
371 | } else { | 293 | } else { |
372 | this.$message.error({ message: res.message, showClose: true }) | 294 | this.$message.error({ message: res.message, showClose: true }) |
373 | } | 295 | } |
374 | } | 296 | }) |
375 | ) | 297 | const queryOptionsid = { |
376 | }, | 298 | conditionGroup: { |
377 | 299 | queryRelation: "AND", | |
378 | // 配置 | 300 | conditions: [ |
379 | getList (row) { | 301 | { |
380 | this.getTableList() | 302 | property: "code", |
381 | const params = {}; | 303 | value: this.products, |
382 | const queryOptions = { | 304 | operator: "EQ", |
383 | conditionGroup: { | 305 | }, |
384 | conditions: [ | 306 | ], |
385 | { | 307 | }, |
386 | property: "organizationId", | 308 | }; |
387 | value: row.organizationId, | 309 | const params = { |
388 | operator: "EQ", | 310 | queryOptions: queryOptionsid, |
389 | }, | 311 | }; |
390 | { | 312 | // 获取系统id |
391 | property: "departmentId", | 313 | getAction(this.meumurlid, params) |
392 | value: row.departmentId, | 314 | .then((res) => { |
393 | operator: "EQ", | 315 | this.productId = res.content[0].id; |
394 | }, | 316 | this.getAuthorityList(res.content[0].id, res.content[0].code) |
395 | ], | 317 | this.selectedSubsystemCode = res.content[0].code |
396 | queryRelation: "AND", | 318 | // let queryOptions = { |
397 | }, | 319 | // conditionGroup: { |
398 | orderBys: [{ property: "sort", direction: "desc" }], | 320 | // conditions: [ |
399 | }; | 321 | // { |
400 | params.queryOptions = JSON.stringify(queryOptions); | 322 | // property: "productId", |
401 | 323 | // value: this.productId, | |
402 | getUserRoles(row.id).then((res) => { | 324 | // operator: "EQ", |
403 | if (res.status === 1) { | 325 | // }, |
404 | this.personlist = res.content; | 326 | // ], |
405 | getAction(api.users, params).then((res) => { | 327 | // queryRelation: "AND", |
328 | // }, | ||
329 | // orderBys: [{ property: "sort", direction: "desc" }], | ||
330 | // }; | ||
331 | // if (!this.tableUrl) { | ||
332 | // console.log("请设置tableUrl属性为接口地址!"); | ||
333 | // return; | ||
334 | // } | ||
335 | // if (this.queryOptions !== "") { | ||
336 | // this.queryParam.queryOptions = JSON.stringify(queryOptions); | ||
337 | // } | ||
338 | // 查询系统菜单 | ||
339 | // getAction(this.tableUrl, this.queryParam) | ||
340 | // .then((res) => { | ||
341 | // if (res.status === 1) { | ||
342 | // this.loading = false; | ||
343 | // // this.menutablelistData = res.content; | ||
344 | // console.log("res.content菜单", res.content); | ||
345 | // } else { | ||
346 | // this.$message.error({ message: res.message, showClose: true }); | ||
347 | // this.loading = false; | ||
348 | // } | ||
349 | // }) | ||
350 | // .catch((error) => { | ||
351 | // console.log("er", error); | ||
352 | // this.loading = false; | ||
353 | // }); | ||
354 | }) | ||
355 | .catch((error) => { | ||
356 | console.log("er", error); | ||
357 | }); | ||
358 | }, | ||
359 | // 获取权限列表 | ||
360 | getAuthorityList (productId, code) { | ||
361 | getAuthorityListAction(productId, code).then( | ||
362 | res => { | ||
406 | if (res.status === 1) { | 363 | if (res.status === 1) { |
407 | this.waitMemberList = res.content; | 364 | if (res.content.length !== 0) { |
408 | if (this.personlist) { | 365 | this.operationCodes = res.content[0].operations |
409 | this.waitMemberList.forEach((item, i) => { | 366 | this.operationList = [] |
410 | this.personlist.forEach((val) => { | 367 | for (var k in this.operationCodes) { |
411 | if (item.id === val.id) { | 368 | this.operationList.push(k) |
412 | this.waitMemberList[i].selectStatus = 0; | 369 | } |
413 | } | ||
414 | }); | ||
415 | }); | ||
416 | } | 370 | } |
417 | |||
418 | this.$refs.rolesForm.personlist(this.waitMemberList, row.id); | ||
419 | this.$refs.rolesForm.menulist(this.operationList, row.id, this.selectedSubsystemCode, this.menutablelistData, this.operationCodes); | ||
420 | } else { | 371 | } else { |
421 | this.$message.error({ message: res.message, showClose: true }); | 372 | this.$message.error({ message: res.message, showClose: true }) |
422 | } | 373 | } |
423 | }); | 374 | } |
424 | this.$refs.rolesForm.title = "人员配置"; | 375 | ) |
425 | } else this.$message.error({ message: res.message, showClose: true }); | 376 | }, |
426 | }); | ||
427 | }, | ||
428 | // 新增、修改角色 | ||
429 | handleAddEdit (value) { | ||
430 | this.isDialog = true | ||
431 | this.$refs.addEditDialog.menuType = this.menuType; | ||
432 | this.$refs.addEditDialog.roleId = value.id; | ||
433 | this.roleSort = value.sort ? value.sort : 0; | ||
434 | this.$refs.addEditDialog.dialogForm.roleType = sessionStorage.getItem("products"); | ||
435 | if (value.id) { | ||
436 | this.$refs.addEditDialog.dialogForm.roleName = value.name; | ||
437 | 377 | ||
438 | this.$refs.addEditDialog.dialogForm.roleTextArea = value.description; | 378 | // 配置 |
439 | } | 379 | getList (row) { |
440 | this.$refs.addEditDialog.showAddEditDialog = true; | 380 | this.getTableList() |
441 | this.$refs.addEditDialog.title = value.id ? "修改" : "新增"; | 381 | const params = {}; |
442 | }, | 382 | const queryOptions = { |
443 | //排序 | 383 | conditionGroup: { |
444 | updateOrder (record, operate) { | 384 | conditions: [ |
445 | const findIndex = this.listdata.findIndex(item => item.id === record.id) | 385 | { |
446 | let swapId = '' | 386 | property: "organizationId", |
447 | if (operate === 'UP') { | 387 | value: row.organizationId, |
448 | swapId = this.listdata[findIndex - 1].id | 388 | operator: "EQ", |
449 | } else if (operate === 'DOWN') { | 389 | }, |
450 | swapId = this.listdata[findIndex + 1].id | 390 | { |
451 | } | 391 | property: "departmentId", |
452 | updateOrder('/rest/roles', record, operate, swapId).then(res => { | 392 | value: row.departmentId, |
453 | if (res.status === 1) { | 393 | operator: "EQ", |
454 | this.$message.success({ message: res.message, showClose: true }) | 394 | }, |
455 | this.getTableData(); | 395 | ], |
456 | } else { | 396 | queryRelation: "AND", |
457 | this.$message.error({ message: res.message, showClose: true }) | 397 | }, |
398 | orderBys: [{ property: "sort", direction: "desc" }], | ||
399 | }; | ||
400 | params.queryOptions = JSON.stringify(queryOptions); | ||
401 | |||
402 | getUserRoles(row.id).then((res) => { | ||
403 | if (res.status === 1) { | ||
404 | this.personlist = res.content; | ||
405 | getAction(api.users, params).then((res) => { | ||
406 | if (res.status === 1) { | ||
407 | this.waitMemberList = res.content; | ||
408 | if (this.personlist) { | ||
409 | this.waitMemberList.forEach((item, i) => { | ||
410 | this.personlist.forEach((val) => { | ||
411 | if (item.id === val.id) { | ||
412 | this.waitMemberList[i].selectStatus = 0; | ||
413 | } | ||
414 | }); | ||
415 | }); | ||
416 | } | ||
417 | |||
418 | this.$refs.rolesForm.personlist(this.waitMemberList, row.id); | ||
419 | this.$refs.rolesForm.menulist(this.operationList, row.id, this.selectedSubsystemCode, this.menutablelistData, this.operationCodes); | ||
420 | } else { | ||
421 | this.$message.error({ message: res.message, showClose: true }); | ||
422 | } | ||
423 | }); | ||
424 | this.$refs.rolesForm.title = "人员配置"; | ||
425 | } else this.$message.error({ message: res.message, showClose: true }); | ||
426 | }); | ||
427 | }, | ||
428 | // 新增、修改角色 | ||
429 | handleAddEdit (value) { | ||
430 | this.isDialog = true | ||
431 | this.$refs.addEditDialog.menuType = this.menuType; | ||
432 | this.$refs.addEditDialog.roleId = value.id; | ||
433 | this.roleSort = value.sort ? value.sort : 0; | ||
434 | this.$refs.addEditDialog.dialogForm.roleType = this.BASE_API.CODE; | ||
435 | if (value.id) { | ||
436 | this.$refs.addEditDialog.dialogForm.roleName = value.name; | ||
437 | |||
438 | this.$refs.addEditDialog.dialogForm.roleTextArea = value.description; | ||
458 | } | 439 | } |
459 | }) | 440 | this.$refs.addEditDialog.showAddEditDialog = true; |
460 | }, | 441 | this.$refs.addEditDialog.title = value.id ? "修改" : "新增"; |
461 | // 删除 | 442 | }, |
462 | handleDelete: function (id, content = "") { | 443 | //排序 |
463 | this.$confirm( | 444 | updateOrder (record, operate) { |
464 | `<div class="customer-message-wrapper"> | 445 | const findIndex = this.listdata.findIndex(item => item.id === record.id) |
446 | let swapId = '' | ||
447 | if (operate === 'UP') { | ||
448 | swapId = this.listdata[findIndex - 1].id | ||
449 | } else if (operate === 'DOWN') { | ||
450 | swapId = this.listdata[findIndex + 1].id | ||
451 | } | ||
452 | updateOrder('/rest/roles', record, operate, swapId).then(res => { | ||
453 | if (res.status === 1) { | ||
454 | this.$message.success({ message: res.message, showClose: true }) | ||
455 | this.getTableData(); | ||
456 | } else { | ||
457 | this.$message.error({ message: res.message, showClose: true }) | ||
458 | } | ||
459 | }) | ||
460 | }, | ||
461 | // 删除 | ||
462 | handleDelete: function (id, content = "") { | ||
463 | this.$confirm( | ||
464 | `<div class="customer-message-wrapper"> | ||
465 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> | 465 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> |
466 | <p class="content" aria-controls="${content}">${content} | 466 | <p class="content" aria-controls="${content}">${content} |
467 | </p> | 467 | </p> |
... | @@ -469,50 +469,50 @@ export default { | ... | @@ -469,50 +469,50 @@ export default { |
469 | <span >无法恢复</span> | 469 | <span >无法恢复</span> |
470 | </p> | 470 | </p> |
471 | </div>`, | 471 | </div>`, |
472 | "执行确认", | 472 | "执行确认", |
473 | { | 473 | { |
474 | dangerouslyUseHTMLString: true, | 474 | dangerouslyUseHTMLString: true, |
475 | customClass: "customer-delete", | 475 | customClass: "customer-delete", |
476 | confirmButtonText: "确定", | 476 | confirmButtonText: "确定", |
477 | cancelButtonText: "取消", | 477 | cancelButtonText: "取消", |
478 | type: "warning", | 478 | type: "warning", |
479 | } | ||
480 | ) | ||
481 | .then(() => { | ||
482 | if (!this.tableUrlroles) { | ||
483 | this.$message.error({ | ||
484 | message: "请设置tableUrl属性为接口地址!", | ||
485 | showClose: true, | ||
486 | }); | ||
487 | return; | ||
488 | } | 479 | } |
489 | const url = this.tableUrlroles + "/" + id; | 480 | ) |
490 | deleteAction(url).then((res) => { | 481 | .then(() => { |
491 | if (res.status === 1) { | 482 | if (!this.tableUrlroles) { |
492 | this.$message.success({ message: res.message, showClose: true }); | 483 | this.$message.error({ |
493 | this.getTableData(); | 484 | message: "请设置tableUrl属性为接口地址!", |
494 | } else { | 485 | showClose: true, |
495 | this.$message.error({ message: res.message, showClose: true }); | 486 | }); |
487 | return; | ||
496 | } | 488 | } |
497 | }); | 489 | const url = this.tableUrlroles + "/" + id; |
498 | }) | 490 | deleteAction(url).then((res) => { |
499 | .catch(() => { }); | 491 | if (res.status === 1) { |
500 | }, | 492 | this.$message.success({ message: res.message, showClose: true }); |
501 | // 新增回显 | 493 | this.getTableData(); |
502 | reloadTableData () { | 494 | } else { |
503 | this.getTableData(); | 495 | this.$message.error({ message: res.message, showClose: true }); |
496 | } | ||
497 | }); | ||
498 | }) | ||
499 | .catch(() => { }); | ||
500 | }, | ||
501 | // 新增回显 | ||
502 | reloadTableData () { | ||
503 | this.getTableData(); | ||
504 | }, | ||
504 | }, | 505 | }, |
505 | }, | 506 | }; |
506 | }; | ||
507 | </script> | 507 | </script> |
508 | <style scoped lang="scss"> | 508 | <style scoped lang="scss"> |
509 | @import "~@/styles/mixin.scss"; | 509 | @import "~@/styles/mixin.scss"; |
510 | // @import "~@/styles/public.scss"; | 510 | // @import "~@/styles/public.scss"; |
511 | 511 | ||
512 | /deep/.el-button.is-disabled.el-button--text { | 512 | /deep/.el-button.is-disabled.el-button--text { |
513 | width: 64px; | 513 | width: 64px; |
514 | height: 28px; | 514 | height: 28px; |
515 | background: rgba(255, 255, 255, 0.1); | 515 | background: rgba(255, 255, 255, 0.1); |
516 | border-radius: 16px; | 516 | border-radius: 16px; |
517 | } | 517 | } |
518 | </style> | 518 | </style> | ... | ... |
... | @@ -29,24 +29,80 @@ | ... | @@ -29,24 +29,80 @@ |
29 | </div> | 29 | </div> |
30 | </template> | 30 | </template> |
31 | <script> | 31 | <script> |
32 | // 定时任务 | 32 | // 定时任务 |
33 | import data from "./data" | 33 | import data from "./data" |
34 | import sjsbTask from '@/api/sjsbTask.js' | 34 | import sjsbTask from '@/api/sjsbTask.js' |
35 | import tableMixin from '@/mixins/tableMixin.js' | 35 | import tableMixin from '@/mixins/tableMixin.js' |
36 | import addTask from '../components/addTask.vue' | 36 | import addTask from '../components/addTask.vue' |
37 | export default { | 37 | export default { |
38 | name: "timedTask", | 38 | name: "timedTask", |
39 | mixins: [tableMixin], | 39 | mixins: [tableMixin], |
40 | components: { | 40 | components: { |
41 | addTask | 41 | addTask |
42 | }, | 42 | }, |
43 | data () { | 43 | data () { |
44 | return { | 44 | return { |
45 | taskData: null, | 45 | taskData: null, |
46 | isDialog: false, | 46 | isDialog: false, |
47 | form: { | 47 | form: { |
48 | jobName: '', | 48 | jobName: '', |
49 | currentPage: 1 | 49 | currentPage: 1 |
50 | }, | ||
51 | selectionList: [], | ||
52 | tableData: { | ||
53 | columns: [{ | ||
54 | label: '序号', | ||
55 | type: 'index', | ||
56 | width: '50', | ||
57 | index: this.indexMethod, | ||
58 | }].concat(data.columns()).concat([ | ||
59 | { | ||
60 | label: "操作", | ||
61 | width: 380, | ||
62 | render: (h, scope) => { | ||
63 | return ( | ||
64 | <div> | ||
65 | <el-button type="text" | ||
66 | size="mini" | ||
67 | v-show={scope.row.jobStatus === 0} | ||
68 | class='btnColor' | ||
69 | onClick={() => { this.handleActive(scope.row) }}>激活 | ||
70 | </el-button> | ||
71 | <el-button type="text" | ||
72 | size="mini" | ||
73 | v-show={scope.row.jobStatus === -1} | ||
74 | class='btnColor' | ||
75 | onClick={() => { this.recover(scope.row) }}>恢复 | ||
76 | </el-button> | ||
77 | <el-button type="text" | ||
78 | size="mini" | ||
79 | class='successColor' | ||
80 | onClick={() => { this.handleEdit(scope.row) }}>编辑 | ||
81 | </el-button> | ||
82 | <el-button type="text" | ||
83 | size="mini" | ||
84 | class='successColor' | ||
85 | v-show={scope.row.jobStatus !== -1} | ||
86 | onClick={() => { this.handleDel(scope.row) }}>删除 | ||
87 | </el-button> | ||
88 | </div> | ||
89 | ); | ||
90 | }, | ||
91 | }, | ||
92 | ]), | ||
93 | data: [] | ||
94 | }, | ||
95 | pageData: { | ||
96 | total: 0, | ||
97 | pageSize: 15, | ||
98 | current: 1, | ||
99 | }, | ||
100 | } | ||
101 | }, | ||
102 | methods: { | ||
103 | handleAdd () { | ||
104 | this.taskData = null | ||
105 | this.isDialog = true | ||
50 | }, | 106 | }, |
51 | selectionList: [], | 107 | selectionList: [], |
52 | tableData: { | 108 | tableData: { |
... | @@ -97,8 +153,7 @@ export default { | ... | @@ -97,8 +153,7 @@ export default { |
97 | pageSize: 15, | 153 | pageSize: 15, |
98 | current: 1, | 154 | current: 1, |
99 | }, | 155 | }, |
100 | } | 156 | }, |
101 | }, | ||
102 | methods: { | 157 | methods: { |
103 | handleAdd () { | 158 | handleAdd () { |
104 | this.taskData = null | 159 | this.taskData = null | ... | ... |
-
Please register or sign in to post a comment