apply-clients 3.1.37 → 3.1.40

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.
@@ -0,0 +1,285 @@
1
+ <template>
2
+ <div class="col-sm-12">
3
+ <criteria-paged :model="model" v-ref:cp>
4
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-3">
8
+ <label class="font_normal_body">客户名称/联系人:</label>
9
+ <input type="text" class="input_search" v-model="model.f_user_name"
10
+ v-on:keyup.enter="search" condition=" (f_user_name like '%{}%' or f_contact like '%{}%') " placeholder='二选一输入'>
11
+ </div>
12
+ <div class="form-group col-sm-3">
13
+ <label class="font_normal_body">报建编号:</label>
14
+ <input type="text" class="input_search" placeholder='报建编号' v-model="model.f_apply_num"
15
+ v-on:keyup.enter="search"
16
+ condition="f_apply_num like '%{}%'">
17
+ </div>
18
+ <div class="form-group col-sm-3">
19
+ <label class="font_normal_body">合同编号:</label>
20
+ <input type="text" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
21
+ v-on:keyup.enter="search"
22
+ condition="f_contract_number like '%{}%'">
23
+ </div>
24
+ <div class="form-group col-sm-2 operate">
25
+ <button type="button" class="btn btn-info head-but" @click="$parent.$parent.search(),$parent.$parent.close()" v-el:cx>查询</button>
26
+ <export-excel :data="$parent.$parent.getCondition"
27
+ :field="$parent.$parent.getfield"
28
+ sqlurl="rs/logic/applyExportfile"
29
+ sql-name="supervisory2"
30
+ template-name='报建记录信息导出'
31
+ :choose-col="true"></export-excel>
32
+ <!-- <button class="button_search button_spacing width-60" @click="search(),$parent.$parent.close()" v-el:cx>查询</button>-->
33
+ <div
34
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
35
+ @click="$parent.$parent.hidden()"
36
+ class="button_spacing"
37
+ style="float: right">
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div class="row" v-show="$parent.$parent.criteriaShow">
42
+ <div class="form-group col-sm-3">
43
+ <label class="font_normal_body">用户地址:</label>
44
+ <input type="text" class="input_search" placeholder='用户地址' v-model="model.f_address"
45
+ v-on:keyup.enter="search"
46
+ condition="f_address like '%{}%'">
47
+ </div>
48
+ <div class="form-group col-sm-3">
49
+ <label class="font_normal_body">票号:</label>
50
+ <input type="text" class="input_search" placeholder='票号' v-model="model.f_ticket_number"
51
+ v-on:keyup.enter="search"
52
+ condition="c.f_ticket_number like '%{}%'">
53
+ </div>
54
+ <div class="col-sm-3 form-group">
55
+ <label class="font_normal_body">报建类型:</label>
56
+ <v-select
57
+ v-model="model.f_apply_type"
58
+ placeholder='报建类型'
59
+ condition="f_apply_type like '%{}%'"
60
+ :value.sync="model.f_apply_type"
61
+ :options='$parent.$parent.applytype'
62
+ class="select select_list"
63
+ :value-single="true"
64
+ close-on-select ></v-select>
65
+ </div>
66
+ <div class="col-sm-3 form-group">
67
+ <label class="font_normal_body">办理环节:</label>
68
+ <v-select
69
+ v-model="model.defname"
70
+ placeholder='办理环节'
71
+ condition="defname = '{}'"
72
+ :value.sync="model.defname"
73
+ :options='$parent.$parent.defnames'
74
+ class="select select_list"
75
+ :value-single="true"
76
+ close-on-select ></v-select>
77
+ </div>
78
+ <div class="form-group col-sm-3">
79
+ <label for="startDate" class="font_normal_body">开始时间:</label>
80
+ <datepicker id="startDate" placeholder="开始日期"
81
+ style="width: 60%!important;"
82
+ v-model="model.startDate"
83
+ :value.sync="model.startDate"
84
+ :format="'yyyy-MM-dd 00:00:00'"
85
+ :show-reset-button="true"
86
+ condition="f_apply_date >= '{}'">
87
+ </datepicker>
88
+ </div>
89
+ <div class="form-group col-sm-3">
90
+ <label for="endDate" class="font_normal_body">结束时间:</label>
91
+ <datepicker id="endDate" placeholder="结束日期"
92
+ style="width: 60%!important;"
93
+ v-model="model.endDate"
94
+ :value.sync="model.endDate"
95
+ :format="'yyyy-MM-dd 23:59:59'"
96
+ :show-reset-button="true"
97
+ condition="f_apply_date <= '{}'">
98
+ </datepicker>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </criteria>
103
+ <data-grid :model="model" partial='list' v-ref:grid class="list_area table_sy">
104
+ <template partial='head'>
105
+ <tr>
106
+ <th>序号</th>
107
+ <th>报建编号</th>
108
+ <th>当前状态</th>
109
+ <th>客户名称/联系人</th>
110
+ <th>合同编号</th>
111
+ <th>电话</th>
112
+ <th>地址</th>
113
+ <th>流程状态</th>
114
+ <th>报建类型</th>
115
+ <th>报建日期</th>
116
+ </tr>
117
+ </template>
118
+ <template partial='body'>
119
+ <tr>
120
+ <td style="text-align: center;">
121
+ <nobr>{{$index+1}}</nobr>
122
+ </td>
123
+ <td style="text-align: center;">
124
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
125
+ </td>
126
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
127
+ <nobr>{{row.f_sub_state}}</nobr>
128
+ </td>
129
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
130
+ <nobr>{{row.f_user_name}}/{{row.f_contact}}</nobr>
131
+ </td>
132
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
133
+ <nobr>{{row.f_contract_number}}</nobr>
134
+ </td>
135
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
136
+ <nobr>{{row.f_phone}}</nobr>
137
+ </td>
138
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
139
+ <nobr>{{row.f_address}}</nobr>
140
+ </td>
141
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
142
+ <nobr>{{row.defname}}</nobr>
143
+ </td>
144
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
145
+ <nobr>{{row.f_apply_type}}</nobr>
146
+ </td>
147
+ <td @click="$parent.$parent.$parent.check(row)" style="text-align: center;">
148
+ <nobr>{{row.f_apply_date}}</nobr>
149
+ </td>
150
+ </tr>
151
+ </template>
152
+ </data-grid>
153
+ </criteria-paged>
154
+ </div>
155
+ </template>
156
+ <script>
157
+ import {PagedList} from 'vue-client'
158
+ import getNowDate from '../../getNowDate.js'
159
+ import {HttpResetClass} from 'vue-client'
160
+
161
+ export default {
162
+ title: '勘探详情',
163
+ data() {
164
+ return {
165
+ applytype: [{label:"全部",value:''}, {label:"集中报建",value:'集中报建'}, {label:"非民用报建",value:'非民用报建'},{label:"散户报建",value:'散户报建'}],
166
+ model: {
167
+ data:null
168
+ },
169
+ defnames:[], // 所有流程节点
170
+ condition: '', // 查询条件
171
+ criteriaShow: false,
172
+ processids: null,
173
+ getfield: {
174
+ 'f_apply_num': '报建编号',
175
+ 'defname': '当前环节',
176
+ 'f_sub_state': '流程状态',
177
+ 'f_user_name': '联系人',
178
+ 'f_contact': '联系人',
179
+ 'f_contract_number': '合同编号',
180
+ 'f_phone': '电话',
181
+ 'f_address': '地址',
182
+ 'f_apply_type': '报建类型',
183
+ 'f_apply_date': '报建日期'
184
+ }
185
+ }
186
+ },
187
+ async ready() {
188
+ this.search()
189
+
190
+ // 获取所有办理环节
191
+ this.getDefnames()
192
+ },
193
+ events: {
194
+ },
195
+ methods: {
196
+ async search() {
197
+ let http = new HttpResetClass()
198
+ let data = {
199
+ org: `${this.$login.f.orgs}`
200
+ }
201
+ let res = await http.load('POST', 'rs/sql/getActor', {data: data}, {
202
+ resolveMsg: null,
203
+ rejectMsg: '查询角色失败'
204
+ })
205
+ let x = []
206
+ for (let i = 0; i < res.data.length; i++){
207
+ if (this.$login.f.f_role_name.includes(res.data[i].actor)){
208
+ x.push(res.data[i].processid)
209
+ }
210
+ }
211
+ this.processids = JSON.stringify(x)
212
+ console.log("x的数据",this.processids)
213
+ data = {
214
+ condition: '1=1',
215
+ x:this.processids,
216
+ org: `${this.$login.f.orgs}`
217
+ }
218
+ if (this.$refs.cp.$refs.cri.condition){
219
+ data.condition = data.condition + 'and' +this.$refs.cp.$refs.cri.condition
220
+ }
221
+ this.condition = data.condition
222
+ res = await http.load('POST', 'rs/sql/supervisory2', {data: data}, {
223
+ resolveMsg: null,
224
+ rejectMsg: '查询失败'
225
+ })
226
+ console.log("当前数据",res.data)
227
+ this.model.data = res.data
228
+ // 调用查询
229
+ // this.$refs.cp.$refs.cri.search()
230
+ },
231
+ hidden() {
232
+ this.$dispatch('hidden', this.criteriaShow)
233
+ this.criteriaShow = !this.criteriaShow
234
+ },
235
+ // 获取所有办理环节
236
+ getDefnames() {
237
+ let http = new HttpResetClass()
238
+ http.load('POST', 'rs/logic/getAllDefname', {}, {
239
+ resolveMsg: null,
240
+ rejectMsg: null
241
+ }).then((res) => {
242
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
243
+ })
244
+ },
245
+ check(val) {
246
+ this.$dispatch('apply', val)
247
+ },
248
+ close() {
249
+ this.$dispatch('close')
250
+ }
251
+ },
252
+ computed: {
253
+ getCondition () {
254
+ console.log("condition",this.$refs.cp.$refs.cri.condition)
255
+ return {
256
+ condition: this.condition,
257
+ org: `${this.$login.f.orgs}`,
258
+ x: this.processids,
259
+ data: {
260
+ org: `${this.$login.f.orgs}`,
261
+ orgid: this.$login.f.orgid
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ </script>
268
+ <style scoped>
269
+
270
+ .operate{
271
+ text-align: right;
272
+ display: flex;
273
+ align-items: center; /*子元素中线居中*/
274
+ justify-content: flex-end; /*子元素靠右*/
275
+ margin-top: 7px;
276
+ }
277
+ .head-but{
278
+ margin-left: 5px;
279
+ height: 34px;
280
+ background-color: #6aa6e2;
281
+ border-radius: 4px;
282
+ font-family: PingFang;
283
+ color: #ffffff;
284
+ }
285
+ </style>
@@ -1,104 +1,105 @@
1
- <template>
2
- <div style="overflow: auto;">
3
- <div class="row" v-for="(i,row) in defnames">
4
- <div :class="row.defname === defname ? 'item selectIndex' : 'item'" @click="getdefname(row)" >
5
- {{row.defname}}
6
- <br>
7
- {{i === (defnames.length) - 1 ? row.sendtime : row.finishtime}}
8
- </div>
9
- <div class="arrow glyphicon glyphicon-menu-down" v-if="i != defnames.length-1" aria-hidden="true"></div>
10
- </div>
11
- </div>
12
- </template>
13
-
14
- <script>
15
- import {HttpResetClass} from 'vue-client'
16
- export default {
17
- title: "流程节点",
18
- props:['selectdata','defname'],
19
- data(){
20
- return{
21
- defnames: [] // 所有节点
22
- }
23
- },
24
- created () {
25
- this.initial()
26
- },
27
- methods :{
28
- async initial() {
29
- // 获取流程节点信息
30
- let http = new HttpResetClass()
31
- let temp = []
32
- if(this.selectdata && this.selectdata.f_process_id){
33
- let res = await http.load('POST','rs/sql/getAllNode',{data:{processid: this.selectdata.f_process_id}},{resolveMsg:null, rejectMsg:null})
34
- //循环去除回退导致重复的节点
35
- for (let i = 0; i < res.data.length; i++) {
36
- let flag = true
37
- for (let j = 0; j < temp.length; j++) {
38
- if (res.data[i].defname === temp[j].defname) {
39
- flag = false
40
- }
41
- }
42
- if(flag){
43
- temp.push(res.data[i])
44
- }
45
- }
46
-
47
- this.defnames = temp
48
- }
49
- },
50
- //点击获取节点名
51
- getdefname(row){
52
- if(row.defname === this.$workflow_vue.start_activity){
53
- row = Object.assign({},this.selectdata,row)
54
- this.$dispatch('apply', row)
55
- }else if(this.check(row.actorexpression)){
56
- row = Object.assign({},this.selectdata,row)
57
- this.$dispatch('apply', row)
58
- }else{
59
- this.$showMessage("对不起,您没有查看此节点的权限!")
60
- }
61
- },
62
- // 检测是否有权限
63
- check(actorexpression){
64
- let sign = actorexpression.charAt(0)
65
- let str = actorexpression.substring(2,actorexpression.length-1)
66
- let flag = false
67
- if (sign === 'D' && this.$login.f.f_department_name.includes(str)) {
68
- flag = true
69
- }
70
- if (sign === 'R' && this.$login.f.f_role_name.includes(str)) {
71
- flag = true
72
- }
73
- if (sign === 'P' && this.$login.f.id.includes(str)) {
74
- flag = true
75
- }
76
- return flag
77
- }
78
- },
79
- watch:{
80
- }
81
- }
82
- </script>
83
-
84
- <style scoped>
85
- .row{
86
- text-align: center;
87
- height: auto;
88
- margin-right: 20px;
89
- }
90
- .item{
91
- border-radius: 2em;
92
- border: 1px solid silver;
93
- line-height: 25px;
94
- }
95
- .arrow{
96
- width: 100%;
97
- color: #5ac0d9;
98
- font-weight: bold;
99
- }
100
- .selectIndex{
101
- background-color: #5ac0d9;
102
- color: #ffffff;
103
- }
104
- </style>
1
+ <template>
2
+ <div style="overflow: auto;">
3
+ <div class="row" v-for="(i,row) in defnames">
4
+ <div :class="row.defname === defname ? 'item selectIndex' : 'item'" @click="getdefname(row)" >
5
+ {{row.defname}}
6
+ <br>
7
+ {{i === (defnames.length) - 1 ? row.sendtime : row.finishtime}}
8
+ </div>
9
+ <div class="arrow glyphicon glyphicon-menu-down" v-if="i != defnames.length-1" aria-hidden="true"></div>
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ import {HttpResetClass} from 'vue-client'
16
+ export default {
17
+ title: "流程节点",
18
+ props:['selectdata','defname'],
19
+ data(){
20
+ return{
21
+ defnames: [] // 所有节点
22
+ }
23
+ },
24
+ created () {
25
+ this.initial()
26
+ },
27
+ methods :{
28
+ async initial() {
29
+ // 获取流程节点信息
30
+ let http = new HttpResetClass()
31
+ let temp = []
32
+ if(this.selectdata && this.selectdata.f_process_id){
33
+ let res = await http.load('POST','rs/sql/getAllNode',{data:{processid: this.selectdata.f_process_id}},{resolveMsg:null, rejectMsg:null})
34
+ //循环去除回退导致重复的节点
35
+ for (let i = 0; i < res.data.length; i++) {
36
+ let flag = true
37
+ for (let j = 0; j < temp.length; j++) {
38
+ if (res.data[i].defname === temp[j].defname) {
39
+ flag = false
40
+ }
41
+ }
42
+ if(flag){
43
+ temp.push(res.data[i])
44
+ }
45
+ }
46
+
47
+ this.defnames = temp
48
+ }
49
+ },
50
+ //点击获取节点名
51
+ getdefname(row){
52
+ if(row.defname === this.$workflow_vue.start_activity){
53
+ row = Object.assign({},this.selectdata,row)
54
+ this.$dispatch('apply', row)
55
+ }else if(this.check(row.actorexpression)){
56
+ row = Object.assign({},this.selectdata,row)
57
+ this.$dispatch('apply', row)
58
+ }else{
59
+ this.$showMessage("对不起,您没有查看此节点的权限!")
60
+ }
61
+ },
62
+ // 检测是否有权限
63
+ check(actorexpression){
64
+ let sign = actorexpression.charAt(0)
65
+ let str = actorexpression.substring(2,actorexpression.length-1)
66
+ let flag = false
67
+ if (sign === 'D' && this.$login.f.f_department_name.includes(str)) {
68
+ flag = true
69
+ }
70
+ if (sign === 'R' && this.$login.f.f_role_name.includes(str)) {
71
+ flag = true
72
+ }
73
+ if (sign === 'P' && this.$login.f.id.includes(str)) {
74
+ flag = true
75
+ }
76
+ flag = true
77
+ return flag
78
+ }
79
+ },
80
+ watch:{
81
+ }
82
+ }
83
+ </script>
84
+
85
+ <style scoped>
86
+ .row{
87
+ text-align: center;
88
+ height: auto;
89
+ margin-right: 20px;
90
+ }
91
+ .item{
92
+ border-radius: 2em;
93
+ border: 1px solid silver;
94
+ line-height: 25px;
95
+ }
96
+ .arrow{
97
+ width: 100%;
98
+ color: #5ac0d9;
99
+ font-weight: bold;
100
+ }
101
+ .selectIndex{
102
+ background-color: #5ac0d9;
103
+ color: #ffffff;
104
+ }
105
+ </style>