Commit bb286f60958bdb433ee448a02cfc10932569c09d

Authored by 郭娟
1 parent c0431852
Exists in dev

fix:优化添加订单的功能逻辑

frontend/front/src/utils/enums.js 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +export const sys_sf = {
  2 + Y: {code: '1', info: '是'},
  3 + N: {code: '0', info: '否'}
  4 +};
  5 +
  6 +/**
  7 + * 订单来源枚举
  8 + */
  9 +export const dd_ddly = {
  10 + XSXD: {code: '1', info: '线上下单'},
  11 + WDPS: {code: '2', info: '无单配送'},
  12 + BZXD: {code: '3', info: '帮助下单'}
  13 +};
  14 +
  15 +/**
  16 + * 付款方式枚举
  17 + */
  18 +export const dd_fkfs = {
  19 + HDFK: {code: '1', info: '货到付款'},
  20 + ZXZF: {code: '2', info: '在线支付'}
  21 +};
  22 +
  23 +/**
  24 + * 配送方式枚举
  25 + */
  26 +export const dd_psfs = {
  27 + PS: {code: '1', info: '配送'},
  28 + ZT: {code: '2', info: '自提'}
  29 +};
  30 +
  31 +
  32 +/**
  33 + * 付款方式枚举
  34 + */
  35 +export const dd_zffs = {
  36 + CASH: {code: 'CASH', info: '现金支付'},
  37 + WX_PAY: {code: 'WX_PAY', info: '微信支付'},
  38 + ALI_PAY: {code: 'ALI_PAY', info: '支付宝支付'}
  39 +};
  40 +
  41 +
  42 +/**
  43 + * 支付场景枚举
  44 + */
  45 +export const dd_zflx = {
  46 + APP: {code: 'APP', info: '移动应用内的支付场景'},
  47 + NATIVE: {code: 'NATIVE', info: '线下消费场景'},
  48 + JSAPI: {code: 'JSAPI', info: '公众号内或者微信内的网页支付'},
  49 + MWEB: {code: 'MWEB', info: '手机浏览器中的支付场景'}
  50 +};
  51 +
  52 +
  53 +export const dd_ddzt = {
  54 + CREATED: {code: '201', info: '待支付'},
  55 + PAID: {code: '202', info: '待配送'},
  56 + SHIPPED: {code: '203', info: '配送中'},
  57 + COMPLETED: {code: '204', info: '已完成'},
  58 + CANCELLED: {code: '205', info: '取消中'},
  59 + REFUNDING: {code: '206', info: '退款中'},
  60 + REFUNDED: {code: '207', info: '已取消'}
  61 +};
  62 +
  63 +
  64 +
  65 +
frontend/front/src/views/pages/newOrder/components/bxd.vue
1 <template> 1 <template>
2 <div class="containerSty"> 2 <div class="containerSty">
3 - <el-row>  
4 - <el-col :span="24">  
5 - <el-form :model="repairForm" label-width="73px" ref="repairForm"  
6 - class="demo-form-inline;">  
7 - <div style="display:flex;">  
8 - <el-form-item label="问题小类:">  
9 - <el-select v-model="repairForm.wtxl" style="width: calc(100vw / 5);" placeholder="请选择问题小类">  
10 - <el-option  
11 - v-for="item in bxxlOptions"  
12 - :key="item.value"  
13 - :label="item.label"  
14 - :value="item.value">  
15 - </el-option>  
16 - </el-select>  
17 - </el-form-item>  
18 - <el-form-item label="报修类型:" label-width="100px">  
19 - <el-select v-model="repairForm.bxlx" style="width: calc(100vw / 4.5);" placeholder="请选择报修类型">  
20 - <el-option  
21 - v-for="item in bxlxOptions"  
22 - :key="item.label"  
23 - :label="item.label"  
24 - :value="item.label">  
25 - </el-option>  
26 - </el-select>  
27 - </el-form-item>  
28 - </div>  
29 - <el-form-item label="问题类型:">  
30 - <el-input v-model="repairForm.wtlx" type="textarea" :rows="2" clearable placeholder="请输入问题描述"></el-input>  
31 - </el-form-item>  
32 - <el-form-item label="图片:">  
33 - <el-upload  
34 - :action="action"  
35 - accept=".jpg,.jpeg,.png"  
36 - list-type="picture-card"  
37 - :file-list="repairForm.fileList"  
38 - class="labUrlClass"  
39 - :on-success="handleImgSuccess"  
40 - :before-upload="beforeAvatarUpload"  
41 - :http-request="httpRequest"  
42 - multiple  
43 - >  
44 - <i slot="default" class="el-icon-plus"></i>  
45 - <span class="el-upload__text">选择照片</span>  
46 - <div slot="file" slot-scope="{ file }">  
47 -  
48 - <img  
49 - class="el-upload-list__item-thumbnail"  
50 - :src="file.url"  
51 - alt=""  
52 - />  
53 - <span class="el-upload-list__item-actions"> 3 + <el-form :model="repairForm" :rules="repairFormRules" label-width="82px" ref="repairForm">
  4 + <div style="display: flex;">
  5 + <el-form-item label="问题小类:" prop="wtxl">
  6 + <el-select v-model="repairForm.wtxl" style="width: calc(100vw / 5.2);" clearable placeholder="请选择问题小类">
  7 + <el-option
  8 + v-for="item in bxxlOptions"
  9 + :key="item.value"
  10 + :label="item.label"
  11 + :value="item.value">
  12 + </el-option>
  13 + </el-select>
  14 + </el-form-item>
  15 + <el-form-item label="报修类型:" label-width="100px" prop="bxlx">
  16 + <el-select v-model="repairForm.bxlx" style="width: calc(100vw / 5.8);" clearable placeholder="请选择报修类型">
  17 + <el-option
  18 + v-for="item in bxlxOptions"
  19 + :key="item.label"
  20 + :label="item.label"
  21 + :value="item.label">
  22 + </el-option>
  23 + </el-select>
  24 + </el-form-item>
  25 + </div>
  26 + <el-form-item label="问题类型:" prop="wtlx">
  27 + <el-input v-model="repairForm.wtlx" type="textarea" :rows="2" clearable placeholder="请输入问题描述"></el-input>
  28 + </el-form-item>
  29 + <el-form-item label="图片:">
  30 + <el-upload
  31 + :action="action"
  32 + accept=".jpg,.jpeg,.png"
  33 + list-type="picture-card"
  34 + :file-list="repairForm.fileList"
  35 + class="labUrlClass"
  36 + :on-success="handleImgSuccess"
  37 + :before-upload="beforeAvatarUpload"
  38 + :http-request="httpRequest"
  39 + multiple
  40 + >
  41 + <i slot="default" class="el-icon-plus"></i>
  42 + <div style="position: absolute;top: 30px;left: 45px" class="el-upload__text">选择照片</div>
  43 + <div slot="file" slot-scope="{ file }">
  44 + <img
  45 + class="el-upload-list__item-thumbnail"
  46 + :src="file.url"
  47 + alt=""
  48 + />
  49 + <span class="el-upload-list__item-actions">
54 <span 50 <span
55 class="el-upload-list__item-preview" 51 class="el-upload-list__item-preview"
56 @click="handlePictureCardPreview(file)" 52 @click="handlePictureCardPreview(file)"
@@ -64,15 +60,13 @@ @@ -64,15 +60,13 @@
64 <i class="el-icon-delete"></i> 60 <i class="el-icon-delete"></i>
65 </span> 61 </span>
66 </span> 62 </span>
67 - </div>  
68 - </el-upload>  
69 - </el-form-item>  
70 - </el-form>  
71 - </el-col>  
72 - <el-dialog :visible.sync="dialogVisible">  
73 - <img width="100%" :src="dialogImageUrl" alt="">  
74 - </el-dialog>  
75 - </el-row> 63 + </div>
  64 + </el-upload>
  65 + </el-form-item>
  66 + </el-form>
  67 + <el-dialog :visible.sync="dialogVisible" width="400px" title="预览图片">
  68 + <img width="100%" :src="dialogImageUrl" alt="">
  69 + </el-dialog>
76 </div> 70 </div>
77 </template> 71 </template>
78 72
@@ -83,6 +77,17 @@ export default { @@ -83,6 +77,17 @@ export default {
83 name: "bxd", 77 name: "bxd",
84 data(){ 78 data(){
85 return { 79 return {
  80 + repairFormRules:{
  81 + wtxl:[
  82 + {required:true,message:'请选择问题小类',trigger:'change'}
  83 + ],
  84 + bxlx:[
  85 + {required:true,message:'请选择报修类型',trigger:'change'}
  86 + ],
  87 + wtlx:[
  88 + {required:true,message:'请输入问题类型描述',trigger:'blur'}
  89 + ]
  90 + },
86 bxlxOptions:[ 91 bxlxOptions:[
87 { 92 {
88 value: '燃气泄漏', 93 value: '燃气泄漏',
@@ -148,6 +153,20 @@ export default { @@ -148,6 +153,20 @@ export default {
148 ...this.repairForm 153 ...this.repairForm
149 }; 154 };
150 }, 155 },
  156 + onSubmit(){
  157 + let validFlag = false;
  158 + this.$refs.repairForm.validate((valid) => {
  159 + if (valid) {
  160 + validFlag = true;
  161 + } else {
  162 + validFlag = false;
  163 + }
  164 + });
  165 + return validFlag;
  166 + },
  167 + onReset(){
  168 + this.$refs.repairForm.resetFields();
  169 + },
151 handlePictureCardRemove(file, fileList) { 170 handlePictureCardRemove(file, fileList) {
152 console.log(file, this.repairForm.fileList); 171 console.log(file, this.repairForm.fileList);
153 const index = this.repairForm.fileList.findIndex((item) => { 172 const index = this.repairForm.fileList.findIndex((item) => {
@@ -199,9 +218,6 @@ export default { @@ -199,9 +218,6 @@ export default {
199 // this.form.userId = this.$store.state.user.userInfo.user.userId 218 // this.form.userId = this.$store.state.user.userInfo.user.userId
200 } 219 }
201 }, 220 },
202 - onSubmit(){  
203 - console.log('打印是否触发这个事件')  
204 - },  
205 handleRemove(){ 221 handleRemove(){
206 222
207 }, 223 },
@@ -250,6 +266,11 @@ export default { @@ -250,6 +266,11 @@ export default {
250 266
251 <style lang="scss" scoped> 267 <style lang="scss" scoped>
252 .containerSty{ 268 .containerSty{
  269 + height: 100%;
  270 + width: 100%;
  271 + ::v-deep.el-upload--picture-card{
  272 + position: relative;
  273 + }
253 274
254 } 275 }
255 276
frontend/front/src/views/pages/newOrder/components/dqd.vue
@@ -37,12 +37,9 @@ @@ -37,12 +37,9 @@
37 </div> 37 </div>
38 <el-row style="margin-top: 10px"> 38 <el-row style="margin-top: 10px">
39 <el-col :span="24"> 39 <el-col :span="24">
40 - <el-form :model="form" label-width="75px">  
41 - <el-form-item label="订单备注:">  
42 - <el-input v-model="form.bz" type="textarea" :rows="2" style="width: 100%" clearable placeholder="请输入订单备注"></el-input>  
43 - </el-form-item>  
44 - <el-form-item label="配送方式:">  
45 - <el-select v-model="form.psfs" placeholder="请选择"> 40 + <el-form :model="form" ref="form" :rules="formRules" label-width="82px">
  41 + <el-form-item label="配送方式:" prop="psfs">
  42 + <el-select v-model="form.psfs" style="width: 100%" clearable placeholder="请选择">
46 <el-option 43 <el-option
47 v-for="item in psfsOptions" 44 v-for="item in psfsOptions"
48 :key="item.KEY_" 45 :key="item.KEY_"
@@ -51,6 +48,9 @@ @@ -51,6 +48,9 @@
51 </el-option> 48 </el-option>
52 </el-select> 49 </el-select>
53 </el-form-item> 50 </el-form-item>
  51 + <el-form-item label="订单备注:">
  52 + <el-input v-model="form.bz" type="textarea" :rows="2" style="width: 100%" clearable placeholder="请输入订单备注"></el-input>
  53 + </el-form-item>
54 </el-form> 54 </el-form>
55 </el-col> 55 </el-col>
56 <el-col :span="24" style="border: 1px solid #dcdfe6;padding: 20px"> 56 <el-col :span="24" style="border: 1px solid #dcdfe6;padding: 20px">
@@ -103,6 +103,11 @@ export default { @@ -103,6 +103,11 @@ export default {
103 name: "bxd", 103 name: "bxd",
104 data(){ 104 data(){
105 return { 105 return {
  106 + formRules:{
  107 + psfs:[
  108 + {required:true,message:'请选择配送方式',trigger:'change'}
  109 + ],
  110 + },
106 form:{ 111 form:{
107 qplxID:'', 112 qplxID:'',
108 spje:'', 113 spje:'',
@@ -178,9 +183,20 @@ export default { @@ -178,9 +183,20 @@ export default {
178 console.log('打印gasStationImg', this.chooseProductList); 183 console.log('打印gasStationImg', this.chooseProductList);
179 }) 184 })
180 }, 185 },
181 - onSubmit(val){ 186 + onSubmit(){
  187 + let validFlag = false;
  188 + this.$refs.form.validate((valid) => {
  189 + if (valid) {
  190 + validFlag = true;
  191 + } else {
  192 + validFlag = false;
  193 + }
  194 + });
  195 + return validFlag;
  196 + },
  197 + onReset(){
  198 + this.$refs.form.resetFields();
182 }, 199 },
183 -  
184 handleChoseProduct(row,index,type){ 200 handleChoseProduct(row,index,type){
185 switch (type){ 201 switch (type){
186 case 'chooseProduct': 202 case 'chooseProduct':
frontend/front/src/views/pages/newOrder/index.vue
@@ -89,19 +89,25 @@ @@ -89,19 +89,25 @@
89 <el-col :span="24" style="height: calc(100% - 300px); overflow-y: auto"> 89 <el-col :span="24" style="height: calc(100% - 300px); overflow-y: auto">
90 <el-table :data="memberOrderListData" style="margin-top: 10px;"> 90 <el-table :data="memberOrderListData" style="margin-top: 10px;">
91 <template v-if="tabs.activeName=='dqd'"> 91 <template v-if="tabs.activeName=='dqd'">
92 - <el-table-column property="spmc" label="商品" > 92 + <el-table-column min-width="130px" property="spmc" label="商品" >
93 </el-table-column> 93 </el-table-column>
94 <el-table-column property="fDdzt" label="状态" > 94 <el-table-column property="fDdzt" label="状态" >
  95 + <template slot-scope="scope">
  96 + {{ddDdzt.get(scope.row.fDdzt)}}
  97 + </template>
95 </el-table-column> 98 </el-table-column>
96 <el-table-column property="fDdje" label="金额" ></el-table-column> 99 <el-table-column property="fDdje" label="金额" ></el-table-column>
97 - <el-table-column property="fCjsj" label="时间" ></el-table-column> 100 + <el-table-column property="fCjsj" min-width="150px" label="时间1" ></el-table-column>
98 </template> 101 </template>
99 <template v-else> 102 <template v-else>
100 <el-table-column property="fBxlx" label="问题类型" > 103 <el-table-column property="fBxlx" label="问题类型" >
101 </el-table-column> 104 </el-table-column>
102 <el-table-column property="fZt" label="状态" > 105 <el-table-column property="fZt" label="状态" >
  106 + <template slot-scope="scope">
  107 + <span>{{scope.row.fZt}}</span>
  108 + </template>
103 </el-table-column> 109 </el-table-column>
104 - <el-table-column property="fXdsj" label="上报时间" ></el-table-column> 110 + <el-table-column property="fXdsj" min-width="110px" label="上报时间" ></el-table-column>
105 </template> 111 </template>
106 <!-- <el-table-column label="操作" align="center">--> 112 <!-- <el-table-column label="操作" align="center">-->
107 <!-- <template slot-scope="scope">--> 113 <!-- <template slot-scope="scope">-->
@@ -129,6 +135,7 @@ @@ -129,6 +135,7 @@
129 </template> 135 </template>
130 136
131 <script> 137 <script>
  138 +import { dd_ddzt} from "@/utils/enums";
132 import {memberInfo,submitOrderPort,submitExpairPort,repairDataHistoryListPort,repairDataHistoryDetailPort,orderDataHistoryListPort} from '@/api/orderManage' 139 import {memberInfo,submitOrderPort,submitExpairPort,repairDataHistoryListPort,repairDataHistoryDetailPort,orderDataHistoryListPort} from '@/api/orderManage'
133 import { getDict } from '@/api/common.js' 140 import { getDict } from '@/api/common.js'
134 import bxd from './components/bxd' 141 import bxd from './components/bxd'
@@ -146,6 +153,7 @@ export default { @@ -146,6 +153,7 @@ export default {
146 showMapDialog:false, 153 showMapDialog:false,
147 hylxOptions:[], 154 hylxOptions:[],
148 memberOrderListData:[], 155 memberOrderListData:[],
  156 + ddDdzt: new Map(Object.values(dd_ddzt).map(item => [item.code, item.info])),
149 pageForm:{ 157 pageForm:{
150 total:0, 158 total:0,
151 size:10, 159 size:10,
@@ -213,7 +221,6 @@ export default { @@ -213,7 +221,6 @@ export default {
213 this.initData(); 221 this.initData();
214 }, 222 },
215 methods:{ 223 methods:{
216 -  
217 async initData(){ 224 async initData(){
218 let query = [{ 225 let query = [{
219 key: 'NAME_', 226 key: 'NAME_',
@@ -360,8 +367,7 @@ export default { @@ -360,8 +367,7 @@ export default {
360 } 367 }
361 }, 368 },
362 handleClick(){ 369 handleClick(){
363 - console.log('打印this.$refs[this.tabs.activeName]',this.$refs[this.tabs.activeName][0].onSubmit())  
364 - this.$refs[this.tabs.activeName][0].onSubmit(this.queryForm); 370 + this.$refs[this.tabs.activeName][0].onReset();
365 switch (this.tabs.activeName){ 371 switch (this.tabs.activeName){
366 case "dqd": 372 case "dqd":
367 if(this.memberForm.fUserid){ 373 if(this.memberForm.fUserid){
@@ -419,6 +425,7 @@ export default { @@ -419,6 +425,7 @@ export default {
419 let orderform = this.$refs[this.tabs.activeName][0].form 425 let orderform = this.$refs[this.tabs.activeName][0].form
420 switch (this.tabs.activeName){ 426 switch (this.tabs.activeName){
421 case "dqd": 427 case "dqd":
  428 + console.log('打印',this.$refs);
422 let params ={ 429 let params ={
423 psfs:orderform.psfs, 430 psfs:orderform.psfs,
424 khxx:{ 431 khxx:{
@@ -442,7 +449,14 @@ export default { @@ -442,7 +449,14 @@ export default {
442 qplxID:this.dqdForm.qplxID 449 qplxID:this.dqdForm.qplxID
443 } 450 }
444 } 451 }
445 - this.submitDqdForm(params); 452 + if(!this.dqdForm.qplxID){
  453 + this.$message.warning('请先选择商品!');
  454 + return false;
  455 + }
  456 + let validFlag = this.$refs.dqd[0].onSubmit();
  457 + if(validFlag){
  458 + this.submitDqdForm(params);
  459 + }
446 break; 460 break;
447 case 'bxd': 461 case 'bxd':
448 let repairform = this.$refs[this.tabs.activeName][0].repairForm; 462 let repairform = this.$refs[this.tabs.activeName][0].repairForm;
@@ -450,6 +464,8 @@ export default { @@ -450,6 +464,8 @@ export default {
450 if(repairform.fileList.length>0){ 464 if(repairform.fileList.length>0){
451 let photoList = repairform.fileList.map(item => JSON.parse(item.fileObj)); 465 let photoList = repairform.fileList.map(item => JSON.parse(item.fileObj));
452 wttp = JSON.stringify(photoList); 466 wttp = JSON.stringify(photoList);
  467 + }else{
  468 + wttp = null
453 } 469 }
454 console.log('打印repairform',repairform,this.memberForm); 470 console.log('打印repairform',repairform,this.memberForm);
455 let bxdParams ={ 471 let bxdParams ={
@@ -470,7 +486,10 @@ export default { @@ -470,7 +486,10 @@ export default {
470 wttp:wttp, 486 wttp:wttp,
471 hyxm:this.memberForm.fHync, 487 hyxm:this.memberForm.fHync,
472 } 488 }
473 - this.submitBxdForm(bxdParams); 489 + let bxdValidFlag = this.$refs.bxd[0].onSubmit();
  490 + if(bxdValidFlag){
  491 + this.submitBxdForm(bxdParams);
  492 + }
474 break; 493 break;
475 } 494 }
476 } else { 495 } else {
@@ -485,6 +504,7 @@ export default { @@ -485,6 +504,7 @@ export default {
485 if(res.state == true){ 504 if(res.state == true){
486 this.$message.success('提交成功!'); 505 this.$message.success('提交成功!');
487 this.$refs[this.tabs.activeName][0].resetForm(); 506 this.$refs[this.tabs.activeName][0].resetForm();
  507 + this.$refs.dqd[0].onReset();
488 this.orderGasForm.zj = ''; 508 this.orderGasForm.zj = '';
489 this.getOrderHistoryList(); 509 this.getOrderHistoryList();
490 } 510 }
@@ -497,6 +517,7 @@ export default { @@ -497,6 +517,7 @@ export default {
497 if(res.state == true){ 517 if(res.state == true){
498 this.$message.success('提交成功!'); 518 this.$message.success('提交成功!');
499 this.$refs[this.tabs.activeName][0].resetForm(); 519 this.$refs[this.tabs.activeName][0].resetForm();
  520 + this.$refs.bxd[0].onReset();
500 this.getRepairHistoryList(); 521 this.getRepairHistoryList();
501 } 522 }
502 }) 523 })