telephone-clients 3.0.103-77 → 3.0.103-78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telephone-clients",
3
- "version": "3.0.103-77",
3
+ "version": "3.0.103-78",
4
4
  "description": "呼叫模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -1,168 +1,254 @@
1
- <template>
2
- <div class="repair-bg" id="work-history">
3
- <div class="bq-parent" v-if="shutype == 'heng'">
4
- <blockquote class="blockquote">
5
- <p>工单基本信息</p>
6
- </blockquote>
7
- </div>
8
- <!-- 工单的基本信息 -->
9
- <div class="panel panel-default auto repair-info-content">
10
- <div class="panel-body">
11
- <p v-if="service.f_userinfo_id" >用户编号: <span style="text-decoration:underline">{{service.f_userinfo_code}}</span><!--&ensp;&ensp;<span style="color: blue" @click="goOtherCharge(service.f_userinfo_id)">其他收费</span>--></p>
12
- <!--<p v-if="service.f_userinfo_id" >用户编号: <span style="color: blue;text-decoration:underline" @click="searchHistory()">{{service.f_userinfo_code}}</span></p>-->
13
- <!--<p>工单编号: {{service.f_service_id}}</p>-->
14
- <!--<p>生成时间: {{service.f_created_date}}</p>-->
15
- <!--<p>预约时间: {{service.f_repair_date}}</p>-->
16
- <p>来电电话: {{service.f_phone}}
17
- <img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(service.f_phone)'>
18
- </p>
19
- <!--<p>用户姓名: {{service.f_user_name}}</p>-->
20
- <!--<p>用户地址: {{service.f_address}}</p>-->
21
- <!--<p>备注信息: {{service.f_remarks}}</p>-->
22
- <!--<p>指导建议: {{service.f_advice}}</p>-->
23
- <failure-show :value='service.failure'>
24
- </failure-show>
25
- <div style="clear:both;">
26
- <phone-sell-info-lite v-if="showSellInfo" :user="{}" :f_userinfo_id="service.f_userinfo_id"></phone-sell-info-lite>
27
- </div>
28
- <div class="from-group">
29
- <img-self v-if="service.f_single_path" :src="imgfilename" width="200" height="200"></img-self>
30
- <img-self v-if="service.f_singlea_path" :src="imgfilenamea" width="200" height="200"></img-self>
31
- <img-self v-if="service.f_singleb_path" :src="imgfilenameb" width="200" height="200"></img-self>
32
- </div>
33
- <route name="info-route" ></route>
34
- </div>
35
- </div>
36
- </div>
37
- </template>
38
- <script>
39
- import FailureShow from '../../../components/pc/FailureShow'
40
- import {HttpResetClass} from "vue-client";
41
- import Vue from "vue";
42
-
43
- export default {
44
- title: '工单历史记录',
45
- data () {
46
- return {
47
- // service: null
48
- imgfilename:'',
49
- imgfilenamea:'',
50
- imgfilenameb:'',
51
- f_userinfo_code : '测试文本',
52
- showSellInfo: false
53
- }
54
- },
55
- props: {
56
-
57
- service: { // 传入一条报修单信息
58
- type: Object
59
- },
60
- issee:'',
61
- worktype:{
62
- type: String,
63
- default: '报修单'
64
- },
65
- // userinfo: {
66
- // type: Object
67
- // },
68
- // 维修对应的用户数据收集
69
- model: {
70
- type: Object
71
- },
72
- // 工单信息
73
- repair:{
74
- type: Object
75
- },
76
- savevalid:{
77
-
78
- },
79
- sum:{
80
-
81
- },
82
- user:{
83
- type: Object
84
- },
85
- show: {
86
- type: Boolean,
87
- default: false
88
- },
89
- // 本次维修, 用于编辑
90
- data: {
91
- type: Object
92
- },
93
- shutype:'heng'
94
- },
95
- ready () {
96
- //tag)
97
- //tag)
98
- //tag)
99
- //tag
100
- this.imgfilename=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_single_path
101
- this.imgfilenamea=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_singlea_path
102
- this.imgfilenameb=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_singleb_path
103
- //tag
104
- //tag
105
- //tag
106
- for (let i in this.service) {
107
- //tag + ':' + JSON.stringify(this.service[i]))
108
- }
109
- this.$goto('repair-user-info',{
110
- model: this.model,
111
- data: this.data,
112
- savevalid: this.savevalid,
113
- repair: this.repair,
114
- show: this.show,
115
- // userinfo: this.userinfo
116
- shutype:this.shutype,
117
- worktype:this.worktype,
118
- issee:this.issee},'info-route')
119
- },
120
- methods: {
121
- makeAPhoneCall(phoneNumber) {
122
- this.$androidUtil.makeAPhoneCall(phoneNumber)
123
- },
124
- goOtherCharge(userinfoid){
125
- //tag
126
- new HttpResetClass().load("POST",`${this.$androidUtil.getProxyUrl()}/rs/sql/onlinequeryuser`,{data:{condition : ` uf.f_orgid = '${Vue.user.orgid}' and (ui.f_user_state = '正常' or ui.f_user_state = '预备') and ui.f_userinfo_id = '${userinfoid}'`}}).then((res)=>{
127
- //tag)
128
- if(res.data.length==1){
129
- let _this = this
130
- var pardate = {
131
- _this:_this,
132
- title:'其他收费',
133
- safe:false
134
- }
135
- _this.$dispatch('gotoson',pardate)
136
- //tag
137
- _this.$parent.$goto('other_charge', {row: res.data[0]}, 'self')
138
- }else if(res.data.length>1){
139
- this.$showMessage('查询到了多条用户表信息,请让管理员核实用户信息是否正常!')
140
- }else{
141
- this.$showMessage('未查询到用户有正常状态的表具信息,请让管理员核实用户表档案信息是否正常!')
142
- }
143
- }).catch((msg)=>{
144
- this.$showMessage('获取用户信息失败,请检查手机网络!')
145
- })
146
- },
147
- selfSearch () {
148
- if(!this.rowOne) {
149
- return
150
- }
151
- // let gen = getGen(this)
152
- // co(gen)
153
- },
154
- searchHistory() {
155
- this.showSellInfo = !this.showSellInfo
156
- }
157
- },
158
- watch: {
159
- 'rowOne' () {
160
- this.selfSearch()
161
- }
162
- },
163
- components: {
164
- FailureShow,
165
- 'failure-show': FailureShow
166
- }
167
- }
168
- </script>
1
+ <template>
2
+ <div class="repair-bg" id="work-history">
3
+ <div class="bq-parent" v-if="shutype == 'heng'">
4
+ <blockquote class="blockquote">
5
+ <p>工单基本信息</p>
6
+ </blockquote>
7
+ </div>
8
+ <!-- 工单的基本信息 -->
9
+ <div class="panel panel-default auto repair-info-content">
10
+ <div class="panel-body">
11
+ <p v-if="service.f_userinfo_id">用户编号: <span style="text-decoration:underline">{{ service.f_userinfo_code }}
12
+ <button type="button" name="button" class="btn btn-primary" @click='upUserInfo(service)'>档案维护</button>
13
+ </span></p>
14
+ <p>来电电话: {{ service.f_phone }}<img src="../../../assets/telphonesend.png" style="width: 12px;"
15
+ @click.stop.prevent='makeAPhoneCall(service.f_phone)'></p>
16
+ <div v-if="service.f_userinfo_id" class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
17
+ <div class="col-xs-6 col-sm-6">
18
+ <input type="checkbox" v-model="backlistisselect" :disabled="enabled"/><label
19
+ class="text-left font">限制该用户购气</label>
20
+ </div>
21
+ </div>
22
+
23
+ <failure-show :value='service.failure'>
24
+ </failure-show>
25
+ <div style="clear:both;">
26
+ <phone-sell-info-lite v-if="showSellInfo" :user="{}"
27
+ :f_userinfo_id="service.f_userinfo_id"></phone-sell-info-lite>
28
+ </div>
29
+ <div class="from-group">
30
+ <img-self v-if="service.f_single_path" :src="imgfilename" width="200" height="200"></img-self>
31
+ <img-self v-if="service.f_singlea_path" :src="imgfilenamea" width="200" height="200"></img-self>
32
+ <img-self v-if="service.f_singleb_path" :src="imgfilenameb" width="200" height="200"></img-self>
33
+ </div>
34
+ <route name="info-route"></route>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <modal :show.sync="showmodel" v-ref:modal>
39
+ <div slot="modal-header" class="modal-header">
40
+ <h4 class="modal-title">
41
+ 限制用户购气
42
+ </h4>
43
+ </div>
44
+ <div slot="modal-body" class="modal-body">
45
+ <div class="row" style="margin-top: 6px">
46
+ <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入停用购气原因">
47
+ </textarea>
48
+ </div>
49
+ </div>
50
+ <div slot="modal-footer" class="modal-footer">
51
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlistXin()">确认</button>
52
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
53
+ </div>
54
+ </modal>
55
+ </template>
56
+ <script>
57
+ import FailureShow from '../../../components/pc/FailureShow'
58
+ import {HttpResetClass} from "vue-client";
59
+ import Vue from "vue";
60
+
61
+ export default {
62
+ title: '工单历史记录',
63
+ data() {
64
+ return {
65
+ imgfilename: '',
66
+ imgfilenamea: '',
67
+ cause: '',
68
+ imgfilenameb: '',
69
+ enabled: false,
70
+ showmodel: false,
71
+ backlistisselect: false,
72
+ f_userinfo_code: '测试文本',
73
+ showSellInfo: false
74
+ }
75
+ },
76
+ props: {
77
+ service: { // 传入一条报修单信息
78
+ type: Object
79
+ },
80
+ issee: '',
81
+ worktype: {
82
+ type: String,
83
+ default: '报修单'
84
+ },
85
+ // 维修对应的用户数据收集
86
+ model: {
87
+ type: Object
88
+ },
89
+ // 工单信息
90
+ repair: {
91
+ type: Object
92
+ },
93
+ savevalid: {},
94
+ sum: {},
95
+ user: {
96
+ type: Object
97
+ },
98
+ show: {
99
+ type: Boolean,
100
+ default: false
101
+ },
102
+ // 本次维修, 用于编辑
103
+ data: {
104
+ type: Object
105
+ },
106
+ shutype: 'heng'
107
+ },
108
+ ready() {
109
+ this.imgfilename = `${this.$androidUtil.getProxyUrl()}/rs/image/file/` + this.service.f_single_path
110
+ this.imgfilenamea = `${this.$androidUtil.getProxyUrl()}/rs/image/file/` + this.service.f_singlea_path
111
+ this.imgfilenameb = `${this.$androidUtil.getProxyUrl()}/rs/image/file/` + this.service.f_singleb_path
112
+ for (let i in this.service) {
113
+ }
114
+ this.$goto('repair-user-info', {
115
+ model: this.model,
116
+ data: this.data,
117
+ savevalid: this.savevalid,
118
+ repair: this.repair,
119
+ show: this.show,
120
+ // userinfo: this.userinfo
121
+ shutype: this.shutype,
122
+ worktype: this.worktype,
123
+ issee: this.issee
124
+ }, 'info-route')
125
+ },
126
+ methods: {
127
+ async backlistXin() {
128
+ if (!this.cause) {
129
+ this.$showMessage("请填写停用原因!")
130
+ return
131
+ }
132
+ let http = new HttpResetClass()
133
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
134
+ data: {
135
+ items: "f_userfiles_id,version",
136
+ tablename: "t_userfiles",
137
+ condition: "f_table_state in ('正常','停用','封堵','待开通') and f_userinfo_id= '" + this.service.f_userinfo_id + "'",
138
+ orderitem: "f_userfiles_id"
139
+ }
140
+ }, {resolveMsg: null, rejectMsg: null})
141
+ if (res2.data.length == 0) {
142
+ this.$showMessage('已成功停用')
143
+ this.showmodel = false
144
+ this.enabled = true
145
+ return
146
+ }
147
+ let data = {
148
+ f_userfiles_id: {
149
+ f_userfiles_id: res2.data[0].f_userfiles_id,
150
+ f_table_state: '停用',
151
+ version: res2.data[0].version
152
+ },
153
+ f_userfile_id: res2.data[0].f_userfiles_id,
154
+ f_user_id: this.service.f_userinfo_code,
155
+ f_userinfo_id: "'" + this.service.f_userinfo_id + "'",
156
+ f_user_name: this.service.f_user_name,
157
+ f_othereason: this.cause,
158
+ f_operat_type: '停用',
159
+ f_describe: `${Vue.user.name}对客户${this.service.f_user_name}进行停用操作`,
160
+ f_state: '有效',
161
+ f_operator: Vue.user.name,
162
+ f_operatorid: Vue.user.id,
163
+ f_orgid: Vue.user.orgid,
164
+ f_orgname: Vue.user.orgs,
165
+ f_depid: Vue.user.depids,
166
+ f_depname: Vue.user.deps,
167
+ f_zoneid: Vue.user.zoneid,
168
+ f_zones: Vue.user.zones
169
+ }
170
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
171
+ data, {resolveMsg: null, rejectMsg: null}).then((row) => {
172
+ this.$showMessage('已成功停用')
173
+ this.showmodel = false
174
+ this.enabled = true
175
+ })
176
+ },
177
+ cancel() {
178
+ this.backlistisselect = false
179
+ this.showmodel = false
180
+ },
181
+ upUserInfo(userinfo) {
182
+ debugger
183
+ let _this = this.$parent.$parent
184
+ this.$dispatch('gotoson', {
185
+ _this: this.$parent.$parent,
186
+ title: '档案信息变更',
187
+ safe: false
188
+ })
189
+ this.$parent.$parent.$goto('PhoneUpUserinfo', {
190
+ f_userinfo_id: userinfo.f_userinfo_id,
191
+ f_source: '维修',
192
+ f_check_type: ''
193
+ }, 'self')
194
+ },
195
+ makeAPhoneCall(phoneNumber) {
196
+ this.$androidUtil.makeAPhoneCall(phoneNumber)
197
+ },
198
+ goOtherCharge(userinfoid) {
199
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/onlinequeryuser`, {data: {condition: ` uf.f_orgid = '${Vue.user.orgid}' and (ui.f_user_state = '正常' or ui.f_user_state = '预备') and ui.f_userinfo_id = '${userinfoid}'`}}).then((res) => {
200
+ if (res.data.length == 1) {
201
+ let _this = this
202
+ var pardate = {
203
+ _this: _this,
204
+ title: '其他收费',
205
+ safe: false
206
+ }
207
+ _this.$dispatch('gotoson', pardate)
208
+ _this.$parent.$goto('other_charge', {row: res.data[0]}, 'self')
209
+ } else if (res.data.length > 1) {
210
+ this.$showMessage('查询到了多条用户表信息,请让管理员核实用户信息是否正常!')
211
+ } else {
212
+ this.$showMessage('未查询到用户有正常状态的表具信息,请让管理员核实用户表档案信息是否正常!')
213
+ }
214
+ }).catch((msg) => {
215
+ this.$showMessage('获取用户信息失败,请检查手机网络!')
216
+ })
217
+ },
218
+ selfSearch() {
219
+ if (!this.rowOne) {
220
+ return
221
+ }
222
+ },
223
+ searchHistory() {
224
+ this.showSellInfo = !this.showSellInfo
225
+ }
226
+ },
227
+ watch: {
228
+ 'rowOne'() {
229
+ this.selfSearch()
230
+ },
231
+ 'backlistisselect'(val) {
232
+ if (val == true) {
233
+ this.showmodel = true
234
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
235
+ data: {
236
+ items: "f_othereason",
237
+ tablename: "t_disable",
238
+ condition: "f_userinfo_id= '" + this.service.f_userinfo_id + "'",
239
+ orderitem: "id desc"
240
+ }
241
+ }, {resolveMsg: null, rejectMsg: null}).then(response => {
242
+ if (response.data.length > 0) {
243
+ this.cause = response.data[0].f_othereason
244
+ }
245
+ })
246
+ }
247
+ },
248
+ },
249
+ components: {
250
+ FailureShow,
251
+ 'failure-show': FailureShow
252
+ }
253
+ }
254
+ </script>
@@ -1,209 +1,306 @@
1
- <template >
2
- <div id="pc-finduser-page1" class="aaa4" style="background-color: #f8f8f8">
3
- <criteria-paged :model="model" v-ref:paged :simple="true">
4
- <criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row" style="margin:10px 10px 0 10px">
7
- <div class="form-group col-sm-4" >
8
- <label class="font_normal_body" style="width:55%">用户编号:</label>
9
- <input type="text" class="input_search" v-model="model.f_userinfo_code" placeholder='用户编号'
10
- condition="ti.f_userinfo_code like '%{}%'"
11
- :size="model.f_userinfo_code ? model.f_userinfo_code.length : 8" style="height: 95%;width: 90%"></input>
12
- </div>
13
-
14
- <div class="form-group col-sm-4" >
15
- <label class="font_normal_body" style="width:55%">表号:</label>
16
- <input type="text" class="input_search" v-model="model.f_meternumber" placeholder='表号'
17
- condition="tu.f_meternumber like '%{}%'"
18
- :size="model.f_meternumber ? model.f_meternumber.length : 8" style="height: 95%;width: 90%"></input>
19
- </div>
20
- <div class="form-group col-sm-4" >
21
- <label class="font_normal_body" style="width:55%">用户名称:</label>
22
- <input type="text" class="input_search" v-model="model.f_user_name" placeholder='姓名'
23
- condition="ti.f_user_name like '%{}%'"
24
- :size="model.f_user_name ? model.f_user_name.length * 2 : 4" style="height: 95%;width: 90%"></input>
25
- </div>
26
- <div class="form-group col-sm-4" >
27
- <label class="font_normal_body" style="width:55%">用户地址:</label>
28
- <input type="text" class="input_search" v-model="model.f_address" placeholder='地址'
29
- condition="ta.f_address like '%{}%'"
30
- :size="model.f_address ? model.f_address.length * 2 : 4" style="height: 95%;width: 90%" ></input>
31
- </div>
32
- <div class="form-group col-sm-4">
33
- <button class="button_spacing button_search" style="margin: 0 auto;" @click="search()">查询</button>
34
- </div>
35
- <!-- <div class="form-group col-sm-2" >-->
36
- <!-- <v-select :value.sync="model.f_residential_area" :options='$parent.$parent.areaselected' placeholder='小区' close-on-select width="90%"-->
37
- <!-- :size="model.f_residential_area?model.f_residential_area.length * 2 : 4" class="select select_list form-group" v-model='model.f_residential_area' condition="ta.f_residential_area like '%{}%'" :search='true'></v-select>-->
38
- <!-- </div>-->
39
-
40
- </div>
41
- </div>
42
- </criteria>
43
- <list :model='model' partial='list' style="background-color: #f8f8f8;overflow: auto;">
44
- <div partial class="panel panel-default well" style="margin: 15px 10px 0 10px;background-color: #ffffff;border-radius: 8px;border: solid 1px #dddddd;">
45
- <div class="panel-body inbg" :class="{aaa: $parent.$parent.$parent.tempnumber === row.f_userinfo_code}">
46
- <div class="row">
47
- <div class="col-sm-4">
48
- <label style="color: #666666"> 用户编号:</label> {{row.f_userinfo_code}}
49
- </div>
50
- <div class="col-sm-4">
51
- <label style="color: #666666">用户姓名:</label> {{row.f_user_name}}
52
- </div>
53
- <div class="col-sm-4">
54
- <label style="color: #666666">用户状态: </label>{{row.f_user_state}}
55
- </div>
56
-
57
- </div>
58
- <div class="row">
59
- <div class="col-sm-4">
60
- <label style="color: #666666">用户电话:</label> {{row.f_user_phone}}
61
- </div>
62
- <div class="col-sm-4">
63
- <label style="color: #666666">用户类别: </label>{{row.f_user_type}}
64
- </div>
65
- <div class="col-sm-4">
66
- <label style="color: #666666">账户结余: </label>{{row.f_balance}}
67
- </div>
68
- </div>
69
- <div class="row">
70
- <div class="col-sm-6">
71
- <label style="color: #666666">详细地址: </label>{{row.f_address}}
72
- </div>
73
- <div class="col-sm-6">
74
- <label style="color: #666666">区域信息: </label>{{row.f_slice_area}}
75
- </div>
76
- </div>
77
- <div class="row">
78
- <div class="col-sm-6" v-if="$parent.$parent.$parent.isText">
79
- <button type="button" name="button" class="btn btn-link"
80
- @click.stop="$parent.$parent.$parent.bind(row)">绑定</button>
81
- </div>
82
- </div>
83
- </div>
84
- </div>
85
- </list>
86
- </criteria-paged>
87
- </div>
88
- </template>
89
-
90
- <script>
91
- import {HttpResetClass, PagedList} from 'vue-client'
92
- export default {
93
- title: '查询用户',
94
- data () {
95
- return {
96
- model: new PagedList('rs/sql/tel_getUserInfoAdress', 10),
97
- show: false,
98
- row: Object,
99
- tempnumber: '',
100
- rows:[]
101
- }
102
- },
103
- props: {
104
- isText: {
105
- type: Boolean,
106
- default: false
107
- },
108
- user: {},
109
- callObj:{
110
- type: Object
111
- },
112
- },
113
- methods: {
114
- search (args) {
115
- args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}'`
116
- this.model.search(args.condition, args.model)
117
- },
118
- bind (row) {
119
- //tag
120
- },
121
- teleNoQuery (teleNo) {
122
- this.$refs.paged.$refs.criteria.model.f_user_phone = teleNo
123
- this.$refs.paged.$refs.criteria.search()
124
- }
125
- },
126
- ready(){
127
- this.$refs.paged.$refs.criteria.search()
128
- //this.model.search(`ti.f_filialeid = '${this.$login.f.orgid}'`)
129
-
130
- },
131
- watch: {
132
- 'callObj.callNum' () {
133
- // 查找用户的 业务逻辑
134
- let http = new HttpResetClass()
135
- http.load('POST', 'rs/sql/tel_getUserInfoAdress', {data: {
136
- condition: `(f_user_phone = '${this.callObj.callNum}' or f_rent_phone = '${this.callObj.callNum}') and ti.f_user_state = '正常' `,
137
- }},{resolveMsg: null, rejectMsg: null}).then((req) => {
138
- this.model.rows = req.data
139
- this.model.state = '正确'
140
- })
141
- },
142
- 'user' (val) {
143
- // this.$resetpost('rs/sql/singleTable', {data: { tablename: 't_userinfo', condition: "f_user_name='" + this.user.name + "' and f_userinfo_id=" + this.user.userId }}).then((req) => {
144
- // this.row = req.data
145
- // })
146
- if (val.name === '' && val.userId === '') { // 用户未绑定
147
- // 清空查询条件
148
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
149
- this.$refs.paged.$refs.criteria.model[key] = ''
150
- })
151
- this.model.rows = []
152
- this.model.state = '错误'
153
- this.model.error = '未找到用户或用户未绑定'
154
- this.$emit('find-error', '未找到用户或用户未绑定')
155
- return
156
- }
157
- this.$refs.paged.$refs.criteria.model.f_user_name = this.user.name
158
- this.$refs.paged.$refs.criteria.model.f_userinfo_id = this.user.userId
159
- this.$refs.paged.$refs.criteria.search()
160
- // this.model.search(`f_user_name = '${this.user.name}' and f_userinfo_id = ${this.user.userId}`, this.model)
161
- },
162
- 'model.state' (val) {
163
- if (val === '正确' && this.model.rows.length === 1) {
164
- this.$emit('find-one', this.model.rows[0])
165
- }
166
- }
167
- },
168
- events: {
169
- //点击用户信息后变色
170
- 'select-changed' :function (val) {
171
- this.tempnumber = val.val.f_userinfo_code
172
- }
173
- }
174
- }
175
- </script>
176
- <style scoped>
177
- label {
178
- width: 80px;
179
- }
180
- #pc-finduser-page .form-input-group {
181
- margin: 5px 0px;
182
- height: auto;
183
- }
184
- .themeOne .span{
185
- overflow-y: scroll;
186
- }
187
- .pager{
188
- margin: 5px 0px !important;
189
- background-color: #f8f8f8;
190
- }
191
- .inbg{
192
- font-family: PingFang-SC-Medium;
193
- font-size: 14px;
194
- font-weight: normal;
195
- font-stretch: normal;
196
- line-height: 18px;
197
- letter-spacing: 0px;
198
- color: #333333;
199
- }
200
- .aaa{
201
- background-color: #d8eafb;
202
- }
203
- </style>
204
- <style>
205
- #pc-finduser-page1 ul{
206
- margin: 5px 0px !important;
207
- background-color: #f8f8f8 !important;
208
- }
209
- </style>
1
+ <template >
2
+ <div id="pc-finduser-page1" class="aaa4" style="background-color: #f8f8f8">
3
+ <criteria-paged :model="model" v-ref:paged :simple="true">
4
+ <criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row" style="margin:10px 10px 0 10px">
7
+ <div class="form-group col-sm-4" >
8
+ <label class="font_normal_body" style="width:55%">电话号码:</label>
9
+ <input type="text" class="input_search" v-model="model.f_user_phone" placeholder='电话号码'
10
+ condition="ti.f_user_phone like '%{}%'"
11
+ :size="model.f_user_phone ? model.f_user_phone.length : 8" style="height: 95%;width: 90%"></input>
12
+ </div>
13
+ <div class="form-group col-sm-4" >
14
+ <label class="font_normal_body" style="width:55%">用户编号:</label>
15
+ <input type="text" class="input_search" v-model="model.f_userinfo_code" placeholder='用户编号'
16
+ condition="ti.f_userinfo_code like '%{}%'"
17
+ :size="model.f_userinfo_code ? model.f_userinfo_code.length : 8" style="height: 95%;width: 90%"></input>
18
+ </div>
19
+ <div class="form-group col-sm-4">
20
+ <button type="button" name="button" class="button_spacing button_search" style="float: right" @click="search()">查询</button>
21
+ <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;" class="button_spacing button_search" @click="$parent.$parent.clear()">清空</button>
22
+ </div>
23
+ <div class="form-group col-sm-4">
24
+ <label class="font_normal_body" style="width:55%">表号:</label>
25
+ <input type="text" class="input_search" v-model="model.f_meternumber" placeholder='表号'
26
+ condition="tu.f_meternumber like '%{}%'"
27
+ :size="model.f_meternumber ? model.f_meternumber.length : 8" style="height: 95%;width: 90%"></input>
28
+ </div>
29
+ <div class="form-group col-sm-4" >
30
+ <label class="font_normal_body" style="width:55%">用户名称:</label>
31
+ <input type="text" class="input_search" v-model="model.f_user_name" placeholder='姓名'
32
+ condition="ti.f_user_name like '%{}%'"
33
+ :size="model.f_user_name ? model.f_user_name.length * 2 : 4" style="height: 95%;width: 90%"></input>
34
+ </div>
35
+ <div class="form-group col-sm-4" >
36
+ <label class="font_normal_body" style="width:55%">用户地址:</label>
37
+ <input type="text" class="input_search" v-model="model.f_address" placeholder='地址'
38
+ condition="ta.f_address like '%{}%'"
39
+ :size="model.f_address ? model.f_address.length * 2 : 4" style="height: 95%;width: 90%" ></input>
40
+ </div>
41
+ <div class="form-group col-sm-4" v-if="$parent.$parent.enter_number_show">
42
+ <label class="font_normal_body" style="width:55%">入户证号:</label>
43
+ <input type="text" class="input_search" v-model="model.f_enter_number" placeholder='入户证号'
44
+ condition="ta.f_enter_number like '%{}%'"
45
+ style="height: 95%;width: 90%"></input>
46
+ </div>
47
+ <div class="form-group col-sm-4" v-if="$parent.$parent.residential_area_show">
48
+ <label class="font_normal_body" style="width:55%">小区:</label>
49
+ <input type="text" class="input_search" v-model="model.f_residential_area" placeholder='小区'
50
+ condition="ta.f_residential_area like '%{}%'"
51
+ style="height: 95%;width: 90%"></input>
52
+ </div>
53
+ <div class="form-group col-sm-4" v-if="$parent.$parent.building_show">
54
+ <label class="font_normal_body" style="width:55%">楼栋:</label>
55
+ <input type="text" class="input_search" v-model="model.f_building" placeholder='楼栋'
56
+ condition="ta.f_building = '{}'"
57
+ style="height: 95%;width: 90%"></input>
58
+ </div>
59
+ <div class="form-group col-sm-4" v-if="$parent.$parent.unit_show">
60
+ <label class="font_normal_body" style="width:55%">单元:</label>
61
+ <input type="text" class="input_search" v-model="model.f_unit" placeholder='单元'
62
+ condition="ta.f_unit = '{}'"
63
+ style="height: 95%;width: 90%"></input>
64
+ </div>
65
+ <div class="form-group col-sm-4" v-if="$parent.$parent.floor_show">
66
+ <label class="font_normal_body" style="width:55%">楼层:</label>
67
+ <input type="text" class="input_search" v-model="model.f_floor" placeholder='楼层'
68
+ condition="ta.f_floor = '{}'"
69
+ style="height: 95%;width: 90%"></input>
70
+ </div>
71
+ <div class="form-group col-sm-4" v-if="$parent.$parent.room_show">
72
+ <label class="font_normal_body" style="width:55%">房间号:</label>
73
+ <input type="text" class="input_search" v-model="model.f_room" placeholder='房间号'
74
+ condition="ta.f_room = '{}'"
75
+ style="height: 95%;width: 90%"></input>
76
+ </div>
77
+ <div class="form-group col-sm-4" >
78
+ <label class="font_normal_body" style="width:55%">是否预备:</label>
79
+ <v-select :value.sync="model.is_prepare" :options='$parent.$parent.is_prepares' placeholder='是否预备' close-on-select width="60%"
80
+ class="select select_list form-group" v-model='model.is_prepare' :search='true'></v-select>
81
+ </div>
82
+
83
+ </div>
84
+ </div>
85
+ </criteria>
86
+ <list :model='model' partial='list' style="background-color: #f8f8f8;overflow: auto;">
87
+ <div partial class="panel panel-default well" style="margin: 15px 10px 0 10px;background-color: #ffffff;border-radius: 8px;border: solid 1px #dddddd;">
88
+ <div class="panel-body inbg" :class="{aaa: $parent.$parent.$parent.tempnumber === row.f_userinfo_code}">
89
+ <div class="row">
90
+ <div class="col-sm-4">
91
+ <label style="color: #666666"> 用户编号:</label> {{row.f_userinfo_code}}
92
+ </div>
93
+ <div class="col-sm-4">
94
+ <label style="color: #666666">用户姓名:</label> {{row.f_user_name}}
95
+ </div>
96
+ <div class="col-sm-4">
97
+ <label style="color: #666666">用户状态: </label>{{row.f_user_state}}
98
+ </div>
99
+
100
+ </div>
101
+ <div class="row">
102
+ <div class="col-sm-4">
103
+ <label style="color: #666666">用户电话:</label> {{row.f_user_phone}}
104
+ </div>
105
+ <div class="col-sm-4">
106
+ <label style="color: #666666">用户类别: </label>{{row.f_user_type}}
107
+ </div>
108
+ <div class="col-sm-4">
109
+ <label style="color: #666666">账户结余: </label>{{row.f_balance}}
110
+ </div>
111
+ </div>
112
+ <div class="row">
113
+ <div class="col-sm-6" v-if="$parent.$parent.$parent.enter_number_show">
114
+ <label style="color: #666666">入户证号: </label>{{row.f_enter_number}}
115
+ </div>
116
+ <div class="col-sm-6">
117
+ <label style="color: #666666">详细地址: </label>{{row.f_address}}
118
+ </div>
119
+ <div class="col-sm-6">
120
+ <label style="color: #666666">区域信息: </label>{{row.f_slice_area}}
121
+ </div>
122
+ </div>
123
+ <div class="row">
124
+ <div class="col-sm-6" v-if="$parent.$parent.$parent.isText">
125
+ <button type="button" name="button" class="btn btn-link"
126
+ @click.stop="$parent.$parent.$parent.bind(row)">绑定</button>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </list>
132
+ </criteria-paged>
133
+ </div>
134
+ </template>
135
+
136
+ <script>
137
+ import {HttpResetClass, PagedList} from 'vue-client'
138
+ export default {
139
+ title: '查询用户',
140
+ data () {
141
+ return {
142
+ model: new PagedList('rs/sql/tel_getUserInfoAdress', 10),
143
+ show: false,
144
+ is_prepares:[{label: '全部', value: ''},{label: '是', value: '是'},{label: '否', value: '否'}],
145
+ row: Object,
146
+ tempnumber: '',
147
+ rows:[],
148
+ enter_number_show:true,
149
+ residential_area_show:true,
150
+ building_show:true,
151
+ unit_show:true,
152
+ room_show:true,
153
+ floor_show:true
154
+ }
155
+ },
156
+ props: {
157
+ isText: {
158
+ type: Boolean,
159
+ default: false
160
+ },
161
+ user: {},
162
+ callObj:{
163
+ type: Object
164
+ },
165
+ },
166
+ methods: {
167
+ clear(){
168
+ //清空查询条件
169
+ this.$refs.paged.$refs.criteria.model={}
170
+ },
171
+ // 获取该组件配置文件
172
+ getTelFindUserConfig(){
173
+ let http = new HttpResetClass()
174
+ http.load('GET', `/phone/rs/vue`, {}, {resolveMsg: null, rejectMsg: null}).then(res=>{
175
+ if(res.data.telephone){
176
+ if (res.data.telephone.TelFindUser){
177
+ let telconfig = res.data.telephone.TelFindUser.data
178
+ if(telconfig.criteria){
179
+ telconfig.criteria.forEach((item)=>{
180
+ if(item.name =='入户证号'){
181
+ this.enter_number_show = item.ifshow
182
+ }
183
+ if(item.name =='小区'){
184
+ this.residential_area_show = item.ifshow
185
+ }
186
+ if(item.name =='楼栋'){
187
+ this.building_show = item.ifshow
188
+ }
189
+ if(item.name =='单元'){
190
+ this.unit_show = item.ifshow
191
+ }
192
+ if(item.name =='房间号'){
193
+ this.room_show = item.ifshow
194
+ }
195
+ if(item.name =='楼层'){
196
+ this.floor_show = item.ifshow
197
+ }
198
+
199
+ })
200
+ }
201
+ }
202
+ }
203
+ })
204
+ },
205
+ search (args) {
206
+ if(args.model.is_prepare && args.model.is_prepare.length>0 && args.model.is_prepare[0]=='是'){
207
+ args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}' and ti.f_user_state = '预备' and tu.f_table_state = '待开通'`
208
+ }else if(args.model.is_prepare && args.model.is_prepare.length>0 && args.model.is_prepare[0]=='否'){
209
+ args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}' and ti.f_user_state in('正常','停用') and tu.f_table_state = '正常'`
210
+ }else {
211
+ args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}' and ti.f_user_state in('正常','停用','预备')`
212
+ }
213
+ this.model.search(args.condition, args.model)
214
+ },
215
+ bind (row) {
216
+ //tag
217
+ },
218
+ teleNoQuery (teleNo) {
219
+ this.$refs.paged.$refs.criteria.model.f_user_phone = teleNo
220
+ this.$refs.paged.$refs.criteria.search()
221
+ }
222
+ },
223
+ ready(){
224
+ this.getTelFindUserConfig()
225
+ this.$refs.paged.$refs.criteria.search()
226
+
227
+ },
228
+ watch: {
229
+ 'callObj.callNum' () {
230
+ // 查找用户的 业务逻辑
231
+ let http = new HttpResetClass()
232
+ http.load('POST', 'rs/sql/tel_getUserInfoAdress', {data: {
233
+ condition: `(f_user_phone = '${this.callObj.callNum}' or f_zuhu_phone = '${this.callObj.callNum}' or f_rent_phone = '${this.callObj.callNum}') and ti.f_user_state = '正常' `,
234
+ }},{resolveMsg: null, rejectMsg: null}).then((req) => {
235
+ this.model.rows = req.data
236
+ this.model.state = '正确'
237
+ })
238
+ },
239
+ 'user' (val) {
240
+ // this.$resetpost('rs/sql/singleTable', {data: { tablename: 't_userinfo', condition: "f_user_name='" + this.user.name + "' and f_userinfo_id=" + this.user.userId }}).then((req) => {
241
+ // this.row = req.data
242
+ // })
243
+ if (val.name === '' && val.userId === '') { // 用户未绑定
244
+ // 清空查询条件
245
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
246
+ this.$refs.paged.$refs.criteria.model[key] = ''
247
+ })
248
+ this.model.rows = []
249
+ this.model.state = '错误'
250
+ this.model.error = '未找到用户或用户未绑定'
251
+ this.$emit('find-error', '未找到用户或用户未绑定')
252
+ return
253
+ }
254
+ this.$refs.paged.$refs.criteria.model.f_user_name = this.user.name
255
+ this.$refs.paged.$refs.criteria.model.f_userinfo_id = this.user.userId
256
+ this.$refs.paged.$refs.criteria.search()
257
+ // this.model.search(`f_user_name = '${this.user.name}' and f_userinfo_id = ${this.user.userId}`, this.model)
258
+ },
259
+ 'model.state' (val) {
260
+ if (val === '正确' && this.model.rows.length === 1) {
261
+ this.$emit('find-one', this.model.rows[0])
262
+ }
263
+ }
264
+ },
265
+ events: {
266
+ //点击用户信息后变色
267
+ 'select-changed' :function (val) {
268
+ this.tempnumber = val.val.f_userinfo_code
269
+ }
270
+ }
271
+ }
272
+ </script>
273
+ <style scoped>
274
+ label {
275
+ width: 80px;
276
+ }
277
+ #pc-finduser-page .form-input-group {
278
+ margin: 5px 0px;
279
+ height: auto;
280
+ }
281
+ .themeOne .span{
282
+ overflow-y: scroll;
283
+ }
284
+ .pager{
285
+ margin: 5px 0px !important;
286
+ background-color: #f8f8f8;
287
+ }
288
+ .inbg{
289
+ font-family: PingFang-SC-Medium;
290
+ font-size: 14px;
291
+ font-weight: normal;
292
+ font-stretch: normal;
293
+ line-height: 18px;
294
+ letter-spacing: 0px;
295
+ color: #333333;
296
+ }
297
+ .aaa{
298
+ background-color: #d8eafb;
299
+ }
300
+ </style>
301
+ <style>
302
+ #pc-finduser-page1 ul{
303
+ margin: 5px 0px !important;
304
+ background-color: #f8f8f8 !important;
305
+ }
306
+ </style>
@@ -4,6 +4,7 @@ import Vue from "vue";
4
4
  //pc和手机分别注册到两个文件中
5
5
  let specialComp = {
6
6
  'work-listall':(resolve) => { require(['./pc/WorkListAll'], resolve) },
7
+ 'tel-find-user':(resolve) => { require(['./pc/TelFindUser'], resolve) },
7
8
  'gas-work':(resolve) => { require(['./pc/GasWork'], resolve) },
8
9
  'distribute-work':(resolve) => { require(['./pc/DistributeWork'], resolve) },
9
10
 
@@ -8,6 +8,7 @@ let specialComp = {
8
8
  'repair-first': (resolve) => { require(['./android/RepairFirstV'], resolve) },
9
9
  'repair-orderV': (resolve) => { require(['./android/RepairOrderV'], resolve) },
10
10
  'zhihuan-first': (resolve) => { require(['./android/ZHihuanFirst'], resolve) },
11
+ 'repair-info': (resolve) => { require(['./android/RepairInfo'], resolve) },
11
12
  }
12
13
  exports.specialComp = specialComp
13
14