瀏覽代碼

工单列表评价

seimin 2 年之前
父節點
當前提交
a04582a979
共有 4 個文件被更改,包括 91 次插入10 次删除
  1. 15 5
      components/seiminModel/seiminModel.vue
  2. 43 5
      pages/orderList/orderList.vue
  3. 8 0
      request/api.js
  4. 25 0
      utils/enum.workorderEvaluation.js

+ 15 - 5
components/seiminModel/seiminModel.vue

@@ -38,13 +38,13 @@
38
           <view class="evaluate_item">
38
           <view class="evaluate_item">
39
             <text class="evaluate_label">星级:</text>
39
             <text class="evaluate_label">星级:</text>
40
             <view class="evaluate_icons">
40
             <view class="evaluate_icons">
41
-              <text class="pda" :class="star" v-for="(star,i) in stars" :key="i"></text>
41
+              <text class="pda" :class="star" v-for="(star,i) in stars" :key="i" @click="clickStar(i)"></text>
42
             </view>
42
             </view>
43
           </view>
43
           </view>
44
           <view class="evaluate_item">
44
           <view class="evaluate_item">
45
             <text class="evaluate_label">评级:</text>
45
             <text class="evaluate_label">评级:</text>
46
             <textarea :focus="true" class="evaluate_textarea" auto-height :maxlength="100"
46
             <textarea :focus="true" class="evaluate_textarea" auto-height :maxlength="100"
47
-              :placeholder-style="placeholderStyle" placeholder="请输入..." v-model="urgentTextArea" />
47
+              :placeholder-style="placeholderStyle" placeholder="请输入..." v-model="evaluateTextArea" />
48
           </view>
48
           </view>
49
         </view>
49
         </view>
50
       </view>
50
       </view>
@@ -101,6 +101,8 @@
101
         placeholderStyle: 'color:#999;padding:18rpx;',
101
         placeholderStyle: 'color:#999;padding:18rpx;',
102
         // 星级
102
         // 星级
103
         stars: [],
103
         stars: [],
104
+        // 评价内容
105
+        evaluateTextArea: '',
104
       };
106
       };
105
     },
107
     },
106
     computed: {
108
     computed: {
@@ -110,7 +112,6 @@
110
     methods: {
112
     methods: {
111
       // 显示弹窗
113
       // 显示弹窗
112
       show(args = {}) {
114
       show(args = {}) {
113
-        this.stars = ['pda-haoping','pda-haoping','pda-haoping','pda-haoping','pda-haoping']
114
         // 默认配置项
115
         // 默认配置项
115
         let defaultOptions = {
116
         let defaultOptions = {
116
           skin: "default", //弹窗风格(default|toast|qrcode|)
117
           skin: "default", //弹窗风格(default|toast|qrcode|)
@@ -155,9 +156,12 @@
155
         this.opts = Object.assign({}, defaultOptions, args, {
156
         this.opts = Object.assign({}, defaultOptions, args, {
156
           isVisible: true,
157
           isVisible: true,
157
         });
158
         });
158
-        // 如果是动态二维码,则需要发起请求
159
         if (this.opts.skin === "qrcode") {
159
         if (this.opts.skin === "qrcode") {
160
+          // 如果是动态二维码,则需要发起请求
160
           this.showNurseCode();
161
           this.showNurseCode();
162
+        } else if (this.opts.skin === 'evaluate') {
163
+          // 如果是评价弹窗,则默认选中五个笑脸
164
+          this.stars = ['pda-haoping', 'pda-haoping', 'pda-haoping', 'pda-haoping', 'pda-haoping'];
161
         }
165
         }
162
       },
166
       },
163
       // 关闭弹窗
167
       // 关闭弹窗
@@ -215,6 +219,12 @@
215
           }
219
           }
216
         }, 1000);
220
         }, 1000);
217
       },
221
       },
222
+      // 选择星级
223
+      clickStar(index) {
224
+        for (let i = 0; i < this.stars.length; i++) {
225
+          this.$set(this.stars, i, i > index ? 'pda-haoping1' : 'pda-haoping');
226
+        }
227
+      },
218
     },
228
     },
219
   };
229
   };
220
 </script>
230
 </script>
@@ -234,7 +244,7 @@
234
       bottom: 0;
244
       bottom: 0;
235
       left: 0;
245
       left: 0;
236
       margin: auto;
246
       margin: auto;
237
-      z-index: 9999;
247
+      z-index: 999;
238
       @include flex(center, center);
248
       @include flex(center, center);
239
 
249
 
240
       .seiminModel_container {
250
       .seiminModel_container {

+ 43 - 5
pages/orderList/orderList.vue

@@ -98,11 +98,15 @@
98
     reqFetchDataList,
98
     reqFetchDataList,
99
     reqDelWorkOrder,
99
     reqDelWorkOrder,
100
     reqUrge,
100
     reqUrge,
101
-    reqDirectStartOrder
101
+    reqDirectStartOrder,
102
+    reqEvaluate,
102
   } from "../../request/api.js";
103
   } from "../../request/api.js";
103
   import {
104
   import {
104
     GDSTATE
105
     GDSTATE
105
   } from "../../utils/enum.gdstate.js";
106
   } from "../../utils/enum.gdstate.js";
107
+  import {
108
+    WORKORDEREVALUATION
109
+  } from "../../utils/enum.workorderEvaluation.js";
106
   export default {
110
   export default {
107
     name: 'orderList',
111
     name: 'orderList',
108
     data() {
112
     data() {
@@ -160,25 +164,55 @@
160
             {
164
             {
161
               click: () => {
165
               click: () => {
162
                 console.log('确定');
166
                 console.log('确定');
167
+                let serviceEvaluationId;
163
                 this.$refs.seiminModel.close();
168
                 this.$refs.seiminModel.close();
164
                 uni.showLoading({
169
                 uni.showLoading({
165
                   title: '加载中',
170
                   title: '加载中',
166
                   mask: true,
171
                   mask: true,
167
                 })
172
                 })
168
-                reqDelWorkOrder(id).then(res => {
173
+                //算出评级
174
+                switch (this.$refs.seiminModel.stars.indexOf('pda-haoping1')) {
175
+                  case -1:
176
+                    //五星
177
+                    serviceEvaluationId = WORKORDEREVALUATION['非常好评'];
178
+                    break;
179
+                  case 1:
180
+                    //一星
181
+                    serviceEvaluationId = WORKORDEREVALUATION['极差'];
182
+                    break;
183
+                  case 2:
184
+                    //二星
185
+                    serviceEvaluationId = WORKORDEREVALUATION['差'];
186
+                    break;
187
+                  case 3:
188
+                    //三星
189
+                    serviceEvaluationId = WORKORDEREVALUATION['一般'];
190
+                    break;
191
+                  case 4:
192
+                    //四星
193
+                    serviceEvaluationId = WORKORDEREVALUATION['好评'];
194
+                    break;
195
+                }
196
+                let postData = {
197
+                  serviceEvaluation: {
198
+                    id: serviceEvaluationId
199
+                  },
200
+                  remark: this.$refs.seiminModel.evaluateTextArea,
201
+                };
202
+                reqEvaluate(id, postData).then(res => {
169
                   uni.hideLoading();
203
                   uni.hideLoading();
170
                   if (res.status == 200) {
204
                   if (res.status == 200) {
171
                     this.$refs.seiminModel.show({
205
                     this.$refs.seiminModel.show({
172
                       skin: 'toast',
206
                       skin: 'toast',
173
                       icon: 'success',
207
                       icon: 'success',
174
-                      content: '撤销成功',
208
+                      content: '评价成功',
175
                     })
209
                     })
176
                     this.init();
210
                     this.init();
177
                   } else {
211
                   } else {
178
                     this.$refs.seiminModel.show({
212
                     this.$refs.seiminModel.show({
179
                       skin: 'toast',
213
                       skin: 'toast',
180
                       icon: 'error',
214
                       icon: 'error',
181
-                      content: '撤销失败',
215
+                      content: '评价失败',
182
                     })
216
                     })
183
                   }
217
                   }
184
                 })
218
                 })
@@ -285,6 +319,10 @@
285
                 console.log('确定', this.$refs.seiminModel.urgentTextArea);
319
                 console.log('确定', this.$refs.seiminModel.urgentTextArea);
286
                 const urgentTextArea = this.$refs.seiminModel.urgentTextArea;
320
                 const urgentTextArea = this.$refs.seiminModel.urgentTextArea;
287
                 if (urgentTextArea.trim() === '') {
321
                 if (urgentTextArea.trim() === '') {
322
+                  uni.showToast({
323
+                    icon: 'none',
324
+                    title: '请填写加急原因',
325
+                  })
288
                   return;
326
                   return;
289
                 }
327
                 }
290
                 this.$refs.seiminModel.close();
328
                 this.$refs.seiminModel.close();
@@ -669,7 +707,7 @@
669
               flex: 1;
707
               flex: 1;
670
               background-color: transparent;
708
               background-color: transparent;
671
               position: relative;
709
               position: relative;
672
-              @include flex(center,center);
710
+              @include flex(center, center);
673
 
711
 
674
               &::before {
712
               &::before {
675
                 content: '';
713
                 content: '';

+ 8 - 0
request/api.js

@@ -115,3 +115,11 @@ export const reqDirectStartOrder = (id) =>
115
   request({
115
   request({
116
     url: `/api/directStartOrder/${id}`,
116
     url: `/api/directStartOrder/${id}`,
117
   });
117
   });
118
+
119
+// 评价
120
+export const reqEvaluate = (id, postData) =>
121
+  request({
122
+    url: `/nurse/workOrder/evaluate/${id}`,
123
+    data: postData,
124
+    method: 'POST'
125
+  });

+ 25 - 0
utils/enum.workorderEvaluation.js

@@ -0,0 +1,25 @@
1
+import {
2
+  createEnum
3
+} from './index.js';
4
+let data = [{
5
+    name: '非常好评',
6
+    value: '354'
7
+  },
8
+  {
9
+    name: '好评',
10
+    value: '355'
11
+  },
12
+  {
13
+    name: '一般',
14
+    value: '356'
15
+  },
16
+  {
17
+    name: '差',
18
+    value: '357'
19
+  },
20
+  {
21
+    name: '极差',
22
+    value: '358'
23
+  },
24
+]
25
+export const WORKORDEREVALUATION = createEnum(data); //工单评价