liuzhihui 3 lat temu
rodzic
commit
6a6e5a770c

+ 147 - 0
CallCenterWeb.UI/RMYY/src/api/EquipmentLeasing/EquipmentLeasing.js

@@ -0,0 +1,147 @@
1
+import request from '@/utils/request'
2
+// 设备租赁
3
+// 工单类型
4
+export function getOrderStateData(params) {
5
+  return request({
6
+    url: 'Con_WorkOrder/GetTypeState',
7
+    method: 'post',
8
+    params
9
+  })
10
+}
11
+// 获取列表
12
+export function getWorkOrderList(params) {
13
+  return request({
14
+    url: 'T_Dev_WorkOrder/GetList',
15
+    method: 'get',
16
+    params
17
+  })
18
+}
19
+// 添加工单
20
+export function getAddWorkOrder(params) {
21
+  return request({
22
+    url: 'T_Dev_WorkOrder/AddWorkOrder',
23
+    method: 'post',
24
+    params
25
+  })
26
+}
27
+// 工单详情
28
+export function getModelDetail(params) {
29
+  return request({
30
+    url: 'T_Dev_WorkOrder/GetModelDetail',
31
+    method: 'post',
32
+    params
33
+  })
34
+}
35
+// 修改工单
36
+export function getUpdateWorkOrder(params) {
37
+  return request({
38
+    url: 'T_Dev_WorkOrder/UpdateWorkOrder',
39
+    method: 'post',
40
+    params
41
+  })
42
+}
43
+// 删除工单
44
+export function getDelWorkOrder(params) {
45
+  return request({
46
+    url: 'T_Dev_WorkOrder/DelWorkOrder',
47
+    method: 'post',
48
+    params
49
+  })
50
+}
51
+// 出库
52
+export function getDevCheckout(params) {
53
+  return request({
54
+    url: 'T_Dev_WorkOrder/DevCheckout',
55
+    method: 'post',
56
+    params
57
+  })
58
+}
59
+// 入库
60
+export function getDevStorage(params) {
61
+  return request({
62
+    url: 'T_Dev_WorkOrder/DevStorage',
63
+    method: 'post',
64
+    params
65
+  })
66
+}
67
+// 转派
68
+export function getAssignTransGo(params) {
69
+  return request({
70
+    url: 'T_Dev_WorkOrder/AssignTransGo',
71
+    method: 'post',
72
+    params
73
+  })
74
+}
75
+// 转派(返还设备)
76
+export function getAssignTransOut(params) {
77
+  return request({
78
+    url: 'T_Dev_WorkOrder/AssignTransOut',
79
+    method: 'post',
80
+    params
81
+  })
82
+}
83
+// 转运工单
84
+export function getSureTransGo(params) {
85
+  return request({
86
+    url: 'T_Dev_WorkOrder/SureTransGo',
87
+    method: 'post',
88
+    params
89
+  })
90
+}
91
+// 已送达待返还
92
+export function getReceiveWo(params) {
93
+  return request({
94
+    url: 'T_Dev_WorkOrder/ReceiveWo',
95
+    method: 'post',
96
+    params
97
+  })
98
+}
99
+// 需求科返还设备
100
+export function getRebackWo(params) {
101
+  return request({
102
+    url: 'T_Dev_WorkOrder/RebackWo',
103
+    method: 'post',
104
+    params
105
+  })
106
+}
107
+// 处理-返还运转
108
+export function getSureTransOut(params) {
109
+  return request({
110
+    url: 'T_Dev_WorkOrder/SureTransOut',
111
+    method: 'post',
112
+    params
113
+  })
114
+}
115
+// 完结
116
+export function getOverorder(params) {
117
+  return request({
118
+    url: 'T_Dev_WorkOrder/Overorder',
119
+    method: 'post',
120
+    params
121
+  })
122
+}
123
+// 异常
124
+export function getAbnormalEnd(params) {
125
+  return request({
126
+    url: 'T_Dev_WorkOrder/AbnormalEnd',
127
+    method: 'post',
128
+    params
129
+  })
130
+}
131
+// 报表列表
132
+export function getReportList(params) {
133
+  return request({
134
+    url: 'T_Dev_WorkOrder/GetListExpt',
135
+    method: 'post',
136
+    params
137
+  })
138
+}
139
+// 报表导出
140
+export function getListExpt(params) {
141
+  return request({
142
+    url: 'T_Dev_WorkOrder/GetListExpt',
143
+    method: 'post',
144
+    responseType: 'blob',
145
+    params
146
+  })
147
+}

+ 131 - 0
CallCenterWeb.UI/RMYY/src/api/Escortservice/Escortservice.js

@@ -0,0 +1,131 @@
1
+import request from '@/utils/request'
2
+
3
+// 工单类型
4
+export function getOrderStateData(params) {
5
+  return request({
6
+    url: 'Con_WorkOrder/GetTypeState',
7
+    method: 'post',
8
+    params
9
+  })
10
+}
11
+// 车辆信息
12
+export function getGetAllCar(params) {
13
+  return request({
14
+    url: 'T_Car_Message/GetAllCar',
15
+    method: 'post',
16
+    params
17
+  })
18
+}
19
+// 获取列表
20
+export function getWorkOrderList(params) {
21
+  return request({
22
+    url: 'T_Acc_WorkOrder/GetList',
23
+    method: 'post',
24
+    params
25
+  })
26
+}
27
+// 添加工单
28
+export function getAddWorkOrder(params) {
29
+  return request({
30
+    url: '/T_Acc_WorkOrder/AddWorkOrder',
31
+    method: 'get',
32
+    params
33
+  })
34
+}
35
+// 工单详情
36
+export function getModelDetail(params) {
37
+  return request({
38
+    url: 'T_Acc_WorkOrder/GetModelDetail',
39
+    method: 'get',
40
+    params
41
+  })
42
+}
43
+// 修改工单
44
+export function getUpdateWorkOrder(params) {
45
+  return request({
46
+    url: 'T_Acc_WorkOrder/UpdateWorkOrder',
47
+    method: 'get',
48
+    params
49
+  })
50
+}
51
+// 删除工单
52
+export function getDelWorkOrder(params) {
53
+  return request({
54
+    url: 'T_Acc_WorkOrder/DelWorkOrder',
55
+    method: 'post',
56
+    params
57
+  })
58
+}
59
+// 查收
60
+export function getSureWo(params) {
61
+  return request({
62
+    url: 'T_Acc_WorkOrder/SureWo',
63
+    method: 'get',
64
+    params
65
+  })
66
+}
67
+// 转派
68
+export function getAssignWo(params) {
69
+  return request({
70
+    url: 'T_Acc_WorkOrder/AssignWo',
71
+    method: 'post',
72
+    params
73
+  })
74
+}
75
+// 已到达
76
+export function getArriveWo(params) {
77
+  return request({
78
+    url: 'T_Acc_WorkOrder/ArriveWo',
79
+    method: 'post',
80
+    params
81
+  })
82
+}
83
+// 陪检
84
+export function getCompanyWo(params) {
85
+  return request({
86
+    url: 'T_Acc_WorkOrder/CompanyWo',
87
+    method: 'post',
88
+    params
89
+  })
90
+}
91
+// 待处理
92
+export function getDealBooldWo(params) {
93
+  return request({
94
+    url: 'T_Acc_WorkOrder/DealBooldWo',
95
+    method: 'post',
96
+    params
97
+  })
98
+}
99
+// 已完成
100
+export function getCompleteWo(params) {
101
+  return request({
102
+    url: 'T_Acc_WorkOrder/CompleteWo',
103
+    method: 'post',
104
+    params
105
+  })
106
+}
107
+// 完结
108
+export function getOverorder(params) {
109
+  return request({
110
+    url: 'T_Acc_WorkOrder/OverWo',
111
+    method: 'post',
112
+    params
113
+  })
114
+}
115
+// 报表列表
116
+export function getReportList(params) {
117
+  return request({
118
+    url: 'T_Acc_WorkOrder/GetListExpt',
119
+    method: 'get',
120
+    params
121
+  })
122
+}
123
+// 报表导出
124
+export function getListExpt(params) {
125
+  return request({
126
+    url: 'T_Acc_WorkOrder/GetListExpt',
127
+    method: 'get',
128
+    responseType: 'blob',
129
+    params
130
+  })
131
+}

+ 75 - 0
CallCenterWeb.UI/RMYY/src/api/vehicleDispatch/vehicleScheduling.js

@@ -0,0 +1,75 @@
1
+import request from '@/utils/request'
2
+
3
+// 获取列表数据
4
+export function getList(params) {
5
+  return request({
6
+    url: 'T_Car_WorkOrder/GetList',
7
+    method: 'get',
8
+    params
9
+  })
10
+}
11
+// 添加
12
+export function getAddWorkOrde(params) {
13
+  return request({
14
+    url: 'T_Car_WorkOrder/AddWorkOrder',
15
+    method: 'post',
16
+    params
17
+  })
18
+}
19
+// 修改
20
+export function getUpdateWorkOrder(params) {
21
+  return request({
22
+    url: 'T_Car_WorkOrder/UpdateWorkOrder',
23
+    method: 'get',
24
+    params
25
+  })
26
+}
27
+// 删除
28
+export function getDelete(params) {
29
+  return request({
30
+    url: 'T_Car_WorkOrder/Delete',
31
+    method: 'post',
32
+    params
33
+  })
34
+}
35
+// 详情
36
+export function getModelDetail(params) {
37
+  return request({
38
+    url: 'T_Car_WorkOrder/GetModelDetail',
39
+    method: 'get',
40
+    params
41
+  })
42
+}
43
+// 派车
44
+export function getAssignWorkOrder(params) {
45
+  return request({
46
+    url: 'T_Car_WorkOrder/AssignWorkOrder',
47
+    method: 'get',
48
+    params
49
+  })
50
+}
51
+// 确定工单
52
+export function getSureWorkOrder(params) {
53
+  return request({
54
+    url: 'T_Car_WorkOrder/SureWorkOrder',
55
+    method: 'post',
56
+    params
57
+  })
58
+}
59
+// 报表
60
+export function getListExpt(params) {
61
+  return request({
62
+    url: 'T_Car_WorkOrder/GetListExpt',
63
+    method: 'get',
64
+    params
65
+  })
66
+}
67
+// 导出
68
+export function getListExptIsdc(params) {
69
+  return request({
70
+    url: 'T_Car_WorkOrder/GetListExpt',
71
+    method: 'get',
72
+    responseType: 'blob',
73
+    params
74
+  })
75
+}

+ 4 - 4
CallCenterWeb.UI/RMYY/src/utils/request.js

@@ -19,12 +19,12 @@ const service = axios.create({
19 19
   transformRequest: [function(data) {
20 20
     // 对 data 进行任意转换处理
21 21
     return qs.stringify(data)
22
-  }]
22
+  }],
23 23
   // `paramsSerializer` 是一个负责 `params` 序列化的函数
24 24
   // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
25
-  //   paramsSerializer: function(params) {
26
-  //     return qs.stringify(params, {arrayFormat: 'repeat'})
27
-  //   },
25
+  paramsSerializer: function(params) {
26
+    return qs.stringify(params, { arrayFormat: 'repeat' })
27
+  }
28 28
 
29 29
 })
30 30
 // request拦截器

+ 676 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/EquipmentLeasingList/index.vue

@@ -0,0 +1,676 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-row :gutter="20">
4
+      <el-col :md="24">
5
+        <el-form :inline="true" :model="ruleForm" class="demo-form-inline">
6
+          <el-form-item label="关键字">
7
+            <el-input v-model="ruleForm.keyword" placeholder="输入关键字" size="medium" />
8
+          </el-form-item>
9
+          <el-form-item label="时间范围:">
10
+            <el-col :span="16">
11
+              <el-date-picker v-model="ruleForm.startTime" size="medium" type="daterange" format="yyyy-MM-dd"
12
+                value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
13
+            </el-col>
14
+          </el-form-item>
15
+          <el-form-item>
16
+            <el-button type="primary" size="medium" @click="btn_search_task">查询</el-button>
17
+            <el-button v-permission="'equi_add'" type="primary" size="medium" @click="btn_add">添加工单</el-button>
18
+          </el-form-item>
19
+        </el-form>
20
+        <!-- <el-tabs v-if="isRoot==0" v-model="activeName" @tab-click="handleClick">
21
+          <el-tab-pane label="全部" />
22
+          <el-tab-pane label="待出库" name="1" />
23
+          <el-tab-pane label="已出库" name="2" />
24
+          <el-tab-pane label="已返还" name="6" />
25
+        </el-tabs>
26
+        <el-tabs v-if="isRoot!=0" v-model="activeName" @tab-click="handleClick">
27
+          <el-tab-pane label="全部" />
28
+          <el-tab-pane label="待确认" name="3" />
29
+          <el-tab-pane label="代派工" name="5" />
30
+          <el-tab-pane label="转运中" name="4" />
31
+          <el-tab-pane label="已完成" name="10" />
32
+          <el-tab-pane label="异常错误" name="9" />
33
+        </el-tabs> -->
34
+        <tab-order-state :order-id="orderId"  @post-order-id="getOrderId"/>
35
+        <el-table :data="taskDataLists" border stripe>
36
+          <el-table-column prop="F_WorkOrderCode" label="工单编号" align="center" min-width="110">
37
+            <template slot-scope="scope">
38
+              <el-button type="text" @click="hadndleOrderCode(scope.row.F_Id)" size="small">
39
+                {{scope.row.F_WorkOrderCode}}
40
+              </el-button>
41
+            </template>
42
+          </el-table-column>
43
+          <el-table-column prop="F_ProposerDeptName" label="申请科室" align="center" min-width />
44
+          <el-table-column prop="F_Wostate" label="工单状态" align="center" min-width />
45
+          <el-table-column prop="F_ProposerPhon" label="电话号码" align="center" min-width />
46
+          <el-table-column prop="F_CarryContents" label="配送设备名称" align="center" min-width />
47
+          <el-table-column prop="F_Remark" label="备注" align="center" min-width />
48
+          <el-table-column prop="F_Source" label="来源" align="center" min-width />
49
+          <el-table-column prop="F_SitMan" label="坐席信息" align="center" min-width />
50
+          <!-- <el-table-column prop="F_HandleTime" label="出库时间" align="center" min-width /> -->
51
+          <el-table-column prop="F_ProposerName" label="经办人信息" align="center" min-width />
52
+          <el-table-column label="操作" width="160" align="center" class-name="oparate_btn" fixed="right">
53
+            <template slot-scope="scope">
54
+              <el-button type="text" v-permission="'equi_edit'" @click="btn_edit(scope.row.F_Id)">修改</el-button>
55
+              <el-button type="text" v-permission="'equi_delete'" @click="handleDelCode(scope.row.F_Id)">删除</el-button>
56
+              <el-button type="text" v-permission="'equi_checkOut'" v-if="scope.row.F_State==1"
57
+                @click="handleOut(scope.row)">出库</el-button>
58
+              <el-button type="text" v-if="scope.row.F_State==9" @click="noCount()">无库存</el-button>
59
+              <el-button type="text" v-permission="'equi_Reassignment'"
60
+                v-if="scope.row.F_State==0||scope.row.F_State==2" @click="handlezp(scope.row)">转派</el-button>
61
+              <el-button type="text" v-permission="'equi_transport'" v-if="scope.row.F_State==3"
62
+                @click="zyWorkOrder(scope.row)">转运工单</el-button>
63
+              <el-button type="text" v-permission="'equi_ToReturned'" v-if="scope.row.F_State==4"
64
+                @click="ysdfWorkOrder(scope.row)">已送达待返还</el-button>
65
+              <el-button type="text" v-permission="'equi_ReturnOrder'" v-if="scope.row.F_State==5"
66
+                @click="fhWorkOrder(scope.row)">返还设备</el-button>
67
+              <el-button type="text" v-permission="'equi_ReassignmentFH'" v-if="scope.row.F_State==6"
68
+                @click="handlezpfh(scope.row)">转派(返还)</el-button>
69
+              <el-button type="text" v-permission="'equi_handle'" v-if="scope.row.F_State==4"
70
+                @click="clfhWorkOrder(scope.row)">处理返还</el-button>
71
+              <el-button type="text" v-permission="'equi_CheckIn'" v-if="scope.row.F_State==7"
72
+                @click="handleIn(scope.row)">入库</el-button>
73
+              <el-button type="text" v-permission="'equi_over'" v-if="scope.row.F_State==8"
74
+                @click="handleOver(scope.row)">完结工单</el-button>
75
+              <el-button type="text" v-permission="'equi_abnormal'" v-if="scope.row.F_State==9"
76
+                @click="handleBad(scope.row)">异常结束</el-button>
77
+            </template>
78
+          </el-table-column>
79
+        </el-table>
80
+        <pagination v-show="pageParams.total > 0" :total="pageParams.total" :pageindex.sync="pageParams.pageindex"
81
+          :pagesize.sync="pageParams.pagesize" class="pagination" @pagination="getListTask" />
82
+      </el-col>
83
+    </el-row>
84
+    <!-- 出入库 -->
85
+    <el-dialog :title='title' :visible.sync="dialogFormVisible" width="70%">
86
+      <el-form :model="form">
87
+        <el-col :span="24">
88
+          <el-row>
89
+            <el-form-item v-if="title=='出库'" label="出库状态:" :label-width="formLabelWidth">
90
+              <el-select v-model="form.devstate" placeholder="请选择">
91
+                <el-option v-for="item in outTypes" :key="item.value" :label="item.label" :value="item.value">
92
+                </el-option>
93
+              </el-select>
94
+            </el-form-item>
95
+          </el-row>
96
+          <el-row v-for="(item,index) in devList" :key="index">
97
+            <el-col :span="6">
98
+              <el-form-item label="设备名称:" :label-width="formLabelWidth">
99
+                <el-input v-model="item.devmessage" autocomplete="off"></el-input>
100
+              </el-form-item>
101
+            </el-col>
102
+            <el-col :span="6">
103
+              <el-form-item label="数量:" :label-width="formLabelWidth">
104
+                <el-input-number v-model="item.num" :min="1"></el-input-number>
105
+              </el-form-item>
106
+            </el-col>
107
+            <el-col :span="6">
108
+              <el-form-item label="设备编号:" :label-width="formLabelWidth">
109
+                <el-input placeholder="10001" v-model="item.codes" autocomplete="off"></el-input>
110
+              </el-form-item>
111
+            </el-col>
112
+            <el-col :span="6">
113
+              <el-button type="primary" icon="el-icon-plus" circle @click="addItem()" />
114
+              <el-button  v-if="devList.length>1" type="primary" icon="el-icon-close" circle @click="removeItem" />
115
+            </el-col>
116
+          </el-row>
117
+          <el-row>
118
+            <el-col :span="16">
119
+              <el-form-item label="备注" :label-width="formLabelWidth">
120
+                <el-input v-model="form.remark" autocomplete="off"></el-input>
121
+              </el-form-item>
122
+            </el-col>
123
+          </el-row>
124
+          <el-form-item>
125
+            <el-button @click="dialogFormVisible = false">取 消</el-button>
126
+            <el-button type="primary" @click="outSure()">确 定</el-button>
127
+          </el-form-item>
128
+        </el-col>
129
+      </el-form>
130
+      <!-- <div slot="footer" class="dialog-footer">
131
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
132
+        <el-button type="primary" @click="outSure()">确 定</el-button>
133
+      </div> -->
134
+    </el-dialog>
135
+    <el-dialog title="无库存" :visible.sync="dialogNoCount" width="30%">
136
+      <span>设备库存不足,本次工单异常结束,设备不足信息将反馈给坐席。</span>
137
+      <span slot="footer" class="dialog-footer">
138
+        <el-button @click="dialogNoCount = false">取 消</el-button>
139
+        <el-button type="primary" @click="dialogNoCount = false">确 定</el-button>
140
+      </span>
141
+    </el-dialog>
142
+    <!-- 转返派 -->
143
+    <el-dialog :title="titleBack" :visible.sync="dialogDistribution">
144
+      <el-form :model="formzp">
145
+        <el-form-item label="配送人" prop="username" :label-width="formLabelWidth">
146
+          <select-repairman :repairman-param="repairmanParam" @post-repairman="getRepairman" />
147
+        </el-form-item>
148
+        <el-form-item label="电话" :label-width="formLabelWidth">
149
+          <el-input v-model="formzp.phon" autocomplete="off"></el-input>
150
+        </el-form-item>
151
+        <el-form-item label="对讲机" :label-width="formLabelWidth">
152
+          <el-input v-model="formzp.talkie" autocomplete="off"></el-input>
153
+        </el-form-item>
154
+        <el-form-item label="备注" :label-width="formLabelWidth">
155
+          <el-input v-model="formzp.remark" autocomplete="off"></el-input>
156
+        </el-form-item>
157
+      </el-form>
158
+      <div slot="footer" class="dialog-footer">
159
+        <el-button @click="dialogDistribution = false">取 消</el-button>
160
+        <el-button type="primary" @click="zpSure()">确 定</el-button>
161
+      </div>
162
+    </el-dialog>
163
+
164
+  </div>
165
+</template>
166
+
167
+<script>
168
+  import {
169
+    getWorkOrderList,
170
+    getOrderStateData,
171
+    getDelWorkOrder,
172
+    getDevCheckout,
173
+    getAssignTransGo,
174
+    getSureTransGo,
175
+    getReceiveWo,
176
+    getRebackWo,
177
+    getAssignTransOut,
178
+    getSureTransOut,
179
+    getDevStorage,
180
+    getOverorder,
181
+    getAbnormalEnd
182
+  } from '@/api/EquipmentLeasing/EquipmentLeasing.js'
183
+  import {
184
+    getOrderTypeLists
185
+  } from '@/api/systemSetup/roleSetting/orderTypeManage'
186
+  import equiAddOrEdit from '../components/equiAddOrEdit.vue'
187
+  import Outku from '../components/Outku.vue'
188
+  import equiDetail from '../components/equiDetail.vue'
189
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
190
+  import TabOrderState from '@/components/context/TabOrderState'
191
+
192
+  export default {
193
+    name: 'EquipmentLeasingList',
194
+    components: {
195
+      Pagination,
196
+      TabOrderState
197
+    },
198
+    data() {
199
+      return {
200
+        orderId:2004,
201
+        dialogFormVisible: false,
202
+        dialogNoCount: false,
203
+        dialogDistribution: false,
204
+        formLabelWidth: '120px',
205
+        title: '',
206
+        titleBack: '',
207
+        form: {
208
+          num: 1
209
+        },
210
+        formzp: {},
211
+        isRoot: '',
212
+        devList: [{
213
+          devmessage: '',
214
+          num: 1,
215
+          codes: ''
216
+        }],
217
+        activeName: '-1', // tabs标签
218
+        departments: [], // 科室
219
+        workOrderType: [], // 工单类型
220
+        orderstate: [], // 工单状态数据
221
+        ruleForm: {
222
+          keyword: '',
223
+          startTime: '', // 开始时间
224
+          endTime: '', // 结束时间
225
+          T_Worepairdeptid: '', // 科室id
226
+          T_Wowocodetype: '', // 工单类型
227
+          T_Worepairman: '', // 姓名
228
+          T_Worepairmanphone: '' // 电话
229
+        },
230
+        outTypes: [{
231
+            value: 1,
232
+            label: '全部出库'
233
+          }, {
234
+            value: 2,
235
+            label: '部分出库'
236
+          },
237
+          {
238
+            value: 5,
239
+            label: '无库存'
240
+          }
241
+        ],
242
+        pageParams: {
243
+          pageindex: 1, // 当前第几页
244
+          pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
245
+          total: 0 // 总共多少数据
246
+        },
247
+        repairmanParam: {
248
+          id: 0,
249
+          name: ''
250
+        },
251
+        taskDataLists: [], // 工单列表信息
252
+        F_Id: '', //工单id
253
+        state: -1, // 状态
254
+        detail: true, // 详情
255
+        word: true, // 评价
256
+        yc: true,
257
+        repair: true
258
+      }
259
+    },
260
+    computed: {},
261
+    created() {
262
+      this.getListTask() // 工单列表
263
+      // this.getDepartment() // 科室
264
+      this.getWorkOrder() // 工单类型
265
+      this.getOrderStat() //工单状态
266
+      if (localStorage.getItem('roleName') == "管理员") {
267
+        this.isRoot = 0
268
+      }
269
+      document.onkeyup = (e) => {
270
+        if (e.keyCode === 13) {
271
+          this.getListTask()
272
+        }
273
+      }
274
+    },
275
+    mounted() {
276
+      setInterval(this.getListTask, 1000 * 60)
277
+    },
278
+    methods: {
279
+      getOrderId(data){
280
+        this.state = data
281
+        this.getListTask()
282
+      },
283
+      // 工单状态
284
+      getOrderStat() {
285
+        return new Promise((resolve) => {
286
+          const params = {}
287
+          getOrderStateData(params).then((response) => {
288
+            this.loading = false
289
+            if (response) {
290
+              this.orderstate = response
291
+            }
292
+          })
293
+          resolve()
294
+        })
295
+      },
296
+      //配送人
297
+      getRepairman(data) {
298
+        console.log(data)
299
+        this.formzp.usercode = data.value
300
+        this.formzp.username = data.name
301
+      },
302
+      handleOut(row) {
303
+        this.$layer.iframe({
304
+          content: {
305
+            content: Outku, // 传递的组件对象
306
+            parent: this, // 当前的vue对象
307
+            data: {
308
+              woid: row.F_Id,
309
+              isOut:1
310
+            } // props
311
+          },
312
+          area: ['70%', '72%'],
313
+          title: '出库信息'
314
+        })
315
+        // this.title = '出库'
316
+        // this.dialogFormVisible = true
317
+        // this.F_Id = row.F_Id
318
+        // this.devstate = row.F_DevState
319
+      },
320
+      handleIn(row) {
321
+        this.$layer.iframe({
322
+          content: {
323
+            content: Outku, // 传递的组件对象
324
+            parent: this, // 当前的vue对象
325
+            data: {
326
+              woid: row.F_Id,
327
+              isOut:0
328
+            } // props
329
+          },
330
+          area: ['70%', '72%'],
331
+          title: '入库信息'
332
+        })
333
+        // this.title = '入库'
334
+        // this.dialogFormVisible = true
335
+        // this.F_Id = row.F_Id
336
+        // this.devstate = row.F_DevState
337
+      },
338
+      handlezp(row) {
339
+        this.titleBack = '转派'
340
+        this.dialogDistribution = true
341
+        this.F_Id = row.F_Id
342
+      },
343
+      handlezpfh(row) {
344
+        this.titleBack = '转派(返还)'
345
+        this.dialogDistribution = true
346
+        this.F_Id = row.F_Id
347
+      },
348
+      //出库
349
+      outSure() {
350
+        this.dialogFormVisible = false
351
+        const params = {
352
+          woid: this.F_Id,
353
+          devstate: this.form.devstate,
354
+          devmessage: this.form.devmessage + '|' + this.form.num + '|' + this.form.codes,
355
+          remark: this.form.remark
356
+        }
357
+        if (this.title == '出库') {
358
+          getDevCheckout(params).then(res => {
359
+            if (res.state == 'success') {
360
+              this.$message.success("出库成功")
361
+              this.form = {}
362
+              this.getListTask()
363
+            }
364
+          })
365
+        }
366
+        if (this.title == '入库') {
367
+          const paramsr = {
368
+            woid: this.F_Id,
369
+            devmessage: this.form.devmessage + '|' + this.form.num + '|' + this.form.codes,
370
+            remark: this.form.remark
371
+          }
372
+          getDevStorage(paramsr).then(res => {
373
+            if (res.state == 'success') {
374
+              this.$message.success("入库成功")
375
+              this.form = {}
376
+              this.getListTask()
377
+            }
378
+          })
379
+        }
380
+      },
381
+      //转派
382
+      zpSure() {
383
+        this.dialogDistribution = false
384
+        const params = {
385
+          woid: this.F_Id,
386
+          usercode: this.formzp.usercode,
387
+          username: this.formzp.username,
388
+          phon: this.formzp.phon,
389
+          talkie: this.formzp.talkie,
390
+          remark: this.formzp.remark
391
+        }
392
+        if (this.titleBack == '转派') {
393
+          getAssignTransGo(params).then(res => {
394
+            if (res.state == 'success') {
395
+              this.$message.success("转派成功")
396
+              this.formzp = {}
397
+              this.getListTask()
398
+            }
399
+          })
400
+        } else {
401
+          getAssignTransOut(params).then(res => {
402
+            if (res.state == 'success') {
403
+              this.$message.success("转派(返还)成功")
404
+              this.formzp = {}
405
+              this.getListTask()
406
+            }
407
+          })
408
+        }
409
+
410
+      },
411
+      //转运
412
+      zyWorkOrder(row) {
413
+        const params = {
414
+          woid: row.F_Id
415
+        }
416
+        getSureTransGo(params).then(res => {
417
+          if (res.state == 'success') {
418
+            this.$message.success("转运成功,请尽快处理工单")
419
+            this.getListTask()
420
+          }
421
+        })
422
+      },
423
+      //已送达待返还
424
+      ysdfWorkOrder(row) {
425
+        const params = {
426
+          woid: row.F_Id
427
+        }
428
+        getReceiveWo(params).then(res => {
429
+          if (res.state == 'success') {
430
+            this.$message.success("已送达待返还")
431
+            this.getListTask()
432
+          }
433
+        })
434
+      },
435
+      //返还设备
436
+      fhWorkOrder(row) {
437
+        const params = {
438
+          woid: row.F_Id
439
+        }
440
+        getRebackWo(params).then(res => {
441
+          if (res.state == 'success') {
442
+            this.$message.success("返还")
443
+            this.getListTask()
444
+          }
445
+        })
446
+      },
447
+      //处理返还
448
+      clfhWorkOrder(row) {
449
+        const params = {
450
+          woid: row.F_Id
451
+        }
452
+        getSureTransOut(params).then(res => {
453
+          if (res.state == 'success') {
454
+            this.$message.success("处理返还")
455
+            this.getListTask()
456
+          }
457
+        })
458
+      },
459
+      //完结工单
460
+      handleOver(row) {
461
+        const params = {
462
+          woid: row.F_Id
463
+        }
464
+        getOverorder(params).then(res => {
465
+          if (res.state == 'success') {
466
+            this.$message.success("已完结")
467
+            this.getListTask()
468
+          }
469
+        })
470
+      },
471
+      //异常
472
+      handleBad(row) {
473
+        this.$confirm("确定异常结束吗?", "提示", {
474
+            confirmButtonText: '确定',
475
+            cancelButtonText: '取消',
476
+            type: 'warning'
477
+          }).then(() => {
478
+            const params = {
479
+              woid: row.F_Id
480
+            }
481
+            getAbnormalEnd(params).then(res => {
482
+              if (res.state == 'success') {
483
+                this.$message.success("异常结束成功")
484
+                this.getListTask()
485
+              }
486
+            })
487
+          })
488
+          .catch(() => {
489
+            this.$message('已取消删除')
490
+          })
491
+      },
492
+      noCount() {
493
+        this.dialogNoCount = true
494
+      },
495
+      handleClick(tab, event) {
496
+        this.state = Number(tab.name)
497
+        this.getListTask()
498
+      },
499
+      getWorkOrder() {
500
+        return new Promise((resolve) => {
501
+          getOrderTypeLists().then((res) => {
502
+            this.workOrderType = res.data
503
+          })
504
+          resolve()
505
+        })
506
+      },
507
+      //列表
508
+      getListTask() {
509
+        return new Promise((resolve) => {
510
+          const params = {
511
+            keyword: this.ruleForm.keyword,
512
+            pageindex: this.pageParams.pageindex, // int 第几页
513
+            pagesise: this.pageParams.pagesize, // int 每页几条信息
514
+            state: this.state,
515
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
516
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
517
+            createusercode: localStorage.getItem('storageUsercode')
518
+          }
519
+          getWorkOrderList(params).then((response) => {
520
+            if (response.state.toLowerCase() === 'success') {
521
+              if (response.message === '暂无记录!') {
522
+                this.taskDataLists = []
523
+              } else {
524
+                if (response.total == null) {
525
+                  this.pageParams.total = 0
526
+                } else {
527
+                  this.pageParams.total = response.total
528
+                }
529
+                this.taskDataLists = response.rows
530
+              }
531
+            }
532
+            if (response.message === '暂无记录!') {
533
+              this.taskDataLists = []
534
+            }
535
+          })
536
+          resolve()
537
+        })
538
+      },
539
+      btn_search_task() {
540
+        this.getListTask()
541
+      },
542
+      //添加
543
+      btn_add() {
544
+        this.$layer.iframe({
545
+          content: {
546
+            content: equiAddOrEdit, // 传递的组件对象
547
+            parent: this, // 当前的vue对象
548
+            data: {
549
+              rowid: 0
550
+            } // props
551
+          },
552
+          area: ['60%', '72%'],
553
+          title: '添加工单信息'
554
+        })
555
+      },
556
+      //修改
557
+      btn_edit(id) {
558
+        this.$layer.iframe({
559
+          content: {
560
+            content: equiAddOrEdit, // 传递的组件对象
561
+            parent: this, // 当前的vue对象
562
+            data: {
563
+              rowid: id
564
+            } // props
565
+          },
566
+          area: ['60%', '72%'],
567
+          title: '修改工单信息'
568
+        })
569
+      },
570
+      // 详情
571
+      hadndleOrderCode(ordercode) {
572
+        this.$layer.iframe({
573
+          content: {
574
+            content: equiDetail, // 传递的组件对象
575
+            parent: this, // 当前的vue对象
576
+            data: {
577
+              rowid: ordercode
578
+            } // props
579
+          },
580
+          area: ['80%', '90%'],
581
+          title: '订单详情'
582
+        })
583
+      },
584
+      //删除
585
+      handleDelCode(rowid) {
586
+        this.$confirm("确定删除吗?", "提示", {
587
+            confirmButtonText: '确定',
588
+            cancelButtonText: '取消',
589
+            type: 'warning'
590
+          }).then(() => {
591
+            const params = {
592
+              ids: rowid
593
+            }
594
+            getDelWorkOrder(params).then(res => {
595
+              if (res.state == 'success') {
596
+                this.$message.success("删除成功")
597
+                this.getListTask()
598
+              }
599
+            })
600
+          })
601
+          .catch(() => {
602
+            this.$message('已取消删除')
603
+          })
604
+      },
605
+      getTime(date) {
606
+        var day = Math.floor(new Date().getTime() / 1000) - new Date(date).getTime() / 1000
607
+        var day2 = Math.floor(day / (24 * 3600))
608
+        var day3 = day2 * 24 * 3600
609
+        var day4 = day - day3
610
+        var day5 = Math.floor(day4 / 3600)
611
+        return day5
612
+      }
613
+    }
614
+  }
615
+</script>
616
+
617
+<style rel="stylesheet/scss" scoped>
618
+  /deep/.el-tabs__item {
619
+    width: 185px !important;
620
+    text-align: center;
621
+    font-size: 16px !important;
622
+    font-weight: 600;
623
+  }
624
+
625
+  .el-popper[x-placement^='bottom'] {
626
+    z-index: 10px !important;
627
+  }
628
+
629
+  .operation div {
630
+    font-size: 14px;
631
+    color: #222;
632
+    padding: 5px 0;
633
+    cursor: pointer;
634
+  }
635
+
636
+  .el-icon-s-tools {
637
+    font-size: 18px !important;
638
+    vertical-align: middle;
639
+  }
640
+
641
+  .el-popover {
642
+    min-width: 75px;
643
+    text-align: center;
644
+  }
645
+
646
+  .el-table .cell {
647
+    position: relative;
648
+  }
649
+
650
+  .el {
651
+    cursor: pointer;
652
+  }
653
+
654
+  .filter-container {
655
+    padding-top: 15px;
656
+  }
657
+
658
+  .el-table--mini,
659
+  .el-table--small,
660
+  .el-table__expand-icon {
661
+    font-size: 14px;
662
+  }
663
+
664
+  .el-table--small td,
665
+  .el-table--small th {
666
+    padding: 2px 0 !important;
667
+  }
668
+
669
+  .filter-date {
670
+    width: 388px !important;
671
+  }
672
+
673
+  .el-table {
674
+    color: #000;
675
+  }
676
+</style>

+ 173 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/EquipmentLeasingReport/index.vue

@@ -0,0 +1,173 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-form :inline="true" :model="ruleForm" class="demo-form-inline">
4
+      <el-form-item label="关键字">
5
+        <el-input v-model="ruleForm.keyword" placeholder="输入关键字" size="medium" />
6
+      </el-form-item>
7
+      <el-form-item label="时间范围:">
8
+        <el-col :span="16">
9
+          <el-date-picker v-model="ruleForm.startTime" size="medium" type="daterange" format="yyyy-MM-dd"
10
+            value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
11
+        </el-col>
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" @click="btn_search_task()">查询</el-button>
15
+        <el-button v-permission="'equi_export'" type="primary" @click="btn_export">
16
+          <svg-icon icon-class="daochu" />导出
17
+        </el-button>
18
+      </el-form-item>
19
+    </el-form>
20
+    <el-table :data="rowList" border stripe>
21
+      <el-table-column type="index" label="编号" align="center" fixed width="80" />
22
+      <el-table-column :show-overflow-tooltip="true" prop="F_WorkOrderCode" label="工单编号" align="center" />
23
+      <el-table-column :show-overflow-tooltip="true" prop="F_DealType" label="类型" align="center" />
24
+      <el-table-column :show-overflow-tooltip="true" prop="F_ProposerDeptName" label="申请科室" align="center" />
25
+      <el-table-column :show-overflow-tooltip="true" prop="F_CarryContents" label="内容" align="center" />
26
+      <el-table-column :show-overflow-tooltip="true" prop="F_ControlManName" label="调度人" align="center" />
27
+      <el-table-column :show-overflow-tooltip="true" prop="F_Source" label="上报渠道" align="center" />
28
+      <el-table-column :show-overflow-tooltip="true" prop="F_DeptName" label="上报部门" align="center" />
29
+      <el-table-column :show-overflow-tooltip="true" prop="F_ProposerName" label="上报人" align="center" />
30
+      <el-table-column :show-overflow-tooltip="true" prop="F_CreateTime" label="时间" align="center" />
31
+      <el-table-column :show-overflow-tooltip="true" prop="F_TransferDeptName" label="处理部门" align="center" />
32
+      <el-table-column :show-overflow-tooltip="true" prop="F_HandleByName" label="处理人" align="center" />
33
+      <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="备注" align="center" />
34
+    </el-table>
35
+    <pagination v-show="pageParams.total > 0" :total="pageParams.total" :pageindex.sync="pageParams.pageindex"
36
+      :pagesize.sync="pageParams.pagesize" class="pagination" @pagination="getListTask" />
37
+  </div>
38
+</template>
39
+
40
+<script>
41
+  import {
42
+    getReportList,
43
+    getOrderStateData,
44
+    getListExpt
45
+  } from '@/api/EquipmentLeasing/EquipmentLeasing.js'
46
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
47
+  export default {
48
+    name: 'EquiTableList',
49
+    components: {
50
+      Pagination
51
+    },
52
+    created() {
53
+      this.getListTask()
54
+      this.getOrderStat()
55
+    },
56
+    data() {
57
+      return {
58
+        state:'',
59
+        rowList: [],
60
+        orderstate: [], // 工单状态数据
61
+        ruleForm: {
62
+          startTime: '',
63
+          keyword: ''
64
+        },
65
+        pageParams: {
66
+          pageindex: 1, // 当前第几页
67
+          pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
68
+          total: 0 // 总共多少数据
69
+        }
70
+      }
71
+    },
72
+    methods: {
73
+      getListTask() {
74
+        return new Promise((resolve) => {
75
+          const params = {
76
+            keyword: this.ruleForm.keyword,
77
+            pageindex: this.pageParams.pageindex, // int 第几页
78
+            pagesise: this.pageParams.pagesize, // int 每页几条信息
79
+            state: this.state,
80
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
81
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
82
+          }
83
+          getReportList(params).then((response) => {
84
+            if (response.state.toLowerCase() === 'success') {
85
+              if (response.message === '暂无记录!') {
86
+                this.rowList = []
87
+              } else {
88
+                if (response.total == null) {
89
+                  this.pageParams.total = 0
90
+                } else {
91
+                  this.pageParams.total = response.total
92
+                }
93
+                this.rowList = response.rows
94
+              }
95
+            }
96
+            if (response.message === '暂无记录!') {
97
+              this.rowList = []
98
+            }
99
+          })
100
+          resolve()
101
+        })
102
+      },
103
+      btn_search_task() {
104
+        this.getListTask()
105
+      },
106
+      btn_export() {
107
+        return new Promise(resolve => {
108
+          const params = {
109
+            isdc: 1,
110
+            pageindex: this.pageParams.pageindex, // 第几页
111
+            pagesize: this.pageParams.pagesize, // 每页几条信息
112
+            type: this.orderId,
113
+            state: this.state,
114
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
115
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
116
+            keyword: this.ruleForm.keyword.replace(/\s+/g, '')
117
+          }
118
+          getListExpt(params).then(response => {
119
+            if (response.headers['content-disposition']) {
120
+              const content = response.data
121
+              const blob = new Blob([content])
122
+              // let fileName = '报表数据.xls'
123
+              let fileName = response.headers['content-disposition'].split(';')[1].split('=')[1]
124
+              var explorer = navigator.userAgent
125
+              if (explorer.indexOf('MSIE') >= 0 || explorer.indexOf('Chrome') >= 0) { // IE和google浏览器
126
+                fileName = decodeURIComponent(fileName)
127
+              } else {
128
+                fileName = decodeURI(escape(fileName))
129
+              }
130
+              if ('download' in document.createElement('a')) {
131
+                // 非IE下载
132
+                const elink = document.createElement('a')
133
+                elink.download = fileName
134
+                elink.style.display = 'none'
135
+                elink.href = URL.createObjectURL(blob)
136
+                document.body.appendChild(elink)
137
+                elink.click()
138
+                URL.revokeObjectURL(elink.href) // 释放URL 对象
139
+                document.body.removeChild(elink)
140
+                this.$message.success('恭喜你,文件导出成功!')
141
+              } else {
142
+                // IE10+下载
143
+                navigator.msSaveBlob(blob, fileName)
144
+              }
145
+            } else {
146
+              this.$message.error(response)
147
+            }
148
+          })
149
+          resolve()
150
+        })
151
+      },
152
+      // 工单状态
153
+      getOrderStat() {
154
+        return new Promise((resolve) => {
155
+          const params = {}
156
+          getOrderStateData(params).then((response) => {
157
+            this.loading = false
158
+            if (response) {
159
+              this.orderstate = response
160
+            }
161
+          })
162
+          resolve()
163
+        })
164
+      },
165
+
166
+
167
+    }
168
+
169
+  }
170
+</script>
171
+
172
+<style rel="stylesheet/scss" lang="scss" scoped>
173
+</style>

+ 173 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/components/Outku.vue

@@ -0,0 +1,173 @@
1
+<template>
2
+  <div>
3
+    <el-form ref="ruleForm" :model="ruleForm" label-width="100px">
4
+      <el-col :span="24">
5
+        <el-row>
6
+          <el-form-item label="出库状态:" :label-width="formLabelWidth">
7
+            <el-select v-model="form.devstate" placeholder="请选择">
8
+              <el-option v-for="item in outTypes" :key="item.value" :label="item.label" :value="item.value">
9
+              </el-option>
10
+            </el-select>
11
+          </el-form-item>
12
+        </el-row>
13
+        <el-row v-for="(item,index) in devList" :key="index">
14
+          <el-col :span="6">
15
+            <el-form-item label="设备名称:" :label-width="formLabelWidth" prop="devmessage">
16
+              <el-input style="width: 200px;" v-model="item.devmessage" autocomplete="off"></el-input>
17
+            </el-form-item>
18
+          </el-col>
19
+          <el-col :span="6">
20
+            <el-form-item label="数量:" :label-width="formLabelWidth"  prop="num">
21
+              <el-input-number v-model="item.num" :min="1"></el-input-number>
22
+            </el-form-item>
23
+          </el-col>
24
+          <el-col :span="6">
25
+            <el-form-item label="设备编号:" :label-width="formLabelWidth" prop="codes">
26
+              <el-input style="width: 200px;" placeholder="10001" v-model="item.codes" autocomplete="off"></el-input>
27
+            </el-form-item>
28
+          </el-col>
29
+          <el-col :span="2">
30
+            <el-button type="primary" icon="el-icon-plus" circle @click="addItem()" />
31
+            <el-button type="primary" v-if="devList.length>1" icon="el-icon-close" circle @click="removeItem(index)" />
32
+          </el-col>
33
+        </el-row>
34
+        <el-row>
35
+          <el-col :span="16">
36
+            <el-form-item label="备注" :label-width="formLabelWidth">
37
+              <el-input v-model="form.remark" autocomplete="off"></el-input>
38
+            </el-form-item>
39
+          </el-col>
40
+        </el-row>
41
+        <el-form-item>
42
+          <el-button @click="resetForm">重 置</el-button>
43
+          <el-button type="primary" @click="outSure()">确 定</el-button>
44
+        </el-form-item>
45
+      </el-col>
46
+    </el-form>
47
+  </div>
48
+</template>
49
+
50
+<script>
51
+  import {
52
+    getDevCheckout,
53
+    getDevStorage
54
+  } from '@/api/EquipmentLeasing/EquipmentLeasing.js'
55
+  export default {
56
+    name: 'Outku',
57
+    props: {
58
+      woid: {
59
+        type: Number,
60
+        default: ''
61
+      },
62
+      isOut: {
63
+        type: Number,
64
+        default: ''
65
+      }
66
+    },
67
+    data() {
68
+      return {
69
+        outTypes: [{
70
+            value: 1,
71
+            label: '全部出库'
72
+          }, {
73
+            value: 2,
74
+            label: '部分出库'
75
+          },
76
+          {
77
+            value: 5,
78
+            label: '无库存'
79
+          }
80
+        ],
81
+        // woid:'',
82
+        devList: [{
83
+          devmessage: '',
84
+          num: 1,
85
+          codes: ''
86
+        }],
87
+        form: {},
88
+        ruleForm: {},
89
+        formLabelWidth: '120px',
90
+        resstr:'',
91
+        // isOut:0
92
+
93
+      }
94
+    },
95
+    methods: {
96
+      addItem() {
97
+        const params = {
98
+          devmessage: '',
99
+          num: 1,
100
+          codes: ''
101
+        }
102
+        this.devList.push(params)
103
+      },
104
+      removeItem(index) {
105
+        console.log(index)
106
+        this.devList.splice(index, 1)
107
+      },
108
+      getStr(){
109
+        var str='';
110
+        for (var i = 0; i < this.devList.length; i++) {
111
+          str += this.devList[i].devmessage + '|' + this.devList[i].num + '|' + this.devList[i].codes + ","
112
+          if (str.length > 0) {
113
+            this.resstr=str.substring(0, str.length - 1);
114
+          }
115
+        }
116
+      },
117
+      resetForm() {
118
+        this.form = {}
119
+        this.$refs.ruleForm.resetFields()
120
+        this.devList=[{
121
+          devmessage: '',
122
+          num: 1,
123
+          codes: ''
124
+        }]
125
+      },
126
+      //出库
127
+      outSure() {
128
+        this.getStr()
129
+        const params = {
130
+          woid: this.woid,
131
+          devstate: this.form.devstate,
132
+          devmessage:this.resstr,
133
+          // devmessage: this.form.devmessage + '|' + this.form.num + '|' + this.form.codes,
134
+          remark: this.form.remark
135
+        }
136
+        if (this.isOut == 1) {
137
+          getDevCheckout(params).then(res => {
138
+            if (res.state == 'success') {
139
+              this.fileList = []
140
+              this.$parent.$layer.close(this.layerid)
141
+              this.$parent.getListTask() // 重新加载父级数据
142
+              this.$message.success("出库成功")
143
+              this.form = {}
144
+              // parent.getListTask()
145
+            }
146
+          })
147
+        }
148
+        if (this.isOut != 1) {
149
+          const paramsr = {
150
+            woid: this.woid,
151
+            devmessage:this.resstr,
152
+            // devmessage: this.form.devmessage + '|' + this.form.num + '|' + this.form.codes,
153
+            remark: this.form.remark
154
+          }
155
+          getDevStorage(paramsr).then(res => {
156
+            if (res.state == 'success') {
157
+              this.fileList = []
158
+              this.$parent.$layer.close(this.layerid)
159
+              this.$parent.getListTask() // 重新加载父级数据
160
+              this.$message.success("入库成功")
161
+              this.form = {}
162
+              // parent.getListTask()
163
+            }
164
+          })
165
+        }
166
+      },
167
+    }
168
+
169
+  }
170
+</script>
171
+
172
+<style>
173
+</style>

+ 377 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/components/equiAddOrEdit.vue

@@ -0,0 +1,377 @@
1
+<template>
2
+  <div v-loading="loading">
3
+    <el-form ref="ruleForm" :model="ruleForm" label-width="100px">
4
+      <el-col :span="24">
5
+        <!-- <el-row>
6
+          <el-col :span="8">
7
+            <el-form-item label="工单类别" prop="type">
8
+              <select-order-type :third-order-type="thirdOrderTypeParam" @post-third-order-type="getThirdOrderType" />
9
+            </el-form-item>
10
+          </el-col>
11
+        </el-row> -->
12
+        <el-row>
13
+          <el-col :span="8">
14
+            <el-form-item label="院区" prop="hosname">
15
+              <select-hosname :hospitals-param="hospitalsParam" @post-hospitals="getHospitals" />
16
+            </el-form-item>
17
+          </el-col>
18
+          <el-col :span="8">
19
+            <el-form-item label="科室" prop="deptname">
20
+              <select-departments :departments-param="departmentsParam" @post-departments="getDepartments" />
21
+            </el-form-item>
22
+          </el-col>
23
+          <el-col :span="8">
24
+            <el-form-item label="申请人" prop="username">
25
+              <select-repairman :repairman-param="repairmanParam" @post-repairman="getRepairman" />
26
+            </el-form-item>
27
+          </el-col>
28
+        </el-row>
29
+        <el-row>
30
+          <el-col :span="8">
31
+            <el-form-item label="联系电话" prop="phon">
32
+              <el-input v-model="ruleForm.phon" placeholder="请输入联系电话" />
33
+            </el-form-item>
34
+          </el-col>
35
+          <!-- <el-col :span="16">
36
+            <el-form-item label="设备信息" prop="devmessages">
37
+              <el-input v-model="ruleForm.devmessages" placeholder="请输入设备信息" />
38
+            </el-form-item>
39
+          </el-col> -->
40
+        </el-row>
41
+        <el-row v-for="(item,index) in devList" :key="index">
42
+          <el-col :span="8">
43
+            <el-form-item label="设备名称" prop="devname">
44
+              <el-input v-model="item.devname" autocomplete="off"></el-input>
45
+            </el-form-item>
46
+          </el-col>
47
+          <el-col :span="8">
48
+            <el-form-item label="数量" prop="num">
49
+              <el-input-number v-model="item.num" :min="1"></el-input-number>
50
+            </el-form-item>
51
+          </el-col>
52
+          <el-col :span="6">
53
+            <el-button type="primary" icon="el-icon-plus" circle @click="addItem()" />
54
+            <el-button type="primary" v-if="devList.length>1" icon="el-icon-close" circle @click="removeItem(index)" />
55
+          </el-col>
56
+        </el-row>
57
+        <el-row>
58
+          <el-col :span="16">
59
+            <el-form-item label="备注" prop="remark">
60
+              <el-input v-model="ruleForm.remark" type="textarea" placeholder="请输入备注" />
61
+            </el-form-item>
62
+          </el-col>
63
+        </el-row>
64
+        <el-form-item>
65
+          <el-button type="primary" @click="submitForm">保存</el-button>
66
+          <el-button @click="resetForm">重置</el-button>
67
+        </el-form-item>
68
+      </el-col>
69
+    </el-form>
70
+  </div>
71
+</template>
72
+
73
+<script>
74
+  import {
75
+    getModelDetail,
76
+    getAddWorkOrder,
77
+    getUpdateWorkOrder
78
+  } from '@/api/EquipmentLeasing/EquipmentLeasing'
79
+  import {
80
+    getWorkOrderGetDept,
81
+    UploadImage64
82
+  } from '@/api/commonAPI'
83
+
84
+
85
+  export default {
86
+    name: 'equiAddOrEdit',
87
+    props: {
88
+      rowid: {
89
+        type: Number,
90
+        default: ''
91
+      },
92
+      rowdata: {
93
+        type: Object,
94
+        default () {
95
+          return {}
96
+        }
97
+      },
98
+      typeid: {
99
+        type: Number,
100
+        default: 0
101
+      },
102
+      layerid: {
103
+        type: String,
104
+        default: ''
105
+      },
106
+      orderTypeData: {
107
+        type: Object,
108
+        default () {
109
+          return {}
110
+        }
111
+      }
112
+    },
113
+    data() {
114
+      return {
115
+        positonList: [],
116
+        hospitalsId: 0,
117
+        hospitalsParam: {
118
+          id: 0,
119
+          name: ''
120
+        },
121
+        departmentsParam: {
122
+          id: 0,
123
+          name: ''
124
+        },
125
+        positonParam: {
126
+          id: 1
127
+        },
128
+        repairmanParam: {
129
+          id: 0,
130
+          name: ''
131
+        },
132
+        ruleForm: {
133
+          // callid: '',
134
+          // type: '', // 工单类别
135
+          hosid: '', // 院区id
136
+          hosname: '', // 院区id
137
+          // source: '电话',
138
+          deptid: '', // 申请科室id
139
+          deptname: '', // 申请科室名称
140
+          usercode: '', // 申请人编码
141
+          orthertype: '',
142
+          orthertypeName: '',
143
+          devmessages: '',
144
+          // isthird: 1,
145
+          username: '', //	申请人
146
+          phon: '', //	联系电话
147
+          remark: '' //	备注
148
+        },
149
+        fileList: [],
150
+        devList: [{
151
+          devname: '',
152
+          num: 1
153
+        }],
154
+        resstr: '',
155
+        headers: {
156
+          Authorization: localStorage.getItem('Admin-Token')
157
+        },
158
+        loading: false
159
+      }
160
+    },
161
+    watch: {
162
+      'orderTypeData.F_Type2': function() {
163
+        // console.log(this.orderTypeData.F_Type2)
164
+      }
165
+    },
166
+    created() {
167
+      if (this.rowid) {
168
+        this.ruleForm.id = this.rowid
169
+        this.getDetail(this.rowid)
170
+      }
171
+      if (JSON.stringify(this.orderTypeData) === '{}') {
172
+        this.ruleForm.source = ''
173
+      }
174
+      this.getPositon()
175
+    },
176
+    methods: {
177
+      addItem() {
178
+        const params = {
179
+          devname: '',
180
+          num: 1
181
+        }
182
+        this.devList.push(params)
183
+      },
184
+      removeItem(index) {
185
+        console.log(index)
186
+        this.devList.splice(index, 1)
187
+      },
188
+      getStr() {
189
+        var str = '';
190
+        for (var i = 0; i < this.devList.length; i++) {
191
+          str += this.devList[i].devname + ':' + this.devList[i].num + ","
192
+          if (str.length > 0) {
193
+            this.resstr = str.substring(0, str.length - 1);
194
+          }
195
+        }
196
+      },
197
+      submitForm() {
198
+        // this.getItemessage()
199
+        this.getStr()
200
+        console.log(this.ruleForm)
201
+        this.$refs.ruleForm.validate((valid) => {
202
+          if (valid) {
203
+            this.loading = true
204
+            const datas = {
205
+              hosid: this.ruleForm.hosid, //	院区id
206
+              deptid: this.ruleForm.deptid, //	申请科室id
207
+              usercode: this.ruleForm.usercode, //	申请人编码
208
+              username: this.ruleForm.username, //	申请人
209
+              phon: this.ruleForm.phon, //	联系电话
210
+              devmessages: this.resstr, //设备信息
211
+              remark: this.ruleForm.remark //	备注
212
+            }
213
+            // 添加
214
+            if (!this.rowid) {
215
+              getAddWorkOrder(datas).then(response => {
216
+                this.loading = false
217
+                if (response.state.toLowerCase() === 'success') {
218
+                  if (this.layerid) {
219
+                    this.$parent.$layer.close(this.layerid)
220
+                    this.$parent.getListTask() // 重新加载父级数据
221
+                  }
222
+                  this.fileList = []
223
+                  this.resetForm()
224
+                  this.$message.success('恭喜你,添加成功!')
225
+                }
226
+              }).catch(() => {
227
+                this.loading = false
228
+              })
229
+            } else {
230
+              // 编辑
231
+              const datas = {
232
+                woid: this.rowid,
233
+                hosid: this.ruleForm.hosid, //	院区id
234
+                deptid: this.ruleForm.deptid, //	申请科室id
235
+                usercode: this.ruleForm.usercode, //	申请人编码
236
+                username: this.ruleForm.username, //	申请人
237
+                phon: this.ruleForm.phon, //	联系电话
238
+                devmessages: this.resstr, //设备信息
239
+                remark: this.ruleForm.remark //	备注
240
+              }
241
+              console.log(this.rowdata)
242
+              getUpdateWorkOrder(datas).then(response => {
243
+                this.loading = false
244
+                if (response.state.toLowerCase() === 'success') {
245
+                  this.fileList = []
246
+                  this.$parent.$layer.close(this.layerid)
247
+                  this.$parent.getListTask() // 重新加载父级数据
248
+                  this.$message.success('恭喜你,编辑成功!')
249
+                }
250
+              }).catch(() => {
251
+                this.loading = false
252
+              })
253
+            }
254
+          } else {
255
+            this.$message.error('请输入有效的必填项信息!')
256
+            return false
257
+          }
258
+        })
259
+      },
260
+      handle_success(res) {
261
+        this.imgId = res.data
262
+      },
263
+      resetForm() {
264
+        this.$refs.ruleForm.resetFields()
265
+        this.devList=[{
266
+          devname: '',
267
+          num: 1
268
+        }]
269
+
270
+      },
271
+      // 三级改变时触发
272
+      getThirdOrderType(data) {
273
+        console.log(data)
274
+        this.ruleForm.orthertype = data.value
275
+        this.ruleForm.orthertypeName = data.name
276
+      },
277
+      // 院区下拉改变事件
278
+      getHospitals(data) {
279
+        this.ruleForm.hosid = data.value
280
+        this.ruleForm.hosname = data.name
281
+        console.log(data)
282
+        // this.getDepartment()
283
+      },
284
+      // 科室下拉改变事件
285
+      getDepartments(data) {
286
+        console.log(data)
287
+        this.ruleForm.deptid = data.value
288
+        this.ruleForm.deptname = data.name
289
+      },
290
+      getRepairman(data) {
291
+        console.log(data)
292
+        this.ruleForm.usercode = data.value
293
+        this.ruleForm.username = data.name
294
+      },
295
+      getPositonList(data) {
296
+        console.log(data)
297
+        this.item.delivered
298
+      },
299
+      // 科室
300
+      getPositon() {
301
+        const params = {
302
+          HosId: 1 // 字典管理的工单标识
303
+        }
304
+        return new Promise((resolve) => {
305
+          getWorkOrderGetDept(params).then((res) => {
306
+            this.positonList = res.rows
307
+          })
308
+          resolve()
309
+        })
310
+      },
311
+      // 获取详情
312
+      getDetail(rid) {
313
+        this.devList = []
314
+        const params = {
315
+          id: rid
316
+        }
317
+        getModelDetail(params).then(response => {
318
+          if (response.state.toLowerCase() === 'success') {
319
+            const res = response.model
320
+            this.ruleForm.hosid = res.F_HosId
321
+            this.ruleForm.hosname = res.HosName
322
+            this.ruleForm.deptid = res.F_ProposerDeptId
323
+            this.ruleForm.deptname = res.F_ProposerDeptName
324
+            this.ruleForm.usercode = res.F_ProposerCode
325
+            this.ruleForm.username = res.F_ProposerName
326
+            this.ruleForm.phon = res.F_ProposerPhon
327
+            this.ruleForm.devmessages = res.F_CarryContents
328
+            this.ruleForm.remark = res.F_Remark
329
+
330
+            this.hospitalsParam.id = res.F_HosId
331
+            this.hospitalsParam.name = res.HosName
332
+            this.departmentsParam.id = res.F_ProposerDeptId
333
+            this.departmentsParam.name = res.F_ProposerDeptName
334
+            this.repairmanParam.id = res.F_ProposerCode
335
+            this.repairmanParam.name = res.F_ProposerName
336
+
337
+            var strarr = res.F_CarryContents.split(",")
338
+            for (var i = 0; i < strarr.length; i++) {
339
+              this.devList.push({
340
+                devname: strarr[i].split(":")[0],
341
+                num: strarr[i].split(":")[1]
342
+              })
343
+            }
344
+
345
+          }
346
+        })
347
+      }
348
+    }
349
+  }
350
+</script>
351
+
352
+<style rel="stylesheet/scss" lang="scss" scoped>
353
+  .btnPlus {
354
+    margin: 5px 0px 5px 20px;
355
+  }
356
+
357
+  .inputNumber {
358
+    height: 45px;
359
+  }
360
+
361
+  .avatar-uploader-icon {
362
+    font-size: 28px;
363
+    color: #8c939d;
364
+    width: 148px;
365
+    height: 148px;
366
+    line-height: 178px;
367
+    text-align: center;
368
+  }
369
+
370
+  /deep/.el-upload {
371
+    border: 1px dashed #d9d9d9;
372
+    border-radius: 6px;
373
+    cursor: pointer;
374
+    position: relative;
375
+    overflow: hidden;
376
+  }
377
+</style>

+ 314 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/components/equiDetail.vue

@@ -0,0 +1,314 @@
1
+<template>
2
+  <div class="order_detail">
3
+    <el-row :gutter="20">
4
+      <el-col :md="24" class="order_detail_body">
5
+        <el-card shadow="hover">
6
+          <el-col :md="21">
7
+            <h1 class="title">
8
+              <svg-icon class="title_icon" icon-class="hongqi" />工单单号:{{ orderDetailData.F_WorkOrderCode }}
9
+            </h1>
10
+          </el-col>
11
+          <el-col :md="24" class="order_detail_content">
12
+            <el-col :md="6" class="order_detail_item"> 工单状态:{{ orderDetailData.F_Wostate }} </el-col>
13
+            <el-col :md="6" class="order_detail_item"> 来源:{{ orderDetailData.F_Source }} </el-col>
14
+            <el-col :md="6" class="order_detail_item"> 院区:{{ orderDetailData.HosName }} </el-col>
15
+            <el-col :md="6" class="order_detail_item"> 科室:{{ orderDetailData.F_ProposerDeptName }} </el-col>
16
+            <el-col :md="6" class="order_detail_item"> 申请人:{{ orderDetailData.F_ProposerName }} </el-col>
17
+            <el-col :md="6" class="order_detail_item"> 联系电话:{{ orderDetailData.F_ProposerPhon }} </el-col>
18
+            <el-col :md="6" class="order_detail_item">配送信息:{{ orderDetailData.F_ItemContents }} </el-col>
19
+            <el-col :md="6" class="order_detail_item"> 备注:{{ orderDetailData.F_Remark }} </el-col>
20
+          </el-col>
21
+        </el-card>
22
+      </el-col>
23
+    </el-row>
24
+    <el-row :gutter="20">
25
+      <el-col :md="24" class="order_detail_body">
26
+        <el-card shadow="hover">
27
+          <el-col :md="21">
28
+            <h1 class="title">工单流转</h1>
29
+          </el-col>
30
+
31
+          <el-table :data="workOrderCirculationList" border stripe row-key="F_Id">
32
+            <el-table-column prop="F_CreateUser" label="创建人" align="center" min-width />
33
+            <el-table-column prop="F_CreateTime" label="创建时间" align="center" min-width />
34
+            <el-table-column prop="F_NextDeptName" label="申请科室" align="center" min-width />
35
+            <el-table-column prop="F_NextUserName" label="姓名" align="center" min-width />
36
+            <el-table-column prop="F_NexUserPhon" label="联系方式" align="center" min-width />
37
+            <el-table-column prop="F_OptContent" label="设备名称和数量" align="center" min-width />
38
+          </el-table>
39
+
40
+        </el-card>
41
+      </el-col>
42
+    </el-row>
43
+  </div>
44
+</template>
45
+
46
+<script>
47
+  import {
48
+    mapGetters
49
+  } from 'vuex'
50
+  import {
51
+    getModelDetail
52
+  } from '@/api/EquipmentLeasing/EquipmentLeasing.js'
53
+  import {
54
+    getDeatil,
55
+    GetOrderItem
56
+  } from '@/api/comDispatch/muterDistribute'
57
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
58
+
59
+  export default {
60
+    name: 'Detail',
61
+    components: {
62
+      Pagination
63
+    },
64
+    props: {
65
+      rowid: {
66
+        type: Number,
67
+        default: 0
68
+      },
69
+      layerid: {
70
+        type: String,
71
+        default: ''
72
+      }
73
+    },
74
+    data() {
75
+      return {
76
+        activeName: 'first',
77
+        imgUrl: this.$store.getters.serverConfig.BASE_API,
78
+        orderDetailData: {
79
+          F_CallID: '',
80
+          F_WorkOrderCode: '',
81
+          F_Type: '',
82
+          F_Id: '',
83
+          F_Source: '', // 来源
84
+          HosName: '', // 院区
85
+          F_ProposerDeptName: '', // 科室
86
+          F_ProposerName: '', // 申请人
87
+          F_ProposerPhon: '', // 联系电话
88
+          F_ItemContents: '', // 配送信息
89
+          F_Islarge: '', // 大小件搬家
90
+          F_CarryTime: '', // 搬运时间
91
+          F_DisNum: '', // 红处方数量
92
+          RedPic: [], // 图片
93
+          F_Remark: '' // 备注
94
+        },
95
+        workOrderCirculationList: [] // 工单流转
96
+      }
97
+    },
98
+    computed: {
99
+      ...mapGetters(['rolecode'])
100
+    },
101
+    created() {
102
+      if (this.rowid) {
103
+        this.getDetail(this.rowid)
104
+        // this.getItem()
105
+      }
106
+    },
107
+    methods: {
108
+      handleClick(tab, event) {
109
+        console.log(tab, event)
110
+      },
111
+      // 详情
112
+      getDetail(rid) {
113
+        const params={
114
+          id:rid
115
+        }
116
+        getModelDetail(params).then((response) => {
117
+          const res = response.model
118
+          this.orderDetailData.F_Id = res.F_Id
119
+          this.orderDetailData.F_Wostate = res.F_Wostate
120
+          this.orderDetailData.F_WorkOrderCode = res.F_WorkOrderCode
121
+          this.orderDetailData.F_Source = res.F_Source // 来源
122
+          this.orderDetailData.HosName = res.HosName // 院区
123
+          this.orderDetailData.F_ProposerDeptName = res.F_ProposerDeptName // 科室
124
+          this.orderDetailData.F_ProposerName = res.F_ProposerName // 申请人
125
+          this.orderDetailData.F_ProposerPhon = res.F_ProposerPhon // 联系电话
126
+          this.orderDetailData.F_ItemContents = res.F_CarryContents // 配送信息
127
+          this.orderDetailData.F_Type = res.F_Type // 工单类型
128
+          this.orderDetailData.F_Remark = res.F_Remark // 备注
129
+          this.workOrderCirculationList = response.itemlist // 配送信息
130
+        })
131
+      },
132
+      // 老字符串
133
+      stringAddArray(addStr, oldStr) {
134
+        for (let index = 0; index < oldStr.length; index++) {
135
+          const element = oldStr[index]
136
+          this.orderDetailData.RedPic.push(addStr + element)
137
+        }
138
+      }
139
+
140
+    }
141
+  }
142
+</script>
143
+
144
+<style rel="stylesheet/scss" lang="scss">
145
+  .order_detail {
146
+    .el-col {
147
+      margin-bottom: 20px;
148
+    }
149
+
150
+    .el-icon-time {
151
+      color: #d81e06;
152
+    }
153
+
154
+    .el-card__header {
155
+      padding-top: 14px;
156
+      padding-bottom: 14px;
157
+      background-color: #f5f5f6;
158
+    }
159
+
160
+    .order_file {
161
+      .el-card__body {
162
+        padding: 22px 0 0 0;
163
+        text-align: center;
164
+      }
165
+    }
166
+
167
+    .order_steps {
168
+      .el-step__icon-inner {
169
+        display: none;
170
+      }
171
+    }
172
+
173
+    .order_record {
174
+      .el-card__body {
175
+        padding: 0;
176
+      }
177
+
178
+      .el-tabs__header {
179
+        padding: 0px 20px;
180
+        background-color: #f5f5f6;
181
+
182
+        .el-tabs__item {
183
+          font-size: 16px;
184
+          height: 47px;
185
+          line-height: 47px;
186
+        }
187
+      }
188
+    }
189
+  }
190
+</style>
191
+
192
+<style rel="stylesheet/scss" lang="scss" scoped>
193
+  .order_detail {
194
+    .order_detail_body {
195
+      margin-bottom: 20px;
196
+
197
+      .round_img {
198
+        width: 90px;
199
+        height: 90px;
200
+        border-radius: 50%;
201
+        overflow: hidden;
202
+        margin: 14px;
203
+
204
+        img {
205
+          width: 100%;
206
+          height: 100%;
207
+        }
208
+      }
209
+
210
+      .title {
211
+        font-size: 20px;
212
+
213
+        .title_icon {
214
+          color: #d81e06;
215
+          font-size: 16px;
216
+          margin-right: 20px;
217
+        }
218
+      }
219
+
220
+      .title_sub {
221
+        font-size: 14px;
222
+        color: #666666;
223
+      }
224
+
225
+      .order_detail_content {
226
+        background-color: #f5f5f6;
227
+        padding-top: 20px;
228
+        color: #4c4c4c;
229
+        font-size: 14px;
230
+
231
+        .order_detail_item {
232
+          margin-bottom: 10px;
233
+
234
+          .order_content {
235
+            margin-top: 10px;
236
+          }
237
+
238
+          .order_file {
239
+            position: relative;
240
+            cursor: pointer;
241
+
242
+            .img_mask {
243
+              display: none;
244
+              position: absolute;
245
+              left: 0px;
246
+              top: 0px;
247
+              background-color: rgba(0, 0, 0, 0.3);
248
+              width: 100%;
249
+              height: 22px;
250
+              text-align: right;
251
+              z-index: 1;
252
+
253
+              i {
254
+                font-size: 20px;
255
+                line-height: 22px;
256
+                display: inline-block;
257
+                margin-right: 15px;
258
+                color: #fff;
259
+              }
260
+            }
261
+
262
+            p {
263
+              margin-top: 5px;
264
+              padding-left: 14px;
265
+              padding-right: 14px;
266
+              white-space: nowrap;
267
+              overflow: hidden;
268
+              text-overflow: ellipsis;
269
+            }
270
+
271
+            .file_icon {
272
+              height: 68px;
273
+              line-height: 68px;
274
+              font-size: 68px;
275
+              color: #409eff;
276
+            }
277
+          }
278
+
279
+          .order_file:hover .img_mask {
280
+            display: block;
281
+          }
282
+        }
283
+      }
284
+    }
285
+
286
+    .green {
287
+      color: #00c1de;
288
+    }
289
+
290
+    .done {
291
+      color: #198120;
292
+    }
293
+
294
+    .red {
295
+      color: #d81e06;
296
+    }
297
+
298
+    .yellow {
299
+      color: #e6a23c;
300
+    }
301
+
302
+    .order_steps {
303
+
304
+      // height: 240px;
305
+      .el-step__icon-inner {
306
+        display: none;
307
+      }
308
+    }
309
+
310
+    .tab_body {
311
+      padding: 0 20px 20px 20px;
312
+    }
313
+  }
314
+</style>

+ 7 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/EquipmentLeasing/index.vue

@@ -0,0 +1,7 @@
1
+<template>
2
+  <div>
3
+    <keep-alive>
4
+      <router-view />
5
+    </keep-alive>
6
+  </div>
7
+</template>

+ 498 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/EscortserviceList/index.vue

@@ -0,0 +1,498 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-row :gutter="20">
4
+      <el-col :md="24">
5
+        <el-form :inline="true" :model="ruleForm" class="demo-form-inline">
6
+          <el-form-item label="关键字">
7
+            <el-input v-model="ruleForm.keyword" placeholder="输入关键字" size="medium" />
8
+          </el-form-item>
9
+          <el-form-item label="时间范围:">
10
+            <el-col :span="16">
11
+              <el-date-picker v-model="ruleForm.startTime" size="medium" type="daterange" format="yyyy-MM-dd"
12
+                value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
13
+            </el-col>
14
+          </el-form-item>
15
+          <el-form-item>
16
+            <el-button type="primary" size="medium" @click="btn_search_task">查询</el-button>
17
+            <el-button type="primary" size="medium" @click="btn_add">添加工单</el-button>
18
+            <el-button v-if="selectArr.length>0" type="primary" size="medium" @click="handleDelCode()">删除工单</el-button>
19
+          </el-form-item>
20
+        </el-form>
21
+        <!-- <el-tabs v-if="isRoot==0" v-model="activeName" @tab-click="handleClick">
22
+          <el-tab-pane label="全部" name="-1" />
23
+          <el-tab-pane label="待派工" name="0" />
24
+          <el-tab-pane label="待查收" name="1" />
25
+          <el-tab-pane label="待到达" name="2" />
26
+          <el-tab-pane label="陪检中" name="4" />
27
+          <el-tab-pane label="已完成" name="10" />
28
+        </el-tabs> -->
29
+        <tab-order-state :order-id="orderId"  @post-order-id="getOrderId"/>
30
+        <el-table ref="multipleTable" :data="taskDataLists" border stripe @selection-change="handleSelectionChange">
31
+          <el-table-column type="selection" width="55">
32
+          </el-table-column>
33
+          <el-table-column prop="F_WorkOrderCode" label="工单编号" align="center" min-width="110">
34
+            <template slot-scope="scope">
35
+              <el-button type="text" @click="hadndleOrderCode(scope.row.F_Id)" size="small">
36
+                {{scope.row.F_WorkOrderCode}}
37
+              </el-button>
38
+            </template>
39
+          </el-table-column>
40
+          <el-table-column prop="F_ProposerDeptName" label="申请科室" align="center" min-width />
41
+          <el-table-column prop="F_Source" label="渠道来源" align="center" min-width />
42
+          <el-table-column prop="F_Wostate" label="工单状态" align="center" min-width />
43
+          <el-table-column prop="F_ProposerPhon" label="电话号码" align="center" min-width />
44
+          <el-table-column prop="F_PatientName" label="患者信息" align="center" min-width />
45
+          <el-table-column prop="F_CheckItem" label="检查项目" align="center" min-width />
46
+          <el-table-column prop="F_InspectionTime" label="陪检时间" align="center" min-width />
47
+          <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="备注" align="center" min-width />
48
+          <el-table-column label="操作" width="160" align="center" class-name="oparate_btn" fixed="right">
49
+            <template slot-scope="scope">
50
+              <el-button type="text" @click="btn_edit(scope.row.F_Id)">修改</el-button>
51
+              <el-button v-if="scope.row.F_State==0" type="text" @click="handleOut(scope.row.F_Id)">转派</el-button>
52
+              <el-button v-if="scope.row.F_State==1" type="text" @click="btn_Surewo(scope.row)">查收</el-button>
53
+              <el-button v-if="scope.row.F_State==2" type="text" @click="btn_Arrivewo(scope.row)">已到达</el-button>
54
+              <el-button v-if="scope.row.F_State==3" type="text" @click="btn_Companywo(scope.row)">陪检</el-button>
55
+              <el-button v-if="scope.row.F_State==4" type="text" @click="btn_DealBooldWo(scope.row)">待处理</el-button>
56
+              <el-button v-if="scope.row.F_State==6" type="text" @click="btn_CompleteWo(scope.row)">已完成</el-button>
57
+              <el-button v-if="scope.row.F_State==10" type="text" @click="btn_Overwo(scope.row)">完结</el-button>
58
+            </template>
59
+          </el-table-column>
60
+        </el-table>
61
+        <pagination v-show="pageParams.total > 0" :total="pageParams.total" :pageindex.sync="pageParams.pageindex"
62
+          :pagesize.sync="pageParams.pagesize" class="pagination" @pagination="getListTask" />
63
+      </el-col>
64
+    </el-row>
65
+    <el-dialog title="完结工单" :visible.sync="dialogOverorder" width="40%">
66
+      <el-form :model="formover">
67
+        <el-form-item label="确认人" prop="sureman" :label-width="formLabelWidth">
68
+          <select-repairman :repairman-param="repairmanParam" @post-repairman="getRepairman" />
69
+        </el-form-item>
70
+        <el-form-item label="电话" :label-width="formLabelWidth">
71
+          <el-input v-model="formover.phon" autocomplete="off"></el-input>
72
+        </el-form-item>
73
+        <el-form-item label="对讲机" :label-width="formLabelWidth">
74
+          <el-input v-model="formover.talkie" autocomplete="off"></el-input>
75
+        </el-form-item>
76
+      </el-form>
77
+      <div slot="footer" class="dialog-footer">
78
+        <el-button @click="dialogOverorder = false">取 消</el-button>
79
+        <el-button type="primary" @click="handleOver()">确 定</el-button>
80
+      </div>
81
+    </el-dialog>
82
+  </div>
83
+</template>
84
+
85
+<script>
86
+  import {
87
+    getWorkOrderList,
88
+    getOrderStateData,
89
+    getDelWorkOrder,
90
+    getOverorder,
91
+    getSureWo,
92
+    getArriveWo,
93
+    getCompanyWo,
94
+    getDealBooldWo,
95
+    getCompleteWo,
96
+    getAssignWo
97
+  } from '@/api/Escortservice/Escortservice.js'
98
+  import {
99
+    getOrderTypeLists
100
+  } from '@/api/systemSetup/roleSetting/orderTypeManage'
101
+  import escortAddOrEdit from '../components/escortAddOrEdit.vue'
102
+  import escortOut from '../components/escortOut.vue'
103
+  import escortDetail from '../components/escortDetail.vue'
104
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
105
+  import TabOrderState from '@/components/context/TabOrderState'
106
+  export default {
107
+    name: 'EscortserviceList',
108
+    components: {
109
+      Pagination,
110
+      TabOrderState
111
+    },
112
+    data() {
113
+      return {
114
+        orderId:2008,
115
+        dialogOverorder: false,
116
+        dialogOutorder: false,
117
+        formLabelWidth: '120px',
118
+        title: '',
119
+        titleBack: '',
120
+        form: {
121
+          num: 1
122
+        },
123
+        formover: {},
124
+        isRoot: '',
125
+        devList: [{
126
+          devmessage: '',
127
+          num: 1,
128
+          codes: ''
129
+        }],
130
+        activeName: '-1', // tabs标签
131
+        departments: [], // 科室
132
+        workOrderType: [], // 工单类型
133
+        orderstate: [], // 工单状态数据
134
+        ruleForm: {
135
+          keyword: '',
136
+          startTime: '', // 开始时间
137
+          endTime: '', // 结束时间
138
+          T_Worepairdeptid: '', // 科室id
139
+          T_Wowocodetype: '', // 工单类型
140
+          T_Worepairman: '', // 姓名
141
+          T_Worepairmanphone: '' // 电话
142
+        },
143
+        outTypes: [{
144
+            value: 1,
145
+            label: '全部出库'
146
+          }, {
147
+            value: 2,
148
+            label: '部分出库'
149
+          },
150
+          {
151
+            value: 5,
152
+            label: '无库存'
153
+          }
154
+        ],
155
+        pageParams: {
156
+          pageindex: 1, // 当前第几页
157
+          pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
158
+          total: 0 // 总共多少数据
159
+        },
160
+        repairmanParam: {
161
+          id: 0,
162
+          name: ''
163
+        },
164
+        taskDataLists: [], // 工单列表信息
165
+        F_Id: '', //工单id
166
+        state: -1, // 状态
167
+        selectArr: [],
168
+        ids: [],
169
+        idstr:''
170
+      }
171
+    },
172
+    computed: {},
173
+    created() {
174
+      this.getListTask() // 工单列表
175
+      // this.getDepartment() // 科室
176
+      this.getWorkOrder() // 工单类型
177
+      this.getOrderStat() //工单状态
178
+      if (localStorage.getItem('roleName') == "管理员") {
179
+        this.isRoot = 0
180
+      }
181
+      document.onkeyup = (e) => {
182
+        if (e.keyCode === 13) {
183
+          this.getListTask()
184
+        }
185
+      }
186
+    },
187
+    mounted() {
188
+      setInterval(this.getListTask, 1000 * 60)
189
+    },
190
+    methods: {
191
+      getOrderId(data){
192
+        this.state = data
193
+        this.getListTask()
194
+      },
195
+      // 工单状态
196
+      getOrderStat() {
197
+        return new Promise((resolve) => {
198
+          const params = {}
199
+          getOrderStateData(params).then((response) => {
200
+            this.loading = false
201
+            if (response) {
202
+              this.orderstate = response
203
+            }
204
+          })
205
+          resolve()
206
+        })
207
+      },
208
+      handleSelectionChange(val) {
209
+        this.selectArr = val;
210
+        this.ids=[]
211
+        // this.idstr=''
212
+        for (var i = 0; i < this.selectArr.length; i++) {
213
+          this.ids.push(this.selectArr[i].F_Id)
214
+        }
215
+      },
216
+      //配送人
217
+      getRepairman(data) {
218
+        console.log(data)
219
+        this.formover.usercode = data.value
220
+        this.formover.username = data.name
221
+      },
222
+      //查收
223
+      btn_Surewo(row) {
224
+        const params = {
225
+          woid: row.F_Id
226
+        }
227
+        getSureWo(params).then(res => {
228
+          if (res.state == 'success') {
229
+            this.$message.success("已查收")
230
+            this.getListTask()
231
+          }
232
+        })
233
+      },
234
+      //已到达
235
+      btn_Arrivewo(row) {
236
+        const params = {
237
+          woid: row.F_Id
238
+        }
239
+        getArriveWo(params).then(res => {
240
+          if (res.state == 'success') {
241
+            this.$message.success("已到达")
242
+            this.getListTask()
243
+          }
244
+        })
245
+      },
246
+      //陪检
247
+      btn_Companywo(row) {
248
+        const params = {
249
+          woid: row.F_Id
250
+        }
251
+        getCompanyWo(params).then(res => {
252
+          if (res.state == 'success') {
253
+            this.$message.success("陪检")
254
+            this.getListTask()
255
+          }
256
+        })
257
+      },
258
+      //处理
259
+      btn_DealBooldWo(row) {
260
+        const params = {
261
+          woid: row.F_Id
262
+        }
263
+        getDealBooldWo(params).then(res => {
264
+          if (res.state == 'success') {
265
+            this.$message.success("处理")
266
+            this.getListTask()
267
+          }
268
+        })
269
+      },
270
+      //已完成
271
+      btn_CompleteWo(row) {
272
+        const params = {
273
+          woid: row.F_Id
274
+        }
275
+        getCompleteWo(params).then(res => {
276
+          if (res.state == 'success') {
277
+            this.$message.success("已完成")
278
+            this.getListTask()
279
+          }
280
+        })
281
+      },
282
+      //完结工单
283
+      btn_Overwo(row) {
284
+        this.dialogOverorder = true
285
+        this.F_Id = row.F_Id
286
+      },
287
+      handleOver() {
288
+        const params = {
289
+          woid: this.F_Id,
290
+          sureman: this.formover.username,
291
+          phon: this.formover.phon,
292
+          talkie: this.formover.talkie
293
+        }
294
+        getOverorder(params).then(res => {
295
+          if (res.state == 'success') {
296
+            this.$message.success("已完结")
297
+            this.getListTask()
298
+          }
299
+        })
300
+      },
301
+      handleClick(tab, event) {
302
+        this.state = Number(tab.name)
303
+        this.getListTask()
304
+      },
305
+      getWorkOrder() {
306
+        return new Promise((resolve) => {
307
+          getOrderTypeLists().then((res) => {
308
+            this.workOrderType = res.data
309
+          })
310
+          resolve()
311
+        })
312
+      },
313
+      //列表
314
+      getListTask() {
315
+        return new Promise((resolve) => {
316
+          const params = {
317
+            keyword: this.ruleForm.keyword,
318
+            type: 2008,
319
+            pageindex: this.pageParams.pageindex, // int 第几页
320
+            pagesise: this.pageParams.pagesize, // int 每页几条信息
321
+            state: this.state,
322
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
323
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
324
+            createusercode: localStorage.getItem('storageUsercode')
325
+          }
326
+          getWorkOrderList(params).then((response) => {
327
+            if (response.state.toLowerCase() === 'success') {
328
+              if (response.message === '暂无记录!') {
329
+                this.taskDataLists = []
330
+              } else {
331
+                if (response.total == null) {
332
+                  this.pageParams.total = 0
333
+                } else {
334
+                  this.pageParams.total = response.total
335
+                }
336
+                this.taskDataLists = response.rows
337
+              }
338
+            }
339
+            if (response.message === '暂无记录!') {
340
+              this.taskDataLists = []
341
+            }
342
+          })
343
+          resolve()
344
+        })
345
+      },
346
+      btn_search_task() {
347
+        this.getListTask()
348
+      },
349
+      handleOut(id) {
350
+        this.$layer.iframe({
351
+          content: {
352
+            content: escortOut, // 传递的组件对象
353
+            parent: this, // 当前的vue对象
354
+            data: {
355
+              woid: id
356
+            } // props
357
+          },
358
+          area: ['70%', '72%'],
359
+          title: '转派工单'
360
+        })
361
+      },
362
+      //添加
363
+      btn_add() {
364
+        this.$layer.iframe({
365
+          content: {
366
+            content: escortAddOrEdit, // 传递的组件对象
367
+            parent: this, // 当前的vue对象
368
+            data: {
369
+              rowid: 0
370
+            } // props
371
+          },
372
+          area: ['60%', '72%'],
373
+          title: '添加工单信息'
374
+        })
375
+      },
376
+      //修改
377
+      btn_edit(id) {
378
+        this.$layer.iframe({
379
+          content: {
380
+            content: escortAddOrEdit, // 传递的组件对象
381
+            parent: this, // 当前的vue对象
382
+            data: {
383
+              rowid: id
384
+            } // props
385
+          },
386
+          area: ['60%', '72%'],
387
+          title: '修改工单信息'
388
+        })
389
+      },
390
+      // 详情
391
+      hadndleOrderCode(ordercode) {
392
+        this.$layer.iframe({
393
+          content: {
394
+            content: escortDetail, // 传递的组件对象
395
+            parent: this, // 当前的vue对象
396
+            data: {
397
+              rowid: ordercode
398
+            } // props
399
+          },
400
+          area: ['80%', '90%'],
401
+          title: '订单详情'
402
+        })
403
+      },
404
+      //删除
405
+      handleDelCode() {
406
+        this.$confirm("确定删除吗?", "提示", {
407
+            confirmButtonText: '确定',
408
+            cancelButtonText: '取消',
409
+            type: 'warning'
410
+          }).then(() => {
411
+            const params = {
412
+              ids:this.ids
413
+              // ids: this.idstr.slice(0,this.idstr.length-1)
414
+            }
415
+            getDelWorkOrder(params).then(res => {
416
+              if (res.state == 'success') {
417
+                this.$message.success("删除成功")
418
+                this.selectArr = []
419
+                this.getListTask()
420
+              }
421
+            })
422
+          })
423
+          .catch(() => {
424
+            this.$message('已取消删除')
425
+          })
426
+      },
427
+      getTime(date) {
428
+        var day = Math.floor(new Date().getTime() / 1000) - new Date(date).getTime() / 1000
429
+        var day2 = Math.floor(day / (24 * 3600))
430
+        var day3 = day2 * 24 * 3600
431
+        var day4 = day - day3
432
+        var day5 = Math.floor(day4 / 3600)
433
+        return day5
434
+      }
435
+    }
436
+  }
437
+</script>
438
+
439
+<style rel="stylesheet/scss" scoped>
440
+  /deep/.el-tabs__item {
441
+    width: 185px !important;
442
+    text-align: center;
443
+    font-size: 16px !important;
444
+    font-weight: 600;
445
+  }
446
+
447
+  .el-popper[x-placement^='bottom'] {
448
+    z-index: 10px !important;
449
+  }
450
+
451
+  .operation div {
452
+    font-size: 14px;
453
+    color: #222;
454
+    padding: 5px 0;
455
+    cursor: pointer;
456
+  }
457
+
458
+  .el-icon-s-tools {
459
+    font-size: 18px !important;
460
+    vertical-align: middle;
461
+  }
462
+
463
+  .el-popover {
464
+    min-width: 75px;
465
+    text-align: center;
466
+  }
467
+
468
+  .el-table .cell {
469
+    position: relative;
470
+  }
471
+
472
+  .el {
473
+    cursor: pointer;
474
+  }
475
+
476
+  .filter-container {
477
+    padding-top: 15px;
478
+  }
479
+
480
+  .el-table--mini,
481
+  .el-table--small,
482
+  .el-table__expand-icon {
483
+    font-size: 14px;
484
+  }
485
+
486
+  .el-table--small td,
487
+  .el-table--small th {
488
+    padding: 2px 0 !important;
489
+  }
490
+
491
+  .filter-date {
492
+    width: 388px !important;
493
+  }
494
+
495
+  .el-table {
496
+    color: #000;
497
+  }
498
+</style>

+ 179 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/EscortserviceReport/index.vue

@@ -0,0 +1,179 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-form :inline="true" :model="ruleForm" class="demo-form-inline">
4
+      <el-form-item label="关键字">
5
+        <el-input v-model="ruleForm.keyword" placeholder="输入关键字" size="medium" />
6
+      </el-form-item>
7
+      <el-form-item label="时间范围:">
8
+        <el-col :span="16">
9
+          <el-date-picker v-model="ruleForm.startTime" size="medium" type="daterange" format="yyyy-MM-dd"
10
+            value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
11
+        </el-col>
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" @click="btn_search_task()">查询</el-button>
15
+        <el-button type="primary" @click="btn_export">
16
+          <svg-icon icon-class="daochu" />导出
17
+        </el-button>
18
+      </el-form-item>
19
+    </el-form>
20
+    <el-table :data="rowList" border stripe>
21
+      <el-table-column type="index" label="编号" align="center" fixed width="80" />
22
+      <el-table-column :show-overflow-tooltip="true" prop="F_WorkOrderCode" label="工单编号" align="center" />
23
+      <el-table-column :show-overflow-tooltip="true" prop="F_Wostate" label="类型" align="center" />
24
+      <el-table-column :show-overflow-tooltip="true" prop="F_ProposerDeptName" label="申请科室" align="center" />
25
+      <el-table-column :show-overflow-tooltip="true" prop="F_ProposerName" label="申请人" align="center" />
26
+      <el-table-column :show-overflow-tooltip="true" prop="F_ProposerPhon" label="申请电话" align="center" />
27
+      <el-table-column :show-overflow-tooltip="true" prop="F_Source" label="渠道来源" align="center" />
28
+      <el-table-column :show-overflow-tooltip="true" prop="F_InpatientNum" label="住院号" align="center" />
29
+      <el-table-column :show-overflow-tooltip="true" prop="F_PatientName" label="患者信息" align="center" />
30
+      <el-table-column :show-overflow-tooltip="true" prop="F_Source" label="检查项目" align="center" />
31
+      <el-table-column :show-overflow-tooltip="true" prop="F_InspectionTime" label="预约时间" align="center" />
32
+      <el-table-column :show-overflow-tooltip="true" prop="F_IsWithPipe" label="是否代管" align="center" />
33
+      <el-table-column :show-overflow-tooltip="true" prop="F_TravelMode" label="出行方式" align="center" />
34
+      <el-table-column :show-overflow-tooltip="true" prop="F_NursingLevel" label="护理级别" align="center" />
35
+      <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="备注" align="center" />
36
+      <!-- <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="派工及时率" align="center" />
37
+      <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="陪检完成率" align="center" />
38
+      <el-table-column :show-overflow-tooltip="true" prop="F_Remark" label="陪检及时率" align="center" /> -->
39
+    </el-table>
40
+    <pagination v-show="pageParams.total > 0" :total="pageParams.total" :pageindex.sync="pageParams.pageindex"
41
+      :pagesize.sync="pageParams.pagesize" class="pagination" @pagination="getListTask" />
42
+  </div>
43
+</template>
44
+
45
+<script>
46
+  import {
47
+    getReportList,
48
+    getOrderStateData,
49
+    getListExpt
50
+  } from '@/api/Escortservice/Escortservice.js'
51
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
52
+  export default {
53
+    name: 'EscortsTableList',
54
+    components: {
55
+      Pagination
56
+    },
57
+    created() {
58
+      this.getListTask()
59
+      this.getOrderStat()
60
+    },
61
+    data() {
62
+      return {
63
+        state: '',
64
+        rowList: [],
65
+        orderstate: [], // 工单状态数据
66
+        ruleForm: {
67
+          startTime: '',
68
+          keyword: ''
69
+        },
70
+        pageParams: {
71
+          pageindex: 1, // 当前第几页
72
+          pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
73
+          total: 0 // 总共多少数据
74
+        }
75
+      }
76
+    },
77
+    methods: {
78
+      getListTask() {
79
+        return new Promise((resolve) => {
80
+          const params = {
81
+            type: 2008,
82
+            keyword: this.ruleForm.keyword,
83
+            pageindex: this.pageParams.pageindex, // int 第几页
84
+            pagesise: this.pageParams.pagesize, // int 每页几条信息
85
+            state: this.state,
86
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
87
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
88
+          }
89
+          getReportList(params).then((response) => {
90
+            if (response.state.toLowerCase() === 'success') {
91
+              if (response.message === '暂无记录!') {
92
+                this.rowList = []
93
+              } else {
94
+                if (response.total == null) {
95
+                  this.pageParams.total = 0
96
+                } else {
97
+                  this.pageParams.total = response.total
98
+                }
99
+                this.rowList = response.rows
100
+              }
101
+            }
102
+            if (response.message === '暂无记录!') {
103
+              this.rowList = []
104
+            }
105
+          })
106
+          resolve()
107
+        })
108
+      },
109
+      btn_search_task() {
110
+        this.getListTask()
111
+      },
112
+      btn_export() {
113
+        return new Promise(resolve => {
114
+          const params = {
115
+            isdc: 1,
116
+            pageindex: this.pageParams.pageindex, // 第几页
117
+            pagesize: this.pageParams.pagesize, // 每页几条信息
118
+            type: 2008,
119
+            state: this.state,
120
+            starttime: this.ruleForm.startTime && this.ruleForm.startTime[0],
121
+            endtime: this.ruleForm.startTime && this.ruleForm.startTime[1],
122
+            keyword: this.ruleForm.keyword.replace(/\s+/g, '')
123
+          }
124
+          getListExpt(params).then(response => {
125
+            if (response.headers['content-disposition']) {
126
+              const content = response.data
127
+              const blob = new Blob([content])
128
+              // let fileName = '报表数据.xls'
129
+              let fileName = response.headers['content-disposition'].split(';')[1].split('=')[1]
130
+              var explorer = navigator.userAgent
131
+              if (explorer.indexOf('MSIE') >= 0 || explorer.indexOf('Chrome') >= 0) { // IE和google浏览器
132
+                fileName = decodeURIComponent(fileName)
133
+              } else {
134
+                fileName = decodeURI(escape(fileName))
135
+              }
136
+              if ('download' in document.createElement('a')) {
137
+                // 非IE下载
138
+                const elink = document.createElement('a')
139
+                elink.download = fileName
140
+                elink.style.display = 'none'
141
+                elink.href = URL.createObjectURL(blob)
142
+                document.body.appendChild(elink)
143
+                elink.click()
144
+                URL.revokeObjectURL(elink.href) // 释放URL 对象
145
+                document.body.removeChild(elink)
146
+                this.$message.success('恭喜你,文件导出成功!')
147
+              } else {
148
+                // IE10+下载
149
+                navigator.msSaveBlob(blob, fileName)
150
+              }
151
+            } else {
152
+              this.$message.error(response)
153
+            }
154
+          })
155
+          resolve()
156
+        })
157
+      },
158
+      // 工单状态
159
+      getOrderStat() {
160
+        return new Promise((resolve) => {
161
+          const params = {}
162
+          getOrderStateData(params).then((response) => {
163
+            this.loading = false
164
+            if (response) {
165
+              this.orderstate = response
166
+            }
167
+          })
168
+          resolve()
169
+        })
170
+      },
171
+
172
+
173
+    }
174
+
175
+  }
176
+</script>
177
+
178
+<style rel="stylesheet/scss" lang="scss" scoped>
179
+</style>

+ 459 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/components/escortAddOrEdit.vue

@@ -0,0 +1,459 @@
1
+<template>
2
+  <div v-loading="loading">
3
+    <el-form ref="ruleForm" :model="ruleForm" label-width="100px">
4
+      <el-col :span="20">
5
+        <!-- <el-row>
6
+          <el-col :span="8">
7
+            <el-form-item label="工单类别" prop="type">
8
+              <select-order-type :third-order-type="thirdOrderTypeParam" @post-third-order-type="getThirdOrderType" />
9
+            </el-form-item>
10
+          </el-col>
11
+        </el-row> -->
12
+        <el-row>
13
+          <el-col :span="10">
14
+            <el-form-item label="院区" prop="hosname">
15
+              <select-hosname :hospitals-param="hospitalsParam" @post-hospitals="getHospitals" />
16
+            </el-form-item>
17
+          </el-col>
18
+          <el-col :span="10">
19
+            <el-form-item label="科室" prop="deptname">
20
+              <select-departments :departments-param="departmentsParam" @post-departments="getDepartments" />
21
+            </el-form-item>
22
+          </el-col>
23
+        </el-row>
24
+        <el-row>
25
+          <el-col :span="10">
26
+            <el-form-item label="申请人" prop="username">
27
+              <select-repairman :repairman-param="repairmanParam" @post-repairman="getRepairman" />
28
+            </el-form-item>
29
+          </el-col>
30
+          <el-col :span="10">
31
+            <el-form-item label="联系电话" prop="phon">
32
+              <el-input v-model="ruleForm.phon" placeholder="请输入联系电话" />
33
+            </el-form-item>
34
+          </el-col>
35
+
36
+        </el-row>
37
+        <el-row>
38
+          <el-col :span="10">
39
+            <el-form-item label="患者姓名" prop="patient">
40
+              <el-input v-model="ruleForm.patient" placeholder="请输入" />
41
+            </el-form-item>
42
+          </el-col>
43
+          <el-col :span="10">
44
+            <el-form-item label="床号" prop="bednum">
45
+              <el-input v-model="ruleForm.bednum" placeholder="请输入" />
46
+            </el-form-item>
47
+          </el-col>
48
+        </el-row>
49
+        <el-row>
50
+          <el-col :span="10">
51
+            <el-form-item label="住院号" prop="inpatientnum">
52
+              <el-input v-model="ruleForm.inpatientnum" placeholder="请输入" />
53
+            </el-form-item>
54
+          </el-col>
55
+          <el-col :span="10">
56
+            <el-form-item label="检查项目" prop="checkitem">
57
+              <el-input v-model="ruleForm.checkitem" placeholder="请输入" />
58
+            </el-form-item>
59
+          </el-col>
60
+        </el-row>
61
+        <el-row>
62
+          <el-col :span="12">
63
+            <el-form-item label="预约检查时间" prop="yuyuetime">
64
+              <el-date-picker v-model="ruleForm.yuyuetime" type="datetime" placeholder="选择日期时间">
65
+              </el-date-picker>
66
+            </el-form-item>
67
+          </el-col>
68
+          <el-col :span="10">
69
+            <el-form-item label="注意事项" prop="attention">
70
+              <el-select v-model="ruleForm.attention">
71
+                <el-option v-for="item in attentionList" :key="item.value" :label="item.label" :value="item.value">
72
+                </el-option>
73
+              </el-select>
74
+            </el-form-item>
75
+          </el-col>
76
+        </el-row>
77
+        <el-row>
78
+          <el-col :span="10">
79
+            <el-form-item label="出行方式" prop="travel">
80
+              <el-select v-model="ruleForm.travel">
81
+                <el-option v-for="item in travelList" :key="item.value" :label="item.label" :value="item.value">
82
+                </el-option>
83
+              </el-select>
84
+            </el-form-item>
85
+          </el-col>
86
+          <el-col :span="10">
87
+            <el-form-item label="护理级别" prop="nursinglevel">
88
+              <el-select v-model="ruleForm.nursinglevel">
89
+                <el-option v-for="item in nursinglevelList" :key="item.value" :label="item.label" :value="item.value">
90
+                </el-option>
91
+              </el-select>
92
+            </el-form-item>
93
+          </el-col>
94
+        </el-row>
95
+        <el-row>
96
+          <el-col :span="16">
97
+            <el-form-item label="是否带管" prop="withpipe">
98
+              <el-select v-model="ruleForm.withpipe">
99
+                <el-option v-for="item in withpipeList" :key="item.value" :label="item.label" :value="item.value">
100
+                </el-option>
101
+              </el-select>
102
+            </el-form-item>
103
+          </el-col>
104
+        </el-row>
105
+        <el-row>
106
+          <el-col :span="16">
107
+            <el-form-item label="备注" prop="remark">
108
+              <el-input v-model="ruleForm.remark" type="textarea" placeholder="请输入备注" />
109
+            </el-form-item>
110
+          </el-col>
111
+        </el-row>
112
+        <el-form-item>
113
+          <el-button type="primary" @click="submitForm">保存</el-button>
114
+          <el-button @click="resetForm">重置</el-button>
115
+        </el-form-item>
116
+      </el-col>
117
+    </el-form>
118
+  </div>
119
+</template>
120
+
121
+<script>
122
+  import {
123
+    getModelDetail,
124
+    getAddWorkOrder,
125
+    getUpdateWorkOrder
126
+  } from '@/api/Escortservice/Escortservice.js'
127
+  import {
128
+    getWorkOrderGetDept,
129
+    UploadImage64
130
+  } from '@/api/commonAPI'
131
+
132
+
133
+  export default {
134
+    name: 'escortAddOrEdit',
135
+    props: {
136
+      rowid: {
137
+        type: Number,
138
+        default: ''
139
+      },
140
+      rowdata: {
141
+        type: Object,
142
+        default () {
143
+          return {}
144
+        }
145
+      },
146
+      typeid: {
147
+        type: Number,
148
+        default: 0
149
+      },
150
+      layerid: {
151
+        type: String,
152
+        default: ''
153
+      },
154
+      orderTypeData: {
155
+        type: Object,
156
+        default () {
157
+          return {}
158
+        }
159
+      }
160
+    },
161
+    data() {
162
+      return {
163
+        positonList: [],
164
+        hospitalsId: 0,
165
+        hospitalsParam: {
166
+          id: 0,
167
+          name: ''
168
+        },
169
+        departmentsParam: {
170
+          id: 0,
171
+          name: ''
172
+        },
173
+        positonParam: {
174
+          id: 1
175
+        },
176
+        repairmanParam: {
177
+          id: 0,
178
+          name: ''
179
+        },
180
+        attentionList: [{
181
+          value: 1,
182
+          label: "空腹"
183
+        }, {
184
+          value: 2,
185
+          label: "憋尿"
186
+        }, {
187
+          value: 3,
188
+          label: "其他"
189
+        }],
190
+        travelList: [{
191
+          value: 1,
192
+          label: "步行"
193
+        }, {
194
+          value: 2,
195
+          label: "开车"
196
+        }, {
197
+          value: 3,
198
+          label: "走路"
199
+        }],
200
+        nursinglevelList: [{
201
+          value: 1,
202
+          label: "一级"
203
+        }, {
204
+          value: 2,
205
+          label: "二级"
206
+        }, {
207
+          value: 3,
208
+          label: "特级"
209
+        }],
210
+        withpipeList: [{
211
+          value: 1,
212
+          label: "引流管"
213
+        }, {
214
+          value: 2,
215
+          label: "尿管"
216
+        }, {
217
+          value: 3,
218
+          label: "胃管"
219
+        }],
220
+        ruleForm: {
221
+          // callid: '',
222
+          // type: '', // 工单类别
223
+          hosid: '', // 院区id
224
+          hosname: '', // 院区id
225
+          deptid: '', // 申请科室id
226
+          deptname: '', // 申请科室名称
227
+          usercode: '', // 申请人编码
228
+          username: '', //	申请人
229
+          phon: '', //	联系电话
230
+          bednum:'',
231
+          patient:'',
232
+          inpatientnum:'',
233
+          checkitem:'',
234
+          yuyuetime:'',
235
+          attention:'',
236
+          travel:'',
237
+          nursinglevel:'',
238
+          withpipe:'',
239
+          remark: '' //	备注
240
+        },
241
+        fileList: [],
242
+        // imgBase64Array: '',
243
+        headers: {
244
+          Authorization: localStorage.getItem('Admin-Token')
245
+        },
246
+        loading: false
247
+      }
248
+    },
249
+    watch: {
250
+      'orderTypeData.F_Type2': function() {
251
+        // console.log(this.orderTypeData.F_Type2)
252
+      }
253
+    },
254
+    created() {
255
+      if (this.rowid) {
256
+        this.ruleForm.id = this.rowid
257
+        this.getDetail(this.rowid)
258
+      }
259
+      if (JSON.stringify(this.orderTypeData) === '{}') {
260
+        this.ruleForm.source = ''
261
+      }
262
+      this.getPositon()
263
+    },
264
+    methods: {
265
+
266
+      submitForm() {
267
+        // this.getItemessage()
268
+        console.log(this.ruleForm)
269
+        this.$refs.ruleForm.validate((valid) => {
270
+          if (valid) {
271
+            this.loading = true
272
+            const datas = {
273
+              type:2008,
274
+              hosid: this.ruleForm.hosid, //	院区id
275
+              dept: this.ruleForm.deptid, //	申请科室id
276
+              deptname: this.ruleForm.deptname, // 申请科室名称
277
+              usercode: this.ruleForm.usercode, //	申请人编码
278
+              username: this.ruleForm.username, //	申请人
279
+              phon: this.ruleForm.phon, //	联系电话
280
+              patient: this.ruleForm.patient,
281
+              bednum: this.ruleForm.bednum,
282
+              inpatientnum: this.ruleForm.inpatientnum,
283
+              checkitem: this.ruleForm.checkitem,
284
+              yuyuetime: this.ruleForm.yuyuetime,
285
+              attention: this.ruleForm.attention,
286
+              travel: this.ruleForm.travel,
287
+              nursinglevel: this.ruleForm.nursinglevel,
288
+              withpipe: this.ruleForm.withpipe,
289
+              remark: this.ruleForm.remark //	备注
290
+            }
291
+            // 添加
292
+            if (!this.rowid) {
293
+              getAddWorkOrder(datas).then(response => {
294
+                this.loading = false
295
+                if (response.state == 'success') {
296
+                  // if (this.layerid) {
297
+                  //   this.$parent.$layer.close(this.layerid)
298
+                  //   this.$parent.getListTask() // 重新加载父级数据
299
+                  // }
300
+                  this.fileList = []
301
+                  this.$parent.$layer.close(this.layerid)
302
+                  this.$parent.getListTask() // 重新加载父级数据
303
+                  this.$message.success('恭喜你,添加成功!')
304
+                }
305
+              }).catch(() => {
306
+                this.loading = false
307
+              })
308
+            } else {
309
+              // 编辑
310
+              const datas = {
311
+                type:2008,
312
+                woid:this.rowid,
313
+                hosid: this.ruleForm.hosid, //	院区id
314
+                dept: this.ruleForm.deptid, //	申请科室id
315
+                deptname: this.ruleForm.deptname, // 申请科室名称
316
+                usercode: this.ruleForm.usercode, //	申请人编码
317
+                username: this.ruleForm.username, //	申请人
318
+                phon: this.ruleForm.phon, //	联系电话
319
+                patient: this.ruleForm.patient,
320
+                bednum: this.ruleForm.bednum,
321
+                inpatientnum: this.ruleForm.inpatientnum,
322
+                checkitem: this.ruleForm.checkitem,
323
+                yuyuetime: this.ruleForm.yuyuetime,
324
+                attention: this.ruleForm.attention,
325
+                travel: this.ruleForm.travel,
326
+                nursinglevel: this.ruleForm.nursinglevel,
327
+                withpipe: this.ruleForm.withpipe,
328
+                remark: this.ruleForm.remark //	备注
329
+              }
330
+              console.log(this.rowdata)
331
+              getUpdateWorkOrder(datas).then(response => {
332
+                this.loading = false
333
+                if (response.state.toLowerCase() === 'success') {
334
+                  this.fileList = []
335
+                  this.$parent.$layer.close(this.layerid)
336
+                  this.$parent.getListTask() // 重新加载父级数据
337
+                  this.$message.success('恭喜你,编辑成功!')
338
+                }
339
+              }).catch(() => {
340
+                this.loading = false
341
+              })
342
+            }
343
+          } else {
344
+            this.$message.error('请输入有效的必填项信息!')
345
+            return false
346
+          }
347
+        })
348
+      },
349
+      handle_success(res) {
350
+        this.imgId = res.data
351
+      },
352
+      resetForm() {
353
+        this.$refs.ruleForm.resetFields()
354
+      },
355
+      // 三级改变时触发
356
+      getThirdOrderType(data) {
357
+        console.log(data)
358
+        this.ruleForm.orthertype = data.value
359
+        this.ruleForm.orthertypeName = data.name
360
+      },
361
+      // 院区下拉改变事件
362
+      getHospitals(data) {
363
+        this.ruleForm.hosid = data.value
364
+        this.ruleForm.hosname = data.name
365
+        console.log(data)
366
+        // this.getDepartment()
367
+      },
368
+      // 科室下拉改变事件
369
+      getDepartments(data) {
370
+        console.log(data)
371
+        this.ruleForm.deptid = data.value
372
+        this.ruleForm.deptname = data.name
373
+      },
374
+      getRepairman(data) {
375
+        console.log(data)
376
+        this.ruleForm.usercode = data.value
377
+        this.ruleForm.username = data.name
378
+      },
379
+      getPositonList(data) {
380
+        console.log(data)
381
+        this.item.delivered
382
+      },
383
+      // 科室
384
+      getPositon() {
385
+        const params = {
386
+          HosId: 1 // 字典管理的工单标识
387
+        }
388
+        return new Promise((resolve) => {
389
+          getWorkOrderGetDept(params).then((res) => {
390
+            this.positonList = res.rows
391
+          })
392
+          resolve()
393
+        })
394
+      },
395
+      // 获取详情
396
+      getDetail(rid) {
397
+        const params = {
398
+          id: rid
399
+        }
400
+        getModelDetail(params).then(response => {
401
+          if (response.state.toLowerCase() === 'success') {
402
+            const res = response.model
403
+            this.ruleForm.hosid = res.F_HosId
404
+            this.ruleForm.hosname = res.HosName
405
+            this.ruleForm.deptid = res.F_ProposerDeptId
406
+            this.ruleForm.deptname = res.F_ProposerDeptName
407
+            this.ruleForm.usercode = res.F_ProposerCode
408
+            this.ruleForm.username = res.F_ProposerName
409
+            this.ruleForm.phon = res.F_ProposerPhon
410
+            this.ruleForm.bednum = res.F_BedNum
411
+            this.ruleForm.checkitem = res.F_CheckItem
412
+            this.ruleForm.inpatientnum = res.F_InpatientNum
413
+            this.ruleForm.yuyuetime = res.F_InspectionTime
414
+            this.ruleForm.patient = res.F_PatientName
415
+            this.ruleForm.travel = Number(res.F_TravelMode)
416
+            this.ruleForm.withpipe = Number(res.F_IsWithPipe)
417
+            this.ruleForm.attention = Number(res.F_NeedAttention)
418
+            this.ruleForm.nursinglevel = Number(res.F_NursingLevel)
419
+            this.ruleForm.remark = res.F_Remark
420
+
421
+            this.hospitalsParam.id = res.F_HosId
422
+            this.hospitalsParam.name = res.HosName
423
+            this.departmentsParam.id = res.F_ProposerDeptId
424
+            this.departmentsParam.name = res.F_ProposerDeptName
425
+            this.repairmanParam.id = res.F_ProposerCode
426
+            this.repairmanParam.name = res.F_ProposerName
427
+          }
428
+        })
429
+      }
430
+    }
431
+  }
432
+</script>
433
+
434
+<style rel="stylesheet/scss" lang="scss" scoped>
435
+  .btnPlus {
436
+    margin: 5px 0px 5px 20px;
437
+  }
438
+
439
+  .inputNumber {
440
+    height: 45px;
441
+  }
442
+
443
+  .avatar-uploader-icon {
444
+    font-size: 28px;
445
+    color: #8c939d;
446
+    width: 148px;
447
+    height: 148px;
448
+    line-height: 178px;
449
+    text-align: center;
450
+  }
451
+
452
+  /deep/.el-upload {
453
+    border: 1px dashed #d9d9d9;
454
+    border-radius: 6px;
455
+    cursor: pointer;
456
+    position: relative;
457
+    overflow: hidden;
458
+  }
459
+</style>

+ 315 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/components/escortDetail.vue

@@ -0,0 +1,315 @@
1
+<template>
2
+  <div class="order_detail">
3
+    <el-row :gutter="20">
4
+      <el-col :md="24" class="order_detail_body">
5
+        <el-card shadow="hover">
6
+          <el-col :md="21">
7
+            <h1 class="title">
8
+              <svg-icon class="title_icon" icon-class="hongqi" />工单单号:{{ orderDetailData.F_WorkOrderCode }}
9
+            </h1>
10
+          </el-col>
11
+          <el-col :md="24" class="order_detail_content">
12
+            <el-col :md="6" class="order_detail_item"> 工单状态:{{ orderDetailData.F_Wostate }} </el-col>
13
+            <el-col :md="6" class="order_detail_item"> 来源:{{ orderDetailData.F_Source }} </el-col>
14
+            <el-col :md="6" class="order_detail_item"> 院区:{{ orderDetailData.HosName }} </el-col>
15
+            <el-col :md="6" class="order_detail_item"> 科室:{{ orderDetailData.F_ProposerDeptName }} </el-col>
16
+            <el-col :md="6" class="order_detail_item"> 申请人:{{ orderDetailData.F_ProposerName }} </el-col>
17
+            <el-col :md="6" class="order_detail_item"> 联系电话:{{ orderDetailData.F_ProposerPhon }} </el-col>
18
+            <el-col :md="6" class="order_detail_item">患者信息:{{ orderDetailData.F_PatientName }} </el-col>
19
+            <el-col :md="6" class="order_detail_item"> 备注:{{ orderDetailData.F_Remark }} </el-col>
20
+          </el-col>
21
+        </el-card>
22
+      </el-col>
23
+    </el-row>
24
+    <el-row :gutter="20">
25
+      <el-col :md="24" class="order_detail_body">
26
+        <el-card shadow="hover">
27
+          <el-col :md="21">
28
+            <h1 class="title">工单流转</h1>
29
+          </el-col>
30
+
31
+          <el-table :data="workOrderCirculationList" border stripe row-key="F_Id">
32
+            <el-table-column prop="F_CreateUser" label="创建人" align="center" min-width />
33
+            <el-table-column prop="F_CreateTime" label="创建时间" align="center" min-width />
34
+            <el-table-column prop="F_NextDept" label="申请科室" align="center" min-width />
35
+            <el-table-column prop="F_NextUserName" label="姓名" align="center" min-width />
36
+            <el-table-column prop="F_NexUserPhon" label="联系方式" align="center" min-width />
37
+            <el-table-column prop="F_OptContent" label="设备名称和数量" align="center" min-width />
38
+          </el-table>
39
+
40
+        </el-card>
41
+      </el-col>
42
+    </el-row>
43
+  </div>
44
+</template>
45
+
46
+<script>
47
+  import {
48
+    mapGetters
49
+  } from 'vuex'
50
+  import {
51
+    getModelDetail
52
+  } from '@/api/Escortservice/Escortservice.js'
53
+  import {
54
+    getDeatil,
55
+    GetOrderItem
56
+  } from '@/api/comDispatch/muterDistribute'
57
+  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
58
+
59
+  export default {
60
+    name: 'Detail',
61
+    components: {
62
+      Pagination
63
+    },
64
+    props: {
65
+      rowid: {
66
+        type: Number,
67
+        default: 0
68
+      },
69
+      layerid: {
70
+        type: String,
71
+        default: ''
72
+      }
73
+    },
74
+    data() {
75
+      return {
76
+        activeName: 'first',
77
+        imgUrl: this.$store.getters.serverConfig.BASE_API,
78
+        orderDetailData: {
79
+          F_CallID: '',
80
+          F_WorkOrderCode: '',
81
+          F_Type: '',
82
+          F_Id: '',
83
+          F_Source: '', // 来源
84
+          HosName: '', // 院区
85
+          F_ProposerDeptName: '', // 科室
86
+          F_ProposerName: '', // 申请人
87
+          F_ProposerPhon: '', // 联系电话
88
+          F_ItemContents: '', // 配送信息
89
+          F_Islarge: '', // 大小件搬家
90
+          F_CarryTime: '', // 搬运时间
91
+          F_DisNum: '', // 红处方数量
92
+          RedPic: [], // 图片
93
+          F_Remark: '' // 备注
94
+        },
95
+        workOrderCirculationList: [] // 工单流转
96
+      }
97
+    },
98
+    computed: {
99
+      ...mapGetters(['rolecode'])
100
+    },
101
+    created() {
102
+      if (this.rowid) {
103
+        this.getDetail(this.rowid)
104
+        // this.getItem()
105
+      }
106
+    },
107
+    methods: {
108
+      handleClick(tab, event) {
109
+        console.log(tab, event)
110
+      },
111
+      // 详情
112
+      getDetail(rid) {
113
+        const params={
114
+          id:rid
115
+        }
116
+        getModelDetail(params).then((response) => {
117
+          const res = response.model
118
+          this.orderDetailData.F_Id = res.F_Id
119
+          this.orderDetailData.F_Wostate = res.F_Wostate
120
+          this.orderDetailData.F_WorkOrderCode = res.F_WorkOrderCode
121
+          this.orderDetailData.F_Source = res.F_Source // 来源
122
+          this.orderDetailData.HosName = res.HosName // 院区
123
+          this.orderDetailData.F_ProposerDeptName = res.F_ProposerDeptName // 科室
124
+          this.orderDetailData.F_ProposerName = res.F_ProposerName // 申请人
125
+          this.orderDetailData.F_ProposerPhon = res.F_ProposerPhon // 联系电话
126
+          this.orderDetailData.F_ItemContents = res.F_CarryContents // 配送信息
127
+          this.orderDetailData.F_Type = res.F_Type // 工单类型
128
+          this.orderDetailData.F_Remark = res.F_Remark // 备注
129
+          this.orderDetailData.F_PatientName = res.F_PatientName // 备注
130
+          this.workOrderCirculationList = response.itemlist // 配送信息
131
+        })
132
+      },
133
+      // 老字符串
134
+      stringAddArray(addStr, oldStr) {
135
+        for (let index = 0; index < oldStr.length; index++) {
136
+          const element = oldStr[index]
137
+          this.orderDetailData.RedPic.push(addStr + element)
138
+        }
139
+      }
140
+
141
+    }
142
+  }
143
+</script>
144
+
145
+<style rel="stylesheet/scss" lang="scss">
146
+  .order_detail {
147
+    .el-col {
148
+      margin-bottom: 20px;
149
+    }
150
+
151
+    .el-icon-time {
152
+      color: #d81e06;
153
+    }
154
+
155
+    .el-card__header {
156
+      padding-top: 14px;
157
+      padding-bottom: 14px;
158
+      background-color: #f5f5f6;
159
+    }
160
+
161
+    .order_file {
162
+      .el-card__body {
163
+        padding: 22px 0 0 0;
164
+        text-align: center;
165
+      }
166
+    }
167
+
168
+    .order_steps {
169
+      .el-step__icon-inner {
170
+        display: none;
171
+      }
172
+    }
173
+
174
+    .order_record {
175
+      .el-card__body {
176
+        padding: 0;
177
+      }
178
+
179
+      .el-tabs__header {
180
+        padding: 0px 20px;
181
+        background-color: #f5f5f6;
182
+
183
+        .el-tabs__item {
184
+          font-size: 16px;
185
+          height: 47px;
186
+          line-height: 47px;
187
+        }
188
+      }
189
+    }
190
+  }
191
+</style>
192
+
193
+<style rel="stylesheet/scss" lang="scss" scoped>
194
+  .order_detail {
195
+    .order_detail_body {
196
+      margin-bottom: 20px;
197
+
198
+      .round_img {
199
+        width: 90px;
200
+        height: 90px;
201
+        border-radius: 50%;
202
+        overflow: hidden;
203
+        margin: 14px;
204
+
205
+        img {
206
+          width: 100%;
207
+          height: 100%;
208
+        }
209
+      }
210
+
211
+      .title {
212
+        font-size: 20px;
213
+
214
+        .title_icon {
215
+          color: #d81e06;
216
+          font-size: 16px;
217
+          margin-right: 20px;
218
+        }
219
+      }
220
+
221
+      .title_sub {
222
+        font-size: 14px;
223
+        color: #666666;
224
+      }
225
+
226
+      .order_detail_content {
227
+        background-color: #f5f5f6;
228
+        padding-top: 20px;
229
+        color: #4c4c4c;
230
+        font-size: 14px;
231
+
232
+        .order_detail_item {
233
+          margin-bottom: 10px;
234
+
235
+          .order_content {
236
+            margin-top: 10px;
237
+          }
238
+
239
+          .order_file {
240
+            position: relative;
241
+            cursor: pointer;
242
+
243
+            .img_mask {
244
+              display: none;
245
+              position: absolute;
246
+              left: 0px;
247
+              top: 0px;
248
+              background-color: rgba(0, 0, 0, 0.3);
249
+              width: 100%;
250
+              height: 22px;
251
+              text-align: right;
252
+              z-index: 1;
253
+
254
+              i {
255
+                font-size: 20px;
256
+                line-height: 22px;
257
+                display: inline-block;
258
+                margin-right: 15px;
259
+                color: #fff;
260
+              }
261
+            }
262
+
263
+            p {
264
+              margin-top: 5px;
265
+              padding-left: 14px;
266
+              padding-right: 14px;
267
+              white-space: nowrap;
268
+              overflow: hidden;
269
+              text-overflow: ellipsis;
270
+            }
271
+
272
+            .file_icon {
273
+              height: 68px;
274
+              line-height: 68px;
275
+              font-size: 68px;
276
+              color: #409eff;
277
+            }
278
+          }
279
+
280
+          .order_file:hover .img_mask {
281
+            display: block;
282
+          }
283
+        }
284
+      }
285
+    }
286
+
287
+    .green {
288
+      color: #00c1de;
289
+    }
290
+
291
+    .done {
292
+      color: #198120;
293
+    }
294
+
295
+    .red {
296
+      color: #d81e06;
297
+    }
298
+
299
+    .yellow {
300
+      color: #e6a23c;
301
+    }
302
+
303
+    .order_steps {
304
+
305
+      // height: 240px;
306
+      .el-step__icon-inner {
307
+        display: none;
308
+      }
309
+    }
310
+
311
+    .tab_body {
312
+      padding: 0 20px 20px 20px;
313
+    }
314
+  }
315
+</style>

+ 204 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/components/escortOut.vue

@@ -0,0 +1,204 @@
1
+<template>
2
+  <div>
3
+    <el-form ref="ruleForm" :model="ruleForm" label-width="100px">
4
+      <el-col :span="24">
5
+        <!-- <el-row>
6
+          <el-form-item label="出库状态:" :label-width="formLabelWidth">
7
+            <el-select v-model="form.devstate" placeholder="请选择">
8
+              <el-option v-for="item in outTypes" :key="item.value" :label="item.label" :value="item.value">
9
+              </el-option>
10
+            </el-select>
11
+          </el-form-item>
12
+        </el-row> -->
13
+        <el-row v-for="(item,index) in devList" :key="index">
14
+          <el-col :span="6">
15
+            <!-- <el-form-item label="申请人" prop="usercode" :label-width="formLabelWidth">
16
+              <el-input v-model="item.usercode" autocomplete="off"></el-input>
17
+            </el-form-item> -->
18
+            <el-form-item label="转运人" prop="usercode" :label-width="formLabelWidth">
19
+              <el-select v-model="devList[index].usercode">
20
+                <el-option v-for="item in nameList" :key="item.value" :label="item.label" :value="item.value">
21
+                </el-option>
22
+              </el-select>
23
+            </el-form-item>
24
+          </el-col>
25
+          <el-col :span="6">
26
+            <el-form-item label="手机号:" prop="phone" :label-width="formLabelWidth">
27
+              <el-input v-model="item.phone" autocomplete="off"></el-input>
28
+            </el-form-item>
29
+          </el-col>
30
+          <el-col :span="6">
31
+            <el-form-item label="对讲机:" prop="talkie" :label-width="formLabelWidth">
32
+              <el-input v-model="item.talkie" autocomplete="off"></el-input>
33
+            </el-form-item>
34
+          </el-col>
35
+          <el-col :span="6">
36
+            <el-button type="primary" icon="el-icon-plus" circle @click="addItem()" />
37
+            <el-button type="primary" v-if="devList.length>1" icon="el-icon-close" circle @click="removeItem(index)" />
38
+          </el-col>
39
+        </el-row>
40
+        <el-row>
41
+          <el-col :span="6">
42
+            <el-form-item label="司机姓名" :label-width="formLabelWidth">
43
+              <el-input v-model="form.drivername" autocomplete="off"></el-input>
44
+            </el-form-item>
45
+          </el-col>
46
+          <el-col :span="6">
47
+            <el-form-item label="车辆信息" prop="carmessage" :label-width="formLabelWidth">
48
+              <el-select v-model="form.carmessage">
49
+                <el-option v-for="item in carList" :key="item.value" :label="item.label" :value="item.value">
50
+                </el-option>
51
+              </el-select>
52
+            </el-form-item>
53
+          </el-col>
54
+          <el-col :span="6">
55
+            <el-form-item label="司机电话" :label-width="formLabelWidth">
56
+              <el-input v-model="form.driverphon" autocomplete="off"></el-input>
57
+            </el-form-item>
58
+          </el-col>
59
+        </el-row>
60
+        <el-form-item>
61
+          <el-button type="primary" @click="outSure()">确定</el-button>
62
+          <el-button @click="resetForm">重置</el-button>
63
+        </el-form-item>
64
+      </el-col>
65
+    </el-form>
66
+  </div>
67
+</template>
68
+
69
+<script>
70
+  import {
71
+    getAssignWo,
72
+    getGetAllCar
73
+  } from '@/api/Escortservice/Escortservice.js'
74
+  export default {
75
+    name: 'escortOut',
76
+    props: {
77
+      woid: {
78
+        type: Number,
79
+        default: ''
80
+      },
81
+      // isOut: {
82
+      //   type: Number,
83
+      //   default: ''
84
+      // }
85
+    },
86
+    data() {
87
+      return {
88
+        outTypes: [{
89
+            value: 1,
90
+            label: '全部出库'
91
+          }, {
92
+            value: 2,
93
+            label: '部分出库'
94
+          },
95
+          {
96
+            value: 5,
97
+            label: '无库存'
98
+          }
99
+        ],
100
+        repairmanParam: {
101
+          id: 0,
102
+          name: ''
103
+        },
104
+        // woid:'',
105
+        devList: [{
106
+          talkie: '',
107
+          phone: '',
108
+          usercode: ''
109
+        }],
110
+        nameList: [{
111
+          value: 10007,
112
+          label: "张三"
113
+        }, {
114
+          value: 10008,
115
+          label: "李四"
116
+        }],
117
+        form: {},
118
+        ruleForm: {},
119
+        formLabelWidth: '120px',
120
+        resstr: '',
121
+        carList: []
122
+        // isOut:0
123
+
124
+      }
125
+    },
126
+    created() {
127
+      this.getCar()
128
+    },
129
+    methods: {
130
+      addItem() {
131
+        const params = {
132
+          talkie: '',
133
+          phone: '',
134
+          usercode: ''
135
+        }
136
+        this.devList.push(params)
137
+      },
138
+      removeItem(index) {
139
+        console.log(index)
140
+        this.devList.splice(index, 1)
141
+      },
142
+      getStr() {
143
+        var str = '';
144
+        for (var i = 0; i < this.devList.length; i++) {
145
+          str += this.devList[i].usercode + '|' + this.devList[i].phone + '|' + this.devList[i].talkie + ","
146
+          if (str.length > 0) {
147
+            this.resstr = str.substring(0, str.length - 1);
148
+          }
149
+        }
150
+      },
151
+      //转派
152
+      outSure() {
153
+        this.getStr()
154
+        console.log(this.devList)
155
+        const params = {
156
+          woid: this.woid,
157
+          transMestr: this.resstr,
158
+          drivername: this.form.drivername,
159
+          carmessage: this.form.carmessage,
160
+          driverphon: this.form.driverphon
161
+        }
162
+        getAssignWo(params).then(res => {
163
+          if (res.state == 'success') {
164
+            this.$message.success("转派成功")
165
+            this.form = {}
166
+            this.$parent.$layer.close(this.layerid)
167
+            parent.getListTask()
168
+          }
169
+        })
170
+      },
171
+      getCar() {
172
+        const params = {
173
+
174
+        }
175
+        getGetAllCar(params).then(res => {
176
+          for (var i = 0; i < res.length; i++) {
177
+            this.carList.push({
178
+              value: i,
179
+              label: res[i]
180
+            })
181
+          }
182
+          console.log(this.carList)
183
+        })
184
+      },
185
+      getRepairman(data) {
186
+        console.log(data)
187
+        this.form.usercode = data.value
188
+      },
189
+      resetForm() {
190
+        this.form = {}
191
+        this.$refs.ruleForm.resetFields()
192
+        this.devList=[{
193
+          talkie: '',
194
+          phone: '',
195
+          usercode: ''
196
+        }]
197
+      },
198
+    }
199
+
200
+  }
201
+</script>
202
+
203
+<style>
204
+</style>

+ 7 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/Escortservice/index.vue

@@ -0,0 +1,7 @@
1
+<template>
2
+  <div>
3
+    <keep-alive>
4
+      <router-view />
5
+    </keep-alive>
6
+  </div>
7
+</template>