Browse Source

发货调整

pengyh 1 year ago
parent
commit
9484dd0f1c

+ 2 - 2
src/api/order.js

@@ -64,11 +64,11 @@ export function saveCode2(data) {
 }
 
 //删除发货条码
-export function delCode(data) {
+export function delCode(params) {
   return request({
     url: '/jx/goods/remove',
     method: 'post',
-    data
+    params
   })
 }
 

+ 39 - 25
src/views/mallManagement/order/order_list/index.vue

@@ -370,7 +370,9 @@
 								    <el-tab-pane label="发货数量" name="1"></el-tab-pane>
 								    <el-tab-pane label="发货条码" name="2"></el-tab-pane>
 								</el-tabs>
+								<br/>
 								<el-button size="small" v-show="typeIndex == 2" type="primary" @click="addCode()">新增</el-button>
+								<el-button size="small" v-show="typeIndex == 1" type="primary" @click="handleDownload('导入条码模板')">导入条码模板下载</el-button>
 								<div class="table">
 									<!-- 发货数量 -->
 									<el-form v-show="typeIndex == 1" ref="formData1" :model="formData1" label-width="0" size="small" label-position="left">
@@ -380,7 +382,11 @@
 											<el-table-column prop="smallName" align="center" label="小类"></el-table-column>
 											<el-table-column prop="goodsName" align="center" label="商品名称"></el-table-column>
 											<el-table-column prop="goodsMaterialSpecsName" align="center" label="规格型号"></el-table-column>
-											<el-table-column prop="goodsMaterialUnit" align="center" label="单位"></el-table-column>
+											<el-table-column prop="goodsMaterialUnit" align="center" label="单位">
+												<template slot-scope="scope">
+													{{scope.row.goodsMaterialUnit == 'C'?'整套':scope.row.goodsMaterialUnit == 'I'?"单个":''}}
+												</template>
+											</el-table-column>
 											<el-table-column prop="num" align="center" label="数量"></el-table-column>
 											<el-table-column prop="insideNum" align="center" label="内机数量"></el-table-column>
 											<el-table-column prop="outNum" align="center" label="外机数量"></el-table-column>
@@ -395,9 +401,8 @@
 													  :show-file-list='false'
 													  :http-request="importCode"
 													>
-														<el-button size="mini" type="text">导入条码</el-button>
+														<el-button @click="orderDetailId = scope.row.orderDetailId" size="mini" type="text">导入条码</el-button>
 													</el-upload>
-													<el-button size="mini" type="text" @click="handleDownload('导入条码')">模板下载</el-button>
 												</template>
 											</el-table-column>
 										</el-table>
@@ -495,7 +500,7 @@
 											<el-table-column prop="" align="center" label="条码" >
 												<template slot-scope="scope">
 													<el-form-item :prop="'list.' + scope.$index + '.materialCode'" :rules="[{ required: true, message: `请输入条码`, trigger: 'blur' }]">
-														<el-input type="number" v-model="scope.row.materialCode" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
+														<el-input type="text" v-model="scope.row.materialCode" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
 													</el-form-item>
 												</template>
 											</el-table-column>
@@ -716,6 +721,7 @@ export default {
 		isEdit1: 0,
 		isEdit2: 0,
 		joinCode: JSON.parse(localStorage.getItem('greemall_user')).joinCode,
+		orderDetailId: ''
     }
   },
   computed: {
@@ -831,6 +837,7 @@ export default {
 		row.stockQty = ''
 		row.uniqueCode = ''
 		row.materialList = await this.getMaterialList(row.specsName,row.goodsMaterialItemType)
+		row.orderDetailId = e.orderDetailId
 	},
 	async changeMaterial(e,row){
 		row.material = null
@@ -841,26 +848,31 @@ export default {
 	},
 	//发货新增条码
 	addCode(){
-		this.isEdit2 = 0
-		this.formData2.list.push({
-			brandId: '',
-			brandName: '',
-			mainId: '',
-			mainName: '',
-			stockQty: '',
-			smallId: '',
-			smallName: '',
-			goodsMaterialItemType: '',
-			goodsMaterialName: '',
-			goodsMaterialId: '',
-			materialCode: '',
-			uniqueCode: '',
-			specs: null,
-			specsName: '',
-			materialName: '',
-			material: null,
-			materialList: []
-		})
+		this.$refs.formData2.validate((valid) => {
+			if (valid) {
+				this.isEdit2 = 0
+				this.formData2.list.unshift({
+					brandId: '',
+					brandName: '',
+					mainId: '',
+					mainName: '',
+					stockQty: '',
+					smallId: '',
+					smallName: '',
+					goodsMaterialItemType: '',
+					goodsMaterialName: '',
+					goodsMaterialId: '',
+					materialCode: '',
+					uniqueCode: '',
+					specs: null,
+					specsName: '',
+					materialName: '',
+					material: null,
+					materialList: [],
+					orderDetailId: ''
+				})
+			}
+		});
 	},
 	delCode(orderDetailCodeId,index){
 		if(orderDetailCodeId){
@@ -1371,7 +1383,9 @@ export default {
 		})
 		var formdata = new FormData()
 		formdata.append('file', data.file)
-		let params = {}
+		let params = {
+			orderDetailId: this.orderDetailId
+		}
 		if (!!params) {
 		  for (const key in params) {
 		    if (Object.hasOwnProperty.call(params, key)) {

+ 58 - 43
src/views/mallManagement/order/order_refund/index.vue

@@ -193,7 +193,7 @@
 				          <div class="col-item">
 				            <div class="operate" v-if="order.orderStatus === 'DSJCL'">
 				              <div>
-				                <el-button v-if="$restrict('agree')" slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'OK',order.refundType,order.orderId)">同意</el-button>
+				                <el-button v-if="$restrict('agree')" slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'OK',order.refundType,order.orderId,1)">同意</el-button>
 				              </div>
 				              <div>
 				                <el-button v-if="$restrict('reject')" slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'FAIL')">拒绝</el-button>
@@ -216,6 +216,7 @@
 				                <el-button type="text" size="small" v-if="order.toWorkOrder && $restrict('workOrder_detail')" @click="toWorkOrderDetail(order.orderId)">查看工单</el-button>
 				              </div>
 				            </div>
+							<el-button type="text" size="small" v-if="order.refundType == 'REFUND_GOODS' && order.orderStatus == 'OVER'" @click="changeExamineStatus(order.orderRefundId,'OK','REFUND_GOODS_DETAIL',order.orderId,2);returnGoodsForm.refundMessage = order.refundMessage">查看退货信息</el-button>
 				          </div>
 				        </el-col>
 				      </el-row>
@@ -275,12 +276,12 @@
 				</div>
 			</div>
 			<!-- 退货确认 -->
-			<div v-if="activeKey == 'REFUND_GOODS'" class="app-container">
+			<div v-if="activeKey == 'REFUND_GOODS' || activeKey == 'REFUND_GOODS_DETAIL'" class="app-container">
 				<el-form :model="returnGoodsForm" :rules="returnGoodsFormRules" ref="returnGoodsForm" label-width="80px" label-position="left">
 					<el-row :gutter="20">
 						<el-col :span="24">
 							<el-form-item label="卖家留言" prop="refundMessage">
-							  <el-input type="textarea" :rows="5" v-model="returnGoodsForm.refundMessage" placeholder="请输入卖家留言"></el-input>
+							  <el-input type="textarea" :rows="5" :disabled="activeKey == 'REFUND_GOODS_DETAIL'" v-model="returnGoodsForm.refundMessage" placeholder="请输入卖家留言"></el-input>
 							</el-form-item>
 						</el-col>
 						<el-col :span="24">
@@ -289,7 +290,9 @@
 								    <el-tab-pane label="发货数量" name="1"></el-tab-pane>
 								    <el-tab-pane label="发货条码" name="2"></el-tab-pane>
 								</el-tabs>
-								<el-button size="small" v-show="typeIndex == 2" type="primary" @click="addCode()">新增</el-button>
+								<br/>
+								<el-button size="small" v-show="typeIndex == 2 && activeKey == 'REFUND_GOODS'" type="primary" @click="addCode()">新增</el-button>
+								<el-button size="small" v-show="typeIndex == 1 && activeKey == 'REFUND_GOODS'" type="primary" @click="handleDownload('导入条码模板')">导入条码模板下载</el-button>
 								<div class="table">
 									<!-- 发货数量 -->
 									<el-form v-show="typeIndex == 1" ref="formData1" :model="formData1" label-width="0" size="small" label-position="left">
@@ -299,24 +302,27 @@
 											<el-table-column prop="smallName" align="center" label="小类"></el-table-column>
 											<el-table-column prop="goodsName" align="center" label="商品名称"></el-table-column>
 											<el-table-column prop="goodsMaterialSpecsName" align="center" label="规格型号"></el-table-column>
-											<el-table-column prop="goodsMaterialUnit" align="center" label="单位"></el-table-column>
+											<el-table-column prop="goodsMaterialUnit" align="center" label="单位">
+												<template slot-scope="scope">
+													{{scope.row.goodsMaterialUnit == 'C'?'整套':scope.row.goodsMaterialUnit == 'I'?"单个":''}}
+												</template>
+											</el-table-column>
 											<el-table-column prop="num" align="center" label="数量"></el-table-column>
 											<el-table-column prop="insideNum" align="center" label="内机数量"></el-table-column>
 											<el-table-column prop="outNum" align="center" label="外机数量"></el-table-column>
 											<el-table-column prop="partNum" align="center" label="配件数量"></el-table-column>
-											<el-table-column prop="insideCodeQty" align="center" label="导入内机条码数量" width="140"></el-table-column>
-											<el-table-column prop="outCodeQty" align="center" label="导入外机条码数量" width="140"></el-table-column>
-											<el-table-column prop="partsCodeQty" align="center" label="导入配件条码数量" width="140"></el-table-column>
+											<el-table-column prop="refundInsideCodeQty" align="center" label="导入内机条码数量" width="140"></el-table-column>
+											<el-table-column prop="refundOutCodeQty" align="center" label="导入外机条码数量" width="140"></el-table-column>
+											<el-table-column prop="refundPartsCodeQty" align="center" label="导入配件条码数量" width="140"></el-table-column>
 											<el-table-column label="操作" align="center" width="140" fixed="right">
-												<template slot-scope="scope" v-if="formType != 2 && joinCode">
+												<template slot-scope="scope" v-if="formType != 2 && joinCode && activeKey == 'REFUND_GOODS'">
 													<el-upload
 													  action='_'
 													  :show-file-list='false'
 													  :http-request="importCode"
 													>
-														<el-button size="mini" type="text">导入条码</el-button>
+														<el-button @click="orderDetailId = scope.row.orderDetailId" size="mini" type="text">导入条码</el-button>
 													</el-upload>
-													<el-button size="mini" type="text" @click="handleDownload('导入条码')">模板下载</el-button>
 												</template>
 											</el-table-column>
 										</el-table>
@@ -355,7 +361,7 @@
 											<el-table-column label="规格型号" align="center">
 												<template slot-scope="scope">
 													<el-form-item :prop="'list.' + scope.$index + '.specs'" :rules="[{ required: true, message: `请选择规格型号`, trigger: 'blur' }]">
-														<el-select v-model="scope.row.specs" @change="(e)=>{changeSpecs(e,scope.row)}" value-key="goodsMaterialSpecsName" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+														<el-select v-model="scope.row.specs" @change="(e)=>{changeSpecs(e,scope.row)}" value-key="goodsMaterialSpecsName" :disabled="isEdit2 != scope.$index || formType == 2 || activeKey == 'REFUND_GOODS_DETAIL'" placeholder="请选择" style="width: 100%;">
 														    <el-option
 														      v-for="(item,ind) in formData1.list"
 														      :key="ind"
@@ -370,7 +376,7 @@
 												<template slot-scope="scope">
 													<el-form-item :prop="'list.' + scope.$index + '.goodsMaterialItemType'" :rules="[{ required: true, message: `请选择物料类型`, trigger: 'blur' }]">
 														<el-select v-model="scope.row.goodsMaterialItemType" @change="(e)=>{changeMaterial(e,scope.row)}" 
-															:disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+															:disabled="isEdit2 != scope.$index || formType == 2 || activeKey == 'REFUND_GOODS_DETAIL'" placeholder="请选择" style="width: 100%;">
 														    <el-option
 														      v-for="(item,ind) in [{name: '内机',id: 'INSIDE'},{name: '外机',id: 'OUT'},{name: '配件',id: 'PARTS'}]"
 														      :key="ind"
@@ -393,7 +399,7 @@
 															scope.row.stockQty = e.stockQty
 															scope.row.uniqueCode = e.uniqueCode
 															
-														}" value-key="name" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+														}" value-key="name" :disabled="isEdit2 != scope.$index || formType == 2 || activeKey == 'REFUND_GOODS_DETAIL'" placeholder="请选择" style="width: 100%;">
 														    <el-option
 														      v-for="(item,ind) in scope.row.materialList"
 														      :key="ind"
@@ -414,19 +420,19 @@
 											<el-table-column prop="" align="center" label="条码" >
 												<template slot-scope="scope">
 													<el-form-item :prop="'list.' + scope.$index + '.materialCode'" :rules="[{ required: true, message: `请输入条码`, trigger: 'blur' }]">
-														<el-input type="number" v-model="scope.row.materialCode" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
+														<el-input type="text" v-model="scope.row.materialCode" :disabled="isEdit2 != scope.$index || formType == 2 || activeKey == 'REFUND_GOODS_DETAIL'" placeholder="请输入"></el-input>
 													</el-form-item>
 												</template>
 											</el-table-column>
 											<el-table-column prop="" align="center" label="数量">
 												<template slot-scope="scope">
 													<el-form-item :prop="'list.' + scope.$index + '.stockQty'" :rules="[{ required: true, message: `请输入数量`, trigger: 'blur' }]">
-														<el-input type="number" v-model="scope.row.stockQty" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
+														<el-input type="number" v-model="scope.row.stockQty" :disabled="isEdit2 != scope.$index || formType == 2 || activeKey == 'REFUND_GOODS_DETAIL'" placeholder="请输入"></el-input>
 													</el-form-item>
 												</template>
 											</el-table-column>
 											<el-table-column label="操作" align="right" width="140" fixed="right">
-												<template slot-scope="scope" v-if="formType != 2">
+												<template slot-scope="scope" v-if="formType != 2 && activeKey == 'REFUND_GOODS'">
 													<el-button size="mini" type="primary" v-if="scope.$index == isEdit2" @click="saveCode(scope.row)">保存</el-button>
 													<el-button size="mini" type="primary" v-if="scope.$index != isEdit2" @click="isEdit2 = scope.$index">编辑</el-button>
 													<el-popconfirm title="确定删除吗?" @confirm="delCode(scope.row.orderDetailCodeId,scope.$index)">
@@ -443,7 +449,7 @@
 				</el-form>
 				<div slot="footer" class="dialog-footer">
 				  <el-button @click="returnGoodsVisible = false;data.removeTab()">关 闭</el-button>
-				  <el-button @click="saveReturnGoods(data.removeTab)">确 定</el-button>
+				  <el-button v-if="activeKey == 'REFUND_GOODS'" @click="saveReturnGoods(data.removeTab)">确 定</el-button>
 				</div>
 			</div>
 		</template>
@@ -498,6 +504,7 @@ export default {
 		isEdit1: 0,
 		isEdit2: 0,
 		joinCode: JSON.parse(localStorage.getItem('greemall_user')).joinCode,
+		orderDetailId: '',
 		returnGoodsFormRules: {
 			refundMessage: [{ required: true, message: '请填写卖家留言', trigger: 'blur' }],
 		},
@@ -598,6 +605,7 @@ export default {
 			row.stockQty = ''
 			row.uniqueCode = ''
 			row.materialList = await this.getMaterialList(row.specsName,row.goodsMaterialItemType)
+			row.orderDetailId = e.orderDetailId
 		},
 		async changeMaterial(e,row){
 			row.material = null
@@ -608,26 +616,31 @@ export default {
 		},
 		//发货新增条码
 		addCode(){
-			this.isEdit2 = 0
-			this.formData2.list.push({
-				brandId: '',
-				brandName: '',
-				mainId: '',
-				mainName: '',
-				stockQty: '',
-				smallId: '',
-				smallName: '',
-				goodsMaterialItemType: '',
-				goodsMaterialName: '',
-				goodsMaterialId: '',
-				materialCode: '',
-				uniqueCode: '',
-				specs: null,
-				specsName: '',
-				materialName: '',
-				material: null,
-				materialList: []
-			})
+			this.$refs.formData2.validate((valid) => {
+				if (valid) {
+					this.isEdit2 = 0
+					this.formData2.list.unshift({
+						brandId: '',
+						brandName: '',
+						mainId: '',
+						mainName: '',
+						stockQty: '',
+						smallId: '',
+						smallName: '',
+						goodsMaterialItemType: '',
+						goodsMaterialName: '',
+						goodsMaterialId: '',
+						materialCode: '',
+						uniqueCode: '',
+						specs: null,
+						specsName: '',
+						materialName: '',
+						material: null,
+						materialList: [],
+						orderDetailId: ''
+					})
+				}
+			});
 		},
 		delCode(orderDetailCodeId,index){
 			if(orderDetailCodeId){
@@ -673,7 +686,7 @@ export default {
 			// 唯一标识
 			key: type,
 			// 页签名称
-			label: ({ remark: "订单备注", materialDetail: "查看物流", REFUND_GOODS: "退货确认" })[type],
+			label: ({ remark: "订单备注", materialDetail: "查看物流", REFUND_GOODS: "退货确认", REFUND_GOODS_DETAIL: '查看退货信息' })[type],
 			// 打开时事件
 			triggerEvent: () => {
 				
@@ -773,11 +786,11 @@ export default {
 		})
 	},
     // 变更维权处理状态
-    changeExamineStatus(orderRefundId, examineStatus, refundType, orderId) {
-		if(refundType == 'REFUND_GOODS'){
+    changeExamineStatus(orderRefundId, examineStatus, refundType, orderId, type) {
+		if(refundType == 'REFUND_GOODS' || refundType == 'REFUND_GOODS_DETAIL'){
 			this.getOrderDetail(orderId)
 			this.getCodeDetail2(orderId)
-			this.openForm('REFUND_GOODS',{orderRefundId})
+			this.openForm(refundType,{orderRefundId})
 		}else{
 			this.$prompt('请输入卖家留言', examineStatus == 'OK' ? '同意':'拒绝', {
 			  confirmButtonText: '确定',
@@ -857,7 +870,9 @@ export default {
 			})
 			var formdata = new FormData()
 			formdata.append('file', data.file)
-			let params = {}
+			let params = {
+				orderDetailId: this.orderDetailId
+			}
 			if (!!params) {
 			  for (const key in params) {
 			    if (Object.hasOwnProperty.call(params, key)) {