14678f85 by 田浩浩
2 parents a3960c7c 74cf9497
Showing 50 changed files with 1848 additions and 196 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 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 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 <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
78 components: {
79 ElInput,
80 ElButton
81 },
82
83 computed: {
84 icon () {
85 const { type, iconClass } = this;
86 return iconClass || (type && typeMap[type] ? `el-icon-${typeMap[type]}` : '');
87 },
88
89 confirmButtonClasses () {
90 return `el-button--primary ${this.confirmButtonClass}`;
91 },
92 cancelButtonClasses () {
93 return `${this.cancelButtonClass}`;
94 }
95 },
96
97 methods: {
98 getSafeClose () {
99 const currentId = this.uid;
100 return () => {
101 this.$nextTick(() => {
102 if (currentId === this.uid) this.doClose();
103 });
104 };
105 },
106 doClose () {
107 if (!this.visible) return;
108 this.visible = false;
109 this._closing = true;
110
111 this.onClose && this.onClose();
112 messageBox.closeDialog(); // 解绑
113 if (this.lockScroll) {
114 setTimeout(this.restoreBodyStyle, 200);
115 }
116 this.opened = false;
117 this.doAfterClose();
118 setTimeout(() => {
119 if (this.action) this.callback(this.action, this);
120 });
121 },
122
123 handleWrapperClick () {
124 if (this.closeOnClickModal) {
125 this.handleAction(this.distinguishCancelAndClose ? 'close' : 'cancel');
126 }
127 },
128
129 handleInputEnter () {
130 if (this.inputType !== 'textarea') {
131 return this.handleAction('confirm');
132 }
133 },
134
135 handleAction (action) {
136 if (this.$type === 'prompt' && action === 'confirm' && !this.validate()) {
137 return;
138 }
139 this.action = action;
140 if (typeof this.beforeClose === 'function') {
141 this.close = this.getSafeClose();
142 this.beforeClose(action, this, this.close);
143 } else {
144 this.doClose();
145 }
146 },
147
148 validate () {
149 if (this.$type === 'prompt') {
150 const inputPattern = this.inputPattern;
151 if (inputPattern && !inputPattern.test(this.inputValue || '')) {
152 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
153 addClass(this.getInputElement(), 'invalid');
154 return false;
155 }
156 const inputValidator = this.inputValidator;
157 if (typeof inputValidator === 'function') {
158 const validateResult = inputValidator(this.inputValue);
159 if (validateResult === false) {
160 this.editorErrorMessage = this.inputErrorMessage || t('el.messagebox.error');
161 addClass(this.getInputElement(), 'invalid');
162 return false;
163 }
164 if (typeof validateResult === 'string') {
165 this.editorErrorMessage = validateResult;
166 addClass(this.getInputElement(), 'invalid');
167 return false;
168 }
169 }
170 }
171 this.editorErrorMessage = '';
172 removeClass(this.getInputElement(), 'invalid');
173 return true;
174 },
175 getFirstFocus () {
176 const btn = this.$el.querySelector('.el-message-box__btns .el-button');
177 const title = this.$el.querySelector('.el-message-box__btns .el-message-box__title');
178 return btn || title;
179 },
180 getInputElement () {
181 const inputRefs = this.$refs.input.$refs;
182 return inputRefs.input || inputRefs.textarea;
183 },
184 handleClose () {
185 this.handleAction('close');
186 }
187 },
188
189 watch: {
190 inputValue: {
191 immediate: true,
192 handler (val) {
193 this.$nextTick(_ => {
194 if (this.$type === 'prompt' && val !== null) {
195 this.validate();
196 }
197 });
198 }
199 },
200
201 visible (val) {
202 if (val) {
203 this.uid++;
204 if (this.$type === 'alert' || this.$type === 'confirm') {
205 this.$nextTick(() => {
206 this.$refs.confirm.$el.focus();
207 });
208 }
209 this.focusAfterClosed = document.activeElement;
210 messageBox = new Dialog(this.$el, this.focusAfterClosed, this.getFirstFocus());
211 }
212
213 // prompt
214 if (this.$type !== 'prompt') return;
215 if (val) {
216 setTimeout(() => {
217 if (this.$refs.input && this.$refs.input.$el) {
218 this.getInputElement().focus();
219 }
220 }, 500);
221 } else {
222 this.editorErrorMessage = '';
223 removeClass(this.getInputElement(), 'invalid');
224 }
225 }
226 },
227
228 mounted () {
229 this.$nextTick(() => {
230 if (this.closeOnHashChange) {
231 window.addEventListener('hashchange', this.close);
232 }
233 });
234 },
235
236 beforeDestroy () {
237 if (this.closeOnHashChange) {
238 window.removeEventListener('hashchange', this.close);
239 }
240 setTimeout(() => {
241 messageBox.closeDialog();
242 });
243 },
244
245 data () {
246 return {
247 uid: 1,
248 title: undefined,
249 message: '',
250 type: '',
251 iconClass: '',
252 customClass: '',
253 showInput: false,
254 inputValue: null,
255 inputPlaceholder: '',
256 inputType: 'text',
257 inputPattern: null,
258 inputValidator: null,
259 inputErrorMessage: '',
260 showConfirmButton: true,
261 showCancelButton: false,
262 action: '',
263 confirmButtonText: '',
264 cancelButtonText: '',
265 confirmButtonLoading: false,
266 cancelButtonLoading: false,
267 confirmButtonClass: '',
268 confirmButtonDisabled: false,
269 cancelButtonClass: '',
270 editorErrorMessage: null,
271 callback: null,
272 dangerouslyUseHTMLString: false,
273 focusAfterClosed: null,
274 isOnComposition: false,
275 distinguishCancelAndClose: false
276 };
277 }
278 };
279 </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: $light-blue;
100 width: 500px;
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: #fff;
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: 2000;
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-con">
2 <div class="navbar" v-theme.background="mTheme"> 3 <div class="navbar" v-theme.background="mTheme">
3 <div class="logo"> 4 <div class="logo">
4 <img v-if="logo" :src="logo" class="header-logo"> 5 <img v-if="logo" :src="logo" class="header-logo">
...@@ -19,16 +20,26 @@ ...@@ -19,16 +20,26 @@
19 </el-dropdown> 20 </el-dropdown>
20 </div> 21 </div>
21 </div> 22 </div>
23 <NoticeBar class="NoticeBar" :sendVal="sendVal" />
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,16 @@ export default { ...@@ -53,6 +64,16 @@ 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 left: 330px;
74 bottom: 0;
75 }
76
56 .el-dropdown-menu { 77 .el-dropdown-menu {
57 padding: 0 !important; 78 padding: 0 !important;
58 border: 1px solid #EBEEF5; 79 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 }
......
...@@ -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>
...@@ -26,19 +26,18 @@ ...@@ -26,19 +26,18 @@
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: '',
...@@ -131,14 +130,10 @@ export default { ...@@ -131,14 +130,10 @@ export default {
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 handleViewClick (scope) {
85 var sqcxBsm = scope.row.bsmSqcx;
86 this.$popup("申请查询记录", "sqcx/sqcxjl/components/sqcxjlInfo", {
87 formData: {
88 sqcxBsm: sqcxBsm,
84 }, 89 },
85 }; 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 }
......
...@@ -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 {
......
...@@ -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 () {
......
...@@ -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,37 +31,21 @@ ...@@ -31,37 +31,21 @@
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>
36 <ul> 35 <ul>
37 <li v-for="(item, index) in ywList" :key="index" @click="handleSelectYw(item, ywList)" 36 <li v-for="(item, index) in itemList" :key="index" @click="handleSelectYw(item, ywList)"
38 :class="item.cselect ? 'cactive' : ''"> 37 :class="item.cselect ? 'cactive' : ''">
39 <p> 38 <p>
40 {{ item.djywmc }}<br> 39 {{ item.djywmc }}<br>
41 {{ item.nodename }} 40 {{ item.nodename }}
42 </p> 41 </p>
43 42
44 <p v-if="item.sffqlc == 1" class="active" @click.stop="handleCollection(item)">
45 <i class="el-icon-star-off active"></i>
46 </p>
47 </li>
48 </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)"> 43 <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)">
59 <i class="el-icon-star-off" :class="item.userCollect == 1 ? 'active' : ''"></i> 44 <i class="el-icon-star-off" :class="item.userCollect == 1 ? 'active' : ''"></i>
60 </p> 45 </p>
61 </li> 46 </li>
62 </ul> 47 </ul>
63 </div> 48 </div>
64 </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>
67 </div> 51 </div>
...@@ -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,6 +177,11 @@ export default { ...@@ -178,6 +177,11 @@ export default {
178 } 177 }
179 }) 178 })
180 } else { 179 } else {
180 this.$confirm('此操作将取消收藏, 是否继续?', '提示', {
181 confirmButtonText: '确定',
182 cancelButtonText: '取消',
183 type: 'warning'
184 }).then(() => {
181 deleteCollectBiz(item.bsmSqyw).then(res => { 185 deleteCollectBiz(item.bsmSqyw).then(res => {
182 if (res.code == 200) { 186 if (res.code == 200) {
183 item.userCollect = '2' 187 item.userCollect = '2'
...@@ -188,6 +192,12 @@ export default { ...@@ -188,6 +192,12 @@ export default {
188 that.getDataList() 192 that.getDataList()
189 } 193 }
190 }) 194 })
195 }).catch(() => {
196 this.$message({
197 type: 'info',
198 message: '已取消收藏'
199 })
200 })
191 } 201 }
192 }, 202 },
193 handleSelect (item) { 203 handleSelect (item) {
...@@ -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) => {
......