d788fadb by 蔡俊立
2 parents fb646a18 ce7ba51c
Showing 60 changed files with 3370 additions and 747 deletions
...@@ -21,4 +21,6 @@ yarn-error.log* ...@@ -21,4 +21,6 @@ yarn-error.log*
21 *.njsproj 21 *.njsproj
22 *.sln 22 *.sln
23 *.sw? 23 *.sw?
24 /src/api/config.js
25
24 package-lock.json 26 package-lock.json
......
1 import request from '@/utils/request';
2 import SERVER from './config';
3
4 // 获取不动产权证列表
5 export function getBdcqzList (params) {
6 return request({
7 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/getBdcqzList',
8 method: 'get',
9 params: params
10 })
11 }
12 // 获取印刷序列号
13 export function readYsxlh (params) {
14 return request({
15 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/readYsxlh',
16 method: 'get',
17 params: params
18 })
19 }
20 // 缮证
21 export function certificate (data) {
22 return request({
23 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/certificate',
24 method: 'post',
25 data
26 })
27 }
28 // 作废缮证信息
29 export function invalidCertificate (data) {
30 return request({
31 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/invalidCertificate',
32 method: 'post',
33 data
34 })
35 }
36 // 缮证列表
37 export function getCertificateList (data) {
38 return request({
39 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/getCertificateList',
40 method: 'post',
41 data
42 })
43 }
44 // 发证
45 export function issueCertificate (data) {
46 return request({
47 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/issueCertificate',
48 method: 'post',
49 data
50 })
51 }
52 // 获取受理申请下全部不动产权证
53 export function getSlsqBdcqzList (params) {
54 return request({
55 url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/getSlsqBdcqzList',
56 method: 'get',
57 params
58 })
59 }
...\ No newline at end of file ...\ No newline at end of file
1 export default {
2 SERVERAPI: '/service-bdcdj9',
3 // SERVERCAI: '/service-bdcdj-Tian'
4 }
...\ No newline at end of file ...\ No newline at end of file
...@@ -6,25 +6,25 @@ export function Init (data) { ...@@ -6,25 +6,25 @@ export function Init (data) {
6 let apiUrl = ""; 6 let apiUrl = "";
7 switch (data.get("djlx")) { 7 switch (data.get("djlx")) {
8 case "100": 8 case "100":
9 apiUrl = "/rest/ywbl/jsydsyqlr/fristInit"; 9 apiUrl = "/rest/ywbl/dyaq/fristInit";
10 break; 10 break;
11 case "200": 11 case "200":
12 apiUrl = "/rest/ywbl/jsydsyqlr/transferInit"; 12 apiUrl = "/rest/ywbl/dyaq/transferInit";
13 break; 13 break;
14 case "300": 14 case "300":
15 apiUrl = "/rest/ywbl/jsydsyqlr/changeInit"; 15 apiUrl = "/rest/ywbl/dyaq/changeInit";
16 break; 16 break;
17 case "400": 17 case "400":
18 apiUrl = "/rest/ywbl/jsydsyqlr/logoutInit"; 18 apiUrl = "/rest/ywbl/dyaq/logoutInit";
19 break; 19 break;
20 case "500": 20 case "500":
21 apiUrl = "/rest/ywbl/jsydsyqlr/riviseInit"; 21 apiUrl = "/rest/ywbl/dyaq/riviseInit";
22 break; 22 break;
23 case "901": 23 case "901":
24 apiUrl = "/rest/ywbl/jsydsyqlr/renewalInit"; 24 apiUrl = "/rest/ywbl/dyaq/renewalInit";
25 break; 25 break;
26 case "902": 26 case "902":
27 apiUrl = "/rest/ywbl/jsydsyqlr/replaceInit"; 27 apiUrl = "/rest/ywbl/dyaq/replaceInit";
28 break; 28 break;
29 } 29 }
30 return request({ 30 return request({
......
1 import request from '@/utils/request'
2 import SERVER from './config'
3
4 // 上传单个文件
5 export function sjClmxUpload (data) {
6 return request({
7 url: SERVER.SERVERAPI + '/rest/zhcx/sjClmx/upload',
8 method: 'post',
9 data
10 })
11 }
12 // 删除上传文件
13 export function sjClmxDelete (bsmClmx) {
14 return request({
15 url: SERVER.SERVERAPI + '/rest/zhcx/sjClmx/delete?bsmClmx=' + bsmClmx,
16 method: 'delete'
17 })
18 }
...\ 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 export function Init(data) {
5 let apiUrl = "";
6 switch (data.get("djlx")) {
7 case "100":
8 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/ygdj/fristInit";
9 break;
10 case "200":
11 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/transferInit";
12 break;
13 case "300":
14 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/changeInit";
15 break;
16 case "400":
17 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/logoutInit";
18 break;
19 case "500":
20 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/riviseInit";
21 break;
22 case "901":
23 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/renewalInit";
24 break;
25 case "902":
26 apiUrl = SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/replaceInit";
27 break;
28 }
29 return request({
30 url: apiUrl,
31 method: 'post',
32 data
33 })
34 }
35 // 初始化内容
36 export function saveData (data) {
37 console.log("222222222222222");
38 return request({
39 url: SERVER.SERVERAPI + '/rest/ywbl/ygdj/saveData',
40 method: 'post',
41 data
42 })
43 }
44 // 注销登记提交数据
45 export function saveLogoutData(data) {
46 return request({
47 url: SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/saveLogoutData",
48 method: 'post',
49 data
50 })
51 }
52 // 首次登记提交
53 export function saveBatchData(data) {
54 return request({
55 url: SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/saveBatchData",
56 method: 'post',
57 data
58 })
59 }
60 // 更正/变更登记提交
61 export function saveGZBatchData(data) {
62 return request({
63 url: SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/saveGZBatchData",
64 method: 'post',
65 data
66 })
67 }
68 // 更正/变更登记提交
69 export function saveBHZData(data) {
70 return request({
71 url: SERVER.SERVERAPI+"/rest/ywbl/fdcq2lr/saveBHZData",
72 method: 'post',
73 data
74 })
75 }
76
1 import dialogBox from '@/components/DialogBox/dialogBox.vue' 1 import dialogBox from '@/components/DialogBox/dialogBox.vue'
2 import lbTable from '@/components/lbTable/lb-table.vue' 2 import LbTable from '@/components/LbTable/lb-table.vue'
3 import Theme from '@/components/Theme/theme.vue' 3 import Theme from '@/components/Theme/theme.vue'
4 import Popup from '@/components/Popup/index' 4 import Popup from '@/components/Popup/index'
5 import MessageBox from '@/components/MessageBox/index.js'
5 export default { 6 export default {
6 install: (Vue) => { 7 install: (Vue) => {
7 Vue.component('dialogBox', dialogBox); 8 Vue.component('dialogBox', dialogBox);
8 Vue.component('lbTable', lbTable); 9 Vue.component('lbTable', LbTable);
9 Vue.component('Theme', Theme); 10 Vue.component('Theme', Theme);
10 Vue.prototype.$popup = Popup.install 11 Vue.prototype.$popup = Popup.install;
12 Vue.prototype.$alertMes = MessageBox.alert;
11 } 13 }
12 } 14 }
...\ No newline at end of file ...\ No newline at end of file
......
1 /**
2 * @1900-2100区间内的公历、农历互转
3 * @charset UTF-8
4 * @Author Jea杨(JJonline@JJonline.Cn)
5 * @Time 2014-7-21
6 * @Time 2016-8-13 Fixed 2033hex、Attribution Annals
7 * @Time 2016-9-25 Fixed lunar LeapMonth Param Bug
8 * @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year
9 * @Version 1.0.3
10 * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]
11 * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]
12 */
13 const calendar = {
14
15 /**
16 * 农历1900-2100的润大小信息表
17 * @Array Of Property
18 * @return Hex
19 */
20 lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,//1900-1909
21 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,//1910-1919
22 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,//1920-1929
23 0x06566, 0x0d4a0, 0x0ea50, 0x16a95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,//1930-1939
24 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,//1940-1949
25 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0,//1950-1959
26 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,//1960-1969
27 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6,//1970-1979
28 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,//1980-1989
29 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0,//1990-1999
30 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,//2000-2009
31 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,//2010-2019
32 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,//2020-2029
33 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,//2030-2039
34 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0,//2040-2049
35 /**Add By JJonline@JJonline.Cn**/
36 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0,//2050-2059
37 0x092e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4,//2060-2069
38 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0,//2070-2079
39 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160,//2080-2089
40 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252,//2090-2099
41 0x0d520],//2100
42
43 /**
44 * 公历每个月份的天数普通表
45 * @Array Of Property
46 * @return Number
47 */
48 solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
49
50 /**
51 * 天干地支之天干速查表
52 * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
53 * @return Cn string
54 */
55 Gan: ["\u7532", "\u4e59", "\u4e19", "\u4e01", "\u620a", "\u5df1", "\u5e9a", "\u8f9b", "\u58ec", "\u7678"],
56
57 /**
58 * 天干地支之地支速查表
59 * @Array Of Property
60 * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
61 * @return Cn string
62 */
63 Zhi: ["\u5b50", "\u4e11", "\u5bc5", "\u536f", "\u8fb0", "\u5df3", "\u5348", "\u672a", "\u7533", "\u9149", "\u620c", "\u4ea5"],
64
65 /**
66 * 天干地支之地支速查表<=>生肖
67 * @Array Of Property
68 * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
69 * @return Cn string
70 */
71 Animals: ["\u9f20", "\u725b", "\u864e", "\u5154", "\u9f99", "\u86c7", "\u9a6c", "\u7f8a", "\u7334", "\u9e21", "\u72d7", "\u732a"],
72
73 /**
74 * 阳历节日
75 */
76 festival: {
77 '1-1': { title: '元旦节' },
78 '2-14': { title: '情人节' },
79 '5-1': { title: '劳动节' },
80 '5-4': { title: '青年节' },
81 '6-1': { title: '儿童节' },
82 '9-10': { title: '教师节' },
83 '10-1': { title: '国庆节' },
84 '12-25': { title: '圣诞节' },
85
86 '3-8': { title: '妇女节' },
87 '3-12': { title: '植树节' },
88 '4-1': { title: '愚人节' },
89 '5-12': { title: '护士节' },
90 '7-1': { title: '建党节' },
91 '8-1': { title: '建军节' },
92 '12-24': { title: '平安夜' },
93 },
94
95 /**
96 * 农历节日
97 */
98 lFestival: {
99 '12-30': { title: '除夕' },
100 '1-1': { title: '春节' },
101 '1-15': { title: '元宵节' },
102 '2-2': { title: '龙抬头' },
103 '5-5': { title: '端午节' },
104 '7-7': { title: '七夕节' },
105 '7-15': { title: '中元节' },
106 '8-15': { title: '中秋节' },
107 '9-9': { title: '重阳节' },
108 '10-1': { title: '寒衣节' },
109 '10-15': { title: '下元节' },
110 '12-8': { title: '腊八节' },
111 '12-23': { title: '北方小年' },
112 '12-24': { title: '南方小年' },
113 },
114
115 /**
116 * 返回默认定义的阳历节日
117 */
118 getFestival () {
119 return this.festival
120 },
121
122 /**
123 * 返回默认定义的内容里节日
124 */
125 getLunarFestival () {
126 return this.lFestival
127 },
128
129 /**
130 *
131 * @param param {Object} 按照festival的格式输入数据,设置阳历节日
132 */
133 setFestival (param = {}) {
134 this.festival = param
135 },
136
137 /**
138 *
139 * @param param {Object} 按照lFestival的格式输入数据,设置农历节日
140 */
141 setLunarFestival (param = {}) {
142 this.lFestival = param
143 },
144
145 /**
146 * 24节气速查表
147 * @Array Of Property
148 * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
149 * @return Cn string
150 */
151 solarTerm: ["\u5c0f\u5bd2", "\u5927\u5bd2", "\u7acb\u6625", "\u96e8\u6c34", "\u60ca\u86f0", "\u6625\u5206", "\u6e05\u660e", "\u8c37\u96e8", "\u7acb\u590f", "\u5c0f\u6ee1", "\u8292\u79cd", "\u590f\u81f3", "\u5c0f\u6691", "\u5927\u6691", "\u7acb\u79cb", "\u5904\u6691", "\u767d\u9732", "\u79cb\u5206", "\u5bd2\u9732", "\u971c\u964d", "\u7acb\u51ac", "\u5c0f\u96ea", "\u5927\u96ea", "\u51ac\u81f3"],
152
153 /**
154 * 1900-2100各年的24节气日期速查表
155 * @Array Of Property
156 * @return 0x string For splice
157 */
158 sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',
159 '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
160 '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',
161 '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',
162 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',
163 '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',
164 '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',
165 '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',
166 '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',
167 '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
168 '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',
169 '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',
170 '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
171 '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
172 '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',
173 '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',
174 '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
175 '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
176 '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',
177 '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
178 '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
179 '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
180 '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',
181 '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
182 '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
183 '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
184 '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',
185 '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
186 '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
187 '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
188 '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
189 '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
190 '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
191 '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
192 '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
193 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
194 '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
195 '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
196 '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',
197 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',
198 '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
199 '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
200 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',
201 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
202 '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
203 '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
204 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',
205 '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
206 '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
207 '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',
208 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',
209 '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',
210 '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
211 '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
212 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',
213 '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
214 '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',
215 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',
216 '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',
217 '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
218 '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',
219 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',
220 '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',
221 '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
222 '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
223 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',
224 '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],
225
226 /**
227 * 数字转中文速查表
228 * @Array Of Property
229 * @trans ['日','一','二','三','四','五','六','七','八','九','十']
230 * @return Cn string
231 */
232 nStr1: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341"],
233
234 /**
235 * 日期转农历称呼速查表
236 * @Array Of Property
237 * @trans ['初','十','廿','卅']
238 * @return Cn string
239 */
240 nStr2: ["\u521d", "\u5341", "\u5eff", "\u5345"],
241
242 /**
243 * 月份转农历称呼速查表
244 * @Array Of Property
245 * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
246 * @return Cn string
247 */
248 nStr3: ["\u6b63", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u51ac", "\u814a"],
249
250 /**
251 * 返回农历y年一整年的总天数
252 * @param y lunar Year
253 * @return Number
254 * @eg:var count = calendar.lYearDays(1987) ;//count=387
255 */
256 lYearDays: function (y) {
257 let i, sum = 348;
258 for (i = 0x8000; i > 0x8; i >>= 1) {
259 sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0;
260 }
261 return (sum + this.leapDays(y));
262 },
263
264 /**
265 * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
266 * @param y lunar Year
267 * @return Number (0-12)
268 * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
269 */
270 leapMonth: function (y) { //闰字编码 \u95f0
271 return (this.lunarInfo[y - 1900] & 0xf);
272 },
273
274 /**
275 * 返回农历y年闰月的天数 若该年没有闰月则返回0
276 * @param y lunar Year
277 * @return Number (0、29、30)
278 * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
279 */
280 leapDays: function (y) {
281 if (this.leapMonth(y)) {
282 return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29);
283 }
284 return (0);
285 },
286
287 /**
288 * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
289 * @param y lunar Year
290 * @param m lunar Month
291 * @return Number (-1、29、30)
292 * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
293 */
294 monthDays: function (y, m) {
295 if (m > 12 || m < 1) {
296 return -1
297 }//月份参数从1至12,参数错误返回-1
298 return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
299 },
300
301 /**
302 * 返回公历(!)y年m月的天数
303 * @param y solar Year
304 * @param m solar Month
305 * @return Number (-1、28、29、30、31)
306 * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
307 */
308 solarDays: function (y, m) {
309 if (m > 12 || m < 1) {
310 return -1
311 } //若参数错误 返回-1
312 const ms = m - 1;
313 if (ms === 1) { //2月份的闰平规律测算后确认返回28或29
314 return (((y % 4 === 0) && (y % 100 !== 0) || (y % 400 === 0)) ? 29 : 28);
315 } else {
316 return (this.solarMonth[ms]);
317 }
318 },
319
320 /**
321 * 农历年份转换为干支纪年
322 * @param lYear 农历年的年份数
323 * @return Cn string
324 */
325 toGanZhiYear: function (lYear) {
326 var ganKey = (lYear - 3) % 10;
327 var zhiKey = (lYear - 3) % 12;
328 if (ganKey === 0) ganKey = 10;//如果余数为0则为最后一个天干
329 if (zhiKey === 0) zhiKey = 12;//如果余数为0则为最后一个地支
330 return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1];
331
332 },
333
334 /**
335 * 公历月、日判断所属星座
336 * @param cMonth [description]
337 * @param cDay [description]
338 * @return Cn string
339 */
340 toAstro: function (cMonth, cDay) {
341 const s = "\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf";
342 const arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];
343 return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "\u5ea7";//座
344 },
345
346 /**
347 * 传入offset偏移量返回干支
348 * @param offset 相对甲子的偏移量
349 * @return Cn string
350 */
351 toGanZhi: function (offset) {
352 return this.Gan[offset % 10] + this.Zhi[offset % 12];
353 },
354
355 /**
356 * 传入公历(!)y年获得该年第n个节气的公历日期
357 * @param y y公历年(1900-2100)
358 * @param n n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
359 * @return day Number
360 * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
361 */
362 getTerm: function (y, n) {
363 if (y < 1900 || y > 2100) {
364 return -1;
365 }
366 if (n < 1 || n > 24) {
367 return -1;
368 }
369 const _table = this.sTermInfo[y - 1900];
370 const _info = [
371 parseInt('0x' + _table.substr(0, 5)).toString(),
372 parseInt('0x' + _table.substr(5, 5)).toString(),
373 parseInt('0x' + _table.substr(10, 5)).toString(),
374 parseInt('0x' + _table.substr(15, 5)).toString(),
375 parseInt('0x' + _table.substr(20, 5)).toString(),
376 parseInt('0x' + _table.substr(25, 5)).toString()
377 ];
378 const _calcDay = [
379 _info[0].substr(0, 1),
380 _info[0].substr(1, 2),
381 _info[0].substr(3, 1),
382 _info[0].substr(4, 2),
383
384 _info[1].substr(0, 1),
385 _info[1].substr(1, 2),
386 _info[1].substr(3, 1),
387 _info[1].substr(4, 2),
388
389 _info[2].substr(0, 1),
390 _info[2].substr(1, 2),
391 _info[2].substr(3, 1),
392 _info[2].substr(4, 2),
393
394 _info[3].substr(0, 1),
395 _info[3].substr(1, 2),
396 _info[3].substr(3, 1),
397 _info[3].substr(4, 2),
398
399 _info[4].substr(0, 1),
400 _info[4].substr(1, 2),
401 _info[4].substr(3, 1),
402 _info[4].substr(4, 2),
403
404 _info[5].substr(0, 1),
405 _info[5].substr(1, 2),
406 _info[5].substr(3, 1),
407 _info[5].substr(4, 2),
408 ];
409 return parseInt(_calcDay[n - 1]);
410 },
411
412 /**
413 * 传入农历数字月份返回汉语通俗表示法
414 * @param m lunar month
415 * @return Cn string
416 * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月'
417 */
418 toChinaMonth: function (m) { // 月 => \u6708
419 if (m > 12 || m < 1) {
420 return -1
421 } //若参数错误 返回-1
422 let s = this.nStr3[m - 1];
423 s += "\u6708";//加上月字
424 return s;
425 },
426
427 /**
428 * 传入农历日期数字返回汉字表示法
429 * @param d lunar day
430 * @return Cn string
431 * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一'
432 */
433 toChinaDay: function (d) { //日 => \u65e5
434 let s;
435 switch (d) {
436 case 10:
437 s = '\u521d\u5341';
438 break;
439 case 20:
440 s = '\u4e8c\u5341';
441 break;
442 case 30:
443 s = '\u4e09\u5341';
444 break;
445 default:
446 s = this.nStr2[Math.floor(d / 10)];
447 s += this.nStr1[d % 10];
448 }
449 return (s);
450 },
451
452 /**
453 * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
454 * @param y year
455 * @return Cn string
456 * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔'
457 */
458 getAnimal: function (y) {
459 return this.Animals[(y - 4) % 12]
460 },
461
462 /**
463 * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON
464 * !important! 公历参数区间1900.1.31~2100.12.31
465 * @param yPara solar year
466 * @param mPara solar month
467 * @param dPara solar day
468 * @return JSON object
469 * @eg:console.log(calendar.solar2lunar(1987,11,01));
470 */
471 solar2lunar: function (yPara, mPara, dPara) {
472 let y = parseInt(yPara);
473 let m = parseInt(mPara);
474 let d = parseInt(dPara);
475 //年份限定、上限
476 if (y < 1900 || y > 2100) {
477 return -1;// undefined转换为数字变为NaN
478 }
479 //公历传参最下限
480 if (y === 1900 && m === 1 && d < 31) {
481 return -1;
482 }
483
484 //未传参 获得当天
485 let objDate;
486 if (!y) {
487 objDate = new Date();
488 } else {
489 objDate = new Date(y, parseInt(m) - 1, d);
490 }
491 let i, leap = 0, temp = 0;
492 //修正ymd参数
493 y = objDate.getFullYear();
494 m = objDate.getMonth() + 1;
495 d = objDate.getDate();
496 let offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000;
497 for (i = 1900; i < 2101 && offset > 0; i++) {
498 temp = this.lYearDays(i);
499 offset -= temp;
500 }
501 if (offset < 0) {
502 offset += temp;
503 i--;
504 }
505
506 //是否今天
507 let isTodayObj = new Date(),
508 isToday = false;
509 if (isTodayObj.getFullYear() === y && isTodayObj.getMonth() + 1 === m && isTodayObj.getDate() === d) {
510 isToday = true;
511 }
512 //星期几
513 let nWeek = objDate.getDay(),
514 cWeek = this.nStr1[nWeek];
515 //数字表示周几顺应天朝周一开始的惯例
516 if (nWeek === 0) {
517 nWeek = 7;
518 }
519 //农历年
520 const year = i;
521 leap = this.leapMonth(i); //闰哪个月
522 let isLeap = false;
523
524 //效验闰月
525 for (i = 1; i < 13 && offset > 0; i++) {
526 //闰月
527 if (leap > 0 && i === (leap + 1) && isLeap === false) {
528 --i;
529 isLeap = true;
530 temp = this.leapDays(year); //计算农历闰月天数
531 } else {
532 temp = this.monthDays(year, i);//计算农历普通月天数
533 }
534 //解除闰月
535 if (isLeap === true && i === (leap + 1)) {
536 isLeap = false;
537 }
538 offset -= temp;
539 }
540 // 闰月导致数组下标重叠取反
541 if (offset === 0 && leap > 0 && i === leap + 1) {
542 if (isLeap) {
543 isLeap = false;
544 } else {
545 isLeap = true;
546 --i;
547 }
548 }
549 if (offset < 0) {
550 offset += temp;
551 --i;
552 }
553 //农历月
554 const month = i;
555 //农历日
556 const day = offset + 1;
557 //天干地支处理
558 const sm = m - 1;
559 const gzY = this.toGanZhiYear(year);
560
561 // 当月的两个节气
562 // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year`
563 const firstNode = this.getTerm(y, (m * 2 - 1));//返回当月「节」为几日开始
564 const secondNode = this.getTerm(y, (m * 2));//返回当月「节」为几日开始
565
566 // 依据12节气修正干支月
567 let gzM = this.toGanZhi((y - 1900) * 12 + m + 11);
568 if (d >= firstNode) {
569 gzM = this.toGanZhi((y - 1900) * 12 + m + 12);
570 }
571
572 //传入的日期的节气与否
573 let isTerm = false;
574 let Term = null;
575 if (firstNode === d) {
576 isTerm = true;
577 Term = this.solarTerm[m * 2 - 2];
578 }
579 if (secondNode === d) {
580 isTerm = true;
581 Term = this.solarTerm[m * 2 - 1];
582 }
583 //日柱 当月一日与 1900/1/1 相差天数
584 const dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;
585 const gzD = this.toGanZhi(dayCyclical + d - 1);
586 //该日期所属的星座
587 const astro = this.toAstro(m, d);
588
589 const solarDate = y + '-' + m + '-' + d;
590 const lunarDate = year + '-' + month + '-' + day;
591
592 const festival = this.festival;
593 const lFestival = this.lFestival;
594
595 const festivalDate = m + '-' + d;
596 const lunarFestivalDate = month + '-' + day;
597
598 return {
599 date: solarDate,
600 lunarDate: lunarDate,
601 festival: festival[festivalDate] ? festival[festivalDate].title : null,
602 lunarFestival: lFestival[lunarFestivalDate] ? lFestival[lunarFestivalDate].title : null,
603 'lYear': year,
604 'lMonth': month,
605 'lDay': day,
606 'Animal': this.getAnimal(year),
607 'IMonthCn': (isLeap ? "\u95f0" : '') + this.toChinaMonth(month),
608 'IDayCn': this.toChinaDay(day),
609 'cYear': y,
610 'cMonth': m,
611 'cDay': d,
612 'gzYear': gzY,
613 'gzMonth': gzM,
614 'gzDay': gzD,
615 'isToday': isToday,
616 'isLeap': isLeap,
617 'nWeek': nWeek,
618 'ncWeek': "\u661f\u671f" + cWeek,
619 'isTerm': isTerm,
620 'Term': Term,
621 'astro': astro
622 };
623 },
624
625 /**
626 * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
627 * !important! 参数区间1900.1.31~2100.12.1
628 * @param y lunar year
629 * @param m lunar month
630 * @param d lunar day
631 * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可]
632 * @return JSON object
633 * @eg:console.log(calendar.lunar2solar(1987,9,10));
634 */
635 lunar2solar: function (y, m, d, isLeapMonth) {
636 y = parseInt(y)
637 m = parseInt(m)
638 d = parseInt(d)
639 isLeapMonth = !!isLeapMonth;
640 const leapOffset = 0;
641 const leapMonth = this.leapMonth(y);
642 const leapDay = this.leapDays(y);
643 if (isLeapMonth && (leapMonth !== m)) {
644 return -1;
645 }//传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同
646 if (y === 2100 && m === 12 && d > 1 || y === 1900 && m === 1 && d < 31) {
647 return -1;
648 }//超出了最大极限值
649 const day = this.monthDays(y, m);
650 let _day = day;
651 //bugFix 2016-9-25
652 //if month is leap, _day use leapDays method
653 if (isLeapMonth) {
654 _day = this.leapDays(y, m);
655 }
656 if (y < 1900 || y > 2100 || d > _day) {
657 return -1;
658 }//参数合法性效验
659
660 //计算农历的时间差
661 let offset = 0;
662 let i;
663 for (i = 1900; i < y; i++) {
664 offset += this.lYearDays(i);
665 }
666 let leap = 0, isAdd = false;
667 for (i = 1; i < m; i++) {
668 leap = this.leapMonth(y);
669 if (!isAdd) {//处理闰月
670 if (leap <= i && leap > 0) {
671 offset += this.leapDays(y);
672 isAdd = true;
673 }
674 }
675 offset += this.monthDays(y, i);
676 }
677 //转换闰月农历 需补充该年闰月的前一个月的时差
678 if (isLeapMonth) {
679 offset += day;
680 }
681 //1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)
682 const strap = Date.UTC(1900, 1, 30, 0, 0, 0);
683 const calObj = new Date((offset + d - 31) * 86400000 + strap);
684 const cY = calObj.getUTCFullYear();
685 const cM = calObj.getUTCMonth() + 1;
686 const cD = calObj.getUTCDate();
687
688 return this.solar2lunar(cY, cM, cD);
689 }
690 };
691
692 export default calendar
...\ No newline at end of file ...\ No newline at end of file
1
2 <template>
3 <el-calendar v-model="date">
4 <template slot="dateCell" slot-scope="{date, data}">
5 <div :class="{ selected: isSelected(date, data) }">
6 <div class="solar">{{ data.day.split('-')[2] }}</div>
7 <div class="lunar" :class="{ festival: isFestival(date, data) }">{{ solarToLunar(date, data) }}</div>
8 </div>
9 </template>
10 </el-calendar>
11 </template>
12
13 <script>
14 import calendar from './calendar'
15 export default {
16 name: 'calendar',
17 data () {
18 return {
19 date: new Date(),
20 // 根据selectedDates设置选中日期
21 selectedDates: []
22 }
23 },
24 methods: {
25 // 是否选中日期
26 isSelected: function (slotDate, slotData) {
27 return this.selectedDates.includes(slotData.day)
28 },
29 // 是否节假日
30 isFestival (slotDate, slotData) {
31 let solarDayArr = slotData.day.split('-');
32 let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
33
34 // 公历节日\农历节日\农历节气
35 let festAndTerm = [];
36 festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
37 festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
38 festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
39 festAndTerm = festAndTerm.join('')
40
41 return festAndTerm != ''
42 },
43 // 公历转农历
44 solarToLunar (slotDate, slotData) {
45 let solarDayArr = slotData.day.split('-');
46 let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
47
48 // 农历日期
49 let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn
50
51 // 公历节日\农历节日\农历节气
52 let festAndTerm = [];
53 festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
54 festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
55 festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
56 festAndTerm = festAndTerm.join('')
57
58 return festAndTerm == '' ? lunarMD : festAndTerm
59 }
60 }
61 }
62 </script>
63
64 <style scoped>
65 /**隐藏上一月、本月、下一月*/
66 .el-calendar__button-group {
67 display: none;
68 }
69
70 /deep/.el-calendar__body {
71 padding: 12px !important;
72 }
73
74 /deep/.el-calendar-table .el-calendar-day {
75 height: auto;
76 padding: 5px;
77 }
78
79 /**月份居中*/
80 .el-calendar__title {
81 width: 100%;
82 text-align: center;
83 }
84
85 /**日期div的样式*/
86 .el-calendar-table tr td:first-child {
87 border-left: 0px;
88 }
89
90 .el-calendar-table td {
91 min-height: 110px;
92 min-width: 110px;
93 border-right: 0px;
94 }
95
96 .el-calendar-table td.is-selected {
97 background-color: white;
98 }
99
100 .el-calendar-table .el-calendar-day {
101 padding: 0px;
102 text-align: center;
103 }
104
105 .el-calendar-table .el-calendar-day>div {
106 text-align: center
107 }
108
109 /**日期div的样式-公历*/
110 .el-calendar-table .el-calendar-day>div .solar {
111 text-align: center
112 }
113
114 /**日期div的样式-农历*/
115 .el-calendar-table .el-calendar-day>div .lunar {
116 padding-top: 5px;
117 font-size: 12px;
118 text-align: center
119 }
120
121 /**日期div的样式-选中*/
122 .el-calendar-table .el-calendar-day>div.selected {
123 background-color: #fef2f2;
124 border: 3px solid #fb0;
125 border-radius: 20px;
126 text-align: center
127 }
128
129 /**本月周末设置为红色*/
130 .el-calendar-table .current:nth-last-child(-n+2) .solar {
131 color: red;
132 }
133
134 /**本月农历设置为灰色*/
135 .el-calendar-table .current .lunar {
136 color: #606266;
137 font-size: 12px;
138 }
139
140 /**本月农历节日设置为红色*/
141 .el-calendar-table .current .lunar.festival {
142 color: red;
143 }
144
145 .el-calendar-table td {
146 border-right: none !important;
147 }
148
149 /**禁用点击效果*/
150 /*.el-calendar-table td {*/
151 /*pointer-events: none;*/
152 /*}*/
153 </style>
...\ No newline at end of file ...\ No newline at end of file
1 .dialogBox {
2 border-radius: 8px;
3 overflow: hidden;
4 background: #FFFFFF;
5 box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.10);
6
7 .dialog_title {
8 display: flex;
9 position: relative;
10 top: -2px;
11
12 b {
13 @include flex-center;
14 flex: 1;
15 width: 100%;
16 }
17 }
18
19 .dialog_full {
20 position: absolute;
21 top: 0;
22 right: 30px;
23 }
24
25 .el-dialog__body {
26 max-height: 88vh;
27 overflow-x: hidden;
28 overflow-y: hidden;
29 }
30
31 .dialog_footer {
32 margin-top: 8px;
33 @include flex-center;
34 }
35
36
37 }
38
39 .dialog_title {
40 @include flex;
41 justify-content: space-between;
42 width: 100%;
43 }
44
45 .el-dialog__header {
46 margin-bottom: 10px;
47 color: #4A4A4A;
48 background-color: #FCFDFD;
49 border-bottom: 1px solid #E4EBF4;
50 }
51
52 .el-dialog__body {
53 padding-top: 10px;
54 padding-bottom: 0;
55 }
56
57 .el-dialog__headerbtn .el-dialog__close {
58 color: #6B7A99 !important;
59 position: relative;
60 top: -2px;
61 }
62
63
64 .el-form-item {
65 @include flex;
66 width: 100%;
67 }
68
69 .el-dialog__wrapper {
70 width: 100%;
71 height: 100%;
72 overflow: hidden;
73 }
74
75 .contentCenter {
76 position: absolute;
77 top: 50%;
78 left: 50%;
79 transform: translate(calc(-50% + 85px), -50%);
80 }
81
82 .mainCenter {
83 position: absolute;
84 top: 50%;
85 left: 50%;
86 transform: translate(-50%, -50%);
87 }
...\ 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 ? scrollerHeight : 'auto' }">
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 },
74 data () {
75 return {
76 key: 0,
77 dialogVisible: false,
78 fullscreen: false,
79 scrollerHeight: false,
80 }
81 },
82 watch: {
83 value (val) {
84 this.dialogVisible = val
85 }
86 },
87 methods: {
88 handleFullscreen (val) {
89 this.fullscreen = !this.fullscreen
90 let height = document.getElementById('dialogBox').clientHeight
91 if (!this.fullscreen) {
92 this.scrollerHeight = false
93 } else {
94 this.scrollerHeight = (window.innerHeight - 180) + 'px'
95 }
96 },
97 submitForm () {
98 if (this.isButton) {
99 this.$emit('submitForm');
100 }
101 },
102 closeDialog () {
103 this.key++
104 this.$emit('input', false)
105 this.$emit('closeDialog')
106 }
107 },
108 }
109 </script>
110 <style rel="stylesheet/scss" lang="scss" >
111 @import "~@/styles/mixin.scss";
112 @import "./dialogBox.scss";
113 </style>
114 <style rel="stylesheet/scss" scoped lang="scss" >
115 /deep/.is-fullscreen {
116 position: absolute;
117 top: 50% !important;
118 left: 50% !important;
119 transform: translate(-50%, -50%) !important;
120 }
121 </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"
13 v-on="$listeners"
14 :prop="column.prop"
15 :label="column.label"
16 :type="column.type"
17 :index="column.index"
18 :column-key="column.columnKey"
19 :width="column.width"
20 :min-width="column.minWidth"
21 :fixed="column.fixed"
22 :scoped-slot="column.renderHeader"
23 :sortable="column.sortable || false"
24 :sort-method="column.sortMethod"
25 :sort-by="column.sortBy"
26 :sort-orders="column.sortOrders"
27 :resizable="column.resizable || true"
28 :formatter="column.formatter"
29 :show-overflow-tooltip="column.showOverflowTooltip || false"
30 :align="column.align || align || 'center'"
31 :header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
32 :class-name="column.className"
33 :label-class-name="column.labelClassName"
34 :selectable="column.selectable"
35 :reserve-selection="column.reserveSelection || false"
36 :filters="column.filters"
37 :filter-placement="column.filterPlacement"
38 :filter-multiple="column.filterMultiple"
39 :filter-method="column.filterMethod"
40 :filtered-value="column.filteredValue">
41 <template slot="header"
42 slot-scope="scope">
43 <lb-render v-if="column.renderHeader"
44 :scope="scope"
45 :render="column.renderHeader">
46 </lb-render>
47 <span v-else>{{ scope.column.label }}</span>
48 </template>
49
50 <template slot-scope="scope">
51 <lb-render :scope="scope"
52 :render="column.render">
53 </lb-render>
54 </template>
55
56 <template v-if="column.children">
57 <lb-column v-for="(col, index) in column.children"
58 :key="index"
59 :column="col">
60 </lb-column>
61 </template>
62 </el-table-column>
63 </template>
64
65 <script>
66 import LbRender from './lb-render'
67 import forced from './forced.js'
68 export default {
69 name: 'LbColumn',
70 props: {
71 column: Object,
72 headerAlign: String,
73 align: String
74 },
75 components: {
76 LbRender
77 },
78 methods: {
79 setColumn () {
80 if (this.column.type) {
81 this.column.renderHeader = forced[this.column.type].renderHeader
82 this.column.render = this.column.render || forced[this.column.type].renderCell
83 }
84 if (this.column.formatter) {
85 this.column.render = (h, scope) => {
86 return <span>{ scope.column.formatter(scope.row, scope.column, scope.row, scope.$index) }</span>
87 }
88 }
89 if (!this.column.render) {
90 this.column.render = (h, scope) => {
91 return <span>{ scope.row[scope.column.property] }</span>
92 }
93 }
94 }
95 },
96 watch: {
97 column: {
98 handler () {
99 this.setColumn()
100 },
101 immediate: true
102 }
103 }
104 }
105 </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'
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 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
18 </lb-column>
19 </el-table>
20
21 <el-table v-else ref="elTable" class="table-fixed" :row-style="{ height: '50px' }" :border='border'
22 :row-class-name="tableRowClassName" :show-header='showHeader'
23 :header-cell-style="{ background: 'rgb(236, 245, 255)' }" v-bind="$attrs" :max-height="maxHeight"
24 v-on="$listeners" :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod">
25 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
26 </lb-column>
27 </el-table>
28
29 <br>
30 <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background
31 :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next" @current-change="paginationCurrentChange"
32 :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }">
33 </el-pagination>
34 </div>
35 </template>
36
37 <script>
38 import LbColumn from './lb-column'
39 export default {
40 props: {
41 column: Array,
42 data: Array,
43 spanMethod: Function,
44 pagination: {
45 type: Boolean,
46 default: true,
47 },
48 border: {
49 type: Boolean,
50 default: true,
51 },
52 showHeader: {
53 type: Boolean,
54 default: true,
55 },
56 paginationTop: {
57 type: String,
58 default: '0',
59 },
60 heightNum: {
61 type: Number,
62 default: 265,
63 },
64 maxHeight: {
65 type: Number,
66 default: 500
67 },
68 heightNumSetting: {
69 type: Boolean,
70 default: false,
71 },
72 customClass: {
73 type: String,
74 default: '',
75 },
76 paginationAlign: {
77 type: String,
78 default: 'left',
79 },
80 merge: Array,
81 },
82 components: {
83 LbColumn,
84 },
85 data () {
86 return {
87 tableHeight: '',
88 mergeLine: {},
89 mergeIndex: {},
90 }
91 },
92 created () {
93 this.getMergeArr(this.data, this.merge)
94 this.getHeight()
95 },
96 computed: {
97 dataLength () {
98 return [] || this.data.length
99 },
100 },
101 methods: {
102 tableRowClassName ({ row, rowIndex }) {
103 if (rowIndex % 2 === 1) {
104 return 'interlaced';
105 }
106 },
107 getHeight () {
108 if (!this.heightNumSetting) {
109 this.tableHeight = window.innerHeight - this.heightNum
110 }
111 },
112 clearSelection () {
113 this.$refs.elTable.clearSelection()
114 },
115 toggleRowSelection (row, selected) {
116 this.$refs.elTable.toggleRowSelection(row, selected)
117 },
118 toggleAllSelection () {
119 this.$refs.elTable.toggleAllSelection()
120 },
121 toggleRowExpansion (row, expanded) {
122 this.$refs.elTable.toggleRowExpansion(row, expanded)
123 },
124 setCurrentRow (row) {
125 this.$refs.elTable.setCurrentRow(row)
126 },
127 clearSort () {
128 this.$refs.elTable.clearSort()
129 },
130 clearFilter (columnKey) {
131 this.$refs.elTable.clearFilter(columnKey)
132 },
133 doLayout () {
134 this.$refs.elTable.doLayout()
135 },
136 sort (prop, order) {
137 this.$refs.elTable.sort(prop, order)
138 },
139 paginationCurrentChange (val) {
140 this.$emit('p-current-change', val)
141 },
142 getMergeArr (tableData, merge) {
143 if (!merge) return
144 this.mergeLine = {}
145 this.mergeIndex = {}
146 merge.forEach((item, k) => {
147 tableData.forEach((data, i) => {
148 if (i === 0) {
149 this.mergeIndex[item] = this.mergeIndex[item] || []
150 this.mergeIndex[item].push(1)
151 this.mergeLine[item] = 0
152 } else {
153 if (data[item] === tableData[i - 1][item]) {
154 this.mergeIndex[item][this.mergeLine[item]] += 1
155 this.mergeIndex[item].push(0)
156 } else {
157 this.mergeIndex[item].push(1)
158 this.mergeLine[item] = i
159 }
160 }
161 })
162 })
163 },
164 mergeMethod ({ row, column, rowIndex, columnIndex }) {
165 const index = this.merge.indexOf(column.property)
166 if (index > -1) {
167 const _row = this.mergeIndex[this.merge[index]][rowIndex]
168 const _col = _row > 0 ? 1 : 0
169 return {
170 rowspan: _row,
171 colspan: _col,
172 }
173 }
174 },
175 },
176 watch: {
177 merge () {
178 this.getMergeArr(this.data, this.merge)
179 },
180 dataLength () {
181 this.getMergeArr(this.data, this.merge)
182 }
183 },
184 }
185 </script>
186 <style rel="stylesheet/scss" scoped lang="scss">
187 .lb-table {
188 margin-top: 1px;
189
190 .interlaced {
191 background: #fafcff;
192 border: 1px solid #ebf2fa;
193 }
194 }
195
196 /deep/.el-table .cell {
197 padding-left: 3px;
198 padding-right: 3px;
199 }
200 </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 if (currentMsg.resolve) {
57 if (action === 'confirm') {
58 if (instance.showInput) {
59 currentMsg.resolve({ value: instance.inputValue, action });
60 } else {
61 currentMsg.resolve(action);
62 }
63 } else if (currentMsg.reject && (action === 'cancel' || action === 'close')) {
64 currentMsg.reject(action);
65 }
66 }
67 }
68 };
69
70 const initInstance = () => {
71 instance = new MessageBoxConstructor({
72 el: document.createElement('div')
73 });
74
75 instance.callback = defaultCallback;
76 };
77
78 const showNextMsg = () => {
79 if (!instance) {
80 initInstance();
81 }
82 instance.action = '';
83
84 if (!instance.visible || instance.closeTimer) {
85 if (msgQueue.length > 0) {
86 currentMsg = msgQueue.shift();
87
88 let options = currentMsg.options;
89 for (let prop in options) {
90 if (options.hasOwnProperty(prop)) {
91 instance[prop] = options[prop];
92 }
93 }
94 if (options.callback === undefined) {
95 instance.callback = defaultCallback;
96 }
97
98 let oldCb = instance.callback;
99 instance.callback = (action, instance) => {
100 oldCb(action, instance);
101 showNextMsg();
102 };
103 if (isVNode(instance.message)) {
104 instance.$slots.default = [instance.message];
105 instance.message = null;
106 } else {
107 delete instance.$slots.default;
108 }
109 ['modal', 'showClose', 'closeOnClickModal', 'closeOnPressEscape', 'closeOnHashChange'].forEach(prop => {
110 if (instance[prop] === undefined) {
111 instance[prop] = true;
112 }
113 });
114 document.body.appendChild(instance.$el);
115
116 Vue.nextTick(() => {
117 instance.visible = true;
118 });
119 }
120 }
121 };
122
123 const MessageBox = function(options, callback) {
124 if (Vue.prototype.$isServer) return;
125 if (typeof options === 'string' || isVNode(options)) {
126 options = {
127 message: options
128 };
129 if (typeof arguments[1] === 'string') {
130 options.title = arguments[1];
131 }
132 } else if (options.callback && !callback) {
133 callback = options.callback;
134 }
135
136 if (typeof Promise !== 'undefined') {
137 return new Promise((resolve, reject) => { // eslint-disable-line
138 msgQueue.push({
139 options: merge({}, defaults, MessageBox.defaults, options),
140 callback: callback,
141 resolve: resolve,
142 reject: reject
143 });
144
145 showNextMsg();
146 });
147 } else {
148 msgQueue.push({
149 options: merge({}, defaults, MessageBox.defaults, options),
150 callback: callback
151 });
152
153 showNextMsg();
154 }
155 };
156
157 MessageBox.setDefaults = defaults => {
158 MessageBox.defaults = defaults;
159 };
160
161 MessageBox.alert = (message, title, options) => {
162 if (typeof title === 'object') {
163 options = title;
164 title = '';
165 } else if (title === undefined) {
166 title = '';
167 }
168 return MessageBox(merge({
169 title: title,
170 message: message,
171 $type: 'alert',
172 closeOnPressEscape: false,
173 closeOnClickModal: false
174 }, options));
175 };
176
177 MessageBox.close = () => {
178 instance.doClose();
179 instance.visible = false;
180 msgQueue = [];
181 currentMsg = null;
182 };
183
184 export default MessageBox;
185 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 <div :class="['el-message-box__status', icon]" v-if="icon && center">
9 </div>
10 <span>{{ title }}</span>
11 </div>
12 <button type="button" class="el-message-box__headerbtn" aria-label="Close" v-if="showClose"
13 @click="handleAction(distinguishCancelAndClose ? 'close' : 'cancel')"
14 @keydown.enter="handleAction(distinguishCancelAndClose ? 'close' : 'cancel')">
15 <i class="el-message-box__close el-icon-close"></i>
16 </button>
17 </div>
18 <div class="el-message-box__content">
19 <div class="el-message-box__message" v-if="message !== ''">
20 <slot>
21 <p>{{ message }}</p>
22 </slot>
23 </div>
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 { addClass, removeClass } from 'element-ui/src/utils/dom';
34 import { t } from 'element-ui/src/locale';
35 import Dialog from 'element-ui/src/utils/aria-dialog';
36
37 let messageBox;
38 let typeMap = {
39 success: 'success',
40 info: 'info',
41 warning: 'warning',
42 error: 'error'
43 };
44
45 export default {
46 mixins: [Popup, Locale],
47
48 props: {
49 modal: {
50 default: true
51 },
52 lockScroll: {
53 default: true
54 },
55 showClose: {
56 type: Boolean,
57 default: true
58 },
59 closeOnClickModal: {
60 default: true
61 },
62 closeOnPressEscape: {
63 default: true
64 },
65 closeOnHashChange: {
66 default: true
67 },
68 center: {
69 default: false,
70 type: Boolean
71 },
72 roundButton: {
73 default: false,
74 type: Boolean
75 }
76 },
77 computed: {
78 icon () {
79 const { type, iconClass } = this;
80 return iconClass || (type && typeMap[type] ? `el-icon-${typeMap[type]}` : '');
81 },
82
83 confirmButtonClasses () {
84 return `el-button--primary ${this.confirmButtonClass}`;
85 },
86 cancelButtonClasses () {
87 return `${this.cancelButtonClass}`;
88 }
89 },
90
91 methods: {
92 getSafeClose () {
93 const currentId = this.uid;
94 return () => {
95 this.$nextTick(() => {
96 if (currentId === this.uid) this.doClose();
97 });
98 };
99 },
100 doClose () {
101 if (!this.visible) return;
102 this.visible = false;
103 this._closing = true;
104
105 this.onClose && this.onClose();
106 messageBox.closeDialog(); // 解绑
107 if (this.lockScroll) {
108 setTimeout(this.restoreBodyStyle, 200);
109 }
110 this.opened = false;
111 this.doAfterClose();
112 setTimeout(() => {
113 if (this.action) this.callback(this.action, this);
114 });
115 },
116
117 handleWrapperClick () {
118 if (this.closeOnClickModal) {
119 this.handleAction(this.distinguishCancelAndClose ? 'close' : 'cancel');
120 }
121 },
122
123 handleInputEnter () {
124 if (this.inputType !== 'textarea') {
125 return this.handleAction('confirm');
126 }
127 },
128
129 handleAction (action) {
130 if (this.$type === 'prompt' && action === 'confirm' && !this.validate()) {
131 return;
132 }
133 this.action = action;
134 if (typeof this.beforeClose === 'function') {
135 this.close = this.getSafeClose();
136 this.beforeClose(action, this, this.close);
137 } else {
138 this.doClose();
139 }
140 },
141
142 validate () {
143 if (this.$type === 'prompt') {
144 const inputPattern = this.inputPattern;
145 if (inputPattern && !inputPattern.test(this.inputValue || '')) {
146 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
147 addClass(this.getInputElement(), 'invalid');
148 return false;
149 }
150 const inputValidator = this.inputValidator;
151 if (typeof inputValidator === 'function') {
152 const validateResult = inputValidator(this.inputValue);
153 if (validateResult === false) {
154 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
155 addClass(this.getInputElement(), 'invalid');
156 return false;
157 }
158 if (typeof validateResult === 'string') {
159 this.editorErrorMessage = validateResult;
160 addClass(this.getInputElement(), 'invalid');
161 return false;
162 }
163 }
164 }
165 this.editorErrorMessage = '';
166 removeClass(this.getInputElement(), 'invalid');
167 return true;
168 },
169 getFirstFocus () {
170 const btn = this.$el.querySelector('.el-message-box__btns .el-button');
171 const title = this.$el.querySelector('.el-message-box__btns .el-message-box__title');
172 return btn || title;
173 },
174 getInputElement () {
175 const inputRefs = this.$refs.input.$refs;
176 return inputRefs.input || inputRefs.textarea;
177 },
178 handleClose () {
179 this.handleAction('close');
180 }
181 },
182
183 watch: {
184 inputValue: {
185 immediate: true,
186 handler (val) {
187 this.$nextTick(_ => {
188 if (this.$type === 'prompt' && val !== null) {
189 this.validate();
190 }
191 });
192 }
193 },
194
195 visible (val) {
196 if (val) {
197 this.uid++;
198 if (this.$type === 'alert' || this.$type === 'confirm') {
199 this.$nextTick(() => {
200 this.$refs.confirm.$el.focus();
201 });
202 }
203 this.focusAfterClosed = document.activeElement;
204 messageBox = new Dialog(this.$el, this.focusAfterClosed, this.getFirstFocus());
205 }
206
207 // prompt
208 if (this.$type !== 'prompt') return;
209 if (val) {
210 setTimeout(() => {
211 if (this.$refs.input && this.$refs.input.$el) {
212 this.getInputElement().focus();
213 }
214 }, 500);
215 } else {
216 this.editorErrorMessage = '';
217 removeClass(this.getInputElement(), 'invalid');
218 }
219 }
220 },
221
222 mounted () {
223 this.$nextTick(() => {
224 if (this.closeOnHashChange) {
225 window.addEventListener('hashchange', this.close);
226 }
227 });
228 },
229
230 beforeDestroy () {
231 if (this.closeOnHashChange) {
232 window.removeEventListener('hashchange', this.close);
233 }
234 setTimeout(() => {
235 messageBox.closeDialog();
236 });
237 },
238
239 data () {
240 return {
241 uid: 1,
242 title: undefined,
243 message: '',
244 type: '',
245 iconClass: '',
246 customClass: '',
247 showInput: false,
248 inputValue: null,
249 inputPlaceholder: '',
250 inputType: 'text',
251 inputPattern: null,
252 inputValidator: null,
253 inputErrorMessage: '',
254 showConfirmButton: true,
255 showCancelButton: false,
256 action: '',
257 confirmButtonText: '',
258 cancelButtonText: '',
259 confirmButtonLoading: false,
260 cancelButtonLoading: false,
261 confirmButtonClass: '',
262 confirmButtonDisabled: false,
263 cancelButtonClass: '',
264 editorErrorMessage: null,
265 callback: null,
266 dangerouslyUseHTMLString: false,
267 focusAfterClosed: null,
268 isOnComposition: false,
269 distinguishCancelAndClose: false
270 };
271 }
272 };
273 </script>
1 <template>
2 <div class="my-outbox">
3 <div class="my-inbox" ref='box'>
4 <div class="my-list" :style="note" v-for="(item,index) in sendVal" :key='index' ref='list'>
5 <span class="my-uname">{{ item }}</span>
6 </div>
7 </div>
8 </div>
9 </template>
10
11 <script>
12 export default {
13 name: 'my-marquee-left',
14 props: {
15 sendVal: {
16 type: Array,
17 default: []
18 }
19 },
20 data () {
21 return {
22 note: {
23 backgroundSize: "20px 20px",
24 backgroundRepeat: "no-repeat",
25 backgroundPosition: "1% 50%"
26 },
27 // 定时器标识
28 nowTime: null,
29 // 每一个内容的宽度
30 disArr: []
31 }
32 },
33 mounted () {
34 // var that = this
35 var item = this.$refs.list
36 var len = this.sendVal.length
37 var arr = []
38 // 因为设置的margin值一样,所以取第一个就行。
39 var margin = this.getMargin(item[0])
40 for (var i = 0; i < len; i++) {
41 arr.push(item[i].clientWidth + margin) // 把宽度和 margin 加起来就是每一个元素需要移动的距离
42 }
43 this.disArr = arr
44 this.moveLeft()
45 },
46 beforeDestroy () {
47 // 页面关闭清除定时器
48 clearInterval(this.nowTime)
49 // 清除定时器标识
50 this.nowTime = null
51 },
52 methods: {
53 // 获取margin属性
54 getMargin (obj) {
55 var marg = window.getComputedStyle(obj, null)['margin-right']
56 marg = marg.replace('px', '')
57 return Number(marg) // 强制转化成数字
58 },
59 // 移动的方法
60 moveLeft () {
61 var that = this
62 var outbox = this.$refs.box
63 // 初始位置
64 var startDis = 0
65 // console.log('that.disArr: ', that.disArr)
66 this.nowTime = setInterval(function () {
67 startDis -= 0.5
68 // console.log('初始化移动:', startDis)
69 if (Math.abs(startDis) > Math.abs(that.disArr[0])) {
70 // 每次移动完一个元素的距离,就把这个元素的宽度
71 that.disArr.push(that.disArr.shift())
72 // 每次移动完一个元素的距离,就把列表数据的第一项放到最后一项
73 // console.log('that.sendVal: ', that.sendVal)
74 // console.log('that.sendVal: ', that.sendVal.shift())
75 that.sendVal.push(that.sendVal.shift())
76 startDis = 0
77 // console.log('移动')
78 } else {
79 // console.log('不来不来就不来...')
80 }
81 // 每次都让盒子移动指定的距离,在我自己做的项目中,这种字符串拼接的方法并没有生效
82 // outbox.style = 'transform: translateX3d(' + startDis + 'px)'
83 // 后面换了es6的模板字符串就可以了
84 outbox.style = `transform: translateX(${startDis}px)`
85 // outbox.style = 'transform: translateX(\' + startDis + \' px)'
86 // outbox.style.marginLeft = 'startDis'
87 // console.log('这里:', startDis)
88 }, 1000 / 60)
89 }
90 }
91 }
92 </script>
93
94 <style lang="scss" scoped>
95 .my-outbox {
96 color: #fff;
97 overflow: hidden;
98 line-height: 28px;
99 background: rgba(0, 0, 0, 0.1);
100 width: 100%;
101
102 .my-inbox {
103 white-space: nowrap;
104
105 .my-list {
106 margin-right: 15px;
107 display: inline-block;
108 font-size: 14px;
109 text-indent: 30px;
110
111 .my-uname {
112 color: red;
113 }
114 }
115 }
116 }
117 </style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -107,7 +107,7 @@ export default { ...@@ -107,7 +107,7 @@ export default {
107 .ls-mask { 107 .ls-mask {
108 width: 100%; 108 width: 100%;
109 height: 100%; 109 height: 100%;
110 z-index: 100000; 110 z-index: 100;
111 position: fixed; 111 position: fixed;
112 left: 0; 112 left: 0;
113 top: 0; 113 top: 0;
......
1 <template> 1 <template>
2 <div class="navbar" v-theme.background="mTheme"> 2 <div class="navbar-con">
3 <div class="logo"> 3 <div class="navbar" v-theme.background="mTheme">
4 <img v-if="logo" :src="logo" class="header-logo"> 4 <div class="logo">
5 </div> 5 <img v-if="logo" :src="logo" class="header-logo">
6 <div class="backdrop"> 6 </div>
7 <theme style="float: right;height: 26px;width: 26px;margin-top: 26px;" @change="themeChange" /> 7 <div class="backdrop">
8 </div> 8 <theme style="float: right;height: 26px;width: 26px;margin-top: 26px;" @change="themeChange" />
9 <div class="right-menu"> 9 </div>
10 <el-dropdown class="avatar-container right-menu-item hover-effect" @command="handleCommand"> 10 <div class="right-menu">
11 <div class="avatar-wrapper"> 11 <el-dropdown class="avatar-container right-menu-item hover-effect" @command="handleCommand">
12 <span style="padding-right:10px">{{ name }}</span> 12 <div class="avatar-wrapper">
13 <img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" /> 13 <span style="padding-right:10px">{{ name }}</span>
14 </div> 14 <img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" />
15 <el-dropdown-menu slot="dropdown"> 15 </div>
16 <el-dropdown-item command="a">个人中心</el-dropdown-item> 16 <el-dropdown-menu slot="dropdown">
17 <el-dropdown-item command="f">退出登录</el-dropdown-item> 17 <el-dropdown-item command="a">个人中心</el-dropdown-item>
18 </el-dropdown-menu> 18 <el-dropdown-item command="f">退出登录</el-dropdown-item>
19 </el-dropdown> 19 </el-dropdown-menu>
20 </el-dropdown>
21 </div>
20 </div> 22 </div>
23 <NoticeBar class="NoticeBar" :sendVal="sendVal" />
21 </div> 24 </div>
22 </template> 25 </template>
23 <script> 26 <script>
27 import NoticeBar from '@/components/NoticeBar/index'
24 import { mapGetters } from 'vuex' 28 import { mapGetters } from 'vuex'
25 export default { 29 export default {
30 components: {
31 NoticeBar
32 },
26 computed: { 33 computed: {
27 ...mapGetters(['sidebar', 'avatar', 'name']) 34 ...mapGetters(['sidebar', 'avatar', 'name'])
28 }, 35 },
29 data () { 36 data () {
30 return { 37 return {
31 logo: require('../../image/logo.png') 38 logo: require('../../image/logo.png'),
39 sendVal: [
40 '222222222222222222222222222222222',
41 '222222233333333333333333333333'
42 ]
32 } 43 }
33 }, 44 },
34 methods: { 45 methods: {
...@@ -53,6 +64,15 @@ export default { ...@@ -53,6 +64,15 @@ export default {
53 } 64 }
54 </script> 65 </script>
55 <style lang="scss" scoped> 66 <style lang="scss" scoped>
67 .navbar-con {
68 position: relative;
69 }
70
71 .NoticeBar {
72 position: absolute;
73 bottom: 0;
74 }
75
56 .el-dropdown-menu { 76 .el-dropdown-menu {
57 padding: 0 !important; 77 padding: 0 !important;
58 border: 1px solid #EBEEF5; 78 border: 1px solid #EBEEF5;
......
...@@ -24,6 +24,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -24,6 +24,7 @@ router.beforeEach(async (to, from, next) => {
24 const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData) 24 const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData)
25 router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }]) 25 router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }])
26 const routeTo = Cookies.get('routerTo') 26 const routeTo = Cookies.get('routerTo')
27 console.log(routeTo)
27 if (routeTo && routeTo !== '/') { 28 if (routeTo && routeTo !== '/') {
28 next({ ...to, replace: true }) 29 next({ ...to, replace: true })
29 } else { 30 } else {
......
...@@ -116,23 +116,20 @@ ...@@ -116,23 +116,20 @@
116 .title-block { 116 .title-block {
117 display: inline-block; 117 display: inline-block;
118 position: relative; 118 position: relative;
119 background: #3498db; 119 text-align: left;
120 color: #fff !important; 120 width: 100%;
121 text-align: center; 121 line-height: 26px;
122 padding: 0px 20px; 122 padding-left: 10px;
123 height: 30px; 123 font-size: 16px;
124 line-height: 30px; 124 border-bottom: 1px solid $borderColor;
125 border-radius: 5px 5px 5px 0px;
126 letter-spacing: 2px;
127 } 125 }
128 126
129 .title-block .triangle { 127 .title-block:after {
130 width: 0px; 128 content: " ";
131 height: 0px; 129 width: 0;
130 height: 16px;
132 position: absolute; 131 position: absolute;
133 border: 5px solid transparent; 132 border-left: 3px solid $light-blue;
134 border-top: 5px solid #3498db; 133 left: 0;
135 border-right: 5px solid #3498db; 134 top: 5px;
136 left: 0px;
137 bottom: -10px;
138 } 135 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
16 left: 0; 16 left: 0;
17 z-index: 1001; 17 z-index: 1001;
18 background-color: $subMenuBg; 18 background-color: $subMenuBg;
19 overflow: hidden; 19 // overflow: hidden;
20 20
21 .horizontal-collapse-transition { 21 .horizontal-collapse-transition {
22 transition: 0s width ease-in-out, 0s padding-left ease-in-out, 22 transition: 0s width ease-in-out, 0s padding-left ease-in-out,
...@@ -25,8 +25,9 @@ ...@@ -25,8 +25,9 @@
25 25
26 .scrollbar-wrapper { 26 .scrollbar-wrapper {
27 overflow-x: hidden !important; 27 overflow-x: hidden !important;
28 overflow-y: auto; 28 // overflow-y: auto;
29 margin-right: 0 !important; 29 margin-right: 0 !important;
30 height: 90vh;
30 31
31 &::-webkit-scrollbar { 32 &::-webkit-scrollbar {
32 display: none; 33 display: none;
...@@ -52,7 +53,6 @@ ...@@ -52,7 +53,6 @@
52 background-color: transparent !important; 53 background-color: transparent !important;
53 border: none; 54 border: none;
54 height: 100%; 55 height: 100%;
55 // overflow-y: auto;
56 width: 100% !important; 56 width: 100% !important;
57 } 57 }
58 58
......
1 import Loading from '@/components/loading/index.js'; 1 import Loading from '@/components/Loading/index.js';
2 // 定义 loading 2 // 定义 loading
3 let loading 3 let loading
4 4
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
3 作者:calliope 3 作者:calliope
4 --> 4 -->
5 <template> 5 <template>
6 <lb-table border :column="tableData.columns" :data="tableData.data" :maxHeight="200" heightNumSetting :pagination="false"> 6 <lb-table border :column="tableData.columns" :data="tableData.data" :maxHeight="200" heightNumSetting
7 :pagination="false">
7 </lb-table> 8 </lb-table>
8 </template> 9 </template>
9 <script> 10 <script>
...@@ -40,7 +41,7 @@ export default { ...@@ -40,7 +41,7 @@ export default {
40 } 41 }
41 }, 42 },
42 { 43 {
43 width: '200', 44 width: '150',
44 label: '身份证读卡器', 45 label: '身份证读卡器',
45 render: (h, scope) => { 46 render: (h, scope) => {
46 return ( 47 return (
...@@ -51,7 +52,7 @@ export default { ...@@ -51,7 +52,7 @@ export default {
51 } 52 }
52 }, 53 },
53 { 54 {
54 width: '200', 55 width: '150',
55 prop: 'sqrxm', 56 prop: 'sqrxm',
56 label: '姓名/名称', 57 label: '姓名/名称',
57 render: (h, scope) => { 58 render: (h, scope) => {
...@@ -66,7 +67,7 @@ export default { ...@@ -66,7 +67,7 @@ export default {
66 label: '证件种类', 67 label: '证件种类',
67 render: (h, scope) => { 68 render: (h, scope) => {
68 return ( 69 return (
69 <el-select value={scope.row[scope.column.property]} 70 <el-select class="width100" value={scope.row[scope.column.property]}
70 onChange={(val) => { scope.row[scope.column.property] = val }}> 71 onChange={(val) => { scope.row[scope.column.property] = val }}>
71 { 72 {
72 this.dictData['A30'].map(option => { 73 this.dictData['A30'].map(option => {
......
...@@ -7,6 +7,28 @@ ...@@ -7,6 +7,28 @@
7 justify-content: space-between; 7 justify-content: space-between;
8 } 8 }
9 9
10 .workbench {
11 flex-wrap: wrap;
12 height: 100%;
13
14 li {
15 width: 32.5%;
16 height: 118px;
17 @include flex-center;
18 flex-direction: column;
19 color: #fff;
20
21 i {
22 color: #fff;
23 font-size: 30px;
24 }
25 }
26
27 li:nth-child(1) {
28 margin-bottom: 6px;
29 }
30 }
31
10 .marginZL15 { 32 .marginZL15 {
11 margin: 0 15px; 33 margin: 0 15px;
12 } 34 }
...@@ -36,7 +58,7 @@ ...@@ -36,7 +58,7 @@
36 ul { 58 ul {
37 li { 59 li {
38 line-height: 36px; 60 line-height: 36px;
39 61
40 p { 62 p {
41 white-space: nowrap; 63 white-space: nowrap;
42 } 64 }
......
...@@ -3,8 +3,14 @@ ...@@ -3,8 +3,14 @@
3 <div class="home-left"> 3 <div class="home-left">
4 <el-row :gutter="8"> 4 <el-row :gutter="8">
5 <el-col :span="12"> 5 <el-col :span="12">
6 <el-card shadow="hover"> 6 <el-card shadow="hover" :body-style="{ padding: '0' }">
7 鼠标悬浮时显示 7 <ul class="workbench flexst">
8 <li v-for="(item, index) in newsListData" class="pointer" :key="index"
9 :style="{ backgroundColor: item.color }">
10 <i class="el-icon-s-claim"></i>
11 {{ item.title }}
12 </li>
13 </ul>
8 </el-card> 14 </el-card>
9 </el-col> 15 </el-col>
10 <el-col :span="12"> 16 <el-col :span="12">
...@@ -14,7 +20,7 @@ ...@@ -14,7 +20,7 @@
14 <i class="el-icon-s-unfold pointer"></i> 20 <i class="el-icon-s-unfold pointer"></i>
15 </div> 21 </div>
16 <ul> 22 <ul>
17 <li v-for="(item, index) in notice" :key="index" class="flexst"> 23 <li v-for="(item, index) in notice" :key="index" class="flexst pointer">
18 <p class="list-title">{{ item.title }}</p> 24 <p class="list-title">{{ item.title }}</p>
19 <p class="marginZL15">{{ item.date }}</p> 25 <p class="marginZL15">{{ item.date }}</p>
20 <p>{{ item.state }}</p> 26 <p>{{ item.state }}</p>
...@@ -41,11 +47,11 @@ ...@@ -41,11 +47,11 @@
41 <el-col :span="12"> 47 <el-col :span="12">
42 <el-card shadow="hover"> 48 <el-card shadow="hover">
43 <div slot="header" class="flexst"> 49 <div slot="header" class="flexst">
44 <h5 class="title">公司邮件</h5> 50 <h5 class="title">法律法规</h5>
45 <i class="el-icon-s-unfold pointer"></i> 51 <i class="el-icon-s-unfold pointer"></i>
46 </div> 52 </div>
47 <ul> 53 <ul>
48 <li v-for="(item, index) in mailList" :key="index" class="flexst"> 54 <li v-for="(item, index) in mailList" @click="handleView" :key="index" class="flexst pointer">
49 <p class="right15">{{ item.date }}</p> 55 <p class="right15">{{ item.date }}</p>
50 <p class="list-title">{{ item.title }}</p> 56 <p class="list-title">{{ item.title }}</p>
51 </li> 57 </li>
...@@ -73,6 +79,38 @@ export default { ...@@ -73,6 +79,38 @@ export default {
73 components: { calendar }, 79 components: { calendar },
74 data () { 80 data () {
75 return { 81 return {
82 newsListData: [
83 {
84 icon: '',
85 title: '任务',
86 color: '#61AEFF'
87 },
88 {
89 icon: '',
90 title: '邮件',
91 color: '#43DEB3'
92 },
93 {
94 icon: '',
95 title: '消息',
96 color: '#F3C143'
97 },
98 {
99 icon: '',
100 title: '日历',
101 color: '#F09936'
102 },
103 {
104 icon: '',
105 title: '常用功能',
106 color: '#9C92FF'
107 },
108 {
109 icon: '',
110 title: '申请',
111 color: '#589FFF'
112 }
113 ],
76 chartData: [{ 114 chartData: [{
77 year: '1991', 115 year: '1991',
78 value: 15468 116 value: 15468
...@@ -92,14 +130,11 @@ export default { ...@@ -92,14 +130,11 @@ export default {
92 year: '1996', 130 year: '1996',
93 value: 31056 131 value: 31056
94 }, { 132 }, {
95 year: '1997', 133 year: '1995',
96 value: 31982 134 value: 17000
97 }, {
98 year: '1998',
99 value: 32040
100 }, { 135 }, {
101 year: '1999', 136 year: '1996',
102 value: 33233 137 value: 31056
103 }], 138 }],
104 notice: [ 139 notice: [
105 { 140 {
...@@ -168,6 +203,10 @@ export default { ...@@ -168,6 +203,10 @@ export default {
168 this.buildChart(); 203 this.buildChart();
169 }, 204 },
170 methods: { 205 methods: {
206 handleView () {
207 const href = 'http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf'
208 window.open(href, '_blank');
209 },
171 buildChart () { 210 buildChart () {
172 var chart = new G2.Chart({ 211 var chart = new G2.Chart({
173 container: 'mountNode', 212 container: 'mountNode',
...@@ -204,5 +243,6 @@ export default { ...@@ -204,5 +243,6 @@ export default {
204 } 243 }
205 </script> 244 </script>
206 <style scoped lang="scss"> 245 <style scoped lang="scss">
246 @import "~@/styles/mixin.scss";
207 @import "./index.scss"; 247 @import "./index.scss";
208 </style> 248 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -61,6 +61,7 @@ class data extends filter { ...@@ -61,6 +61,7 @@ class data extends filter {
61 }, 61 },
62 { 62 {
63 label: "操作", 63 label: "操作",
64 width: 100,
64 render: (h, scope) => { 65 render: (h, scope) => {
65 return <el-button type="text" icon='el-icon-view' onClick={() => { vm.dydjbClick(scope) }}>打印登记薄</el-button> 66 return <el-button type="text" icon='el-icon-view' onClick={() => { vm.dydjbClick(scope) }}>打印登记薄</el-button>
66 } 67 }
......
1 <template> 1 <template>
2 <dialogBox title="家庭房产查询" @closeDialog="closeDialog" width="90%" :isButton="false" v-model="myValue"> 2 <dialogBox title="家庭房产查询" @closeDialog="closeDialog" isMain width="70%" :isButton="false" v-model="myValue">
3 <div class="jtfccx-edit"> 3 <div class="jtfccx-edit">
4 <div class="jtfccx-edit-con"> 4 <div class="jtfccx-edit-con">
5 <b class="title">申请信息</b> 5 <b class="title">申请信息</b>
...@@ -24,21 +24,20 @@ ...@@ -24,21 +24,20 @@
24 <personInfoTable @getInfoList="handleGetSqList" :dataList="sqdataList" /> 24 <personInfoTable @getInfoList="handleGetSqList" :dataList="sqdataList" />
25 25
26 <b class="title">权利人</b> 26 <b class="title">权利人</b>
27 <personInfoTable @getInfoList="handleGetQlList" :dataList="qldataList" /> 27 <personInfoTable @getInfoList="handleGetQlList" :dataList="qldataList" />
28 <div class="submit-button"> 28 <div class="submit-button">
29 <el-button type="primary" @click="queryChick()">查询</el-button> 29 <el-button type="primary" @click="queryChick">查询</el-button>
30 <el-button @click="resetClick()">重置</el-button> 30 <el-button @click="resetClick">重置</el-button>
31 </div> 31 </div>
32 <b class="title">查询结果</b> 32 <b class="title" v-if="isSearch">查询结果</b>
33 <!-- <p>查询编号:{{cxbh}}</p> --> 33 <lb-table :column="searchData.columns" v-if="isSearch" :data="searchData.data" :maxHeight="200" heightNumSetting
34 <lb-table :column="searchData.columns" border :data="searchData.data" :maxHeight="200" heightNumSetting
35 :pagination="false"> 34 :pagination="false">
36 </lb-table> 35 </lb-table>
37 </div> 36 </div>
38 37
39 <div class="submit-button" style="padding-bottom:20px"> 38 <div class="submit-button" v-if="isSearch" style="padding-bottom:20px">
40 <el-button type="primary">无房证明打印(1)</el-button> 39 <el-button type="primary" v-if="searchData.data.length > 0">房产结果打印(1)</el-button>
41 <el-button type="primary">房产结果打印(1)</el-button> 40 <el-button type="primary" v-else>无房证明打印(1)</el-button>
42 <el-button @click="closeDialog">关闭</el-button> 41 <el-button @click="closeDialog">关闭</el-button>
43 </div> 42 </div>
44 </div> 43 </div>
...@@ -57,10 +56,9 @@ export default { ...@@ -57,10 +56,9 @@ export default {
57 props: { 56 props: {
58 value: { type: Boolean, default: false }, 57 value: { type: Boolean, default: false },
59 }, 58 },
60 mounted() { 59 mounted () {
61 sendThis(this); 60 sendThis(this);
62 }, 61 },
63
64 data () { 62 data () {
65 return { 63 return {
66 myValue: this.value, 64 myValue: this.value,
...@@ -69,6 +67,7 @@ export default { ...@@ -69,6 +67,7 @@ export default {
69 ycyrgx: 1, 67 ycyrgx: 1,
70 cxlx: '1' //查询类型 1:房产查询 2:登记簿查询 68 cxlx: '1' //查询类型 1:房产查询 2:登记簿查询
71 }, 69 },
70 isSearch: false,
72 dataList: [{ 71 dataList: [{
73 sqrxm: '', 72 sqrxm: '',
74 sqrzjlxbm: '', 73 sqrzjlxbm: '',
...@@ -129,16 +128,12 @@ export default { ...@@ -129,16 +128,12 @@ export default {
129 this.addJtfc.qlrxx = val 128 this.addJtfc.qlrxx = val
130 } 129 }
131 }, 130 },
132 queryChick () { 131 queryChick () {
133 this.addJtfc.djSqcxDO = { ...this.ruleForm } 132 this.addJtfc.djSqcxDO = { ...this.ruleForm }
134 // this.$message({
135 // type: 'success',
136 // message: '删除成功!'
137 // });
138
139 addJtfcCxjgXx(this.addJtfc).then(res => { 133 addJtfcCxjgXx(this.addJtfc).then(res => {
140 this.searchData.data = res.result; 134 this.searchData.data = res.result;
141 console.log(res); 135 console.log(res);
136 this.isSearch = true
142 }) 137 })
143 }, 138 },
144 resetClick () { 139 resetClick () {
...@@ -148,12 +143,12 @@ export default { ...@@ -148,12 +143,12 @@ export default {
148 handleRead (row) { }, 143 handleRead (row) { },
149 144
150 //抵押 145 //抵押
151 dyClick(){ 146 dyClick () {
152 147
153 }, 148 },
154 149
155 //查封 150 //查封
156 cfClick(){ 151 cfClick () {
157 152
158 } 153 }
159 } 154 }
...@@ -162,6 +157,7 @@ export default { ...@@ -162,6 +157,7 @@ export default {
162 <style scoped lang="scss"> 157 <style scoped lang="scss">
163 @import "~@/styles/mixin.scss"; 158 @import "~@/styles/mixin.scss";
164 @import "~@/styles/public.scss"; 159 @import "~@/styles/public.scss";
160
165 .title { 161 .title {
166 padding-bottom: 10px; 162 padding-bottom: 10px;
167 margin-bottom: 10px; 163 margin-bottom: 10px;
......
...@@ -61,7 +61,6 @@ class data extends filter { ...@@ -61,7 +61,6 @@ class data extends filter {
61 { 61 {
62 62
63 label: '登记状态', 63 label: '登记状态',
64 width: '150',
65 align: 'center', 64 align: 'center',
66 fixed: 'right', 65 fixed: 'right',
67 render: (h, scope) => { 66 render: (h, scope) => {
...@@ -69,9 +68,7 @@ class data extends filter { ...@@ -69,9 +68,7 @@ class data extends filter {
69 <div> 68 <div>
70 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { this.dyClick(scope) }}>抵押</el-button> 69 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { this.dyClick(scope) }}>抵押</el-button>
71 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { this.cfClick(scope) }}>查封</el-button> 70 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { this.cfClick(scope) }}>查封</el-button>
72
73 </div> 71 </div>
74
75 ) 72 )
76 } 73 }
77 } 74 }
......
...@@ -81,8 +81,18 @@ export default { ...@@ -81,8 +81,18 @@ export default {
81 handleAdd () { 81 handleAdd () {
82 this.isDialog = true; 82 this.isDialog = true;
83 }, 83 },
84 }, 84 handleViewClick (scope) {
85 }; 85 var sqcxBsm = scope.row.bsmSqcx;
86 this.$popup("申请查询记录", "sqcx/sqcxjl/components/sqcxjlInfo", {
87 formData: {
88 sqcxBsm: sqcxBsm,
89 },
90 cancel: function () { }, //取消事件的回调
91 confirm: function () { },
92 });
93 }
94 }
95 }
86 </script> 96 </script>
87 <style scoped lang="scss"> 97 <style scoped lang="scss">
88 @import "~@/styles/public.scss"; 98 @import "~@/styles/public.scss";
......
...@@ -69,6 +69,13 @@ class data extends filter { ...@@ -69,6 +69,13 @@ class data extends filter {
69 { 69 {
70 prop: "cxyt", 70 prop: "cxyt",
71 label: "查询用途" 71 label: "查询用途"
72 },
73 {
74 label: "操作",
75 width: 80,
76 render: (h, scope) => {
77 return <el-button type="text" icon='el-icon-view' onClick={() => { vm.handleViewClick(scope) }}>查看</el-button>
78 }
72 } 79 }
73 ] 80 ]
74 } 81 }
......
1 <template> 1 <template>
2 <div > 2 <div>
3 <el-form :model="ruleForm" label-width="120px"> 3 <el-form :model="ruleForm" label-width="120px">
4 <el-row> 4 <el-row>
5 <el-col :span="24" style="margin-bottom: 15px"> 5 <el-col :span="24" style="margin-bottom: 15px">
...@@ -29,14 +29,8 @@ ...@@ -29,14 +29,8 @@
29 29
30 <el-row> 30 <el-row>
31 <el-col> 31 <el-col>
32 <lb-table 32 <lb-table :column="sqrData.columns" border :data="sqrData.data" :maxHeight="200" heightNumSetting
33 :column="sqrData.columns" 33 :pagination="false">
34 border
35 :data="sqrData.data"
36 :maxHeight="200"
37 heightNumSetting
38 :pagination="false"
39 >
40 </lb-table> 34 </lb-table>
41 </el-col> 35 </el-col>
42 </el-row> 36 </el-row>
...@@ -51,14 +45,8 @@ ...@@ -51,14 +45,8 @@
51 </el-row> 45 </el-row>
52 <el-row> 46 <el-row>
53 <el-col> 47 <el-col>
54 <lb-table 48 <lb-table :column="qlrData.columns" border :data="qlrData.data" :maxHeight="200" heightNumSetting
55 :column="qlrData.columns" 49 :pagination="false">
56 border
57 :data="qlrData.data"
58 :maxHeight="200"
59 heightNumSetting
60 :pagination="false"
61 >
62 </lb-table> 50 </lb-table>
63 </el-col> 51 </el-col>
64 </el-row> 52 </el-row>
...@@ -73,19 +61,13 @@ ...@@ -73,19 +61,13 @@
73 </el-row> 61 </el-row>
74 <el-row> 62 <el-row>
75 <el-col> 63 <el-col>
76 <p>查询编号:{{cxbh}}</p> 64 <p>查询编号:{{ cxbh }}</p>
77 </el-col> 65 </el-col>
78 </el-row> 66 </el-row>
79 <el-row> 67 <el-row>
80 <el-col> 68 <el-col>
81 <lb-table 69 <lb-table :column="cxjgData.columns" :data="cxjgData.data" :maxHeight="200" heightNumSetting
82 border 70 :pagination="false">
83 :column="cxjgData.columns"
84 :data="cxjgData.data"
85 :maxHeight="200"
86 heightNumSetting
87 :pagination="false"
88 >
89 </lb-table> 71 </lb-table>
90 </el-col> 72 </el-col>
91 </el-row> 73 </el-row>
...@@ -104,12 +86,12 @@ export default { ...@@ -104,12 +86,12 @@ export default {
104 // }, 86 // },
105 props: ["formData"], 87 props: ["formData"],
106 88
107 created() { 89 created () {
108 // debugger; 90 // debugger;
109 // alert(this.formData.sqcxBsm); 91 // alert(this.formData.sqcxBsm);
110 }, 92 },
111 93
112 data() { 94 data () {
113 return { 95 return {
114 ruleForm: { 96 ruleForm: {
115 cxyt: "", 97 cxyt: "",
...@@ -134,8 +116,7 @@ export default { ...@@ -134,8 +116,7 @@ export default {
134 }; 116 };
135 }, 117 },
136 118
137 mounted() { 119 mounted () {
138 debugger;
139 sendThis(this); 120 sendThis(this);
140 var sqcxBsm = this.formData.sqcxBsm; 121 var sqcxBsm = this.formData.sqcxBsm;
141 122
...@@ -145,19 +126,17 @@ export default { ...@@ -145,19 +126,17 @@ export default {
145 this.sqrData.data = res.result.sqxx; 126 this.sqrData.data = res.result.sqxx;
146 this.qlrData.data = res.result.qlrxx; 127 this.qlrData.data = res.result.qlrxx;
147 this.cxjgData.data = res.result.djSqcxCxjgDOList; 128 this.cxjgData.data = res.result.djSqcxCxjgDOList;
148 this.cxbh=res.result.djSqcxDO.cxbh; 129 this.cxbh = res.result.djSqcxDO.cxbh;
149 130
150 } 131 }
151 }) 132 })
152 .catch((error) => { 133 .catch((error) => {
153 console.log(error); 134 console.log(error);
154 }); 135 })
155 }, 136 },
156
157 methods: {}, 137 methods: {},
158 }; 138 };
159 </script> 139 </script>
160 <style scoped lang="scss"> 140 <style scoped lang="scss">
161 @import "~@/styles/mixin.scss"; 141 @import "~@/styles/mixin.scss";
162
163 </style> 142 </style>
......
...@@ -8,7 +8,7 @@ class data extends filter { ...@@ -8,7 +8,7 @@ class data extends filter {
8 constructor() { 8 constructor() {
9 super() 9 super()
10 } 10 }
11 cxjgcolumns() { 11 cxjgcolumns () {
12 return [ 12 return [
13 { 13 {
14 prop: 'qszt', 14 prop: 'qszt',
...@@ -73,7 +73,6 @@ class data extends filter { ...@@ -73,7 +73,6 @@ class data extends filter {
73 { 73 {
74 74
75 label: '登记状态', 75 label: '登记状态',
76 width: '150',
77 align: 'center', 76 align: 'center',
78 fixed: 'right', 77 fixed: 'right',
79 render: (h, scope) => { 78 render: (h, scope) => {
...@@ -86,7 +85,7 @@ class data extends filter { ...@@ -86,7 +85,7 @@ class data extends filter {
86 } 85 }
87 ] 86 ]
88 } 87 }
89 sqrcolumns() { 88 sqrcolumns () {
90 return [ 89 return [
91 { 90 {
92 prop: 'sqrxm', 91 prop: 'sqrxm',
...@@ -107,7 +106,7 @@ class data extends filter { ...@@ -107,7 +106,7 @@ class data extends filter {
107 ] 106 ]
108 } 107 }
109 108
110 qlrcolumns() { 109 qlrcolumns () {
111 return [ 110 return [
112 { 111 {
113 prop: 'sqrxm', 112 prop: 'sqrxm',
......
...@@ -78,7 +78,6 @@ export default { ...@@ -78,7 +78,6 @@ export default {
78 handleViewClick (scope) { 78 handleViewClick (scope) {
79 var sqcxBsm = scope.row.bsmSqcx; 79 var sqcxBsm = scope.row.bsmSqcx;
80 this.$popup("申请查询记录", "sqcx/sqcxjl/components/sqcxjlInfo", { 80 this.$popup("申请查询记录", "sqcx/sqcxjl/components/sqcxjlInfo", {
81 height: "800px",
82 formData: { 81 formData: {
83 sqcxBsm: sqcxBsm, 82 sqcxBsm: sqcxBsm,
84 }, 83 },
......
...@@ -65,10 +65,11 @@ class data extends filter { ...@@ -65,10 +65,11 @@ class data extends filter {
65 }, 65 },
66 { 66 {
67 label: "操作", 67 label: "操作",
68 width: 80,
68 render: (h, scope) => { 69 render: (h, scope) => {
69 return <el-button type="text" icon='el-icon-view' onClick={() => { vm.handleViewClick(scope) }}>查看</el-button> 70 return <el-button type="text" icon='el-icon-view' onClick={() => { vm.handleViewClick(scope) }}>查看</el-button>
70 } 71 }
71 }, 72 }
72 ] 73 ]
73 } 74 }
74 } 75 }
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
35 </template> 35 </template>
36 <script> 36 <script>
37 import table from "@/utils/mixin/table"; 37 import table from "@/utils/mixin/table";
38 import { getCertificateList } from "@/api/fqsq.js"; 38 import { getCertificateList } from "@/api/bdcqz.js";
39 import { datas } from "../javascript/fzxxdata"; 39 import { datas } from "../javascript/fzxxdata";
40 export default { 40 export default {
41 mixins: [table], 41 mixins: [table],
...@@ -60,10 +60,10 @@ export default { ...@@ -60,10 +60,10 @@ export default {
60 methods: { 60 methods: {
61 // 列表渲染接口 61 // 列表渲染接口
62 fetchData () { 62 fetchData () {
63 this.ruleForm.bsmSldy = this.$parent.unitData[0].bsmSldy 63 this.ruleForm.bsmSldy = this.$parent.unitData[0].bsmSldy;
64 getCertificateList(this.ruleForm).then(res => { 64 getCertificateList(this.ruleForm).then(res => {
65 if (res.code === 200) { 65 if (res.code === 200) {
66 this.tableData.data = res.result 66 this.tableData.data = res.result;
67 } 67 }
68 }) 68 })
69 } 69 }
......
1 <template> 1 <template>
2 <div class="szxx"> 2 <div class="szxx">
3 <el-card class="box-card" v-for="(item,index) in tableData" :key="index"> 3 <el-card class="box-card" v-for="(item, index) in tableData" :key="index">
4 <div slot="header" class="szxx_header"> 4 <div slot="header" class="szxx_header">
5 <span class="header_type">{{item.bdcqzlx == 1 ? '不动产权证书' : '不动产登记证明'}}</span> 5 <span class="header_type">{{
6 <div class="header_text">{{item.bdcqzh}}</div> 6 item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明"
7 </div> 7 }}</span>
8 <div class="szxx_body card_padding"> 8 <div class="header_text">{{ item.bdcqzh }}</div>
9 <div class="text color_iray"> 9 </div>
10 <span>{{item.qllxmc}}</span> 10 <div class="szxx_body card_padding">
11 </div> 11 <div class="text color_iray">
12 <div class="text color_red"> 12 <span>{{ item.qllxmc }}</span>
13 <span>{{item.qlr}}</span> 13 </div>
14 </div> 14 <div class="text color_red">
15 <div class="text color_iray"> 15 <span>{{ item.qlr }}</span>
16 <span>{{item.gyfs == 1 ? '单独所有' : item.gyfs == 2 ? '共同共有' : '按份所有'}}</span> 16 </div>
17 </div> 17 <div class="text color_iray">
18 <div class="text color_red"> 18 <span>{{
19 <span>{{item.bdcdyh}}</span> 19 item.gyqk
20 </div> 20 }}</span>
21 <div class="text color_iray"> 21 </div>
22 <span>{{item.yt}}</span> 22 <div class="text color_red">
23 </div> 23 <span>{{ item.bdcdyh }}</span>
24 <div class="text color_red"> 24 </div>
25 <span>{{item.mj}}</span> 25 <div class="text color_iray">
26 </div> 26 <span>{{ item.yt }}</span>
27 <div class="text color_iray"> 27 </div>
28 <span>{{item.syqx}}</span> 28 <div class="text color_red">
29 </div> 29 <span>{{ item.mj }}</span>
30 <div v-if="item.ysxlh"> 30 </div>
31 <div class="top_line middle_margin"></div> 31 <div class="text color_iray">
32 <div class="text color_iray"> 32 <span>{{ item.syqx }}</span>
33 <span>印刷序列号:{{item.ysxlh}}</span> 33 </div>
34 </div> 34 <div v-if="item.ysxlh">
35 </div> 35 <div class="top_line middle_margin"></div>
36 </div> 36 <div class="text color_iray">
37 <div class="card_padding"> 37 <span>印刷序列号:{{ item.ysxlh }}</span>
38 <div class="top_line middle_margin"></div> 38 </div>
39 <div class="text" v-if="item.bsmSz"> 39 </div>
40 <el-button class="operation_button" type="text" @click="openZsylDialog(item,1)">证书预览</el-button> 40 </div>
41 <el-button class="operation_button" type="text" @click="openInvalidDiglog(item)">再次打印({{item.szcs}})</el-button> 41 <div class="card_padding">
42 </div> 42 <div class="top_line middle_margin"></div>
43 <div class="text" v-else> 43 <div class="text" v-if="item.ysxlh">
44 <el-button class="operation_button" type="text" @click="openZsylDialog(item,2)">证书打印({{item.szcs}}</el-button> 44 <el-button
45 </div> 45 class="operation_button"
46 </div> 46 type="text"
47 </el-card> 47 @click="openZsylDialog(item, 1)"
48 <el-dialog title="证书打印" :visible.sync="invalidDiglog" width="30%" :modal-append-to-body='false' top='30vh'> 48 >证书预览</el-button
49 <div class="invalid-diglog"> 49 >
50 <div class="invalid-title"> 50 <el-button
51 <i class="el-icon-question invalid-icon"></i> 51 class="operation_button"
52 <div class="invalid-body">您确定作废证书并再次打印?</div> 52 type="text"
53 </div> 53 @click="openInvalidDiglog(item)"
54 <div class="invalid-reson">作废原因:</div> 54 >再次打印({{ item.szcs }})</el-button
55 <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input> 55 >
56 <div class="dialog-footer"> 56 </div>
57 <el-button @click="closeInvalidDiglog()">取 消</el-button> 57 <div class="text" v-else>
58 <el-button type="primary" @click="confirmInvalid()">确 定</el-button> 58 <el-button
59 </div> 59 class="operation_button"
60 </div> 60 type="text"
61 </el-dialog> 61 @click="openZsylDialog(item, 2)"
62 <el-empty description="暂无数据" v-if="tableData.length==0"></el-empty> 62 >证书打印({{ item.szcs }}</el-button
63 </div> 63 >
64 </div>
65 </div>
66 </el-card>
67 <el-dialog
68 title="证书打印"
69 :visible.sync="invalidDiglog"
70 width="30%"
71 :modal-append-to-body="false"
72 top="30vh"
73 >
74 <div class="invalid-diglog">
75 <div class="invalid-title">
76 <i class="el-icon-question invalid-icon"></i>
77 <div class="invalid-body">您确定作废证书并再次打印?</div>
78 </div>
79 <div class="invalid-reson">作废原因:</div>
80 <el-input
81 v-model="zfyy"
82 placeholder="请输入作废原因"
83 type="textarea"
84 :rows="4"
85 ></el-input>
86 <div class="dialog-footer">
87 <el-button @click="closeInvalidDiglog()">取 消</el-button>
88 <el-button type="primary" @click="confirmInvalid()">确 定</el-button>
89 </div>
90 </div>
91 </el-dialog>
92 <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
93 </div>
64 </template> 94 </template>
65 <script> 95 <script>
66 import { getBdcqzList, invalidCertificate } from "@/api/fqsq.js"; 96 import { getSlsqBdcqzList, invalidCertificate } from "@/api/fqsq.js";
67 97
68 export default { 98 export default {
69 components: { }, 99 components: {},
70 props: { 100 props: {},
71 }, 101 data() {
72 data () { 102 return {
73 return { 103 tableData: [],
74 tableData: [], 104 bdcqzlx: 1,
75 bdcqzlx: 1, 105 bdcqz: {},
76 bdcqz: {}, 106 zfyy: "",
77 zfyy: '', 107 invalidDiglog: false,
78 invalidDiglog: false, 108 bsmSz: "",
79 bsmSz: '', 109 };
80 }; 110 },
81 }, 111 created() {
82 created () { 112 this.list();
83 this.list(); 113 },
84 }, 114 methods: {
85 methods: { 115 //初始化列表
86 //初始化列表 116 list() {
87 list () { 117 // var bsmSldy = this.$parent.unitData[0].bsmSldy;
88 var bsmSldy = this.$parent.unitData[0].bsmSldy 118 var bsmSlsq = this.$route.query.bsmSlsq;
89 getBdcqzList({ bsmSldy: bsmSldy }).then(res => { 119 getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => {
90 if (res.code === 200) { 120 if (res.code === 200) {
91 this.tableData = res.result 121 this.tableData = res.result;
92 if (res.result) { 122 if (res.result) {
93 this.bdcqz = res.result[0] 123 this.bdcqz = res.result[0];
94 } 124 }
95 } 125 }
96 }) 126 });
97 }, 127 },
98 //打开证书预览弹窗 128 //打开证书预览弹窗
99 openZsylDialog (item, type) { 129 openZsylDialog(item, type) {
100 let that = this; 130 let that = this;
101 if(type == 1){ 131 if (type == 1) {
102 //证书预览 132 //证书预览
103 this.$popup("证书预览","workflow/components/zsyl",{ 133 this.$popup("证书预览", "workflow/components/zsyl", {
104 height: '650px', 134 height: "650px",
105 width: "800px", 135 width: "800px",
106 formData: { 136 formData: {
107 bdcqz: item 137 bdcqz: item,
108 }, 138 },
109 btnShow: false, 139 btnShow: false,
110 cancel: () => { 140 cancel: () => {
111 console.log("取消回调"); 141 console.log("取消回调");
112 }, 142 },
113 confirm: () => { 143 confirm: () => {
114 console.log("取消回调"); 144 console.log("取消回调");
115 }, 145 },
116 }) 146 });
117 }else{ 147 } else {
118 //证书打印 148 //证书打印
119 this.$popup("证书打印","workflow/components/zsdy",{ 149 this.$popup("证书打印", "workflow/components/zsdy", {
120 height: '700px', 150 height: "700px",
121 width: "800px", 151 width: "800px",
122 formData: { 152 formData: {
123 bsmSlsq: this.bsmSlsq, 153 bsmSlsq: this.bsmSlsq,
124 bdcqz: item 154 bdcqz: item,
125 }, 155 },
126 btnShow: true, 156 btnShow: true,
127 confirmText: '打印证书', 157 confirmText: "打印证书",
128 cancel: () => { 158 cancel: () => {
129 console.log("取消回调"); 159 console.log("取消回调");
130 }, 160 },
131 confirm: () => { 161 confirm: () => {
132 that.list(); 162 that.list();
133 }, 163 },
134 }) 164 });
135 }
136 },
137 //再次打印
138 openInvalidDiglog (item) {
139 this.bsmSz = item.bsmSz;
140 this.invalidDiglog = true
141 },
142 closeInvalidDiglog () {
143 this.invalidDiglog = false
144 this.bsmSz = '';
145 this.zfyy = '';
146 },
147 //作废缮证信息
148 confirmInvalid () {
149 invalidCertificate({ "bsmSz": this.bsmSz, "zfyy": this.zfyy }).then(res => {
150 if (res.code === 200) {
151 this.list();
152 this.$message.success('作废成功');
153 this.invalidDiglog = false;
154 this.openZsylDialog(this.bdcqz);
155 } else {
156 this.$message.error(res.message);
157 }
158 })
159 } 165 }
160 } 166 },
167 //再次打印
168 openInvalidDiglog(item) {
169 this.bsmSz = item.bsmSz;
170 this.invalidDiglog = true;
171 },
172 closeInvalidDiglog() {
173 this.invalidDiglog = false;
174 this.bsmSz = "";
175 this.zfyy = "";
176 },
177 //作废缮证信息
178 confirmInvalid() {
179 invalidCertificate({ bsmSz: this.bsmSz, zfyy: this.zfyy }).then((res) => {
180 if (res.code === 200) {
181 this.list();
182 this.$message.success("作废成功");
183 this.invalidDiglog = false;
184 this.openZsylDialog(this.bdcqz);
185 } else {
186 this.$message.error(res.message);
187 }
188 });
189 },
190 },
161 }; 191 };
162 </script> 192 </script>
163 <style scoped lang='scss'> 193 <style scoped lang='scss'>
164 @import "~@/styles/public.scss"; 194 @import "~@/styles/public.scss";
165 195
166 .szxx { 196 .szxx {
167 box-sizing: border-box; 197 box-sizing: border-box;
168 padding-right: 15px; 198 padding-right: 15px;
169 width: 100%; 199 width: 100%;
170 height: 600px; 200 height: 600px;
171 overflow-y: scroll; 201 overflow-y: scroll;
172 202
173 .box-card { 203 .box-card {
174 float: left; 204 float: left;
175 width: 300px; 205 width: 300px;
176 margin-top: 10px; 206 margin-top: 10px;
177 margin-right: 10px; 207 margin-right: 10px;
178 208
179 .szxx_body { 209 .szxx_body {
180 height: 240px; 210 height: 240px;
181 } 211 }
182 } 212 }
183 } 213 }
184 214
185 .szxx_header { 215 .szxx_header {
186 color: #ffffff; 216 color: #ffffff;
187 font-weight: bolder; 217 font-weight: bolder;
188 font-size: 16px; 218 font-size: 16px;
189 219
190 .header_type { 220 .header_type {
191 display: flex; 221 display: flex;
192 justify-content: center; 222 justify-content: center;
193 align-content: center; 223 align-content: center;
194 } 224 }
195 225
196 .header_text { 226 .header_text {
197 text-align: center; 227 text-align: center;
198 margin-top: 10px; 228 margin-top: 10px;
199 line-height: 30px; 229 line-height: 30px;
200 } 230 }
201 } 231 }
202 232
203 .top_line { 233 .top_line {
204 border-top: 2px solid rgb(222, 222, 222); 234 border-top: 2px solid rgb(222, 222, 222);
205 } 235 }
206 236
207 .text { 237 .text {
208 margin-bottom: 10px; 238 margin-bottom: 10px;
209 text-align: center; 239 text-align: center;
210 } 240 }
211 241
212 .color_iray { 242 .color_iray {
213 color: rgb(153, 153, 153); 243 color: rgb(153, 153, 153);
214 } 244 }
215 245
216 .color_red { 246 .color_red {
217 color: rgb(255, 89, 24); 247 color: rgb(255, 89, 24);
218 } 248 }
219 249
220 .middle_margin { 250 .middle_margin {
221 margin-bottom: 10px; 251 margin-bottom: 10px;
222 } 252 }
223 253
224 .operation_button { 254 .operation_button {
225 border: 1px solid rgb(0, 121, 254); 255 border: 1px solid rgb(0, 121, 254);
226 padding: 5px; 256 padding: 5px;
227 text-align: center; 257 text-align: center;
228 } 258 }
229 259
230 .card_padding { 260 .card_padding {
231 padding-top: 8px 261 padding-top: 8px;
232 } 262 }
233 263
234 .invalid-diglog { 264 .invalid-diglog {
235 padding-bottom: 20px; 265 padding-bottom: 20px;
236 font-size: 16px; 266 font-size: 16px;
237 font-weight: bold; 267 font-weight: bold;
238 color: rgb(99, 99, 99); 268 color: rgb(99, 99, 99);
239 269
240 .invalid-title { 270 .invalid-title {
241 display: flex; 271 display: flex;
242 align-content: center; 272 align-content: center;
243
244 .invalid-icon {
245 color: rgb(254, 148, 0);
246 font-size: 34px;
247 margin-right: 10px;
248 }
249 273
250 .invalid-body { 274 .invalid-icon {
251 line-height: 40px; 275 color: rgb(254, 148, 0);
252 margin-bottom: 10px; 276 font-size: 34px;
253 } 277 margin-right: 10px;
254 } 278 }
255 279
256 .invalid-reson { 280 .invalid-body {
281 line-height: 40px;
257 margin-bottom: 10px; 282 margin-bottom: 10px;
258 } 283 }
284 }
285
286 .invalid-reson {
287 margin-bottom: 10px;
288 }
259 289
260 .dialog-footer { 290 .dialog-footer {
261 margin-top: 10px; 291 margin-top: 10px;
262 display: flex; 292 display: flex;
263 justify-content: flex-end; 293 justify-content: flex-end;
264 } 294 }
265 } 295 }
266 296
267 /deep/.el-card__header { 297 /deep/.el-card__header {
268 background-color: rgb(198, 67, 83); 298 background-color: rgb(198, 67, 83);
269 } 299 }
270 300
271 /deep/.el-card__body { 301 /deep/.el-card__body {
272 padding: 0px 302 padding: 0px;
273 } 303 }
274 </style> 304 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
36 </div> 36 </div>
37 <div class="zsyl-right"> 37 <div class="zsyl-right">
38 <div class="zsyl-title">附记</div> 38 <div class="zsyl-title">附记</div>
39 <div class="zsyl-text"></div> 39 <div class="zsyl-text"> {{ bdcqz.fj }}</div>
40 </div> 40 </div>
41 </div> 41 </div>
42 </div> 42 </div>
...@@ -94,17 +94,7 @@ export default { ...@@ -94,17 +94,7 @@ export default {
94 }, 94 },
95 //获取证书内容 95 //获取证书内容
96 getRowValue(code){ 96 getRowValue(code){
97 var value = this.bdcqz[code] 97 var value = this.bdcqz[code];
98 if(code == 'gyqk'){
99 switch(value){
100 case '1':
101 return '单独所有';
102 case '2':
103 return '共同共有';
104 case '3':
105 return '按份所有';
106 }
107 }
108 return value; 98 return value;
109 }, 99 },
110 //打印证书 100 //打印证书
......
...@@ -28,10 +28,10 @@ export function getForm(tabName, djywbm) { ...@@ -28,10 +28,10 @@ export function getForm(tabName, djywbm) {
28 break; 28 break;
29 case "nydsyqslxx100": 29 case "nydsyqslxx100":
30 form = require("@/views/ywbl/nydsyq/slxx.vue"); 30 form = require("@/views/ywbl/nydsyq/slxx.vue");
31 break; 31 break;
32 case "nydsyqslxx200": 32 case "nydsyqslxx200":
33 form = require("@/views/ywbl/nydsyq/slxx200.vue"); 33 form = require("@/views/ywbl/nydsyq/slxx200.vue");
34 break; 34 break;
35 case "tdslxxCfdj": 35 case "tdslxxCfdj":
36 form = require("@/views/ywbl/cfdj/tdslxx.vue"); 36 form = require("@/views/ywbl/cfdj/tdslxx.vue");
37 break; 37 break;
...@@ -50,6 +50,12 @@ export function getForm(tabName, djywbm) { ...@@ -50,6 +50,12 @@ export function getForm(tabName, djywbm) {
50 case "zdjbxx": 50 case "zdjbxx":
51 form = require("@/views/registerBook/zdjbxx.vue"); 51 form = require("@/views/registerBook/zdjbxx.vue");
52 break; 52 break;
53 case "ygmm100":
54 form=require("@/views/ywbl/ygdj/slxx.vue");
55 break;
56 case "ygmm300":
57 form=require("@/views/ywbl/fdcq2/slxx.vue");
58 break;
53 case "cfdjxx": 59 case "cfdjxx":
54 form = require("@/views/registerBook/cfdj.vue"); 60 form = require("@/views/registerBook/cfdj.vue");
55 break; 61 break;
......
...@@ -8,7 +8,7 @@ class data extends filter { ...@@ -8,7 +8,7 @@ class data extends filter {
8 constructor() { 8 constructor() {
9 super() 9 super()
10 } 10 }
11 columns () { 11 columns() {
12 return [ 12 return [
13 { 13 {
14 label: '序号', 14 label: '序号',
...@@ -33,7 +33,14 @@ class data extends filter { ...@@ -33,7 +33,14 @@ class data extends filter {
33 }, 33 },
34 { 34 {
35 prop: "ywrmc", 35 prop: "ywrmc",
36 label: "义务人" 36 label: "义务人",
37 render: (h, scope) => {
38 if (scope.row.bdcqzh=="") {
39 return <div>{scope.row.ywrmc}</div>
40 } else{
41 return <div>{scope.row.ywrmc}</div>
42 }
43 }
37 }, 44 },
38 { 45 {
39 prop: "mj", 46 prop: "mj",
......
...@@ -85,6 +85,9 @@ ...@@ -85,6 +85,9 @@
85 padding-left: 5px !important; 85 padding-left: 5px !important;
86 } 86 }
87 87
88 /deep/.el-menu {
89 border-right: none;
90 }
88 91
89 92
90 /deep/.el-menu-item.is-active { 93 /deep/.el-menu-item.is-active {
......
...@@ -318,10 +318,8 @@ export default { ...@@ -318,10 +318,8 @@ export default {
318 }) 318 })
319 break; 319 break;
320 case "B7": 320 case "B7":
321 this.$popup({ 321 this.$popup("证书领取", "workflow/components/zslq",{
322 title: "证书领取", 322 height: "700px",
323 editItem: "workflow/components/zslq",
324 height: "500px",
325 formData: {}, 323 formData: {},
326 btnShow: true, 324 btnShow: true,
327 cancel: () => { 325 cancel: () => {
......
...@@ -8,11 +8,6 @@ ...@@ -8,11 +8,6 @@
8 <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> 8 <el-form :model="ruleForm" ref="ruleForm" label-width="100px">
9 <el-row> 9 <el-row>
10 <el-col :span="8"> 10 <el-col :span="8">
11 <el-form-item label="业务来源" prop="ywlymc">
12 <el-input v-model="ruleForm.ywlymc"></el-input>
13 </el-form-item>
14 </el-col>
15 <el-col :span="8">
16 <el-form-item label="申请业务名称" prop="sqywmc"> 11 <el-form-item label="申请业务名称" prop="sqywmc">
17 <el-input v-model="ruleForm.sqywmc"></el-input> 12 <el-input v-model="ruleForm.sqywmc"></el-input>
18 </el-form-item> 13 </el-form-item>
...@@ -22,13 +17,13 @@ ...@@ -22,13 +17,13 @@
22 <el-input v-model="ruleForm.qlrmc"></el-input> 17 <el-input v-model="ruleForm.qlrmc"></el-input>
23 </el-form-item> 18 </el-form-item>
24 </el-col> 19 </el-col>
25 </el-row>
26 <el-row>
27 <el-col :span="8"> 20 <el-col :span="8">
28 <el-form-item label="义务人" prop="ywrmc"> 21 <el-form-item label="义务人" prop="ywrmc">
29 <el-input v-model="ruleForm.ywrmc"></el-input> 22 <el-input v-model="ruleForm.ywrmc"></el-input>
30 </el-form-item> 23 </el-form-item>
31 </el-col> 24 </el-col>
25 </el-row>
26 <el-row>
32 <el-col :span="8"> 27 <el-col :span="8">
33 <el-form-item label="受理时间" prop="slsj"> 28 <el-form-item label="受理时间" prop="slsj">
34 <el-date-picker v-model="ruleForm.slsj" value-format="yyyy-MM-dd" class="width100" type="date" 29 <el-date-picker v-model="ruleForm.slsj" value-format="yyyy-MM-dd" class="width100" type="date"
...@@ -55,7 +50,6 @@ export default { ...@@ -55,7 +50,6 @@ export default {
55 return { 50 return {
56 myValue: this.value, 51 myValue: this.value,
57 ruleForm: { 52 ruleForm: {
58 ywlymc: '',
59 sqywmc: '', 53 sqywmc: '',
60 qlrmc: '', 54 qlrmc: '',
61 ywrmc: '', 55 ywrmc: '',
......
1 <template> 1 <template>
2 <div class="from-clues"> 2 <div class="from-clues">
3 <!-- 表单部分 -->
4 <div class="from-clues-header"> 3 <div class="from-clues-header">
5 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="80px"> 4 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="80px">
6 <el-row> 5 <el-row>
...@@ -57,7 +56,7 @@ ...@@ -57,7 +56,7 @@
57 </div> 56 </div>
58 <div class="from-clues-content"> 57 <div class="from-clues-content">
59 <lb-table :page-size="pageData.size" class="loadingtext" @sort-change="handleSort" 58 <lb-table :page-size="pageData.size" class="loadingtext" @sort-change="handleSort"
60 :current-page.sync="pageData.currentPage" :heightNum="300" :total="tableData.total" 59 :current-page.sync="pageData.currentPage" :heightNum="290" :total="tableData.total"
61 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns" 60 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
62 :data="tableData.data"> 61 :data="tableData.data">
63 </lb-table> 62 </lb-table>
...@@ -98,6 +97,13 @@ export default { ...@@ -98,6 +97,13 @@ export default {
98 sendThis(this); 97 sendThis(this);
99 this.queryClick() 98 this.queryClick()
100 }, 99 },
100 watch: {
101 queryForm: {
102 handler (newName, oldName) {
103 },
104 immediate: true
105 }
106 },
101 methods: { 107 methods: {
102 // 列表渲染接口 108 // 列表渲染接口
103 queryClick () { 109 queryClick () {
......
1 <template> 1 <template>
2 <!-- 受理信息 --> 2 <!-- 受理信息 -->
3 <div class="slxx"> 3 <div class="slxx">
4 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flag ? 'top' : ''" :inline="flag" 4 <el-form
5 label-width="120px"> 5 :model="ruleForm"
6 :rules="rules"
7 ref="ruleForm"
8 :label-position="flag ? 'top' : ''"
9 :inline="flag"
10 label-width="120px"
11 >
6 <div class="slxx_con"> 12 <div class="slxx_con">
7 <div class="slxx_title">受理信息</div> 13 <div class="slxx_title title-block">受理信息</div>
8 <el-row :gutter="10"> 14 <el-row :gutter="10">
9 <el-col :span="8"> 15 <el-col :span="8">
10 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:" prop="ywh"> 16 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:">
11 <el-input disabled v-model="ruleForm.ywh"></el-input> 17 <el-input disabled v-model="ruleForm.slywxx.ywh"></el-input>
12 </el-form-item> 18 </el-form-item>
13 </el-col> 19 </el-col>
14 <el-col :span="8"> 20 <el-col :span="8">
15 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:" prop="slry"> 21 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:">
16 <el-input disabled v-model="ruleForm.slry"></el-input> 22 <el-input disabled v-model="ruleForm.slywxx.slry"></el-input>
17 </el-form-item> 23 </el-form-item>
18 </el-col> 24 </el-col>
19 <el-col :span="8"> 25 <el-col :span="8">
20 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:" prop="slsj"> 26 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:">
21 <el-input disabled v-model="ruleForm.slsj"></el-input> 27 <el-input disabled v-model="ruleForm.slywxx.slsj"></el-input>
22 </el-form-item> 28 </el-form-item>
23 </el-col> 29 </el-col>
24 </el-row> 30 </el-row>
25 <el-row :gutter="10"> 31 <el-row :gutter="10">
26 <el-col :span="8"> 32 <el-col :span="8">
27 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:" prop="qllx"> 33 <el-form-item
28 <el-select disabled v-model="ruleForm.qllx" filterable clearable placeholder="请选择权利类型"> 34 :class="flag ? 'marginBot0' : ''"
29 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 35 label="权利类型:"
30 </el-option> 36 prop="qllx"
31 </el-select> 37 >
38 <el-input disabled v-model="ruleForm.slywxx.qllxmc"></el-input>
32 </el-form-item> 39 </el-form-item>
33 </el-col> 40 </el-col>
34 <el-col :span="8"> 41 <el-col :span="8">
35 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:" prop="djlx"> 42 <el-form-item
36 <el-select disabled v-model="ruleForm.djlx" filterable clearable placeholder="请选择登记类型"> 43 :class="flag ? 'marginBot0' : ''"
37 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 44 label="登记类型:"
38 </el-option> 45 prop="djlx"
39 </el-select> 46 >
47 <el-input disabled v-model="ruleForm.slywxx.djlxmc"></el-input>
40 </el-form-item> 48 </el-form-item>
41 </el-col> 49 </el-col>
42 <el-col :span="8"> 50 <el-col :span="8">
43 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:" prop="djqx"> 51 <el-form-item
44 <el-input disabled v-model="ruleForm.djqxmc"></el-input> 52 :class="flag ? 'marginBot0' : ''"
45 </el-form-item> 53 label="登记情形:"
46 </el-col> 54 prop="djqx"
47 </el-row> 55 >
48 <div class="slxx_title">查封不动产情况</div> 56 <el-input disabled v-model="ruleForm.slywxx.djqxmc"></el-input>
49 <el-row :gutter="10">
50 <el-col :span="8">
51 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产权证号:" prop="bdcqzh">
52 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
53 </el-form-item>
54 </el-col>
55 <el-col :span="8">
56 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利人:" prop="qlr">
57 <el-input disabled v-model="ruleForm.qlr"></el-input>
58 </el-form-item>
59 </el-col>
60 <el-col :span="8">
61 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产单元号:" prop="bdcdyh">
62 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
63 </el-form-item>
64 </el-col>
65 </el-row>
66 <el-row :gutter="10">
67 <el-col :span="8">
68 <el-form-item :class="flag ? 'marginBot0' : ''" label="面积:" prop="mj">
69 <el-input disabled v-model="ruleForm.mj"></el-input>
70 </el-form-item>
71 </el-col>
72
73 <el-col :span="16">
74 <el-form-item :class="flag ? 'marginBot0' : ''" label="坐落:" prop="zl">
75 <el-input disabled v-model="ruleForm.zl"></el-input>
76 </el-form-item>
77 </el-col>
78 </el-row>
79 <el-row :gutter="10">
80 <el-col :span="8">
81 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利性质" prop="qlxz">
82 <el-input disabled v-model="ruleForm.zrzDetail.zrzh"></el-input>
83 </el-form-item>
84 </el-col>
85 <el-col :span="8">
86 <el-form-item :class="flag ? 'marginBot0' : ''" label="用途:" prop="yt">
87 <el-input disabled v-model="ruleForm.ghytmc"></el-input>
88 </el-form-item>
89 </el-col>
90 <el-col :span="8">
91 <el-form-item :class="flag ? 'marginBot0' : ''" label="取得价格:" prop="qdjg">
92 <el-input disabled v-model="ruleForm.qdjg"></el-input>
93 </el-form-item>
94 </el-col>
95 </el-row>
96 <el-row :gutter="10">
97 <el-col :span="8">
98 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:">
99 <el-input disabled v-model="ruleForm.fwyt"></el-input>
100 </el-form-item>
101 </el-col>
102 <el-col :span="8">
103 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封类型:">
104 <el-input disabled v-model="ruleForm.fwxz"></el-input>
105 </el-form-item>
106 </el-col>
107 <el-col :span="8">
108 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:">
109 <el-input disabled v-model="ruleForm.fwjg"></el-input>
110 </el-form-item>
111 </el-col>
112 </el-row>
113 <el-row :gutter="10">
114 <el-col :span="8">
115 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:">
116 <el-input disabled v-model="ruleForm.fwyt"></el-input>
117 </el-form-item>
118 </el-col>
119 <el-col :span="8">
120 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:">
121 <el-input disabled v-model="ruleForm.fwxz"></el-input>
122 </el-form-item>
123 </el-col>
124 <el-col :span="8">
125 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:">
126 <el-input disabled v-model="ruleForm.fwjg"></el-input>
127 </el-form-item>
128 </el-col>
129 </el-row>
130 <el-row :gutter="10">
131 <el-col>
132 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:" prop="cffw">
133 <el-input class="textArea" type="textarea" v-model="ruleForm.cffw"></el-input>
134 </el-form-item>
135 </el-col>
136 </el-row>
137 <el-row :gutter="10">
138 <el-col>
139 <el-form-item :class="flag ? 'marginBot0' : ''" label="附记:" prop="fj">
140 <el-input class="textArea" type="textarea" v-model="ruleForm.fj"></el-input>
141 </el-form-item>
142 </el-col>
143 </el-row>
144 <div class="slxx_title">不动产权利人信息</div>
145 <el-row :gutter="10">
146 <el-col :span="14">
147 <el-form-item :class="flag ? 'marginBot0' : ''" label="共有方式:">
148 <el-radio-group v-model="ruleForm.gyfs">
149 <el-radio label="1">单独所有</el-radio>
150 <el-radio label="2">共同共有</el-radio>
151 <el-radio label="3">按份所有</el-radio>
152 </el-radio-group>
153 </el-form-item>
154 </el-col>
155 <el-col :span="5" v-show="ruleForm.gyfs == '2'">
156 <el-form-item :class="flag ? 'marginBot0' : ''" label="是否分别持证:">
157 <el-radio-group v-model="ruleForm.sffbcz">
158 <el-radio label="1"></el-radio>
159 <el-radio label="0"></el-radio>
160 </el-radio-group>
161 </el-form-item>
162 </el-col>
163 <el-col :span="5" v-show="ruleForm.gyfs == '2'">
164 <el-form-item :class="flag ? 'marginBot0' : ''" label="持证人:">
165 <el-select v-model="ruleForm.czr" placeholder="持证人">
166 <el-option v-for="item in czrOptions" :key="item.value" :label="item.label" :value="item.value">
167 </el-option>
168 </el-select>
169 </el-form-item>
170 </el-col>
171 </el-row>
172 <InformationTable :tableData="ruleForm.qlrxx" :gyfs="ruleForm.gyfs" />
173 <div class="slxx_title">登记原因</div>
174 <el-row :gutter="10">
175 <el-col>
176 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="djyy">
177 <el-input class="textArea" type="textarea" v-model="ruleForm.djyy"></el-input>
178 </el-form-item> 57 </el-form-item>
179 </el-col> 58 </el-col>
180 </el-row> 59 </el-row>
60 <div class="slxx_title title-block">抵押不动产情况</div>
181 </div> 61 </div>
182 <el-row class="btn" v-if="!$route.query.viewtype"> 62 <el-row class="btn" v-if="!$route.query.viewtype">
183 <el-form-item :class="flag ? 'marginBot0' : ''"> 63 <el-form-item :class="flag ? 'marginBot0' : ''">
...@@ -192,17 +72,15 @@ import InformationTable from "@/views/workflow/components/InformationTable"; ...@@ -192,17 +72,15 @@ import InformationTable from "@/views/workflow/components/InformationTable";
192 import { Init } from "@/api/diyaqFlow.js"; 72 import { Init } from "@/api/diyaqFlow.js";
193 import { mapGetters } from "vuex"; 73 import { mapGetters } from "vuex";
194 export default { 74 export default {
195 async created () { 75 async created() {
196 this.propsParam = this.$attrs; 76 this.propsParam = this.$attrs;
197 var formdata = new FormData(); 77 var formdata = new FormData();
198 formdata.append("bsmSldy", this.propsParam.bsmSldy); 78 formdata.append("bsmSldy", this.propsParam.bsmSldy);
79 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
199 formdata.append("djlx", this.propsParam.djlx); 80 formdata.append("djlx", this.propsParam.djlx);
200 Init(formdata).then((res) => { 81 Init(formdata).then((res) => {
201 if (res.code === 200 && res.result) { 82 if (res.code === 200 && res.result) {
202 this.ruleForm = { 83 this.ruleForm = res.result;
203 ...res.result,
204 ...res.result.qlxxdatas,
205 }
206 } 84 }
207 }); 85 });
208 }, 86 },
...@@ -210,42 +88,12 @@ export default { ...@@ -210,42 +88,12 @@ export default {
210 computed: { 88 computed: {
211 ...mapGetters(["dictData", "flag"]), 89 ...mapGetters(["dictData", "flag"]),
212 }, 90 },
213 data () { 91 data() {
214 return { 92 return {
215 disabled: true, 93 disabled: true,
216 tdytOption: [],
217 czrOptions: [],
218 ruleForm: { 94 ruleForm: {
219 ywh: "", 95 slywxx:{}
220 slry: "", 96
221 slsj: "",
222 qllx: "",
223 djlx: "",
224 djqx: "",
225 // 宗地代码
226 zddm: "",
227 bdcdyh: "",
228 qlxzmc: "",
229 qlrxx: [],
230 // 自然幢号
231 zrzh: "",
232 // 户不动产单元号
233 hbdcdyh: '',
234 djzt: '',
235 // 图幅丘幢号
236 tfqzh: '',
237 zl: '',
238 // 房屋用途
239 fwyt: '',
240 fwxz: '',
241 fwjg: '',
242 // 权利人信息
243 gyfs: "1",
244 // 是否分别持证
245 sffbcz: "",
246 // 持证人
247 czr: "",
248 djyy: ''
249 }, 97 },
250 //传递参数 98 //传递参数
251 propsParam: {}, 99 propsParam: {},
...@@ -253,9 +101,9 @@ export default { ...@@ -253,9 +101,9 @@ export default {
253 }; 101 };
254 }, 102 },
255 methods: { 103 methods: {
256 list (bsmSldy) { 104 list(bsmSldy) {
257 Init({ 105 Init({
258 bsmSldy: bsmSldy.split(',') 106 bsmSldy: bsmSldy.split(","),
259 }).then((res) => { 107 }).then((res) => {
260 if (res.code === 200 && res.result) { 108 if (res.code === 200 && res.result) {
261 this.ruleForm = { 109 this.ruleForm = {
...@@ -267,7 +115,7 @@ export default { ...@@ -267,7 +115,7 @@ export default {
267 } 115 }
268 }); 116 });
269 }, 117 },
270 onSubmit () { 118 onSubmit() {
271 fristReg(this.ruleForm).then((res) => { 119 fristReg(this.ruleForm).then((res) => {
272 if (res.code === 200 && res.result) { 120 if (res.code === 200 && res.result) {
273 console.log(res); 121 console.log(res);
...@@ -280,77 +128,5 @@ export default { ...@@ -280,77 +128,5 @@ export default {
280 </script> 128 </script>
281 <style scoped lang='scss'> 129 <style scoped lang='scss'>
282 @import "~@/styles/public.scss"; 130 @import "~@/styles/public.scss";
283 131 @import "~@/styles/slxx/slxx.scss";
284 /deep/.el-form {
285 display: flex;
286 flex-direction: column;
287 height: calc(100vh - 130px);
288 background-color: aqua;
289 }
290
291 /deep/.el-form-item__label {
292 padding: 0;
293 }
294
295 /deep/.el-radio {
296 margin-right: 10px;
297 }
298
299 /deep/.el-select {
300 width: 100%;
301 }
302
303 /deep/.el-form-item {
304 margin-bottom: 8px;
305 }
306
307 .marginBot0 {
308 margin-bottom: 0 !important;
309 }
310
311 .slxx {
312 box-sizing: border-box;
313 }
314
315 .slxx_con {
316 flex: 1;
317 height: 100%;
318 background-color: #ffffff;
319 overflow-y: auto;
320 padding-right: 3px;
321 overflow-x: hidden;
322 }
323
324 .submit_btn {
325 height: 50px;
326 }
327
328 .slxx_title {
329 border-bottom: 1px solid $borderColor;
330 padding-left: 10px;
331 padding-bottom: 5px;
332 margin-bottom: 10px;
333 margin-top: 5px;
334 font-size: 16px;
335 font-weight: 500;
336 color: #4a4a4a;
337 }
338
339 .btn {
340 text-align: center;
341 padding-top: 10px;
342 height: 36px;
343 background-color: #ffffff;
344 padding: 5px 0;
345 }
346
347 .textArea {
348 /deep/.el-textarea__inner {
349 min-height: 90px !important;
350 }
351 }
352
353 /deep/.el-form-item__label {
354 padding-bottom: 0px;
355 }
356 </style> 132 </style>
......
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flag ? 'top' : ''" :inline="flag"
5 label-width="120px">
6 <div class="slxx_con">
7 <div class="slxx_title title-block">
8 受理信息
9 <div class="triangle"></div>
10 </div>
11 <el-row :gutter="10" v-if="ruleForm.slywxx">
12 <el-col :span="8">
13 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:">
14 <el-input disabled v-model="ruleForm.slywxx.ywh"></el-input>
15 </el-form-item>
16 </el-col>
17 <el-col :span="8">
18 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:">
19 <el-input disabled v-model="ruleForm.slywxx.slry"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="8">
23 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:">
24 <el-input disabled v-model="ruleForm.slywxx.slsj"></el-input>
25 </el-form-item>
26 </el-col>
27 </el-row>
28 <el-row :gutter="10" v-if="ruleForm.slywxx">
29 <el-col :span="8">
30 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
31 <el-input disabled v-model="ruleForm.slywxx.qllxmc"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:">
36 <el-input disabled v-model="ruleForm.slywxx.djlxmc"></el-input>
37 </el-form-item>
38 </el-col>
39 <el-col :span="8">
40 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:">
41 <el-input disabled v-model="ruleForm.slywxx.djqxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 </el-row>
45 <div class="slxx_title title-block">
46 不动产单元情况
47 <div class="triangle"></div>
48 </div>
49 <el-row :gutter="10" v-if="ruleForm.qlxx">
50 <el-col :span="8">
51 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产单元号:">
52 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
53 </el-form-item>
54 </el-col>
55 <el-col :span="16">
56 <el-form-item :class="flag ? 'marginBot0' : ''" label="坐落:">
57 <el-input disabled v-model="ruleForm.qlxx.zl"></el-input>
58 </el-form-item>
59 </el-col>
60 </el-row>
61 <el-row :gutter="10" >
62 <el-col :span="8">
63 <el-form-item :class="flag ? 'marginBot0' : ''" label="规划用途:">
64 <el-input disabled v-model="ruleForm.ygdj.ghyt"></el-input>
65 </el-form-item>
66 </el-col>
67 <el-col :span="8">
68 <el-form-item :class="flag ? 'marginBot0' : ''" label="土地使用起止时间:">
69 <el-input disabled v-model="ruleForm.ygdj.ghyt"></el-input>
70 </el-form-item>
71 </el-col>
72 <el-col :span="8">
73 <el-form-item :class="flag ? 'marginBot0' : ''" label="土地使用期限:">
74 <el-input disabled v-model="ruleForm.ygdj.ghyt"></el-input>
75 </el-form-item>
76 </el-col>
77 </el-row>
78 <el-row :gutter="10" v-if="ruleForm.qlxx">
79 <el-col :span="8">
80 <el-form-item :class="flag ? 'marginBot0' : ''" label="房屋用途:">
81 <el-input disabled v-model="ruleForm.qlxx.ytmc"></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item :class="flag ? 'marginBot0' : ''" label="房屋性质:">
86 <el-input disabled v-model="ruleForm.ygdj.fwxzmc"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item :class="flag ? 'marginBot0' : ''" label="房屋结构:">
91 <el-input disabled v-model="ruleForm.ygdj.fwjgmc"></el-input>
92 </el-form-item>
93 </el-col>
94 </el-row>
95 <el-row :gutter="10" >
96 <el-col :span="8">
97 <el-form-item :class="flag ? 'marginBot0' : ''" label="所在层:">
98 <el-input disabled v-model="ruleForm.ygdj.szc"></el-input>
99 </el-form-item>
100 </el-col>
101 <el-col :span="8">
102 <el-form-item :class="flag ? 'marginBot0' : ''" label="总层数:">
103 <el-input disabled v-model="ruleForm.ygdj.zcs"></el-input>
104 </el-form-item>
105 </el-col>
106 <el-col :span="8">
107 <el-form-item :class="flag ? 'marginBot0' : ''" label="竣工时间:">
108 <el-input disabled v-model="ruleForm.ygdj.jgsj"></el-input>
109 </el-form-item>
110 </el-col>
111 </el-row>
112 <el-row :gutter="10" v-if="ruleForm.qlxx">
113 <el-col :span="8">
114 <el-form-item :class="flag ? 'marginBot0' : ''" label="建筑面积:">
115 <el-input disabled v-model="ruleForm.qlxx.mj"></el-input>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item :class="flag ? 'marginBot0' : ''" label="专有建筑面积:">
120 <el-input disabled v-model="ruleForm.ygdj.zyjzmj"></el-input>
121 </el-form-item>
122 </el-col>
123 <el-col :span="8">
124 <el-form-item :class="flag ? 'marginBot0' : ''" label="分摊建筑面积:">
125 <el-input disabled v-model="ruleForm.ygdj.ftjzmj"></el-input>
126 </el-form-item>
127 </el-col>
128 </el-row>
129 <div class="slxx_title title-block">
130 权利人信息
131 <div class="triangle"></div>
132 </div>
133 <el-row :gutter="10">
134 <el-col :span="14" v-if="ruleForm.qlxx">
135 <el-form-item :class="flag ? 'marginBot0' : ''" label="共有方式:">
136 <el-radio-group :disabled="$route.query.viewtype==1" v-model="ruleForm.slywxx.gyfs">
137 <el-radio label="1">单独所有</el-radio>
138 <el-radio label="2">共同共有</el-radio>
139 <el-radio label="3">按份所有</el-radio>
140 </el-radio-group>
141 </el-form-item>
142 </el-col>
143 <el-col :span="5" v-show="ruleForm.qlxx&&ruleForm.qlxx.gyfs == '2'">
144 <el-form-item :class="flag ? 'marginBot0' : ''" label="是否分别持证:">
145 <el-radio-group v-model="ruleForm.sffbcz">
146 <el-radio label="1"></el-radio>
147 <el-radio label="0"></el-radio>
148 </el-radio-group>
149 </el-form-item>
150 </el-col>
151 <el-col :span="5" v-show="ruleForm.qlxx&&ruleForm.qlxx.gyfs == '2'">
152 <el-form-item :class="flag ? 'marginBot0' : ''" label="持证人:">
153 <el-select v-model="ruleForm.czr" placeholder="持证人">
154 <el-option v-for="item in czrOptions" :key="item.value" :label="item.label" :value="item.value">
155 </el-option>
156 </el-select>
157 </el-form-item>
158 </el-col>
159 </el-row>
160 <InformationTable v-if="ruleForm.qlxx" @upDateQlrxxList="upDateQlrxxList" :tableData="ruleForm.qlrList"
161 :gyfs="ruleForm.qlxx.gyfs" />
162 <div class="slxx_title title-block">
163 义务人信息
164 <div class="triangle"></div>
165 </div>
166 <InformationTable v-if="ruleForm.qlxx" @upDateQlrxxList="upDateYwrxxList" :tableData="ruleForm.ywrList"
167 :gyfs="ruleForm.qlxx.gyfs" />
168 <div class="slxx_title title-block">
169 登记原因
170 <div class="triangle"></div>
171 </div>
172 <el-row :gutter="10">
173 <el-col>
174 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="djyy">
175 <el-input class="textArea" type="textarea" :disabled="$route.query.viewtype==1"
176 v-model="ruleForm.ygdj.djyy">
177 </el-input>
178 </el-form-item>
179 </el-col>
180 </el-row>
181 </div>
182 <el-row class="btn" v-if="!$route.query.viewtype">
183 <el-form-item :class="flag ? 'marginBot0' : ''">
184 <el-button type="primary" @click="onSubmit">保存</el-button>
185 </el-form-item>
186 </el-row>
187 </el-form>
188 </div>
189 </template>
190 <script>
191 import InformationTable from "@/views/workflow/components/InformationTable";
192 import { Init, saveData } from "@/api/ygdjFlow.js";
193 import { mapGetters } from "vuex";
194 export default {
195 async created () {
196 //this.propsParam = this.$attrs;
197 var formdata = new FormData();
198 formdata.append("bsmSldy", this.propsParam.bsmSldy);
199 formdata.append("djlx", this.propsParam.djlx);
200
201 Init(formdata).then(res => {
202 if (res.code === 200 && res.result) {
203 this.ruleForm = res.result;
204 }
205 })
206 },
207 components: { InformationTable },
208 computed: {
209 ...mapGetters(["dictData", "flag"]),
210 },
211 data () {
212 return {
213 disabled: true,
214 tdytOption: [],
215 czrOptions: [],
216 ruleForm: {},
217 //传递参数
218 propsParam: this.$attrs,
219 rules: {},
220 };
221 },
222 methods: {
223 // 更新权利人信息
224 upDateQlrxxList (val) {
225 this.ruleForm.qlrList = _.cloneDeep(val);
226 },
227 // 更新权利人信息
228 upDateYwrxxList (val) {
229 this.ruleForm.ywrList = _.cloneDeep(val);
230 },
231 onSubmit () {
232 saveData(this.ruleForm).then((res) => {
233 if (res.code === 200) {
234 this.$message({
235 showClose: true,
236 message: "保存成功!",
237 type: "success",
238 });
239 } else {
240 this.$message({
241 showClose: true,
242 message: res.message,
243 type: "error",
244 });
245 }
246 });
247 },
248 },
249 };
250 </script>
251 <style scoped lang='scss'>
252 @import "~@/styles/public.scss";
253
254 /deep/.el-form {
255 display: flex;
256 flex-direction: column;
257 height: calc(100vh - 130px);
258 background-color: aqua;
259 }
260
261 /deep/.el-form-item__label {
262 padding: 0;
263 }
264
265 /deep/.el-radio {
266 margin-right: 10px;
267 }
268
269 /deep/.el-select {
270 width: 100%;
271 }
272
273 /deep/.el-form-item {
274 margin-bottom: 8px;
275 }
276
277 .marginBot0 {
278 margin-bottom: 0 !important;
279 }
280
281 .slxx {
282 box-sizing: border-box;
283 }
284
285 .slxx_con {
286 flex: 1;
287 height: 100%;
288 background-color: #ffffff;
289 overflow-y: auto;
290 padding-right: 3px;
291 overflow-x: hidden;
292 }
293
294 .submit_btn {
295 height: 50px;
296 }
297
298 .slxx_title {
299 border-bottom: 1px solid $borderColor;
300 padding-left: 10px;
301 padding-bottom: 5px;
302 margin-bottom: 10px;
303 margin-top: 5px;
304 font-size: 16px;
305 font-weight: 500;
306 color: #4a4a4a;
307 }
308
309 .btn {
310 text-align: center;
311 padding-top: 10px;
312 height: 36px;
313 background-color: #ffffff;
314 padding: 5px 0;
315 }
316
317 .textArea {
318 /deep/.el-textarea__inner {
319 min-height: 90px !important;
320 }
321 }
322
323 /deep/.el-form-item__label {
324 padding-bottom: 0px;
325 }
326 </style>
...@@ -124,6 +124,10 @@ export default { ...@@ -124,6 +124,10 @@ export default {
124 }); 124 });
125 }, 125 },
126 handleSelectionChange (val) { 126 handleSelectionChange (val) {
127 val.forEach((item, index) => {
128 item.bsmSsql = item.bsmQlxx
129 item.ybdcqzsh = item.bdcqzh
130 })
127 this.bdcdysz = val 131 this.bdcdysz = val
128 } 132 }
129 }, 133 },
......
...@@ -30,7 +30,7 @@ export function queueDjywmc (djywbm) { ...@@ -30,7 +30,7 @@ export function queueDjywmc (djywbm) {
30 case "A07400": 30 case "A07400":
31 vm = "jsydsyq200"; 31 vm = "jsydsyq200";
32 break; 32 break;
33 case "A07100"://抵押权首次 33 case "A37100"://抵押权首次
34 vm = "bdcqlMain"; 34 vm = "bdcqlMain";
35 break; 35 break;
36 case "A37200"://抵押权转移 36 case "A37200"://抵押权转移
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
30 flex-direction: column; 30 flex-direction: column;
31 31
32 .item-list { 32 .item-list {
33 max-height: calc(100vh - 380px); 33 max-height: calc(100vh - 360px);
34 overflow-y: auto; 34 overflow-y: auto;
35 } 35 }
36 36
...@@ -146,6 +146,7 @@ ...@@ -146,6 +146,7 @@
146 flex: 1; 146 flex: 1;
147 width: 100%; 147 width: 100%;
148 padding: 3px; 148 padding: 3px;
149
149 } 150 }
150 151
151 p:nth-child(2) { 152 p:nth-child(2) {
...@@ -189,7 +190,7 @@ ...@@ -189,7 +190,7 @@
189 cursor: pointer; 190 cursor: pointer;
190 margin-bottom: 15px; 191 margin-bottom: 15px;
191 192
192 p { 193 p:nth-child(2) {
193 @include flex-center; 194 @include flex-center;
194 } 195 }
195 196
...@@ -202,6 +203,9 @@ ...@@ -202,6 +203,9 @@
202 flex: 1; 203 flex: 1;
203 width: 100%; 204 width: 100%;
204 padding: 3px; 205 padding: 3px;
206 padding-left: 30px;
207 display: flex;
208 align-items: center;
205 } 209 }
206 210
207 p:nth-child(2) { 211 p:nth-child(2) {
......
...@@ -31,36 +31,20 @@ ...@@ -31,36 +31,20 @@
31 </ul> 31 </ul>
32 </div> 32 </div>
33 <div class="right-situation el-card box-card is-always-shadow"> 33 <div class="right-situation el-card box-card is-always-shadow">
34 <div v-if="n >= 0"> 34 <div class="right-title">{{ obj[n] }}</div>
35 <div class="right-title">常办业务列表</div> 35 <ul>
36 <ul> 36 <li v-for="(item, index) in itemList" :key="index" @click="handleSelectYw(item, ywList)"
37 <li v-for="(item, index) in ywList" :key="index" @click="handleSelectYw(item, ywList)" 37 :class="item.cselect ? 'cactive' : ''">
38 :class="item.cselect ? 'cactive' : ''"> 38 <p>
39 <p> 39 {{ item.djywmc }}<br>
40 {{ item.djywmc }}<br> 40 {{ item.nodename }}
41 {{ item.nodename }} 41 </p>
42 </p>
43 42
44 <p v-if="item.sffqlc == 1" class="active" @click.stop="handleCollection(item)"> 43 <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)">
45 <i class="el-icon-star-off active"></i> 44 <i class="el-icon-star-off" :class="item.userCollect == 1 ? 'active' : ''"></i>
46 </p> 45 </p>
47 </li> 46 </li>
48 </ul> 47 </ul>
49 </div>
50 <div v-if="n == -1">
51 <div class="right-title">登记情形</div>
52 <ul class="registration">
53 <li v-for="(item, index) in djqxList" @click="handleSelectYw(item, djqxList)"
54 :class="item.cselect ? 'cactive' : ''" :key="index">
55 <p>
56 {{ item.nodename }}
57 </p>
58 <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)">
59 <i class="el-icon-star-off" :class="item.userCollect == 1 ? 'active' : ''"></i>
60 </p>
61 </li>
62 </ul>
63 </div>
64 </div> 48 </div>
65 <div class="submit-button"> 49 <div class="submit-button">
66 <el-button type="primary" :disabled="btnDisabled" @click="bthSelectClick">选择不动产</el-button> 50 <el-button type="primary" :disabled="btnDisabled" @click="bthSelectClick">选择不动产</el-button>
...@@ -70,7 +54,6 @@ ...@@ -70,7 +54,6 @@
70 </div> 54 </div>
71 </template> 55 </template>
72 <script> 56 <script>
73 import Cookies from 'js-cookie'
74 import fqsqDialog from "./slectBdc.vue" 57 import fqsqDialog from "./slectBdc.vue"
75 import { getCollectBiz, getleftMenu, getNextNode, addCollectBiz, deleteCollectBiz } from "@/api/ywbl" 58 import { getCollectBiz, getleftMenu, getNextNode, addCollectBiz, deleteCollectBiz } from "@/api/ywbl"
76 export default { 59 export default {
...@@ -81,10 +64,17 @@ export default { ...@@ -81,10 +64,17 @@ export default {
81 leftList: [ 64 leftList: [
82 '常办业务', '一并申请', '登记簿补录', 65 '常办业务', '一并申请', '登记簿补录',
83 ], 66 ],
67 // 左侧列表
84 list: [], 68 list: [],
85 djlxList: [], 69 djlxList: [],
70
71 itemList: [],
86 ywList: [], 72 ywList: [],
87 djqxList: [], 73 djqxList: [],
74 obj: {
75 '0': '常办业务列表',
76 '-1': '登记情形'
77 },
88 isDialog: false, 78 isDialog: false,
89 btnDisabled: true, 79 btnDisabled: true,
90 djywbm: '', 80 djywbm: '',
...@@ -104,12 +94,16 @@ export default { ...@@ -104,12 +94,16 @@ export default {
104 }, 94 },
105 methods: { 95 methods: {
106 getDataList () { 96 getDataList () {
107 getCollectBiz({ 'target': '#ywsq' }).then(res => { 97 getCollectBiz().then(res => {
108 let { result } = res 98 let { result } = res
109 this.ywList = result 99 this.ywList = result
110 this.ywList.forEach(item => { 100 this.ywList.forEach(item => {
111 this.$set(item, 'cselect', false) 101 this.$set(item, 'cselect', false)
102 item.userCollect = 1
112 }) 103 })
104 if (this.n == 0) {
105 this.itemList = this.ywList
106 }
113 }) 107 })
114 getleftMenu().then(res => { 108 getleftMenu().then(res => {
115 let { result } = res 109 let { result } = res
...@@ -118,9 +112,14 @@ export default { ...@@ -118,9 +112,14 @@ export default {
118 }, 112 },
119 handleleftTitle (index) { 113 handleleftTitle (index) {
120 this.n = index 114 this.n = index
115 let obj = {
116 '0': this.ywList
117 }
118 this.itemList = obj[this.n]
121 this.list.forEach(item => { 119 this.list.forEach(item => {
122 if (item.check) item.check = false 120 if (item.check) item.check = false
123 }) 121 })
122
124 }, 123 },
125 // 业务-登记情形选择 124 // 业务-登记情形选择
126 handleSelectYw (item, list) { 125 handleSelectYw (item, list) {
...@@ -135,7 +134,6 @@ export default { ...@@ -135,7 +134,6 @@ export default {
135 this.btnDisabled = false 134 this.btnDisabled = false
136 this.bsmSqyw = item.bsmSqyw 135 this.bsmSqyw = item.bsmSqyw
137 this.djywbm = item.djywbm 136 this.djywbm = item.djywbm
138 console.log(this.djywbm, 'this.djywbm');
139 } 137 }
140 }, 138 },
141 handleList (list, obj) { 139 handleList (list, obj) {
...@@ -147,11 +145,11 @@ export default { ...@@ -147,11 +145,11 @@ export default {
147 this.$set(obj, 'check', true) 145 this.$set(obj, 'check', true)
148 this.getNextNode(obj.bsmSqyw) 146 this.getNextNode(obj.bsmSqyw)
149 this.djqxList = [] 147 this.djqxList = []
150 this.djlxList = [] 148 this.itemList = []
151 }, 149 },
152 // 获取下个节点类型 150 // 获取下个节点类型
153 getNextNode (bsmSqyw, type) { 151 getNextNode (bsmSqyw, type = true) {
154 getNextNode(bsmSqyw, { 'target': '#ywsq' }).then(res => { 152 getNextNode(bsmSqyw).then(res => {
155 if (res.result.djqx) this.djqxList = res.result.djqx 153 if (res.result.djqx) this.djqxList = res.result.djqx
156 if (res.result.djlx) this.djlxList = res.result.djlx 154 if (res.result.djlx) this.djlxList = res.result.djlx
157 if (type) { 155 if (type) {
...@@ -162,6 +160,7 @@ export default { ...@@ -162,6 +160,7 @@ export default {
162 this.$set(item, 'cselect', false) 160 this.$set(item, 'cselect', false)
163 }) 161 })
164 } 162 }
163 this.itemList = this.djqxList
165 }) 164 })
166 }, 165 },
167 handleCollection (item) { 166 handleCollection (item) {
...@@ -178,15 +177,26 @@ export default { ...@@ -178,15 +177,26 @@ export default {
178 } 177 }
179 }) 178 })
180 } else { 179 } else {
181 deleteCollectBiz(item.bsmSqyw).then(res => { 180 this.$confirm('此操作将取消收藏, 是否继续?', '提示', {
182 if (res.code == 200) { 181 confirmButtonText: '确定',
183 item.userCollect = '2' 182 cancelButtonText: '取消',
184 that.$message({ 183 type: 'warning'
185 message: '取消收藏成功!', 184 }).then(() => {
186 type: 'success' 185 deleteCollectBiz(item.bsmSqyw).then(res => {
187 }) 186 if (res.code == 200) {
188 that.getDataList() 187 item.userCollect = '2'
189 } 188 that.$message({
189 message: '取消收藏成功!',
190 type: 'success'
191 })
192 that.getDataList()
193 }
194 })
195 }).catch(() => {
196 this.$message({
197 type: 'info',
198 message: '已取消收藏'
199 })
190 }) 200 })
191 } 201 }
192 }, 202 },
...@@ -198,11 +208,11 @@ export default { ...@@ -198,11 +208,11 @@ export default {
198 }, 208 },
199 // 登记类型 209 // 登记类型
200 handleDjlxSelect (item) { 210 handleDjlxSelect (item) {
201 this.btnDisabled = true
202 this.djlxList.forEach(item => { 211 this.djlxList.forEach(item => {
203 if (item.cselect) item.cselect = false 212 item.cselect = false
204 }) 213 })
205 this.$set(item, 'cselect', true) 214 this.btnDisabled = true
215 item.cselect = true
206 if (item.sffqlc == '1') { 216 if (item.sffqlc == '1') {
207 this.btnDisabled = false 217 this.btnDisabled = false
208 this.bsmSqyw = item.bsmSqyw 218 this.bsmSqyw = item.bsmSqyw
...@@ -225,4 +235,12 @@ export default { ...@@ -225,4 +235,12 @@ export default {
225 <style scoped lang='scss'> 235 <style scoped lang='scss'>
226 @import "~@/styles/mixin.scss"; 236 @import "~@/styles/mixin.scss";
227 @import './ywsq.scss'; 237 @import './ywsq.scss';
238
239 /deep/.el-collapse-item__content {
240 padding-bottom: 0;
241 }
242
243 /deep/.el-collapse-item__wrap {
244 border-bottom: none;
245 }
228 </style> 246 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -6,17 +6,26 @@ ...@@ -6,17 +6,26 @@
6 <el-row> 6 <el-row>
7 <el-col :span="5"> 7 <el-col :span="5">
8 <el-form-item label="分发编号"> 8 <el-form-item label="分发编号">
9 <el-input v-model="approveForm.batchno" @clear="queryClick()" clearable placeholder="分发编号"></el-input> 9 <el-input v-model="ruleForm.batchno" @clear="queryClick()" clearable placeholder="分发编号"></el-input>
10 </el-form-item> 10 </el-form-item>
11 </el-col> 11 </el-col>
12 <el-col :span="8"> 12
13 <el-form-item label="领取时间"> 13 <el-col :span="5">
14 <el-date-picker v-model="ruleForm.ffsj" type="daterange" range-separator="至" start-placeholder="开始日期" 14 <el-form-item label="开始日期">
15 end-placeholder="结束日期" @change="timeChange()" value-format="yyyy-MM-dd HH:mm:ss" clearable> 15 <el-date-picker v-model="ruleForm.ffkssj" :picker-options="pickerOptionsStart" type="date"
16 placeholder="开始日期" value-format="yyyy-MM-dd" clearable>
17 </el-date-picker>
18 </el-form-item>
19 </el-col>
20 <el-col :span="5">
21 <el-form-item label="结束时间">
22 <el-date-picker v-model="ruleForm.ffjssj" :picker-options="pickerOptionsEnd" type="date"
23 placeholder="结束日期" value-format="yyyy-MM-dd" clearable>
16 </el-date-picker> 24 </el-date-picker>
17 </el-form-item> 25 </el-form-item>
18 </el-col> 26 </el-col>
19 <el-col :span="11" class="btnColRight"> 27
28 <el-col :span="9" class="btnColRight">
20 <el-form-item> 29 <el-form-item>
21 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button> 30 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
22 <el-button type="primary" @click="openDialog()">新增</el-button> 31 <el-button type="primary" @click="openDialog()">新增</el-button>
...@@ -55,10 +64,6 @@ export default { ...@@ -55,10 +64,6 @@ export default {
55 isDialog: false, 64 isDialog: false,
56 value: '', 65 value: '',
57 ruleForm: { 66 ruleForm: {
58 batchno: "",
59 ffsj: ""
60 },
61 approveForm: {
62 batchno: '', 67 batchno: '',
63 ffkssj: '', 68 ffkssj: '',
64 ffjssj: '' 69 ffjssj: ''
...@@ -68,6 +73,26 @@ export default { ...@@ -68,6 +73,26 @@ export default {
68 columns: datas.columns(), 73 columns: datas.columns(),
69 data: [], 74 data: [],
70 }, 75 },
76 // 开始结束日期限制
77 pickerOptionsStart: {
78 disabledDate: (time) => {
79 if (this.ruleForm.ffjssj) {
80 return (
81 time.getTime() >= new Date(this.ruleForm.ffjssj).getTime()
82 );
83 }
84 }
85 },
86 // 结束日期限制
87 pickerOptionsEnd: {
88 disabledDate: (time) => {
89 if (this.ruleForm.ffkssj) {
90 return (
91 time.getTime() <= new Date(this.ruleForm.ffkssj).getTime()
92 );
93 }
94 }
95 }
71 } 96 }
72 }, 97 },
73 methods: { 98 methods: {
...@@ -76,7 +101,7 @@ export default { ...@@ -76,7 +101,7 @@ export default {
76 }, 101 },
77 // 列表渲染接口 102 // 列表渲染接口
78 fetchData () { 103 fetchData () {
79 getZsglffList({ ...this.approveForm, ...this.pageData }).then(res => { 104 getZsglffList({ ...this.ruleForm, ...this.pageData }).then(res => {
80 if (res.code === 200) { 105 if (res.code === 200) {
81 let { total, records } = res.result 106 let { total, records } = res.result
82 this.tableData.total = total; 107 this.tableData.total = total;
...@@ -100,17 +125,6 @@ export default { ...@@ -100,17 +125,6 @@ export default {
100 queryClick () { 125 queryClick () {
101 this.fetchData() 126 this.fetchData()
102 }, 127 },
103 //修改筛选时间
104 timeChange () {
105 if (this.ruleForm.ffsj != null) {
106 this.approveForm.ffkssj = this.ruleForm.ffsj[0];
107 this.approveForm.ffjssj = this.ruleForm.ffsj[1];
108 } else {
109 this.approveForm.ffkssj = ''
110 this.approveForm.ffjssj = ''
111 }
112 this.fetchData()
113 },
114 //确定证书分发 128 //确定证书分发
115 confrimVerify (item) { 129 confrimVerify (item) {
116 this.$confirm('是否确定分发', '提示', { 130 this.$confirm('是否确定分发', '提示', {
...@@ -161,4 +175,8 @@ export default { ...@@ -161,4 +175,8 @@ export default {
161 </script> 175 </script>
162 <style scoped lang="scss"> 176 <style scoped lang="scss">
163 @import "~@/styles/public.scss"; 177 @import "~@/styles/public.scss";
178
179 /deep/.el-icon-date {
180 display: none;
181 }
164 </style> 182 </style>
......
...@@ -9,14 +9,21 @@ ...@@ -9,14 +9,21 @@
9 <el-input v-model="ruleForm.batchno" @clear="queryClick()" clearable placeholder="入库编号"></el-input> 9 <el-input v-model="ruleForm.batchno" @clear="queryClick()" clearable placeholder="入库编号"></el-input>
10 </el-form-item> 10 </el-form-item>
11 </el-col> 11 </el-col>
12 <el-col :span="8"> 12 <el-col :span="5">
13 <el-form-item label="人库时间"> 13 <el-form-item label="开始日期">
14 <el-date-picker v-model="ruleForm.rksj" type="datetimerange" range-separator="至" start-placeholder="开始日期" 14 <el-date-picker v-model="ruleForm.rkkssj" :picker-options="pickerOptionsStart" type="date"
15 end-placeholder="结束日期" @change="timeChange()" value-format="yyyy-MM-dd HH:mm:ss" clearable> 15 placeholder="开始日期" value-format="yyyy-MM-dd" clearable>
16 </el-date-picker>
17 </el-form-item>
18 </el-col>
19 <el-col :span="5">
20 <el-form-item label="结束时间">
21 <el-date-picker v-model="ruleForm.rkjssj" :picker-options="pickerOptionsEnd" type="date"
22 placeholder="结束日期" value-format="yyyy-MM-dd" clearable>
16 </el-date-picker> 23 </el-date-picker>
17 </el-form-item> 24 </el-form-item>
18 </el-col> 25 </el-col>
19 <el-col :span="11" class="btnColRight"> 26 <el-col :span="9" class="btnColRight">
20 <el-form-item> 27 <el-form-item>
21 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button> 28 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
22 <el-button type="primary" @click="openDialog()">新增</el-button> 29 <el-button type="primary" @click="openDialog()">新增</el-button>
...@@ -54,7 +61,6 @@ export default { ...@@ -54,7 +61,6 @@ export default {
54 isDialog: false, 61 isDialog: false,
55 viewDialog: false, 62 viewDialog: false,
56 ruleForm: { 63 ruleForm: {
57 rksj: '',
58 batchno: '', 64 batchno: '',
59 rkkssj: '', 65 rkkssj: '',
60 rkjssj: '' 66 rkjssj: ''
...@@ -64,7 +70,27 @@ export default { ...@@ -64,7 +70,27 @@ export default {
64 columns: datas.columns(), 70 columns: datas.columns(),
65 data: [], 71 data: [],
66 }, 72 },
67 }; 73 // 开始结束日期限制
74 pickerOptionsStart: {
75 disabledDate: (time) => {
76 if (this.ruleForm.rkjssj) {
77 return (
78 time.getTime() >= new Date(this.ruleForm.rkjssj).getTime()
79 );
80 }
81 }
82 },
83 // 结束日期限制
84 pickerOptionsEnd: {
85 disabledDate: (time) => {
86 if (this.ruleForm.rkkssj) {
87 return (
88 time.getTime() <= new Date(this.ruleForm.rkkssj).getTime()
89 );
90 }
91 }
92 }
93 }
68 }, 94 },
69 methods: { 95 methods: {
70 // 列表渲染接口 96 // 列表渲染接口
...@@ -92,17 +118,6 @@ export default { ...@@ -92,17 +118,6 @@ export default {
92 queryClick () { 118 queryClick () {
93 this.fetchData() 119 this.fetchData()
94 }, 120 },
95 //修改筛选时间
96 timeChange (val) {
97 if (this.ruleForm.rksj != null) {
98 this.ruleForm.rkkssj = this.ruleForm.rksj[0];
99 this.ruleForm.rkjssj = this.ruleForm.rksj[1];
100 } else {
101 this.ruleForm.rkkssj = ''
102 this.ruleForm.rkjssj = ''
103 }
104 this.fetchData()
105 },
106 //删除证书入库数据 121 //删除证书入库数据
107 delZsrk (item) { 122 delZsrk (item) {
108 this.$confirm('确定要删除吗, 是否继续?', '提示', { 123 this.$confirm('确定要删除吗, 是否继续?', '提示', {
...@@ -153,4 +168,8 @@ export default { ...@@ -153,4 +168,8 @@ export default {
153 </script> 168 </script>
154 <style scoped lang="scss"> 169 <style scoped lang="scss">
155 @import "~@/styles/public.scss"; 170 @import "~@/styles/public.scss";
171
172 /deep/.el-icon-date {
173 display: none;
174 }
156 </style> 175 </style>
......
1 import filter from '@/utils/filter.js' 1 import filter from '@/utils/filter.js'
2 let vm = null 2 let vm = null
3
4 const sendThis = (_this) => { 3 const sendThis = (_this) => {
5 vm = _this 4 vm = _this
6 } 5 }
...@@ -60,7 +59,6 @@ class data extends filter { ...@@ -60,7 +59,6 @@ class data extends filter {
60 }, 59 },
61 { 60 {
62 label: '操作', 61 label: '操作',
63 width: '200',
64 align: 'center', 62 align: 'center',
65 fixed: 'right', 63 fixed: 'right',
66 render: (h, scope) => { 64 render: (h, scope) => {
......