Browse Source

区域地点回归

seimin 3 years ago
parent
commit
d647be6fff
3 changed files with 133 additions and 128 deletions
  1. 1 1
      config/index.js
  2. 1 1
      src/views/incidentDetails.vue
  3. 131 126
      src/views/repair.vue

+ 1 - 1
config/index.js

@@ -46,7 +46,7 @@ module.exports = {
46 46
 
47 47
     // https://webpack.js.org/configuration/devtool/#development
48 48
     // 住了一行
49
-    // devtool: 'cheap-module-eval-source-map',
49
+    devtool: 'source-map',
50 50
 
51 51
     // If you have problems debugging vue-files in devtools,
52 52
     // set this to false - it *may* help

+ 1 - 1
src/views/incidentDetails.vue

@@ -30,7 +30,7 @@
30 30
                     报修地址:
31 31
                 </div>
32 32
                 <div>
33
-                    {{data.address}}
33
+                    {{data.incident.place.area.area}} {{data.incident.place.place}} {{data.address}}
34 34
                 </div>
35 35
             </div>
36 36
         </div>

+ 131 - 126
src/views/repair.vue

@@ -23,15 +23,19 @@
23 23
 
24 24
         <cube-form-item :field="fields[0]"></cube-form-item>
25 25
         <cube-form-item :field="fields[1]"></cube-form-item>
26
-        <!-- <cube-form-item :field="fields[2]" class="btn_plcaeholde"></cube-form-item> -->
27
-        <cube-form-item :field="fields[3]">
26
+        <cube-form-item
27
+          :field="fields[2]"
28
+          class="btn_plcaeholde"
29
+        ></cube-form-item>
30
+        <cube-form-item :field="fields[3]"></cube-form-item>
31
+        <!-- <cube-form-item :field="fields[3]">
28 32
           <cube-input
29 33
             @focus="showAddress(model.address)"
30 34
             @input="showAddress(model.address)"
31 35
             v-model="model.address"
32 36
             >{{ model.address || "请输入故障地点" }}</cube-input
33 37
           >
34
-        </cube-form-item>
38
+        </cube-form-item> -->
35 39
         <cube-form-item
36 40
           :field="fields[6]"
37 41
           v-if="ifCreate.valueconfig == 1"
@@ -72,103 +76,103 @@ import DatePicker from "./../components/date-picker.vue";
72 76
 import CubeExtendPopup from "./../components/extend-popup.vue";
73 77
 import LoadIng from "./../views/loading.vue";
74 78
 import PrompTing from "./../views/prompting.vue";
75
-// const PCA = {
76
-//   props: {
77
-//     value: {
78
-//       default() {
79
-//         return [];
80
-//       }
81
-//     }
82
-//   },
83
-//   data() {
84
-//     return {
85
-//       selected: [],
86
-//       selectData: []
87
-//     };
88
-//   },
89
-//   render(createElement) {
90
-//     return createElement(
91
-//       "cube-input",
92
-//       {
93
-//         on: {
94
-//           click: this.showPicker
95
-//         }
96
-//       },
97
-//       this.selected.length ? this.selected.join(" ") : "请选择区域地点"
98
-//     );
99
-//   },
100
-//   mounted() {},
101
-//   methods: {
102
-//     showPicker() {
103
-//       this.picker.show();
104
-//     },
105
-//     selectHandler(selectedVal, selectedIndex, selectedTxt) {
106
-//       this.selected = selectedTxt;
107
-//       this.$emit("input", selectedVal);
108
-//     },
109
-//     getAreaData() {
110
-//       var that = this;
111
-//       this.$http
112
-//         .post("service/user/data/fetchDataList/area", {
113
-//           idx: 0,
114
-//           sum: 1000,
115
-//           area: {
116
-//             wechatArea: true
117
-//           }
118
-//         })
119
-//         .then(function(res) {
120
-//           var data = res.data.list;
121
-//           for (var i = 0; i < data.length; i++) {
122
-//             that.selectData.push({
123
-//               text: data[i].area,
124
-//               value: data[i].id,
125
-//               children: []
126
-//             });
127
-//           }
128
-//         });
129
-//     },
130
-//     getPlaceData() {
131
-//       var that = this;
132
-//       this.$http
133
-//         .post("service/user/data/fetchDataList/place", {
134
-//           idx: 0,
135
-//           sum: 1000,
136
-//           area: {
137
-//             wechatAreaId: ""
138
-//           }
139
-//         })
140
-//         .then(function(res) {
141
-//           var data = res.data.list;
142
-//           for (var i = 0; i < data.length; i++) {
143
-//             for (var j = 0; j < that.selectData.length; j++) {
144
-//               if (data[i].area.id == that.selectData[j].value) {
145
-//                 that.selectData[j].children.push({
146
-//                   text: data[i].place,
147
-//                   value: data[i].id
148
-//                 });
149
-//               }
150
-//             }
151
-//           }
152
-//           that.picker = that.$createCascadePicker({
153
-//             title: "区域地点选择",
154
-//             data: that.selectData,
155
-//             selectedIndex: [0, 0],
156
-//             onSelect: that.selectHandler
157
-//           });
158
-//         });
159
-//     },
160
-//     getParamsPlace() {
161
-//       var data = JSON.parse(localStorage.getItem("loginUser"));
162
-//       this.selected[0] = data.place.area.area;
163
-//       this.selected[1] = data.place.place;
164
-//     }
165
-//   },
166
-//   created() {
167
-//     this.getAreaData();
168
-//     this.getPlaceData();
169
-//     this.getParamsPlace();
170
-//   }
171
-// };
79
+const PCA = {
80
+  props: {
81
+    value: {
82
+      default() {
83
+        return [];
84
+      }
85
+    }
86
+  },
87
+  data() {
88
+    return {
89
+      selected: [],
90
+      selectData: []
91
+    };
92
+  },
93
+  render(createElement) {
94
+    return createElement(
95
+      "cube-button",
96
+      {
97
+        on: {
98
+          click: this.showPicker
99
+        }
100
+      },
101
+      this.selected.length ? this.selected.join(" ") : "请选择区域地点"
102
+    );
103
+  },
104
+  mounted() {},
105
+  methods: {
106
+    showPicker() {
107
+      this.picker.show();
108
+    },
109
+    selectHandler(selectedVal, selectedIndex, selectedTxt) {
110
+      this.selected = selectedTxt;
111
+      this.$emit("input", selectedVal);
112
+    },
113
+    getAreaData() {
114
+      var that = this;
115
+      this.$http
116
+        .post("service/user/data/fetchDataList/area", {
117
+          idx: 0,
118
+          sum: 1000,
119
+          area: {
120
+            wechatArea: true
121
+          }
122
+        })
123
+        .then(function(res) {
124
+          var data = res.data.list;
125
+          for (var i = 0; i < data.length; i++) {
126
+            that.selectData.push({
127
+              text: data[i].area,
128
+              value: data[i].id,
129
+              children: []
130
+            });
131
+          }
132
+        });
133
+    },
134
+    getPlaceData() {
135
+      var that = this;
136
+      this.$http
137
+        .post("service/user/data/fetchDataList/place", {
138
+          idx: 0,
139
+          sum: 1000,
140
+          area: {
141
+            wechatAreaId: ""
142
+          }
143
+        })
144
+        .then(function(res) {
145
+          var data = res.data.list;
146
+          for (var i = 0; i < data.length; i++) {
147
+            for (var j = 0; j < that.selectData.length; j++) {
148
+              if (data[i].area.id == that.selectData[j].value) {
149
+                that.selectData[j].children.push({
150
+                  text: data[i].place,
151
+                  value: data[i].id
152
+                });
153
+              }
154
+            }
155
+          }
156
+          that.picker = that.$createCascadePicker({
157
+            title: "区域地点选择",
158
+            data: that.selectData,
159
+            selectedIndex: [0, 0],
160
+            onSelect: that.selectHandler
161
+          });
162
+        });
163
+    },
164
+    getParamsPlace() {
165
+      var data = JSON.parse(localStorage.getItem("loginUser"));
166
+      this.selected[0] = data.place.area.area;
167
+      this.selected[1] = data.place.place;
168
+    }
169
+  },
170
+  created() {
171
+    this.getAreaData();
172
+    this.getPlaceData();
173
+    this.getParamsPlace();
174
+  }
175
+};
172 176
 const delay = (function() {
173 177
   let timer = 0;
174 178
   return function(callback, ms) {
@@ -181,9 +185,9 @@ export default {
181 185
     return {
182 186
       loginUser: null,
183 187
       // 故障地点下拉数据
184
-      addressData: [],
188
+      // addressData: [],
185 189
       // 故障地点选中文本
186
-      addressText: "",
190
+      // addressText: "",
187 191
       // 报修科室下拉数据
188 192
       deptIdData: [],
189 193
       // 报修科室选中文本
@@ -214,7 +218,7 @@ export default {
214 218
       phone: "",
215 219
       model: {
216 220
         contactsInformation: "",
217
-        // pcaValue: [],
221
+        pcaValue: [],
218 222
         address: "",
219 223
         description: "",
220 224
         bxcode: "",
@@ -250,7 +254,7 @@ export default {
250 254
           }
251 255
         },
252 256
         {
253
-          component: "input",
257
+          component: PCA,
254 258
           modelKey: "pcaValue",
255 259
           label: "区域地点:",
256 260
           rules: {
@@ -261,15 +265,16 @@ export default {
261 265
           }
262 266
         },
263 267
         {
264
-          type: "input",
268
+          type: "textarea",
265 269
           modelKey: "address",
266
-          label: "故障地点:",
270
+          label: "详细地址:",
267 271
           props: {
268
-            placeholder: "请输入故障地点"
272
+            placeholder: "请输入详细地址"
269 273
           },
270 274
           rules: {
271 275
             required: true
272
-          }
276
+          },
277
+          debounce: 100
273 278
         },
274 279
         {
275 280
           type: "textarea",
@@ -363,18 +368,18 @@ export default {
363 368
       });
364 369
     },
365 370
     submitHandler() {
366
-      // if (this.model.pcaValue.length == 2) {
367
-      //   this.model.areaId = this.model.pcaValue[this.model.pcaValue.length - 2];
368
-      //   this.model.placeId = this.model.pcaValue[
369
-      //     this.model.pcaValue.length - 1
370
-      //   ];
371
-      // } else if (this.model.pcaValue.length == 1) {
372
-      //   this.model.areaId = this.model.pcaValue[this.model.pcaValue.length - 1];
373
-      //   this.model.placeId = "";
374
-      // }
371
+      if (this.model.pcaValue.length == 2) {
372
+        this.model.areaId = this.model.pcaValue[this.model.pcaValue.length - 2];
373
+        this.model.placeId = this.model.pcaValue[
374
+          this.model.pcaValue.length - 1
375
+        ];
376
+      } else if (this.model.pcaValue.length == 1) {
377
+        this.model.areaId = this.model.pcaValue[this.model.pcaValue.length - 1];
378
+        this.model.placeId = "";
379
+      }
375 380
 
376 381
       this.model["requester"] = this.loginUser;
377
-      // delete this.model.pcaValue;
382
+      delete this.model.pcaValue;
378 383
       this.model.fileUrl = "url";
379 384
       this.model.sourceType = "wechatRequesterIncident";
380 385
       var that = this;
@@ -547,9 +552,9 @@ export default {
547 552
           ? this.loginUser.dept.phone
548 553
           : "";
549 554
       this.model.contacts = this.loginUser.name;
550
-      this.model.address = this.loginUser.place
551
-        ? this.loginUser.place.area.area + this.loginUser.place.place
552
-        : "";
555
+      this.model.address=this.loginUser.houseNumber;
556
+      this.model.pcaValue[0]=this.loginUser.place.area.id;
557
+      this.model.pcaValue[1]=this.loginUser.place.id;
553 558
       this.model.deptId = this.loginUser.dept ? this.loginUser.dept.dept : "";
554 559
     }
555 560
   },
@@ -592,11 +597,11 @@ export default {
592 597
     // 获取报修主体
593 598
     this.deptIdNum = this.loginUser.dept ? this.loginUser.dept.id : "";
594 599
     this.deptIdText = this.loginUser.dept ? this.loginUser.dept.dept : "";
595
-    this.addressText = this.loginUser.place
596
-      ? this.loginUser.place.place
597
-        ? this.loginUser.place.area.area + this.loginUser.place.place
598
-        : this.loginUser.place.area
599
-      : null;
600
+    // this.addressText = this.loginUser.place
601
+    //   ? this.loginUser.place.place
602
+    //     ? this.loginUser.place.area.area + this.loginUser.place.place
603
+    //     : this.loginUser.place.area
604
+    //   : null;
600 605
     this.$refs.upload.pause();
601 606
   },
602 607
   components: {