apply-clients 3.4.1 → 3.4.2-FuGu-7

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.
Files changed (136) hide show
  1. package/android.html +23 -23
  2. package/build/css-loaders.js +34 -0
  3. package/build/dev-android.js +101 -0
  4. package/build/dev-client.js +8 -0
  5. package/build/dev-server-app.js +76 -0
  6. package/build/dev-server.js +119 -0
  7. package/build/example-server.js +80 -0
  8. package/build/release.sh +28 -0
  9. package/build/utils.js +80 -0
  10. package/build/webpack.base.conf.js +85 -0
  11. package/build/webpack.baseandroid.conf.js +84 -0
  12. package/build/webpack.dev.conf.js +51 -0
  13. package/build/webpack.devandroid.conf.js +34 -0
  14. package/build/webpack.example.conf.js +49 -0
  15. package/build/webpack.prod.conf.js +60 -0
  16. package/build/webpack.prodandroid.conf.js +60 -0
  17. package/build/webpack.test.conf.js +31 -0
  18. package/dingding.html +23 -0
  19. package/dist-android/static/doc.jpg +0 -0
  20. package/dist-android/static/images/lefticon//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png +0 -0
  21. package/dist-android/static/images/lefticon//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  22. package/dist-android/static/images/lefticon//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  23. package/dist-android/static/images/lefticon//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  24. package/dist-android/static/images/lefticon//345/233/276/345/261/202577.png +0 -0
  25. package/dist-android/static/images/lefticon//345/233/276/345/261/2028/346/213/267/350/264/23513.png +0 -0
  26. package/dist-android/static/images/lefticon//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  27. package/dist-android/static/images/lefticon//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  28. package/dist-android/static/images/lefticon//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  29. package/dist-android/static/images/lefticon//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  30. package/dist-android/static/images/lefticon//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  31. package/dist-android/static/images/lefticon//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  32. package/dist-android/static/images/lefticon//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  33. package/dist-android/static/images/lefticon//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  34. package/dist-android/static/images/lefticon//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  35. package/dist-android/static/images/lefticon//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  36. package/dist-android/static/images/lefticon//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  37. package/dist-android/static/images/lefticon//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  38. package/dist-android/static/images/lefticon//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  39. package/dist-android/static/images/lefticon//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  40. package/dist-android/static/images/lefticon//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  41. package/dist-android/static/images/lefticon//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  42. package/dist-android/static/images/lefticon//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  43. package/dist-android/static/imgerror.jpg +0 -0
  44. package/dist-android/static/newStyle/clear.png +0 -0
  45. package/dist-android/static/newStyle/fife.png +0 -0
  46. package/dist-android/static/newStyle/hidden.png +0 -0
  47. package/dist-android/static/newStyle/label-clear.png +0 -0
  48. package/dist-android/static/newStyle/left-img.png +0 -0
  49. package/dist-android/static/newStyle/list_ok.png +0 -0
  50. package/dist-android/static/newStyle/login-check.png +0 -0
  51. package/dist-android/static/newStyle/login-con.png +0 -0
  52. package/dist-android/static/newStyle/login-do.gif +0 -0
  53. package/dist-android/static/newStyle/login-f.png +0 -0
  54. package/dist-android/static/newStyle/login-info.png +0 -0
  55. package/dist-android/static/newStyle/login-left.png +0 -0
  56. package/dist-android/static/newStyle/login-org.png +0 -0
  57. package/dist-android/static/newStyle/login-pwd.png +0 -0
  58. package/dist-android/static/newStyle/login-user.png +0 -0
  59. package/dist-android/static/newStyle/loginbg.gif +0 -0
  60. package/dist-android/static/newStyle/loginbg1280.gif +0 -0
  61. package/dist-android/static/newStyle/loginbg1366.gif +0 -0
  62. package/dist-android/static/newStyle/setting.png +0 -0
  63. package/dist-android/static/newStyle/setting1.png +0 -0
  64. package/dist-android/static/newStyle/shirk.png +0 -0
  65. package/dist-android/static/newStyle/stretch_bottom.png +0 -0
  66. package/dist-android/static/newStyle/stretch_left.png +0 -0
  67. package/dist-android/static/newStyle/stretch_right.png +0 -0
  68. package/dist-android/static/newStyle/stretch_top.png +0 -0
  69. package/dist-android/static/newStyle/system-off.png +0 -0
  70. package/dist-android/static/pdf.jpg +0 -0
  71. package/index.html +33 -33
  72. package/package.json +2 -1
  73. package/src/AndroidApp.vue +35 -35
  74. package/src/App.vue +20 -20
  75. package/src/DingDingApp.vue +51 -0
  76. package/src/android.js +21 -21
  77. package/src/apply.js +75 -81
  78. package/src/applyAndroid.js +25 -31
  79. package/src/applyDingDing.js +12 -0
  80. package/src/components/android/AppOnetomany.vue +301 -301
  81. package/src/components/android/AppServiceView.vue +566 -566
  82. package/src/components/android/AppSign.vue +142 -142
  83. package/src/components/android/AppTakePic.vue +143 -143
  84. package/src/components/android/Process/AppExplorationUser.vue +320 -320
  85. package/src/components/android/Process/AppServiceControl.vue +757 -757
  86. package/src/components/android/Process/Processes/AppInstallationDetails.vue +456 -456
  87. package/src/components/android/ProgressReport/ProgressReportDetail.vue +64 -64
  88. package/src/components/android/Supervisory/AppSupervisoryCart.vue +121 -121
  89. package/src/components/android/TaskGraph.vue +125 -125
  90. package/src/components/build/Install/ExplorationUser.vue +304 -0
  91. package/src/components/build/Install/Process/zhongran/ZR_Design.vue +537 -0
  92. package/src/components/product/{Process/Processes/Print → ApplyCharge}/printCharge.vue +142 -142
  93. package/src/components/product/Function/InstallFunction.vue +131 -125
  94. package/src/components/product/Function/InstallInfoSelect.vue +21 -13
  95. package/src/components/product/Function/Service/FunctionServiceControl.vue +420 -222
  96. package/src/components/product/Onetomany.vue +377 -377
  97. package/src/components/product/Process/ExplorationSelect.vue +401 -410
  98. package/src/components/product/Process/ExplorationUser.vue +138 -138
  99. package/src/components/product/Process/Processes/InstallationDetails.vue +592 -592
  100. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +207 -207
  101. package/src/components/product/Process/Processes/chargeManagement.vue +634 -639
  102. package/src/components/product/Process/Service/ServiceControl.vue +58 -63
  103. package/src/components/product/Process/Service/ShowBackReason.vue +33 -33
  104. package/src/components/product/ServiceView.vue +631 -631
  105. package/src/components/product/Stop/StopApply.vue +105 -103
  106. package/src/components/product/Stop/StopApplyList.vue +269 -269
  107. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +7 -0
  108. package/src/components/product/Supervisory/SupervisoryControl.vue +10 -0
  109. package/src/components/product/Supervisory/SupervisoryList.vue +6 -2
  110. package/src/components/product/Supervisory/SupervisoryhCart.vue +110 -107
  111. package/src/components/product/VueUtils/ApplyUpload.vue +273 -273
  112. package/src/components/product/VueUtils/HighMeter.vue +208 -208
  113. package/src/dingding.js +20 -0
  114. package/src/expandcssAndroid.less +1034 -1034
  115. package/src/main.js +23 -23
  116. package/src/components/product/Function/StopApplyCrrdList.vue +0 -176
  117. package/src/components/product/Function/functions/ApplyRecordCancel.vue +0 -102
  118. package/src/components/product/Function/functions/StopInstall.vue +0 -106
  119. package/src/components/product/Process/Processes/Print/img/10101.png +0 -0
  120. package/src/components/product/Process/Processes/Print/img/1010109.png +0 -0
  121. package/src/components/product/Process/Processes/Print/img/1010110.png +0 -0
  122. package/src/components/product/Process/Processes/Print/img/1010111.png +0 -0
  123. package/src/components/product/Process/Processes/Print/img/1010112.png +0 -0
  124. package/src/filiale/yuchuan/android/Process/AppServiceControl.vue +0 -548
  125. package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetails.vue +0 -754
  126. package/src/filiale/yuchuan/android/Task/Survey/SurveyTsak.vue +0 -60
  127. package/src/filiale/yuchuan/android.js +0 -7
  128. package/src/filiale/yuchuan/pc/Order/OrderApply.vue +0 -528
  129. package/src/filiale/yuchuan/pc/Order/OrderApplyList.vue +0 -343
  130. package/src/filiale/yuchuan/pc/Process/ExplorationSelect.vue +0 -395
  131. package/src/filiale/yuchuan/pc/Process/ExplorationUser.vue +0 -147
  132. package/src/filiale/yuchuan/pc/Process/Processes/ApplyMapCom.vue +0 -66
  133. package/src/filiale/yuchuan/pc/Process/Processes/InstallationDetails.vue +0 -759
  134. package/src/filiale/yuchuan/pc/Process/Processes/chargeManagement.vue +0 -470
  135. package/src/filiale/yuchuan/pc/Process/Service/ServiceControl.vue +0 -879
  136. package/src/filiale/yuchuan/pc.js +0 -11
@@ -1,410 +1,401 @@
1
- <template>
2
- <div>
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
- <res-select
10
- restype='organization'
11
- :initresid='$parent.$parent.curorgid'
12
- @res-select="$parent.$parent.getorg"
13
- is-mul="false"
14
- ></res-select>
15
- </div>
16
- <div class="form-group col-sm-3">
17
- <label class="font_normal_body">工程编号:</label>
18
- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
19
- v-on:keyup.enter="$parent.$parent.search()"
20
- condition="f_apply_num = '{}'">
21
- </div>
22
- <div class="form-group col-sm-3 button-range">
23
- <button class="button_new button_spacing" style="width: max-content"
24
- v-if="$parent.$parent.projectStart"
25
- @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
26
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
27
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
28
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
29
- <div
30
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
31
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
32
- class="button_spacing"
33
- style="float: right">
34
- </div>
35
- </div>
36
- </div>
37
- <div class="row" v-show="$parent.$parent.criteriaShow">
38
- <div class="form-group col-sm-3">
39
- <label class="font_normal_body">客户名称:</label>
40
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
41
- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
42
- </div>
43
- <div class="form-group col-sm-3">
44
- <label class="font_normal_body">联系电话:</label>
45
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
46
- v-on:keyup.enter="$parent.$parent.search()"
47
- condition="f_phone like '%{}%'">
48
- </div>
49
- <div class="form-group col-sm-3">
50
- <label class="font_normal_body">合同编号:</label>
51
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
52
- v-on:keyup.enter="$parent.$parent.search()"
53
- condition="f_contract_number = '{}'">
54
- </div>
55
- <div class="form-group col-sm-3">
56
- <label class="font_normal_body">报建类型:</label>
57
- <v-select
58
- v-model="model.f_apply_type"
59
- placeholder='报建类型'
60
- condition="f_apply_type = '{}'"
61
- :value.sync="model.f_apply_type"
62
- :options='$parent.$parent.applytype'
63
- class="select select_list"
64
- :value-single="true"
65
- @change="$parent.$parent.applyTypeChange()"
66
- close-on-select ></v-select>
67
- </div>
68
- <div class="form-group col-sm-3">
69
- <label class="font_normal_body">办理环节:</label>
70
- <v-select
71
- v-model="model.defname"
72
- placeholder='办理环节'
73
- condition="defname = '{}'"
74
- :value.sync="model.defname"
75
- :options='$parent.$parent.defnames'
76
- class="select select_list"
77
- :value-single="true"
78
- close-on-select ></v-select>
79
- </div>
80
- <div class="form-group col-sm-3">
81
- <label class="font_normal_body">报建性质:</label>
82
- <v-select
83
- v-model="model.f_apply_nature"
84
- placeholder='报建性质'
85
- condition="f_apply_nature = '{}'"
86
- :value.sync="model.f_apply_nature"
87
- :options='$parent.$parent.applyNatures'
88
- class="select select_list"
89
- :value-single="true"
90
- close-on-select ></v-select>
91
- </div>
92
- <div class="form-group col-sm-3">
93
- <label class="font_normal_body">用户地址:</label>
94
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
95
- v-on:keyup.enter="$parent.$parent.search()"
96
- condition="f_address like '%{}%'">
97
- </div>
98
- <div class="form-group col-sm-3">
99
- <label for="startDate" class="font_normal_body">开始时间:</label>
100
- <datepicker id="startDate" placeholder="开始日期"
101
- style="width: 60%!important;"
102
- v-model="model.startDate"
103
- :value.sync="model.startDate"
104
- :format="'yyyy-MM-dd 00:00:00'"
105
- :show-reset-button="true"
106
- condition="f_apply_date >= '{}'">
107
- </datepicker>
108
- </div>
109
- <div class="form-group col-sm-3">
110
- <label for="endDate" class="font_normal_body">结束时间:</label>
111
- <datepicker id="endDate" placeholder="结束日期"
112
- style="width: 60%!important;"
113
- v-model="model.endDate"
114
- :value.sync="model.endDate"
115
- :format="'yyyy-MM-dd 23:59:59'"
116
- :show-reset-button="true"
117
- condition="f_apply_date <= '{}'">
118
- </datepicker>
119
- </div>
120
- <div class="form-group col-sm-3">
121
- <label class="font_normal_body">稍后处理:</label>
122
- <v-select
123
- v-model="model.f_is_later"
124
- placeholder='稍后处理'
125
- condition="f_is_later = '{}'"
126
- :value.sync="model.f_is_later"
127
- :options='$parent.$parent.laterList'
128
- class="select select_list"
129
- :value-single="true"
130
- close-on-select ></v-select>
131
- </div>
132
- </div>
133
- </div>
134
- </criteria>
135
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
136
- <template partial='head'>
137
- <tr>
138
- <th style="white-space: nowrap;">序号</th>
139
- <th style="white-space: nowrap;">工程编号</th>
140
- <th style="white-space: nowrap;">客户名称</th>
141
- <th style="white-space: nowrap;">合同编号</th>
142
- <th style="white-space: nowrap;">电话</th>
143
- <th style="white-space: nowrap;">地址</th>
144
- <th style="white-space: nowrap;">来源</th>
145
- <th style="white-space: nowrap;">报建类型</th>
146
- <th style="white-space: nowrap;">办理环节</th>
147
- <th style="white-space: nowrap;">流程状态</th>
148
- <th style="white-space: nowrap;">报建日期</th>
149
- <th style="white-space: nowrap;">操作</th>
150
- </tr>
151
- </template>
152
- <template partial='body'>
153
- <tr >
154
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
155
- <nobr><font>{{$index+1}}</font></nobr>
156
- </td>
157
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
158
- <nobr><font>{{row.f_apply_num}}</font></nobr>
159
- </td>
160
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
161
- <nobr><font>{{row.f_user_name}}</font></nobr>
162
- </td>
163
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
164
- <nobr><font>{{row.f_contract_number}}</font></nobr>
165
- </td>
166
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
167
- <nobr><font>{{row.f_phone}}</font></nobr>
168
- </td>
169
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
170
- <nobr><font>{{row.f_address}}</font></nobr>
171
- </td>
172
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
173
- <nobr><font>{{row.f_apply_source}}</font></nobr>
174
- </td>
175
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
176
- <nobr><font>{{row.f_apply_type}}</font></nobr>
177
- </td>
178
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
179
- <nobr><font>{{row.defname}}</font></nobr>
180
- </td>
181
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
182
- <nobr><font>{{row.f_sub_state}}</font></nobr>
183
- </td>
184
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
185
- <nobr><font>{{row.f_apply_date}}</font></nobr>
186
- </td>
187
- <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
188
- <dropdown>
189
- <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
190
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
191
- </button>
192
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
193
- <li>
194
- <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
195
- </li>
196
- </ul>
197
- </dropdown>
198
- </td>
199
- </tr>
200
- </template>
201
- </data-grid>
202
- </criteria-paged>
203
-
204
- <modal
205
- v-if="showModal"
206
- :show.sync="showModal"
207
- backdrop="false"
208
- title="工程类型"
209
- cancel-text="取消"
210
- ok-text="确认"
211
- :callback="apply"
212
- >
213
- <div class="form-horizontal" slot="modal-body">
214
- <div class="form-group" style="margin: 10px auto">
215
- <label class="col-sm-3 control-label">报建类型:</label>
216
- <div class="col-sm-9">
217
- <v-select
218
- v-model="applyType"
219
- placeholder='请选择需要发起的工程类型'
220
- :value.sync="applyType"
221
- :options='$appdata.getParam("报建类型")'
222
- :value-single="true"
223
- class="select select_list"
224
- :search="false"
225
- close-on-select ></v-select>
226
- </div>
227
- </div>
228
- </div>
229
- </modal>
230
- </div>
231
- </template>
232
- <script>
233
- import {HttpResetClass, PagedList} from 'vue-client'
234
- import {isEmpty} from '../../Util'
235
-
236
- export default {
237
- title: '工程列表',
238
- props: ['showData'],
239
- data () {
240
- return {
241
- model: new PagedList('rs/sql/checkuser', 20, {
242
- data: {
243
- userid: this.$login.f.id,
244
- orgid: this.$login.f.orgid
245
- }
246
- }),
247
- showModal: false, // 控制发起类型选择
248
- applyType: '', // 报建类型
249
- curorgid: [this.$login.f.orgid],
250
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
251
- defnames: [{label: '全部', value: ''}], // 流程节点
252
- applyNatures: [{label: '全部', value: ''}], // 报建性质
253
- criteriaShow: false
254
- }
255
- },
256
- ready () {
257
- // 调用查询
258
- this.search()
259
- },
260
- methods: {
261
- // 点击操作
262
- click (val) {
263
- this.$dispatch('apply', val)
264
- },
265
- // 获取流程id
266
- async getProcessId(processname) {
267
- let data = {
268
- workname: processname
269
- }
270
- let http = new HttpResetClass()
271
- let res = await http.load(
272
- 'POST',
273
- 'rs/logic/getProcessId',
274
- {data: data},
275
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
276
- )
277
-
278
- return res.data
279
- },
280
- // 报装申请
281
- async apply () {
282
- if (this.applyType === '' || this.applyType === null) {
283
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
284
- return
285
- }
286
- let data = {
287
- f_apply_type: this.applyType
288
- }
289
- if (this.applyType === '散户报建') {
290
- data.processname = '散户报建流程'
291
- data.defname = '报装申请'
292
- } else if (this.applyType === '工商户报建') {
293
- data.processname = '工商户报建流程'
294
- data.defname = '报装申请'
295
- } else if (this.applyType === '改管报建') {
296
- data.processname = '改管报建流程'
297
- data.defname = '报装申请'
298
- } else if (this.applyType === '增容报建') {
299
- data.processname = '增容报建流程'
300
- data.defname = '报装申请'
301
- } else if (this.applyType === '团购报建') {
302
- data.processname = '团购报建流程'
303
- data.defname = '报装申请'
304
- } else if (this.applyType === '退款报建') {
305
- data.processname = '退款报建流程'
306
- data.defname = '终止报建'
307
- } else if (this.applyType === '团购转散户') {
308
- data.processname = '团购转散户报建流程'
309
- data.defname = '信息确认'
310
- } else {
311
- this.$showMessage('暂无此类报装')
312
- return
313
- }
314
-
315
- data.f_sub_state = "新增"
316
- data.f_apply_source = "线下发起"
317
- data.f_process_id = await this.getProcessId(data.processname)
318
-
319
- // 调用ExplorationUser事件
320
- this.$dispatch('apply', data)
321
-
322
- this.applyType = null
323
- this.showModal = false
324
- },
325
- loadPage () {
326
- this.$dispatch('loadPage')
327
- },
328
- search () {
329
- this.$dispatch('search')
330
- },
331
- async applyTypeChange () {
332
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
333
- let res = await this.$resetpost('rs/logic/getDefnameByType',
334
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
335
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
336
- )
337
-
338
- this.defnames = [{label: '全部', value: ''}, ...res.data]
339
-
340
- this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
341
- } else {
342
- this.defnames = [{label: '全部', value: ''}]
343
-
344
- this.applyNatures = [{label: '全部', value: ''}]
345
- }
346
- },
347
- clear () {
348
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
349
- this.$refs.cp.$refs.cri.model[key] = null
350
- })
351
- },
352
- getorg (val) {
353
- if (val.length <= 0) {
354
- return
355
- }
356
- this.model.params.data.orgid = val[0]
357
- }
358
- },
359
- computed: {
360
- projectStart () {
361
- return this.$login.r.includes('报建发起')
362
- }
363
- },
364
- watch: {
365
- 'model.rows': {
366
- handler: function () {
367
- let isover = [] // 过期(超时)数据
368
- let isbeforeover = [] // 未过期 提前提醒
369
- for (let i = 0; i < this.model.rows.length; i++) {
370
- let item = this.model.rows[i]
371
- if (item.isover === '过期') {
372
- isover.push(i + 1)
373
- }
374
- if (item.isbeforeover === '预期提醒') {
375
- isbeforeover.push(i + 1)
376
- }
377
- }
378
- let msg = null
379
- if (isover.length > 0) {
380
- msg = `第${isover.toString()}条数据已过期`
381
- this.$showAlert(msg, 'warning', 3000)
382
- }
383
-
384
- if (isbeforeover.length > 0) {
385
- msg = `第${isbeforeover.toString()}条数据即将过期`
386
- if (isover.length > 0) {
387
- setTimeout(() => {
388
- this.$showAlert(msg, 'warning', 3000)
389
- }, 4000)
390
- } else {
391
- this.$showAlert(msg, 'warning', 3000)
392
- }
393
- }
394
- }
395
- }
396
- },
397
- events: {
398
- }
399
- }
400
- </script>
401
- <style scoped>
402
-
403
- .p1 {
404
- color: #dc0b12;
405
- font-weight:bold
406
- }
407
- .p {
408
- color: #ffaf4f;
409
- }
410
- </style>
1
+ <template>
2
+ <div>
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
+ <res-select
10
+ restype='organization'
11
+ :initresid='$parent.$parent.curorgid'
12
+ @res-select="$parent.$parent.getorg"
13
+ is-mul="false"
14
+ ></res-select>
15
+ </div>
16
+ <div class="form-group col-sm-3">
17
+ <label class="font_normal_body">工程编号:</label>
18
+ <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
19
+ v-on:keyup.enter="$parent.$parent.search()"
20
+ condition="f_apply_num = '{}'">
21
+ </div>
22
+ <div class="form-group col-sm-3 button-range">
23
+ <button class="button_new button_spacing" style="width: max-content"
24
+ v-if="$parent.$parent.projectStart"
25
+ @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
26
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
27
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
28
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
29
+ <div
30
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
31
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
32
+ class="button_spacing"
33
+ style="float: right">
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <div class="row" v-show="$parent.$parent.criteriaShow">
38
+ <div class="form-group col-sm-3">
39
+ <label class="font_normal_body">客户名称:</label>
40
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
41
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
42
+ </div>
43
+ <div class="form-group col-sm-3">
44
+ <label class="font_normal_body">联系电话:</label>
45
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
46
+ v-on:keyup.enter="$parent.$parent.search()"
47
+ condition="f_phone like '%{}%'">
48
+ </div>
49
+ <div class="form-group col-sm-3">
50
+ <label class="font_normal_body">合同编号:</label>
51
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
52
+ v-on:keyup.enter="$parent.$parent.search()"
53
+ condition="f_contract_number = '{}'">
54
+ </div>
55
+ <div class="form-group col-sm-3">
56
+ <label class="font_normal_body">报建类型:</label>
57
+ <v-select
58
+ v-model="model.f_apply_type"
59
+ placeholder='报建类型'
60
+ condition="f_apply_type = '{}'"
61
+ :value.sync="model.f_apply_type"
62
+ :options='$parent.$parent.applytype'
63
+ class="select select_list"
64
+ :value-single="true"
65
+ @change="$parent.$parent.applyTypeChange()"
66
+ close-on-select ></v-select>
67
+ </div>
68
+ <div class="form-group col-sm-3">
69
+ <label class="font_normal_body">办理环节:</label>
70
+ <v-select
71
+ v-model="model.defname"
72
+ placeholder='办理环节'
73
+ condition="defname = '{}'"
74
+ :value.sync="model.defname"
75
+ :options='$parent.$parent.defnames'
76
+ class="select select_list"
77
+ :value-single="true"
78
+ close-on-select ></v-select>
79
+ </div>
80
+ <div class="form-group col-sm-3">
81
+ <label class="font_normal_body">报建性质:</label>
82
+ <v-select
83
+ v-model="model.f_apply_nature"
84
+ placeholder='报建性质'
85
+ condition="f_apply_nature = '{}'"
86
+ :value.sync="model.f_apply_nature"
87
+ :options='$parent.$parent.applyNatures'
88
+ class="select select_list"
89
+ :value-single="true"
90
+ close-on-select ></v-select>
91
+ </div>
92
+ <div class="form-group col-sm-3">
93
+ <label class="font_normal_body">用户地址:</label>
94
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
95
+ v-on:keyup.enter="$parent.$parent.search()"
96
+ condition="f_address like '%{}%'">
97
+ </div>
98
+ <div class="form-group col-sm-3">
99
+ <label for="startDate" class="font_normal_body">开始时间:</label>
100
+ <datepicker id="startDate" placeholder="开始日期"
101
+ style="width: 60%!important;"
102
+ v-model="model.startDate"
103
+ :value.sync="model.startDate"
104
+ :format="'yyyy-MM-dd 00:00:00'"
105
+ :show-reset-button="true"
106
+ condition="f_apply_date >= '{}'">
107
+ </datepicker>
108
+ </div>
109
+ <div class="form-group col-sm-3">
110
+ <label for="endDate" class="font_normal_body">结束时间:</label>
111
+ <datepicker id="endDate" placeholder="结束日期"
112
+ style="width: 60%!important;"
113
+ v-model="model.endDate"
114
+ :value.sync="model.endDate"
115
+ :format="'yyyy-MM-dd 23:59:59'"
116
+ :show-reset-button="true"
117
+ condition="f_apply_date <= '{}'">
118
+ </datepicker>
119
+ </div>
120
+ <div class="form-group col-sm-3">
121
+ <label class="font_normal_body">稍后处理:</label>
122
+ <v-select
123
+ v-model="model.f_is_later"
124
+ placeholder='稍后处理'
125
+ condition="f_is_later = '{}'"
126
+ :value.sync="model.f_is_later"
127
+ :options='$parent.$parent.laterList'
128
+ class="select select_list"
129
+ :value-single="true"
130
+ close-on-select ></v-select>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ </criteria>
135
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy" style="height: 100%">
136
+ <template partial='head'>
137
+ <tr>
138
+ <th style="white-space: nowrap;">序号</th>
139
+ <th style="white-space: nowrap;">工程编号</th>
140
+ <th style="white-space: nowrap;">客户名称</th>
141
+ <th style="white-space: nowrap;">合同编号</th>
142
+ <th style="white-space: nowrap;">电话</th>
143
+ <th style="white-space: nowrap;">地址</th>
144
+ <th style="white-space: nowrap;">来源</th>
145
+ <th style="white-space: nowrap;">报建类型</th>
146
+ <th style="white-space: nowrap;">办理环节</th>
147
+ <th style="white-space: nowrap;">流程状态</th>
148
+ <th style="white-space: nowrap;">报建日期</th>
149
+ <th style="white-space: nowrap;">操作</th>
150
+ </tr>
151
+ </template>
152
+ <template partial='body'>
153
+ <tr >
154
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
155
+ <nobr><font>{{$index+1}}</font></nobr>
156
+ </td>
157
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
158
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
159
+ </td>
160
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
161
+ <nobr><font>{{row.f_user_name}}</font></nobr>
162
+ </td>
163
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
164
+ <nobr><font>{{row.f_contract_number}}</font></nobr>
165
+ </td>
166
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
167
+ <nobr><font>{{row.f_phone}}</font></nobr>
168
+ </td>
169
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
170
+ <nobr><font>{{row.f_address}}</font></nobr>
171
+ </td>
172
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
173
+ <nobr><font>{{row.f_apply_source}}</font></nobr>
174
+ </td>
175
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
176
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
177
+ </td>
178
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
179
+ <nobr><font>{{row.defname}}</font></nobr>
180
+ </td>
181
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
182
+ <nobr><font>{{row.f_sub_state}}</font></nobr>
183
+ </td>
184
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
185
+ <nobr><font>{{row.f_apply_date}}</font></nobr>
186
+ </td>
187
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
188
+ <dropdown>
189
+ <button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
190
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
191
+ </button>
192
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
193
+ <li>
194
+ <a href="#" @click="$parent.$parent.$parent.click(row)">{{row.defname}}</a>
195
+ </li>
196
+ </ul>
197
+ </dropdown>
198
+ </td>
199
+ </tr>
200
+ </template>
201
+ </data-grid>
202
+ </criteria-paged>
203
+
204
+ <modal
205
+ v-if="showModal"
206
+ :show.sync="showModal"
207
+ backdrop="false"
208
+ title="工程类型"
209
+ cancel-text="取消"
210
+ ok-text="确认"
211
+ :callback="apply"
212
+ >
213
+ <div class="form-horizontal" slot="modal-body">
214
+ <div class="form-group" style="margin: 10px auto">
215
+ <label class="col-sm-3 control-label">报建类型:</label>
216
+ <div class="col-sm-9">
217
+ <v-select
218
+ v-model="applyType"
219
+ placeholder='请选择需要发起的工程类型'
220
+ :value.sync="applyType"
221
+ :options='$appdata.getParam("报建类型")'
222
+ :value-single="true"
223
+ class="select select_list"
224
+ :search="false"
225
+ close-on-select ></v-select>
226
+ </div>
227
+ </div>
228
+ </div>
229
+ </modal>
230
+ </div>
231
+ </template>
232
+ <script>
233
+ import {HttpResetClass, PagedList} from 'vue-client'
234
+ import {isEmpty} from '../../Util'
235
+
236
+ export default {
237
+ title: '工程列表',
238
+ props: ['showData'],
239
+ data () {
240
+ return {
241
+ model: new PagedList('rs/sql/checkuser', 20, {
242
+ data: {
243
+ userid: this.$login.f.id,
244
+ orgid: this.$login.f.orgid
245
+ }
246
+ }),
247
+ showModal: false, // 控制发起类型选择
248
+ applyType: '', // 报建类型
249
+ curorgid: [this.$login.f.orgid],
250
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
251
+ defnames: [{label: '全部', value: ''}], // 流程节点
252
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
253
+ criteriaShow: false
254
+ }
255
+ },
256
+ ready () {
257
+ // 调用查询
258
+ this.search()
259
+ },
260
+ methods: {
261
+ // 点击操作
262
+ click (val) {
263
+ this.$dispatch('apply', val)
264
+ },
265
+ // 获取流程id
266
+ async getProcessId(processname) {
267
+ let data = {
268
+ workname: processname
269
+ }
270
+ let http = new HttpResetClass()
271
+ let res = await http.load(
272
+ 'POST',
273
+ 'rs/logic/getProcessId',
274
+ {data: data},
275
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
276
+ )
277
+
278
+ return res.data
279
+ },
280
+ // 报装申请
281
+ async apply () {
282
+ if (this.applyType === '' || this.applyType === null) {
283
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
284
+ return
285
+ }
286
+ let data = {
287
+ f_apply_type: this.applyType
288
+ }
289
+ if (data.f_apply_type === '散户报建') {
290
+ data.defname = '申请登记'
291
+ data.processname = '散户报建流程'
292
+ } else if (data.f_apply_type === '民用集中报建') {
293
+ data.defname = '申请登记'
294
+ data.processname = '民用集中报建流程'
295
+ }else if (data.f_apply_type === '民用报建') {
296
+ data.defname = '申请登记'
297
+ data.processname = '民用报建流程'
298
+ }else if (data.f_apply_type === '非民用报建') {
299
+ data.defname = '申请登记'
300
+ data.processname = '非民用报建流程'
301
+ } else {
302
+ this.$showMessage('暂无此类报装')
303
+ return
304
+ }
305
+
306
+ data.f_sub_state = "新增"
307
+ data.f_apply_source = "线下发起"
308
+ data.f_process_id = await this.getProcessId(data.processname)
309
+
310
+ // 调用ExplorationUser事件
311
+ this.$dispatch('apply', data)
312
+
313
+ this.applyType = null
314
+ this.showModal = false
315
+ },
316
+ loadPage () {
317
+ this.$dispatch('loadPage')
318
+ },
319
+ search () {
320
+ this.$dispatch('search')
321
+ },
322
+ async applyTypeChange () {
323
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
324
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
325
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
326
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
327
+ )
328
+
329
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
330
+
331
+ this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
332
+ } else {
333
+ this.defnames = [{label: '全部', value: ''}]
334
+
335
+ this.applyNatures = [{label: '全部', value: ''}]
336
+ }
337
+ },
338
+ clear () {
339
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
340
+ this.$refs.cp.$refs.cri.model[key] = null
341
+ })
342
+ },
343
+ getorg (val) {
344
+ if (val.length <= 0) {
345
+ return
346
+ }
347
+ this.model.params.data.orgid = val[0]
348
+ }
349
+ },
350
+ computed: {
351
+ projectStart () {
352
+ return this.$login.r.includes('报建发起')
353
+ }
354
+ },
355
+ watch: {
356
+ 'model.rows': {
357
+ handler: function () {
358
+ let isover = [] // 过期(超时)数据
359
+ let isbeforeover = [] // 未过期 提前提醒
360
+ for (let i = 0; i < this.model.rows.length; i++) {
361
+ let item = this.model.rows[i]
362
+ if (item.isover === '过期') {
363
+ isover.push(i + 1)
364
+ }
365
+ if (item.isbeforeover === '预期提醒') {
366
+ isbeforeover.push(i + 1)
367
+ }
368
+ }
369
+ let msg = null
370
+ if (isover.length > 0) {
371
+ msg = `第${isover.toString()}条数据已过期`
372
+ this.$showAlert(msg, 'warning', 3000)
373
+ }
374
+
375
+ if (isbeforeover.length > 0) {
376
+ msg = `第${isbeforeover.toString()}条数据即将过期`
377
+ if (isover.length > 0) {
378
+ setTimeout(() => {
379
+ this.$showAlert(msg, 'warning', 3000)
380
+ }, 4000)
381
+ } else {
382
+ this.$showAlert(msg, 'warning', 3000)
383
+ }
384
+ }
385
+ }
386
+ }
387
+ },
388
+ events: {
389
+ }
390
+ }
391
+ </script>
392
+ <style scoped>
393
+
394
+ .p1 {
395
+ color: #dc0b12;
396
+ font-weight:bold
397
+ }
398
+ .p {
399
+ color: #ffaf4f;
400
+ }
401
+ </style>