3e57a29d by 任超

feat:监管平台开始搭建

0 parents
Showing 219 changed files with 4891 additions and 0 deletions
1 # https://editorconfig.org
2 root = true
3
4 [*]
5 charset = utf-8
6 indent_style = space
7 indent_size = 2
8 end_of_line = lf
9 insert_final_newline = true
10 trim_trailing_whitespace = true
11
12 [*.md]
13 insert_final_newline = false
14 trim_trailing_whitespace = false
1 # just a flag
2 ENV = 'development'
3 NODE_ENV=development
4 # base api
5 VUE_APP_BASE_API = '/api'
6
7 # 开发环境
8 VUE_APP_API_BASE_URL = 'http://192.168.2.38:8008'
1 # just a flag
2 ENV = 'production'
3 NODE_ENV=production
4 # base api
5 VUE_APP_BASE_API = ''
6
7 # 演示,正式后端
8 VUE_APP_API_BASE_URL = 'http://192.168.2.38:8008'
1 .DS_Store
2 node_modules
3 /dist
4
5 # local env files
6 .env.local
7 .env.*.local
8
9
10 # Log files
11 npm-debug.log*
12 yarn-debug.log*
13 yarn-error.log*
14
15 # Editor directories and files
16 .history
17 .idea
18 .vscode
19 *.suo
20 *.ntvs*
21 *.njsproj
22 *.sln
23 *.sw?
24 /src/api/config.js
25
26 package-lock.json
1 MIT License
2
3 Copyright (c) 2017-present PanJiaChen
4
5 Permission is hereby granted, free of charge, to any person obtaining a copy
6 of this software and associated documentation files (the "Software"), to deal
7 in the Software without restriction, including without limitation the rights
8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 copies of the Software, and to permit persons to whom the Software is
10 furnished to do so, subject to the following conditions:
11
12 The above copyright notice and this permission notice shall be included in all
13 copies or substantial portions of the Software.
14
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 SOFTWARE.
1 # 安装依赖
2 npm install
3 # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
4 npm install --registry=https://registry.npm.taobao.org
5
6 ## Git 贡献提交规范
7
8 - 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
9
10 - `feat` 增加新功能
11 - `fix` 修复问题/BUG
12 - `style` 代码风格相关无影响运行结果的
13 - `perf` 优化/性能提升
14 - `refactor` 重构
15 - `revert` 撤销修改
16 - `test` 测试相关
17 - `docs` 文档/注释
18 - `chore` 依赖更新/脚手架配置修改等
19 - `wip` 开发中
20
21
1 module.exports = {
2 presets: [
3 // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
4 // '@vue/cli-plugin-babel/preset'
5 [
6 "@vue/app",
7 {
8 "useBuiltIns": "entry",
9 polyfills: [
10 'es6.promise',
11 'es6.symbol'
12 ]
13 }
14 ]
15 ],
16 'env': {
17 'development': {
18 // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
19 // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
20 // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
21 'plugins': ['dynamic-import-node']
22 }
23 }
24 }
1 {
2 "name": "bdcdj-web",
3 "version": "4.4.0",
4 "description": "HOUTAI",
5 "author": "psh",
6 "scripts": {
7 "dev": "vue-cli-service serve",
8 "build": "vue-cli-service build"
9 },
10 "dependencies": {
11 "@jiaminghi/data-view": "^2.10.0",
12 "axios": "^0.21.1",
13 "core-js": "^3.6.5",
14 "echarts": "^4.6.0",
15 "js-cookie": "2.2.0",
16 "lodash": "^4.17.21",
17 "node-sass": "^4.14.1",
18 "normalize.css": "7.0.0",
19 "nprogress": "0.2.0",
20 "vue": "2.6.10",
21 "vue-awesome": "^4.5.0",
22 "vue-router": "3.0.2",
23 "vuex": "3.1.0"
24 },
25 "devDependencies": {
26 "@vue/cli-plugin-babel": "4.4.4",
27 "@vue/cli-plugin-unit-jest": "4.4.4",
28 "@vue/cli-service": "4.4.4",
29 "@vue/test-utils": "1.0.0-beta.29",
30 "autoprefixer": "9.5.1",
31 "babel-plugin-dynamic-import-node": "2.3.3",
32 "chalk": "2.4.2",
33 "connect": "3.6.6",
34 "element-ui": "^2.15.8",
35 "html-webpack-plugin": "3.2.0",
36 "runjs": "4.3.2",
37 "sass-loader": "8.0.2",
38 "sass-resources-loader": "^2.2.1",
39 "script-ext-html-webpack-plugin": "2.1.3",
40 "serve-static": "1.13.2",
41 "style-resources-loader": "^1.4.1",
42 "svg-sprite-loader": "4.1.3",
43 "svgo": "^2.3.1",
44 "vue-template-compiler": "2.6.10"
45 },
46 "browserslist": [
47 "> 1%",
48 "last 2 versions"
49 ],
50 "bugs": {
51 "url": "https://github.com/PanJiaChen/vue-element-admin/issues"
52 },
53 "engines": {
54 "node": ">=8.9",
55 "npm": ">= 3.0.0"
56 },
57 "keywords": [
58 "vue",
59 "admin",
60 "dashboard",
61 "element-ui",
62 "boilerplate",
63 "admin-template",
64 "management-system"
65 ],
66 "license": "MIT",
67 "husky": {
68 "hooks": {
69 "pre-commit": "lint-staged"
70 }
71 },
72 "repository": {
73 "type": "git",
74 "url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
75 }
76 }
1 module.exports = {
2 plugins: {
3 autoprefixer: {}
4 },
5 }
No preview for this file type
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6 <meta name="renderer" content="webkit">
7 <meta name="referrer" content="no-referrer" />
8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
10 <title><%= webpackConfig.name %></title>
11 </head>
12 <body>
13 <div id="app"></div>
14 <!-- built files will be auto injected -->
15 </body>
16 </html>
17 <script>
18 window.baseUrl = location.origin || location.protocol +'//'+location.host
19 // window.authorization = 'bearer AT-14-h4UlUGjPvgmrIgnDO-3QgMP0m4YJGQTR';
20 // window.authorization = 'bearer AT-223-c-Q86EHx75m7ig3EDf-SwMWl4U0AKn0b';
21 window.timeout=5000
22 window.authorization="bearer AT-4-MxSrO29Coe7VTazx8uuixtqqgO-hvCB6"
23 </script>
1 <template>
2 <div id="app">
3 <router-view />
4 </div>
5 </template>
...\ No newline at end of file ...\ No newline at end of file
1 import request from '@/utils/request'
2
3 class dataReporting {
4 // 数据上报表头相关接口
5 async getQltFwFdcqYzByCondition (id) {
6 return request({
7 url: '/sjsbFunctionOper/getSjsbTableInfo',
8 method: 'get',
9 params: {
10 msgId: id
11 }
12 })
13 }
14 // 根据msgid查询任务表数据详情
15 async searchTaskInfoByMsgid (id) {
16 return request({
17 url: '/sjsbFunctionOper/searchTaskInfoByMsgid',
18 method: 'get',
19 params: {
20 msgid: id
21 }
22 })
23 }
24 }
25 export default new dataReporting()
...\ No newline at end of file ...\ No newline at end of file
1 import request from '@/utils/request'
2
3 class ruleConfig {
4 // 列表查询
5 async getSysYwsjbList (data) {
6 return request({
7 url: '/SysYwsjb/getSysYwsjbList',
8 method: 'post',
9 data
10 })
11 }
12 // 编辑界面列表查询
13 async eidtConfigRule (id) {
14 return request({
15 url: '/SysYwsjb/getSysYwsjbWithSysYwsjbFieldByBsmYwsjb',
16 method: 'get',
17 params: {
18 bsmYwsjb: id
19 }
20 })
21 }
22 // 编辑
23 async editSysYwsjbWithSysYwsjbField (data) {
24 return request({
25 url: '/SysYwsjb/editSysYwsjbWithSysYwsjbField',
26 method: 'post',
27 data
28 })
29 }
30 // 编辑
31 async deleteSysYwsjbWithSysYwsjbFieldByBsmYwsjb (id) {
32 return request({
33 url: '/SysYwsjb/deleteSysYwsjbWithSysYwsjbFieldByBsmYwsjb',
34 method: 'delete',
35 params: {
36 bsmYwsjb: id
37 }
38 })
39 }
40 // 编辑界面列表查询----根据数据表名查询
41 async getRuleList (dataTable) {
42 return request({
43 url: '/SysYwsjb/getSysYwsjbWithSysYwsjbFieldByDataTable',
44 method: 'get',
45 params: {
46 dataTable: dataTable
47 }
48 })
49 }
50 }
51 export default new ruleConfig()
...\ No newline at end of file ...\ No newline at end of file
1 import request from '@/utils/request'
2 import SERVER from './config'
3
4 // 用户首页
5 // 获取首页待办事项
6 export function getHomeTodoList () {
7 return request({
8 url: SERVER.SERVERAPI + '/rest/workBench/getHomeTodoList',
9 method: 'get'
10 })
11 }
12
13 //获取首页已办事项
14 export function getHomeDoneList () {
15 return request({
16 url: SERVER.SERVERAPI + '/rest/workBench/getHomeDoneList',
17 method: 'get'
18 })
19 }
20
21 //获取首页常办项目
22 export function getHomeFrequentProjects () {
23 return request({
24 url: SERVER.SERVERAPI + '/rest/workBench/getHomeFrequentProjects',
25 method: 'get'
26 })
27 }
28
29 //保存常办项目
30 export function saveFrequentProjectsList (data) {
31 return request({
32 url: SERVER.SERVERAPI + '/rest/workBench/saveFrequentProjectsList',
33 method: 'post',
34 data
35 })
36 }
37
38
39 // 获取用户信息
40 export function getUserInfo () {
41 return request({
42 url: SERVER.SERVERAPI + '/rest/user/getUserInfo',
43 method: 'get',
44 })
45 }
46
47 // 获取菜单信息
48 export function getMenuInfo () {
49 return request({
50 url: SERVER.SERVERAPI + '/rest/user/getUserAuthorizationMenus',
51 method: 'get',
52 })
53 }
1 <template>
2 <div :id="id" :class="className" :style="{ height: height, width: width }" />
3 </template>
4
5 <script>
6 import tdTheme from './theme.json' // 引入默认主题
7 import '../map/fujian.js'
8
9 export default {
10 name: 'echart',
11 props: {
12 className: {
13 type: String,
14 default: 'chart'
15 },
16 id: {
17 type: String,
18 default: 'chart'
19 },
20 width: {
21 type: String,
22 default: '100%'
23 },
24 height: {
25 type: String,
26 default: '2.5rem'
27 },
28 options: {
29 type: Object,
30 default: ()=>({})
31 }
32 },
33 data () {
34 return {
35 chart: null
36 }
37 },
38 watch: {
39 options: {
40 handler (options) {
41 // 设置true清空echart缓存
42 this.chart.setOption(options, true)
43 },
44 deep: true
45 }
46 },
47 mounted () {
48 this.$echarts.registerTheme('tdTheme', tdTheme); // 覆盖默认主题
49 this.initChart();
50 },
51 beforeDestroy () {
52 this.chart.dispose()
53 this.chart = null
54 },
55 methods: {
56 initChart () {
57 // 初始化echart
58 this.chart = this.$echarts.init(this.$el, 'tdTheme')
59 this.chart.setOption(this.options, true)
60 }
61 }
62 }
63 </script>
64
65 <style>
66 </style>
1 {
2 "color": [
3 "#2d8cf0",
4 "#19be6b",
5 "#ff9900",
6 "#E46CBB",
7 "#9A66E4",
8 "#ed3f14"
9 ],
10 "backgroundColor": "rgba(0,0,0,0)",
11 "textStyle": {},
12 "title": {
13 "textStyle": {
14 "color": "#516b91"
15 },
16 "subtextStyle": {
17 "color": "#93b7e3"
18 }
19 },
20 "line": {
21 "itemStyle": {
22 "normal": {
23 "borderWidth": "2"
24 }
25 },
26 "lineStyle": {
27 "normal": {
28 "width": "2"
29 }
30 },
31 "symbolSize": "6",
32 "symbol": "emptyCircle",
33 "smooth": true
34 },
35 "radar": {
36 "itemStyle": {
37 "normal": {
38 "borderWidth": "2"
39 }
40 },
41 "lineStyle": {
42 "normal": {
43 "width": "2"
44 }
45 },
46 "symbolSize": "6",
47 "symbol": "emptyCircle",
48 "smooth": true
49 },
50 "bar": {
51 "itemStyle": {
52 "normal": {
53 "barBorderWidth": 0,
54 "barBorderColor": "#ccc"
55 },
56 "emphasis": {
57 "barBorderWidth": 0,
58 "barBorderColor": "#ccc"
59 }
60 }
61 },
62 "pie": {
63 "itemStyle": {
64 "normal": {
65 "borderWidth": 0,
66 "borderColor": "#ccc"
67 },
68 "emphasis": {
69 "borderWidth": 0,
70 "borderColor": "#ccc"
71 }
72 }
73 },
74 "scatter": {
75 "itemStyle": {
76 "normal": {
77 "borderWidth": 0,
78 "borderColor": "#ccc"
79 },
80 "emphasis": {
81 "borderWidth": 0,
82 "borderColor": "#ccc"
83 }
84 }
85 },
86 "boxplot": {
87 "itemStyle": {
88 "normal": {
89 "borderWidth": 0,
90 "borderColor": "#ccc"
91 },
92 "emphasis": {
93 "borderWidth": 0,
94 "borderColor": "#ccc"
95 }
96 }
97 },
98 "parallel": {
99 "itemStyle": {
100 "normal": {
101 "borderWidth": 0,
102 "borderColor": "#ccc"
103 },
104 "emphasis": {
105 "borderWidth": 0,
106 "borderColor": "#ccc"
107 }
108 }
109 },
110 "sankey": {
111 "itemStyle": {
112 "normal": {
113 "borderWidth": 0,
114 "borderColor": "#ccc"
115 },
116 "emphasis": {
117 "borderWidth": 0,
118 "borderColor": "#ccc"
119 }
120 }
121 },
122 "funnel": {
123 "itemStyle": {
124 "normal": {
125 "borderWidth": 0,
126 "borderColor": "#ccc"
127 },
128 "emphasis": {
129 "borderWidth": 0,
130 "borderColor": "#ccc"
131 }
132 }
133 },
134 "gauge": {
135 "itemStyle": {
136 "normal": {
137 "borderWidth": 0,
138 "borderColor": "#ccc"
139 },
140 "emphasis": {
141 "borderWidth": 0,
142 "borderColor": "#ccc"
143 }
144 }
145 },
146 "candlestick": {
147 "itemStyle": {
148 "normal": {
149 "color": "#edafda",
150 "color0": "transparent",
151 "borderColor": "#d680bc",
152 "borderColor0": "#8fd3e8",
153 "borderWidth": "2"
154 }
155 }
156 },
157 "graph": {
158 "itemStyle": {
159 "normal": {
160 "borderWidth": 0,
161 "borderColor": "#ccc"
162 }
163 },
164 "lineStyle": {
165 "normal": {
166 "width": 1,
167 "color": "#aaa"
168 }
169 },
170 "symbolSize": "6",
171 "symbol": "emptyCircle",
172 "smooth": true,
173 "color": [
174 "#2d8cf0",
175 "#19be6b",
176 "#f5ae4a",
177 "#9189d5",
178 "#56cae2",
179 "#cbb0e3"
180 ],
181 "label": {
182 "normal": {
183 "textStyle": {
184 "color": "#eee"
185 }
186 }
187 }
188 },
189 "map": {
190 "itemStyle": {
191 "normal": {
192 "areaColor": "#f3f3f3",
193 "borderColor": "#516b91",
194 "borderWidth": 0.5
195 },
196 "emphasis": {
197 "areaColor": "rgba(165,231,240,1)",
198 "borderColor": "#516b91",
199 "borderWidth": 1
200 }
201 },
202 "label": {
203 "normal": {
204 "textStyle": {
205 "color": "#000"
206 }
207 },
208 "emphasis": {
209 "textStyle": {
210 "color": "rgb(81,107,145)"
211 }
212 }
213 }
214 },
215 "geo": {
216 "itemStyle": {
217 "normal": {
218 "areaColor": "#f3f3f3",
219 "borderColor": "#516b91",
220 "borderWidth": 0.5
221 },
222 "emphasis": {
223 "areaColor": "rgba(165,231,240,1)",
224 "borderColor": "#516b91",
225 "borderWidth": 1
226 }
227 },
228 "label": {
229 "normal": {
230 "textStyle": {
231 "color": "#000"
232 }
233 },
234 "emphasis": {
235 "textStyle": {
236 "color": "rgb(81,107,145)"
237 }
238 }
239 }
240 },
241 "categoryAxis": {
242 "axisLine": {
243 "show": true,
244 "lineStyle": {
245 "color": "#cccccc"
246 }
247 },
248 "axisTick": {
249 "show": false,
250 "lineStyle": {
251 "color": "#333"
252 }
253 },
254 "axisLabel": {
255 "show": true,
256 "textStyle": {
257 "color": "#fff"
258 }
259 },
260 "splitLine": {
261 "show": false,
262 "lineStyle": {
263 "color": [
264 "#eeeeee"
265 ]
266 }
267 },
268 "splitArea": {
269 "show": false,
270 "areaStyle": {
271 "color": [
272 "rgba(250,250,250,0.05)",
273 "rgba(200,200,200,0.02)"
274 ]
275 }
276 }
277 },
278 "valueAxis": {
279 "axisLine": {
280 "show": true,
281 "lineStyle": {
282 "color": "#cccccc"
283 }
284 },
285 "axisTick": {
286 "show": false,
287 "lineStyle": {
288 "color": "#333"
289 }
290 },
291 "axisLabel": {
292 "show": true,
293 "textStyle": {
294 "color": "#fff"
295 }
296 },
297 "splitLine": {
298 "show": false,
299 "lineStyle": {
300 "color": [
301 "#eeeeee"
302 ]
303 }
304 },
305 "splitArea": {
306 "show": false,
307 "areaStyle": {
308 "color": [
309 "rgba(250,250,250,0.05)",
310 "rgba(200,200,200,0.02)"
311 ]
312 }
313 }
314 },
315 "logAxis": {
316 "axisLine": {
317 "show": true,
318 "lineStyle": {
319 "color": "#cccccc"
320 }
321 },
322 "axisTick": {
323 "show": false,
324 "lineStyle": {
325 "color": "#333"
326 }
327 },
328 "axisLabel": {
329 "show": true,
330 "textStyle": {
331 "color": "#999999"
332 }
333 },
334 "splitLine": {
335 "show": true,
336 "lineStyle": {
337 "color": [
338 "#eeeeee"
339 ]
340 }
341 },
342 "splitArea": {
343 "show": false,
344 "areaStyle": {
345 "color": [
346 "rgba(250,250,250,0.05)",
347 "rgba(200,200,200,0.02)"
348 ]
349 }
350 }
351 },
352 "timeAxis": {
353 "axisLine": {
354 "show": true,
355 "lineStyle": {
356 "color": "#cccccc"
357 }
358 },
359 "axisTick": {
360 "show": false,
361 "lineStyle": {
362 "color": "#333"
363 }
364 },
365 "axisLabel": {
366 "show": true,
367 "textStyle": {
368 "color": "#999999"
369 }
370 },
371 "splitLine": {
372 "show": true,
373 "lineStyle": {
374 "color": [
375 "#eeeeee"
376 ]
377 }
378 },
379 "splitArea": {
380 "show": false,
381 "areaStyle": {
382 "color": [
383 "rgba(250,250,250,0.05)",
384 "rgba(200,200,200,0.02)"
385 ]
386 }
387 }
388 },
389 "toolbox": {
390 "iconStyle": {
391 "normal": {
392 "borderColor": "#999"
393 },
394 "emphasis": {
395 "borderColor": "#666"
396 }
397 }
398 },
399 "legend": {
400 "textStyle": {
401 "color": "#fff"
402 }
403 },
404 "tooltip": {
405 "axisPointer": {
406 "lineStyle": {
407 "color": "#ccc",
408 "width": 1
409 },
410 "crossStyle": {
411 "color": "#ccc",
412 "width": 1
413 }
414 }
415 },
416 "timeline": {
417 "lineStyle": {
418 "color": "#8fd3e8",
419 "width": 1
420 },
421 "itemStyle": {
422 "normal": {
423 "color": "#8fd3e8",
424 "borderWidth": 1
425 },
426 "emphasis": {
427 "color": "#8fd3e8"
428 }
429 },
430 "controlStyle": {
431 "normal": {
432 "color": "#8fd3e8",
433 "borderColor": "#8fd3e8",
434 "borderWidth": 0.5
435 },
436 "emphasis": {
437 "color": "#8fd3e8",
438 "borderColor": "#8fd3e8",
439 "borderWidth": 0.5
440 }
441 },
442 "checkpointStyle": {
443 "color": "#8fd3e8",
444 "borderColor": "rgba(138,124,168,0.37)"
445 },
446 "label": {
447 "normal": {
448 "textStyle": {
449 "color": "#8fd3e8"
450 }
451 },
452 "emphasis": {
453 "textStyle": {
454 "color": "#8fd3e8"
455 }
456 }
457 }
458 },
459 "visualMap": {
460 "color": [
461 "#516b91",
462 "#59c4e6",
463 "#a5e7f0"
464 ]
465 },
466 "dataZoom": {
467 "backgroundColor": "rgba(0,0,0,0)",
468 "dataBackgroundColor": "rgba(255,255,255,0.3)",
469 "fillerColor": "rgba(167,183,204,0.4)",
470 "handleColor": "#a7b7cc",
471 "handleSize": "100%",
472 "textStyle": {
473 "color": "#333"
474 }
475 },
476 "markPoint": {
477 "label": {
478 "normal": {
479 "textStyle": {
480 "color": "#eee"
481 }
482 },
483 "emphasis": {
484 "textStyle": {
485 "color": "#eee"
486 }
487 }
488 }
489 }
490 }
1 import dialogBox from '@/components/DialogBox/dialogBox.vue'
2 import LbTable from '@/components/LbTable/lb-table.vue'
3 import Theme from '@/components/Theme/theme.vue'
4 import Popup from '@/components/Popup/index'
5 import MessageBox from '@/components/MessageBox/index.js'
6 export default {
7 install: (Vue) => {
8 Vue.component('dialogBox', dialogBox);
9 Vue.component('lbTable', LbTable);
10 Vue.component('Theme', Theme);
11 Vue.prototype.$popup = Popup.install;
12 Vue.prototype.$alertMes = MessageBox.alert;
13 }
14 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <el-dialog :visible.sync="dialogVisible" v-if="dialogVisible" :width="width" :fullscreen="fullscreen" top="0"
3 :append-to-body="appendToBody" :lock-scroll="true" :close-on-click-modal="false" @close="closeDialog" :key="key"
4 :custom-class="isMain ? 'mainCenter dialogBox' : 'contentCenter dialogBox'" :destroy-on-close="true" ref="dialogBox"
5 id="dialogBox">
6 <div slot="title">
7 <div class="dialog_title">
8 <b>{{ title }}</b>
9 <div v-if="isFullscreen" class="dialog_full">
10 <i class="el-icon-rank" v-if="fullscreen" @click="handleFullscreen"></i>
11 <i class="el-icon-full-screen" v-else @click="handleFullscreen" />
12 </div>
13 </div>
14 </div>
15 <div class="dialogBox-content" :style="{ height: scrollerHeight }">
16 <slot></slot>
17 </div>
18 <div slot="footer" class="dialog_footer" v-if="isButton">
19 <el-button @click="closeDialog" v-if="isReset">取消</el-button>
20 <el-button type="primary" plain @click="submitForm" v-if="isSave" :disabled="btnDisabled" :loading="saveloding">
21 {{ saveButton }}</el-button>
22 </div>
23 </el-dialog>
24 </template>
25 <script>
26 export default {
27 props: {
28 value: { type: Boolean, default: false },
29 isMain: {
30 type: Boolean,
31 default: false
32 },
33 appendToBody: {
34 type: Boolean,
35 default: true
36 },
37 isButton: {
38 type: Boolean,
39 default: true,
40 },
41 width: {
42 type: String,
43 default: '70%',
44 },
45 title: {
46 type: String,
47 default: '',
48 },
49 isFullscreen: {
50 type: Boolean,
51 default: true,
52 },
53 isSave: {
54 type: Boolean,
55 default: true,
56 },
57 saveButton: {
58 type: String,
59 default: '提交',
60 },
61 isReset: {
62 type: Boolean,
63 default: true,
64 },
65 saveloding: {
66 type: Boolean,
67 default: false,
68 },
69 btnDisabled: {
70 type: Boolean,
71 default: false
72 },
73 height: {
74 type: String,
75 default: ''
76 }
77 },
78 data () {
79 return {
80 key: 0,
81 dialogVisible: false,
82 fullscreen: false,
83 scrollerHeight: ''
84 }
85 },
86 watch: {
87 value (val) {
88 this.dialogVisible = val
89 this.height && (this.scrollerHeight = this.height + 'px')
90 }
91 },
92 methods: {
93 handleFullscreen () {
94 this.fullscreen = !this.fullscreen
95 if (!this.fullscreen) {
96 this.scrollerHeight = ''
97 } else {
98 this.scrollerHeight = (window.innerHeight - 120) + 'px'
99 }
100 },
101 submitForm () {
102 if (this.isButton) {
103 this.$emit('submitForm');
104 }
105 },
106 closeDialog () {
107 this.key++
108 this.$emit('input', false)
109 this.$emit('closeDialog')
110 }
111 },
112 }
113 </script>
114 <style rel="stylesheet/scss" lang="scss" >
115 @import "~@/styles/mixin.scss";
116 @import "~@/styles/dialogBox.scss";
117 </style>
118 <style rel="stylesheet/scss" scoped lang="scss" >
119 /deep/.is-fullscreen {
120 position: absolute;
121 top: 50% !important;
122 left: 50% !important;
123 transform: translate(-50%, -50%) !important;
124 }
125 </style>
...\ No newline at end of file ...\ No newline at end of file
1 ## 这个是弹框组件,对于element自带的组件进行封装,方便修改全局样式做统一操作
2 ### 使用时在组件中引用
1 export default {
2 selection: {
3 renderHeader: (h, { store }) => {
4 return (
5 <el-checkbox
6 disabled={store.states.data && store.states.data.length === 0}
7 indeterminate={
8 store.states.selection.length > 0 && !store.states.isAllSelected
9 }
10 nativeOn-click={store.toggleAllSelection}
11 value={store.states.isAllSelected}
12 />
13 )
14 },
15 renderCell: (h, { row, column, store, $index }) => {
16 return (
17 <el-checkbox
18 nativeOn-click={event => event.stopPropagation()}
19 value={store.isSelected(row)}
20 disabled={
21 column.selectable
22 ? !column.selectable.call(null, row, $index)
23 : false
24 }
25 on-input={() => {
26 store.commit('rowSelectedChanged', row)
27 }}
28 />
29 )
30 },
31 sortable: false,
32 resizable: false
33 },
34 index: {
35 renderHeader: (h, scope) => {
36 return <span>{scope.column.label || '#'}</span>
37 },
38 renderCell: (h, { $index, column }) => {
39 let i = $index + 1
40 const index = column.index
41
42 if (typeof index === 'number') {
43 i = $index + index
44 } else if (typeof index === 'function') {
45 i = index($index)
46 }
47
48 return <div>{i}</div>
49 },
50 sortable: false
51 },
52 expand: {
53 renderHeader: (h, scope) => {
54 return <span>{scope.column.label || ''}</span>
55 },
56 renderCell: (h, { row, store }, proxy) => {
57 const expanded = store.states.expandRows.indexOf(row) > -1
58 return (
59 <div
60 class={
61 'el-table__expand-icon ' +
62 (expanded ? 'el-table__expand-icon--expanded' : '')
63 }
64 on-click={e => proxy.handleExpandClick(row, e)}
65 >
66 <i class='el-icon el-icon-arrow-right' />
67 </div>
68 )
69 },
70 sortable: false,
71 resizable: false,
72 className: 'el-table__expand-column'
73 }
74 }
1 /*
2 * FileName: lb-column.vue
3 * Remark: element-column
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:58:23 am
7 * Last Modified: Tuesday, 19th March 2019 10:14:42 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <el-table-column v-bind="$attrs" v-on="$listeners" :prop="column.prop" :label="column.label" :type="column.type"
13 :index="column.index" :column-key="column.columnKey" :width="column.width" :min-width="column.minWidth"
14 :fixed="column.fixed" :scoped-slot="column.renderHeader" :sortable="column.sortable || false"
15 :sort-method="column.sortMethod" :sort-by="column.sortBy" :sort-orders="column.sortOrders"
16 :resizable="column.resizable || true" :formatter="column.formatter"
17 :show-overflow-tooltip="column.showOverflowTooltip || false" :align="column.align || align || 'center'"
18 :header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
19 :class-name="column.className" :label-class-name="column.labelClassName" :selectable="column.selectable"
20 :reserve-selection="column.reserveSelection || false" :filters="column.filters"
21 :filter-placement="column.filterPlacement" :filter-multiple="column.filterMultiple"
22 :filter-method="column.filterMethod" :filtered-value="column.filteredValue">
23 <template slot="header" slot-scope="scope">
24 <lb-render v-if="column.renderHeader" :scope="scope" :render="column.renderHeader">
25 </lb-render>
26 <span v-else>{{ scope.column.label }}</span>
27 </template>
28
29 <template slot-scope="scope">
30 <lb-render :scope="scope" :render="column.render">
31 </lb-render>
32 </template>
33
34 <template v-if="column.children">
35 <lb-column v-for="(col, index) in column.children" :key="index" :column="col">
36 </lb-column>
37 </template>
38 </el-table-column>
39 </template>
40
41 <script>
42 import LbRender from './lb-render'
43 import forced from './forced.js'
44 export default {
45 name: 'LbColumn',
46 props: {
47 column: Object,
48 headerAlign: String,
49 align: String
50 },
51 components: {
52 LbRender
53 },
54 methods: {
55 setColumn () {
56 if (this.column.type) {
57 this.column.renderHeader = forced[this.column.type].renderHeader
58 this.column.render = this.column.render || forced[this.column.type].renderCell
59 }
60 if (this.column.formatter) {
61 this.column.render = (h, scope) => {
62 return <span>{scope.column.formatter(scope.row, scope.column, scope.row, scope.$index)}</span>
63 }
64 }
65 if (!this.column.render) {
66 this.column.render = (h, scope) => {
67 return <span>{scope.row[scope.column.property]}</span>
68 }
69 }
70 }
71 },
72 watch: {
73 column: {
74 handler () {
75 this.setColumn()
76 },
77 immediate: true
78 }
79 }
80 }
81 </script>
1 /*
2 * FileName: lb-render.vue
3 * Remark: 自定义render
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 10:15:30 am
7 * Last Modified: Tuesday, 19th March 2019 10:15:32 am
8 * Modified By: 任超
9 */
10 <script>
11 export default {
12 name: 'LbRender',
13 functional: true,
14 props: {
15 scope: Object,
16 render: Function
17 },
18 render: (h, ctx) => {
19 return ctx.props.render ? ctx.props.render(h, ctx.props.scope) : ''
20 }
21 }
22 </script>
1 /*
2 * FileName: lb-table.vue
3 * Remark: element table
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:55:27 am
7 * Last Modified: Tuesday, 19th March 2019 9:55:34 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <div :class="['lb-table', customClass]">
13 <el-table v-if="!heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }" ref="elTable"
14 :border='border' :row-class-name="tableRowClassName" :show-header='showHeader' @row-click="singleElection"
15 :header-cell-style="{ background: 'rgb(236, 245, 255)' }" v-bind="$attrs" :height="tableHeight" v-on="$listeners"
16 :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod">
17 <el-table-column width="45" align="center" v-if="isRadio">
18 <template slot-scope="scope">
19 <el-radio v-model="selected" :label="scope.$index"></el-radio>
20 </template>
21 </el-table-column>
22
23 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
24 </lb-column>
25 </el-table>
26
27 <el-table v-else ref="elTable" class="table-fixed" :row-style="{ height: '50px' }" :border='border'
28 :row-class-name="tableRowClassName" :show-header='showHeader'
29 :header-cell-style="{ background: 'rgb(236, 245, 255)' }" v-bind="$attrs" :max-height="maxHeight"
30 v-on="$listeners" :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod">
31
32 <el-table-column width="45" align="center" v-if="isRadio">
33 <template slot-scope="scope">
34 <el-radio v-model="selected" :label="scope.$index"></el-radio>
35 </template>
36 </el-table-column>
37 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
38 </lb-column>
39 </el-table>
40
41 <br>
42 <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background
43 :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next" @current-change="paginationCurrentChange"
44 :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }">
45 </el-pagination>
46 </div>
47 </template>
48
49 <script>
50 import LbColumn from './lb-column'
51 export default {
52 props: {
53 column: Array,
54 data: Array,
55 spanMethod: Function,
56 pagination: {
57 type: Boolean,
58 default: true,
59 },
60 isRadio: {
61 type: Boolean,
62 default: false,
63 },
64 border: {
65 type: Boolean,
66 default: true,
67 },
68 showHeader: {
69 type: Boolean,
70 default: true,
71 },
72 paginationTop: {
73 type: String,
74 default: '0',
75 },
76 heightNum: {
77 type: Number,
78 default: 265,
79 },
80 maxHeight: {
81 type: Number,
82 default: 500
83 },
84 heightNumSetting: {
85 type: Boolean,
86 default: false,
87 },
88 customClass: {
89 type: String,
90 default: '',
91 },
92 paginationAlign: {
93 type: String,
94 default: 'left',
95 },
96 merge: Array,
97 },
98 components: {
99 LbColumn,
100 },
101 data () {
102 return {
103 tableHeight: '',
104 mergeLine: {},
105 mergeIndex: {},
106 selected: ''
107 }
108 },
109 created () {
110 this.getMergeArr(this.data, this.merge)
111 this.getHeight()
112 },
113 computed: {
114 dataLength () {
115 return [] || this.data.length
116 },
117 },
118 methods: {
119
120 // 单选
121 singleElection (row) {
122 this.selected = this.data.indexOf(row);
123 console.log(this.selected);
124 },
125
126 tableRowClassName ({ row, rowIndex }) {
127 if (rowIndex % 2 === 1) {
128 return 'interlaced';
129 }
130 },
131 getHeight () {
132 if (!this.heightNumSetting) {
133 this.tableHeight = window.innerHeight - this.heightNum
134 }
135 },
136 clearSelection () {
137 this.$refs.elTable.clearSelection()
138 },
139 toggleRowSelection (row, selected) {
140 this.$refs.elTable.toggleRowSelection(row, selected)
141 },
142 toggleAllSelection () {
143 this.$refs.elTable.toggleAllSelection()
144 },
145 toggleRowExpansion (row, expanded) {
146 this.$refs.elTable.toggleRowExpansion(row, expanded)
147 },
148 setCurrentRow (row) {
149 this.$refs.elTable.setCurrentRow(row)
150 },
151 clearSort () {
152 this.$refs.elTable.clearSort()
153 },
154 clearFilter (columnKey) {
155 this.$refs.elTable.clearFilter(columnKey)
156 },
157 doLayout () {
158 this.$refs.elTable.doLayout()
159 },
160 sort (prop, order) {
161 this.$refs.elTable.sort(prop, order)
162 },
163 paginationCurrentChange (val) {
164 this.$emit('p-current-change', val)
165 },
166 getMergeArr (tableData, merge) {
167 if (!merge) return
168 this.mergeLine = {}
169 this.mergeIndex = {}
170 merge.forEach((item, k) => {
171 tableData.forEach((data, i) => {
172 if (i === 0) {
173 this.mergeIndex[item] = this.mergeIndex[item] || []
174 this.mergeIndex[item].push(1)
175 this.mergeLine[item] = 0
176 } else {
177 if (data[item] === tableData[i - 1][item]) {
178 this.mergeIndex[item][this.mergeLine[item]] += 1
179 this.mergeIndex[item].push(0)
180 } else {
181 this.mergeIndex[item].push(1)
182 this.mergeLine[item] = i
183 }
184 }
185 })
186 })
187 },
188 mergeMethod ({ row, column, rowIndex, columnIndex }) {
189 const index = this.merge.indexOf(column.property)
190 if (index > -1) {
191 const _row = this.mergeIndex[this.merge[index]][rowIndex]
192 const _col = _row > 0 ? 1 : 0
193 return {
194 rowspan: _row,
195 colspan: _col,
196 }
197 }
198 },
199 },
200 watch: {
201 merge () {
202 this.getMergeArr(this.data, this.merge)
203 },
204 dataLength () {
205 this.getMergeArr(this.data, this.merge)
206 }
207 },
208 }
209 </script>
210 <style rel="stylesheet/scss" scoped lang="scss">
211 .lb-table {
212 margin-top: 1px;
213
214 .interlaced {
215 background: #fafcff;
216 border: 1px solid #ebf2fa;
217 }
218 }
219
220 /deep/.el-table .cell {
221 padding-left: 3px;
222 padding-right: 3px;
223 }
224
225 /deep/.el-radio__label {
226 display: none;
227 }
228 </style>
1 ## 这是对于element-table 进行的二次封装
2
3 ### 文档地址
4
5 <!-- table 已经全局注册不需要每个页面单独注册 -->
6
7 [Windows/Mac/Linux 全平台客户端](https://github.liubing.me/lb-element-table/zh/guide/)
1 import service from './src/index';
2
3 export default {
4 install (Vue) {
5 Vue.prototype.$loading = service;
6 },
7 service
8 };
1 import Vue from 'vue';
2 import loadingVue from './loading.vue';
3 import { addClass, removeClass, getStyle } from 'element-ui/src/utils/dom';
4 import { PopupManager } from 'element-ui/src/utils/popup';
5 import afterLeave from 'element-ui/src/utils/after-leave';
6 import merge from 'element-ui/src/utils/merge';
7
8 const LoadingConstructor = Vue.extend(loadingVue);
9
10 const defaults = {
11 text: null,
12 fullscreen: true,
13 body: false,
14 lock: false,
15 customClass: ''
16 };
17
18 let fullscreenLoading;
19
20 LoadingConstructor.prototype.originalPosition = '';
21 LoadingConstructor.prototype.originalOverflow = '';
22
23 LoadingConstructor.prototype.close = function() {
24 if (this.fullscreen) {
25 fullscreenLoading = undefined;
26 }
27 afterLeave(this, _ => {
28 const target = this.fullscreen || this.body
29 ? document.body
30 : this.target;
31 removeClass(target, 'el-loading-parent--relative');
32 removeClass(target, 'el-loading-parent--hidden');
33 if (this.$el && this.$el.parentNode) {
34 this.$el.parentNode.removeChild(this.$el);
35 }
36 this.$destroy();
37 }, 300);
38 this.visible = false;
39 };
40
41 const addStyle = (options, parent, instance) => {
42 let maskStyle = {};
43 if (options.fullscreen) {
44 instance.originalPosition = getStyle(document.body, 'position');
45 instance.originalOverflow = getStyle(document.body, 'overflow');
46 maskStyle.zIndex = PopupManager.nextZIndex();
47 } else if (options.body) {
48 instance.originalPosition = getStyle(document.body, 'position');
49 ['top', 'left'].forEach(property => {
50 let scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';
51 maskStyle[property] = options.target.getBoundingClientRect()[property] +
52 document.body[scroll] +
53 document.documentElement[scroll] +
54 'px';
55 });
56 ['height', 'width'].forEach(property => {
57 maskStyle[property] = options.target.getBoundingClientRect()[property] + 'px';
58 });
59 } else {
60 instance.originalPosition = getStyle(parent, 'position');
61 }
62 Object.keys(maskStyle).forEach(property => {
63 instance.$el.style[property] = maskStyle[property];
64 });
65 };
66
67 const Loading = (options = {}) => {
68 if (Vue.prototype.$isServer) return;
69 options = merge({}, defaults, options);
70 if (typeof options.target === 'string') {
71 options.target = document.querySelector(options.target);
72 }
73 options.target = options.target || document.body;
74 if (options.target !== document.body) {
75 options.fullscreen = false;
76 } else {
77 options.body = true;
78 }
79 if (options.fullscreen && fullscreenLoading) {
80 return fullscreenLoading;
81 }
82
83 let parent = options.body ? document.body : options.target;
84 let instance = new LoadingConstructor({
85 el: document.createElement('div'),
86 data: options
87 });
88
89 addStyle(options, parent, instance);
90 if (instance.originalPosition !== 'absolute' && instance.originalPosition !== 'fixed' && instance.originalPosition !== 'sticky') {
91 addClass(parent, 'el-loading-parent--relative');
92 }
93 if (options.fullscreen && options.lock) {
94 addClass(parent, 'el-loading-parent--hidden');
95 }
96 parent.appendChild(instance.$el);
97 Vue.nextTick(() => {
98 instance.visible = true;
99 });
100 if (options.fullscreen) {
101 fullscreenLoading = instance;
102 }
103 return instance;
104 };
105
106 export default Loading;
1 <template>
2 <transition name="el-loading-fade" @after-leave="handleAfterLeave">
3 <div v-show="visible" class="el-loading-mask" :style="{ backgroundColor: background || '' }"
4 :class="[customClass, { 'is-fullscreen': fullscreen }]">
5 <div class="el-loading-spinner">
6 <!-- <svg v-if="!spinner" class="circular" viewBox="25 25 50 50">
7 <circle class="path" cx="50" cy="50" r="20" fill="none" />
8 </svg>
9 <i v-else :class="spinner"></i> -->
10 <img class="img" src="../../../image/progress.gif" alt="">
11 <p v-if="text" class="el-loading-text">{{ text }}</p>
12 </div>
13 </div>
14 </transition>
15 </template>
16
17 <script>
18 export default {
19 data () {
20 return {
21 text: null,
22 spinner: null,
23 background: null,
24 fullscreen: true,
25 visible: false,
26 customClass: ''
27 };
28 },
29
30 methods: {
31 handleAfterLeave () {
32 this.$emit('after-leave');
33 },
34 setText (text) {
35 this.text = text;
36 }
37 }
38 };
39 </script>
40 <style scoped lang="scss">
41 .el-loading-spinner {
42 margin-top: -100px !important;
43
44 .img {
45 width: 80px;
46 height: 80px;
47 }
48 }
49 </style>
...\ No newline at end of file ...\ No newline at end of file
1 import MessageBox from './src/main.js';
2 export default MessageBox;
1 const defaults = {
2 title: null,
3 message: '',
4 type: '',
5 iconClass: '',
6 showInput: false,
7 showClose: true,
8 modalFade: true,
9 lockScroll: true,
10 closeOnClickModal: true,
11 closeOnPressEscape: true,
12 closeOnHashChange: true,
13 inputValue: null,
14 inputPlaceholder: '',
15 inputType: 'text',
16 inputPattern: null,
17 inputValidator: null,
18 inputErrorMessage: '',
19 showConfirmButton: true,
20 showCancelButton: false,
21 confirmButtonPosition: 'right',
22 confirmButtonHighlight: false,
23 cancelButtonHighlight: false,
24 confirmButtonText: '',
25 cancelButtonText: '',
26 confirmButtonClass: '',
27 cancelButtonClass: '',
28 customClass: '',
29 beforeClose: null,
30 dangerouslyUseHTMLString: false,
31 center: false,
32 roundButton: false,
33 distinguishCancelAndClose: false
34 };
35
36 import Vue from 'vue';
37 import msgboxVue from './main.vue';
38 import merge from 'element-ui/src/utils/merge';
39 import { isVNode } from 'element-ui/src/utils/vdom';
40
41 const MessageBoxConstructor = Vue.extend(msgboxVue);
42
43 let currentMsg, instance;
44 let msgQueue = [];
45
46 const defaultCallback = action => {
47 if (currentMsg) {
48 let callback = currentMsg.callback;
49 if (typeof callback === 'function') {
50 if (instance.showInput) {
51 callback(instance.inputValue, action);
52 } else {
53 callback(action);
54 }
55 }
56 }
57 };
58
59 const initInstance = () => {
60 instance = new MessageBoxConstructor({
61 el: document.createElement('div')
62 });
63
64 instance.callback = defaultCallback;
65 };
66
67 const showNextMsg = () => {
68 if (!instance) {
69 initInstance();
70 }
71 instance.action = '';
72
73 if (!instance.visible || instance.closeTimer) {
74 if (msgQueue.length > 0) {
75 currentMsg = msgQueue.shift();
76
77 let options = currentMsg.options;
78 for (let prop in options) {
79 if (options.hasOwnProperty(prop)) {
80 instance[prop] = options[prop];
81 }
82 }
83 if (options.callback === undefined) {
84 instance.callback = defaultCallback;
85 }
86
87 let oldCb = instance.callback;
88 instance.callback = (action, instance) => {
89 oldCb(action, instance);
90 showNextMsg();
91 };
92 if (isVNode(instance.message)) {
93 instance.$slots.default = [instance.message];
94 instance.message = null;
95 } else {
96 delete instance.$slots.default;
97 }
98 ['modal', 'showClose', 'closeOnClickModal', 'closeOnPressEscape', 'closeOnHashChange'].forEach(prop => {
99 if (instance[prop] === undefined) {
100 instance[prop] = true;
101 }
102 });
103 document.body.appendChild(instance.$el);
104
105 Vue.nextTick(() => {
106 instance.visible = true;
107 });
108 }
109 }
110 };
111
112 const MessageBox = function (options, callback) {
113 if (Vue.prototype.$isServer) return;
114 if (typeof options === 'string' || isVNode(options)) {
115 options = {
116 message: options
117 };
118 if (typeof arguments[1] === 'string') {
119 options.title = arguments[1];
120 }
121 } else if (options.callback && !callback) {
122 callback = options.callback;
123 }
124
125 if (typeof Promise !== 'undefined') {
126 return new Promise((resolve, reject) => { // eslint-disable-line
127 msgQueue.push({
128 options: merge({}, defaults, MessageBox.defaults, options),
129 callback: callback,
130 resolve: resolve,
131 reject: reject
132 });
133
134 showNextMsg();
135 });
136 } else {
137 msgQueue.push({
138 options: merge({}, defaults, MessageBox.defaults, options),
139 callback: callback
140 });
141
142 showNextMsg();
143 }
144 };
145
146 MessageBox.setDefaults = defaults => {
147 MessageBox.defaults = defaults;
148 };
149
150 MessageBox.alert = (title, message, options) => {
151 if (typeof title === 'object') {
152 options = title;
153 title = '';
154 } else if (title === undefined) {
155 title = '';
156 }
157 return MessageBox(merge({
158 title: title,
159 message: message,
160 $type: 'alert',
161 closeOnPressEscape: false,
162 closeOnClickModal: false
163 }, options));
164 };
165
166 MessageBox.close = () => {
167 instance.doClose();
168 instance.visible = false;
169 msgQueue = [];
170 currentMsg = null;
171 };
172
173 export default MessageBox;
174 export { MessageBox };
1 <template>
2 <transition name="msgbox-fade">
3 <div class="el-message-box__wrapper" tabindex="-1" v-show="visible" @click.self="handleWrapperClick" role="dialog"
4 aria-modal="true" :aria-label="title || 'dialog'">
5 <div class="el-message-box" :class="[customClass, center && 'el-message-box--center']">
6 <div class="el-message-box__header" v-if="title !== null">
7 <div class="el-message-box__title">
8 <span>标题:{{ title }}</span>
9 </div>
10 <button type="button" class="el-message-box__headerbtn" aria-label="Close" v-if="showClose"
11 @click="handleAction(distinguishCancelAndClose ? 'close' : 'cancel')"
12 @keydown.enter="handleAction(distinguishCancelAndClose ? 'close' : 'cancel')">
13 <i class="el-message-box__close el-icon-close"></i>
14 </button>
15 </div>
16 <div class="el-message-box__content">
17 <div v-if="message !== ''" class="richText" v-html="message"></div>
18 </div>
19 <div class="el-message-box__btns">
20 <el-button :loading="cancelButtonLoading" :class="[cancelButtonClasses]" :round="roundButton" size="small"
21 @click.native="handleAction('cancel')" @keydown.enter="handleAction('cancel')">
22 {{ cancelButtonText || t('el.messagebox.cancel') }}
23 </el-button>
24 </div>
25 </div>
26 </div>
27 </transition>
28 </template>
29
30 <script type="text/babel">
31 import Popup from 'element-ui/src/utils/popup';
32 import Locale from 'element-ui/src/mixins/locale';
33 import ElInput from 'element-ui/packages/input';
34 import ElButton from 'element-ui/packages/button';
35 import { addClass, removeClass } from 'element-ui/src/utils/dom';
36 import { t } from 'element-ui/src/locale';
37 import Dialog from 'element-ui/src/utils/aria-dialog';
38
39 let messageBox;
40 let typeMap = {
41 success: 'success',
42 info: 'info',
43 warning: 'warning',
44 error: 'error'
45 };
46
47 export default {
48 mixins: [Popup, Locale],
49
50 props: {
51 modal: {
52 default: true
53 },
54 lockScroll: {
55 default: true
56 },
57 showClose: {
58 type: Boolean,
59 default: true
60 },
61 closeOnClickModal: {
62 default: true
63 },
64 closeOnPressEscape: {
65 default: true
66 },
67 closeOnHashChange: {
68 default: true
69 },
70 center: {
71 default: false,
72 type: Boolean
73 },
74 roundButton: {
75 default: false,
76 type: Boolean
77 }
78 },
79
80 components: {
81 ElInput,
82 ElButton
83 },
84
85 computed: {
86 icon () {
87 const { type, iconClass } = this;
88 return iconClass || (type && typeMap[type] ? `el-icon-${typeMap[type]}` : '');
89 },
90
91 confirmButtonClasses () {
92 return `el-button--primary ${this.confirmButtonClass}`;
93 },
94 cancelButtonClasses () {
95 return `${this.cancelButtonClass}`;
96 }
97 },
98
99 methods: {
100 getSafeClose () {
101 const currentId = this.uid;
102 return () => {
103 this.$nextTick(() => {
104 if (currentId === this.uid) this.doClose();
105 });
106 };
107 },
108 doClose () {
109 if (!this.visible) return;
110 this.visible = false;
111 this._closing = true;
112
113 this.onClose && this.onClose();
114 messageBox.closeDialog(); // 解绑
115 if (this.lockScroll) {
116 setTimeout(this.restoreBodyStyle, 200);
117 }
118 this.opened = false;
119 this.doAfterClose();
120 setTimeout(() => {
121 if (this.action) this.callback(this.action, this);
122 });
123 },
124
125 handleWrapperClick () {
126 if (this.closeOnClickModal) {
127 this.handleAction(this.distinguishCancelAndClose ? 'close' : 'cancel');
128 }
129 },
130
131 handleInputEnter () {
132 if (this.inputType !== 'textarea') {
133 return this.handleAction('confirm');
134 }
135 },
136
137 handleAction (action) {
138 if (this.$type === 'prompt' && action === 'confirm' && !this.validate()) {
139 return;
140 }
141 this.action = action;
142 if (typeof this.beforeClose === 'function') {
143 this.close = this.getSafeClose();
144 this.beforeClose(action, this, this.close);
145 } else {
146 this.doClose();
147 }
148 },
149
150 validate () {
151 if (this.$type === 'prompt') {
152 const inputPattern = this.inputPattern;
153 if (inputPattern && !inputPattern.test(this.inputValue || '')) {
154 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
155 addClass(this.getInputElement(), 'invalid');
156 return false;
157 }
158 const inputValidator = this.inputValidator;
159 if (typeof inputValidator === 'function') {
160 const validateResult = inputValidator(this.inputValue);
161 if (validateResult === false) {
162 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
163 addClass(this.getInputElement(), 'invalid');
164 return false;
165 }
166 if (typeof validateResult === 'string') {
167 this.editorErrorMessage = validateResult;
168 addClass(this.getInputElement(), 'invalid');
169 return false;
170 }
171 }
172 }
173 this.editorErrorMessage = '';
174 removeClass(this.getInputElement(), 'invalid');
175 return true;
176 },
177 getFirstFocus () {
178 const btn = this.$el.querySelector('.el-message-box__btns .el-button');
179 const title = this.$el.querySelector('.el-message-box__btns .el-message-box__title');
180 return btn || title;
181 },
182 getInputElement () {
183 const inputRefs = this.$refs.input.$refs;
184 return inputRefs.input || inputRefs.textarea;
185 },
186 handleClose () {
187 this.handleAction('close');
188 }
189 },
190
191 watch: {
192 inputValue: {
193 immediate: true,
194 handler (val) {
195 this.$nextTick(_ => {
196 if (this.$type === 'prompt' && val !== null) {
197 this.validate();
198 }
199 });
200 }
201 },
202
203 visible (val) {
204 if (val) {
205 this.uid++;
206 this.focusAfterClosed = document.activeElement;
207 messageBox = new Dialog(this.$el, this.focusAfterClosed, this.getFirstFocus());
208 }
209
210 // prompt
211 if (this.$type !== 'prompt') return;
212 if (val) {
213 setTimeout(() => {
214 if (this.$refs.input && this.$refs.input.$el) {
215 this.getInputElement().focus();
216 }
217 }, 500);
218 } else {
219 this.editorErrorMessage = '';
220 removeClass(this.getInputElement(), 'invalid');
221 }
222 }
223 },
224
225 mounted () {
226 this.$nextTick(() => {
227 if (this.closeOnHashChange) {
228 window.addEventListener('hashchange', this.close);
229 }
230 });
231 },
232
233 beforeDestroy () {
234 if (this.closeOnHashChange) {
235 window.removeEventListener('hashchange', this.close);
236 }
237 setTimeout(() => {
238 messageBox.closeDialog();
239 });
240 },
241
242 data () {
243 return {
244 uid: 1,
245 title: undefined,
246 message: '',
247 type: '',
248 iconClass: '',
249 customClass: '',
250 showInput: false,
251 inputValue: null,
252 inputPlaceholder: '',
253 inputType: 'text',
254 inputPattern: null,
255 inputValidator: null,
256 inputErrorMessage: '',
257 showConfirmButton: true,
258 showCancelButton: false,
259 action: '',
260 confirmButtonText: '',
261 cancelButtonText: '',
262 confirmButtonLoading: false,
263 cancelButtonLoading: false,
264 confirmButtonClass: '',
265 confirmButtonDisabled: false,
266 cancelButtonClass: '',
267 editorErrorMessage: null,
268 callback: null,
269 dangerouslyUseHTMLString: false,
270 focusAfterClosed: null,
271 isOnComposition: false,
272 distinguishCancelAndClose: false
273 };
274 }
275 };
276 </script>
277 <style scoped>
278 /deep/.el-message-box {
279 width: 500px;
280 max-height: 95%;
281 }
282
283 /deep/.message-title {
284 font-size: 18px;
285 font-weight: 700;
286 margin-bottom: 5px;
287 }
288
289 /deep/.el-message-box__content img {
290 width: 100%;
291 height: 100%;
292 }
293
294 /deep/.el-message-box__content {
295 padding-top: 0;
296 }
297 </style>
...\ No newline at end of file ...\ No newline at end of file
1 import Vue from 'vue'
2 import Popup from './index.vue'
3
4 const PopupBox = Vue.extend(Popup)
5 Popup.install = function (title, editItem, data, formData) {
6 data.title = title
7 data.editItem = editItem
8 if (formData) {
9 data.formData = formData
10 }
11 let instance = new PopupBox({
12 data
13 }).$mount()
14 document.body.appendChild(instance.$el)
15 Vue.nextTick(() => {
16 instance.isShow = true
17 })
18 }
19
20 export default Popup
1 <template>
2 <transition name="msgbox-fade" v-if="myShow">
3 <div class="ls-mask" v-loading="loading">
4 <div class="ls-mask-window" :style="{ 'width': width }">
5 <div class="ls-head">
6 <div class="ls-title" :style="{ 'text-align': titleStyle }">
7 <svg-icon v-if="iconClass != ''" :icon-class='iconClass' />
8 <b>{{ title }}</b>
9 </div>
10 <svg-icon icon-class='close' class="closeStyle" @click="onCancel" />
11 </div>
12 <div class="mask-content" ref='contentRef' :style="{ 'height': contentHeight }">
13 <component :is="editItem" ref='childRef' @loading='loadingFn' :key="key" :formData='formData' />
14 </div>
15 <div class="ls-mask-footer" v-if='btnShow'>
16 <el-button type="primary" @click="onConfirm">{{ confirmText }}</el-button>
17 <el-button @click="onCancel">{{ cancelText }}</el-button>
18 </div>
19 </div>
20 </div>
21 </transition>
22 </template>
23 <script>
24 export default {
25 name: 'index',
26 data () {
27 return {
28 title: '标题',
29 editItem: "",
30 formData: undefined,//父组件传递的参数 负责传给子组件
31 btnShow: false,
32 cancel: function () { },
33 confirm: function () { },
34 cancelText: '取消',
35 confirmText: '确认',
36 isSync: false,
37 isShow: false,
38 myShow: false,
39 titleStyle: 'center',
40 width: "75%",
41 height: "auto",
42 contentHeight: "",
43 iconClass: "",
44 key: 0
45 }
46 },
47 props: {
48 loading: { type: Boolean, default: false },
49 },
50 watch: {
51 isShow (newValue) {
52 this.editItem = this.loadViewFn(this.editItem)
53 document.body.appendChild(this.$el);
54 this.myShow = newValue
55 }
56 },
57 mounted () {
58 // 计算滚动条高度
59 setTimeout(() => {
60 if (this.btnShow) {
61 if (this.height == 'auto') {
62 this.contentHeight = (this.$refs.contentRef.offsetHeight) + 'px'
63 } else {
64 this.contentHeight = this.height
65 }
66 } else {
67 if (this.height == 'auto') {
68 this.contentHeight = (this.$refs.contentRef.offsetHeight) + 'px'
69 } else {
70 this.contentHeight = this.height
71 }
72 }
73 }, 300)
74 },
75 methods: {
76 onCancel () {
77 this.isShow = false
78 this.cancel()
79 },
80 onConfirm () {
81 this.loading = true
82 let res = new Promise((resolve, reject) => {
83 this.confirm()
84 resolve(true)
85 })
86 if (res) {
87 this.isShow = false
88 }
89 },
90 loadingFn (e) { //加载状态
91 this.loading = e
92 },
93 loadViewFn (view) {
94 return (r) =>
95 require.ensure([], () =>
96 r(require(`@/views/${view}.vue`))
97 )
98 }
99 },
100 destroyed () {
101 if (this.appendToBody && this.$el && this.$el.parentNode) {
102 this.$el.parentNode.removeChild(this.$el);
103 }
104 }
105 }
106 </script>
107 <style scoped lang="scss" >
108 .ls-mask {
109 width: 100%;
110 height: 100%;
111 z-index: 100;
112 position: fixed;
113 left: 0;
114 top: 0;
115 background: rgba(0, 0, 0, 0.3);
116
117 }
118
119 .ls-mask-window {
120 background: white;
121 position: relative;
122 left: 50%;
123 top: 50%;
124 min-height: 200px;
125 transform: translate(-50%, -50%);
126 border-radius: 5px;
127 overflow: hidden;
128 }
129
130 .ls-mask-window b {
131 padding-left: 5px;
132 }
133
134 .ls-title {
135 padding: 16px;
136 color: #ffffff;
137 background: linear-gradient(3deg, #409EFF, #a7cbee);
138 }
139
140 .ls-title .svg-icon {
141 font-size: 18px;
142 }
143
144 .mask-content {
145 padding: 20px;
146 width: 100%;
147 min-height: 30%;
148 max-height: 95%;
149 overflow-y: scroll;
150 }
151
152 .ls-mask-footer {
153 height: 50px;
154 display: flex;
155 justify-content: center;
156 width: 100%;
157 position: absolute;
158 border-top: 1px solid $borderColor;
159 bottom: 0;
160 background: #ffffff;
161 border-bottom-left-radius: 5px;
162 border-bottom-right-radius: 5px;
163 overflow: hidden;
164 }
165
166
167 /deep/.closeStyle {
168 position: absolute;
169 top: 13px;
170 right: 26px;
171 font-size: 24px;
172 cursor: pointer;
173 color: #409EFF;
174 }
175
176 /deep/.el-loading-mask {
177 background: none;
178 }
179
180 /deep/.el-button {
181 margin: 8px 10px;
182 width: 75px;
183 }
184 </style>
185
...\ No newline at end of file ...\ No newline at end of file
1 弹窗封装
2 2.用法以及参数:
3 this.$popup('提示','ywbl/dbx/aa',{
4 width: '75%', // 初始化75% 不需要改的话 可以直接不要
5 formData: this.formData, // 父组件传给子组件的参数
6 cancel: function () {}, //取消事件的回调 没有按钮可以不需要
7 confirm: function () {} //确认事件的回调 没有按钮可以不需要
8 })
9
10 5.后续有修改请添加在此处文档说明作用
...\ No newline at end of file ...\ No newline at end of file
1 <!--显示svg文件图标-->
2 <template>
3 <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
4 <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
5 <use :xlink:href="iconName" />
6 </svg>
7 </template>
8
9 <script>
10 // doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
11 import { isExternal } from '@/utils/validate'
12
13 export default {
14 name: 'SvgIcon',
15 props: {
16 iconClass: {
17 type: String,
18 required: true
19 },
20 className: {
21 type: String,
22 default: ''
23 }
24 },
25 computed: {
26 isExternal() {
27 return isExternal(this.iconClass)
28 },
29 iconName() {
30 return `#icon-${this.iconClass}`
31 },
32 svgClass() {
33 if (this.className) {
34 return 'svg-icon ' + this.className
35 } else {
36 return 'svg-icon'
37 }
38 },
39 styleExternalIcon() {
40 return {
41 mask: `url(${this.iconClass}) no-repeat 50% 50%`,
42 '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
43 }
44 }
45 }
46 }
47 </script>
48
49 <style scoped>
50 .svg-icon {
51 width: 1em;
52 height: 1em;
53 vertical-align: -0.15em;
54 fill: currentColor;
55 overflow: hidden;
56 }
57
58 .svg-external-icon {
59 background-color: currentColor;
60 mask-size: cover!important;
61 display: inline-block;
62 }
63 </style>
1 <template>
2 <el-color-picker v-model="theme"
3 :predefine="['#409EFF', '#1890ff', '#304156', '#212121', '#11a983', '#13c2c2', '#6959CD', '#f5222d',]"
4 class="theme-picker" popper-class="theme-picker-dropdown" />
5 </template>
6
7 <script>
8 const version = require('element-ui/package.json').version // element-ui version from node_modules
9 const ORIGINAL_THEME = '#409EFF' // default color
10
11 export default {
12 data () {
13 return {
14 chalk: '', // content of theme-chalk css
15 theme: ''
16 }
17 },
18 computed: {
19 defaultTheme () {
20 return this.$store.state.app.theme
21 }
22 },
23 watch: {
24 defaultTheme: {
25 handler: function (val, oldVal) {
26 this.theme = val
27 },
28 immediate: true
29 },
30 async theme (val) {
31 const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
32 if (typeof val !== 'string') return
33 const themeCluster = this.getThemeCluster(val.replace('#', ''))
34 const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
35 console.log(themeCluster, originalCluster)
36
37 const $message = this.$message({
38 message: ' Compiling the theme',
39 customClass: 'theme-message',
40 type: 'success',
41 duration: 0,
42 iconClass: 'el-icon-loading'
43 })
44
45 const getHandler = (variable, id) => {
46 return () => {
47 const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
48 const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
49
50 let styleTag = document.getElementById(id)
51 if (!styleTag) {
52 styleTag = document.createElement('style')
53 styleTag.setAttribute('id', id)
54 document.head.appendChild(styleTag)
55 }
56 styleTag.innerText = newStyle
57 }
58 }
59
60 if (!this.chalk) {
61 const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
62 await this.getCSSString(url, 'chalk')
63 }
64
65 const chalkHandler = getHandler('chalk', 'chalk-style')
66
67 chalkHandler()
68
69 const styles = [].slice.call(document.querySelectorAll('style'))
70 .filter(style => {
71 const text = style.innerText
72 return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
73 })
74 styles.forEach(style => {
75 const { innerText } = style
76 if (typeof innerText !== 'string') return
77 style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
78 })
79
80 this.$emit('change', val)
81
82 $message.close()
83 }
84 },
85
86 methods: {
87 updateStyle (style, oldCluster, newCluster) {
88 let newStyle = style
89 oldCluster.forEach((color, index) => {
90 newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
91 })
92 return newStyle
93 },
94
95 getCSSString (url, variable) {
96 return new Promise(resolve => {
97 const xhr = new XMLHttpRequest()
98 xhr.onreadystatechange = () => {
99 if (xhr.readyState === 4 && xhr.status === 200) {
100 this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
101 resolve()
102 }
103 }
104 xhr.open('GET', url)
105 xhr.send()
106 })
107 },
108
109 getThemeCluster (theme) {
110 const tintColor = (color, tint) => {
111 let red = parseInt(color.slice(0, 2), 16)
112 let green = parseInt(color.slice(2, 4), 16)
113 let blue = parseInt(color.slice(4, 6), 16)
114
115 if (tint === 0) { // when primary color is in its rgb space
116 return [red, green, blue].join(',')
117 } else {
118 red += Math.round(tint * (255 - red))
119 green += Math.round(tint * (255 - green))
120 blue += Math.round(tint * (255 - blue))
121
122 red = red.toString(16)
123 green = green.toString(16)
124 blue = blue.toString(16)
125
126 return `#${red}${green}${blue}`
127 }
128 }
129
130 const shadeColor = (color, shade) => {
131 let red = parseInt(color.slice(0, 2), 16)
132 let green = parseInt(color.slice(2, 4), 16)
133 let blue = parseInt(color.slice(4, 6), 16)
134
135 red = Math.round((1 - shade) * red)
136 green = Math.round((1 - shade) * green)
137 blue = Math.round((1 - shade) * blue)
138
139 red = red.toString(16)
140 green = green.toString(16)
141 blue = blue.toString(16)
142
143 return `#${red}${green}${blue}`
144 }
145
146 const clusters = [theme]
147 for (let i = 0; i <= 9; i++) {
148 clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
149 }
150 clusters.push(shadeColor(theme, 0.1))
151 return clusters
152 }
153 }
154 }
155 </script>
156
157 <style>
158 .theme-message,
159 .theme-picker-dropdown {
160 z-index: 99999 !important;
161 }
162
163 .theme-picker .el-color-picker__trigger {
164 height: 26px !important;
165 width: 26px !important;
166 padding: 2px;
167 }
168
169 .theme-picker-dropdown .el-color-dropdown__link-btn {
170 display: none;
171 }
172 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="issuingInfo itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="issuingInfo" label-width="100px">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="YSDM">
7 <span slot="label">
8 要素代码: <br />
9 <p class="label-detail">(YSDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSDM" placeholder="要素代码"></el-input>
12 </el-form-item>
13 </el-col>
14
15 <el-col :span="8">
16 <el-form-item prop="YWH">
17 <span slot="label">
18 业务号: <br />
19 <p class="label-detail">(YWH)</p>
20 </span>
21 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YWH" placeholder="业务号"></el-input>
22 </el-form-item>
23 </el-col>
24
25 <el-col :span="8">
26 <el-form-item prop="DJDL">
27 <span slot="label">
28 登记大类: <br />
29 <p class="label-detail">(DJDL)</p>
30 </span>
31 <el-select :disabled="$store.state.business.Edit" v-model="ruleForm.DJDL" placeholder="登记大类">
32 <el-option v-for="item in dicData['A21']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
33 </el-option>
34 </el-select>
35 </el-form-item>
36 </el-col>
37 </el-row>
38
39 <el-row>
40 <el-col :span="8">
41 <el-form-item prop="DJXL">
42 <span slot="label">
43 登记小类: <br />
44 <p class="label-detail">(DJXL)</p>
45 </span>
46 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DJXL" placeholder="登记小类"></el-input>
47 </el-form-item>
48 </el-col>
49
50 <el-col :span="8">
51 <el-form-item prop="ZL">
52 <span slot="label">
53 坐落: <br />
54 <p class="label-detail">(ZL)</p>
55 </span>
56 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZL" placeholder="坐落"></el-input>
57 </el-form-item>
58 </el-col>
59
60 <el-col :span="8">
61 <el-form-item prop="QZHM">
62 <span slot="label">
63 权证号码: <br />
64 <p class="label-detail">(QZHM)</p>
65 </span>
66 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QZHM" placeholder="权证号码"></el-input>
67 </el-form-item>
68 </el-col>
69 </el-row>
70
71 <el-row>
72 <el-col :span="8">
73 <el-form-item prop="WJJS">
74 <span slot="label">
75 文件件数: <br />
76 <p class="label-detail">(WJJS)</p>
77 </span>
78 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.WJJS"
79 v-only-number="{ max: 99999, min: 1, precision: 0 }" placeholder="文件件数"></el-input>
80 </el-form-item>
81 </el-col>
82
83 <el-col :span="8">
84 <el-form-item prop="ZYS">
85 <span slot="label">
86 总页数 <br />
87 <p class="label-detail">(ZYS)</p>
88 </span>
89 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZYS"
90 v-only-number="{ max: 99999, min: 1, precision: 0 }" placeholder="总页数"></el-input>
91 </el-form-item>
92 </el-col>
93
94 <el-col :span="8">
95 <el-form-item prop="GDRY">
96 <span slot="label">
97 归档人员: <br />
98 <p class="label-detail">(GDRY)</p>
99 </span>
100 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.GDRY" placeholder="归档人员"></el-input>
101 </el-form-item>
102 </el-col>
103 </el-row>
104
105 <el-row>
106 <el-col :span="8">
107 <el-form-item prop="GDSJ">
108 <span slot="label">
109 归档时间: <br />
110 <p class="label-detail">(GDSJ)</p>
111 </span>
112 <el-date-picker :disabled="$store.state.business.Edit" type="datetime" placeholder="归档时间" clearable
113 v-model="ruleForm.GDSJ" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
114 </el-form-item>
115 </el-col>
116
117 <el-col :span="8">
118 <el-form-item prop="BZ">
119 <span slot="label">
120 备注: <br />
121 <p class="label-detail">(BZ)</p>
122 </span>
123 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BZ" placeholder="备注"></el-input>
124 </el-form-item>
125 </el-col>
126
127 <el-col :span="8">
128 <el-form-item prop="QXDM">
129 <span slot="label">
130 区县代码: <br />
131 <p class="label-detail">(QXDM)</p>
132 </span>
133 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
134 </el-form-item>
135 </el-col>
136
137 </el-row>
138 </el-form>
139 <message-tips ref="msg" />
140 </div>
141 </template>
142 <script>
143 // 归档信息
144 import business from '@/api/business'
145 import ruleMixin from '@/mixins/ruleMixin.js'
146 export default {
147 mixins: [ruleMixin],
148 props: {
149 bsmSjsb: {
150 type: String,
151 default: ''
152 },
153 dataTable: {
154 type: String,
155 default: ''
156 }
157 },
158 data () {
159 return {
160 ruleForm: {
161 YSDM: '',
162 YWH: '',
163 DJDL: '',
164 DJXL: '',
165 ZL: '',
166 QZHM: '',
167 WJJS: '',
168 ZYS: '',
169 GDRY: '',
170 GDSJ: '',
171 BZ: '',
172 QXDM: ''
173 }
174 }
175 },
176 methods: {
177 async featchData () {
178 try {
179 let { result: res } = await business.getDjfDjGdById(this.bsmSjsb)
180 this.ruleForm = res
181 this.featchRule()
182 } catch (error) {
183 this.$refs.msg.messageShow()
184 }
185 },
186 handleUpdateForm () {
187 return new Promise(async (resolve) => {
188 try {
189 let res = await business.updateDjfDjGd(this.ruleForm)
190 // this.$refs['formList'].resetFields();
191 resolve(res.code)
192 } catch (error) {
193 this.$refs.msg.messageShow()
194 }
195 })
196 }
197 }
198 }
199 </script>
200 <style scoped lang="scss">
201 @import "./css/itemForm.scss";
202 </style>
203
204
1 <template>
2 <div class="auditInfo itemForm">
3 <el-form :model="form" ref="formList" label-width="110px" :key="key">
4 <div v-for="(item, index) in form.auditInfo" :key="index" class="auditInfo-item">
5 <p class="auditInfo-item-name">审核信息{{ index + 1 }}</p>
6
7 <div class="auditInfo-item-list">
8 <el-row class="auditInfo-item-input">
9 <el-col :span="8">
10 <el-form-item :prop="'auditInfo.' + index + '.YSDM'" :rules="rules.YSDM">
11 <span slot="label">
12 要素代码: <br />
13 <p class="label-detail">(YSDM)</p>
14 </span>
15 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].YSDM"
16 placeholder="要素代码"></el-input>
17 </el-form-item>
18 </el-col>
19
20 <el-col :span="8">
21 <el-form-item :prop="'auditInfo.' + index + '.YWH'" :rules="rules.YWH">
22 <span slot="label">
23 业务号: <br />
24 <p class="label-detail">(YWH)</p>
25 </span>
26 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].YWH"
27 placeholder="业务号"></el-input>
28 </el-form-item>
29 </el-col>
30
31 <el-col :span="8">
32 <el-form-item :prop="'auditInfo.' + index + '.JDMC'" :rules="rules.JDMC">
33 <span slot="label">
34 节点名称: <br />
35 <p class="label-detail">(JDMC)</p>
36 </span>
37 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].JDMC"
38 placeholder="节点名称"></el-input>
39 </el-form-item>
40 </el-col>
41 </el-row>
42
43 <el-row class="auditInfo-item-input">
44 <el-col :span="24">
45 <el-form-item :prop="'auditInfo.' + index + '.SHYJ'" :rules="rules.SHYJ">
46 <span slot="label">
47 审核意见: <br />
48 <p class="label-detail">(SHYJ)</p>
49 </span>
50 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].SHYJ" type="textarea"
51 :rows="2" placeholder="审核意见"></el-input>
52 </el-form-item>
53 </el-col>
54
55 </el-row>
56
57 <el-row class="auditInfo-item-input">
58 <el-col :span="8">
59 <el-form-item :prop="'auditInfo.' + index + '.SHRYXM'" :rules="rules.SHRYXM">
60 <span slot="label">
61 审核人员姓名: <br />
62 <p class="label-detail">(SHRYXM)</p>
63 </span>
64 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].SHRYXM"
65 placeholder="审核人员姓名"></el-input>
66 </el-form-item>
67 </el-col>
68
69 <el-col :span="8">
70 <el-form-item :prop="'auditInfo.' + index + '.SHKSSJ'" :rules="rules.SHKSSJ">
71 <span slot="label">
72 审核开始时间: <br />
73 <p class="label-detail">(SHKSSJ)</p>
74 </span>
75 <el-date-picker :disabled="$store.state.business.Edit" type="datetime" placeholder="审核开始时间" clearable
76 v-model="form.auditInfo[index].SHKSSJ" value-format="yyyy-MM-dd HH:mm:ss"
77 :picker-options="item.traceStart" @change="changeTraceStart(item)"></el-date-picker>
78 </el-form-item>
79 </el-col>
80
81 <el-col :span="8">
82 <el-form-item :prop="'auditInfo.' + index + '.SHJSSJ'" :rules="rules.SHJSSJ">
83 <span slot="label">
84 审核结束时间: <br />
85 <p class="label-detail">(SHJSSJ)</p>
86 </span>
87 <el-date-picker :disabled="$store.state.business.Edit" type="datetime" placeholder="审核结束时间" clearable
88 v-model="form.auditInfo[index].SHJSSJ" :picker-options="item.traceEnd" @change="changeTraceEnd(item)"
89 value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
90 </el-form-item>
91 </el-col>
92 </el-row>
93
94 <el-row class="auditInfo-item-input">
95 <el-col :span="8">
96 <el-form-item :prop="'auditInfo.' + index + '.SXH'" :rules="{ ...rules.SXH, ...typeNum }">
97 <span slot="label">
98 顺序号: <br />
99 <p class="label-detail">(SXH)</p>
100 </span>
101 <el-input :disabled="$store.state.business.Edit" v-model.number="form.auditInfo[index].SXH"
102 type="number" v-only-number="{ max: 9999, min: 0, precision: 0 }" placeholder="顺序号"></el-input>
103 </el-form-item>
104 </el-col>
105
106 <el-col :span="8">
107 <el-form-item :prop="'auditInfo.' + index + '.CZJG'" :rules="rules.SHKSSJ">
108 <span slot="label">
109 操作结果: <br />
110 <p class="label-detail">(CZJG)</p>
111 </span>
112 <el-select :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].CZJG"
113 placeholder="请选择操作结果">
114 <el-option v-for="item in dicData['A37']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
115 </el-option>
116 </el-select>
117 </el-form-item>
118 </el-col>
119
120 <el-col :span="8">
121 <el-form-item :prop="'auditInfo.' + index + '.QXDM'" :rules="rules.QXDM">
122 <span slot="label">
123 区县代码: <br />
124 <p class="label-detail">(QXDM)</p>
125 </span>
126 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].QXDM"
127 placeholder="区县代码"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item :prop="'auditInfo.' + index + '.BZ'" :rules="rules.BZ">
132 <span slot="label">
133 区县代码: <br />
134 <p class="label-detail">(BZ)</p>
135 </span>
136 <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].BZ"
137 placeholder="备注"></el-input>
138 </el-form-item>
139 </el-col>
140 </el-row>
141 </div>
142 </div>
143 </el-form>
144 <message-tips ref="msg" />
145 </div>
146 </template>
147 <script>
148 import business from '@/api/business'
149 import ruleMixin from '@/mixins/ruleMixin.js'
150 // 审核信息
151 export default {
152 mixins: [ruleMixin],
153 props: {
154 bsmSjsb: {
155 type: String,
156 default: ''
157 },
158 dataTable: {
159 type: String,
160 default: ''
161 }
162 },
163 data () {
164 return {
165 form: {
166 auditInfo: [
167 {
168 YSDM: '',
169 YWH: '',
170 JDMC: '',
171 SHYJ: '',
172 SHRYXM: '',
173 SHKSSJ: '',
174 traceStart: {},
175 SHJSSJ: '',
176 traceEnd: {},
177 SXH: '',
178 CZJG: '',
179 QXDM: '',
180 BZ: ''
181 }
182 ]
183 }
184 }
185 },
186 methods: {
187 changeTraceEnd (item) {
188 if (item.SHJSSJ !== null) { //当前值为空 也会进行判断 所以条件最好不要非空验证
189 item.traceStart = {
190 disabledDate: (time) => {
191 return time.getTime() > new Date(item.SHJSSJ).getTime() //大于结束时间的不选
192 }
193 }
194 } else {
195 item.traceStart = {}
196 }
197 },
198 //跟踪API结束时间限制开始时间
199 changeTraceStart (item) {
200 if (item.SHKSSJ !== null) { //当前值为空 也会进行判断 所以条件最好不要非空验证
201 item.traceEnd = {
202 disabledDate: (time) => {
203 return time.getTime() < new Date(item.SHKSSJ).getTime() //小于开始时间的不选
204 }
205 }
206 } else {
207 item.traceEnd = {}
208 }
209 },
210 async featchData () {
211 try {
212 let { result: res } = await business.getDjfDjShById(this.bsmSjsb)
213 this.form.auditInfo = res
214 this.featchRule()
215 } catch (error) {
216 this.$refs.msg.messageShow()
217 }
218 },
219 handleUpdateForm () {
220 return new Promise(async (resolve) => {
221 try {
222 let res = await business.updateDjfDjSh(this.form.auditInfo)
223 // this.$refs['formList'].resetFields();
224 resolve(res.code)
225 } catch (error) {
226 this.$refs.msg.messageShow()
227 }
228 })
229 }
230 }
231 }
232 </script>
233 <style scoped lang="scss">
234 @import "./css/itemForm.scss";
235
236 .auditInfo-item {
237 display: flex;
238 height: 100%;
239 margin-bottom: 15px;
240 margin-right: 5px;
241
242 &-name {
243 display: flex;
244 align-items: center;
245 justify-content: center;
246 width: 20px;
247 padding: 10px 20px;
248 line-height: 28px;
249 border: 1px solid #ccc;
250 margin-right: 15px;
251 border-radius: 3px;
252 }
253
254 &-list {
255 width: 100%;
256 flex: 1;
257 display: flex;
258 justify-content: center;
259 flex-direction: column;
260 }
261 }
262 </style>
263
264
1 <template>
2 <div class="boundaryLine itemForm">
3 <el-form :model="boundaryLine" :rules="rules" ref="formList" label-width="121px" :key="key">
4 <div v-for="(item, index) in boundaryLine.ruleForm" :key="index" class="boundaryLine-item">
5 <p class="boundaryLine-item-name">界址线{{ index + 1 }}</p>
6 <div class="boundaryLine-item-list">
7 <el-row>
8 <el-col :span="8">
9 <el-form-item>
10 <span slot="label">
11 标识码: <br />
12 <p class="label-detail">(BSM)</p>
13 </span>
14 <p :class="{ 'disabled': $store.state.business.Edit }">
15 {{ boundaryLine.ruleForm[index].BSM }}
16 </p>
17 </el-form-item>
18 </el-col>
19
20 <el-col :span="8">
21 <el-form-item :prop="'ruleForm.' + index + '.YSDM'" :rules="rules.YSDM">
22 <span slot="label">
23 要素代码: <br />
24 <p class="label-detail">(YSDM)</p>
25 </span>
26 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].YSDM"
27 maxlength="10" placeholder="要素代码"></el-input>
28 </el-form-item>
29 </el-col>
30
31 <el-col :span="8">
32 <el-form-item :prop="'ruleForm.' + index + '.ZDZHDM'" :rules="rules.ZDZHDM">
33 <span slot="label">
34 宗地/宗海代码: <br />
35 <p class="label-detail">(ZDZHDM)</p>
36 </span>
37 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].ZDZHDM"
38 maxlength="19" placeholder="宗地/宗海代码"></el-input>
39 </el-form-item>
40 </el-col>
41 </el-row>
42
43 <el-row>
44 <el-col :span="8">
45 <el-form-item :prop="'ruleForm.' + index + '.JZXCD'" :rules="{ ...rules.JZXCD, ...typeNum }">
46 <span slot="label">
47 界址线长度: <br />
48 <p class="label-detail">(JZXCD)</p>
49 </span>
50 <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryLine.ruleForm[index].JZXCD"
51 type="number" v-only-number="{ max: 999999999999999, min: 0, precision: 2 }"
52 placeholder="界址线长度"></el-input>
53 </el-form-item>
54 </el-col>
55
56 <el-col :span="8">
57 <el-form-item :prop="'ruleForm.' + index + '.JZXLB'" :rules="rules.JZXLB">
58 <span slot="label">
59 界址线类别: <br />
60 <p class="label-detail">(JZXLB)</p>
61 </span>
62 <el-select :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].JZXLB"
63 placeholder="界址线类别">
64 <el-option v-for="item in dicData['A48']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
65 </el-option>
66 </el-select>
67 </el-form-item>
68 </el-col>
69
70 <el-col :span="8">
71 <el-form-item :prop="'ruleForm.' + index + '.JZXWZ'" :rules="rules.JZXWZ">
72 <span slot="label">
73 界址线位置: <br />
74 <p class="label-detail">(JZXWZ)</p>
75 </span>
76 <el-select :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].JZXWZ"
77 placeholder="界址线位置">
78 <el-option v-for="item in dicData['A3']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
79 </el-option>
80 </el-select>
81 </el-form-item>
82 </el-col>
83 </el-row>
84
85 <el-row>
86 <el-col :span="8">
87 <el-form-item :prop="'ruleForm.' + index + '.JXXZ'" class="borderTopNone" :rules="rules.JXXZ">
88 <span slot="label">
89 界线性质: <br />
90 <p class="label-detail">(JXXZ)</p>
91 </span>
92 <el-select :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].JXXZ"
93 placeholder="界线性质">
94 <el-option v-for="item in dicData['A2']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
95 </el-option>
96 </el-select>
97 </el-form-item>
98 </el-col>
99
100 <el-col :span="8">
101 <el-form-item :prop="'ruleForm.' + index + '.QSJXXYSBH'" class="borderTopNone" :rules="rules.QSJXXYSBH">
102 <span slot="label">
103 权属界线协议书编号: <br />
104 <p class="label-detail">(QSJXXYSBH)</p>
105 </span>
106 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].QSJXXYSBH"
107 placeholder="权属界线协议书编号"></el-input>
108 </el-form-item>
109 </el-col>
110
111 <el-col :span="8">
112 <el-form-item :prop="'ruleForm.' + index + '.QSJXXYS'" class="borderTopNone" :rules="rules.QSJXXYS">
113 <span slot="label">
114 权属界线协议书: <br />
115 <p class="label-detail">(QSJXXYS)</p>
116 </span>
117 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].QSJXXYS"
118 placeholder="权属界线协议书"></el-input>
119 </el-form-item>
120 </el-col>
121 </el-row>
122
123 <el-row>
124 <el-col :span="8">
125 <el-form-item :prop="'ruleForm.' + index + '.QSZYYYSBH'" :rules="rules.QSZYYYSBH">
126 <span slot="label">
127 权属争议原由书编号: <br />
128 <p class="label-detail">(QSZYYYSBH)</p>
129 </span>
130 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].QSZYYYSBH"
131 placeholder="权属争议原由书编号"></el-input>
132 </el-form-item>
133 </el-col>
134
135 <el-col :span="8">
136 <el-form-item :prop="'ruleForm.' + index + '.QSZYYYS'" :rules="rules.QSZYYYS">
137 <span slot="label">
138 权属争议原由书: <br />
139 <p class="label-detail">(QSZYYYS)</p>
140 </span>
141 <el-input :disabled="$store.state.business.Edit" v-model="boundaryLine.ruleForm[index].QSZYYYS"
142 placeholder="权属争议原由书"></el-input>
143 </el-form-item>
144 </el-col>
145
146 </el-row>
147 </div>
148 </div>
149 </el-form>
150 <message-tips ref="msg" />
151 </div>
152 </template>
153 <script>
154 import business from '@/api/business'
155 import ruleMixin from '@/mixins/ruleMixin.js'
156 // 界址线信息
157 export default {
158 mixins: [ruleMixin],
159 props: {
160 bsmSjsb: {
161 type: String,
162 default: ''
163 },
164 dataTable: {
165 type: String,
166 default: ''
167 }
168 },
169 data () {
170 return {
171 boundaryLine: {
172 ruleForm: [
173 {
174 BSM: '',
175 YSDM: '',
176 ZDZHDM: '',
177 JZXCD: undefined,
178 JZXLB: '',
179 JZXWZ: '',
180 JXXZ: '',
181 QSJXXYSBH: '',
182 QSJXXYS: '',
183 QSZYYYSBH: '',
184 QSZYYYS: ''
185 }
186 ]
187 }
188 }
189 },
190 methods: {
191 async featchData () {
192 try {
193 let { result: res } = await business.getKttGyJzxById(this.bsmSjsb)
194 this.boundaryLine.ruleForm = res
195 this.featchRule()
196 } catch (error) {
197 this.$refs.msg.messageShow()
198 }
199 },
200 handleUpdateForm () {
201 return new Promise(async (resolve) => {
202 try {
203 let res = await business.updateKttGyJzx(this.boundaryLine.ruleForm)
204 resolve(res.code)
205 } catch (error) {
206 this.$refs.msg.messageShow()
207 }
208 })
209 }
210 }
211 }
212 </script>
213 <style scoped lang="scss">
214 @import "./css/itemForm.scss";
215
216 .boundaryLine-item {
217 display: flex;
218 height: 100%;
219 margin-bottom: 15px;
220 margin-right: 5px;
221
222 &-name {
223 display: flex;
224 align-items: center;
225 justify-content: center;
226 width: 20px;
227 padding: 10px 20px;
228 line-height: 28px;
229 border: 1px solid #ccc;
230 margin-right: 15px;
231 border-radius: 3px;
232 }
233
234 &-list {
235 width: 100%;
236 flex: 1;
237 display: flex;
238 justify-content: center;
239 flex-direction: column;
240 }
241 }
242 </style>
243
244
1 <template>
2 <div class="boundaryPoint itemForm">
3 <el-form :model="boundaryPoint" :rules="rules" ref="formList" label-width="113px" :key="key">
4 <div v-for="(item, index) in boundaryPoint.ruleForm" :key="index" class="boundaryPoint-item">
5 <p class="boundaryPoint-item-name">界址点{{ index + 1 }}</p>
6 <div class="boundaryPoint-item-list">
7 <el-row>
8 <el-col :span="8">
9 <el-form-item>
10 <span slot="label">
11 标识码: <br />
12 <p class="label-detail">(BSM)</p>
13 </span>
14 <p :class="{ 'disabled': $store.state.business.Edit }">
15 {{ boundaryPoint.ruleForm[index].BSM }}
16 </p>
17 </el-form-item>
18 </el-col>
19
20 <el-col :span="8">
21 <el-form-item :prop="'ruleForm.' + index + '.YSDM'" :rules="rules.YSDM">
22 <span slot="label">
23 要素代码: <br />
24 <p class="label-detail">(YSDM)</p>
25 </span>
26 <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].YSDM"
27 maxlength="10" placeholder="要素代码"></el-input>
28 </el-form-item>
29 </el-col>
30
31 <el-col :span="8">
32 <el-form-item :prop="'ruleForm.' + index + '.ZDZHDM'" :rules="rules.ZDZHDM">
33 <span slot="label">
34 宗地/宗海代码: <br />
35 <p class="label-detail">(ZDZHDM)</p>
36 </span>
37 <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].ZDZHDM"
38 maxlength="19" placeholder="宗地/宗海代码"></el-input>
39 </el-form-item>
40 </el-col>
41 </el-row>
42
43 <el-row>
44 <el-col :span="8">
45 <el-form-item :prop="'ruleForm.' + index + '.JZDH'" :rules="rules.JZDH">
46 <span slot="label">
47 界址点号: <br />
48 <p class="label-detail">(JZDH)</p>
49 </span>
50 <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JZDH"
51 maxlength="10" placeholder="界址点号"></el-input>
52 </el-form-item>
53 </el-col>
54
55 <el-col :span="8">
56 <el-form-item :prop="'ruleForm.' + index + '.SXH'" :rules="{ ...rules.SXH, ...typeNum }">
57 <span slot="label">
58 顺序号: <br />
59 <p class="label-detail">(SXH)</p>
60 </span>
61 <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].SXH"
62 type="number" v-only-number="{ max: 99999999999, min: 0, precision: 0 }" placeholder="顺序号"></el-input>
63 </el-form-item>
64 </el-col>
65
66 <el-col :span="8">
67 <el-form-item :prop="'ruleForm.' + index + '.JBLX'" :rules="rules.JBLX">
68 <span slot="label">
69 界标类型: <br />
70 <p class="label-detail">(JBLX)</p>
71 </span>
72 <el-select :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JBLX"
73 placeholder="界标类型">
74 <el-option v-for="item in dicData['A4']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
75 </el-option>
76 </el-select>
77 </el-form-item>
78 </el-col>
79 </el-row>
80
81 <el-row>
82 <el-col :span="8">
83 <el-form-item :prop="'ruleForm.' + index + '.JZDLX'" :rules="rules.JZDLX">
84 <span slot="label">
85 界址点类型: <br />
86 <p class="label-detail">(JZDLX)</p>
87 </span>
88 <el-select :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JZDLX"
89 placeholder="界址点类型">
90 <el-option v-for="item in dicData['A5']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
91 </el-option>
92 </el-select>
93 </el-form-item>
94 </el-col>
95
96 <el-col :span="8">
97 <el-form-item :prop="'ruleForm.' + index + '.XZBZ'" :rules="{ ...rules.XZBZ, ...typeNum }">
98 <span slot="label">
99 X坐标值: <br />
100 <p class="label-detail">(XZBZ)</p>
101 </span>
102 <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].XZBZ"
103 type="number" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
104 placeholder="X坐标值"></el-input>
105 </el-form-item>
106 </el-col>
107
108 <el-col :span="8">
109 <el-form-item :prop="'ruleForm.' + index + '.YZBZ'" :rules="{ ...rules.YZBZ, ...typeNum }">
110 <span slot="label">
111 Y坐标值: <br />
112 <p class="label-detail">(YZBZ)</p>
113 </span>
114 <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].YZBZ"
115 type="number" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
116 placeholder="Y坐标值"></el-input>
117 </el-form-item>
118 </el-col>
119 </el-row>
120 </div>
121 </div>
122 </el-form>
123 <message-tips ref="msg" />
124 </div>
125 </template>
126 <script>
127 // 界址点信息
128 import business from '@/api/business'
129 import ruleMixin from '@/mixins/ruleMixin.js'
130 export default {
131 mixins: [ruleMixin],
132 props: {
133 bsmSjsb: {
134 type: String,
135 default: ''
136 },
137 dataTable: {
138 type: String,
139 default: ''
140 }
141 },
142 data () {
143 return {
144 boundaryPoint: {
145 ruleForm: [{
146 BSM: '',
147 YSDM: '',
148 ZDZHDM: '',
149 JZDH: '',
150 SXH: '',
151 JBLX: '',
152 JZDLX: '',
153 XZBZ: '',
154 YZBZ: '',
155 }]
156 }
157 }
158 },
159 methods: {
160 async featchData () {
161 try {
162 let { result: res } = await business.getKttGyJzdById(this.bsmSjsb)
163 this.boundaryPoint.ruleForm = res
164 this.featchRule()
165 } catch (error) {
166 this.$refs.msg.messageShow()
167 }
168 },
169 handleUpdateForm () {
170 return new Promise(async (resolve) => {
171 try {
172 let res = await business.updateKttGyJzd(this.boundaryPoint.ruleForm)
173 // this.$refs['formList'].resetFields();
174 resolve(res.code)
175 } catch (error) {
176 this.$refs.msg.messageShow()
177 }
178 })
179 }
180 }
181 }
182 </script>
183 <style scoped lang="scss">
184 @import "./css/itemForm.scss";
185
186 .boundaryPoint-item {
187 display: flex;
188 height: 100%;
189 margin-bottom: 15px;
190 margin-right: 5px;
191
192 &-name {
193 display: flex;
194 align-items: center;
195 justify-content: center;
196 width: 20px;
197 padding: 10px 20px;
198 line-height: 28px;
199 border: 1px solid #ccc;
200 margin-right: 15px;
201 border-radius: 3px;
202 }
203
204 &-list {
205 width: 100%;
206 flex: 1;
207 display: flex;
208 justify-content: center;
209 flex-direction: column;
210 }
211 }
212 </style>
213
214
1 <template>
2 <div class="cancellationRegistration itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="100px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="YSDM">
7 <span slot="label">
8 要素代码: <br />
9 <p class="label-detail">(YSDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSDM" placeholder="要素代码"></el-input>
12 </el-form-item>
13 </el-col>
14
15 <el-col :span="8">
16 <el-form-item prop="YWH">
17 <span slot="label">
18 业务号: <br />
19 <p class="label-detail">(YWH)</p>
20 </span>
21 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YWH" placeholder="业务号"></el-input>
22 </el-form-item>
23 </el-col>
24
25 <el-col :span="8">
26 <el-form-item prop="BDCDYH">
27 <span slot="label">
28 不动产单元号: <br />
29 <p class="label-detail">(BDCDYH)</p>
30 </span>
31 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BDCDYH" placeholder="不动产单元号"></el-input>
32 </el-form-item>
33 </el-col>
34 </el-row>
35
36 <el-row>
37 <el-col :span="8">
38 <el-form-item prop="BDCQZH">
39 <span slot="label">
40 不动产权证号: <br />
41 <p class="label-detail">(BDCQZH)</p>
42 </span>
43 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BDCQZH" placeholder="不动产权证号"></el-input>
44 </el-form-item>
45 </el-col>
46
47 <el-col :span="8">
48 <el-form-item prop="ZXYWH">
49 <span slot="label">
50 注销业务号: <br />
51 <p class="label-detail">(ZXYWH)</p>
52 </span>
53 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZXYWH" placeholder="注销业务号"></el-input>
54 </el-form-item>
55 </el-col>
56
57 <el-col :span="8">
58 <el-form-item prop="ZXSJ">
59 <span slot="label">
60 注销时间: <br />
61 <p class="label-detail">(ZXSJ)</p>
62 </span>
63 <el-date-picker :disabled="$store.state.business.Edit" type="date" placeholder="选择日期" clearable
64 v-model="ruleForm.ZXSJ" value-format="yyyy-MM-dd"></el-date-picker>
65 </el-form-item>
66 </el-col>
67 </el-row>
68
69 <el-row>
70 <el-col :span="8">
71 <el-form-item prop="QXDM">
72 <span slot="label">
73 区县代码: <br />
74 <p class="label-detail">(QXDM)</p>
75 </span>
76 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
77 </el-form-item>
78 </el-col>
79
80 <el-col :span="8">
81 <el-form-item prop="DJJG">
82 <span slot="label">
83 登记机构: <br />
84 <p class="label-detail">(DJJG)</p>
85 </span>
86 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DJJG" placeholder="登记机构"></el-input>
87 </el-form-item>
88 </el-col>
89
90 <el-col :span="8">
91 <el-form-item prop="DBR">
92 <span slot="label">
93 登簿人:<br />
94 <p class="label-detail">(DBR)</p>
95 </span>
96 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DBR" placeholder="登簿人"></el-input>
97 </el-form-item>
98 </el-col>
99 </el-row>
100
101 <el-row>
102 <el-col :span="8">
103 <el-form-item prop="DJSJ">
104 <span slot="label">
105 登记时间: <br />
106 <p class="label-detail">(DJSJ)</p>
107 </span>
108 <el-date-picker :disabled="$store.state.business.Edit" type="date" placeholder="选择日期" clearable
109 v-model="ruleForm.DJSJ" value-format="yyyy-MM-dd"></el-date-picker>
110 </el-form-item>
111 </el-col>
112
113 <el-col :span="8">
114 <el-form-item prop="BZ">
115 <span slot="label">
116 备注: <br />
117 <p class="label-detail">(BZ)</p>
118 </span>
119 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BZ" placeholder="备注"></el-input>
120 </el-form-item>
121 </el-col>
122 </el-row>
123 </el-form>
124 <message-tips ref="msg" />
125 </div>
126 </template>
127 <script>
128 // 注销登记信息
129 import business from '@/api/business'
130 import ruleMixin from '@/mixins/ruleMixin.js'
131 export default {
132 mixins: [ruleMixin],
133 props: {
134 bsmSjsb: {
135 type: String,
136 default: ''
137 },
138 dataTable: {
139 type: String,
140 default: ''
141 }
142 },
143 data () {
144 return {
145 ruleForm: {
146 YSDM: '',
147 YWH: '',
148 BDCDYH: '',
149 BDCQZH: '',
150 ZXYWH: '',
151 ZXSJ: '',
152 QXDM: '',
153 DJJG: '',
154 DBR: '',
155 DJSJ: '',
156 BZ: ''
157 }
158 }
159 },
160 methods: {
161 async featchData () {
162 try {
163 let { result: res } = await business.getQlfQlZxdjById(this.bsmSjsb)
164 this.ruleForm = res
165 this.featchRule()
166 } catch (error) {
167 this.$refs.msg.messageShow()
168 }
169 },
170 handleUpdateForm () {
171 return new Promise(async (resolve) => {
172 try {
173 let res = await business.updateQlfQlZxdj(this.ruleForm)
174 // this.$refs['formList'].resetFields();
175 resolve(res.code)
176 } catch (error) {
177 this.$refs.msg.messageShow()
178 }
179 })
180 }
181 }
182 }
183 </script>
184 <style scoped lang="scss">
185 @import "./css/itemForm.scss";
186 </style>
187
188
1 <template>
2 <div class="certificateInfo itemForm">
3 <el-form :model="certificateInfo" :rules="rules" ref="formList" label-width="100px" :key="key">
4 <div v-for="(item, index) in certificateInfo.ruleForm" :key="index" class="obligee-item">
5 <p class="obligee-item-name">善证信息{{ index + 1 }}</p>
6 <div class="obligee-item-list">
7 <el-row>
8 <el-col :span="8">
9 <el-form-item :prop="'ruleForm.' + index + '.YSDM'">
10 <span slot="label">
11 要素代码: <br />
12 <p class="label-detail">(YSDM)</p>
13 </span>
14 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].YSDM"
15 placeholder="要素代码"></el-input>
16 </el-form-item>
17 </el-col>
18
19 <el-col :span="8">
20 <el-form-item :prop="'ruleForm.' + index + '.YWH'">
21 <span slot="label">
22 业务号: <br />
23 <p class="label-detail">(YWH)</p>
24 </span>
25 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].YWH"
26 placeholder="业务号"></el-input>
27 </el-form-item>
28 </el-col>
29
30 <el-col :span="8">
31 <el-form-item :prop="'ruleForm.' + index + '.SZMC'">
32 <span slot="label">
33 缮证名称: <br />
34 <p class="label-detail">(SZMC)</p>
35 </span>
36 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].SZMC"
37 placeholder="缮证名称"></el-input>
38 </el-form-item>
39 </el-col>
40 </el-row>
41
42 <el-row>
43 <el-col :span="8">
44 <el-form-item :prop="'ruleForm.' + index + '.SZZH'">
45 <span slot="label">
46 缮证证号: <br />
47 <p class="label-detail">(SZZH)</p>
48 </span>
49 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].SZZH"
50 placeholder="缮证证号"></el-input>
51 </el-form-item>
52 </el-col>
53
54 <el-col :span="8">
55 <el-form-item :prop="'ruleForm.' + index + '.YSXLH'">
56 <span slot="label">
57 印刷序列号: <br />
58 <p class="label-detail">(YSXLH)</p>
59 </span>
60 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].YSXLH"
61 placeholder="印刷序列号"></el-input>
62 </el-form-item>
63 </el-col>
64
65 <el-col :span="8">
66 <el-form-item :prop="'ruleForm.' + index + '.SZRY'">
67 <span slot="label">
68 缮证人员: <br />
69 <p class="label-detail">(SZRY)</p>
70 </span>
71 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].SZRY"
72 placeholder="缮证人员"></el-input>
73 </el-form-item>
74 </el-col>
75 </el-row>
76
77 <el-row>
78 <el-col :span="8">
79 <el-form-item :prop="'ruleForm.' + index + '.SZSJ'">
80 <span slot="label">
81 缮证时间: <br />
82 <p class="label-detail">(SZSJ)</p>
83 </span>
84 <el-date-picker :disabled="$store.state.business.Edit" placeholder="缮证时间" type="datetime" clearable
85 v-model="certificateInfo.ruleForm[index].SZSJ" value-format="yyyy-MM-dd HH:mm:ss">
86 </el-date-picker>
87 </el-form-item>
88 </el-col>
89
90 <el-col :span="8">
91 <el-form-item :prop="'ruleForm.' + index + '.BZ'">
92 <span slot="label">
93 备注: <br />
94 <p class="label-detail">(BZ)</p>
95 </span>
96 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].BZ"
97 placeholder="备注"></el-input>
98 </el-form-item>
99 </el-col>
100
101 <el-col :span="8">
102 <el-form-item :prop="'ruleForm.' + index + '.QXDM'">
103 <span slot="label">
104 区县代码: <br />
105 <p class="label-detail">(QXDM)</p>
106 </span>
107 <el-input :disabled="$store.state.business.Edit" v-model="certificateInfo.ruleForm[index].QXDM"
108 placeholder="区县代码"></el-input>
109 </el-form-item>
110 </el-col>
111 </el-row>
112 </div>
113 </div>
114 </el-form>
115 <message-tips ref="msg" />
116 </div>
117 </template>
118 <script>
119 import business from '@/api/business'
120 import ruleMixin from '@/mixins/ruleMixin.js'
121 // 缮证信息
122 export default {
123 mixins: [ruleMixin],
124 props: {
125 bsmSjsb: {
126 type: String,
127 default: ''
128 },
129 dataTable: {
130 type: String,
131 default: ''
132 }
133 },
134 data () {
135 return {
136 certificateInfo: {
137 ruleForm: [{
138 YSDM: '',
139 YWH: '',
140 SZMC: '',
141 SZZH: '',
142 YSXLH: '',
143 SZRY: '',
144 SZSJ: '',
145 BZ: '',
146 QXDM: ''
147 }]
148 }
149 }
150 },
151 methods: {
152 async featchData () {
153 try {
154 let { result: res } = await business.getDjfDjSzById(this.bsmSjsb)
155 this.certificateInfo.ruleForm = res
156 console.log(this.certificateInfo.ruleForm)
157 this.featchRule()
158 } catch (error) {
159 this.$refs.msg.messageShow()
160 }
161 },
162 handleUpdateForm () {
163 return new Promise(async (resolve) => {
164 try {
165 let res = await business.updateDjfDjSz(this.certificateInfo.ruleForm)
166 // this.$refs['formList'].resetFields();
167 resolve(res.code)
168 } catch (error) {
169 this.$refs.msg.messageShow()
170 }
171 })
172 }
173 }
174 }
175 </script>
176 <style scoped lang="scss">
177 @import "./css/itemForm.scss";
178
179 .obligee-item {
180 display: flex;
181 height: 100%;
182 margin-bottom: 15px;
183 margin-right: 5px;
184
185 &-name {
186 display: flex;
187 align-items: center;
188 justify-content: center;
189 width: 20px;
190 padding: 10px 20px;
191 line-height: 28px;
192 border: 1px solid #ccc;
193 margin-right: 15px;
194 border-radius: 3px;
195 }
196
197 &-list {
198 width: 100%;
199 flex: 1;
200 display: flex;
201 justify-content: center;
202 flex-direction: column;
203 }
204 }
205 </style>
206
207
1 <template>
2 <div class="parcelChange itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="100px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="ZHDM">
7 <span slot="label">
8 宗海代码: <br />
9 <p class="label-detail">(ZHDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZHDM" maxlength="19"
12 placeholder="宗海代码"></el-input>
13 </el-form-item>
14 </el-col>
15
16 <el-col :span="8">
17 <el-form-item prop="BHYY">
18 <span slot="label">
19 变化原因: <br />
20 <p class="label-detail">(BHYY)</p>
21 </span>
22 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BHYY" placeholder="变化原因"></el-input>
23 </el-form-item>
24 </el-col>
25
26 <el-col :span="8">
27 <el-form-item prop="BHNR">
28 <span slot="label">
29 变化内容: <br />
30 <p class="label-detail">(BHNR)</p>
31 </span>
32 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BHNR" placeholder="变化内容"></el-input>
33 </el-form-item>
34 </el-col>
35 </el-row>
36
37 <el-row>
38 <el-col :span="8">
39 <el-form-item prop="DJSJ">
40 <span slot="label">
41 登记时间: <br />
42 <p class="label-detail">(DJSJ)</p>
43 </span>
44 <el-date-picker :disabled="$store.state.business.Edit" type="datetime" placeholder="选择日期" clearable
45 v-model="ruleForm.DJSJ" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
46 </el-form-item>
47 </el-col>
48
49 <el-col :span="8">
50 <el-form-item prop="DBR">
51 <span slot="label">
52 登簿人: <br />
53 <p class="label-detail">(DBR)</p>
54 </span>
55 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DBR" placeholder="登簿人"></el-input>
56 </el-form-item>
57 </el-col>
58
59 <el-col :span="8">
60 <el-form-item prop="QXDM">
61 <span slot="label">
62 区县代码: <br />
63 <p class="label-detail">(QXDM)</p>
64 </span>
65 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 </el-form>
70 <message-tips ref="msg" />
71 </div>
72 </template>
73 <script>
74 import business from '@/api/business'
75 import ruleMixin from '@/mixins/ruleMixin.js'
76 // 宗海变化情况
77 export default {
78 mixins: [ruleMixin],
79 props: {
80 bsmSjsb: {
81 type: String,
82 default: ''
83 },
84 dataTable: {
85 type: String,
86 default: ''
87 }
88 },
89 data () {
90 return {
91 ruleForm: {
92 ZHDM: '',
93 BHYY: '',
94 BHNR: '',
95 DJSJ: '',
96 DBR: '',
97 QXDM: ''
98 }
99 }
100 },
101 methods: {
102 async featchData () {
103 try {
104 let { result: res } = await business.getZhK105ById(this.bsmSjsb)
105 this.ruleForm = res
106 this.featchRule()
107 } catch (error) {
108 this.$refs.msg.messageShow()
109 }
110 },
111 handleUpdateForm () {
112 return new Promise(async (resolve) => {
113 try {
114 let res = await business.updateZhK105(this.ruleForm)
115 // this.$refs['formList'].resetFields();
116 resolve(res.code)
117 } catch (error) {
118 this.$refs.msg.messageShow()
119 }
120 })
121 }
122 }
123 }
124 </script>
125 <style scoped lang="scss">
126 @import "./css/itemForm.scss";
127 </style>
128
129
1 .itemForm {
2 margin-top: 5px;
3 position: relative;
4 padding: 10px;
5
6 /deep/.el-select {
7 width: 100%;
8 }
9
10 /deep/.el-form-item__error {
11 right: 25px;
12 top: 15px;
13 text-align: right;
14 pointer-events: none;
15 }
16
17 /deep/.el-date-editor {
18 width: 100%;
19 }
20
21 /deep/.el-date-editor--date {
22 width: 100%;
23 }
24
25 /deep/.el-cascader {
26 width: 100%;
27 }
28
29 /deep/.el-form-item__label {
30 line-height: 16px;
31 font-size: 12px;
32 position: relative;
33 }
34
35 /deep/ .el-form-item__content {
36 display: flex;
37 }
38
39 // table 样式
40 /deep/.el-form-item__label {
41 border: 1px solid #DCDFE6;
42 border-right: none;
43 background-color: #F2F6FC;
44 text-align: center;
45 padding: 0;
46 }
47
48 /deep/.el-form-item__content {
49 border: 1px solid #DCDFE6;
50 margin-right: -1px;
51 }
52
53
54 /deep/.el-textarea__inner {
55 margin: 5px;
56 width: 96%;
57 }
58
59 /deep/.el-input__inner {
60 margin: 5px;
61 width: 96%;
62 }
63
64 /deep/.el-form-item {
65 margin-bottom: 0;
66 margin-top: -1px;
67 }
68
69 .item-label {
70 display: flex;
71 align-items: flex-end;
72 flex-direction: column;
73 font-size: 12px;
74 flex: 0 0 90px;
75 margin-right: 3px;
76
77 p {
78 line-height: 16px;
79 white-space: nowrap;
80 text-align: right;
81 }
82
83 p:nth-child(1) {
84 position: relative;
85 right: 5px;
86 }
87 }
88 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="houseFloor itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="121px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="YSDM">
7 <span slot="label">
8 要素代码: <br />
9 <p class="label-detail">(YSDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSDM" placeholder="要素代码"></el-input>
12 </el-form-item>
13 </el-col>
14
15 <el-col :span="8">
16 <el-form-item prop="CH">
17 <span slot="label">
18 层号: <br />
19 <p class="label-detail">(CH)</p>
20 </span>
21 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.CH" placeholder="层号"></el-input>
22 </el-form-item>
23 </el-col>
24
25 <el-col :span="8">
26 <el-form-item prop="ZRZH">
27 <span slot="label">
28 自然幢号: <br />
29 <p class="label-detail">(ZRZH)</p>
30 </span>
31 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZRZH" placeholder="自然幢号"></el-input>
32 </el-form-item>
33 </el-col>
34 </el-row>
35
36 <el-row>
37 <el-col :span="8">
38 <el-form-item prop="SJC">
39 <span slot="label">
40 实际层: <br />
41 <p class="label-detail">(SJC)</p>
42 </span>
43 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.SJC" placeholder="实际层"></el-input>
44 </el-form-item>
45 </el-col>
46
47 <el-col :span="8">
48 <el-form-item prop="MYC">
49 <span slot="label">
50 名义层: <br />
51 <p class="label-detail">(MYC)</p>
52 </span>
53 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.MYC" placeholder="名义层"></el-input>
54 </el-form-item>
55 </el-col>
56
57 <el-col :span="8">
58 <el-form-item prop="CJZMJ" :rules="{ type: 'number' }">
59 <span slot="label">
60 层建筑面积: <br />
61 <p class="label-detail">(CJZMJ)</p>
62 </span>
63 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
64 placeholder="层建筑面积" type="number" v-model.number="ruleForm.CJZMJ"></el-input>
65 </el-form-item>
66 </el-col>
67 </el-row>
68
69 <el-row>
70 <el-col :span="8">
71 <el-form-item prop="CTNJZMJ" :rules="{ type: 'number' }">
72 <span slot="label">
73 层套内建筑面积: <br />
74 <p class="label-detail">(CTNJZMJ)</p>
75 </span>
76 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
77 placeholder="层套内建筑面积" type="number" v-model.number="ruleForm.CTNJZMJ"></el-input>
78 </el-form-item>
79 </el-col>
80
81 <el-col :span="8">
82 <el-form-item prop="CYTMJ" :rules="{ type: 'number' }">
83 <span slot="label">
84 层阳台面积: <br />
85 <p class="label-detail">(CYTMJ)</p>
86 </span>
87 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
88 placeholder="层阳台面积" type="number" v-model.number="ruleForm.CYTMJ"></el-input>
89 </el-form-item>
90 </el-col>
91
92 <el-col :span="8">
93 <el-form-item prop="CGYJZMJ" :rules="{ type: 'number' }">
94 <span slot="label">
95 层共有建筑面积: <br />
96 <p class="label-detail">(CGYJZMJ)</p>
97 </span>
98 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
99 placeholder="层共有建筑面积" type="number" v-model.number="ruleForm.CGYJZMJ"></el-input>
100 </el-form-item>
101 </el-col>
102 </el-row>
103
104 <el-row>
105 <el-col :span="8">
106 <el-form-item prop="CFTJZMJ" :rules="{ type: 'number' }">
107 <span slot="label">
108 层分摊建筑面积: <br />
109 <p class="label-detail">(CFTJZMJ)</p>
110 </span>
111 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
112 placeholder="层分摊建筑面积" type="number" v-model.number="ruleForm.CFTJZMJ"></el-input>
113 </el-form-item>
114 </el-col>
115
116 <el-col :span="8">
117 <el-form-item prop="CBQMJ" :rules="{ type: 'number' }">
118 <span slot="label">
119 层半墙面积: <br />
120 <p class="label-detail">(CBQMJ)</p>
121 </span>
122 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
123 type="number" placeholder="层半墙面积" v-model.number="ruleForm.CBQMJ"></el-input>
124 </el-form-item>
125 </el-col>
126
127 <el-col :span="8">
128 <el-form-item prop="CG" :rules="{ type: 'number' }">
129 <span slot="label">
130 层高: <br />
131 <p class="label-detail">(CG)</p>
132 </span>
133 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
134 placeholder="层高" type="number" v-model.number="ruleForm.CG"></el-input>
135 </el-form-item>
136 </el-col>
137 </el-row>
138
139 <el-row>
140 <el-col :span="8">
141 <el-form-item prop="SPTYMJ" :rules="{ type: 'number' }">
142 <span slot="label">
143 水平投影面积: <br />
144 <p class="label-detail">(SPTYMJ)</p>
145 </span>
146 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
147 placeholder="水平投影面积" type="number" v-model.number="ruleForm.SPTYMJ"></el-input>
148 </el-form-item>
149 </el-col>
150
151 <el-col :span="8">
152 <el-form-item prop="QXDM">
153 <span slot="label">
154 区县代码: <br />
155 <p class="label-detail">(QXDM)</p>
156 </span>
157 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
158 </el-form-item>
159 </el-col>
160 </el-row>
161 </el-form>
162 <message-tips ref="msg" />
163 </div>
164 </template>
165 <script>
166 // 层信息
167 import business from '@/api/business'
168 import ruleMixin from '@/mixins/ruleMixin.js'
169 export default {
170 mixins: [ruleMixin],
171 props: {
172 bsmSjsb: {
173 type: String,
174 default: ''
175 },
176 dataTable: {
177 type: String,
178 default: ''
179 }
180 },
181 data () {
182 return {
183 ruleForm: {
184 YSDM: '',
185 CH: '',
186 ZRZH: '',
187 SJC: '',
188 MYC: '',
189 CJZMJ: '',
190 CTNJZMJ: '',
191 CYTMJ: '',
192 CGYJZMJ: '',
193 CFTJZMJ: '',
194 CBQMJ: '',
195 CG: '',
196 SPTYMJ: '',
197 QXDM: ''
198 }
199 }
200 },
201 methods: {
202 async featchData () {
203 try {
204 let { result: res } = await business.getKttFwCById(this.bsmSjsb)
205 this.ruleForm = res
206 this.featchRule()
207 } catch (error) {
208 this.$refs.msg.messageShow()
209 }
210 },
211 handleUpdateForm () {
212 return new Promise(async (resolve, reject) => {
213 try {
214 let res = await business.updateKttFwC(this.ruleForm)
215 // this.$refs['formList'].resetFields();
216 resolve(res.code)
217 } catch (error) {
218 this.$refs.msg.messageShow()
219 }
220 })
221 },
222 }
223 }
224 </script>
225 <style scoped lang="scss">
226 @import "./css/itemForm.scss";
227 </style>
228
229
1 <template>
2 <div class="islandCoordinates itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="100px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="ZHHDDM">
7 <span slot="label">
8 宗海/海岛代码: <br />
9 <p class="label-detail">(ZHHDDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZHHDDM" maxlength="19"
12 placeholder="宗海/海岛代码"></el-input>
13 </el-form-item>
14 </el-col>
15
16 <el-col :span="8">
17 <el-form-item prop="XH" :rules="{ type: 'number' }">
18 <span slot="label">
19 序号: <br />
20 <p class="label-detail">(XH)</p>
21 </span>
22 <el-input :disabled="$store.state.business.Edit" v-model.number="ruleForm.XH" type="number"
23 v-only-number="{ max: 999999, min: 0, precision: 0 }" placeholder="序号"></el-input>
24 </el-form-item>
25 </el-col>
26
27 <el-col :span="8">
28 <el-form-item prop="BW" :rules="{ type: 'number' }">
29 <span slot="label">
30 北纬: <br />
31 <p class="label-detail">(BW)</p>
32 </span>
33 <el-input :disabled="$store.state.business.Edit" v-model.number="ruleForm.BW" type="number"
34 v-only-number="{ max: 999999999999999, min: 0, precision: 8 }" placeholder="北纬"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38
39 <el-row>
40 <el-col :span="8">
41 <el-form-item prop="DJ" :rules="{ type: 'number' }">
42 <span slot="label">
43 东经: <br />
44 <p class="label-detail">(DJ)</p>
45 </span>
46 <el-input :disabled="$store.state.business.Edit" v-model.number="ruleForm.DJ" type="number"
47 v-only-number="{ max: 999999999999999, min: 0, precision: 8 }" placeholder="东经"></el-input>
48 </el-form-item>
49 </el-col>
50
51 <el-col :span="8">
52 <el-form-item prop="QXDM">
53 <span slot="label">
54 区县代码: <br />
55 <p class="label-detail">(QXDM)</p>
56 </span>
57 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
58 </el-form-item>
59 </el-col>
60 </el-row>
61 </el-form>
62 <message-tips ref="msg" />
63 </div>
64 </template>
65 <script>
66 // 用海、用岛坐标
67 import business from '@/api/business'
68 import ruleMixin from '@/mixins/ruleMixin.js'
69 export default {
70 mixins: [ruleMixin],
71 props: {
72 bsmSjsb: {
73 type: String,
74 default: ''
75 },
76 dataTable: {
77 type: String,
78 default: ''
79 }
80 },
81 data () {
82 return {
83 ruleForm: {
84 ZHHDDM: '',
85 XH: '',
86 BW: '',
87 DJ: '',
88 QXDM: ''
89 }
90 }
91 },
92 methods: {
93 async featchData () {
94 try {
95 let { result: res } = await business.getKtfZhYhydzbById(this.bsmSjsb)
96 this.ruleForm = res
97 this.featchRule()
98 } catch (error) {
99 this.$refs.msg.messageShow()
100 }
101 },
102 handleUpdateForm () {
103 return new Promise(async (resolve, reject) => {
104 try {
105 let res = await business.updateKtfZhYhydzb(this.ruleForm)
106 // this.$refs['formList'].resetFields();
107 resolve(res.code)
108 } catch (error) {
109 this.$refs.msg.messageShow()
110 }
111 })
112 }
113 }
114 }
115 </script>
116 <style scoped lang="scss">
117 @import "./css/itemForm.scss";
118 </style>
119
120
1 <template>
2 <div class="issuingInfo itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="108px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item prop="YSDM" class="borderTopNone">
7 <span slot="label">
8 要素代码: <br />
9 <p class="label-detail">(YSDM)</p>
10 </span>
11 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSDM" placeholder="要素代码"></el-input>
12 </el-form-item>
13 </el-col>
14
15 <el-col :span="8">
16 <el-form-item prop="YWH" class="borderTopNone">
17 <span slot="label">
18 业务号: <br />
19 <p class="label-detail">(YWH)</p>
20 </span>
21 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YWH" placeholder="业务号"></el-input>
22 </el-form-item>
23 </el-col>
24
25 <el-col :span="8">
26 <el-form-item prop="FZRY" class="borderTopNone">
27 <span slot="label">
28 发证人员: <br />
29 <p class="label-detail">(FZRY)</p>
30 </span>
31 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.FZRY" placeholder="发证人员"></el-input>
32 </el-form-item>
33 </el-col>
34 </el-row>
35
36 <el-row>
37 <el-col :span="8">
38 <el-form-item prop="FZSJ">
39 <span slot="label">
40 发证时间: <br />
41 <p class="label-detail">(FZSJ)</p>
42 </span>
43 <el-date-picker :disabled="$store.state.business.Edit" placeholder="发证时间" type="datetime" clearable
44 v-model="ruleForm.FZSJ" value-format="yyyy-MM-dd HH:mm:ss">
45 </el-date-picker>
46 </el-form-item>
47 </el-col>
48
49 <el-col :span="8">
50 <el-form-item prop="FZMC">
51 <span slot="label">
52 发证名称: <br />
53 <p class="label-detail">(FZMC)</p>
54 </span>
55 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.FZMC" placeholder="发证名称"></el-input>
56 </el-form-item>
57 </el-col>
58
59 <el-col :span="8">
60 <el-form-item prop="FZSL" :rules="{ type: 'number' }">
61 <span slot="label">
62 发证数量: <br />
63 <p class="label-detail">(FZSL)</p>
64 </span>
65 <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 9999, min: 0, precision: 0 }" type="number"
66 v-model.number="ruleForm.FZSL" placeholder="发证数量"></el-input>
67 </el-form-item>
68 </el-col>
69 </el-row>
70
71 <el-row>
72 <el-col :span="8">
73 <el-form-item prop="HFZSH">
74 <span slot="label">
75 核发证书号: <br />
76 <p class="label-detail">(HFZSH)</p>
77 </span>
78 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.HFZSH" placeholder="核发证书号"></el-input>
79 </el-form-item>
80 </el-col>
81
82 <el-col :span="8">
83 <el-form-item prop="LZRXM">
84 <span slot="label">
85 领证人姓名: <br />
86 <p class="label-detail">(LZRXM)</p>
87 </span>
88 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.LZRXM" placeholder="领证人姓名"></el-input>
89 </el-form-item>
90 </el-col>
91
92 <el-col :span="8">
93 <el-form-item prop="LZRZJLB">
94 <span slot="label">
95 领证人证件类别: <br />
96 <p class="label-detail">(LZRZJLB)</p>
97 </span>
98 <el-select :disabled="$store.state.business.Edit" v-model="ruleForm.LZRZJLB" placeholder="请选择">
99 <el-option v-for="item in dicData['A30']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
100 </el-option>
101 </el-select>
102 </el-form-item>
103 </el-col>
104 </el-row>
105
106 <el-row>
107 <el-col :span="8">
108 <el-form-item prop="LZRZJHM">
109 <span slot="label">
110 领证人证件号码: <br />
111 <p class="label-detail">(LZRZJHM)</p>
112 </span>
113 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.LZRZJHM"
114 placeholder="领证人证件号码"></el-input>
115 </el-form-item>
116 </el-col>
117
118 <el-col :span="8">
119 <el-form-item prop="LZRDH">
120 <span slot="label">
121 领证人电话: <br />
122 <p class="label-detail">(LZRDH)</p>
123 </span>
124 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.LZRDH"
125 onkeyup="this.value=this.value.replace(/[^\d.]/g,'');" maxlength="11" placeholder="领证人电话"></el-input>
126 </el-form-item>
127 </el-col>
128
129 <el-col :span="8">
130 <el-form-item prop="LZRDZ">
131 <span slot="label">
132 领证人地址: <br />
133 <p class="label-detail">(LZRDZ)</p>
134 </span>
135 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.LZRDZ" placeholder="领证人地址"></el-input>
136 </el-form-item>
137 </el-col>
138 </el-row>
139
140 <el-row>
141 <el-col :span="8">
142 <el-form-item prop="LZRYB">
143 <span slot="label">
144 领证人邮编: <br />
145 <p class="label-detail">(LZRYB)</p>
146 </span>
147 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.LZRYB" placeholder="领证人邮编"></el-input>
148 </el-form-item>
149 </el-col>
150
151 <el-col :span="8">
152 <el-form-item prop="BZ">
153 <span slot="label">
154 备注: <br />
155 <p class="label-detail">(BZ)</p>
156 </span>
157 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BZ" placeholder="备注"></el-input>
158 </el-form-item>
159 </el-col>
160
161 <el-col :span="8">
162 <el-form-item prop="QXDM">
163 <span slot="label">
164 区县代码: <br />
165 <p class="label-detail">(QXDM)</p>
166 </span>
167 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
168 </el-form-item>
169 </el-col>
170
171 <el-col :span="8">
172 <el-form-item prop="YSXLH">
173 <span slot="label">
174 印刷序列号: <br />
175 <p class="label-detail">(YSXLH)</p>
176 </span>
177 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSXLH" placeholder="印刷序列号"></el-input>
178 </el-form-item>
179 </el-col>
180 </el-row>
181 </el-form>
182 <message-tips ref="msg" />
183 </div>
184 </template>
185 <script>
186 // 发证信息
187 import business from '@/api/business'
188 import ruleMixin from '@/mixins/ruleMixin.js'
189 import treeSelect from '@/components/treeSelect/index.vue'
190 export default {
191 mixins: [ruleMixin],
192 props: {
193 bsmSjsb: {
194 type: String,
195 default: ''
196 },
197 dataTable: {
198 type: String,
199 default: ''
200 }
201 },
202 components: {
203 treeSelect
204 },
205 data () {
206 return {
207 ruleForm: {
208 YSDM: '',
209 YWH: '',
210 FZRY: '',
211 FZSJ: '',
212 FZMC: '',
213 FZSL: '',
214 HFZSH: '',
215 LZRXM: '',
216 LZRZJHM: '',
217 LZRDH: '',
218 LZRDZ: '',
219 LZRYB: '',
220 BZ: '',
221 QXDM: '',
222 YSXLH: ''
223 }
224 }
225 },
226 methods: {
227 async featchData () {
228 try {
229 let { result: res } = await business.getDjfDjFzDetailById(this.bsmSjsb)
230 this.ruleForm = res
231 this.featchRule()
232 } catch (error) {
233 this.$refs.msg.messageShow()
234 }
235 },
236 handleUpdateForm () {
237 return new Promise(async (resolve, reject) => {
238 try {
239 let res = await business.updateDjfDjFz(this.ruleForm)
240 // this.$refs['formList'].resetFields();
241 resolve(res.code)
242 } catch (error) {
243 this.$refs.msg.messageShow()
244 }
245 })
246 }
247 }
248 }
249 </script>
250 <style scoped lang="scss">
251 @import "./css/itemForm.scss";
252 </style>
253
254
1 <template>
2 <div class="linearFixture itemForm">
3 <el-form :model="ruleForm" :rules="rules" ref="formList" label-width="100px" :key="key">
4 <el-row>
5 <el-col :span="8">
6 <el-form-item>
7 <span slot="label">
8 标识码: <br />
9 <p class="label-detail">(BSM)</p>
10 </span>
11 <p :class="{ 'disabled': $store.state.business.Edit }">
12 {{ ruleForm.BSM }}
13 </p>
14 </el-form-item>
15 </el-col>
16
17 <el-col :span="8">
18 <el-form-item prop="YSDM">
19 <span slot="label">
20 要素代码: <br />
21 <p class="label-detail">(YSDM)</p>
22 </span>
23 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.YSDM" placeholder="要素代码"></el-input>
24 </el-form-item>
25 </el-col>
26
27 <el-col :span="8">
28 <el-form-item prop="BDCDYH">
29 <span slot="label">
30 不动产单元号: <br />
31 <p class="label-detail">(BDCDYH)</p>
32 </span>
33 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.BDCDYH" placeholder="不动产单元号"></el-input>
34 </el-form-item>
35 </el-col>
36 </el-row>
37
38 <el-row>
39 <el-col :span="8">
40 <el-form-item prop="ZDZHDM">
41 <span slot="label">
42 宗地/宗海代码: <br />
43 <p class="label-detail">(ZDZHDM)</p>
44 </span>
45 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.ZDZHDM" placeholder="宗地/宗海代码"></el-input>
46 </el-form-item>
47 </el-col>
48
49 <el-col :span="8">
50 <el-form-item prop="XZDZWLX">
51 <span slot="label">
52 线状定着物类型: <br />
53 <p class="label-detail">(XZDZWLX)</p>
54 </span>
55 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.XZDZWLX"
56 placeholder="线状定着物类型"></el-input>
57 </el-form-item>
58 </el-col>
59
60 <el-col :span="8">
61 <el-form-item prop="DZWMC">
62 <span slot="label">
63 定着物名称: <br />
64 <p class="label-detail">(DZWMC)</p>
65 </span>
66 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DZWMC" placeholder="定着物名称"></el-input>
67 </el-form-item>
68 </el-col>
69 </el-row>
70
71 <el-row>
72 <el-col :span="8">
73 <el-form-item prop="MJDW">
74 <span slot="label">
75 面积单位:<br />
76 <p class="label-detail">(MJDW)</p>
77 </span>
78 <el-select :disabled="$store.state.business.Edit" v-model="ruleForm.MJDW" placeholder="面积单位">
79 <el-option v-for="item in dicData['A7']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
80 </el-option>
81 </el-select>
82 </el-form-item>
83 </el-col>
84
85 <el-col :span="8">
86 <el-form-item prop="MJ">
87 <span slot="label">
88 面积: <br />
89 <p class="label-detail">(MJ)</p>
90 </span>
91 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.MJ"
92 v-only-number="{ max: 99999, min: 1, precision: 2 }" placeholder="面积"></el-input>
93 </el-form-item>
94 </el-col>
95
96 <el-col :span="8">
97 <el-form-item prop="DAH">
98 <span slot="label">
99 档案号: <br />
100 <p class="label-detail">(DAH)</p>
101 </span>
102 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.DAH" placeholder="档案号"></el-input>
103 </el-form-item>
104 </el-col>
105 </el-row>
106
107 <el-row>
108 <el-col :span="8">
109 <el-form-item prop="ZT">
110 <span slot="label">
111 状态: <br />
112 <p class="label-detail">(ZT)</p>
113 </span>
114 <el-select :disabled="$store.state.business.Edit" v-model="ruleForm.ZT" placeholder="状态">
115 <el-option v-for="item in dicData['A11']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
116 </el-option>
117 </el-select>
118 </el-form-item>
119 </el-col>
120
121 <el-col :span="8">
122 <el-form-item prop="QXDM">
123 <span slot="label">
124 区县代码: <br />
125 <p class="label-detail">(QXDM)</p>
126 </span>
127 <el-input :disabled="$store.state.business.Edit" v-model="ruleForm.QXDM" placeholder="区县代码"></el-input>
128 </el-form-item>
129 </el-col>
130 </el-row>
131 </el-form>
132 <message-tips ref="msg" />
133 </div>
134 </template>
135 <script>
136 // 线状定着物
137 import business from '@/api/business'
138 import ruleMixin from '@/mixins/ruleMixin.js'
139 export default {
140 mixins: [ruleMixin],
141 props: {
142 bsmSjsb: {
143 type: String,
144 default: ''
145 },
146 dataTable: {
147 type: String,
148 default: ''
149 }
150 },
151 data () {
152 return {
153 ruleForm: {
154 BSM: '',
155 YSDM: '',
156 BDCDYH: '',
157 ZDZHDM: '',
158 mzdzwlx: '',
159 DZWMC: '',
160 MJ: '',
161 DAH: '',
162 ZT: '',
163 QXDM: ''
164 }
165 }
166 },
167 methods: {
168 async featchData () {
169 try {
170 let { result: res } = await business.getKtfQtXzdzwById(this.bsmSjsb)
171 this.ruleForm = res
172 this.featchRule()
173 } catch (error) {
174 this.$refs.msg.messageShow()
175 }
176 },
177 handleUpdateForm () {
178 return new Promise(async (resolve, reject) => {
179 try {
180 let res = await business.updateKtfQtXzdzw(this.ruleForm)
181 // this.$refs['formList'].resetFields();
182 resolve(res.code)
183 } catch (error) {
184 this.$refs.msg.messageShow()
185 }
186 })
187 }
188 }
189 }
190 </script>
191 <style scoped lang="scss">
192 @import "./css/itemForm.scss";
193 </style>
194
195
This diff is collapsed. Click to expand it.