apply-clients 5.0.361 → 6.0.3

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 (192) hide show
  1. package/build/css-loaders.js +34 -0
  2. package/build/dev-android.js +101 -0
  3. package/build/dev-client.js +8 -0
  4. package/build/dev-server-app.js +76 -0
  5. package/build/dev-server.js +72 -0
  6. package/build/example-server.js +80 -0
  7. package/build/release.sh +28 -0
  8. package/build/utils.js +80 -0
  9. package/build/webpack.base.conf.js +83 -0
  10. package/build/webpack.baseandroid.conf.js +84 -0
  11. package/build/webpack.dev.conf.js +39 -0
  12. package/build/webpack.devandroid.conf.js +34 -0
  13. package/build/webpack.example.conf.js +49 -0
  14. package/build/webpack.prod.conf.js +60 -0
  15. package/build/webpack.prodandroid.conf.js +60 -0
  16. package/build/webpack.test.conf.js +31 -0
  17. package/dist-android/static/.gitkeep +0 -0
  18. package/dist-android/static/batchleft.png +0 -0
  19. package/dist-android/static/batchright.png +0 -0
  20. package/dist-android/static/bluemainbg.jpg +0 -0
  21. package/dist-android/static/huangtengbiaozhi.png +0 -0
  22. package/dist-android/static/login_bg.jpg +0 -0
  23. package/dist-android/static/login_title.png +0 -0
  24. package/dist-android/static/login_title1.png +0 -0
  25. package/dist-android/static/loginbg.jpg +0 -0
  26. package/dist-android/static/loginlogo.png +0 -0
  27. package/dist-android/static/main_logo.png +0 -0
  28. package/dist-android/static/mainbg.jpg +0 -0
  29. package/dist-android/static/menulogo.png +0 -0
  30. package/dist-android/static/newmainbg.jpg +0 -0
  31. package/dist-android/static/psicon.png +0 -0
  32. package/dist-android/static/singleleft.png +0 -0
  33. package/dist-android/static/singleright.png +0 -0
  34. package/dist-android/static/treeopen.png +0 -0
  35. package/dist-android/static/treeout.png +0 -0
  36. package/dist-android/static/treeset.png +0 -0
  37. package/dist-android/static/usericon.png +0 -0
  38. package/dist-android/static/xinxi.png +0 -0
  39. package/package.json +5 -10
  40. package/src/AndroidApp.vue +1 -1
  41. package/src/App.vue +0 -1
  42. package/src/apply.js +172 -104
  43. package/src/applyAndroid.js +0 -5
  44. package/src/assets/shipin1.mp4 +0 -0
  45. package/src/bootstrap/less/bootstrap.less +2 -1
  46. package/src/components/Hello.vue +39 -0
  47. package/src/components/Table.js +2 -2
  48. package/src/components/Test.vue +26 -0
  49. package/src/components/Util.js +6 -11
  50. package/src/components/app_apply/Acceptance.vue +2 -7
  51. package/src/components/app_apply/ApplyApp.vue +6 -16
  52. package/src/components/app_apply/ApplyInfo.vue +1 -1
  53. package/src/components/app_apply/ApplyListUpload.vue +3 -3
  54. package/src/components/app_apply/ApplyToDoList.vue +3 -3
  55. package/src/components/app_apply/ApplyUserInfo.vue +3 -2
  56. package/src/components/app_apply/FieldExploration.vue +1 -3
  57. package/src/components/app_apply/PlaceControler.vue +49 -38
  58. package/src/components/{product/VueUtils → apply/base}/rightview/InstallCardList2.vue +38 -29
  59. package/src/components/{product/VueUtils → apply/base}/rightview/carddetail/ReduceFeeDetail2.vue +77 -77
  60. package/src/components/{product/VueUtils → apply/base}/rightview/carddetail/StopApplyDetail2.vue +1 -1
  61. package/src/components/build/Install/ApplyChargeSearch.vue +210 -0
  62. package/src/components/build/Install/ExplorationSelect.vue +308 -0
  63. package/src/components/build/Install/ExplorationUser.vue +315 -0
  64. package/src/components/build/Install/InstallFee/AddContract.vue +257 -0
  65. package/src/components/build/Install/InstallFee/InstallFee.vue +929 -0
  66. package/src/components/build/Install/InstallFee/InstallFee2.vue +291 -0
  67. package/src/components/{product/Function/functions → build/Install/InstallFee}/InstallFeeInfo.vue +11 -42
  68. package/src/components/build/Install/InstallFee/InstallFunction.vue +242 -0
  69. package/src/components/build/Install/InstallFee/InstallInfoSelect.vue +232 -0
  70. package/src/components/{product/Process → build/Install}/ModifyUserFiles.vue +1 -1
  71. package/src/components/build/Install/Process/BuildJob.vue +242 -0
  72. package/src/components/build/Install/Process/ContratSigne.vue +283 -0
  73. package/src/components/build/Install/Process/CustomerEssentialInfo.vue +325 -0
  74. package/src/components/build/Install/Process/CustomerFile.vue +423 -0
  75. package/src/components/build/Install/Process/CustomerMaterialMessage.vue +414 -0
  76. package/src/components/build/Install/Process/CustomerRecordMessage.vue +749 -0
  77. package/src/components/build/Install/Process/DispatchingJob.vue +261 -0
  78. package/src/components/build/Install/Process/FeeNorme.vue +252 -0
  79. package/src/components/build/Install/Process/FeeNormeAndContratSigne.vue +376 -0
  80. package/src/components/build/Install/Process/FeeVerifier.vue +199 -0
  81. package/src/components/build/Install/Process/IgnitionVentilation.vue +232 -0
  82. package/src/components/build/Install/Process/MeterType.vue +379 -0
  83. package/src/components/build/Install/Process/PlaceControler.vue +304 -0
  84. package/src/components/build/Install/Process/ProjeterFigure.vue +211 -0
  85. package/src/components/build/Install/Process/ReceivingNote.vue +317 -0
  86. package/src/components/build/Install/Process/boneng/qbj_placecontroler.vue +370 -0
  87. package/src/components/build/Install/Process/zhongran/ZR_Construction.vue +388 -0
  88. package/src/components/build/Install/Process/zhongran/ZR_ContratSigne.vue +496 -0
  89. package/src/components/build/Install/Process/zhongran/ZR_CustomerEssentialInfo.vue +415 -0
  90. package/src/components/build/Install/Process/zhongran/ZR_DispatchingJob.vue +409 -0
  91. package/src/components/build/Install/Process/zhongran/ZR_FeeNorme.vue +342 -0
  92. package/src/components/build/Install/Process/zhongran/ZR_IgnitionVentilation.vue +253 -0
  93. package/src/components/build/Install/Process/zhongran/ZR_IgnitionVentilation_transfer.vue +198 -0
  94. package/src/components/build/Install/Process/zhongran/ZR_MaterialPlan.vue +259 -0
  95. package/src/components/build/Install/Process/zhongran/ZR_MaterialPlanExamine.vue +243 -0
  96. package/src/components/build/Install/Process/zhongran/ZR_PlaceControler.vue +426 -0
  97. package/src/components/build/Install/Process/zhongran/ZR_PlaceControler_print.vue +187 -0
  98. package/src/components/build/Install/Process/zhongran/ZR_ReceivingNote.vue +404 -0
  99. package/src/components/build/Install/Process/zhongran/ZR_ReceivingNote1.vue +301 -0
  100. package/src/components/build/Install/Process/zhongran/ZR_TestDesign.vue +441 -0
  101. package/src/components/build/Install/Process/zhongran/ZR_end.vue +20 -0
  102. package/src/components/build/Install/ProcessInfo/BasicInfo.vue +68 -0
  103. package/src/components/build/Install/ProcessInfo/BuildInfo.vue +110 -0
  104. package/src/components/build/Install/ProcessInfo/ContratProcessInfo.vue +116 -0
  105. package/src/components/build/Install/ProcessInfo/DispatchingInfo.vue +114 -0
  106. package/src/components/build/Install/ProcessInfo/FeeNormeInfo.vue +108 -0
  107. package/src/components/build/Install/ProcessInfo/FeeVerifierInfo.vue +102 -0
  108. package/src/components/build/Install/ProcessInfo/IgnitionInfo.vue +99 -0
  109. package/src/components/build/Install/ProcessInfo/MeterProcessInfo.vue +114 -0
  110. package/src/components/build/Install/ProcessInfo/PlaceProcessInfo.vue +115 -0
  111. package/src/components/build/Install/ProcessInfo/ProjeterProcessInfo.vue +107 -0
  112. package/src/components/build/Install/ProcessInfo/ReceivingInfo.vue +107 -0
  113. package/src/components/build/Install/ProcessInfo/zhongran/ZR_BasicInfo.vue +74 -0
  114. package/src/components/build/Install/ProcessInfo/zhongran/ZR_BuildInfo.vue +114 -0
  115. package/src/components/build/Install/ProcessInfo/zhongran/ZR_ContratProcessInfo.vue +114 -0
  116. package/src/components/build/Install/ProcessInfo/zhongran/ZR_DispatchingInfo.vue +119 -0
  117. package/src/components/build/Install/ProcessInfo/zhongran/ZR_FeeNormeInfo.vue +105 -0
  118. package/src/components/build/Install/ProcessInfo/zhongran/ZR_IgnitionInfo.vue +99 -0
  119. package/src/components/build/Install/ProcessInfo/zhongran/ZR_MaterialPlan_info.vue +104 -0
  120. package/src/components/build/Install/ProcessInfo/zhongran/ZR_PlaceProcessInfo.vue +109 -0
  121. package/src/components/build/Install/ProcessInfo/zhongran/ZR_ReceivingInfo.vue +102 -0
  122. package/src/components/build/Install/ProcessInfo/zhongran/ZR_ignition_transfer_info.vue +104 -0
  123. package/src/components/{product/Bill → build/Install/bill}/BillXSDMakeInfo.vue +1 -1
  124. package/src/components/build/Install/monitor/SupervisoryControl.vue +178 -0
  125. package/src/components/build/Install/monitor/SupervisoryList.vue +209 -0
  126. package/src/components/{product/Supervisory → build/Install/monitor}/SupervisoryhCart.vue +3 -29
  127. package/src/components/product/Process/Processes/Service/ServiceControl.vue +91 -1718
  128. package/src/main.js +2 -9
  129. package/src/stores/ApplyLoadParams.js +1 -1
  130. package/src/bootstrap/less/standard.less +0 -208
  131. package/src/components/app_apply/ServiceControl.vue +0 -442
  132. package/src/components/app_apply/ServiceView.vue +0 -356
  133. package/src/components/product/Common/ApplyValidateBill.vue +0 -55
  134. package/src/components/product/Common/PrintBill.vue +0 -120
  135. package/src/components/product/Function/InstallFunction.vue +0 -142
  136. package/src/components/product/Function/InstallInfoSelect.vue +0 -254
  137. package/src/components/product/Function/Service/FunctionServiceControl.vue +0 -328
  138. package/src/components/product/Function/functions/AddContract.vue +0 -301
  139. package/src/components/product/Function/functions/BuyerMessage.vue +0 -512
  140. package/src/components/product/Function/functions/InstallFee.vue +0 -919
  141. package/src/components/product/Function/functions/material_recording.vue +0 -237
  142. package/src/components/product/MaterialBatchList.vue +0 -109
  143. package/src/components/product/MaterialBatchManage.vue +0 -34
  144. package/src/components/product/Process/ExplorationSelect.vue +0 -636
  145. package/src/components/product/Process/ExplorationUser.vue +0 -131
  146. package/src/components/product/Process/MaterialUseList.vue +0 -159
  147. package/src/components/product/Process/ProcessInfo/history_control.vue +0 -134
  148. package/src/components/product/Process/Processes/CustomerMaterialMessage.vue +0 -776
  149. package/src/components/product/Process/Processes/CustomerRecordMessage.vue +0 -910
  150. package/src/components/product/Process/Processes/ProjectSettlement.vue +0 -383
  151. package/src/components/product/Process/Processes/ReceiveBatch.vue +0 -957
  152. package/src/components/product/Process/Processes/SendOrder.vue +0 -47
  153. package/src/components/product/Process/Processes/Service/ApplyAcceptBill.vue +0 -89
  154. package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +0 -305
  155. package/src/components/product/Process/Processes/Service/GasStop.vue +0 -96
  156. package/src/components/product/Process/ShowBackReason.vue +0 -18
  157. package/src/components/product/ServiceView.vue +0 -800
  158. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +0 -407
  159. package/src/components/product/Supervisory/SupervisoryControl.vue +0 -130
  160. package/src/components/product/Supervisory/SupervisoryList.vue +0 -349
  161. package/src/components/product/stopInfo/ApplyStopInfo.vue +0 -280
  162. package/src/plugins/commonService.js +0 -229
  163. package/yarn.lock +0 -8072
  164. /package/src/components/{product/VueUtils → apply/base}/ToolsPage.vue +0 -0
  165. /package/src/components/{product/VueUtils → apply/base}/rightview/carddetail/BuildFeeDetail2.vue +0 -0
  166. /package/src/components/{product/VueUtils → apply/base}/rightview/carddetail/ChangeFeeDetail2.vue +0 -0
  167. /package/src/components/{product/Function/functions → build/Install/InstallFee}/AllSelect.vue +0 -0
  168. /package/src/components/{product/Function → build/Install/InstallFee}/InstallInfoDown.vue +0 -0
  169. /package/src/components/{product/Function/functions → build/Install/InstallFee}/PreparationFee.vue +0 -0
  170. /package/src/components/{product/Function/functions → build/Install/InstallFee}/PrestoreFee.vue +0 -0
  171. /package/src/components/{product/Function/functions → build/Install/InstallFee}/ReduceFee.vue +0 -0
  172. /package/src/components/{product/Function/functions → build/Install/InstallFee}/StopInstall.vue +0 -0
  173. /package/src/components/{product/Function/functions → build/Install/InstallFee}/UpdateFee.vue +0 -0
  174. /package/src/components/{product/Process/Processes → build/Install/Process}/CustomerBuildingMessage.vue +0 -0
  175. /package/src/components/{product/Process/Processes → build/Install/Process}/CustomerEquipmentMessage.vue +0 -0
  176. /package/src/components/{product/Function/functions → build/Install/ProcessInfo}/ApplyRecordCancel.vue +0 -0
  177. /package/src/components/{product/Bill → build/Install/bill}/BillGZK.vue +0 -0
  178. /package/src/components/{product/Bill → build/Install/bill}/BillGZKMakeInfo.vue +0 -0
  179. /package/src/components/{product/Bill → build/Install/bill}/BillGZKRecordInfo.vue +0 -0
  180. /package/src/components/{product/Bill → build/Install/bill}/BillJLB.vue +0 -0
  181. /package/src/components/{product/Bill → build/Install/bill}/BillJLBMakeInfo.vue +0 -0
  182. /package/src/components/{product/Bill → build/Install/bill}/BillJLBRecordInfo.vue +0 -0
  183. /package/src/components/{product/Bill → build/Install/bill}/BillKTK.vue +0 -0
  184. /package/src/components/{product/Bill → build/Install/bill}/BillKTKMakeInfo.vue +0 -0
  185. /package/src/components/{product/Bill → build/Install/bill}/BillKTKRecordInfo.vue +0 -0
  186. /package/src/components/{product/Bill → build/Install/bill}/BillQRK.vue +0 -0
  187. /package/src/components/{product/Bill → build/Install/bill}/BillQRKMakeInfo.vue +0 -0
  188. /package/src/components/{product/Bill → build/Install/bill}/BillQRKRecordInfo.vue +0 -0
  189. /package/src/components/{product/Bill → build/Install/bill}/BillSelect.vue +0 -0
  190. /package/src/components/{product/Bill → build/Install/bill}/BillXSD.vue +0 -0
  191. /package/src/components/{product/Bill → build/Install/bill}/BillXSDRecordInfo.vue +0 -0
  192. /package/src/components/{product/Supervisory → build/Install/monitor}/SupervisoryBaseInfo.vue +0 -0
@@ -0,0 +1,243 @@
1
+ <template>
2
+ <div class="auto select-overspread">
3
+ <div class="panel panel-info">
4
+ <div class="panel-heading">
5
+ <h3 class="panel-title">材料审核</h3>
6
+ </div>
7
+ </div>
8
+ <validator name="v">
9
+ <form class="form-horizontal">
10
+ <div class="col-sm-11 form-group">
11
+ <div class="form-group col-sm-4">
12
+ <div class="col-sm-3"></div>
13
+ <div class="col-sm-6">
14
+ <input type="checkbox" class="" id="checkbox" v-model="model.f_ismaterial_examine" :readonly="edit ? false : 'readonly'">
15
+ <label for="checkbox" class="font-size">材料申请是否通过</label>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ <div class="form-group col-sm-11">
20
+ <label class="col-sm-2" for="f_material_remarks">材料申请备注:</label>
21
+ <div class="col-sm-10" id="f_material_remarks">
22
+ <textarea class="form-control" v-model="model.f_material_remarks" rows="3"
23
+ readonly>
24
+ </textarea>
25
+ </div>
26
+ </div>
27
+ <div class="form-group col-sm-11">
28
+ <label class="col-sm-2" for="f_material_remarks">申请不通过原因:</label>
29
+ <div class="col-sm-10">
30
+ <textarea class="form-control" v-model="model.f_back_reason" rows="3" >
31
+ </textarea>
32
+ </div>
33
+ </div>
34
+ </form>
35
+ </validator>
36
+ <div class="from-group col-sm-11" v-show="edit">
37
+ <center>
38
+ <button type="button" @click="commit()" class="btn btn-primary" style="width:80px; margin-left:40px;" v-if="showsub">
39
+ {{buttonName}}
40
+ </button>
41
+ <button type="button" @click="back()" class="btn btn-warning" style="width:80px; margin-left:50px;" v-else>
42
+ {{buttonName}}
43
+ </button>
44
+ <button type="button" @click="reset()" class="btn btn-warning" style="width:80px; margin-left:40px;">
45
+ 取消
46
+ </button>
47
+ </center>
48
+ </div>
49
+ </div>
50
+ </template>
51
+ <script>
52
+ import co from 'co'
53
+ import {HttpResetClass} from 'vue-client'
54
+ import * as Util from '../../../../Util'
55
+ let gen = function* (self, val) {
56
+ val.f_survey_name = self.employeetemplate
57
+ val.f_temp_date = Util.toStandardTimeString()
58
+ let data ={
59
+ tablename:'t_apply',
60
+ parameters:val
61
+ }
62
+ yield self.$resetpost('rs/logic/save', {data:data})
63
+ data = {
64
+ model: {
65
+ f_processid: self.selectdata.f_process_id,
66
+ },
67
+ loginUser: {
68
+ id: self.$login.f.id,
69
+ name: self.$login.f.name,
70
+ ename: self.$login.f.ename
71
+ },
72
+ employeetemplate: self.employeetemplate,// 指派勘察人员
73
+ subdep: self.buttonName
74
+ }
75
+ console.log(">>>>>>>>>>>>11>>>>>>>>>>",data.model.f_processid)
76
+ self.$resetpost(`rs/logic/grantnext`,
77
+ {data: data})
78
+ .then(() => {
79
+ self.reset()
80
+ })
81
+ }
82
+ export default {
83
+ title: '材料审核',
84
+ data() {
85
+ return {
86
+ employees: [], // 部门人员数组
87
+ employeetemplate: '', // 选定部门人员
88
+ model: {
89
+ },
90
+ buttonName:'',
91
+ showsub:false
92
+ }
93
+ },
94
+ props: ['selectdata','edit'],
95
+ ready() {
96
+ this.model = Object.assign({}, this.model, this.selectdata)
97
+ },
98
+ methods: {
99
+ // 退回则默认值为已存储的人
100
+ toemployees() {
101
+ if (this.temploader == '技术组长' && this.model.f_survey_name) {
102
+ this.employeetemplate = this.model.f_survey_name
103
+ }
104
+ },
105
+ // 获取部门领导角色
106
+ async loademployees() {
107
+ let http = new HttpResetClass()
108
+ if (this.selectdata.actdefid != '1') {
109
+ await http.load('POST','rs/sql/singleTable', {
110
+ data: {
111
+ tablename: 't_actorperson',
112
+ condition: " userseq='" + this.$login.f.id + "' order by id desc"
113
+ }
114
+ }, {resolveMsg: null, rejectMsg: "角色人员是(登陆人)信息查询失败"}, {silent: true})
115
+ .then((res) => {
116
+ console.log("取得部门领导的角色" + res.data[0].actorid)
117
+ if (res.data[0].actorid.startsWith("R") && (res.data[0].actorid.includes("部门负责人") || res.data[0].actorid.includes("部经理")|| res.data[0].actorid.includes("部门领导") || res.data[0].actorid.includes("部负责人") || res.data[0].actorid.includes("部领导")||res.data[0].actorid.includes("组长"))) {
118
+ let loaderstr = res.data[0].actorid.substring(2, res.data[0].actorid.length - 1)
119
+ this.temploader = loaderstr
120
+ // 如果是退回的就用已经保存的人员,保证下发的是同一个人
121
+ this.toemployees()
122
+ let loademployeestr = null
123
+ if (loaderstr.includes("部门")) {
124
+ loademployeestr = 'R(' + loaderstr.split("部门")[0] + '部门人员)'
125
+ } else if (loaderstr.includes("部")) {
126
+ loademployeestr = 'R(' + loaderstr.split("部")[0] + '部人员)'
127
+ } else if (loaderstr.includes("组长")) {
128
+ loademployeestr = 'R(' + loaderstr.split("组长")[0] + '人员)'
129
+ }
130
+ console.log(loademployeestr)
131
+ let http2 = new HttpResetClass()
132
+ http2.load('POST','rs/sql/singleTable', {
133
+ data: {
134
+ tablename: 't_role',
135
+ condition: " name='" + loademployeestr.substring(2, loademployeestr.length - 1) + "'"
136
+ // condition: " name='" + loaderstr.split("部")[0] + '部人员' + "'"
137
+ }
138
+ }, {resolveMsg: null, rejectMsg: "角色人员(部门人员)id信息查询失败"}, {silent: true}).then((res) => {
139
+ console.log("取得角色人员(部门人员)id" + JSON.stringify(res.data[0].id))
140
+ let strid = res.data[0].id
141
+ let http3 = new HttpResetClass()
142
+ http3.load('POST','rs/sql/singleTable', {
143
+ data: {
144
+ tablename: 't_user',
145
+ condition: "roles like '%" + strid + "%'"
146
+ }
147
+ }, {resolveMsg: null, rejectMsg: "角色人员(部门人员)信息查询失败"}, {silent: true}).then((res) => {
148
+ console.log("角色人员(部门人员)信息成功")
149
+ for (var i = 0; i < res.data.length; i++) {
150
+ this.employees.push({lable: res.data[i].name, value: res.data[i].name})
151
+ }
152
+ })
153
+ })
154
+ }
155
+ })
156
+ }
157
+ },
158
+ confirm() {
159
+ //判断当前节点的状态(开始活动/完工)
160
+ this.$resetpost('rs/sql/findProcessState', {data: {actid:this.selectdata.actid}}, {
161
+ resolveMsg: null,
162
+ rejectMsg: '提交错误!'
163
+ }).then((res) => {
164
+ console.log(">>>>>>>>>节点状态查询结果<<<<<<<<<<<", res)
165
+ if (res.data[0].state != '开始活动') {
166
+ this.$showMessage("该节点信息已在别处提交,请刷新!")
167
+ this.reset()
168
+ } else {
169
+ let data ={
170
+ tablename:'t_apply',
171
+ parameters:this.model
172
+ }
173
+ this.$resetpost('rs/logic/save',{data:data} )
174
+ .then(() => {
175
+ this.reset()
176
+ })
177
+ }
178
+ })
179
+ },
180
+ //退回上一个流程
181
+ back() {
182
+ this.model.f_sub_state = '申请打回'
183
+ this.confirm()
184
+ let data = {
185
+ model: {
186
+ f_processid: this.selectdata.f_process_id,
187
+ },
188
+ loginUser: {
189
+ id: this.$login.f.id,
190
+ name: this.$login.f.name,
191
+ ename: this.$login.f.ename
192
+ },
193
+ subdep: '打回'
194
+ }
195
+ let http = new HttpResetClass()
196
+ http.load('POST',`rs/logic/ignitionnext`,
197
+ {data: data})
198
+ .then(() => {
199
+ this.reset()
200
+ })
201
+ },
202
+ commit() {
203
+ //判断当前节点的状态(开始活动/完工)
204
+ this.$resetpost('rs/sql/findProcessState', {data: {actid:this.selectdata.actid}}, {
205
+ resolveMsg: null,
206
+ rejectMsg: '提交错误!'
207
+ }).then((res) => {
208
+ console.log(">>>>>>>>>节点状态查询结果<<<<<<<<<<<", res)
209
+ if (res.data[0].state != '开始活动') {
210
+ this.$showMessage("该节点信息已在别处提交,请刷新!")
211
+ this.reset()
212
+ } else {
213
+ let getGen = gen(this, this.model)
214
+ co(getGen)
215
+ }
216
+ })
217
+ },
218
+ reset() {
219
+ this.$dispatch('close')
220
+ this.$dispatch('selfsearch')
221
+ },
222
+ setselect() {
223
+ this.selectdata.f_gas_type = this.selectdata.f_gas_type ? this.selectdata.f_gas_type : this.model.f_gas_type
224
+ this.selectdata.f_survey_name = this.selectdata.f_survey_name ? this.selectdata.f_survey_name : this.model.f_survey_name
225
+ this.model = Object.assign({}, this.model, this.selectdata)
226
+ this.model.f_survey_date = this.$login.toStandardDateString()
227
+ this.model.f_survey_department = this.$login.f.f_parentname
228
+ this.model.f_survey_operator = this.$login.f.name
229
+ }
230
+ },
231
+ watch: {
232
+ 'model.f_ismaterial_examine'(val){
233
+ if(val == true){
234
+ this.buttonName = '提交'
235
+ this.showsub = true
236
+ }else{
237
+ this.buttonName = '打回'
238
+ this.showsub = false
239
+ }
240
+ }
241
+ }
242
+ }
243
+ </script>
@@ -0,0 +1,426 @@
1
+ <template xmlns="http://www.w3.org/1999/xhtml" xmlns:v-validate="http://www.w3.org/1999/xhtml">
2
+ <div class="auto" style="overflow: hidden">
3
+ <div class="panel panel-info">
4
+ <div class="panel-heading">
5
+ <h3 class="panel-title">测绘申请</h3>
6
+ </div>
7
+ </div>
8
+ <validator name="v">
9
+ <form class="form-horizontal">
10
+ <div class="form-group col-sm-11">
11
+ <div class="form-group col-sm-4">
12
+ <label for="f_designer" class=" col-sm-6 control-label">项目名称:</label>
13
+ <div class="col-sm-6" id="f_entry_name" :class="[$v.f_entry_name.required ? 'formItem-required' : '' ]">
14
+ <input class="form-control col-sm-6" type="text" v-model="model.f_entry_name" :readonly="edit ? false : 'readonly'"
15
+ v-validate:f_entry_name ='{required: true }'
16
+ >
17
+ </div>
18
+ </div>
19
+ <div class="form-group col-sm-4" :class="$v.f_install_num.pattern ? 'has-error' : ''">
20
+ <label for="f_install_num" class=" col-sm-6 control-label">设计户数:</label>
21
+ <div class="col-sm-6" id="f_install_num">
22
+ <input class="form-control col-sm-6" type="number" v-model="model.f_install_num"
23
+ v-validate:f_install_num="{pattern:'/^[+]{0,1}(\\d+)$|^[+]{0,1}(\\d+\\.\\d+)$/'}" :readonly="edit ? false : 'readonly'">
24
+ </div>
25
+ </div>
26
+ <div class="form-group col-sm-4">
27
+ <label for="f_designer" class=" col-sm-6 control-label">市场开发部项目负责人:</label>
28
+ <div class="col-sm-6" id="f_market_person">
29
+ <input class="form-control col-sm-6" type="text" v-model="model.f_market_person" :readonly="edit ? false : 'readonly'">
30
+ </div>
31
+ </div>
32
+ </div>
33
+ <div class="form-group col-sm-11">
34
+ <div class="form-group col-sm-4">
35
+ <label for="f_install_num" class=" col-sm-6 control-label">总户数:</label>
36
+ <div class="col-sm-6" id="f_total_households" :class="[$v.f_total_households.required ? 'formItem-required' : '' ]">
37
+ <input class="form-control col-sm-6" type="number" id="f_total_households" v-model="model.f_total_households"
38
+ v-validate:f_total_households="{required: true}"
39
+ :readonly="edit ? false : 'readonly'">
40
+ </div>
41
+ </div>
42
+ <div class="form-group col-sm-4">
43
+ <label for="f_install_num" class=" col-sm-6 control-label">已登记户数:</label>
44
+ <div class="col-sm-6" id="f_register_households" :class="[$v.f_register_households.required ? 'formItem-required' : '' ]">
45
+ <input class="form-control col-sm-6" type="number" v-model="model.f_register_households"
46
+ id="f_register_households"
47
+ v-validate:f_register_households="{required: true}"
48
+ :readonly="edit ? false : 'readonly'">
49
+ </div>
50
+ </div>
51
+ <div class="form-group col-sm-4">
52
+ <label for="f_install_num" class=" col-sm-6 control-label">勘查人员:</label>
53
+ <div class="col-sm-6">
54
+ <input class="form-control col-sm-6" type="text" v-model="model.f_survey_name" id="f_survey_name"
55
+ :readonly="edit ? false : 'readonly'">
56
+ </div>
57
+ </div>
58
+ </div>
59
+ <div class="col-sm-11">
60
+ <div class="form-group col-sm-4">
61
+ <label for="f_designer" class=" col-sm-6 control-label">客户联系人:</label>
62
+ <div class="col-sm-6" id="f_customer_contact">
63
+ <input class="form-control col-sm-6" type="text" v-model="model.f_customer_contact" :readonly="edit ? false : 'readonly'">
64
+ </div>
65
+ </div>
66
+ <div class="form-group col-sm-4">
67
+ <label for="f_install_num" class=" col-sm-6 control-label">联系电话:</label>
68
+ <div class="col-sm-6">
69
+ <input class="form-control col-sm-6" type="text" v-model="model.f_contact" id="f_contact" :readonly="edit ? false : 'readonly'">
70
+ </div>
71
+ </div>
72
+
73
+ <div class="form-group col-sm-4" >
74
+ <label for="f_survey_time" class="col-sm-6 control-label">勘查日期:</label>
75
+ <div class="col-sm-6" id="f_survey_time">
76
+ <input class="form-control col-sm-6" type="text" v-show="false" v-model="$refs.surveytime.value" >
77
+ <datepicker id="f_survey_time" width="200.72px;" v-ref:surveytime
78
+ :readonly="true"
79
+ :value.sync="model.f_survey_time"
80
+ :disabled-days-of-Week="[]"
81
+ :format="'yyyy-MM-dd'"
82
+ v-model="model.f_survey_time"
83
+ :disabled="edit ? false : 'disabled'">
84
+ </datepicker>
85
+ </div>
86
+ </div>
87
+
88
+ </div>
89
+ <div class="from-group col-sm-11">
90
+ <div class="form-group col-sm-12">
91
+ <label class="col-sm-2" for="f_design_remarks">设计出图说明:</label>
92
+ <div class="col-sm-10" id="f_design_remarks">
93
+ <textarea class="form-control col-sm-6" rows="3" v-model="model.f_design_remarks"
94
+ :readonly="edit ? false : 'readonly'">
95
+ </textarea>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ <div class="form-group col-sm-11">
100
+ <div class="form-group col-sm-6">
101
+ <label for="f_survey_departmen" class=" col-sm-4 control-label">部门:</label>
102
+ <div class="col-sm-6" id="f_survey_departmen">
103
+ <input class="form-control" type="text" v-model="model.f_apply_department" disabled>
104
+ </div>
105
+ </div>
106
+ <div class="form-group col-sm-6">
107
+ <label for="f_survey_operator" class="col-sm-6 control-label">执行人:</label>
108
+ <div class="col-sm-6" id="f_survey_operator">
109
+ <input class="form-control" type="text" v-model="model.f_apply_operator" disabled>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ <div class="form-group col-sm-11">
114
+ <div class="form-group col-sm-6">
115
+ <label class=" col-sm-4 control-label" for="f_filiale">分公司:</label>
116
+ <div class="col-sm-6" id="f_filiale">
117
+ <input class="form-control" type="text" v-model="model.f_filiale" disabled>
118
+ </div>
119
+ </div>
120
+ <div class="form-group col-sm-6">
121
+ <label class=" col-sm-6 control-label">操作日期:</label>
122
+ <div class="col-sm-6" id="f_survey_date">
123
+ <input class="form-control" type="text" v-model="model.f_survey_date" disabled>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </form>
128
+ </validator>
129
+ <div class="from-group col-sm-11" v-show="edit">
130
+ <center>
131
+ <button type="button" @click="confirm()" class="btn btn-primary" style="width:80px; margin-left:40px;" >
132
+ 保存
133
+ </button>
134
+ <button type="button" @click="commit()" class="btn btn-primary" style="width:80px; margin-left:40px;" :disabled='!$v.valid'>
135
+ 提交
136
+ </button>
137
+ <button type="button" @click="reset()" class="btn btn-warning" style="width:80px; margin-left:40px;">
138
+ 取消
139
+ </button>
140
+ </center>
141
+ </div>
142
+ </div>
143
+ <place-controler-print v-if="showPrint" :show="showPrint"></place-controler-print>
144
+ </template>
145
+ <script>
146
+ import co from 'co'
147
+ import {HttpResetClass} from 'vue-client'
148
+ import * as Util from '../../../../Util'
149
+ let gen = function* (self, val) {
150
+ let data = {
151
+ tablename: 't_apply',
152
+ parameters: val
153
+ }
154
+ yield self.$resetpost('rs/logic/save', {data: data})
155
+ data = {
156
+ model: {
157
+ f_processid: self.selectdata.f_process_id,
158
+ },
159
+ loginUser: {
160
+ id: self.$login.f.id,
161
+ name: self.$login.f.name,
162
+ ename: self.$login.f.ename
163
+ },
164
+ employeetemplate: self.employeetemplate,// 指派勘察人员
165
+ subdep: '提交'
166
+ }
167
+ self.$resetpost(`rs/logic/grantnext`,
168
+ {data: data})
169
+ .then(() => {
170
+ self.reset()
171
+ })
172
+ }
173
+ export default {
174
+ title: '测绘申请',
175
+ data() {
176
+ return {
177
+ fgastype: this.$appdata.getParam('用气类型'),
178
+ employees: [], // 部门人员数组
179
+ employeetemplate: '', // 选定部门人员
180
+ model: {
181
+ f_register_households:'',
182
+ f_filiale: this.$login.f.f_filiale,
183
+ f_survey_date: Util.toStandardTimeString(),
184
+ f_survey_department: this.$login.f.f_parentname,
185
+ f_survey_operator: this.$login.f.name
186
+ },
187
+ pattern: '/^[+]{0,1}(\\d+)$|^[+]{0,1}(\\d+\\.\\d+)$/',
188
+ showPrint: false
189
+ }
190
+ },
191
+ props: ['selectdata','edit'],
192
+ ready() {
193
+ this.selectdata.f_gas_type = this.selectdata.f_gas_type ? [this.selectdata.f_gas_type] : this.model.f_gas_type
194
+ this.model = Object.assign({}, this.model, this.selectdata)
195
+ },
196
+ methods: {
197
+ // 获取部门领导角色
198
+ async loademployees() {
199
+ let http = new HttpResetClass()
200
+ if (this.selectdata.actdefid != '1') {
201
+ await http.load('POST', 'rs/sql/singleTable', {
202
+ data: {
203
+ tablename: 't_actorperson',
204
+ condition: " userseq='" + this.$login.f.id + "' order by id desc"
205
+ }
206
+ }, {resolveMsg: null, rejectMsg: "角色人员是(登陆人)信息查询失败"}, {silent: true})
207
+ .then((res) => {
208
+ console.log("取得部门领导的角色" + res.data[0].actorid)
209
+ if (res.data[0].actorid.startsWith("R") && (res.data[0].actorid.includes("部门负责人") || res.data[0].actorid.includes("部经理") || res.data[0].actorid.includes("部门领导") || res.data[0].actorid.includes("部负责人") || res.data[0].actorid.includes("部领导") || res.data[0].actorid.includes("组长"))) {
210
+ let loaderstr = res.data[0].actorid.substring(2, res.data[0].actorid.length - 1)
211
+ this.temploader = loaderstr
212
+ // 如果是退回的就用已经的人员,保证下发的是同一个人
213
+ this.toemployees()
214
+ let loademployeestr = null
215
+ if (loaderstr.includes("部门")) {
216
+ loademployeestr = 'R(' + loaderstr.split("部门")[0] + '部门人员)'
217
+ } else if (loaderstr.includes("部")) {
218
+ loademployeestr = 'R(' + loaderstr.split("部")[0] + '部人员)'
219
+ } else if (loaderstr.includes("组长")) {
220
+ loademployeestr = 'R(' + loaderstr.split("组长")[0] + '人员)'
221
+ }
222
+ console.log(loademployeestr)
223
+ let http2 = new HttpResetClass()
224
+ http2.load('POST', 'rs/sql/singleTable', {
225
+ data: {
226
+ tablename: 't_role',
227
+ condition: " name='" + loademployeestr.substring(2, loademployeestr.length - 1) + "'"
228
+ // condition: " name='" + loaderstr.split("部")[0] + '部人员' + "'"
229
+ }
230
+ }, {resolveMsg: null, rejectMsg: "角色人员(部门人员)id信息查询失败"}, {silent: true}).then((res) => {
231
+ console.log("取得角色人员(部门人员)id" + JSON.stringify(res.data[0].id))
232
+ let strid = res.data[0].id
233
+ let http3 = new HttpResetClass()
234
+ http3.load('POST', 'rs/sql/singleTable', {
235
+ data: {
236
+ tablename: 't_user',
237
+ condition: "roles like '%" + strid + "%'"
238
+ }
239
+ }, {resolveMsg: null, rejectMsg: "角色人员(部门人员)信息查询失败"}, {silent: true}).then((res) => {
240
+ console.log("角色人员(部门人员)信息成功")
241
+ for (var i = 0; i < res.data.length; i++) {
242
+ this.employees.push({lable: res.data[i].name, value: res.data[i].name})
243
+ }
244
+ })
245
+ })
246
+ }
247
+ })
248
+ }
249
+ },
250
+ confirm() {
251
+ //判断当前节点的状态(开始活动/完工)
252
+ this.$resetpost('rs/sql/findProcessState', {data: {actid:this.selectdata.actid}}, {
253
+ resolveMsg: null,
254
+ rejectMsg: '提交错误!'
255
+ }).then((res) => {
256
+ if (res.data[0].state != '开始活动') {
257
+ this.$showMessage("该节点信息已在别处提交,请刷新!")
258
+ this.reset()
259
+ } else {
260
+ //通过数据校验再进行下一步判断
261
+ if (this.verification()) {
262
+ if(Number(this.model.f_register_households) > Number(this.model.f_total_households)) {
263
+ this.$showMessage("已登记户数不能大于未总户数!")
264
+ this.model.f_register_households = null
265
+ }else{
266
+ let data = {
267
+ tablename: 't_apply',
268
+ parameters: this.model
269
+ }
270
+ this.$resetpost('rs/logic/save', {data: data})
271
+ .then(() => {
272
+ this.reset()
273
+ })
274
+ }
275
+ }
276
+ }
277
+ })
278
+
279
+ },
280
+ commit() {
281
+ //判断当前节点的状态(开始活动/完工)
282
+ var entryName = this.model.f_entry_name //项目名称
283
+ var ename = this.selectdata.f_entry_name
284
+ this.$resetpost('rs/sql/findProcessState', {data: {actid:this.selectdata.actid}}, {
285
+ resolveMsg: null,
286
+ rejectMsg: '提交错误!'
287
+ }).then((res) => {
288
+ if (res.data[0].state != '开始活动') {
289
+ this.$showMessage("该节点信息已在别处提交,请刷新!")
290
+ this.reset()
291
+ } else {
292
+ //通过数据校验再进行下一步判断
293
+ if (this.verification()) {
294
+ if(name == null){
295
+ //项目名称唯一性判断
296
+ this.$resetpost('rs/sql/findByEntryName', {data: {entryName: entryName}}, {
297
+ resolveMsg: null,
298
+ rejectMsg: '提交错误!'
299
+ }).then((res) => {
300
+ if (res.data.length > 0) {
301
+ this.$showMessage("项目名称不能重复!")
302
+ } else {
303
+ let getGen = gen(this, this.model)
304
+ co(getGen)
305
+ }
306
+ })
307
+ }else{
308
+ if(Number(this.model.f_register_households) > Number(this.model.f_total_households)){
309
+ this.$showMessage("已登记户数不能大于未总户数!")
310
+ this.model.f_register_households = null
311
+ }else{
312
+ let getGen = gen(this, this.model)
313
+ co(getGen)
314
+ }
315
+ }
316
+ }
317
+ }
318
+ })
319
+ },
320
+ //数据校验
321
+ verification() {
322
+ var isNum = /^(([+]?\d*$)|(^[+]?\d+(\.\d+)?$))/ //非负纯数字
323
+ var regex = /.*?[\u4e00-\u9fa5].*?[\u4e00-\u9fa5].*/ //至少两个汉字
324
+ var phoneReg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ //手机号码正则
325
+ var telReg = /0\d{2,3}-\d{7,8}/ //座机正则
326
+ if (!this.model.f_entry_name) {
327
+ this.$showMessage("项目名称不能为空!")
328
+ return false
329
+ }
330
+ if (!this.model.f_install_num) {
331
+ this.$showMessage("设计户数不能为空!")
332
+ return false
333
+ } else if (!isNum.test(this.model.f_install_num)) {
334
+ this.$showMessage("设计户数格式错误!")
335
+ return false
336
+ }
337
+ if (!this.model.f_total_households) {
338
+ this.$showMessage("总户数不能为空!")
339
+ return false
340
+ } else if (!isNum.test(this.model.f_total_households)) {
341
+ this.$showMessage("总户数格式错误!")
342
+ return false
343
+ }
344
+ if (!this.model.f_register_households) {
345
+ this.$showMessage("已登记户数不能为空!")
346
+ return false
347
+ } else if (!isNum.test(this.model.f_register_households)) {
348
+ this.$showMessage("已登记户数格式错误!")
349
+ return false
350
+ }
351
+
352
+ if (!this.model.f_survey_name) {
353
+ this.$showMessage("勘查人员不能为空!")
354
+ return
355
+ } else if (!regex.test(this.model.f_survey_name.trim())) {
356
+ this.$showMessage("勘查人员请至少输入两个汉字!")
357
+ return false
358
+ }
359
+ if (!this.model.f_market_person) {
360
+ this.$showMessage("市场开发部项目负责人不能为空!")
361
+ return
362
+ } else if (!regex.test(this.model.f_market_person.trim())) {
363
+ this.$showMessage("市场开发部项目负责人请至少输入两个汉字!")
364
+ return false
365
+ }
366
+ if (!this.model.f_customer_contact) {
367
+ this.$showMessage("客户联系人不能为空!")
368
+ return
369
+ } else if (!regex.test(this.model.f_customer_contact.trim())) {
370
+ this.$showMessage("客户联系人请至少输入两个汉字!")
371
+ return false
372
+ }else if(!this.model.f_contact){
373
+ this.$showMessage("联系电话不能为空!")
374
+ return false
375
+ }else if(!telReg.test(this.model.f_contact) && !phoneReg.test(this.model.f_contact)){
376
+ this.$showMessage("联系电话格式错误!")
377
+ return
378
+ }
379
+
380
+
381
+ if(!this.model.f_survey_time){
382
+ this.$showMessage("勘查日期不能为空!")
383
+ return false
384
+ }
385
+ return true
386
+ },
387
+ reset() {
388
+ this.$dispatch('close')
389
+ this.$dispatch('selfsearch')
390
+ },
391
+ setselect() {
392
+ this.selectdata.f_gas_type = this.selectdata.f_gas_type ? this.selectdata.f_gas_type : this.model.f_gas_type
393
+ this.model = Object.assign({}, this.model, this.selectdata)
394
+ this.model.f_survey_date = this.$login.toStandardDateString()
395
+ this.model.f_survey_department = this.$login.f.f_parentname
396
+ this.model.f_survey_operator = this.$login.f.name
397
+ }
398
+ },
399
+ events: {
400
+
401
+ },
402
+ watch: {
403
+ /* 'model.f_register_households'(val){
404
+ console.log("val的值",val)
405
+ console.log("model.f_total_households的值",this.model.f_total_households)
406
+ console.log("比较看结果",Number(val) > Number(this.model.f_total_households))
407
+ console.log("Number(val)",Number(val))
408
+ if(Number(val) > Number(this.model.f_total_households )){
409
+ this.$showMessage("已登记户数不能大于总户数!")
410
+ this.model.f_register_households = null
411
+ return
412
+ }
413
+ }*/
414
+ }
415
+ }
416
+ </script>
417
+ <style>
418
+ .formItem-required::after {
419
+ content: '*';
420
+ position: absolute;
421
+ font-size: 20px;
422
+ margin-top: 3.5%;
423
+ margin-left: 3%;
424
+ color: #d91118;
425
+ }
426
+ </style>