Browse Source

Merge branch 'dev' of http://47.108.105.48:3000/java_project/logpm_page into dev

fix_bug_pro20231227
qb 1 year ago
parent
commit
3c1b92387a
  1. 9
      src/api/aftersales/aftersalesWorkOrder.js
  2. 10
      src/option/aftersales/vueTvemp.js
  3. 2
      src/page/index/top/index.vue
  4. 15
      src/router/views/index.js
  5. 49
      src/views/aftersales/aftersalesWorkOrder.vue
  6. 111
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  7. 1287
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  8. 236
      src/views/aftersales/aftersalesWorkOrderend.vue
  9. 13
      src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue
  10. 38
      src/views/distribution/checkInventoryTask/createTask.vue
  11. 3
      vite.config.js

9
src/api/aftersales/aftersalesWorkOrder.js

@ -274,3 +274,12 @@ export const $_getAbnormalPackage = (params) => {
params
})
}
//查询申述数据
export const $_listAppeal = (params) => {
return request({
url: '/api/logpm-aftersales/aftersalesAppeal/listAppeal',
method: 'get',
params
})
}

10
src/option/aftersales/vueTvemp.js

@ -644,5 +644,15 @@ export const Claimsfield = [
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '220',
checkarr: [],
fixed: 'right',
sortable: false,
},
]

2
src/page/index/top/index.vue

@ -67,7 +67,7 @@
</div>
<el-dialog v-model="isshow" title="切换仓库" width="30%">
<div style="display: flex; flex-direction: column; align-items: center">
<el-select class="selecin" v-model="warehousevalue" placeholder="请选择切换的仓库">
<el-select class="selecin" v-model="warehousevalue" filterable placeholder="请选择切换的仓库">
<el-option
v-for="(item, index) in datalist"
:key="item.id"

15
src/router/views/index.js

@ -1216,6 +1216,21 @@ export default [
},
],
},
{
path: '/aftersales/aftersalesWorkOrderInfo',
component: Layout,
redirect: '/aftersales/aftersalesWorkOrderInfo',
children: [
{
path: '/aftersales/aftersalesWorkOrderInfo',
name: '工单详情查看',
component: () => import('@/views/aftersales/aftersalesWorkOrderInfo.vue'),
},
],
},
{
path: '/aftersales/aftersalesWorkOrderend',
component: Layout,

49
src/views/aftersales/aftersalesWorkOrder.vue

@ -2,6 +2,7 @@
<div class="content_max">
<!-- 菜单 -->
<el-tabs type="border-card" v-model="tabValue" @tab-change="tabChenge" class="el_tabs">
<div> </div>
<el-tab-pane :name="item.name" :label="item.label" v-for="item in TabList" :key="item.name">
</el-tab-pane>
<div class="content_right">
@ -89,7 +90,7 @@
<el-button type="primary" @click="assign">工单指派</el-button>
<el-button type="primary" @click="arbitrate">申请仲裁</el-button>
<el-button type="primary" @click="Batchcompletion">批量完结</el-button>
<el-button type="primary" @click="appeal">申诉</el-button>
<el-button type="primary" @click="appeal" v-if="details.query.workOrderStatus == 30">申诉</el-button>
<!-- <el-button type="primary" @click="ProcessingParty"> 处理方信息</el-button> -->
</div>
<!-- 头部右侧按钮模块 -->
@ -126,11 +127,14 @@
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<el-button @click="addingRecord(slotProps.scope)">新增记录</el-button>
<el-button @click="view(slotProps.scope)">查看</el-button>
<el-button v-if="!ClaimStatus" @click="view(slotProps.scope)">查看</el-button>
<!-- <el-button @click="ViewEvent(slotProps.scope)">编辑</el-button> -->
<el-button @click="reply(slotProps.scope)">回复</el-button>
<!-- <el-button @click="ViewDelete(slotProps.scope)">删除</el-button> -->
<el-button @click="CompletionButton(slotProps.scope)">完结</el-button>
<el-button v-if="ClaimStatus" @click="appeal(slotProps.scope)"
>申诉</el-button
>
</div>
</template>
</template>
@ -1013,7 +1017,7 @@ import {
$_addCompletionEnd,
$_appealSubmit,
$_listSettlement,
$_getAbnormalPackage,
$_listAppeal,
} from '@/api/aftersales/aftersalesWorkOrder';
import { getToken } from '@/utils/auth';
import { getDictionaryBiz } from '@/api/system/dict'; //
@ -1469,11 +1473,10 @@ const searchHide = () => {
const view = val => {
console.log(val.row.id);
$router.push({
path: '/aftersales/aftersalesWorkOrderAdd',
path: '/aftersales/aftersalesWorkOrderInfo',
query: {
id: val.row.id,
name: val.row.id + '-信息查看',
routerState: 'view',
},
});
return;
@ -1586,6 +1589,13 @@ const appeal = val => {
});
return;
}
if (details.selectionList.length>1) {
ElMessage({
message: '只能单条申诉',
type: 'warning',
});
return;
}
dialogappeal.value = true; //
};
//
@ -1596,7 +1606,16 @@ const Appealbutton = () => {
let data = {
peopleEntityList: [], //
};
data.workOrderId=details.selectionList[0].id
data.reason=Reasonforappeal.value
data.appealPeopleName= warehouseData.value
.filter(item => Appealselection.value.includes(item.value))
.map(item => item.label)
.join(','), //
details.selectionList.forEach(item => {
console.log(item.id);
console.log(item, '已经选择的列表');
data['peopleEntityList'].push({
workOrderId: item.id, //ID
@ -1608,10 +1627,6 @@ const Appealbutton = () => {
.filter(item => Appealselection.value.includes(item.value))
.map(item => item.label)
.join(','), //
actualPersonId: warehouseData.value
.filter(item => Appealselection.value.includes(item.value))
.map(item => item.value)
.join(','), //ID
});
});
console.log(data, '处理好的值');
@ -1646,6 +1661,11 @@ const AppealTab = val => {
IndexTable({ workOrderStatus: 30 });
} else {
console.log('当前是申诉列表');
let data={}
$_listAppeal(data).then(res=>{
console.log(res,'申诉列表返回值')
})
}
};
@ -2764,6 +2784,7 @@ const CompletedSubmission = () => {
display: flex;
align-items: flex-end;
margin-bottom: 10px;
}
.el-times {
:deep(.el-input__wrapper) {
@ -3001,10 +3022,15 @@ const CompletedSubmission = () => {
:deep(.el_tabs) {
width: 100%;
display: flex;
flex-direction: column;
// flex-direction: column;
flex-wrap: wrap;
.el-tabs__content {
padding: 0;
}
.el-tabs__header{
height: 37px;
width: 100%;
}
}
:deep(.avue-crud__pagination) {
padding-top: 2px !important;
@ -3029,4 +3055,7 @@ const CompletedSubmission = () => {
justify-content: flex-end;
margin-top: 10px;
}
:deep(.avue-crud__header){
align-items: center;
}
</style>

111
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -21,6 +21,7 @@
placeholder="请输入包条码"
clearable
:rows="2"
@change="ChangePackageInfo(item.packageCode, index)"
/>
</div>
@ -36,6 +37,9 @@
</div>
<div class="el-btn">
<el-button v-if="item.state" type="primary" @click="historicalPackages(index)">
查看历史包件
</el-button>
<el-button type="primary" @click="PackagRemoval(index)"> 移除 </el-button>
</div>
</div>
@ -361,6 +365,17 @@
:rows="2"
/>
</div>
<div class="maxBox">
<span class="title">说明:</span>
<el-input
v-model="item.responsibilityRatio"
placeholder="请输入说明 "
clearable
:rows="2"
/>
</div>
</div>
<div class="el-btn">
<el-button type="primary" @click="ResponsibilityRemoval(index)"> 移除 </el-button>
@ -454,6 +469,28 @@
</span>
</template>
</el-dialog>
<el-dialog v-model="dialogHistoricalPackage" title="查看历史包件" width="30%">
<el-form-item label="历史包件选择">
<el-select v-model="HistoricalPackageinput" clearable filterable placeholder="请选择包件">
<el-option
v-for="item in HistoricalPackageList"
:key="item.value"
:label="item.workOrderNumber"
:value="item.workOrderId"
/>
</el-select>
<el-button @click="ViewPackageDetails(HistoricalPackageinput)">查看详情</el-button>
</el-form-item>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogHistoricalPackage = false">取消</el-button>
<el-button type="primary" @click="HistoricalPackage(HistoricalPackageinput)">
确定选择
</el-button>
</span>
</template>
</el-dialog>
</template>
<script setup>
@ -468,6 +505,7 @@ import {
$_getDetail,
$_remove,
$_getBusinessDepartmentUser,
$_getAbnormalPackage,
} from '@/api/aftersales/aftersalesWorkOrder';
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { getToken } from '@/utils/auth';
@ -491,6 +529,7 @@ const DiscoveringNodes = ref([]); //发现节点下拉选择
const warehouseData = ref([]); //
const SelectType = ref(null); //
const StateType = ref(true); //
const HistoricalPackageinput = ref(''); //
const dialogImageUrl = ref(null); //
const dialogVisible = ref(null); //
const groundlineSet = ref(true); //线
@ -505,6 +544,9 @@ const routerState = ref(''); //路由状态
const personResponsibleList = ref([]); //
const companyProportion = ref(0); //
const identifying = ref(1); //
const dialogHistoricalPackage = ref(false); //
const HistoricalPackageList = ref([]); //
const HistorIndex = ref(0); //
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
@ -690,6 +732,7 @@ const TopChange = val => {
identifying.value = 2;
}
};
//
const ConfirmForm = () => {
// :10,20
@ -940,6 +983,70 @@ const moneyBtnB = () => {
}
fleeingState.value = true; //
};
//
const ChangePackageInfo = (val, index) => {
let data = {
packageCode: val,
};
$_getAbnormalPackage(data).then(res => {
console.log(res, '包件信息');
console.log(res.data.data, '包件信息');
const packageData = res.data.data[0];
PackageInfo.value[index].orderCode = packageData.orderCode; //
PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //
PackageInfo.value[index].orderId = packageData.orderId; //
PackageInfo.value[index].state = false; //
if (res.data.data.length > 1) {
HistoricalPackageList.value = res.data.data;
PackageInfo.value[index].state = true; //
}
// packageCode; //
// //
// orderCode: orderId; //
// workOrderId; //id
// workOrderNumber; //
console.log(PackageInfo.value, '处理好的参数');
});
};
//
const historicalPackages = val => {
dialogHistoricalPackage.value = true; //
HistorIndex.value = val;
console.log(val);
};
//
const HistoricalPackage = val => {
let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
PackageInfo.value[HistorIndex.value].orderCode = info.orderCode; //
PackageInfo.value[HistorIndex.value].waybillNumber = info.waybillNumber; //
PackageInfo.value[HistorIndex.value].orderId = info.orderId; //
dialogHistoricalPackage.value = false; //
};
//
const ViewPackageDetails = val => {
if(!val){
ElMessage({
message: '请选择要查看的数据',
type: 'warning',
})
return
}
console.log(val);
let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
console.log(info,'筛选的值');
$router.push({
path: '/aftersales/aftersalesWorkOrderInfo',
query: {
id: info.workOrderId,
name: info.workOrderId + '-信息查看',
routerState: 'view',
},
});
dialogHistoricalPackage.value = false; //
};
</script>
<style scoped lang="scss">
@ -957,6 +1064,7 @@ const moneyBtnB = () => {
flex: 1 0 30%;
:deep(.el-form-item__label) {
width: 100px !important;
justify-content: flex-start;
}
}
:deep(.el-form-item__content) {
@ -1085,8 +1193,9 @@ const moneyBtnB = () => {
display: flex;
align-items: center;
width: 30%;
margin-right: 16px;
.title {
width: 120px;
width: 80px;
font-size: 14px;
color: #606266;
}

1287
src/views/aftersales/aftersalesWorkOrderInfo.vue

File diff suppressed because it is too large Load Diff

236
src/views/aftersales/aftersalesWorkOrderend.vue

@ -22,9 +22,32 @@
<el-input v-model="endFrom.orderCode" placeholder="请输入订单自自编号" />
</el-form-item>
<el-form-item label="包条码">
<!-- <el-form-item label="包条码">
<el-input v-model="endFrom.orderPackageCode" placeholder="请输入包条码" />
</el-form-item>
</el-form-item> -->
<!-- <div class="selector"> -->
<div class="el-form-item">
<span class="el-form-item__label">运损节点</span>
<el-select
v-model="endFrom.transportloss"
filterable
default-first-option
:reserve-keyword="false"
placeholder="运损发现节点"
@change="TransportChange"
>
<el-option
v-for="item in TransportlossList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<!-- </div> -->
<el-form-item label="品类">
<el-input v-model="endFrom.name" placeholder="请输入品类" />
@ -98,26 +121,7 @@
</el-form-item>
</div> -->
<div class="selector">
<div class="el-form-item">
<span class="el-form-item__label">运损节点</span>
<el-select
v-model="endFrom.transportloss"
filterable
default-first-option
:reserve-keyword="false"
placeholder="运损发现节点"
@change="TransportChange"
>
<el-option
v-for="item in TransportlossList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
</div>
<!-- <div class="selector">
<div class="el-form-item selector">
@ -140,6 +144,48 @@
</div>
</div> -->
<el-tabs type="border-card" class="PackageInformation">
<el-tab-pane label="包件信息">
<div class="ResponsibilityBoxS">
<div><el-button type="primary" @click="AddPackage"> 添加信息 </el-button></div>
<div class="el_btbox" v-for="(item, index) in PackageInfo" :key="index">
<div class="leftbox">
<div class="maxBox">
<span class="title">包条码:</span>
<el-input
v-model="item.packageCode"
placeholder="请输入包条码"
clearable
:rows="2"
@change="ChangePackageInfo(item.packageCode, index)"
/>
</div>
<div class="maxBox">
<span class="title">订单自编码:</span>
<el-input v-model="item.orderCode" placeholder="请输入订单自编号" clearable />
</div>
<div class="maxBox">
<span class="title">运单号:</span>
<el-input v-model="item.waybillNumber" placeholder="请输入运单号" clearable />
</div>
</div>
<div class="el-btn">
<el-button v-if="item.state" type="primary" @click="historicalPackages(index)">
查看历史包件
</el-button>
<el-button type="primary" @click="PackagRemoval(index)"> 移除 </el-button>
</div>
</div>
<div class="NumTotal">
<span>总件数:{{ endFrom.number }}</span>
</div>
</div>
</el-tab-pane>
</el-tabs>
<el-tabs type="border-card" style="width: 100%">
<el-tab-pane label="责任方选择">
<div class="ResponsibilityBox">
@ -614,6 +660,30 @@
</span>
</template>
</el-dialog>
<el-dialog v-model="dialogHistoricalPackage" title="查看历史包件" width="30%">
<el-form-item label="历史包件选择">
<el-select v-model="HistoricalPackageinput" clearable filterable placeholder="请选择包件">
<el-option
v-for="item in HistoricalPackageList"
:key="item.value"
:label="item.workOrderNumber"
:value="item.workOrderId"
/>
</el-select>
<el-button @click="ViewPackageDetails(HistoricalPackageinput)">查看详情</el-button>
</el-form-item>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogHistoricalPackage = false">取消</el-button>
<el-button type="primary" @click="HistoricalPackage(HistoricalPackageinput)">
确定选择
</el-button>
</span>
</template>
</el-dialog>
</el-card>
</template>
@ -630,6 +700,7 @@ import {
$_savaSurveyRecord,
$_addProcessingResults,
$_getSurveyRecord,
$_getAbnormalPackage,
} from '@/api/aftersales/aftersalesWorkOrder';
import { columnList, recordList } from '@/option/aftersales/vueTvemp.js';
import { getToken } from '@/utils/auth';
@ -656,6 +727,13 @@ const Msgtextarea = ref(''); //回复框消息
const msgState = ref(0); //
const Msgloading = ref(false); //
const companyProportion = ref(0); //
const HistoricalPackageList = ref([]); //
const dialogHistoricalPackage=ref(false);//
const HistoricalPackageinput=ref('');//
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
]);
//
const responsible = ref([
{
@ -1184,6 +1262,47 @@ const amountMoney = () => {
console.log('收款总计金额', TotalamountReceived.value);
};
//
const AddPackage = () => {
PackageInfo.value.push({ packageCode: '', orderCode: '', waybillNumber: '' });
};
//
const PackagRemoval = val => {
PackageInfo.value.splice(val, 1); //
};
//
const historicalPackages = val => {
dialogHistoricalPackage.value = true; //
HistorIndex.value = val;
console.log(val);
};
//
const ChangePackageInfo = (val, index) => {
let data = {
packageCode: val,
};
$_getAbnormalPackage(data).then(res => {
console.log(res, '包件信息');
console.log(res.data.data, '包件信息');
const packageData = res.data.data[0];
PackageInfo.value[index].orderCode = packageData.orderCode; //
PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //
PackageInfo.value[index].orderId = packageData.orderId; //
PackageInfo.value[index].state = false; //
if (res.data.data.length > 1) {
HistoricalPackageList.value = res.data.data;
PackageInfo.value[index].state = true; //
}
// packageCode; //
// //
// orderCode: orderId; //
// workOrderId; //id
// workOrderNumber; //
console.log(PackageInfo.value, '处理好的参数');
});
};
//
const AddVideoPreview = val => {
VideoPreviewStatus.value = true; //
@ -1448,6 +1567,29 @@ const replyMessage = () => {
}
});
};
//
const ViewPackageDetails = val => {
if(!val){
ElMessage({
message: '请选择要查看的数据',
type: 'warning',
})
return
}
console.log(val);
let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
console.log(info,'筛选的值');
$router.push({
path: '/aftersales/aftersalesWorkOrderInfo',
query: {
id: info.workOrderId,
name: info.workOrderId + '-信息查看',
routerState: 'view',
},
});
dialogHistoricalPackage.value = false; //
};
</script>
<style scoped lang="scss">
@ -1480,6 +1622,9 @@ const replyMessage = () => {
margin: 0;
margin-bottom: 0.9375vw;
flex: 1 0 30%;
:deep(.el-select){
width: 100%;
}
}
:deep(.el-form-item__label) {
width: 100px !important;
@ -1854,4 +1999,51 @@ const replyMessage = () => {
display: flex;
justify-content: flex-end;
}
.PackageInformation {
width: 100%;
margin-bottom: 10px;
}
.ResponsibilityBoxS {
width: 100%;
display: flex;
flex-direction: column;
margin-bottom: 10px;
.leftbox {
width: 80%;
display: flex;
justify-content: space-between;
}
.maxBox {
display: flex;
align-items: center;
width: 30%;
.title {
width: 140px;
color: #606266;
font-size: 14px;
}
.el-select {
width: 100%;
}
}
.el-btn {
margin-left: 5%;
border: none;
display: flex;
}
.el_btbox {
display: flex;
margin-top: 10px;
}
}
.NumTotal {
width: 30%;
margin-top: 16px;
display: flex;
align-items: center;
span {
width: 120px;
font-size: 14px;
}
}
</style>

13
src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue

@ -647,11 +647,11 @@ onMounted(() => {
initconfig();
initnumber();
});
async function initnumber() {
let res = await Alloclocationsnub();
console.log(res.data.data);
details.countnumber = res.data.data;
}
// async function initnumber() {
// let res = await Alloclocationsnub();
// console.log(res.data.data);
// details.countnumber = res.data.data;
// }
// watchEffect(()=>{
// if(details.isshowupt){
// details.inputtxts=''
@ -666,8 +666,10 @@ async function initconfig() {
let res = await getstoreCargo();
details.arrlist = res.data.data;
console.log(details.arrlist, '仓库列表');
if (details.arrlist.length > 0) {
$_locationsnub({ warehouseId: details.arrlist[0].id }).then(res => {
details.countnumber =res.data.data
console.log('初始化仓库参数成功', res);
});
}
@ -849,6 +851,7 @@ const checkcso = val => {
console.log(details.arrlist[val].id, '选择的ID-=====');
console.log(val, '货位接受参数');
$_locationsnub({ warehouseId: details.arrlist[val].id }).then(res => {
details.countnumber =res.data.data
console.log('切换请求成功', res);
});
if (details.arrlist[details.checkselect]?.warehouseGoodsAreaVOList.length > 0) {

38
src/views/distribution/checkInventoryTask/createTask.vue

@ -2462,17 +2462,17 @@ const InventorySubmit = () => {
InventoryPopup.value = false; //
loading.value = true; //
console.log(SubData, '处理好的数据');
// postAddtaskQuest(SubData).then(res => {
// onLoad(); //
// if ((res.data.code = 200)) {
// ElMessage({
// message: res.data.msg,
// type: 'success',
// });
// onLoad(); //
// }
// console.log(res, '');
// });
postAddtaskQuest(SubData).then(res => {
if ((res.data.code = 200)) {
ElMessage({
message: res.data.msg,
type: 'success',
});
onLoad(); //
}
console.log(res, '盘点计划提交成功');
});
return;
}
@ -2495,10 +2495,18 @@ const InventorySubmit = () => {
SubData.startTime = formInventory.value.time[0];
console.log(SubData, '处理好要提交的数据');
InventoryPopup.value = false; //
// postAddtaskQuest(SubData).then(res => {
// console.log(res, '');
// onLoad(); //
// });
loading.value = true; //
postAddtaskQuest(SubData).then(res => {
if ((res.data.code = 200)) {
ElMessage({
message: res.data.msg,
type: 'success',
});
onLoad(); //
}
console.log(res, '盘点计划提交成功');
});
};
//
const discard = () => {

3
vite.config.js

@ -25,7 +25,8 @@ export default ({ mode, command }) => {
target: 'http://192.168.6.122:8777',
// target: 'http://192.168.6.116:8777',
// tjj
// tjj :
// target:'http://192.168.10.25:13000',
// sst
// target: 'http://192.168.10.94:8888',
// target: 'http://192.168.10.29:13000',

Loading…
Cancel
Save