Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 5 months ago
parent
commit
25af2f5999
  1. 138
      src/components/HeaderSearch/HeaderSearch.vue
  2. 17
      src/components/MyPrint/MyPrint.vue
  3. 2
      src/components/edittablehead/index.vue
  4. 3
      src/main.js
  5. 12
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  6. 79
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  7. 1
      src/views/distribution/inventory/CreateOrder.vue
  8. 6
      src/views/distribution/inventory/addArteryDistrilbutionBillLadingList.vue
  9. 127
      src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue
  10. 2
      src/views/distribution/inventory/arteryDistrilbutionBillLadingListDetails.vue
  11. 7
      src/views/waybill/CreateZeroOrder.vue
  12. 2
      src/views/waybill/WaybillOrderList.vue

138
src/components/HeaderSearch/HeaderSearch.vue

@ -0,0 +1,138 @@
<template>
<div v-h5uShow="props.search">
<!-- 查询模块 -->
<el-form :inline="true" :model="props.query" class="header_search">
<el-form-item v-for="item in props.searchOption" :key="item.prop" :label="item.label">
<template v-if="item.type === 'input'">
<el-input
v-model.trim="query[item.prop]"
:placeholder="`请输入${item.label}`"
clearable
></el-input>
</template>
<template v-else-if="item.type === 'select'">
<el-select
v-model="query[item.prop]"
:placeholder="`请输入${item.label}`"
filterable
clearable
>
<el-option
v-for="value in item.checkarr || []"
:key="value.dictValue"
:label="value.dictValue"
:value="value.dictKey"
/>
</el-select>
</template>
<template v-else-if="item.type === 'time'">
<el-date-picker
v-model="query[item.prop]"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="details.shortcuts"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
/>
</template>
</el-form-item>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset"> </el-button>
</el-form-item>
</el-form>
</div>
</template>
<script setup lang="ts">
import { defineProps, reactive, type PropType } from 'vue';
type SerachOption = {
/** 标题 */
label: string;
/** 查询属性 */
prop: string;
/** 标题宽度 */
labelWidth?: string;
/** 搜索类型 */
type: 'input' | 'select' | 'time';
/** 下拉框搜索的值 */
checkarr: { dictKey: string; dictValue: string }[];
}[];
const props = defineProps({
search: {
type: Boolean,
required: true,
},
/** 是否显示弹窗 */
modelValue: {
type: Boolean,
required: true,
},
/** 查询的容器 */
query: {
type: Boolean,
required: true,
},
/** 搜索配置项 */
searchOption: {
type: Array as PropType<SerachOption>,
required: true,
},
});
const $emit = defineEmits(['update:modelValue', 'search', 'remove']);
const details = reactive({
/** 时间快捷选择设置 */
shortcuts: [
{
text: '最近一周',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
},
},
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
});
/** 搜索 */
const handleSearch = () => {
$emit('search', props.query);
};
/** 清空搜索框 */
const searchReset = () => {
$emit('remove');
};
</script>
<style scoped lang="scss"></style>

17
src/components/MyPrint/MyPrint.vue

@ -60,7 +60,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { defineProps, computed, ref, nextTick, reactive } from 'vue'; import { defineProps, computed, ref, nextTick, reactive, watch } from 'vue';
import print from '@/utils/print'; import print from '@/utils/print';
import { ElMessage, ElMessageBox } from 'element-plus'; import { ElMessage, ElMessageBox } from 'element-plus';
import { getObjType } from '@/utils/util'; import { getObjType } from '@/utils/util';
@ -249,6 +249,21 @@ const printTemplate = () => {
const handleFullScrean = () => { const handleFullScrean = () => {
details.isFullscreen = !details.isFullscreen; details.isFullscreen = !details.isFullscreen;
}; };
watch(
() => props.modelValue,
async () => {
if (!props.modelValue) return;
await nextTick();
setTimeout(() => {
const node = document.querySelectorAll('.printCode .isEdit');
console.log('node :>> ', node);
node.forEach(val => val.setAttribute('contenteditable', true));
}, 500);
}
);
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

2
src/components/edittablehead/index.vue

@ -163,7 +163,7 @@ const initTable = async () => {
if (item.prop + item.label + item.type !== value.prop + value.label + value.type) continue; if (item.prop + item.label + item.type !== value.prop + value.label + value.type) continue;
item.checkarr = value.checkarr || []; item.checkarr = value.checkarr || [];
_setArr.push(item); _setArr.push({ ...value, width: item.width });
_oldArr.splice(i, 1); _oldArr.splice(i, 1);
break; break;
} }

3
src/main.js

@ -23,6 +23,7 @@ import thirdRegister from './components/third-register/main.vue';
import NfDesignBase from '@saber/nf-design-base-elp'; import NfDesignBase from '@saber/nf-design-base-elp';
import flowDesign from './components/flow-design/main.vue'; import flowDesign from './components/flow-design/main.vue';
import tablecmt from './components/tablecmt/tablecmt.vue'; import tablecmt from './components/tablecmt/tablecmt.vue';
import HeaderSearch from './components/HeaderSearch/HeaderSearch.vue';
import webCamera from './components/webCameraIMG/webCamera.vue'; import webCamera from './components/webCameraIMG/webCamera.vue';
import SelectBox from './components/SelectBox/SelectBox.vue'; import SelectBox from './components/SelectBox/SelectBox.vue';
import edittablehead from './components/edittablehead/index.vue'; import edittablehead from './components/edittablehead/index.vue';
@ -60,6 +61,8 @@ app.component('tablecmt', tablecmt);
app.component('webCamera', webCamera); app.component('webCamera', webCamera);
app.component('edittablehead', edittablehead); app.component('edittablehead', edittablehead);
app.component('SelectBox', SelectBox); app.component('SelectBox', SelectBox);
/** 表头搜索 */
app.component('HeaderSearch', HeaderSearch);
/** 打印 */ /** 打印 */
app.component('MyPrint', MyPrint); app.component('MyPrint', MyPrint);
/** 上传Excel */ /** 上传Excel */

12
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -490,6 +490,7 @@
:min="0" :min="0"
:max="item.ProportionMax" :max="item.ProportionMax"
:controls="false" :controls="false"
:precision="2"
:value-on-clear="0" :value-on-clear="0"
/> />
</el-form-item> </el-form-item>
@ -786,7 +787,7 @@ const form = ref({
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 99999999999999999, //
Processingoptions: [ Processingoptions: [
// //
], ],
@ -925,7 +926,7 @@ const responsibilities = async () => {
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 99999999999999999, //
Processingoptions: [ Processingoptions: [
// //
...ResponsibleParty.value, ...ResponsibleParty.value,
@ -1095,7 +1096,7 @@ const AddResponsible = () => {
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 99999999999999999, //
Processingoptions: [ Processingoptions: [
// //
...ResponsibleParty.value, ...ResponsibleParty.value,
@ -1110,7 +1111,7 @@ const AddResponsible = () => {
id: form.value.responsibilitiesList.length + 1, id: form.value.responsibilitiesList.length + 1,
}; };
form.value.responsibilitiesList.push(data); form.value.responsibilitiesList.push(data);
calculateMaxValues(); // calculateMaxValues();
}; };
// //
const Responsemoval = index => { const Responsemoval = index => {
@ -1124,7 +1125,7 @@ const Responsemoval = index => {
form.value.responsibilitiesList.forEach((item, index) => { form.value.responsibilitiesList.forEach((item, index) => {
item.id = index + 1; item.id = index + 1;
}); });
calculateMaxValues(); // // calculateMaxValues(); //
ElMessage({ ElMessage({
message: '移除成功.', message: '移除成功.',
type: 'success', type: 'success',
@ -1134,6 +1135,7 @@ const Responsemoval = index => {
}; };
const calculateMaxValues = () => { const calculateMaxValues = () => {
return
// //
let data = form.value.responsibilitiesList; let data = form.value.responsibilitiesList;
let totalUsed = data.reduce((acc, item) => acc + item.responsibilityRatio, 0); let totalUsed = data.reduce((acc, item) => acc + item.responsibilityRatio, 0);

79
src/views/aftersales/aftersalesWorkOrdermodify.vue

@ -8,8 +8,16 @@
type="border-card" type="border-card"
@tab-click="TabactiveClick" @tab-click="TabactiveClick"
> >
<el-tab-pane label="订单填写" :name="1"></el-tab-pane> <el-tab-pane
<el-tab-pane label="零担填写" :name="2"> </el-tab-pane> label="订单信息"
:name="1"
:disabled="form.basis.TabactiveName == 2"
></el-tab-pane>
<el-tab-pane
label="零担信息"
:name="2"
:disabled="form.basis.TabactiveName == 1"
></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<!-- 主体内容 --> <!-- 主体内容 -->
@ -490,16 +498,16 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="占比(%)" label="金额(元)"
:prop="`responsibilitiesList[${index}.responsibilityRatio]`" :prop="`responsibilitiesList[${index}.responsibilityRatio]`"
:rules="ruleForm.responsibilityRatio" :rules="ruleForm.responsibilityRatio"
@change="CompanyProportionInput"
> >
<el-input-number <el-input-number
v-model="item.responsibilityRatio" v-model="item.responsibilityRatio"
:min="0" :min="0"
:max="item.ProportionMax" :max="item.ProportionMax"
:controls="false" :controls="false"
:precision="2"
:value-on-clear="0" :value-on-clear="0"
/> />
</el-form-item> </el-form-item>
@ -533,7 +541,7 @@
</el-form-item> </el-form-item>
<el-button <el-button
v-if="!index && $route.query.typesOf !=0" v-if="!index && $route.query.typesOf != 0"
type="primary" type="primary"
class="el_addPackage" class="el_addPackage"
@click="AddResponsible" @click="AddResponsible"
@ -553,11 +561,11 @@
<div></div> <div></div>
</template> </template>
</div> </div>
<div class="el_top"> <!-- <div class="el_top">
<div class="el_Package_num"> <div class="el_Package_num">
<span>公司占比:{{ form.Proportion }}(%)</span> <span>公司占比:{{ form.Proportion }}(%)</span>
</div> </div>
</div> </div> -->
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -931,7 +939,7 @@ const form = ref({
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 99999999999999999, //
Processingoptions: [ Processingoptions: [
// //
], ],
@ -1011,10 +1019,10 @@ const workOrderStatus = computed(() => {
// //
const Modificationsubmission = () => { const Modificationsubmission = () => {
if (['10','90'].includes($route.query.workOrderStatus)) { if (['10', '90'].includes($route.query.workOrderStatus)) {
return true; return true;
} }
return false return false;
}; };
// //
const Appealestablished = () => { const Appealestablished = () => {
@ -1023,14 +1031,14 @@ const Appealestablished = () => {
return true; return true;
} }
} }
return false return false;
}; };
// //
const resultmodification = () => { const resultmodification = () => {
if ($route.query.workOrderStatus == '21') { if ($route.query.workOrderStatus == '21') {
return true; return true;
} }
return false return false;
}; };
// //
const NumberState = computed(() => { const NumberState = computed(() => {
@ -1084,7 +1092,7 @@ const responsibilities = async () => {
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 99999999999999999, //
Processingoptions: [ Processingoptions: [
// //
...ResponsibleParty.value, ...ResponsibleParty.value,
@ -1128,11 +1136,10 @@ const PageState = () => {
// ); // );
// form.value.UserPermissions = matchingItem.dictValue; // form.value.UserPermissions = matchingItem.dictValue;
// //
const roleNames = await JSON.parse(localStorage.getItem('TWMS-userInfo')).content.role_name.split( const roleNames = await JSON.parse(
',' localStorage.getItem('TWMS-userInfo')
); ).content.role_name.split(',');
// //
const matchingItem = res.data.data.find(item => roleNames.includes(item.dictValue)); const matchingItem = res.data.data.find(item => roleNames.includes(item.dictValue));
if (matchingItem) { if (matchingItem) {
@ -1140,10 +1147,6 @@ const PageState = () => {
} else { } else {
form.value.UserPermissions = '仓库客服'; form.value.UserPermissions = '仓库客服';
} }
}); });
// //
responsibilities(); responsibilities();
@ -1184,6 +1187,9 @@ const getPageData = async () => {
}); });
}); });
} }
form.value.PackageList[0].packageCode
? (form.value.basis.TabactiveName = 1)
: (form.value.basis.TabactiveName = 2);
// //
// trainNumber: ['3', '5', '6', '7'].includes(form.value.groundlineType), // // trainNumber: ['3', '5', '6', '7'].includes(form.value.groundlineType), //
// deliveryTime: ['5', '6', '7'].includes(form.value.groundlineType), // // deliveryTime: ['5', '6', '7'].includes(form.value.groundlineType), //
@ -1252,7 +1258,7 @@ const getPageData = async () => {
responsibilityRatio: Number(item.responsibilityRatio), // responsibilityRatio: Number(item.responsibilityRatio), //
description: item.description, // description: item.description, //
tripartite: item.tripartite, // tripartite: item.tripartite, //
ProportionMax: 100, // ProportionMax: 999999999999999999, //
inputDisplay: true, inputDisplay: true,
valueId: item.id, valueId: item.id,
Processingoptions: [ Processingoptions: [
@ -1273,7 +1279,7 @@ const getPageData = async () => {
id: form.value.responsibilitiesList.length + 1, id: form.value.responsibilitiesList.length + 1,
}; };
form.value.responsibilitiesList.push(data); form.value.responsibilitiesList.push(data);
calculateMaxValues(); // calculateMaxValues();
}); });
} }
// //
@ -1498,7 +1504,7 @@ const AddResponsible = () => {
responsibilityRatio: 0, // responsibilityRatio: 0, //
description: '', // description: '', //
tripartite: '', // tripartite: '', //
ProportionMax: 100, // ProportionMax: 999999999999999999999999999999, //
inputDisplay: false, // inputDisplay: false, //
Processingoptions: [ Processingoptions: [
// //
@ -1514,7 +1520,7 @@ const AddResponsible = () => {
id: form.value.responsibilitiesList.length + 1, id: form.value.responsibilitiesList.length + 1,
}; };
form.value.responsibilitiesList.push(data); form.value.responsibilitiesList.push(data);
calculateMaxValues(); // calculateMaxValues();
}; };
// //
const Responsemoval = index => { const Responsemoval = index => {
@ -1528,7 +1534,7 @@ const Responsemoval = index => {
form.value.responsibilitiesList.forEach((item, index) => { form.value.responsibilitiesList.forEach((item, index) => {
item.id = index + 1; item.id = index + 1;
}); });
calculateMaxValues(); // // calculateMaxValues(); //
ElMessage({ ElMessage({
message: '移除成功.', message: '移除成功.',
type: 'success', type: 'success',
@ -1538,6 +1544,7 @@ const Responsemoval = index => {
}; };
const calculateMaxValues = () => { const calculateMaxValues = () => {
return
// //
let data = form.value.responsibilitiesList; let data = form.value.responsibilitiesList;
let totalUsed = data.reduce((acc, item) => acc + item.responsibilityRatio, 0); let totalUsed = data.reduce((acc, item) => acc + item.responsibilityRatio, 0);
@ -2062,7 +2069,7 @@ const onSubmit = () => {
let Responsibleperson = item.ResponsibleoNameptions.find( let Responsibleperson = item.ResponsibleoNameptions.find(
res => res.id == item.personResponsibleId res => res.id == item.personResponsibleId
); );
console.log(Responsibleperson,'Responsibleperson'); console.log(Responsibleperson, 'Responsibleperson');
if (form.value.groundlineType == '1') { if (form.value.groundlineType == '1') {
data.personResponsibleName = item.personResponsibleId; // data.personResponsibleName = item.personResponsibleId; //
@ -2071,8 +2078,10 @@ const onSubmit = () => {
).label; // ).label; //
data.businessId = item.businessId; //id data.businessId = item.businessId; //id
} else { } else {
data.personResponsibleId = Responsibleperson? Responsibleperson.id:null; //id data.personResponsibleId = Responsibleperson ? Responsibleperson.id : null; //id
data.personResponsibleName = item.ResponsibleoNameptions.find(res => res.id == item.personResponsibleId)?.name || item.personResponsibleId; // data.personResponsibleName =
item.ResponsibleoNameptions.find(res => res.id == item.personResponsibleId)?.name ||
item.personResponsibleId; //
data.businessName = item.Responsibleoptions.find( data.businessName = item.Responsibleoptions.find(
res => res.value == item.businessId res => res.value == item.businessId
).label; // ).label; //
@ -2094,7 +2103,7 @@ const onSubmit = () => {
) { ) {
submitData.decreaseImageEntityList = []; submitData.decreaseImageEntityList = [];
form.value.fileList.forEach(item => { form.value.fileList.forEach(item => {
console.log(item,'图片12'); console.log(item, '图片12');
if (item.response || item.url) { if (item.response || item.url) {
submitData['decreaseImageEntityList'].push({ submitData['decreaseImageEntityList'].push({
@ -2154,9 +2163,9 @@ const onSubmit = () => {
// //
if (form.value.Processed) { if (form.value.Processed) {
submitData.workOrderStatus = 30; submitData.workOrderStatus = 30;
submitData.resultIdentification=1; submitData.resultIdentification = 1;
}else{ } else {
submitData.resultIdentification=2; submitData.resultIdentification = 2;
} }
$_modifyData(submitData) $_modifyData(submitData)
.then(res => { .then(res => {
@ -2698,8 +2707,8 @@ const TabactiveClick = (a, b) => {
} }
} }
} }
:deep(.el_foort_img){ :deep(.el_foort_img) {
.el-upload{ .el-upload {
display: none; display: none;
} }
} }

1
src/views/distribution/inventory/CreateOrder.vue

@ -66,6 +66,7 @@
prefix-icon="Calendar" prefix-icon="Calendar"
type="datetime" type="datetime"
placeholder="创建时间" placeholder="创建时间"
:clearable="false"
/> />
</div> </div>
</div> </div>

6
src/views/distribution/inventory/addArteryDistrilbutionBillLadingList.vue

@ -417,6 +417,12 @@
></edittablehead> ></edittablehead>
</template> </template>
<script lang="ts">
export default {
name: '/distribution/inventory/addArteryDistrilbutionBillLadingList',
};
</script>
<script lang="ts" setup> <script lang="ts" setup>
// //
import { import {

127
src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue

@ -2,24 +2,16 @@
<basic-container v-loading="loadingObj.pageLoading"> <basic-container v-loading="loadingObj.pageLoading">
<div class="avue-crud"> <div class="avue-crud">
<!-- 搜索模块 --> <!-- 搜索模块 -->
<div v-h5uShow="!search"> <HeaderSearch
<!-- 查询模块 --> :search="search"
<el-form :inline="true" :model="query" class="header_search"> :query="query"
<el-form-item label="批次号:"> :searchOption="searchOption"
<el-input v-model="query.serviceNumber" placeholder="请输入批次号" clearable></el-input> @search="() => searchChange()"
</el-form-item> @remove="() => searchReset()"
/>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset"> </el-button>
</el-form-item>
</el-form>
</div>
<!-- 控件模块 --> <!-- 控件模块 -->
<el-row> <div class="avue-crud__header flex-c-sb">
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 --> <!-- 头部左侧按钮模块 -->
<div class="avue-crud__left"> <div class="avue-crud__left">
<el-button <el-button
@ -49,7 +41,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_startBill" v-if="permissionObj.arteryDistrilbutionBillLadingList_startBill"
icon="Check" icon="Check"
@click="handleEditBillladingStatus(1)" @click="() => handleShowConfirm(1)"
> >
开始提货 开始提货
</el-button> </el-button>
@ -57,7 +49,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_confirmBill" v-if="permissionObj.arteryDistrilbutionBillLadingList_confirmBill"
icon="el-icon-check" icon="el-icon-check"
@click="handleShowConfirm" @click="() => handleShowConfirm(2)"
> >
提货完成 提货完成
</el-button> </el-button>
@ -65,7 +57,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelConfirmBill" v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelConfirmBill"
icon="el-icon-close" icon="el-icon-close"
@click="handleEditBillladingStatus(3)" @click="() => handleEditBillladingStatus(3)"
> >
取消完成 取消完成
</el-button> </el-button>
@ -73,7 +65,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_settleAccounts" v-if="permissionObj.arteryDistrilbutionBillLadingList_settleAccounts"
icon="el-icon-check" icon="el-icon-check"
@click="handleEditBillladingStatus(4)" @click="() => handleEditBillladingStatus(4)"
> >
</el-button> </el-button>
@ -81,7 +73,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelSettleAccounts" v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelSettleAccounts"
icon="el-icon-close" icon="el-icon-close"
@click="handleEditBillladingStatus(5)" @click="() => handleEditBillladingStatus(5)"
> >
取消结算 取消结算
</el-button> </el-button>
@ -89,7 +81,7 @@
type="primary" type="primary"
v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelBill" v-if="permissionObj.arteryDistrilbutionBillLadingList_cancelBill"
icon="el-icon-close" icon="el-icon-close"
@click="handleEditBillladingStatus(6)" @click="() => handleEditBillladingStatus(6)"
> >
取消提货 取消提货
</el-button> </el-button>
@ -109,7 +101,6 @@
<el-button icon="el-icon-search" @click="searchHide" circle></el-button> <el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div> </div>
</div> </div>
</el-row>
<!-- 列表模块 --> <!-- 列表模块 -->
<tablecmt <tablecmt
@ -140,14 +131,7 @@
</template> </template>
</tablecmt> </tablecmt>
<!-- 统计 -->
<!-- <el-row>
<div>选择数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
<div>总计: 总数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
</el-row> -->
<!-- 分页模块 --> <!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> <div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div> <div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 --> <!-- 分页模块 -->
@ -164,7 +148,6 @@
> >
</el-pagination> </el-pagination>
</div> </div>
</el-row>
<!-- 添加提货数据 --> <!-- 添加提货数据 -->
<el-dialog <el-dialog
@ -257,16 +240,22 @@
<!-- 确认提货完成 --> <!-- 确认提货完成 -->
<el-dialog <el-dialog
title="确认提货完成" :title="`确认提货${{ 1: '开始', 2: '完成' }[form.type]}`"
v-model="popUpShow.confirmBillLading" v-model="popUpShow.confirmBillLading"
width="780px" width="780px"
:before-close="beforeClose" :before-close="beforeClose"
align-center
destroy-on-close
append-to-body append-to-body
> >
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="billLadingFormRef" :model="form" label-width="120px">
<!-- 表单字段 --> <!-- 表单字段 -->
<el-form-item label="提货完成时间" prop="createTime"> <el-form-item
:label="`提货${{ 1: '开始', 2: '完成' }[form.type]}时间`"
:rules="[{ required: true, message: '请输入时间', trigger: 'change' }]"
prop="time"
>
<el-date-picker <el-date-picker
class="w100 h100" class="w100 h100"
v-model="form.time" v-model="form.time"
@ -388,9 +377,9 @@ import {
deepClone, deepClone,
handleTranslationDataSeclect, handleTranslationDataSeclect,
ChecksWhetherTheWarehouseIsSelected, ChecksWhetherTheWarehouseIsSelected,
getObjType,
} from '@/utils/util'; } from '@/utils/util';
import { dateNow } from '@/utils/date'; import { dateNow } from '@/utils/date';
import { detail } from '@/api/flow/flow';
export default { export default {
data() { data() {
@ -456,7 +445,11 @@ export default {
/** 字典 */ /** 字典 */
clientType: [], clientType: [],
options: [], options: [],
debounce, searchOption: [
{ label: '批次号', prop: 'serviceNumber', type: 'input' },
{ label: '开始时间', prop: 'startTimeArr', type: 'time' },
{ label: '完成时间', prop: 'completeTimeArr', type: 'time' },
],
/** 时间 */ /** 时间 */
shortcuts: [ shortcuts: [
{ {
@ -493,37 +486,38 @@ export default {
// loading // loading
this.loading = true; this.loading = true;
// const submitData = { ...page, ...this.query, ...params };
const res = await postPageList({ ...page, ...this.query, ...params });
console.log('res :>> ', res); //
const { code, data } = res.data; if (
if (code !== 200) return; getObjType(submitData.startTimeArr) === 'array' &&
submitData.startTimeArr.length > 0
) {
submitData.startTimeStartStr = submitData.startTimeArr[0];
submitData.startTimeEndStr = submitData.startTimeArr[1];
}
this.data = data.records; //
let _billladingStatusOption = []; if (
let _chargeTypeOption = []; getObjType(submitData.completeTimeArr) === 'array' &&
submitData.completeTimeArr.length > 0
) {
submitData.completeTimeStartStr = submitData.completeTimeArr[0];
submitData.completeTimeEndStr = submitData.completeTimeArr[1];
}
for (let i = 0; i < this.columnList.length; i++) { delete submitData.startTimeArr;
const value = this.columnList[i]; delete submitData.completeTimeArr;
if (value.prop === 'billladingStatusName') _billladingStatusOption = value.checkarr; //
else if (value.prop === 'chargeTypeName') _chargeTypeOption = value.checkarr; const res = await postPageList(submitData);
}
for (let i = 0; i < this.data.length; i++) { const { code, data } = res.data;
const value = this.data[i]; if (code !== 200) return;
value.billladingStatusName = ( this.data = data.records;
_billladingStatusOption.find(item => item.value === Number(value.billladingStatus)) ||
{}
).label;
value.chargeTypeName = (
_chargeTypeOption.find(item => item.value === Number(value.chargeType)) || {}
).label;
}
console.log('this.data :>> ', this.data); handleTranslationDataSeclect(this.data, this.columnList);
this.page.total = data.total; this.page.total = data.total;
} catch (error) { } catch (error) {
@ -788,7 +782,7 @@ export default {
}); });
}, },
/** 提货完成 */ /** 提货完成 */
handleShowConfirm() { handleShowConfirm(type) {
if (!ChecksWhetherTheWarehouseIsSelected()) if (!ChecksWhetherTheWarehouseIsSelected())
return this.$message.warning('多仓权限无法操作,请选择仓库'); return this.$message.warning('多仓权限无法操作,请选择仓库');
if (this.selectionList.length === 0) return this.$message.error('最少选择一条数据'); if (this.selectionList.length === 0) return this.$message.error('最少选择一条数据');
@ -801,19 +795,23 @@ export default {
minTime: new Date(item.startTime).getTime(), minTime: new Date(item.startTime).getTime(),
time: dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'), time: dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
id: item.id, id: item.id,
type,
}; };
console.log('this.form :>> ', this.form); console.log('this.form :>> ', this.form);
}, },
async handleConfirmSubmit() { handleConfirmSubmit() {
this.$refs.billLadingFormRef.validate(async valid => {
if (!valid) return;
if (!this.form.time) return this.$message.warning('请选择时间');
try { try {
if (new Date(this.form.time).getTime() <= this.form.minTime) if (this.form.type !== 1 && new Date(this.form.time).getTime() <= this.form.minTime)
return this.$message.warning('完成时间请大于提货开始时间'); return this.$message.warning('完成时间请大于提货开始时间');
this.popUpShow.confirmBillLading = false; this.popUpShow.confirmBillLading = false;
this.loadingObj.pageLoading = true; this.loadingObj.pageLoading = true;
const res = await postUpdateBillladingStatus({ const res = await postUpdateBillladingStatus({
id: this.form.id, id: this.form.id,
type: 2, type: this.form.type,
completeTime: this.form.time, completeTime: this.form.time,
}); });
@ -830,6 +828,7 @@ export default {
} finally { } finally {
this.loadingObj.pageLoading = false; this.loadingObj.pageLoading = false;
} }
});
}, },
/** 开启添加提货数据弹窗 */ /** 开启添加提货数据弹窗 */
handleAddDistrilbution() { handleAddDistrilbution() {

2
src/views/distribution/inventory/arteryDistrilbutionBillLadingListDetails.vue

@ -49,7 +49,7 @@
<el-button <el-button
v-if=" v-if="
permissionObj.arteryDistrilbutionBillLadingListDetails_confirmEdit && permissionObj.arteryDistrilbutionBillLadingListDetails_confirmEdit &&
[1, 2].includes(Number(deliverydata.billladingStatus)) [1, 2, 3].includes(Number(deliverydata.billladingStatus))
" "
icon="CircleCheckFilled" icon="CircleCheckFilled"
type="primary" type="primary"

7
src/views/waybill/CreateZeroOrder.vue

@ -58,7 +58,12 @@
<el-icon><User /></el-icon> <el-icon><User /></el-icon>
<span style="margin-left: 10px">{{ details.query.openOrderUserName }}</span> <span style="margin-left: 10px">{{ details.query.openOrderUserName }}</span>
</div> </div>
<el-date-picker v-model="query.openOrderDate" type="datetime" placeholder="创建时间" /> <el-date-picker
v-model="query.openOrderDate"
type="datetime"
:clearable="false"
placeholder="创建时间"
/>
</div> </div>
</div> </div>

2
src/views/waybill/WaybillOrderList.vue

@ -2,7 +2,7 @@
<basic-container v-loading="details.loadingObj.pageLoading"> <basic-container v-loading="details.loadingObj.pageLoading">
<div class="avue-crud"> <div class="avue-crud">
<!-- 搜索模块 --> <!-- 搜索模块 -->
<div v-h5uShow="!search"> <div v-h5uShow="search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form :inline="true" :model="query" class="header_search"> <el-form :inline="true" :model="query" class="header_search">
<!-- <el-form-item label="有效状态"> <!-- <el-form-item label="有效状态">

Loading…
Cancel
Save