apply-clients 3.4.3 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/AndroidApp.vue +18 -18
- package/src/android.js +1 -1
- package/src/apply.js +39 -20
- package/src/applyAndroid.js +23 -9
- package/src/components/android/AppOnetomany.vue +47 -5
- package/src/components/android/AppServiceView.vue +745 -566
- package/src/components/android/AppSign.vue +154 -142
- package/src/components/android/AppTakePic.vue +11 -11
- package/src/components/android/AreaSelect/AppQrcodeReader.vue +73 -0
- package/src/components/android/AreaSelect/AppResAreaMapGroup.vue +148 -0
- package/src/components/android/AreaSelect/AppResAreaSelect.vue +108 -0
- package/src/components/android/AreaSelect/AppResAreaSelectGroup.vue +142 -0
- package/src/components/android/Function/AppFunctionServiceControl.vue +344 -0
- package/src/components/android/Function/AppInstallFunction.vue +366 -0
- package/src/components/android/Process/AppExplorationUser.vue +217 -37
- package/src/components/android/Process/AppServiceControl.vue +1708 -757
- package/src/components/android/Process/Processes/AppAddMaterialScience.vue +477 -0
- package/src/components/android/Process/Processes/AppBuildSign.vue +46 -0
- package/src/components/android/Process/Processes/AppChargeManagement.vue +637 -0
- package/src/components/android/Process/Processes/AppDevicesManagement.vue +519 -0
- package/src/components/android/Process/Processes/AppInstallationDetails.vue +482 -456
- package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +298 -0
- package/src/components/android/Process/Processes/selectApply.vue +250 -0
- package/src/components/android/Process/Processes/selectUserinfo.vue +182 -0
- package/src/components/android/Supervisory/AppProcessSupervisory.vue +205 -71
- package/src/components/android/Supervisory/AppSupervisoryCart.vue +156 -121
- package/src/components/common/TabButton.vue +149 -0
- package/src/components/common/Tabs.vue +67 -0
- package/src/components/image/dwg.jpg +0 -0
- package/src/components/image/txt.jpg +0 -0
- package/src/components/image//345/221/250/345/217/243/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//350/245/277/345/215/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/203/270/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/241/271/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/271/277/351/202/221/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +272 -53
- package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +3 -3
- package/src/components/product/AreaSelect/MyAreaSelect.vue +423 -0
- package/src/components/product/AreaSelect/ResAreaSelect.vue +106 -0
- package/src/components/product/AreaSelect/ResAreaSelectGroup.vue +150 -0
- package/src/components/product/AreaSelect/utils/EventListener.js +29 -0
- package/src/components/product/AreaSelect/utils/coerceBoolean.js +7 -0
- package/src/components/product/Function/InstallFunction.vue +3 -2
- package/src/components/product/Function/InstallInfoSelect.vue +41 -21
- package/src/components/product/Function/Service/FunctionServiceControl.vue +96 -71
- package/src/components/product/GaoDeMapComponents/GaoDeMap.vue +231 -0
- package/src/components/product/Install/InstallProject.vue +194 -0
- package/src/components/product/OldApply/Handle/HandleApply.vue +337 -0
- package/src/components/product/OldApply/Monitor/MonitorApply.vue +360 -0
- package/src/components/product/OldApply/OldApply.vue +209 -0
- package/src/components/product/OldApply/OldApplyMessage.vue +420 -0
- package/src/components/product/Onetomany.vue +40 -11
- package/src/components/product/Process/ExplorationSelect.vue +495 -417
- package/src/components/product/Process/ExplorationUser.vue +145 -94
- package/src/components/product/Process/Processes/InstallationDetails.vue +610 -592
- package/src/components/product/Process/Processes/Print/printCharge.vue +166 -142
- package/src/components/product/Process/Processes/Print/printChargepc.vue +142 -0
- package/src/components/product/Process/Processes/Print/printRefund.vue +196 -0
- package/src/components/product/Process/Processes/addMaterialScience.vue +454 -0
- package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +4 -0
- package/src/components/product/Process/Processes/chargeManagement.vue +656 -638
- package/src/components/product/Process/Processes/devicesManagement.vue +484 -478
- package/src/components/product/Process/Processes/selectApply.vue +2 -2
- package/src/components/product/Process/Service/ServiceControl.vue +628 -10
- package/src/components/product/Process/ShowBackReason.vue +33 -0
- package/src/components/product/ServiceView.vue +981 -631
- package/src/components/product/Stop/StopApply.vue +26 -30
- package/src/components/product/Stop/StopApplyList.vue +27 -25
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +732 -34
- package/src/components/product/Supervisory/SupervisoryControl.vue +38 -1
- package/src/components/product/Supervisory/SupervisoryList.vue +404 -233
- package/src/components/product/Supervisory/SupervisoryhCart.vue +51 -28
- package/src/components/product/VueUtils/ApplyUpload.vue +40 -38
- package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -0
- package/src/components/product/VueUtils/ToolsPage.vue +51 -0
- package/src/components/product/VueUtils/Tree.vue +330 -0
- package/src/expandcssAndroid.less +362 -879
- package/src/main.js +3 -0
|
@@ -1,121 +1,156 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div style="padding: 10px">
|
|
3
|
-
<div partial class="auto app-text panel" style="margin-bottom: 20px">
|
|
4
|
-
<div class="panel-body panel-self">
|
|
5
|
-
<div class="col-xs-
|
|
6
|
-
<p class="col-xs-
|
|
7
|
-
<p class="col-xs-
|
|
8
|
-
</div>
|
|
9
|
-
<div class="col-xs-
|
|
10
|
-
<p class="col-xs-
|
|
11
|
-
<p class="col-xs-
|
|
12
|
-
</div>
|
|
13
|
-
<div class="col-xs-12">
|
|
14
|
-
<p class="col-xs-3 text-left font"><b
|
|
15
|
-
<p class="col-xs-9 text-left input-font">{{ selectdata.
|
|
16
|
-
</div>
|
|
17
|
-
<div class="col-xs-
|
|
18
|
-
<p class="col-xs-
|
|
19
|
-
<p class="col-xs-
|
|
20
|
-
</div>
|
|
21
|
-
<div class="col-xs-
|
|
22
|
-
<p class="col-xs-
|
|
23
|
-
<p class="col-xs-
|
|
24
|
-
</div>
|
|
25
|
-
<div class="col-xs-
|
|
26
|
-
<p class="col-xs-
|
|
27
|
-
<p class="col-xs-
|
|
28
|
-
</div>
|
|
29
|
-
<div class="col-xs-
|
|
30
|
-
<p class="col-xs-
|
|
31
|
-
<p class="col-xs-
|
|
32
|
-
</div>
|
|
33
|
-
<div class="col-xs-
|
|
34
|
-
<p class="col-xs-
|
|
35
|
-
<p class="col-xs-
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
</div>
|
|
56
|
-
</template>
|
|
57
|
-
|
|
58
|
-
<script>
|
|
59
|
-
import {HttpResetClass} from 'vue-client'
|
|
60
|
-
export default {
|
|
61
|
-
title: '流程节点',
|
|
62
|
-
props: ['selectdata'],
|
|
63
|
-
data () {
|
|
64
|
-
return {
|
|
65
|
-
defnames: []
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div style="padding: 10px">
|
|
3
|
+
<div partial class="auto app-text panel" style="margin-bottom: 20px">
|
|
4
|
+
<div class="panel-body panel-self">
|
|
5
|
+
<div class="col-xs-12">
|
|
6
|
+
<p class="col-xs-3 text-left font"><b>客户名称:</b></p>
|
|
7
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_user_name }}</p>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="col-xs-12">
|
|
10
|
+
<p class="col-xs-3 text-left font"><b>电  话:</b></p>
|
|
11
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_phone }}</p>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="col-xs-12">
|
|
14
|
+
<p class="col-xs-3 text-left font"><b>工程编号:</b></p>
|
|
15
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_apply_num }}</p>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-xs-12">
|
|
18
|
+
<p class="col-xs-3 text-left font"><b>客户编号:</b></p>
|
|
19
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_userinfo_code }}</p>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="col-xs-12">
|
|
22
|
+
<p class="col-xs-3 text-left font"><b>报建类型:</b></p>
|
|
23
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_apply_type }}</p>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="col-xs-12">
|
|
26
|
+
<p class="col-xs-3 text-left font"><b>办理环节:</b></p>
|
|
27
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.defname }}</p>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="col-xs-12">
|
|
30
|
+
<p class="col-xs-3 text-left font"><b>地  址:</b></p>
|
|
31
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_address }}</p>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="col-xs-12">
|
|
34
|
+
<p class="col-xs-3 text-left font"><b>报建日期:</b></p>
|
|
35
|
+
<p class="col-xs-9 text-left input-font">{{ selectdata.f_apply_date }}</p>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="row" v-for="(i,row) in defnames">
|
|
40
|
+
<div :class="row.id === selectdata.actid ? 'item selectIndex' : 'item'" @click="shouju(row)">
|
|
41
|
+
{{row.defname}}
|
|
42
|
+
<span v-if="row.state === '结束'">({{ row.person }})</span>
|
|
43
|
+
<span v-if="row.state !== '结束' && row.actorexpression !== null && row.actorexpression.indexOf('PI') === 0">
|
|
44
|
+
({{ row.peruser }})
|
|
45
|
+
</span>
|
|
46
|
+
<br>
|
|
47
|
+
{{ row.finishtime ? row.finishtime : row.sendtime }}<br>
|
|
48
|
+
<span v-if="row.defname==='报装缴费'"> 点击此节点可查看缴费单 </span>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="arrow glyphicon glyphicon-menu-down" v-if="i != defnames.length-1" aria-hidden="true"></div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="row" v-for="(i,row) in shoufeis">
|
|
53
|
+
<apply-print-charge :selectdata="selectdata" :charge="shoufeis[i]" v-ref:print v-if="shouju2"></apply-print-charge>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</template>
|
|
57
|
+
|
|
58
|
+
<script>
|
|
59
|
+
import {HttpResetClass} from 'vue-client'
|
|
60
|
+
export default {
|
|
61
|
+
title: '流程节点',
|
|
62
|
+
props: ['selectdata'],
|
|
63
|
+
data () {
|
|
64
|
+
return {
|
|
65
|
+
defnames: [],
|
|
66
|
+
shouju2:false,
|
|
67
|
+
shoufeis:[]
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
ready () {
|
|
71
|
+
this.initial()
|
|
72
|
+
},
|
|
73
|
+
methods: {
|
|
74
|
+
async shouju(row){
|
|
75
|
+
if(!this.shouju2){
|
|
76
|
+
this.$showMessage('往下滑动可看到缴费单!')
|
|
77
|
+
}
|
|
78
|
+
console.log("进入方法 哈哈哈哈哈哈")
|
|
79
|
+
delete row.id
|
|
80
|
+
row = Object.assign({},this.selectdata,row)
|
|
81
|
+
if(row.defname =='报装缴费'){
|
|
82
|
+
console.log("点击缴费了 嘻嘻嘻嘻")
|
|
83
|
+
let http = new HttpResetClass()
|
|
84
|
+
let data = {
|
|
85
|
+
tablename: 't_charge_record',
|
|
86
|
+
condition: `f_process_id = '${this.selectdata.f_process_id}'`
|
|
87
|
+
}
|
|
88
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data:data}, {
|
|
89
|
+
resolveMsg: null,
|
|
90
|
+
rejectMsg: '收费信息查询失败!!!'
|
|
91
|
+
})
|
|
92
|
+
debugger
|
|
93
|
+
console.log('打印收费记录',res.data.length)
|
|
94
|
+
if(res.data.length >0){
|
|
95
|
+
console.log("发请求了 哈哈哈哈哈哈")
|
|
96
|
+
this.shoufeis=res.data
|
|
97
|
+
this.shouju2=!this.shouju2
|
|
98
|
+
}else{
|
|
99
|
+
console.log("没数据 呜呜呜")
|
|
100
|
+
this.$showMessage('该数据没有缴费记录!!!')
|
|
101
|
+
return
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
async initial() {
|
|
106
|
+
// 获取流程节点信息
|
|
107
|
+
let http = new HttpResetClass()
|
|
108
|
+
let data = {
|
|
109
|
+
processid: this.selectdata.f_process_id
|
|
110
|
+
}
|
|
111
|
+
let res = await http.load(
|
|
112
|
+
'POST',
|
|
113
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/getAllNode`,
|
|
114
|
+
// `rs/sql/getAllNode`,
|
|
115
|
+
{data: data},
|
|
116
|
+
{
|
|
117
|
+
resolveMsg:null,
|
|
118
|
+
rejectMsg:null
|
|
119
|
+
})
|
|
120
|
+
this.defnames = res.data
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
watch: {
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
</script>
|
|
127
|
+
|
|
128
|
+
<style scoped>
|
|
129
|
+
.app-text {
|
|
130
|
+
font-size: 12px;
|
|
131
|
+
}
|
|
132
|
+
.panel-self{
|
|
133
|
+
border-radius: 10px;
|
|
134
|
+
border:1px solid #499EDF;
|
|
135
|
+
background-color: #F8F8F8;
|
|
136
|
+
}
|
|
137
|
+
.row{
|
|
138
|
+
padding: 0 40px;
|
|
139
|
+
text-align: center;
|
|
140
|
+
height: auto;
|
|
141
|
+
}
|
|
142
|
+
.item{
|
|
143
|
+
border-radius: 2em;
|
|
144
|
+
border: 1px solid silver;
|
|
145
|
+
line-height: 25px;
|
|
146
|
+
}
|
|
147
|
+
.arrow{
|
|
148
|
+
width: 100%;
|
|
149
|
+
color: #5ac0d9;
|
|
150
|
+
font-weight: bold;
|
|
151
|
+
}
|
|
152
|
+
.selectIndex{
|
|
153
|
+
background-color: #5ac0d9;
|
|
154
|
+
color: #ffffff;
|
|
155
|
+
}
|
|
156
|
+
</style>
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class='flex foot_tabset1'>
|
|
3
|
+
<!-- Nav tabs -->
|
|
4
|
+
<ul class="nav nav-{{navStyle}}" role="tablist" style="margin-left: 1%">
|
|
5
|
+
<li style="margin-right: 10px"
|
|
6
|
+
:id="'vc-tabset-li-'+attach +'-'+$index"
|
|
7
|
+
v-for="r in renderData"
|
|
8
|
+
@click.prevent="handleTabListClick($index, r)"
|
|
9
|
+
:disabled="r.disabled"
|
|
10
|
+
>
|
|
11
|
+
<button class="button_new" style="width: max-content" v-bind:class="{
|
|
12
|
+
'btn-succ': ($index === active),
|
|
13
|
+
'disabled': r.disabled
|
|
14
|
+
}">
|
|
15
|
+
<slot name="header">
|
|
16
|
+
{{r.header}}
|
|
17
|
+
</slot>
|
|
18
|
+
<!-- 关闭按钮 -->
|
|
19
|
+
<span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close" :id="'vc-tabset-close-'+attach +'-'+$index"></span>
|
|
20
|
+
</button>
|
|
21
|
+
|
|
22
|
+
</li>
|
|
23
|
+
</ul>
|
|
24
|
+
|
|
25
|
+
<!-- Tab panes -->
|
|
26
|
+
<div class="tab-content span" v-el:tab-content>
|
|
27
|
+
<slot></slot>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</template>
|
|
31
|
+
|
|
32
|
+
<script>
|
|
33
|
+
import {remove} from 'vue-client/src/stores/Remove.js'
|
|
34
|
+
|
|
35
|
+
export default {
|
|
36
|
+
props: {
|
|
37
|
+
navStyle: {
|
|
38
|
+
type: String,
|
|
39
|
+
default: 'tabs'
|
|
40
|
+
},
|
|
41
|
+
effect: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: 'fadein'
|
|
44
|
+
},
|
|
45
|
+
active: {
|
|
46
|
+
type: Number,
|
|
47
|
+
default: 0
|
|
48
|
+
},
|
|
49
|
+
close: {
|
|
50
|
+
type: Boolean,
|
|
51
|
+
default: false
|
|
52
|
+
},
|
|
53
|
+
attach: {
|
|
54
|
+
type: String,
|
|
55
|
+
default: 'vuestrap'
|
|
56
|
+
},
|
|
57
|
+
content: {}
|
|
58
|
+
},
|
|
59
|
+
ready () {
|
|
60
|
+
remove.$on('remove', (name) => {
|
|
61
|
+
console.log('tabset收$on 到的名字为:', name)
|
|
62
|
+
this.$removeTab(name)
|
|
63
|
+
})
|
|
64
|
+
},
|
|
65
|
+
data () {
|
|
66
|
+
return {
|
|
67
|
+
// 数据格式:{comp, header,disabled}
|
|
68
|
+
// - comp: 当前页签对应的tab组件
|
|
69
|
+
renderData: []
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
methods: {
|
|
73
|
+
handleTabListClick (index, el) {
|
|
74
|
+
this.$parent.show[index] = true
|
|
75
|
+
if (el.comp._scope && el.comp._scope.tab) {
|
|
76
|
+
this.$dispatch('tab-changed', el.comp._scope.tab.comp.name)
|
|
77
|
+
}
|
|
78
|
+
if (!el.disabled) this.active = index
|
|
79
|
+
},
|
|
80
|
+
// deletetab函数为自己添加
|
|
81
|
+
deletetTab (el) {
|
|
82
|
+
this.$removeTab(el.comp._scope.tab.comp.name)
|
|
83
|
+
remove.$emit('delete', el.comp._scope.tab.comp.name)
|
|
84
|
+
},
|
|
85
|
+
// 根据删除也下标,修改所有页签的下标
|
|
86
|
+
modifyAllIndex (index) {
|
|
87
|
+
let cur = this.active
|
|
88
|
+
this.$nextTick(() => {
|
|
89
|
+
// 关闭页签以后的多有页签的的下标向前挪动一位,之前的页签不动
|
|
90
|
+
for (var i = index; i < this.renderData.length; i++) {
|
|
91
|
+
this.renderData[i].comp.index -= 1
|
|
92
|
+
}
|
|
93
|
+
// 修改激活页
|
|
94
|
+
// 获取当前激活页签下标,关闭在当前激活页之后(包含当前激活页),当前激活页下标不变
|
|
95
|
+
// 当关闭当前激活页之前(激活页向前移动一位)
|
|
96
|
+
if (this.active > index || this.active === this.renderData.length) {
|
|
97
|
+
this.active = cur - 1
|
|
98
|
+
} else if (cur === 0) {
|
|
99
|
+
this.active = 0
|
|
100
|
+
} else {
|
|
101
|
+
this.active = cur
|
|
102
|
+
}
|
|
103
|
+
if (this.active === -1) {
|
|
104
|
+
this.$dispatch('tab-changed', null)
|
|
105
|
+
} else {
|
|
106
|
+
this.$dispatch('tab-changed', this.renderData[this.active].comp._scope.tab.comp.name)
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
events: {
|
|
112
|
+
'delete' (index) {
|
|
113
|
+
this.modifyAllIndex(index)
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<style scoped>
|
|
120
|
+
ul > li > a {
|
|
121
|
+
position: relative;
|
|
122
|
+
}
|
|
123
|
+
ul > li > a > span {
|
|
124
|
+
display: none;
|
|
125
|
+
}
|
|
126
|
+
/*ul > li > a:hover > span {*/
|
|
127
|
+
/*display: initial;*/
|
|
128
|
+
/*position: absolute;*/
|
|
129
|
+
/*right: 0;*/
|
|
130
|
+
/*top: 35%;*/
|
|
131
|
+
/*border: 1px solid #EAEAEA;*/
|
|
132
|
+
/*}*/
|
|
133
|
+
/*ul > li > a:hover > span:hover {*/
|
|
134
|
+
/*border: 1px solid #EAEAEA;*/
|
|
135
|
+
/*color: #5cb95c;*/
|
|
136
|
+
/*}*/
|
|
137
|
+
ul > li > button {
|
|
138
|
+
background-color: #FFFFFF;
|
|
139
|
+
border-radius: 4px;
|
|
140
|
+
color: #999;
|
|
141
|
+
border: 1px solid #5cb95c;
|
|
142
|
+
}
|
|
143
|
+
.btn-succ{
|
|
144
|
+
background-color: #6aa6e2;
|
|
145
|
+
border-radius: 4px;
|
|
146
|
+
color: #fff;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
</style>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div role="tabpanel" class="tab-pane"
|
|
3
|
+
v-bind:class="{hide:!show}"
|
|
4
|
+
v-if="show"
|
|
5
|
+
:transition="transition"
|
|
6
|
+
>
|
|
7
|
+
<slot></slot>
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import coerceBoolean from 'vue-client/src/vue-strap/src/utils/coerceBoolean.js'
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
props: {
|
|
16
|
+
header: {
|
|
17
|
+
type: String
|
|
18
|
+
},
|
|
19
|
+
disabled: {
|
|
20
|
+
type: Boolean,
|
|
21
|
+
coerce: coerceBoolean,
|
|
22
|
+
default: false
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
data () {
|
|
26
|
+
return {
|
|
27
|
+
index: 0,
|
|
28
|
+
show: false
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
watch: {
|
|
32
|
+
'header' (val) {
|
|
33
|
+
// header变化时,通知tabset
|
|
34
|
+
let data = this.$parent.renderData.find((v) => v.comp === this)
|
|
35
|
+
data.header = val
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
computed: {
|
|
39
|
+
show () {
|
|
40
|
+
return (this.$parent.active === this.index)
|
|
41
|
+
},
|
|
42
|
+
transition () {
|
|
43
|
+
return this.$parent.effect
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
created () {
|
|
47
|
+
this.$parent.renderData.push({
|
|
48
|
+
comp: this,
|
|
49
|
+
header: this.header,
|
|
50
|
+
disabled: this.disabled
|
|
51
|
+
})
|
|
52
|
+
},
|
|
53
|
+
ready () {
|
|
54
|
+
// 找到当前tab的索引
|
|
55
|
+
this.index = this.$parent.$children.findIndex((v) => v.$el === this.$el)
|
|
56
|
+
},
|
|
57
|
+
beforeDestroy () {
|
|
58
|
+
this.$parent.renderData.splice(this.index, 1)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<style scoped>
|
|
64
|
+
.tab-content > .tab-pane {
|
|
65
|
+
display: block;
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|