telephone-clients 3.0.103 → 3.0.104-1

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 (126) hide show
  1. package/package.json +3 -3
  2. package/src/App.vue +7 -9
  3. package/src/assets//345/210/240/351/231/244.png +0 -0
  4. package/src/components/Util/RightTreeSafe.vue +2 -2
  5. package/src/components/Util/RightTreeSafeDep.vue +350 -0
  6. package/src/components/android/AddMyTask.vue +7 -0
  7. package/src/components/guoxin/VisitInfo.vue +0 -11
  8. package/src/components/pc/NewRepairPaper.vue +3 -3
  9. package/src/components/pc/RepairsWork.vue +22 -2
  10. package/src/components/pc/RoleSelectorDep.vue +158 -0
  11. package/src/components/pc/TelFindUser.vue +1 -1
  12. package/src/components/pc/TelListener.vue +47 -16
  13. package/src/components/pc/VisitInfo.vue +0 -10
  14. package/src/components/pc/WorkCenter.vue +1 -1
  15. package/src/components/pc/WorkCenterList.vue +1 -1
  16. package/src/components/pc/WorkHistory.vue +20 -2
  17. package/src/components/pc/WorkListAll.vue +1 -1
  18. package/src/components/pc/WorkListAllNew.vue +10 -3
  19. package/src/components/pc/WorkListNew.vue +712 -706
  20. package/src/components/pc/olddata/OldWorkList.vue +193 -0
  21. package/src/components/telreport/RepairsDetailsReport.vue +98 -0
  22. package/src/components/telreport/TableFaultReport.vue +96 -0
  23. package/src/components/telreport/Traffic.vue +3 -3
  24. package/src/components/telreport/TrafficClassificationReport.vue +134 -0
  25. package/src/components/temp/ChangemeterInfo.vue +75 -87
  26. package/src/components/temp/DeviceInfo.vue +80 -82
  27. package/src/components/temp/HandplanInfo.vue +2 -2
  28. package/src/components/temp/InfoTable.vue +5 -2
  29. package/src/components/temp/MetereadInfo.vue +1 -4
  30. package/src/components/temp/OldRepairList.vue +100 -0
  31. package/src/components/temp/RepairList.vue +2 -2
  32. package/src/components/weinan/Console.vue +1 -1
  33. package/src/components/weinan/RecordList.vue +2 -2
  34. package/src/components/weinan/SiteSend.vue +2 -2
  35. package/src/components/weinan/SiteSendWeixiu.vue +7 -16
  36. package/src/components/weinan/StandWorkWeixiu.vue +1 -1
  37. package/src/components/weinan/WorkList.vue +73 -0
  38. package/src/components/weinan/WorkListAll.vue +90 -14
  39. package/src/components/weinan/WorkListWeixiu.vue +1 -1
  40. package/src/components/workorder/CompletedRepair.vue +269 -183
  41. package/src/components/workorder/FaultAll.vue +826 -826
  42. package/src/components/workorder/PhoneStandWork.vue +354 -354
  43. package/src/components/workorder/PhoneUpDetail.vue +3 -0
  44. package/src/components/workorder/RepairDetails.vue +12 -2
  45. package/src/components/workorder/RepairFirstV.vue +1 -1
  46. package/src/components/workorder/RepairOrderV.vue +1446 -1446
  47. package/src/filiale/furuike/pc/ComplainWork.vue +348 -348
  48. package/src/filiale/furuike/pc/Seekwork.vue +352 -352
  49. package/src/filiale/furuike/pc/WorkHistory.vue +576 -576
  50. package/src/filiale/gongyi/android/RepairOrderV.vue +1415 -1415
  51. package/src/filiale/kelai/android/AppTakePic.vue +143 -0
  52. package/src/filiale/kelai/android/PhoneVentilationLeave.vue +176 -0
  53. package/src/filiale/kelai/pc/WorkCenterList.vue +20 -3
  54. package/src/filiale/kelai/pc/WorkListAllNew.vue +47 -9
  55. package/src/filiale/kelai/pc/serviceDeleteOrder.vue +55 -0
  56. package/src/filiale/kelai/telephone.js +9 -8
  57. package/src/filiale/kelai/telephoneAndroid.js +3 -1
  58. package/src/filiale/liaoyuan/android/RepairOrderV.vue +831 -831
  59. package/src/filiale/qianneng/android/FaultAll.vue +883 -883
  60. package/src/filiale/qianneng/android/MaterIialOne.vue +123 -123
  61. package/src/filiale/qianneng/android/RepairOrderV.vue +874 -874
  62. package/src/filiale/qianneng/android/TemporarySingle.vue +537 -512
  63. package/src/filiale/qianneng/android/chargesList.vue +161 -161
  64. package/src/filiale/qianneng/pc/MaterialDetailed.vue +260 -248
  65. package/src/filiale/qianneng/pc/MaterialStatistics.vue +144 -0
  66. package/src/filiale/qianneng/pc/NewRepairPaper.vue +4 -4
  67. package/src/filiale/qianneng/pc/RepairsWork.vue +12 -2
  68. package/src/filiale/qianneng/pc/WorkHistory.vue +2 -2
  69. package/src/filiale/qianneng/pc/WorkListAllNew.vue +53 -5
  70. package/src/filiale/qianneng/pc/changetable.vue +273 -0
  71. package/src/filiale/qianneng/telephone.js +22 -20
  72. package/src/filiale/rizhao/pc/DispatchMan.vue +3 -3
  73. package/src/filiale/rizhao/pc/DispatchWork.vue +3 -3
  74. package/src/filiale/rizhao/pc/Traffic.vue +3 -3
  75. package/src/filiale/rizhao/pc/WorkListAllNew.vue +8 -3
  76. package/src/filiale/rongcheng/CliWorkListAll.vue +442 -407
  77. package/src/filiale/rongcheng/FaultAll.vue +3 -3
  78. package/src/filiale/rongcheng/RepairOrderV.vue +1445 -0
  79. package/src/filiale/rongcheng/telephoneAndroid.js +3 -1
  80. package/src/filiale/shanxian/android/RepairFirstV.vue +5 -1
  81. package/src/filiale/shanxian/pc/RepairsWork.vue +826 -0
  82. package/src/filiale/shanxian/pc/WorkList.vue +1 -1
  83. package/src/filiale/shanxian/telephone.js +13 -12
  84. package/src/filiale/shexian/android/AddMyTask.vue +7 -0
  85. package/src/filiale/shexian/android/CompletedRepair.vue +280 -0
  86. package/src/filiale/shexian/android/FaultAll.vue +847 -0
  87. package/src/filiale/shexian/android/Outlay.vue +182 -165
  88. package/src/filiale/shexian/android/RepairFirstV.vue +16 -2
  89. package/src/filiale/shexian/android/RepairInfo.vue +1 -0
  90. package/src/filiale/shexian/pc/QueryVisitHistory.vue +237 -0
  91. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +271 -0
  92. package/src/filiale/shexian/pc/TelByOrderManCount.vue +10 -2
  93. package/src/filiale/shexian/pc/WorkList.vue +782 -740
  94. package/src/filiale/shexian/pc/WorkListAllNew.vue +75 -67
  95. package/src/filiale/shexian/telephone.js +21 -18
  96. package/src/filiale/shexian/telephoneAndroid.js +32 -26
  97. package/src/filiale/tongchuan/android/TicketDetails.vue +3 -0
  98. package/src/filiale/tongchuan/pc/UserWork.vue +805 -805
  99. package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +2 -2
  100. package/src/filiale/wenxi/android/FailureShow.vue +61 -0
  101. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +1053 -0
  102. package/src/filiale/wenxi/android/RepairInfo.vue +158 -74
  103. package/src/filiale/wenxi/android/RepairOrderV.vue +805 -1419
  104. package/src/filiale/wenxi/android/RepairUserInfo.vue +532 -0
  105. package/src/filiale/wenxi/android/ZHihuanFirst.vue +502 -0
  106. package/src/filiale/wenxi/pc/DistributeWork.vue +107 -121
  107. package/src/filiale/wenxi/pc/FailureEdit.vue +1 -1
  108. package/src/filiale/wenxi/pc/GasWork.vue +747 -0
  109. package/src/filiale/wenxi/pc/MetereadInfo.vue +82 -0
  110. package/src/filiale/wenxi/pc/RepairsWork.vue +15 -0
  111. package/src/filiale/wenxi/pc/TelFindUser.vue +213 -116
  112. package/src/filiale/wenxi/telephone.js +4 -6
  113. package/src/filiale/wenxi/telephoneAndroid.js +4 -1
  114. package/src/filiale/wuan/android/RepairOrderV.vue +1384 -1384
  115. package/src/filiale/yuncheng/pc/TelFindUser.vue +302 -0
  116. package/src/filiale/yuncheng/telephone.js +12 -0
  117. package/src/filiale/zhongsheng/android/FaultAll.vue +741 -0
  118. package/src/filiale/zhongsheng/android/RepairOrderV.vue +1430 -1430
  119. package/src/filiale/zhongsheng/android/RepairUserInfo.vue +241 -214
  120. package/src/filiale/zhongsheng/pc/RepairsWork.vue +775 -775
  121. package/src/filiale/zhongsheng/telephone.js +23 -23
  122. package/src/filiale/zhongsheng/telephoneAndroid.js +2 -1
  123. package/src/main.js +1 -1
  124. package/src/telephone.js +16 -0
  125. package/src/weinan.js +6 -0
  126. package/src/filiale/wenxi/pc/WorkListAll.vue +0 -647
@@ -0,0 +1,143 @@
1
+ <template>
2
+ <div class="panel">
3
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
+ <div class="row form-group" style="height: 240px;overflow: scroll;">
5
+ <div class="col-xs-4 col-sm-3 col-md-2 col-xs-offset-1 col-sm-offset-1 col-md-offset-1" v-for="(index,file) in fileList">
6
+ <img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
7
+ <img src="../../../assets/删除.png" style="width: 15px;margin-top: -80px" @click.prevent="delfile(file, index)">
8
+ </div>
9
+ </div>
10
+ <div class="row text-right form-group" v-if="istakepic">
11
+ <v-select
12
+ class="fileType"
13
+ placeholder="请选择使用类型"
14
+ v-if="istype"
15
+ :search="false"
16
+ close-on-select
17
+ value-single
18
+ :options="typeList"
19
+ v-model="type"
20
+ :value.sync="type"
21
+ ></v-select>
22
+ <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="takePic(type)">拍照</button>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ import {HttpResetClass} from 'vue-client'
30
+ import {guid, toStandardTimeString} from '../../../components/Util'
31
+ import Vue from 'vue'
32
+ export default {
33
+ title: '附件',
34
+ props: ['blobid', 'type', 'defname', 'istype', 'typelabel', 'isdelete', 'istakepic'],
35
+ data () {
36
+ return {
37
+ fileList: []
38
+ }
39
+ },
40
+ ready () {
41
+ this.getFiles()
42
+ },
43
+ methods: {
44
+ async getFiles () {
45
+ console.log('----------------开始查询图片----------------')
46
+ this.fileList = []
47
+
48
+ let http = new HttpResetClass()
49
+
50
+ let data = {
51
+ tablename: 't_files',
52
+ condition: `f_blobid = '${this.blobid}' and fremarks = '手机拍照' order by f_uploaddate desc `
53
+ }
54
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
55
+ // let res = await http.load('POST', `rs/sql/applySingleTable`, {data: data}, {
56
+ warnMsg: null,
57
+ resolveMsg: null
58
+ })
59
+
60
+ for (var i = 0; i < res.data.length; i++) {
61
+ console.log('-----------地址----------------',`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
62
+ res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
63
+ }
64
+
65
+ this.fileList = res.data
66
+ },
67
+ delfile (file, index) {
68
+ this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
69
+ this.$dispatch("delResid", file.id)
70
+ this.getFiles()
71
+ })
72
+ },
73
+ takePic (title) {
74
+ // 拍照成功回调
75
+ HostApp.__callback__ = this.cameraCallBack
76
+ HostApp.__this__ = this
77
+ let fileName = guid() + '.jpg'
78
+ // 打开相机
79
+ HostApp._open_a_page({
80
+ type: 'boomerang',
81
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
82
+ param: {
83
+ file: fileName,
84
+ requestCode: 200,
85
+ callback: 'javascript:HostApp.__callback__("' + fileName + '", "%s");',
86
+ watermark: title + '\t时间:' + toStandardTimeString() + '\t' + Vue.user.name // 水印
87
+ }
88
+ })
89
+ },
90
+ cameraCallBack (fileName, fileUrl) {
91
+ console.log('-----------cameraCallBack-----------------')
92
+
93
+ let data = {
94
+ blobid: HostApp.__this__.blobid,
95
+ type: HostApp.__this__.type,
96
+ defname: HostApp.__this__.defname,
97
+ username: Vue.user.name,
98
+ fremarks: '手机拍照',
99
+ fileName: fileName,
100
+ fileUrl: fileUrl,
101
+ entityName:null
102
+ }
103
+ debugger
104
+ console.log('-----------bzLogic-----------------')
105
+ let aaaa =HostApp.bzLogic({
106
+ 'logic': 'appFileUpload',
107
+ 'data': data
108
+ })
109
+ console.log("555"+aaaa)
110
+ console.log('----------------开始回调查询-------------------')
111
+ HostApp.__this__.getFiles()
112
+ console.log('----------------查询回调结束-------------------')
113
+
114
+ HostApp.__callback__ = null
115
+ HostApp.__this__ = null
116
+ }
117
+ },
118
+ computed: {
119
+ typeList () {
120
+ if (this.typelabel) {
121
+ return this.$appdata.getParam(this.typelabel)
122
+ }
123
+ return this.$appdata.getParam('使用类型')
124
+ }
125
+ },
126
+ events: {
127
+ }
128
+ }
129
+ </script>
130
+
131
+ <style lang="less">
132
+ .fileType {
133
+ float: left;
134
+ .select-style {
135
+ background: #f8f8f8;
136
+ border: 0px;
137
+ }
138
+ input {
139
+ border-left: none;
140
+ width: 100%;
141
+ }
142
+ }
143
+ </style>
@@ -0,0 +1,176 @@
1
+ <template>
2
+ <div style="height: auto;width: 100%">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
+ <div partial>
6
+ <form>
7
+ <div class="row app-row">
8
+ <div class="col-xs-4">
9
+ <label class="font text-left">用户编号:</label>
10
+ </div>
11
+ <div class="col-xs-8" >
12
+ <input class="search_input input-font" v-model="model.f_userinfo_code" condition="ti.f_userinfo_code like '%{}%'" />
13
+ </div>
14
+ </div>
15
+ <div class="row app-row">
16
+ <div class="col-xs-4">
17
+ <label class="font text-left">用户姓名:</label>
18
+ </div>
19
+ <div class="col-xs-8" >
20
+ <input class="search_input input-font" v-model="model.f_user_name" condition="ti.f_user_name like '%{}%'" />
21
+ </div>
22
+ </div>
23
+ <div class="row app-row">
24
+ <div class="col-xs-4">
25
+ <label class="font text-left">地址:</label>
26
+ </div>
27
+ <div class="col-xs-8" >
28
+ <input class="search_input input-font" v-model="model.f_address" condition="ta.f_address like '%{}%'" />
29
+ </div>
30
+ </div>
31
+ <div class="row text-center" style="margin-top: 20px;text-align: center">
32
+ <button type="button" class="btn btn-lg btn-font" style="width: 25%;margin-right: 3%; background-color: #499edf;color:#FFFFFF;border-radius: 10px ;" @click="search()">查询</button>
33
+ </div>
34
+ </form>
35
+ </div>
36
+ </criteria>
37
+ <list :model="model" partial='list'>
38
+ <div partial>
39
+ <div class="auto app-text" style="margin-top: 5px;">
40
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
41
+ <div class="panel-body panel-self">
42
+ <div class="col-xs-12">
43
+ <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户编号:</b></p>
44
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_userinfo_code }}</p>
45
+ </div>
46
+ <div class="col-xs-12">
47
+ <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户名称:</b></p>
48
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_name }}</p>
49
+ </div>
50
+ <div class="col-xs-12">
51
+ <p class="panel-title col-xs-5 text-left font"><b>用户电话:</b></p>
52
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_phone }}
53
+ </p>
54
+ </div>
55
+ <div class="col-xs-12">
56
+ <p class="panel-title col-xs-5 text-left font"><b>用户地址:</b></p>
57
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_address }}</p>
58
+ </div>
59
+ <div class="col-xs-12" style="display: flex; justify-content: flex-end;">
60
+ <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">拍照</button>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </list>
67
+ </criteria-paged>
68
+ <modal v-if="showModal" :show.sync="showModal" v-ref:modal :backdrop="false" >
69
+ <div slot="modal-body" class="modal-body">
70
+ <panel header="拍照" :is-open="true" type="primary">
71
+ <tel-take-pic
72
+ :blobid="selectdata.f_blobid"
73
+ :defname="selectdata.defname"
74
+ :isdelete="true"
75
+ :istakepic="true"
76
+ :type="selectdata.type"
77
+ :istype="true">
78
+ </tel-take-pic>
79
+ </panel>
80
+ </div>
81
+ <div slot="modal-footer" class="modal-footer">
82
+ <button type="button" class="btn btn-default" @click="infoaddsure()">确定</button>
83
+ </div>
84
+ </modal>
85
+ </div>
86
+ </template>
87
+ <script>
88
+ import Vue from 'vue'
89
+ import { PagedList,HttpResetClass } from 'vue-client'
90
+ export default {
91
+ title: '通气打压留底',
92
+ data() {
93
+ return {
94
+ selectdata:{
95
+ f_blobid:'',
96
+ type:'档案信息',
97
+ defname:'通气打压留底拍照'
98
+ },
99
+ showModal: false,
100
+ model_f: false,
101
+ ispos: true,
102
+ cardinfo: {},
103
+ userinfo: {},
104
+ operation: '',
105
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/telqueryuserinfo`,5,{}),
106
+ f_operator: Vue.user.name,
107
+ f_orgid : Vue.user.orgid
108
+ }
109
+ },
110
+ ready(){
111
+ this.$refs.paged.$refs.cri.search()
112
+ },
113
+
114
+ methods: {
115
+ infoaddsure(){
116
+ this.showModal=false
117
+ this.$refs.paged.$refs.cri.search()
118
+ },
119
+ click(row){
120
+ this.showModal=true
121
+ this.selectdata.f_blobid=row.f_userinfo_id
122
+ }
123
+ }
124
+ }
125
+ </script>
126
+ <style scoped>
127
+ .bg {
128
+ background-color: blue;
129
+ height: 1px;
130
+ border: 0;
131
+ }
132
+ .app-row {
133
+ background-color: white;
134
+ padding: 10px 10px 0 10px;
135
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
136
+ }
137
+ .search_input {
138
+ border: 0;
139
+ outline: none;
140
+ }
141
+ .font{
142
+ font: 15px PingFang-SC-Medium;
143
+ color: #666666;
144
+ }
145
+ .input-font{
146
+ font: 15px PingFang-SC-Medium;
147
+ color: #333333;
148
+ }
149
+ .btn-font{
150
+ font:600 16px PingFang-SC-Bold;
151
+ color: #499EDF;
152
+ }
153
+ .btn-color{
154
+ background-color: #FFFFFF;
155
+ border-radius: 10px ;
156
+ border: 1px solid #499EDF;
157
+ }
158
+ .app-text {
159
+ font-size: 12px;
160
+ }
161
+ .panel-self{
162
+ border-radius: 10px;
163
+ border:1px solid #499EDF;
164
+ background-color: #F8F8F8;
165
+ }
166
+ .btn_cz {
167
+ background-color: #499edf;
168
+ color:#FFFFFF;
169
+ width: 55px;
170
+ margin-right: 2%;
171
+ margin-top: 10px;
172
+ height: 38px;
173
+ border-radius: 9px;
174
+ font: 600 17px PingFang-SC-Bold;
175
+ }
176
+ </style>
@@ -81,6 +81,13 @@
81
81
  :size="model.f_attendant ? model.f_order_man.length : 6" style="width: 80%;">
82
82
  </div>
83
83
 
84
+ <div class="col-sm-3">
85
+ <v-select :value.sync="model.f_state"
86
+ v-model="model.f_state"
87
+ :width="'80%'"
88
+ :options='$parent.$parent.states' placeholder='是否退单'
89
+ close-on-select style="width: 80%;"></v-select>
90
+ </div>
84
91
  <!-- <div class="form-group" style="float: left;margin-right: 3px">
85
92
  <datepicker id="endDate" placeholder="接单日期"
86
93
  v-model="model.f_order_date"
@@ -122,15 +129,15 @@
122
129
  <button type="button" class="btn btn-link"
123
130
  @click.stop="$parent.$parent.$parent.$emit('do', 'serviceDelete',row)" style="min-width: 30px;">撤销</button>
124
131
  </div>
125
- <div v-show="$parent.$parent.$parent.canResend(row) && row.f_workorder_type == '报修单'">
132
+ <div v-show="row.f_state =='撤销' && row.f_workorder_type == '报修单'">
126
133
  <button type="button" class="btn btn-link"
127
134
  @click.stop="$parent.$parent.$parent.$emit('do', 'resend', row)" style="min-width: 30px;">重派</button>
128
135
  </div>
129
- <div v-show="$parent.$parent.$parent.canResend(row) && row.f_workorder_type == '置换通气单' ">
136
+ <div v-show="row.f_state =='撤销' && row.f_workorder_type == '置换通气单' ">
130
137
  <button type="button" class="btn btn-link"
131
138
  @click.stop="$parent.$parent.$parent.$emit('do', 'resendzhihuan', row)" style="min-width: 30px;">重派</button>
132
139
  </div>
133
- <div v-show="$parent.$parent.$parent.canResend(row) && row.f_workorder_type == '安装单' ">
140
+ <div v-show="row.f_state =='撤销' && row.f_workorder_type == '安装单' ">
134
141
  <button type="button" class="btn btn-link"
135
142
  @click.stop="$parent.$parent.$parent.$emit('do', 'resendinstall', row)" style="min-width: 30px;">重派</button>
136
143
  </div>
@@ -170,6 +177,7 @@ export default {
170
177
  return {
171
178
  model: new PagedList('rs/path/allService', 20),
172
179
  row: null,
180
+ states:[{label: '全部', value: ''}, {label: '是', value: '是'},{label: '否', value: '否'}],
173
181
  modifyOrder: null
174
182
  // defname: [{label: '全部', value: ''}, ...this.$appdata.getParam('工单状态')]
175
183
  }
@@ -201,6 +209,15 @@ export default {
201
209
  data.condition = this.$refs.paged.$refs.criteria.condition?this.$refs.paged.$refs.criteria.condition:'1=1'
202
210
  // data.condition += `and f_filiale_id = '${this.$login.f.orgid}'`
203
211
  data.sign = this.$refs.paged.$refs.criteria.select.defname[0]?`defname = '${this.$refs.paged.$refs.criteria.select.defname[0]}'`:'1=1'
212
+
213
+ if (this.$refs.paged.$refs.criteria.model.f_state.length > 0){
214
+ if (this.$refs.paged.$refs.criteria.model.f_state[0] == '是'){
215
+ data.condition += ` and f_state = '撤销' `
216
+ }else {
217
+ data.condition += ` and f_state = null `
218
+ }
219
+ }
220
+
204
221
  return this.model.search(data)
205
222
  },
206
223
  selfsearch(){
@@ -165,6 +165,31 @@
165
165
  close-on-select>
166
166
  </v-select>
167
167
  </div>
168
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
169
+ <label class="font_normal_body" style="width: 40%" >是否退单</label>
170
+ <v-select :value.sync="model.f_state" :value-single="true" v-model="model.f_state"
171
+ :options='$parent.$parent.states' placeholder='是否退单'
172
+ close-on-select>
173
+ </v-select>
174
+ </div>
175
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
176
+ <label class="font_normal_body" style="width: 40%">截至时间</label>
177
+ <datepicker placeholder="开始时间"
178
+ :value.sync="model.f_jzdate_start"
179
+ v-model="model.f_jzdate_start"
180
+ :format="'yyyy-MM-dd 00:00:00'"
181
+ condition="f_result_status is null and f_finish_date > '{}'"
182
+ ></datepicker>
183
+ </div>
184
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
185
+ <label class="font_normal_body" style="width: 40%">截至时间</label>
186
+ <datepicker placeholder="结束时间"
187
+ :value.sync="model.f_jzdate_end"
188
+ v-model="model.f_jzdate_end"
189
+ :format="'yyyy-MM-dd 23:59:59'"
190
+ condition="f_finish_date < '{}'"
191
+ ></datepicker>
192
+ </div>
168
193
 
169
194
  </div>
170
195
 
@@ -234,13 +259,12 @@
234
259
  <th>
235
260
  <nobr>逾期时间</nobr>
236
261
  </th>
237
-
238
-
262
+ <th>
263
+ <nobr>剩余时间</nobr>
264
+ </th>
239
265
  <th>
240
266
  <nobr>工单结果</nobr>
241
267
  </th>
242
-
243
-
244
268
  </tr>
245
269
  </template>
246
270
  <template partial='body'>
@@ -314,7 +338,9 @@
314
338
  <td style="text-align: center;">
315
339
  <nobr>{{ $parent.$parent.$parent.d2(row) }}</nobr>
316
340
  </td>
317
-
341
+ <td style="text-align: center;">
342
+ <nobr>{{ $parent.$parent.$parent.d3(row) }}</nobr>
343
+ </td>
318
344
 
319
345
  <td style="text-align: center;">
320
346
  <nobr>{{ row.f_result_status }}</nobr>
@@ -397,7 +423,7 @@ export default {
397
423
  model: new PagedList('rs/sql/serviceDetails', 20),
398
424
  row: null,
399
425
  orderMan: '',
400
-
426
+ states:[{label: '全部', value: ''}, {label: '是', value: '是'},{label: '否', value: '否'}],
401
427
  msgs: [],
402
428
  service: Object,
403
429
  pendingCount: 0,
@@ -456,7 +482,7 @@ export default {
456
482
  },
457
483
  ready () {
458
484
 
459
- this.selfSearch()
485
+ // this.selfSearch()
460
486
  },
461
487
  watch: {
462
488
  'all' (val) {
@@ -483,7 +509,13 @@ export default {
483
509
  return row.f_workorder_type == '报修单'?(row.f_result_status == '已完成'?(this.datejisuan(row.f_finish_date,row.f_date)<0?'已逾期':'未逾期'):(this.datejisuan(row.f_finish_date,'')<0?'已逾期':'未逾期')):''
484
510
  },
485
511
  d2(row){
486
- return row.f_workorder_type == '报修单'?(row.f_result_status == '已完成'?(this.datejisuan(row.f_finish_date,row.f_date)<0?this.formatDuring(new Date(row.f_date).getTime(),new Date(row.f_finish_date).getTime()):'未逾期'):(this.datejisuan(row.f_finish_date,'')<0?this.formatDuring(new Date().getTime(),new Date(row.f_finish_date).getTime()):'未逾期')):''
512
+ return row.f_workorder_type == '报修单'?(row.f_result_status == '已完成'?(this.datejisuan(row.f_finish_date,row.f_date)<0?this.formatDuring(new Date(row.f_date).getTime(),new Date(row.f_finish_date).getTime()):'未逾期'):(this.datejisuan(row.f_finish_date,this.getNowFormatDate())<0?this.formatDuring(new Date(this.getNowFormatDate()).getTime(),new Date(row.f_finish_date).getTime()):'未逾期')):''
513
+ },
514
+ d3(row){
515
+ return row.f_workorder_type == '报修单' && row.f_finish_date ?
516
+ (row.f_result_status == '已完成'?
517
+ '0天':(this.datejisuan(row.f_finish_date,this.getNowFormatDate())<0?
518
+ '已逾期':this.formatDuring(new Date(row.f_finish_date).getTime(),new Date(this.getNowFormatDate()).getTime()))):''
487
519
  },
488
520
  datejisuan(a,b){
489
521
  return new Date(a).getTime()-new Date(b).getTime()
@@ -551,7 +583,13 @@ export default {
551
583
  } else {
552
584
  args.condition += ` and f_filiale_id = '${this.$login.f.orgid}'`
553
585
  }
554
-
586
+ if (this.$refs.paged.$refs.criteria.model.f_state.length > 0){
587
+ if (this.$refs.paged.$refs.criteria.model.f_state[0] == '是'){
588
+ args.condition += ` and f_state = '撤销' `
589
+ }else {
590
+ args.condition += ` and f_state is null `
591
+ }
592
+ }
555
593
  this.searchData.condition = args.condition
556
594
  return this.model.search(args.condition, args.model)
557
595
  },
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <div class="auto ">
3
+ <div class="">
4
+ <label class="control-label">{{row.f_user_name}}</label>&nbsp;
5
+ <span>{{row.f_phone}}</span>&nbsp;
6
+ <span>{{row.f_address}}</span>
7
+ </div>
8
+ <div class="">
9
+ <span>报修时间:{{row.f_repair_date}}</span>&nbsp;&nbsp;
10
+ <span>工单编号:{{row.f_service_id}}</span>
11
+ </div>
12
+ <div class="form-input-group">
13
+ <label class="control-label text-justify">撤销内容</label>
14
+ <textarea name="name" rows="3" cols="80" v-model="row.serviceacitivity[0].f_backaccount"></textarea>
15
+ </div>
16
+ <button type="button" name="button" class="btn btn-default" style="float: left;" @click="$emit('cancel')">取消</button>
17
+ <button type="button" name="button" class="btn btn-success" style="float: right;" @click="confirm()">保存</button>
18
+ </div>
19
+ </template>
20
+ <script>
21
+ export default {
22
+ title: '撤销',
23
+ props: {
24
+ // 报修单,不含关联关系
25
+ row: { // 工单信息
26
+ type: Object
27
+ },
28
+ loginUser: { // 当前登录人
29
+ type: Object
30
+ },
31
+ callObj: { // 来电电话
32
+ type: Object
33
+ }
34
+ },
35
+ methods: {
36
+ confirm () {
37
+ console.log("撤销工单")
38
+ let data = {model: this.row, loginUser: {name:this.$login.f.name, ename: this.$login.f.ename}}
39
+ // 将数据发送给业务逻辑
40
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/serviceDelete`, data).then(() => {
41
+ this.$emit('success')
42
+ })
43
+ // return this.$resetpost('rs/logic/reminder', {model: this.row, loginUser: this.loginUser, callObj: this.callObj}).then(() => {
44
+ // this.$emit('success')
45
+ // })
46
+ }
47
+ },
48
+ watch: {
49
+ // 报修单发生改变,给报修单设置默认派单对象
50
+ row (val) {
51
+ this.row.serviceacitivity = [{}]
52
+ }
53
+ }
54
+ }
55
+ </script>
@@ -14,23 +14,24 @@ let specialComp = {
14
14
  'telloss-list': (resolve) => {require(['./pc/TelLossList'], resolve)},
15
15
  // 呼叫大屏主页面
16
16
  'call-report-main-page-kelai': (resolve) => { require(['./pc/CallReport/CallReportMainPage-Kelai'], resolve) },
17
- //时间
17
+ //时间
18
18
  'time-comp': (resolve) => { require(['./pc/CallReport/Time'], resolve) },
19
- //运行天数
19
+ //运行天数
20
20
  'time-running': (resolve) => { require(['./pc/CallReport/timeRunning'], resolve) },
21
- //累计通话
21
+ //累计通话
22
22
  'cumulative-calls': (resolve) => { require(['./pc/CallReport/CumulativeCalls'], resolve) },
23
- //坐席状态
23
+ //坐席状态
24
24
  'seat-status': (resolve) => { require(['./pc/CallReport/SeatStatus'], resolve) },
25
- //呼入接听量
25
+ //呼入接听量
26
26
  'incoming-callvolume': (resolve) => { require(['./pc/CallReport/Incomingcallvolume'], resolve) },
27
- //呼入时间数据
27
+ //呼入时间数据
28
28
  'tncoming-timedata': (resolve) => { require(['./pc/CallReport/IncomingTimedata'], resolve) },
29
- //工单类型统计
29
+ //工单类型统计
30
30
  'workorder-typesum': (resolve) => { require(['./pc/CallReport/WorkorderTypesum'], resolve) },
31
+ 'service-delete-order': (resolve) => { require(['./pc/serviceDeleteOrder'], resolve) },
31
32
  'record-list-left':(resolve) => { require(['./pc/RecordListLeft'], resolve) },
32
33
  'work-listall-new':(resolve) => { require(['./pc/WorkListAllNew.vue'], resolve) },
33
- 'rwork-center-list':(resolve) => { require(['./pc/WorkCenterList.vue'], resolve) }
34
+ 'work-center-list':(resolve) => { require(['./pc/WorkCenterList.vue'], resolve) }
34
35
  }
35
36
  exports.specialComp = specialComp
36
37
 
@@ -8,7 +8,9 @@ let specialComp = {
8
8
  'repair-type-list' : (resolve) => { require(['./android/RepairTypeList'], resolve) },
9
9
  // 用户基本信息
10
10
  'repair-user-info': (resolve) => { require(['./android/RepairUserInfo'], resolve) },
11
- 'repair-orderV': (resolve) => { require(['./android/RepairOrderV'], resolve) }
11
+ 'repair-orderV': (resolve) => { require(['./android/RepairOrderV'], resolve) },
12
+ 'phone-ventilation-leave': (resolve) => { require(['./android/PhoneVentilationLeave'], resolve) },
13
+ 'tel-take-pic': (resolve) => { require(['./android/AppTakePic'], resolve) }
12
14
  }
13
15
  exports.specialComp = specialComp
14
16