Browse Source

Squashed commit of the following:

commit 7984b9ae5e
Merge: 370be27 4b09bef
Author: 0.0 <1092404103.qq.com>
Date:   Wed Jun 28 16:11:38 2023 +0800

    Merge remote-tracking branch 'origin/dev' into dev

commit 370be271bc
Author: 0.0 <1092404103.qq.com>
Date:   Wed Jun 28 16:11:26 2023 +0800

    1.配送详情
dev-warehouse
zhangsiyu 2 years ago
parent
commit
62f0d3eb5a
  1. 27
      src/components/tablecmt/tablecmt.vue
  2. 2
      src/main.js
  3. 27
      src/views/distribution/deliverylist/distributionDeliveryList.vue
  4. 15
      src/views/distribution/deliverylist/distributionDeliveryList2.vue
  5. 15
      src/views/distribution/deliverylist/distributionDeliveryList3.vue
  6. 177
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  7. 24
      src/views/distribution/signfor/distributionSignfor.vue

27
src/components/tablecmt/tablecmt.vue

@ -4,6 +4,7 @@
style="width: 100%" style="width: 100%"
:show-summary="shownm" :show-summary="shownm"
:summary-method="getSummaries" :summary-method="getSummaries"
@selection-change="handleSelectionChange"
> >
<!-- <el-table-column type="selection" width="55" /> --> <!-- <el-table-column type="selection" width="55" /> -->
<!-- <el-table-column label="Address Info"> <!-- <el-table-column label="Address Info">
@ -77,11 +78,12 @@
</template> </template>
<template #default="scope"> <template #default="scope">
<!-- <el-text class="mx-1">{{ scope.row.name }}</el-text> --> <el-text class="mx-2" v-if="Number(column.type)<6&&Number(column.type)>0">{{ scope.row[column.prop] }}</el-text>
<slot :scope="scope" v-if="column.type == 6"></slot> <slot v-if="column.type == 6" :scope="scope"></slot>
<!-- <slot v-if="column.type == 7" name="test" :testdata="scope"></slot> -->
<!-- <el-button <!-- <el-button
v-if="column.type == 6"s v-if="column.type == 6"
size="small"s size="small"
@click="handleEdit(scope.$index, scope.row)" @click="handleEdit(scope.$index, scope.row)"
>Edit</el-button >Edit</el-button
> >
@ -113,6 +115,14 @@
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import type { PropType } from 'vue'; import type { PropType } from 'vue';
/**
* 对应通知事件
* inputTxt:输入框输入的确认事件
* timeCheck:时间选择器选择事件
* selectCheck:下拉框选中事件
* selection:勾选框事件
*/
interface TableColumnType { interface TableColumnType {
/** 表格列的key */ /** 表格列的key */
prop: string; prop: string;
@ -126,7 +136,8 @@ interface TableColumnType {
* 3:带下拉框表格 * 3:带下拉框表格
* 4:带日期选择器列 * 4:带日期选择器列
* 5:带日期时间选择器 * 5:带日期时间选择器
* 6:操作栏 * 6:操作栏proplabel全部传空
* 7:测试
*/ */
type: number | string; type: number | string;
/** 用于接受表头的值 */ /** 用于接受表头的值 */
@ -161,7 +172,7 @@ let props = defineProps({
required: true, required: true,
}, },
}); });
let emit =defineEmits(['inputTxt','timeCheck','selectCheck']) let emit =defineEmits(['inputTxt','timeCheck','selectCheck','selection'])
// const tableData = ref([ // const tableData = ref([
// { // {
@ -326,6 +337,10 @@ function timechange(value,column:TableColumnType){
console.log(value,column) console.log(value,column)
emit('timeCheck',value,column) emit('timeCheck',value,column)
} }
const handleSelectionChange=(param:TableDataType[])=>{
console.log(param)
emit('selection',param)
}
function inputclear(value,column:TableColumnType){ function inputclear(value,column:TableColumnType){
console.log('',column) console.log('',column)
emit('inputTxt','',column) emit('inputTxt','',column)

2
src/main.js

@ -21,6 +21,7 @@ import basicContainer from 'components/basic-container/main.vue';
import thirdRegister from './components/third-register/main.vue'; 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 App from './App.vue'; import App from './App.vue';
import 'animate.css'; import 'animate.css';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
@ -41,6 +42,7 @@ app.component('basicBlock', basicBlock);
app.component('thirdRegister', thirdRegister); app.component('thirdRegister', thirdRegister);
app.component('flowDesign', flowDesign); app.component('flowDesign', flowDesign);
app.component('tenantPackage', tenantPackage); app.component('tenantPackage', tenantPackage);
app.component('tablecmt', tablecmt);
app.config.globalProperties.$dayjs = dayjs; app.config.globalProperties.$dayjs = dayjs;
app.config.globalProperties.$globalc = globalc; app.config.globalProperties.$globalc = globalc;
app.config.globalProperties.website = website; app.config.globalProperties.website = website;

27
src/views/distribution/deliverylist/distributionDeliveryList.vue

@ -11,12 +11,18 @@
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-form>--> <!-- </el-form>-->
<!-- </el-row>--> <!-- </el-row>-->
<el-row :gutter="24" class="rows">
<el-col :xl="7" :lg="7" :md="8" :sm="24" >
<span style="padding-left: 10%" >配送总车次{{statistics.vehiclesNub}}/总件数{{statistics.deliveriesTotal}} </span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>商配总车次{{statistics.commercialNub}}/总件数{{statistics.commercialTotal}} </span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>市配总车次{{statistics.marketNub}}/总件数{{statistics.marketTotal}} </span>
</el-col>
</el-row>
<el-row style="margin-top: 30px"> <el-row style="margin-top: 30px">
<!-- <el-button-group>-->
<!-- <el-button type="primary" @click="deliverytype('')" >全部</el-button>-->
<!-- <el-button type="primary" @click="deliverytype('2')">商配<i class="el-icon-arrow-right el-icon&#45;&#45;right"></i></el-button>-->
<!-- <el-button type="primary" @click="deliverytype('1')">市配</el-button>-->
<!-- </el-button-group>-->
<div class="avue-crud__header"> <div class="avue-crud__header">
<!-- 头部左侧按钮模块 --> <!-- 头部左侧按钮模块 -->
<div class="avue-crud__left" style="margin-top: 20px"> <div class="avue-crud__left" style="margin-top: 20px">
@ -54,11 +60,9 @@
<!-- 操作栏模块 --> <!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center"> <el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}"> <template #="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button> <!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>-->
<el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看</el-button> <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看地图</el-button> <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看地图</el-button>
<!-- <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>-->
<!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -142,7 +146,7 @@
</template> </template>
<script> <script>
import { getList, getDetail, add, update, remove,getPage } from "@/api/distribution/distributionDeliveryList"; import { getList, getDetail, add, update, remove,getPage,getstatistics } from "@/api/distribution/distributionDeliveryList";
import option from "@/option/distribution/distributionDeliveryList"; import option from "@/option/distribution/distributionDeliveryList";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
@ -163,6 +167,8 @@ export default {
view: false, view: false,
// //
query: {}, query: {},
//
statistics:{},
// //
page: { page: {
currentPage: 1, currentPage: 1,
@ -372,6 +378,9 @@ export default {
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });
getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.statistics = res.data.data
});
getDetail(row.id).then(res => { getDetail(row.id).then(res => {
this.form = res.data.data; this.form = res.data.data;
}); });

15
src/views/distribution/deliverylist/distributionDeliveryList2.vue

@ -11,6 +11,14 @@
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-form>--> <!-- </el-form>-->
<!-- </el-row>--> <!-- </el-row>-->
<el-row :gutter="24" class="rows">
<el-col :xl="14" :lg="7" :md="8" :sm="24" >
<span style="padding-left: 10%" >配送总车次{{statistics.vehiclesNub}}/总件数{{statistics.deliveriesTotal}} </span>
</el-col>
<el-col :xl="10" :lg="7" :md="8" :sm="24">
<span>商配总车次{{statistics.commercialNub}}/总件数{{statistics.commercialTotal}} </span>
</el-col>
</el-row>
<el-row style="margin-top: 30px"> <el-row style="margin-top: 30px">
<!-- <el-button-group>--> <!-- <el-button-group>-->
<!-- <el-button type="primary" @click="deliverytype('')" >全部</el-button>--> <!-- <el-button type="primary" @click="deliverytype('')" >全部</el-button>-->
@ -142,7 +150,7 @@
</template> </template>
<script> <script>
import { getList, getDetail, add, update, remove } from "@/api/distribution/distributionDeliveryList"; import { getList, getDetail, add, update, remove, getstatistics } from '@/api/distribution/distributionDeliveryList';
import option from "@/option/distribution/distributionDeliveryList"; import option from "@/option/distribution/distributionDeliveryList";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
@ -163,6 +171,8 @@ export default {
view: false, view: false,
// //
query: {}, query: {},
//
statistics:{},
// //
page: { page: {
currentPage: 1, currentPage: 1,
@ -373,6 +383,9 @@ export default {
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });
getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.statistics = res.data.data
});
getDetail(row.id).then(res => { getDetail(row.id).then(res => {
this.form = res.data.data; this.form = res.data.data;
}); });

15
src/views/distribution/deliverylist/distributionDeliveryList3.vue

@ -11,6 +11,14 @@
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-form>--> <!-- </el-form>-->
<!-- </el-row>--> <!-- </el-row>-->
<el-row :gutter="24" class="rows">
<el-col :xl="14" :lg="7" :md="8" :sm="24" >
<span style="padding-left: 10%" >配送总车次{{statistics.vehiclesNub}}/总件数{{statistics.deliveriesTotal}} </span>
</el-col>
<el-col :xl="10" :lg="7" :md="8" :sm="24">
<span>市配总车次{{statistics.marketNub}}/总件数{{statistics.marketTotal}} </span>
</el-col>
</el-row>
<el-row style="margin-top: 30px"> <el-row style="margin-top: 30px">
<!-- <el-button-group>--> <!-- <el-button-group>-->
<!-- <el-button type="primary" @click="deliverytype('')" >全部</el-button>--> <!-- <el-button type="primary" @click="deliverytype('')" >全部</el-button>-->
@ -142,7 +150,7 @@
</template> </template>
<script> <script>
import { getList, getDetail, add, update, remove } from "@/api/distribution/distributionDeliveryList"; import { getList, getDetail, add, update, remove, getstatistics } from '@/api/distribution/distributionDeliveryList';
import option from "@/option/distribution/distributionDeliveryList"; import option from "@/option/distribution/distributionDeliveryList";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
@ -163,6 +171,8 @@ export default {
view: false, view: false,
// //
query: {}, query: {},
//
statistics:{},
// //
page: { page: {
currentPage: 1, currentPage: 1,
@ -373,6 +383,9 @@ export default {
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });
getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.statistics = res.data.data
});
getDetail(row.id).then(res => { getDetail(row.id).then(res => {
this.form = res.data.data; this.form = res.data.data;
}); });

177
src/views/distribution/deliverylist/distributionDeliveryListedt.vue

@ -7,13 +7,32 @@
<!-- <el-tag>序号:{{row.$index}}-数据:{{row.input}}</el-tag>--> <!-- <el-tag>序号:{{row.$index}}-数据:{{row.input}}</el-tag>-->
<!-- </template>--> <!-- </template>-->
<!-- </avue-form>--> <!-- </avue-form>-->
<el-row> <el-row :gutter="24" class="rows">
<el-col :offset="11" > <el-col :xl="7" :lg="7" :md="8" :sm="24" >
<el-button type="primary" @click="rowUpdate" v-if="!this.edt"> </el-button> <span>配送类型{{deliverydata.kind}} </span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>配送车辆{{deliverydata.vehicleName}} </span>
</el-col>
</el-row>
<el-row :gutter="24" class="rows">
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>配送司机{{deliverydata.driverName}} </span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>叉车司机{{deliverydata.forkliftName}} </span>
</el-col>
</el-row>
<el-row :gutter="24" class="rows">
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>装卸班组{{deliverydata.loadingTeamName}} </span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span>{{deliverydata.loadingTeamType}} </span>
</el-col> </el-col>
</el-row> </el-row>
<el-divider>维修记录</el-divider> <el-divider>订单列表</el-divider>
<el-row v-if="!this.edt"> <el-row>
<div class="avue-crud__header"> <div class="avue-crud__header">
<!-- 头部左侧按钮模块 --> <!-- 头部左侧按钮模块 -->
<div class="avue-crud__left"> <div class="avue-crud__left">
@ -186,9 +205,7 @@
</template> </template>
<script> <script>
import {getList as getListvalue, getDetail as getDetailvalue, add as addvalue, update as updatevalue, remove as value} from "@/api/basic/basicPropertyvalue"; import { getList, getDetail, add, update, remove,getPage,getstatistics } from "@/api/distribution/distributionDeliveryList";
import {getList as getListField} from "@/api/basic/basicPropertyfield";
import { getList, getDetail, add, update, remove } from '@/api/basic/basicrecords';
import option from '@/option/basic/basicPdarecords'; import option from '@/option/basic/basicPdarecords';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
@ -206,6 +223,7 @@ export default {
search: true, search: true,
// //
isadd: false, isadd: false,
deliverydata:{},
// //
loading: true, loading: true,
// //
@ -231,7 +249,68 @@ export default {
// //
stateData: [], stateData: [],
// //
option: option, option: {
expand: false,
index: true,
border: true,
selection: true,
column: [
{
label: "配送单号",
prop: "noteNumber",
search: true,
width:"100px"
},
{
label: "收货人",
prop: "consignee",
search: true,
width:"100px"
},
{
label: "收货电话",
prop: "businessDepartment",
search: true,
width:"100px"
},
{
label: "收货地址",
prop: "deliveryAddress",
search: true,
width:"100px"
},
{
label: "订单自编号",
prop: "stockArticleId",
search: true,
width:"100px"
},
{
label: "收货地址",
prop: "businessDepartment",
search: true,
width:"100px"
},
{
label: "装车件数",
prop: "businessDepartment",
search: true,
width:"100px"
},
{
label: "配送件数",
prop: "businessDepartment",
search: true,
width:"100px"
},
{
label: "是否加急",
prop: "businessDepartment",
search: true,
width:"100px"
},
]
},
propertyoption: { propertyoption: {
height:'auto', height:'auto',
calcHeight: 30, calcHeight: 30,
@ -274,21 +353,28 @@ export default {
}, },
// //
data: [], data: [],
}; };
}, },
watch: {
// props: { // eslint-disable-next-line no-unused-vars
// propertyformdata:{ '$route'(to, from) {
// type:Object, // this.isadd =false;
// }, // this.query.masterId = null;
// propertyoptiondata:{ // this.masterId = null;
// type:Object, if (!!this.$route.query.data) {
// }, // //
// }, // // this.isadd =true;
// this.query.masterId = this.$route.query.data;
// this.masterId = this.$route.query.data;
//
this.onLoad(this.page);
} else {
}
}
},
mounted() { mounted() {
// this.init(); this.init();
// this.onLoad(this.page); this.onLoad();
}, },
created() { created() {
// // // //
@ -358,13 +444,6 @@ export default {
handleSubmit() { handleSubmit() {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
//json
const filteredKeys = Object.keys(this.form).filter(key => key.includes('value'));
const filteredObj = filteredKeys.reduce((result, key) => {
result[key] = this.form[key];
return result;
}, {});
const jsonString = JSON.stringify(filteredObj);
this.form.stringValue =jsonString; this.form.stringValue =jsonString;
if (!this.form.id) { if (!this.form.id) {
this.form.masterId = this.propertyformdata.id; this.form.masterId = this.propertyformdata.id;
@ -479,42 +558,16 @@ export default {
this.page.pageSize = pageSize; this.page.pageSize = pageSize;
this.onLoad(this.page); this.onLoad(this.page);
}, },
onLoad(page, params = {}) { onLoad() {
// if (this.pdaformdata) { //
let id = this.propertyformdata.id;
this.query.masterId = id
// }
this.loading = true; this.loading = true;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { let id = this.$route.query.id;
const data = res.data.data; getDetail(id).then(res => {
// eslint-disable-next-line no-empty console.log("res.data>>>>>>>>>>>>",res.data.data);
for (let i = 0; i < data.records.length; i++) { this.deliverydata = res.data.data
// eslint-disable-next-line no-empty this.data = res.data.data.reservationList
for (let j = 0; j < this.isLiabilityData.length; j++) {
// eslint-disable-next-line no-empty
if (data.records[i].isLiability == this.isLiabilityData[j].dictKey) {
data.records[i].isLiability = this.isLiabilityData[j].dictValue;
}
}
}
this.page.total = data.total;
this.data = data.records;
this.loading = false;
this.selectionClear();
}); });
this.loading = false;
// getDetailPda(id).then(res => {
// const data = res.data.data;
// this.dataForm = data;
//
// });
console.log('this.edt>>>>>>>>>>>>>>',this.edt);
this.dataForm = this.propertyformdata;
this.propertyoption = this.propertyoptiondata;
this.propertyoption.emptyBtn = false,//
this.propertyoption.submitBtn = false //
} }
} }
}; };

24
src/views/distribution/signfor/distributionSignfor.vue

@ -8,8 +8,9 @@
@timeCheck="timesc" @timeCheck="timesc"
@btnCheck="btnsc" @btnCheck="btnsc"
@selectCheck="selectsc" @selectCheck="selectsc"
@selection="selectionsc"
> >
<template v-slot:default="slotProps"> <template #default="slotProps">
<el-button <el-button
size="small" size="small"
@click="editsolt(slotProps.scope)" @click="editsolt(slotProps.scope)"
@ -22,6 +23,11 @@
>Delete</el-button >Delete</el-button
> >
</template> </template>
<!-- <template #test="slotProps">
<div>
{{ slotProps }}
</div>
</template> -->
</tablecmt> </tablecmt>
<el-row :hidden="!search" style="padding:6px 18px"> <el-row :hidden="!search" style="padding:6px 18px">
<!-- 查询模块 --> <!-- 查询模块 -->
@ -194,16 +200,12 @@
</template> </template>
<script> <script>
import tablecmt from '@/components/tablecmt/tablecmt.vue';
import { getList, getDetail, add, update, remove } from "@/api/distribution/distributionSignfor"; import { getList, getDetail, add, update, remove } from "@/api/distribution/distributionSignfor";
import option from "@/option/distribution/distributionSignfor"; import option from "@/option/distribution/distributionSignfor";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
export default { export default {
components:{
tablecmt
},
data () { data () {
return { return {
columnList: [ columnList: [
@ -293,6 +295,15 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
}, },
// {
// prop: 'test',
// label: '',
// type: 7,
// values: '',
// width: '180',
// checkarr: [],
// fixed: false,
// },
{ {
prop: '', prop: '',
label: '操作', label: '操作',
@ -409,6 +420,9 @@ export default {
} }
}, },
methods: { methods: {
selectionsc(value){
console.log(value)
},
delectsolt(scope){ delectsolt(scope){
const {row}=scope const {row}=scope
console.log(row) console.log(row)

Loading…
Cancel
Save