apply-clients 3.0.2 → 3.0.5-2
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/dist.zip +0 -0
- package/index.html +1 -1
- package/package.json +4 -3
- package/src/App.vue +126 -15
- package/src/apply.js +18 -0
- package/src/bootstrap/fonts/PingFangSC-Regular.ttf +0 -0
- package/src/bootstrap/less/bootstrap.less +1 -2
- package/src/bootstrap/less/standard.less +208 -0
- package/src/components/Util.js +4 -0
- package/src/components/app_apply/FieldExploration.vue +2 -2
- package/src/components/app_apply/Ventilation.vue +2 -2
- package/src/components/image/doc.jpg +0 -0
- package/src/components/image/excel.jpg +0 -0
- package/src/components/image/pdf.jpg +0 -0
- package/src/components/image//345/233/276/345/261/20212.png +0 -0
- package/src/components/image//345/233/276/345/261/20213.png +0 -0
- package/src/components/image//345/233/276/345/261/20216.png +0 -0
- package/src/components/image//345/244/232/350/276/271/345/275/2422.png +0 -0
- package/src/components/image//345/244/232/350/276/271/345/275/2422/346/213/267/350/264/235.png +0 -0
- package/src/components/image//346/244/255/345/234/2062.png +0 -0
- package/src/components/image//346/244/255/345/234/2065.png +0 -0
- package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/235.png +0 -0
- package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/2352.png +0 -0
- package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/2353.png +0 -0
- package/src/components/image//347/273/2044.png +0 -0
- package/src/components/image//347/273/2045.png +0 -0
- package/src/components/image//347/273/2046.png +0 -0
- package/src/components/image//350/257/235/345/212/241/347/273/237/350/256/241/346/225/260/346/215/256/345/261/225/347/244/272.png +0 -0
- package/src/components/product/Function/InstallFunction.vue +9 -8
- package/src/components/product/Function/InstallInfoSelect.vue +98 -69
- package/src/components/product/Function/Service/FunctionServiceControl.vue +81 -3
- package/src/components/product/Function/functions/AddContract.vue +161 -139
- package/src/components/product/Function/functions/BuyerMessage.vue +522 -0
- package/src/components/product/Function/functions/InstallFee.vue +1117 -891
- package/src/components/product/MaterialBatchList.vue +109 -0
- package/src/components/product/MaterialBatchManage.vue +34 -0
- package/src/components/product/Procedures/ProceduresDataGrid.vue +1022 -0
- package/src/components/product/Process/ExplorationSelect.vue +208 -73
- package/src/components/product/Process/ExplorationUser.vue +94 -42
- package/src/components/product/Process/MaterialUseList.vue +159 -0
- package/src/components/product/Process/ModifyUserFiles.vue +15 -5
- package/src/components/product/Process/ProcessInfo/history_control.vue +139 -110
- package/src/components/product/Process/Processes/ApplyUpload.vue +279 -0
- package/src/components/product/Process/Processes/CustomerMaterialMessage.vue +501 -212
- package/src/components/product/Process/Processes/CustomerRecordMessage.vue +949 -753
- package/src/components/product/Process/Processes/ProjectSettlement.vue +549 -35
- package/src/components/product/Process/Processes/ReceiveBatch.vue +314 -168
- package/src/components/product/Process/Processes/Service/ApplyChangeHistory.vue +105 -0
- package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +44 -16
- package/src/components/product/Process/Processes/Service/ServiceControl.vue +2495 -1008
- package/src/components/product/Process/Processes/Upload.vue +532 -0
- package/src/components/product/Process/ShowBackReason.vue +1 -1
- package/src/components/product/ServiceView.vue +364 -124
- package/src/components/product/Statistics/ApplyStatisticsROOT.vue +27 -0
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +212 -23
- package/src/components/product/Supervisory/SupervisoryControl.vue +79 -29
- package/src/components/product/Supervisory/SupervisoryList.vue +182 -41
- package/src/components/product/Supervisory/SupervisoryhCart.vue +4 -2
- package/src/components/product/VueUtils/Tree.vue +330 -0
- package/src/components/product/VueUtils/rightview/InstallCardList2.vue +29 -38
- package/src/main.js +2 -0
- package/src/stores/ApplyLoadParams.js +1 -1
- package/src/stores/PagedListLogic.js +173 -0
- package/.npmignore +0 -12
- package/node_modules.7z +0 -0
- package/yarn.lock +0 -9008
package/dist.zip
ADDED
|
Binary file
|
package/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
|
|
7
7
|
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
|
8
8
|
<META HTTP-EQUIV="expires" CONTENT="0">
|
|
9
|
-
<title
|
|
9
|
+
<title>荣浩燃气报装系统</title>
|
|
10
10
|
<style media="screen">
|
|
11
11
|
/*url(./static/newmainbg.jpg)*/
|
|
12
12
|
body{width: 100%;background:#7f8eaf no-repeat center bottom; background-size: cover;}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apply-clients",
|
|
3
|
-
"version": "3.0.2",
|
|
3
|
+
"version": "3.0.5-2",
|
|
4
4
|
"description": "报建前端模块",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"directories": {
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"express": "^4.17.0",
|
|
60
60
|
"extract-text-webpack-plugin": "^1.0.1",
|
|
61
61
|
"file-loader": "^0.8.4",
|
|
62
|
+
"form-create": "^1.6.6",
|
|
62
63
|
"function-bind": "^1.0.2",
|
|
63
64
|
"html-webpack-plugin": "^2.8.1",
|
|
64
65
|
"http-proxy-middleware": "^0.11.0",
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
"karma-spec-reporter": "0.0.31",
|
|
77
78
|
"karma-webpack": "^2.0.2",
|
|
78
79
|
"ldap-clients": "^0.5.1",
|
|
79
|
-
"material-client": "1.
|
|
80
|
+
"material-client": "^1.1.2",
|
|
80
81
|
"mkdirp": "^0.5.1",
|
|
81
82
|
"mocha": "^3.2.0",
|
|
82
83
|
"ncp": "^2.0.0",
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
"system-clients": "^1.6.16",
|
|
92
93
|
"system-phone": "1.1.18",
|
|
93
94
|
"url-loader": "^0.5.7",
|
|
94
|
-
"vue-client": "
|
|
95
|
+
"vue-client": "1.21.48",
|
|
95
96
|
"vue-hot-reload-api": "^1.2.0",
|
|
96
97
|
"vue-html-loader": "^1.0.0",
|
|
97
98
|
"vue-loader": "^8.2.1",
|
package/src/App.vue
CHANGED
|
@@ -2,26 +2,137 @@
|
|
|
2
2
|
<app-base class="bg">
|
|
3
3
|
<div class='flex'>
|
|
4
4
|
<article>
|
|
5
|
-
|
|
6
|
-
<!--<route :comp="{name: 'vender-management'}"></route>-->
|
|
7
|
-
<route :comp="{name: 'login'}"></route>
|
|
8
|
-
<!--<route :comp="{name: 'login'}"></route>-->
|
|
9
|
-
<!-- <route :comp="{name: 'load-data'}"></route> -->
|
|
10
|
-
<!-- <route :comp="{name: 'load-params', props: {componentName: 'login'}}"></route> -->
|
|
11
|
-
<!-- <route :comp="{name: 'load-params', props: {dataUrl: ['rs/sql/getMeterBrand','rs/sql/getPriceType','rs/sql/getMeterStyle'], componentName: 'login'}}"></route> -->
|
|
5
|
+
<route v-ref:route></route>
|
|
12
6
|
</article>
|
|
13
7
|
</div>
|
|
14
8
|
</app-base>
|
|
15
9
|
</template>
|
|
16
10
|
|
|
17
11
|
<script>
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
import co from 'co'
|
|
13
|
+
import $ from 'jquery'
|
|
20
14
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
Date.prototype.Format = function (fmt) {
|
|
16
|
+
var o = {
|
|
17
|
+
"M+": this.getMonth() + 1, //月份
|
|
18
|
+
"d+": this.getDate(), //日
|
|
19
|
+
"H+": this.getHours(), //小时
|
|
20
|
+
"m+": this.getMinutes(), //分
|
|
21
|
+
"s+": this.getSeconds(), //秒
|
|
22
|
+
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
23
|
+
"S": this.getMilliseconds() //毫秒
|
|
24
|
+
};
|
|
25
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
26
|
+
for (var k in o)
|
|
27
|
+
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
28
|
+
return fmt;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
let saveGen = function* (self) {
|
|
32
|
+
try {
|
|
33
|
+
yield self.$login.login(self.model.ename, self.model.password)
|
|
34
|
+
yield self.$appdata.load()
|
|
35
|
+
|
|
36
|
+
yield self.$getConfig(self, 'Login')
|
|
37
|
+
console.log('登录配置', self.config)
|
|
38
|
+
if (self.config.isMac) {
|
|
39
|
+
// 获取该登录人分公司下的mac配置
|
|
40
|
+
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
41
|
+
resolveMsg: null,
|
|
42
|
+
rejectMsg: null
|
|
43
|
+
}).catch(() => {
|
|
44
|
+
throw new Error('获取mac配置失败')
|
|
45
|
+
})
|
|
46
|
+
console.log('MAC地址信息', getMacs)
|
|
47
|
+
// 获取本地mac地址
|
|
48
|
+
let getLocalMac = yield self.$resetget('http://127.0.0.1:8003/loadmac', {
|
|
49
|
+
resolveMsg: null,
|
|
50
|
+
rejectMsg: null
|
|
51
|
+
}).catch(() => {
|
|
52
|
+
throw new Error('获取本地mac配置失败')
|
|
53
|
+
})
|
|
54
|
+
console.log('本地MAC地址信息', getLocalMac)
|
|
55
|
+
// 对Mac地址进行匹配
|
|
56
|
+
let macValidate = false
|
|
57
|
+
for (let i = 0; i < getLocalMac.data.mac.length; i++) {
|
|
58
|
+
for (let j = 0; j < getMacs.data.length; j++) {
|
|
59
|
+
if (getMacs.data[j].f_mac_number.toLocaleUpperCase() === getLocalMac.data.mac[i]) {
|
|
60
|
+
macValidate = true
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!macValidate) {
|
|
65
|
+
throw new Error('Mac地址验证失败, 请联系管理员!!')
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
self.$refs.route.init('home-page', {functions: self.$login.f})
|
|
69
|
+
} catch (ret) {
|
|
70
|
+
console.error('登录失败', ret)
|
|
71
|
+
let msg
|
|
72
|
+
if (ret instanceof Error) {
|
|
73
|
+
msg = ret
|
|
74
|
+
}
|
|
75
|
+
if (ret.status === 0) {
|
|
76
|
+
msg = '服务连接错误,请确认服务状态'
|
|
77
|
+
} else if (ret.status === 401) {
|
|
78
|
+
msg = ret.data
|
|
79
|
+
} else if (ret.status === 710) {
|
|
80
|
+
msg = ret.data
|
|
81
|
+
}
|
|
82
|
+
self.createCode()
|
|
83
|
+
self.picLyanzhengma = ''
|
|
84
|
+
yield self.$showMessage(msg)
|
|
85
|
+
self.model.ename = ''
|
|
86
|
+
self.model.password = ''
|
|
87
|
+
self.login = false
|
|
88
|
+
$('form').fadeIn(500)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export default {
|
|
92
|
+
data() {
|
|
93
|
+
return {
|
|
94
|
+
model: {
|
|
95
|
+
ename: null,
|
|
96
|
+
password: null
|
|
97
|
+
},
|
|
98
|
+
checkCode: '',
|
|
99
|
+
config: {}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
async ready() {
|
|
103
|
+
let self = this
|
|
104
|
+
var url = location.search;
|
|
105
|
+
var theRequest = new Object();
|
|
106
|
+
if (url.indexOf("?") != -1) {
|
|
107
|
+
var str = url.substr(1);
|
|
108
|
+
let strs = str.split("&");
|
|
109
|
+
for (var i = 0; i < strs.length; i++) {
|
|
110
|
+
theRequest[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (theRequest.ename && theRequest.password) {
|
|
114
|
+
self.model.ename = theRequest.ename
|
|
115
|
+
self.model.password = theRequest.password
|
|
116
|
+
let gen = saveGen(self)
|
|
117
|
+
return co(gen)
|
|
118
|
+
} else {
|
|
119
|
+
// this.$goto('login')
|
|
120
|
+
this.$refs.route.init('login')
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
methods: {
|
|
124
|
+
createCode() {
|
|
125
|
+
let code = "";
|
|
126
|
+
let codeLength = 4;//验证码的长度
|
|
127
|
+
let random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
|
|
128
|
+
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');//随机数
|
|
129
|
+
for (let i = 0; i < codeLength; i++) {
|
|
130
|
+
//循环操作
|
|
131
|
+
let index = Math.floor(Math.random() * 36);//取得随机数的索引(0~35)
|
|
132
|
+
code += random[index];//根据索引取得随机数加到code上
|
|
133
|
+
}
|
|
134
|
+
this.checkCode = code;//把code值赋给验证码
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
27
138
|
</script>
|
package/src/apply.js
CHANGED
|
@@ -17,8 +17,12 @@ export default function () {
|
|
|
17
17
|
Vue.component('exploration-select', (resolve) => { require(['./components/product/Process/ExplorationSelect'], resolve) })
|
|
18
18
|
// 报建流程业务报建改装流程入口
|
|
19
19
|
Vue.component('modify-user-files', (resolve) => { require(['./components/product/Process/ModifyUserFiles'], resolve) })
|
|
20
|
+
// 办理通气手续入口
|
|
21
|
+
Vue.component('procedures-datagrid', (resolve) => { require(['./components/product/Procedures/ProceduresDataGrid'], resolve) })
|
|
20
22
|
// 报建收费查看
|
|
21
23
|
Vue.component('apply-charge-search', (resolve) => { require(['./components/product/Process/Processes/Service/ApplyChargeSearch'], resolve) })
|
|
24
|
+
// 材料使用汇总
|
|
25
|
+
Vue.component('material-use-list', (resolve) => { require(['./components/product/Process/MaterialUseList'], resolve) })
|
|
22
26
|
// 预算材料
|
|
23
27
|
Vue.component('material-message', (resolve) => { require(['./components/product/Process/Processes/CustomerMaterialMessage'], resolve) })
|
|
24
28
|
//领取材料
|
|
@@ -35,8 +39,13 @@ export default function () {
|
|
|
35
39
|
Vue.component('building-message', (resolve) => { require(['./components/product/Process/Processes/CustomerBuildingMessage'], resolve) })
|
|
36
40
|
// 业务tab(control层)页
|
|
37
41
|
Vue.component('service-control', (resolve) => { require(['./components/product/Process/Processes/Service/ServiceControl'], resolve) })
|
|
42
|
+
// 更改历史
|
|
43
|
+
Vue.component('apply-change-history', (resolve) => { require(['./components/product/Process/Processes/Service/ApplyChangeHistory'], resolve) })
|
|
38
44
|
// 公共业务显示(view层)页
|
|
39
45
|
Vue.component('service-view', (resolve) => { require(['./components/product/ServiceView'], resolve) })
|
|
46
|
+
|
|
47
|
+
Vue.component('material-batch-list', (resolve) => { require(['./components/product/MaterialBatchList'], resolve) })
|
|
48
|
+
Vue.component('material-batch-manage', (resolve) => { require(['./components/product/MaterialBatchManage'], resolve) })
|
|
40
49
|
// 派工单tab页 废弃
|
|
41
50
|
// Vue.component('send-order', (resolve) => { require(['./components/product/Process/Processes/SendOrder'], resolve) })
|
|
42
51
|
// 停气碰口tab页
|
|
@@ -59,6 +68,8 @@ export default function () {
|
|
|
59
68
|
Vue.component('installinfoselect', (resolve) => { require(['./components/product/Function/InstallInfoSelect'], resolve) })
|
|
60
69
|
// 报建收费
|
|
61
70
|
Vue.component('installfee', (resolve) => { require(['./components/product/Function/functions/InstallFee'], resolve) })
|
|
71
|
+
// 报建收费
|
|
72
|
+
Vue.component('buyer-message', (resolve) => { require(['./components/product/Function/functions/BuyerMessage'], resolve) })
|
|
62
73
|
// 预缴费收费
|
|
63
74
|
Vue.component('prestorefee', (resolve) => { require(['./components/product/Function/functions/PrestoreFee'], resolve) })
|
|
64
75
|
// 预缴费
|
|
@@ -122,6 +133,8 @@ export default function () {
|
|
|
122
133
|
Vue.component('install-apply-cardlist', (resolve) => { require(['./components/product/VueUtils/rightview/InstallCardList2'], resolve) })
|
|
123
134
|
|
|
124
135
|
Vue.component('back-page', (resolve) => { require(['./components/product/VueUtils/ToolsPage'], resolve) })
|
|
136
|
+
|
|
137
|
+
Vue.component('tree2', (resolve) => { require(['./components/product/VueUtils/Tree'], resolve) })
|
|
125
138
|
// 流程监控总组件
|
|
126
139
|
Vue.component('supervisory-control', (resolve) => { require(['./components/product/Supervisory/SupervisoryControl'], resolve) })
|
|
127
140
|
Vue.component('supervisory-list', (resolve) => { require(['./components/product/Supervisory/SupervisoryList'], resolve) })
|
|
@@ -129,4 +142,9 @@ export default function () {
|
|
|
129
142
|
Vue.component('supervisory-baseinfo', (resolve) => { require(['./components/product/Supervisory/SupervisoryBaseInfo'], resolve) })
|
|
130
143
|
// 业务tab(control层)页
|
|
131
144
|
Vue.component('supervisory-service-control', (resolve) => { require(['./components/product/Supervisory/Service/SupervisoryServiceControl'], resolve) })
|
|
145
|
+
// 汇总查询入口 src/components/product/Statistics/ApplyStatisticsROOT.vue
|
|
146
|
+
Vue.component('apply-statistics-root', (resolve) => { require(['./components/product/Statistics/ApplyStatisticsROOT'], resolve) })
|
|
147
|
+
// 上传附件
|
|
148
|
+
// Vue.component('apply-upload', (resolve) => { require(['./components/product/Process/Processes/Upload'], resolve) })
|
|
149
|
+
Vue.component('apply-upload', (resolve) => { require(['./components/product/Process/Processes/ApplyUpload'], resolve) })
|
|
132
150
|
}
|
|
Binary file
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
|
|
2
|
+
/*=========================通用样式表=========================*/
|
|
3
|
+
@font-face {
|
|
4
|
+
font-family: PingFang;
|
|
5
|
+
src:url('../fonts/PingFangSC-Regular.ttf');
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/********************字体*****************/
|
|
10
|
+
/*字体标题_粗体*/
|
|
11
|
+
.font_bold_title{font-weight: bold; color: #333333;text-align: right;vertical-align: middle;}
|
|
12
|
+
/*字体正文_粗体*/
|
|
13
|
+
.font_bold_body{ font-family: PingFang; font-weight: bold;color: #666666;text-align: right;vertical-align: middle; }
|
|
14
|
+
/*字体_粗体*/
|
|
15
|
+
.font_bold_title1{ font-family: PingFang; font-weight: bold;color: #999999;text-align: right;vertical-align: middle;}
|
|
16
|
+
/*字体按钮_粗体*/
|
|
17
|
+
.font_bold_button{ font-family: PingFang; font-weight: bold;color: #ffffff;text-align: right;vertical-align: middle;}
|
|
18
|
+
/*字体蓝色_粗体*/
|
|
19
|
+
.font_bold_blue{ font-family: PingFang; font-weight: bold;color: #6aa6e2;text-align: right;vertical-align: middle;}
|
|
20
|
+
|
|
21
|
+
/*字体标题_正常*/
|
|
22
|
+
.font_normal_title{ font-family: PingFang; font-weight: normal;color: #333333!important;text-align: right;vertical-align: middle;}
|
|
23
|
+
/*字体正文_正常*/
|
|
24
|
+
.font_normal_body{ font-family: PingFang; font-weight: normal !important;color: #666666!important;text-align: right;vertical-align: middle;}
|
|
25
|
+
/*字体_正常*/
|
|
26
|
+
.font_normal_title1{ font-family: PingFang;font-weight: normal;color: #999999!important;text-align: right;vertical-align: middle;}
|
|
27
|
+
/*字体按钮_正常*/
|
|
28
|
+
.font_normal_button{ font-family: PingFang;font-weight: normal;color: #ffffff!important;text-align: right;vertical-align: middle;}
|
|
29
|
+
/*字体蓝色_正常*/
|
|
30
|
+
.font_normal_blue{ font-family: PingFang;font-weight: normal;color: #6aa6e2!important;text-align: right;vertical-align: middle;}
|
|
31
|
+
|
|
32
|
+
.search_area{background-color: #ffffff; border-radius: 10px;margin-bottom: 20px;padding: 20px}
|
|
33
|
+
.list_area{background-color: #ffffff; border-radius: 10px;padding: 20px}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/********************表格*****************/
|
|
37
|
+
.table_sy{margin-top: 6px}
|
|
38
|
+
/*表格表头*/
|
|
39
|
+
.table_sy thead tr th{background-color: #eaf5ff!important;color: #666666 !important;font-family: PingFang !important;font-weight: normal!important;}
|
|
40
|
+
/*表格主体_奇数行*/
|
|
41
|
+
.table_sy tbody tr:nth-child(odd){background-color: #ffffff !important;border: solid 1px #f0f4fa !important;color: #666666!important;font-size: 15px!important;font-family: PingFang!important;}
|
|
42
|
+
/*表格主体_偶数行*/
|
|
43
|
+
.table_sy tbody tr:nth-child(even){background-color: #f6fbff !important;border: solid 1px #f0f4fa !important;color: #666666!important;font-size: 15px!important;font-family: PingFang!important;}
|
|
44
|
+
/*表格主体_移动行*/
|
|
45
|
+
.table_sy tbody tr:hover{ background-color: #ecf6ff!important;border: solid 1px #f0f4fa !important;color: #666666!important;font-size: 15px!important;font-family: PingFang!important;}
|
|
46
|
+
/*表格底部*/
|
|
47
|
+
.pager{background-color: #eaf5ff !important;}
|
|
48
|
+
/*表格主体_点击行*/
|
|
49
|
+
.success td{background-color: #ecf6ff !important;}
|
|
50
|
+
|
|
51
|
+
.foot{font-family: PingFang !important;}
|
|
52
|
+
|
|
53
|
+
/*下拉列表滑动变色*/
|
|
54
|
+
.select_list li a:hover{background-color: #eaf5ff !important;border-radius: 2px;border: solid 1px #eaeaea;}
|
|
55
|
+
|
|
56
|
+
/*弹窗*/
|
|
57
|
+
.pop_windows{background-color: #d9e9f8;border-radius: 16px 16px 0px 0px;}
|
|
58
|
+
/*标签*/
|
|
59
|
+
.tab_color{border-bottom: 1px solid #6aa6e2; color: #6aa6e2; font-family: PingFang;}
|
|
60
|
+
|
|
61
|
+
/*按钮间隔*/
|
|
62
|
+
.button_spacing{margin: 0px 0px 0px 10px;}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
//报表样式
|
|
66
|
+
//报表头部
|
|
67
|
+
.report-head{ background-color: #b3dff7;border: solid 1px #999999;}
|
|
68
|
+
//头部字体
|
|
69
|
+
.head-font{color: #333333;font-size: 18px; }
|
|
70
|
+
//报表左侧
|
|
71
|
+
.report-left{background-color: #dff0f9;border: solid 1px #999999;}
|
|
72
|
+
//报表主体
|
|
73
|
+
.report-main {background-color: #ffffff; border: solid 1px #999999;}
|
|
74
|
+
//报表主体字体
|
|
75
|
+
.main-font{font-size: 18px;color: #1b1b1b; }
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/*=========================特殊样式表=========================*/
|
|
79
|
+
|
|
80
|
+
/*分辨率@1920*1080*/
|
|
81
|
+
@media screen and (max-width: 1920px) {
|
|
82
|
+
|
|
83
|
+
/********************按钮*****************/
|
|
84
|
+
|
|
85
|
+
.font_normal_body{font-size: 16px!important; line-height: 42px;}
|
|
86
|
+
.font_bold_body{font-size: 16px!important; line-height: 42px;}
|
|
87
|
+
.font_bold_title{font-size: 16px!important; line-height: 42px;}
|
|
88
|
+
.table_sy thead tr th{font-size: 16px !important;}
|
|
89
|
+
.foot .pager{ font-size: 16px!important; color: #666666!important;font-weight: normal!important;}
|
|
90
|
+
.foot .pager a{ font-size: 16px!important; color: #666666!important;font-weight: normal!important;}
|
|
91
|
+
.foot .pager li{ font-size: 16px!important; color: #666666!important;font-weight: normal!important;}
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
/*按钮查询*/
|
|
95
|
+
.button_search{width: 75px; height: 40px; background-color: #6aa6e2; border-radius: 4px; border:none; font-family: PingFang; font-size: 16px; color: #ffffff;}
|
|
96
|
+
.button_search:hover{ background-color: #3592ef;}
|
|
97
|
+
|
|
98
|
+
/*按钮清空*/
|
|
99
|
+
.button_clear{width: 75px; height: 40px; background-color: #5ac0d9; border-radius: 4px;border:none; font-family: PingFang; font-size: 16px; color: #ffffff;}
|
|
100
|
+
.button_clear:hover{ background-color: #27c4eb;}
|
|
101
|
+
|
|
102
|
+
/*按钮新建*/
|
|
103
|
+
.button_new{width: 75px; height: 40px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 16px; color: #6aa6e2;}
|
|
104
|
+
.button_new:hover{background-color: #f0f8ff;}
|
|
105
|
+
|
|
106
|
+
/*按钮导出*/
|
|
107
|
+
.button_export {width: 110px; height: 40px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 16px; color: #6aa6e2;}
|
|
108
|
+
.button_export:hover{background-color: #f0f8ff;}
|
|
109
|
+
.button_export button{width: 110px; height: 40px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 16px; color: #6aa6e2;}
|
|
110
|
+
.button_export button:hover{background-color: #f0f8ff;}
|
|
111
|
+
|
|
112
|
+
/*查询输入框*/
|
|
113
|
+
.input_search{ width: 270px;height: 40px;background-color: #ffffff;border-radius: 2px;border: solid 1px #c7c7c7;color: #333333; font-size: 16px;font-family: PingFang;}
|
|
114
|
+
.input_search .datepicker .datepicker-input input{ width: 270px!important;height: 42px!important;background-color: #ffffff!important;border-radius: 2px;border: solid 1px #c7c7c7 !important;color: #333333; font-size: 16px;font-family: PingFang;}
|
|
115
|
+
.input_search::-webkit-input-placeholder{color: #999999; font-size: 16px;padding-left:15px;font-family: PingFang;}
|
|
116
|
+
.input_search:focus{ border: solid 1px #6aa6e2;}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
/*下拉框*/
|
|
120
|
+
.select button{width: 270px!important;height: 40px!important;background-color: #ffffff!important;border-radius: 2px!important;border: solid 1px #c7c7c7!important;color: #666666; font-size: 16px;font-family: PingFang;font-weight: normal!important;}
|
|
121
|
+
.select button:focus{ border: solid 1px #6aa6e2!important;}
|
|
122
|
+
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/*分辨率@1600*900*/
|
|
126
|
+
@media screen and (max-width: 1600px) {
|
|
127
|
+
|
|
128
|
+
/********************按钮*****************/
|
|
129
|
+
/*按钮间隔*/
|
|
130
|
+
/*.button_spacing{margin: 0px 0px 0px 20px;}*/
|
|
131
|
+
.font_normal_body{font-size: 15px!important; line-height: 38px; }
|
|
132
|
+
.font_bold_body{font-size: 15px!important; line-height: 38px; }
|
|
133
|
+
.font_bold_title{font-size: 15px!important; line-height: 38px; }
|
|
134
|
+
.table_sy thead tr th{font-size: 15px !important;}
|
|
135
|
+
.foot .pager{ font-size: 15px!important; color: #666666!important;font-weight: normal!important;}
|
|
136
|
+
.foot .pager a{ font-size: 15px!important; color: #666666!important;font-weight: normal!important;}
|
|
137
|
+
.foot .pager li{ font-size: 15px!important; color: #666666!important;font-weight: normal!important;}
|
|
138
|
+
|
|
139
|
+
/*按钮查询*/
|
|
140
|
+
.button_search{width: 70px; height: 36px; background-color: #6aa6e2; border-radius: 4px; border:none; font-family: PingFang; font-size: 15px; color: #ffffff;}
|
|
141
|
+
.button_search:hover{ background-color: #3592ef;}
|
|
142
|
+
|
|
143
|
+
/*按钮清空*/
|
|
144
|
+
.button_clear{width: 70px; height: 36px; background-color: #5ac0d9; border-radius: 4px;border:none; font-family: PingFang; font-size: 15px; color: #ffffff;}
|
|
145
|
+
.button_clear:hover{ background-color: #27c4eb;}
|
|
146
|
+
|
|
147
|
+
/*按钮新建*/
|
|
148
|
+
.button_new{width: 70px; height: 36px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 15px; color: #6aa6e2;}
|
|
149
|
+
.button_new:hover{background-color: #f0f8ff;}
|
|
150
|
+
|
|
151
|
+
/*按钮导出*/
|
|
152
|
+
.button_export {width: 110px; height: 36px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 15px; color: #6aa6e2;}
|
|
153
|
+
.button_export:hover{background-color: #f0f8ff;}
|
|
154
|
+
.button_export button{width: 120px; height: 32px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 15px; color: #6aa6e2;}
|
|
155
|
+
.button_export button:hover{background-color: #f0f8ff;}
|
|
156
|
+
|
|
157
|
+
/*查询输入框*/
|
|
158
|
+
.input_search{ width: 200px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #c7c7c7!important;color: #333333!important; font-size: 15px!important;font-family: PingFang;}
|
|
159
|
+
.input_search::-webkit-input-placeholder{color: #999999; font-size: 14px;padding-left:15px;font-family: PingFang;}
|
|
160
|
+
.input_search:focus{ border: solid 1px #6aa6e2;}
|
|
161
|
+
|
|
162
|
+
/*下拉框*/
|
|
163
|
+
.select button{width: 200px!important;height: 36px!important;background-color: #ffffff!important;border-radius: 2px!important;border: solid 1px #c7c7c7!important;color: #666666!important; font-size: 15px!important;font-family: PingFang;font-weight: normal!important;}
|
|
164
|
+
.select button:focus{ border: solid 1px #6aa6e2!important;}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/*分辨率@1366*768*/
|
|
168
|
+
@media screen and (max-width: 1366px) {
|
|
169
|
+
|
|
170
|
+
/********************按钮*****************/
|
|
171
|
+
/*按钮间隔*/
|
|
172
|
+
/*.button_spacing{margin: 0px 0px 0px 20px;}*/
|
|
173
|
+
.font_normal_body{font-size: 14px!important; line-height: 36px; }
|
|
174
|
+
.font_bold_body{font-size: 14px!important; line-height: 36px; }
|
|
175
|
+
.font_bold_title{font-size: 14px!important; line-height: 36px; }
|
|
176
|
+
.table_sy thead tr th{font-size: 14px !important;}
|
|
177
|
+
.foot .pager{ font-size: 14px!important; color: #666666!important;font-weight: normal!important;}
|
|
178
|
+
.foot .pager a{ font-size: 14px!important; color: #666666!important;font-weight: normal!important;}
|
|
179
|
+
.foot .pager li{ font-size: 14px!important; color: #666666!important;font-weight: normal!important;}
|
|
180
|
+
|
|
181
|
+
/*按钮查询*/
|
|
182
|
+
.button_search{width: 60px; height: 34px; background-color: #6aa6e2; border-radius: 4px; border:none; font-family: PingFang; font-size: 14px; color: #ffffff;}
|
|
183
|
+
.button_search:hover{ background-color: #3592ef;}
|
|
184
|
+
|
|
185
|
+
/*按钮清空*/
|
|
186
|
+
.button_clear{width: 60px; height: 34px; background-color: #5ac0d9; border-radius: 4px;border:none; font-family: PingFang; font-size: 14px; color: #ffffff;}
|
|
187
|
+
.button_clear:hover{ background-color: #27c4eb;}
|
|
188
|
+
|
|
189
|
+
/*按钮新建*/
|
|
190
|
+
.button_new{width: 60px; height: 34px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 14px; color: #6aa6e2;}
|
|
191
|
+
.button_new:hover{background-color: #f0f8ff;}
|
|
192
|
+
|
|
193
|
+
/*按钮导出*/
|
|
194
|
+
.button_export {width: 110px; height: 34px; background-color: #ffffff;border-radius: 4px;border: solid 1px #6aa6e2; font-family: PingFang; font-size: 14px; color: #6aa6e2;}
|
|
195
|
+
.button_export:hover{background-color: #f0f8ff;}
|
|
196
|
+
.button_export button{width: 110px !important; height: 34px!important; background-color: #ffffff!important;border-radius: 4px!important;border: solid 1px #6aa6e2!important; font-family: PingFang; font-size: 14px!important; color: #6aa6e2!important;}
|
|
197
|
+
.button_export button:hover{background-color: #f0f8ff;}
|
|
198
|
+
|
|
199
|
+
/*查询输入框*/
|
|
200
|
+
.input_search{ width: 180px;height: 34px;background-color: #ffffff;border-radius: 2px;border: solid 1px #c7c7c7;color: #333333; font-size: 14px;font-family: PingFang;}
|
|
201
|
+
.input_search::-webkit-input-placeholder{color: #999999; font-size: 14px;padding-left:15px;font-family: PingFang;}
|
|
202
|
+
.input_search:focus{ border: solid 1px #6aa6e2;}
|
|
203
|
+
|
|
204
|
+
/*下拉框*/
|
|
205
|
+
.select button{width: 180px!important;height: 34px!important;background-color: #ffffff!important;border-radius: 2px!important;border: solid 1px #c7c7c7!important;color: #666666!important; font-size: 14px!important;font-family: PingFang;font-weight: normal!important;}
|
|
206
|
+
.select button:focus{ border: solid 1px #6aa6e2!important;}
|
|
207
|
+
|
|
208
|
+
}
|
package/src/components/Util.js
CHANGED
|
@@ -21,6 +21,10 @@ export function getAttendanceState (item, timeToWork, timeToGo) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
export function isEmpty (str) {
|
|
25
|
+
return str === undefined || str === null || str.toString().trim() === ''
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
export function toStandardYearMonth () {
|
|
25
29
|
let dt = new Date()
|
|
26
30
|
let month = dt.getMonth() + 1
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
<div class="row auto">
|
|
6
6
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group mg8">
|
|
7
7
|
<label class="text-justify lb-left" for="f_install_num">实际可安装用户:</label>
|
|
8
|
-
<input type="
|
|
8
|
+
<input type="number" class="form-control" id="f_install_num" v-model="model.f_install_num" >
|
|
9
9
|
</div>
|
|
10
10
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group" >
|
|
11
11
|
<label class="text-justify lb-left" for="costmatter">缴费户数:</label>
|
|
12
|
-
<input type="
|
|
12
|
+
<input type="number" class="form-control" id="costmatter" v-model="model.f_payfee_num" >
|
|
13
13
|
</div>
|
|
14
14
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group">
|
|
15
15
|
<label class="text-justify lb-left" >用气类型:</label>
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group" :class="[$v.f_gas_number.pattern ? 'has-error' : '']">
|
|
11
11
|
<label class="text-justify lb-left" for="f_gas_number">通气户数:</label>
|
|
12
|
-
<input type="
|
|
12
|
+
<input type="number" class="form-control" id="f_gas_number" v-model="model.f_gas_number" v-validate:f_gas_number="{pattern:'/^[+]{0,1}(\\d+)$|^[+]{0,1}(\\d+\\.\\d+)$/'}">
|
|
13
13
|
</div>
|
|
14
14
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group" :class="[$v.f_notgas_number.pattern ? 'has-error' : '']">
|
|
15
15
|
<label class="text-justify lb-left" for="f_notgas_number">未通气户数:</label>
|
|
16
|
-
<input type="
|
|
16
|
+
<input type="number" class="form-control" id="f_notgas_number" v-model="model.f_notgas_number" v-validate:f_notgas_number="{pattern:'/^[+]{0,1}(\\d+)$|^[+]{0,1}(\\d+\\.\\d+)$/'}">
|
|
17
17
|
</div>
|
|
18
18
|
<div class="col-xs-12 col-sm-6 col-md-6 form-input-group" :class="$v.f_regulatoruser.required ? 'has-error' : ''">
|
|
19
19
|
<label class="text-justify lb-left" for="f_regulatoruser">调压人员:</label>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/components/image//345/244/232/350/276/271/345/275/2422/346/213/267/350/264/235.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="full">
|
|
2
|
+
<div class="full" style="background-color: #f6f6f6;">
|
|
3
3
|
<div class="flex-row">
|
|
4
|
-
<div class="flex" style="flex: 1" :style="{height: totalheight}">
|
|
4
|
+
<div class="flex" style="flex: 1" :style="{height: totalheight,width:'80%'}">
|
|
5
5
|
<div class="flex col-sm-12" :style="{height: leftheight}">
|
|
6
6
|
<installinfoselect v-ref:installselect></installinfoselect>
|
|
7
7
|
</div>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<route v-ref:route></route>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
|
-
<div style="width:
|
|
24
|
+
<div style="width: 20%;padding:0px 0px 0px 0px;margin-left: 0px">
|
|
25
25
|
<install-apply-cardlist :btns="operatebtn" :userinfoid="row ? row.f_userinfo_id : ''" @list-select-oper="recordCancel"
|
|
26
26
|
v-ref:card></install-apply-cardlist>
|
|
27
27
|
</div>
|
|
@@ -50,7 +50,11 @@
|
|
|
50
50
|
},
|
|
51
51
|
created(){
|
|
52
52
|
let http = new HttpResetClass()
|
|
53
|
-
|
|
53
|
+
let xmldata = {
|
|
54
|
+
data: this.$login.f,
|
|
55
|
+
workname: '工商业报建流程'
|
|
56
|
+
}
|
|
57
|
+
http.load('POST','rs/logic/ApplyGetConfigs', {data: xmldata}, {resolveMsg: null, rejectMsg: null}
|
|
54
58
|
).then((res)=>{
|
|
55
59
|
if(res.data.code && res.data.code == 200){
|
|
56
60
|
Vue.function_vue = Vue.prototype.$function_vue = res.data.function_vue
|
|
@@ -58,9 +62,6 @@
|
|
|
58
62
|
this.$showMessage('获取报建配置失败,原因:' + res.data.msg)
|
|
59
63
|
return
|
|
60
64
|
}
|
|
61
|
-
}).catch((ret)=>{
|
|
62
|
-
this.$showMessage('获取报建配置失败,原因:' + JSON.stringify(ret.data))
|
|
63
|
-
return
|
|
64
65
|
})
|
|
65
66
|
console.log("Vue.$function_vue:"+JSON.stringify(this.$function_vue))
|
|
66
67
|
},
|
|
@@ -94,7 +95,7 @@
|
|
|
94
95
|
// this.show = true
|
|
95
96
|
this.showallbtn = true
|
|
96
97
|
this.leftheight = '25%'
|
|
97
|
-
this.totalheight = '
|
|
98
|
+
this.totalheight = '100%'
|
|
98
99
|
},
|
|
99
100
|
'hiddenbtn'() {
|
|
100
101
|
this.showallbtn = false
|