diff --git a/src/api/basicdata/basicClientAccount.js b/src/api/basicdata/basicClientAccount.js new file mode 100644 index 00000000..f8ddb2ce --- /dev/null +++ b/src/api/basicdata/basicClientAccount.js @@ -0,0 +1,21 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/api/logpm-basicdata/basicdataClientAccount/page', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const add = (row) => { + return request({ + url: '/api/logpm-basicdata/basicdataClientAccount/submit', + method: 'post', + data: row + }) +} diff --git a/src/api/basicdata/basicdataGoodsAllocation.js b/src/api/basicdata/basicdataGoodsAllocation.js index 62b5a3a4..2d50e59f 100644 --- a/src/api/basicdata/basicdataGoodsAllocation.js +++ b/src/api/basicdata/basicdataGoodsAllocation.js @@ -49,6 +49,15 @@ export const enable = (ids) => { } }) } +export const downAllocation = (ids) => { + return request({ + url: '/api/logpm-warehouse/warehouseGoodsAllocation/downAllocation', + method: 'post', + params: { + ids, + } + }) +} export const shelf = (ids) => { return request({ url: '/api/logpm-warehouse/warehouseGoodsAllocation/downAllocation', diff --git a/src/api/basicdata/basicdataGoodsArea.js b/src/api/basicdata/basicdataGoodsArea.js index ff2aa322..b5c5e63d 100644 --- a/src/api/basicdata/basicdataGoodsArea.js +++ b/src/api/basicdata/basicdataGoodsArea.js @@ -128,6 +128,17 @@ export const getGoodsAreaNodeList = () => { method: 'get', }) } +/** + * 货区列表信息 + * @param id 仓库ID + * @returns {AxiosPromise} + */ +export const getGoodsAreaoptionList = () => { + return request({ + url: '/api/logpm-basicdata/goodsArea/getAreaoption', + method: 'get', + }) +} /** * 查询当前登录人所能操作的备货区 diff --git a/src/api/basicdata/basicdataGoodsShelf.js b/src/api/basicdata/basicdataGoodsShelf.js index 968b074f..3fb2c3ef 100644 --- a/src/api/basicdata/basicdataGoodsShelf.js +++ b/src/api/basicdata/basicdataGoodsShelf.js @@ -87,15 +87,15 @@ export const getShowTemplate = (row) => { }) } -export const getPrintTemplate = (ids) => { - return request({ - url: '/api/logpm-basicdata/goodsShelf/getPrintTemplate', - method: 'get', - params:{ - ids - } - }) -} +// export const getPrintTemplate = (ids) => { +// return request({ +// url: '/api/logpm-basicdata/goodsShelf/getPrintTemplate', +// method: 'get', +// params:{ +// ids +// } +// }) +// } export const getQRCodeImg = (qrCode) => { return request({ diff --git a/src/api/basicdata/basicdataGoodsShelfView.ts b/src/api/basicdata/basicdataGoodsShelfView.ts index 10e2fcc2..20a9080a 100644 --- a/src/api/basicdata/basicdataGoodsShelfView.ts +++ b/src/api/basicdata/basicdataGoodsShelfView.ts @@ -1,5 +1,5 @@ import request from '@/axios'; -import { AxiosResponse } from 'axios'; // 假设使用Axios发送HTTP请求 +import { AxiosResponse,AxiosRequestConfig } from 'axios'; // 假设使用Axios发送HTTP请求 interface VisualizationResponseData { data: any; // 根据实际返回数据结构进行定义 diff --git a/src/api/basicdata/basicdataTray.js b/src/api/basicdata/basicdataTray.js index 2a387ca7..6ee67a91 100644 --- a/src/api/basicdata/basicdataTray.js +++ b/src/api/basicdata/basicdataTray.js @@ -102,13 +102,32 @@ export const getDetail = (id) => { export const remove = (ids) => { return request({ - url: '/api/logpm-basicdata/Tray/remove', + url: '/api/logpm-basicdata/tray/remove', method: 'post', params: { ids, } }) } +export const disable = (ids) => { + return request({ + url: '/api/logpm-basicdata/tray/disable', + method: 'post', + params: { + ids, + } + }) +} +export const addable = (ids) => { + return request({ + url: '/api/logpm-basicdata/tray/addable', + method: 'post', + params: { + ids, + } + }) +} + export const add = (row) => { return request({ @@ -132,4 +151,11 @@ export const vacant = (row) => { data: row }) } +export const vacants = (row) => { + return request({ + url: '/api/logpm-basicdata/tray/vacants', + method: 'post', + data: row + }) +} diff --git a/src/api/distribution/disStockListDetail.js b/src/api/distribution/disStockListDetail.js index a2d7ac7b..86b163f6 100644 --- a/src/api/distribution/disStockListDetail.js +++ b/src/api/distribution/disStockListDetail.js @@ -2,7 +2,7 @@ import request from '@/axios'; export const getList = (current, size, params) => { return request({ - url: '/disStockOrdercodeReco/disStockListDetail/list', + url: '/api/logpm-distribution/disStockListDetail/list', method: 'get', params: { ...params, @@ -12,9 +12,19 @@ export const getList = (current, size, params) => { }) } +export const getDisStockList = (params) => { + return request({ + url: '/api/logpm-distribution/disStockListDetail/disStockList', + method: 'get', + params: { + ...params, + } + }) +} + export const getDetail = (id) => { return request({ - url: '/disStockOrdercodeReco/disStockListDetail/detail', + url: '/api/logpm-distribution/disStockListDetail/detail', method: 'get', params: { id @@ -24,7 +34,7 @@ export const getDetail = (id) => { export const remove = (ids) => { return request({ - url: '/disStockOrdercodeReco/disStockListDetail/remove', + url: '/api/logpm-distribution/disStockListDetail/remove', method: 'post', params: { ids, @@ -34,7 +44,7 @@ export const remove = (ids) => { export const add = (row) => { return request({ - url: '/disStockOrdercodeReco/disStockListDetail/submit', + url: '/api/logpm-distribution/disStockListDetail/submit', method: 'post', data: row }) @@ -42,7 +52,7 @@ export const add = (row) => { export const update = (row) => { return request({ - url: '/disStockOrdercodeReco/disStockListDetail/submit', + url: '/api/logpm-distribution/disStockListDetail/submit', method: 'post', data: row }) diff --git a/src/api/distribution/disStockOrdercodeReco.js b/src/api/distribution/disStockOrdercodeReco.js index b754d8cd..3773709d 100644 --- a/src/api/distribution/disStockOrdercodeReco.js +++ b/src/api/distribution/disStockOrdercodeReco.js @@ -2,7 +2,7 @@ import request from '@/axios'; export const getList = (current, size, params) => { return request({ - url: '/disStockOrdercodeReco/disStockOrdercodeReco/list', + url: '/api/logpm-distribution/disStockOrdercodeReco/list', method: 'get', params: { ...params, @@ -14,7 +14,7 @@ export const getList = (current, size, params) => { export const getDetail = (id) => { return request({ - url: '/disStockOrdercodeReco/disStockOrdercodeReco/detail', + url: '/api/logpm-distribution/disStockOrdercodeReco/detail', method: 'get', params: { id @@ -24,7 +24,7 @@ export const getDetail = (id) => { export const remove = (ids) => { return request({ - url: '/disStockOrdercodeReco/disStockOrdercodeReco/remove', + url: '/api/logpm-distribution/disStockOrdercodeReco/remove', method: 'post', params: { ids, @@ -34,7 +34,7 @@ export const remove = (ids) => { export const add = (row) => { return request({ - url: '/disStockOrdercodeReco/disStockOrdercodeReco/submit', + url: '/api/logpm-distribution/disStockOrdercodeReco/submit', method: 'post', data: row }) @@ -42,7 +42,7 @@ export const add = (row) => { export const update = (row) => { return request({ - url: '/disStockOrdercodeReco/disStockOrdercodeReco/submit', + url: '/api/logpm-distribution/disStockOrdercodeReco/submit', method: 'post', data: row }) diff --git a/src/api/warehouse/warehouseUpdownGoodsLog.js b/src/api/warehouse/warehouseUpdownGoodsLog.js index b107151b..15f807ef 100644 --- a/src/api/warehouse/warehouseUpdownGoodsLog.js +++ b/src/api/warehouse/warehouseUpdownGoodsLog.js @@ -12,6 +12,29 @@ export const getpage = (current, size, params) => { }) } +export const getinventorypage = (current, size, params) => { + return request({ + url: '/api/logpm-warehouse/warehouseUpdownGoodsLog/inventorypage', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} +export const gettruckloadpage = (current, size, params) => { + return request({ + url: '/api/logpm-warehouse/warehouseUpdownGoodsLog/truckloadpage', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + export const getDetail = (id) => { return request({ url: '/api/logpm-warehouse/warehouseUpdownGoodsLog/detail', diff --git a/src/axios.js b/src/axios.js index 6b05cbf4..bc627fa2 100644 --- a/src/axios.js +++ b/src/axios.js @@ -18,7 +18,7 @@ import 'nprogress/nprogress.css'; // progress bar style import { Base64 } from 'js-base64'; import { baseUrl } from '@/config/env'; -axios.defaults.timeout = 10000; +axios.defaults.timeout = 60000; //返回其他状态吗 axios.defaults.validateStatus = function (status) { return status >= 200 && status <= 500; // 默认的 diff --git a/src/components/tablecmt/tablecmt.vue b/src/components/tablecmt/tablecmt.vue index ab95b55b..67e30fbb 100644 --- a/src/components/tablecmt/tablecmt.vue +++ b/src/components/tablecmt/tablecmt.vue @@ -634,4 +634,8 @@ function copyContent(content: string) { display: flex; align-items: center; } + +.el-popper{ + max-width:20% !important; +} </style> diff --git a/src/option/distribution/distributionStockup.js b/src/option/distribution/distributionStockup.js index 40f5ef02..ce3fff11 100644 --- a/src/option/distribution/distributionStockup.js +++ b/src/option/distribution/distributionStockup.js @@ -724,6 +724,10 @@ export default { label: "备货区", prop: "stockupArea", }, + { + label: "操作", + prop: "stockupArea", + }, ], columnBasic: [ //基本信息 { diff --git a/src/page/index/tags.vue b/src/page/index/tags.vue index af4b6617..ff781386 100644 --- a/src/page/index/tags.vue +++ b/src/page/index/tags.vue @@ -39,6 +39,10 @@ </template> </el-tab-pane> </el-tabs> + <el-dropdown class="avue-tags__menu"> + <el-button class="btsico" icon="el-icon-refresh" @click="replace" circle></el-button> + </el-dropdown> + <el-dropdown class="avue-tags__menu"> <el-button type="primary"> {{ $t('tagsView.menu') }} @@ -189,6 +193,14 @@ export default { }); }); }, + replace(){ + location.replace(location.href) + } }, }; </script> +<style lang="scss"> + .btsico{ + margin-right: 70px !important; + } +</style> \ No newline at end of file diff --git a/src/router/views/index.js b/src/router/views/index.js index 27bc74f9..aa5e83f1 100644 --- a/src/router/views/index.js +++ b/src/router/views/index.js @@ -925,7 +925,30 @@ export default [ component: () => import('@/views/basicdata/team/basicdataTeamStaff.vue'), }, ], + }, + + + { + path: '/basicdata/brand/basicClientAccount', + component: Layout, + redirect: '/basicdata/brand/basicClient', + children: [ + { + path: '/basicdata/brand/basicClientAccount', + name: '客户账号列表', + meta: { + i18n: 'dict', + }, + props: route => ({ + id: route.query.id + }), + component: () => import('@/views/basicdata/brand/basicClientAccount.vue'), + }, + ], + + }, + // { // path: 'basicdata/goodsShelf/basicdataGoodsShelfView', // component: Layout, diff --git a/src/views/basicdata/brand/basicClient.vue b/src/views/basicdata/brand/basicClient.vue index d844970a..f9176535 100644 --- a/src/views/basicdata/brand/basicClient.vue +++ b/src/views/basicdata/brand/basicClient.vue @@ -126,6 +126,9 @@ <el-dropdown-item command="6"> <el-text>三方商城</el-text> </el-dropdown-item> + <el-dropdown-item command="7"> + <el-text>开通账号</el-text> + </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> @@ -313,6 +316,36 @@ </span> </template> </el-dialog> + + + <!-- 账号绑定弹出框页面 + 1、显示登录账号 + 2、显示账号的名称 --> + <el-dialog title="开通账号" v-model="openAcountStatus"> + + <el-form :disabled="view" ref="openAcountorm" :model="openAcountform" :rules="openAcountrules" label-width="120px"> + + <el-form-item label="姓名" prop="linkman" > + <el-input v-model="openAcountform.name" placeholder="请输入联系人" maxlength="20" style="width: 100%" /> + </el-form-item> + + <el-form-item label="账号" prop="linkman" > + <el-input v-model="openAcountform.phone" placeholder="请输入电话" type="number" maxlength="11" style="width: 100%" /> + </el-form-item> + <el-form-item label="密码" > + <span style="color: red;">默认系统初始化密码</span> + </el-form-item> + </el-form> + + <template #footer> + <span v-if="!view" class="dialog-footer"> + <el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit('form')">提 交</el-button> + <el-button icon="el-icon-circle-close" @click="openAcountStatus = false">取 消</el-button> + </span> + </template> + + </el-dialog> + <el-drawer title="子表操作" append-to-body @@ -345,6 +378,7 @@ import { getSelect, getLazyTree, getLazyList, getLazyTreeAll } from '@/api/base/ import { getToken } from '@/utils/auth'; import globalc from '@/api/basicdata/globalc'; import { Base64 } from 'js-base64'; +import dayjs from 'dayjs'; export default { @@ -389,7 +423,7 @@ export default { { prop: 'clientTypeName', label: '客户类型', - type: 2, + type: 3, values: '', width: '150', checkarr: [], @@ -400,7 +434,7 @@ export default { { prop: 'typeServiceName', label: '服务类型', - type: 2, + type: 1, values: '', width: '180', checkarr: [], @@ -598,7 +632,13 @@ export default { { required: true, message: '请上传合同文件', trigger: 'blur' } ] }, - bianji: false + bianji: false, + + openAcountStatus:false,//开通账号弹出框状态 + openAcountform:{ + name:"", + phone:"" + } }; }, created() { @@ -628,6 +668,70 @@ export default { } }, methods: { + showdrawer(value){ + this.drawerShow=value + }, + /** + * 弹窗的勾选回调,用于更改头部数组 + * 固定搭配,只需要更换 columnList + */ + setnewcolum(newarr, headarr,type) { + // console.log(newarr,'+++++++++++') + if(type==1){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'checkList', headarr); + }else if(type==2){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'flexList', headarr); + }else if(type==3){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'sortlist', headarr); + } + + }, + selectionsc(value) { + console.log(value); + }, + delectsolt(scope) { + const { row } = scope; + console.log(row); + }, + editsolt(scope) { + const { row } = scope; + console.log(row); + }, + btnsc(index, row) { + console.log(index, row); + }, + selectsc(index, row) { + console.log("123123123",index, row); + if(row.prop ==='clientTypeName'){ + this.query['clientType'] = index; + }else{ + this.query[row.prop] = index; + } + this.onLoad(this.page); + }, + timesc(index, row) { + console.log(index, row); + if (!!index){ + index = dayjs(index).format('YYYY-MM-DD'); + } + this.query[row.prop] = index + if (!index){ + delete this.query[row.prop] + } + this.onLoad(this.page); + }, + inputsc(index, row) { + console.log(index, row); + // console.log(index, row.prop); + this.query[row.prop] = index; + this.onLoad(this.page); + }, + + + handleCommand(command,row){ console.log(command,row) switch (Number(command)) { @@ -649,6 +753,9 @@ export default { case 6: this.handleMall(row) break; + case 7: + this.openAcount(row) + break; } }, //远程校验 @@ -692,6 +799,26 @@ export default { console.log(val); }, + /** + * 开通账号 + */ + openAcount(row) { + + + // this.openAcountform.name = row.linkman; + // this.openAcountform.phone = row.phone; + // this.openAcountStatus = true; + + this.$router.push({ + path: '/basicdata/brand/basicClientAccount', + query: { + id: row.id, + name: '商场 - ' + row.clientName + } + }); + + }, + // handleMall(row) { // console.log('>>>', row); @@ -706,7 +833,6 @@ export default { }, //打开文件 downloadLink(row) { - console.log('>>>>>', row); window.open('http://192.168.10.100:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(row.leaseAccessories))); }, //控制控货 @@ -800,6 +926,11 @@ export default { getDictionaryBiz('client_type').then(res => { // console.log("字典》》》",res); this.clientType = res.data.data; + this.$functions.checkcColumnList("clientTypeName", this.columnList).checkarr=res.data.data.map(item=>{ + item.value=item.dictKey + item.label=item.dictValue + return item + }); }); //字典 getDictionaryBiz('basic_freight_type').then(res => { diff --git a/src/views/basicdata/brand/basicClientAccount.vue b/src/views/basicdata/brand/basicClientAccount.vue new file mode 100644 index 00000000..6b046d0e --- /dev/null +++ b/src/views/basicdata/brand/basicClientAccount.vue @@ -0,0 +1,458 @@ +<template> + <basic-container> + <div class="avue-crud"> + <el-row v-if="!search" style="padding:6px 18px"> + <!-- 查询模块 --> + <el-form :inline="true" :model="query"> + + <el-form-item label="账号:"> + <el-input v-model="query.account" placeholder="请输入账号"></el-input> + </el-form-item> + <!-- <el-form-item label="状态:">--> + <!-- <el-input v-model="query.condition" placeholder="请输入状态"></el-input>--> + <!-- </el-form-item>--> + <!-- 查询按钮 --> + <el-form-item> + <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> + </el-row> + <el-row> + <div class="avue-crud__header"> + <!-- 头部左侧按钮模块 --> + <div class="avue-crud__left"> + <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新 增</el-button> + <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>删 除</el-button> + </div> + <!-- 头部右侧按钮模块 --> + <div class="avue-crud__right"> + <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> + <el-button icon="el-icon-search" @click="searchHide" circle></el-button> + </div> + </div> + </el-row> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList" + :tableData="data" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + + <!-- <el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope.row)">查看</el-text> --> + <el-text type="primary" text icon="el-icon-delete" @click="rowDel(slotProps.scope.row)">删除</el-text> + </template> + </tablecmt> + + </el-row> + <el-row> + <div class="avue-crud__pagination" style="width:100%"> + <!-- 分页模块 --> + <el-pagination align="right" + background + @size-change="sizeChange" + @current-change="currentChange" + :current-page="page.currentPage" + :page-sizes="[30, 50,80, 120]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total"> + </el-pagination> + </div> + </el-row> + + + + <el-dialog title="创建账号" v-model="openAcountStatus"> + + <el-form :disabled="view" ref="openAcountorm" :model="openAcountform" :rules="openAcountrules" label-width="120px"> + + <el-form-item label="姓名" prop="openAcountform.name" > + <el-input v-model="openAcountform.name" placeholder="请输入联系人" maxlength="20" style="width: 100%" /> + </el-form-item> + + <el-form-item label="账号" prop="openAcountform.phone" > + <el-input v-model="openAcountform.phone" placeholder="请输入电话" type="number" maxlength="11" style="width: 100%" /> + </el-form-item> + <el-form-item label="密码" > + <span style="color: red;">默认系统初始化密码</span> + </el-form-item> + </el-form> + + <template #footer> + <span v-if="!view" class="dialog-footer"> + <el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit('openAcountorm')">提 交</el-button> + <el-button icon="el-icon-circle-close" @click="openAcountStatus = false">取 消</el-button> + </span> + </template> + + </el-dialog> + + + </div> + </basic-container> + </template> + + <script> + import { getList,add } from "@/api/basicdata/basicClientAccount"; + import { mapGetters } from "vuex"; + + export default { + + data () { + return { + columnList: [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: 55, + checkarr: [], + fixed: true, + }, + { + prop: 'phone', + label: '账号', + type: 2, + values: '', + width: '200', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'name', + label: '姓名', + type: 2, + values: '', + width: '200', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + + + { + prop: 'createTime', + label: '创建时间', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '150', + checkarr: [], + fixed: 'right', + hide: true, + }, + ], + optionProps:{ + value: 'id', + label: 'cName', + children: 'childrenList', //子元素字段名 + emitPath : false, + checkStrictly:true, + expandTrigger: 'hover' //设置鼠标悬浮展开,如果点击展开的话,会出现点击父节点后选择器直接关闭,不能选择子节点了 + }, + cascaderKey : 1,//防止搜索选项清空数据后出现报错,在加载级联选择器数据的时候+1 + height: 0, + // 弹框标题 + title: '', + costCorrelationId: '', + // 是否展示弹框 + box: false, + openAcountStatus:false,//开通账号弹出框状态 + openAcountform:{ + name:"", + phone:"" + }, + // 是否展示抽屉 + drawer: false, + // 抽屉方向 + direction: 'rtl', + // 是否显示查询 + search: true, + // 加载中 + loading: true, + // 是否为查看模式 + view: false, + // 查询信息 + query: {}, + // 分页信息 + page: { + currentPage: 1, + pageSize: 30, + total: 40 + }, + // 表单数据 + form: {}, + pan: false, + // 选择行 + selectionList: [], + // 表单列表 + data: [], + optioner:[], + optionsr:[], + optionser:[], + rules: { + // province: [ + // { required: true, message: '请选择地址', trigger: 'blur' }, + // // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } + // ], + // brand: [ + // { required: true, message: '请选择品牌', trigger: 'change' } + // ], + // freightMark : [ + // { required: true, message: '请选择费用类型', trigger: 'blur' } + // ], + // cost: [ + // { required: true, message: '请输入费用', trigger: 'blur' } + // ], + // warehousingTimeStatus: [ + // { required: true, message: '请选择时间段', trigger: 'change' } + // ], + // warehousingTimeCharge: [ + // { required: true, message: '请选择时间段费用', trigger: 'blur' } + // ], + // goalGranary: [ + // { required: true, message: '请选择末端仓', trigger: 'blur' } + // ], + }, + } + }, + watch: { + + }, + created() { + + }, + mounted () { + this.init(); + + }, + computed: { + ...mapGetters(["permission"]), + ids () { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + } + }, + methods: { + //关闭浮层 + hideCascaderInp(){ + this.$refs.cascaderRef.value.togglePopperVisible(false) + + }, + handleDrawerClose(){ + this.costCorrelationId = ''; + this.drawer = false; + }, + handleDrawer(row) { + this.costCorrelationId = row.id; + this.drawer = true; + }, + textWarebox(e,index) { + console.log(e,index) + this.costWraeList[index] = e; + }, + textbox(e,index) { + console.log(e,index) + this.costList[index] = e; + }, + handleCheckedCities(value) { + console.log(value); + if(value.length < 1){ + this.costWraeList = []; + } + this.wareType.forEach(i =>{ + if(value.includes(i.dictValue)){ + // console.log(i); + i.pitch = true; + // this.$set(i,'pitch',false); + this.costWraeListName = value; + }else{ + i.pitch = false; + this.costWraeList[i] = null; + i.remark = null; + } + }); + }, + handleCheckedCitiesChange(value) { + + + + }, + remoteMethod(query){ + + }, + remoteMethodBin(query){ + + }, + init () { + this.height = this.setPx(document.body.clientHeight - 340); + }, + searchHide () { + this.search = !this.search; + }, + searchChange () { + this.onLoad(this.page); + }, + searchReset () { + this.query = {}; + this.page.currentPage = 1; + this.onLoad(this.page); + }, + + handleSubmit (from) { + this.$refs[from].validate(async (valid) => { + if (valid) { + this.openAcountform.clientId=this.$route.query.id; + add(this.openAcountform).then(() => { + this.openAcountStatus = false; + this.onLoad(this.page); + this.$message({ + type: 'success', + message: '操作成功!' + }); + }); + } + }) + + }, + handleAdd () { + + this.openAcountStatus = true; + + }, + handleEdit (row) { + + + }, + handleView (row) { + + + }, + handleDelete () { + if (this.selectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + this.$confirm("确定将选择数据删除?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + return remove(this.ids); + }) + .then(() => { + this.selectionClear(); + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" + }); + }); + }, + rowDel (row) { + this.$confirm("确定将选择数据删除?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + return remove(row.id); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" + }); + }); + }, + beforeClose (done) { + done() + this.form = {}; + this.view = false; + }, + selectionChange (list) { + this.selectionList = list; + }, + selectionClear () { + this.selectionList = []; + }, + currentChange (currentPage) { + this.page.currentPage = currentPage; + this.onLoad(this.page); + }, + sizeChange (pageSize) { + this.page.pageSize = pageSize; + this.onLoad(this.page); + }, + onLoad (page, params = {}) { + this.loading = true; + + this.query.clientId= this.$route.query.id; + getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + const data = res.data.data; + this.clientType.forEach(it =>{ + data.records.forEach(i =>{ + if(parseInt( it.dictKey ) == parseInt(i.freightMark)){ + i.freightMark = it.dictValue + } + if(i.freightMark == '-1'){ + i.freightMark = '无' + } + }) + }) + + this.page.total = data.total; + this.data = data.records; + this.loading = false; + this.selectionClear(); + }); + } + } + }; + </script> + <style> + .ca .el-radio__inner { + top: -18px; + left: -19px; + border-radius: 0; + border: 0; + width: 170px; + height: 34px; + background-color: transparent; + cursor: pointer; + box-sizing: border-box; + position: absolute; + } + + .ca .el-radio__input.is-checked .el-radio__inner { + background: transparent; + } + + </style> + \ No newline at end of file diff --git a/src/views/basicdata/warehouse/goodsAllocation/BasicdataGoodsAllocation.vue b/src/views/basicdata/warehouse/goodsAllocation/BasicdataGoodsAllocation.vue index 170c7cd4..d84f7176 100644 --- a/src/views/basicdata/warehouse/goodsAllocation/BasicdataGoodsAllocation.vue +++ b/src/views/basicdata/warehouse/goodsAllocation/BasicdataGoodsAllocation.vue @@ -31,6 +31,11 @@ plain @click="handleEnable">启 用 </el-button> + <el-button type="danger" + icon="el-icon-delete" + plain + @click="downAllocation">一 键 下 架 + </el-button> <!-- <el-button type="warning"--> <!-- plain--> <!-- icon="el-icon-download"--> @@ -78,7 +83,7 @@ </template> <script> - import {getList, getDetail, add, update, remove,getPrintTemplate,shelf,disable,enable} from "@/api/basicdata/basicdataGoodsAllocation"; + import {getList, getDetail, add, update, remove,getPrintTemplate,shelf,disable,enable,downAllocation} from "@/api/basicdata/basicdataGoodsAllocation"; import option from "@/option/basicdata/basicdataGoodsAllocation"; import {mapGetters} from "vuex"; import {exportBlob} from "@/api/common"; @@ -88,6 +93,7 @@ import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; import {getLodop} from "@/utils/LodopFuncs"; + import { addlayer } from '@/api/basicdata/basicdataGoodsShelf'; export default { data() { @@ -332,6 +338,28 @@ this.$refs.crud.toggleSelection(); }); }, + downAllocation() { + if (this.selectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + this.$confirm("确定将选择库位下架?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + downAllocation(this.ids).then((response) => { + + this.onLoad(this.page); + this.$message({ + type: "success", + message: response.data.msg + }); + }) + }) + + }, //批量打印数据处理代码 printTemplate() { let that=this; diff --git a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelf.vue b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelf.vue index 09e9149e..cb294023 100644 --- a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelf.vue +++ b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelf.vue @@ -124,26 +124,26 @@ </el-col> <el-col :span="12" v-if="allocation"> <el-form-item label="列 数:" prop="rowNum" label-width="100px"> - <el-input v-model="form.rowNum" placeholder="请输入货架层数" style="width: 88%;"/> + <el-input v-model="form.rowNum" placeholder="请输入货架列数" style="width: 88%;"/> </el-form-item> </el-col> <el-col :span="12" v-if="allocation"> <el-form-item label="层 数:" prop="storeyNum" label-width="100px"> - <el-input v-model="form.storeyNum" placeholder="请输入货架列数" style="width: 88%;"/> + <el-input v-model="form.storeyNum" placeholder="请输入货架层数" style="width: 88%;"/> </el-form-item> </el-col> <el-col :span="12" v-if="!allocation"> <el-form-item label="货 区:" prop="goodsAreaId" label-width="100px"> - <el-cascader :options="optioner" style="width: 80%" v-model="form.goodsAreaId" placeholder="请选择货区" :show-all-levels="false" clearable /> +<!-- <el-cascader :options="optioner" style="width: 80%" v-model="form.goodsAreaId" placeholder="请选择货区" :show-all-levels="false" clearable />--> - <!-- <el-select v-model="form.goodsAreaId" clearable placeholder="请选择货区" style="width: 88%;">--> -<!-- <el-option--> -<!-- v-for="item in optioner"--> -<!-- :key="item.id"--> -<!-- :label="item.headline"--> -<!-- :value="item.id">--> -<!-- </el-option>--> -<!-- </el-select>--> + <el-select v-model="form.goodsAreaId" clearable placeholder="请选择货区" style="width: 88%;"> + <el-option + v-for="item in areaoption" + :key="item.id" + :label="item.headline" + :value="item.id"> + </el-option> + </el-select> </el-form-item> </el-col> <!-- <el-col :span="12">--> @@ -219,7 +219,7 @@ <template #footer> <span class="dialog-footer"> <el-button type="primary" icon="el-icon-circle-check" @click="handleSubmitAdd">增 加</el-button> - <el-button type="primary" icon="el-icon-circle-check" @click="handleSubmitred">减 少</el-button> +<!-- <el-button type="primary" icon="el-icon-circle-check" @click="handleSubmitred">减 少</el-button>--> <el-button icon="el-icon-circle-close" @click="box = false">取 消</el-button> </span> </template> @@ -259,20 +259,25 @@ <el-dialog title="二维码" :visible.sync="dialogVisible" - width="30%" + width="600px" v-model="dialogVisible"> <div > - <div v-for="(item,index) in qrCodeObj"> - <el-row> - <el-col :span="24" > - <el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/> - </el-col> - </el-row> - </div> + <!-- <div v-for="(item,index) in qrCodeObj" class="pdf-dom">--> + <!-- <el-divider></el-divider>--> + + <!-- <el-row>--> + <!-- <el-col :span="24" >--> + <!-- <el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/>--> + <!-- </el-col>--> + <!-- </el-row>--> + <!-- </div>--> + <!--startprint1--> + <div v-html="html"></div> + <!--endprint1--> </div> <span slot="footer" class="dialog-footer"> <!-- <el-button type="primary" @click="ddd">导 出</el-button>--> - <el-button type="primary" @click="printTemplate">打 印</el-button> + <el-button type="primary" @click="printTemplate">打 印</el-button> <el-button type="primary" @click="dialogVisible = false">确 定</el-button> <el-button @click="dialogVisible = false">取 消</el-button> </span> @@ -293,13 +298,13 @@ @size-change="allsizeChange" @on-load="allonLoad"> -<!-- <template #menu-left>--> -<!-- <el-button type="warning"--> -<!-- plain--> -<!-- icon="el-icon-camera"--> -<!-- @click="handleqr">查看二维码--> -<!-- </el-button>--> -<!-- </template>--> + <template #menu-left> + <el-button type="warning" + plain + icon="el-icon-camera" + @click="handleqr">查看二维码 + </el-button> + </template> <template #menu="{size,row,index}"> <el-button type="primary" text icon="el-icon-view" v-if="row.enableStatus ==1" @click="losses(row,2)">禁 用</el-button> <!-- <el-button type="primary" text icon="el-icon-view" v-if="row.allocationStatus !=='1'" @click="Offshelf(row)">一 键 下 架</el-button>--> @@ -314,11 +319,11 @@ </template> <script> -import { getList, getDetail, add, update, remove,getQRCodeImg,getShowTemplate,getPrintTemplate,addAllocation,disable,enable,addlayer } from "@/api/basicdata/basicdataGoodsShelf"; -import {getList as allgetList,update as allupdate} from "@/api/basicdata/basicdataGoodsAllocation"; +import { getList, getDetail, add, update, remove,getQRCodeImg,getShowTemplate,addAllocation,disable,enable,addlayer, } from "@/api/basicdata/basicdataGoodsShelf"; +import {getList as allgetList,update as allupdate,getPrintTemplate} from "@/api/basicdata/basicdataGoodsAllocation"; import option from "@/option/basicdata/basicdataGoodsShelf"; import { mapGetters } from "vuex"; -import { getGoodsAreaNodeList } from '@/api/basicdata/basicdataGoodsArea'; +import { getGoodsAreaNodeList,getGoodsAreaoptionList } from '@/api/basicdata/basicdataGoodsArea'; import { getDictionaryBiz } from '@/api/system/dict'; import { getTemplateData} from '@/api/basic/basicPrintTemplate' import { getLodop } from '@/utils/LodopFuncs.js' @@ -373,7 +378,7 @@ export default { head: false, }, { - prop: 'warehouseId', + prop: 'warehouseCode', label: '仓库编号', type: 2, values: '', @@ -483,6 +488,7 @@ export default { selectionList: [], //货位 选择行 allselectionList: [], + html: null, // 页面包条码内容 alloption: { height:'auto', calcHeight: 30, @@ -492,7 +498,7 @@ export default { border: true, index: true, viewBtn: true, - selection: false, + selection: true, editBtn:false, delBtn:false, addBtn:false, @@ -681,6 +687,8 @@ export default { goodsAreaList: [], //级联选择器列表数据 optioner: [], + //不需要级联,直接选择货区 + areaoption:[], dialogVisible:false, //二维码展示列表 qrCodeObj:[], @@ -757,12 +765,40 @@ export default { const data = this.formatCascaderData(res.data.data); this.optioner = data }) + getGoodsAreaoptionList().then(res=>{ + const data = res.data.data; + this.areaoption = data + }) getTemplateData("9").then(res=>{ console.log(res.data.data); let data = res.data.data this.templateData = data; }) }, + handleqr(){ + if (this.allselectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + + let checkcode=[] + this.allselectionList.map(item=>{ + checkcode.push(item.id) + // checkcode.push(item.orderPackageCode) + }) + + let qr=checkcode.join(','); + console.log(qr); + getPrintTemplate(qr).then(res => { + // this.orderPackageCode = res.data + console.log(res.data); + this.html='' + this.html=this.getHtmls(res.data.data.dataList,res.data.data.templateHtml) + + }); + this.dialogVisible = true; + + }, // 格式化数据,递归将空的children置为undefined formatCascaderData(data){ console.log("------------>",data); @@ -1076,45 +1112,45 @@ export default { }); }, //结合模板生成二维码 - viewQrCode(){ - if (this.selectionList.length === 0) { - this.$message.warning("请选择至少一条数据"); - return; - } - let idInfo =this.ids.split(","); - this.dialogVisible = true; - this.qrCodeObj = []; - console.log(">>>>>>>>>>>",this.selectionList); - this.selectionList.forEach((item,index)=>{ - idInfo.forEach(async id=>{ - if (id===item.id){ - let params = {}; - if (item.qrCode){ - getShowTemplate(Object.assign(params,item)).then(res=>{ - console.log("@@@@@@@@@@@@@",res.data); - let url = window.URL.createObjectURL(res.data); - // 获取返回参数中的需要的值data - console.log("@@@@@@@@@@@@@",url); - - this.qrCodeObj.push(url); - }) - }else { - console.log("参数异常:"+item.qrCode); - this.$message({ - type: "error", - message: "参数异常!"+item.qrCode - }); - } - } - }) - - }) - }, + // viewQrCode(){ + // if (this.selectionList.length === 0) { + // this.$message.warning("请选择至少一条数据"); + // return; + // } + // let idInfo =this.ids.split(","); + // this.dialogVisible = true; + // this.qrCodeObj = []; + // console.log(">>>>>>>>>>>",this.selectionList); + // this.selectionList.forEach((item,index)=>{ + // idInfo.forEach(async id=>{ + // if (id===item.id){ + // let params = {}; + // if (item.qrCode){ + // getShowTemplate(Object.assign(params,item)).then(res=>{ + // console.log("@@@@@@@@@@@@@",res.data); + // let url = window.URL.createObjectURL(res.data); + // // 获取返回参数中的需要的值data + // console.log("@@@@@@@@@@@@@",url); + // + // this.qrCodeObj.push(url); + // }) + // }else { + // console.log("参数异常:"+item.qrCode); + // this.$message({ + // type: "error", + // message: "参数异常!"+item.qrCode + // }); + // } + // } + // }) + // + // }) + // }, printTemplate(){ let LODOP = getLodop(); console.log("this.ids>>>>>",this.ids); - console.log("this.ids>>>>>",this.selectionList); - if (this.selectionList.length === 0){ + console.log("this.ids>>>>>",this.allselectionList); + if (this.allselectionList.length === 0){ this.$message.warning("请选择至少一条数据"); return; } diff --git a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue index 454ca95f..f6a5dce1 100644 --- a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue +++ b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue @@ -31,6 +31,8 @@ </el-select> </div> <div class="tips"> + <el-button icon="el-icon-refresh" @click="checkshelves" circle></el-button> + <div class="exprbuts" @click="handleExportArea">导出</div> <div> 总货位: <span class="def">{{ countnumber.cargoNub }}</span> @@ -85,6 +87,12 @@ {{ it.serviceNumber }} </div> </div> + <div class="fwhserveNub"> + <div>库存品:</div> + <div v-for="it in ite.inventoryName || []"> + {{ it.name + '--' + it.productCode }} + </div> + </div> </div> </div> </template> @@ -101,7 +109,11 @@ : 'itembox' " > - <div>{{ ite.goodsAllocationName }}</div> + <div class="titls">{{ (arrlist[checkselect]?.warehouseGoodsAreaVOList[checkregionselect].headline)+'-'+ite.layerNum + '层' + '-' + ite.columnNum + '列' }}</div> + <div>{{ '包件数:' + ite.packageNum }}</div> + <div>{{ '订单数:' + ite.orderNum }}</div> + <div>{{ '零担数:' + ite.lessNum }}</div> + <div>{{ '库存品数:' + ite.inventoryNum }}</div> </div> </el-tooltip> </div> @@ -109,9 +121,22 @@ </div> </el-scrollbar> </div> - <el-dialog v-model="isshowcon" title="请选择上架类型" width="50%" center> - <span> 请选择上架类型 </span> - <template #footer> + <el-dialog + v-model="isshowcon" + :title=" + isshowcon == 1 + ? '请选择上架类型' + : isshowcon == 2 + ? '请选择上架还是下架' + : isshowcon == 3 + ? '请选择下架类型' + : '' + " + width="50%" + center + > + <span v-if="isshowcon == 1"> 请选择上架类型 </span> + <template #footer v-if="isshowcon == 1"> <span class="buts"> <el-button type="primary" @click="showupt(1)">按服务号</el-button> <el-button type="primary" @click="showupt(2)">按自编号</el-button> @@ -122,26 +147,52 @@ <el-button type="danger" @click="upgood">禁用</el-button> </span> </template> + <span v-if="isshowcon == 2"> 请选择上架还是下架 </span> + <template #footer v-if="isshowcon == 2"> + <span class="buts"> + <el-button type="primary" @click="isshowcon = 1">上架</el-button> + <el-button type="primary" @click="isshowcon = 3">下架</el-button> + </span> + </template> + <span v-if="isshowcon == 3"> 请选择下架类型 </span> + <template #footer v-if="isshowcon == 3"> + <span class="buts"> + <el-button type="primary" @click="showdown(1)">按包件</el-button> + <el-button type="primary" @click="showdown(2)">按零担</el-button> + <el-button type="primary" @click="showdown(3)">按库存品</el-button> + <el-button type="primary" @click="showdown(4)">按托盘</el-button> + <el-button type="primary" @click="showdown(5)">下架整个库位</el-button> + </span> + </template> </el-dialog> - <!-- 有货架的情况 --> - - <el-dialog v-model="isshowupt" :title="'请选择'+(isshowupt == 1 - ? '服务号' - : isshowupt == 2 - ? '订单号' - : isshowupt == 3 - ? '包件' - : isshowupt == 4 - ? '托盘' - : isshowupt == 5 - ? '库存品' - : isshowupt == 6 - ? '零担' - : '')+''" width="80%" center> + <!-- 上架 --> + + <el-dialog + v-model="isshowupt" + :title=" + '请选择' + + (isshowupt == 1 + ? '服务号' + : isshowupt == 2 + ? '订单号' + : isshowupt == 3 + ? '包件' + : isshowupt == 4 + ? '托盘' + : isshowupt == 5 + ? '库存品' + : isshowupt == 6 + ? '零担订单号' + : '') + + '上架' + " + width="80%" + center + > <div class="disbox"> <div class="headtopscan"> <div> - <el-select + <!-- <el-select @change="searchbuts" filterable v-model="checkindex" @@ -154,7 +205,7 @@ :label="item.name" :value="index" /> - </el-select> + </el-select> --> <div class="inptx"> <div> {{ @@ -169,11 +220,16 @@ : isshowupt == 5 ? '库存品' : isshowupt == 6 - ? '零担' + ? '零担订单号' : '' }} </div> - <el-input style="flex: 1" v-model="inputtxts" :placeholder="'请输入'+(isshowupt == 1 + <el-input + style="flex: 1" + v-model="inputtxts" + :placeholder=" + '请输入' + + (isshowupt == 1 ? '服务号' : isshowupt == 2 ? '订单号' @@ -184,13 +240,15 @@ : isshowupt == 5 ? '库存品' : isshowupt == 6 - ? '零担' - : '')" /> + ? '零担订单号' + : '') + " + /> </div> </div> <div> <el-button type="primary" @click="searchbuts">搜索</el-button> - <el-button type="primary">重置</el-button> + <el-button type="primary" @click="removeinputup">重置</el-button> <el-button type="primary" @click="allup">批量上架</el-button> </div> </div> @@ -235,6 +293,153 @@ </span> </template> --> </el-dialog> + <!-- 下架 --> + <el-dialog + v-model="isshowdow" + :title=" + '请选择' + + (isshowdow == 1 + ? '包件' + : isshowdow == 2 + ? '零担' + : isshowdow == 3 + ? '库存品' + : isshowdow == 4 + ? '托盘' + : '') + + '下架' + " + width="80%" + center + > + <div class="disbox"> + <div class="headtopscan"> + <div> + <!-- <el-select + @change="searchbuts" + filterable + v-model="checkindex" + class="" + placeholder="请选择仓库" + > + <el-option + v-for="(item, index) in arrlist" + :key="item.id" + :label="item.name" + :value="index" + /> + </el-select> --> + <div class="inptx" v-if="isshowdow != 4"> + <div> + {{ + isshowdow == 1 + ? '包件' + : isshowdow == 2 + ? '零担' + : isshowdow == 3 + ? '物料编码' + : isshowdow == 4 + ? '托盘' + : '' + }} + </div> + <el-input + style="flex: 1" + v-model="inputtxts" + :placeholder=" + '请输入' + + (isshowdow == 1 + ? '包件' + : isshowdow == 2 + ? '零担' + : isshowdow == 3 + ? '物料编码' + : isshowdow == 4 + ? '托盘' + : '') + " + /> + </div> + <div class="inptx" v-if="isshowdow == 1"> + <div> + {{ + isshowdow == 1 + ? '订单自编号' + : isshowdow == 2 + ? '零担' + : isshowdow == 3 + ? '物料名称' + : isshowdow == 4 + ? '托盘' + : '' + }} + </div> + <el-input + style="flex: 1" + + v-model="inputtxts1" + :placeholder=" + '请输入' + + (isshowdow == 1 + ? '订单自编号' + : isshowdow == 2 + ? '零担' + : isshowdow == 3 + ? '物料名称' + : isshowdow == 4 + ? '托盘' + : '') + " + /> + </div> + </div> + <div> + <el-button type="primary" @click="searchbutdown">搜索</el-button> + <el-button type="primary" @click="removeinputdown">重置</el-button> + <el-button type="primary" @click="alldown">批量下架</el-button> + </div> + </div> + <div class="tabberbox"> + <tablecmt + :columnList="columnList" + :tableData="tablistarr" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <el-text type="primary" text icon="el-icon-view" @click="downhj(slotProps.scope)" + >下架</el-text + > + </template> + </tablecmt> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeChange" + @current-change="currentChange" + :current-page="currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + > + </el-pagination> + </div> + </div> + </div> + <!-- <template #footer> + <span class="buts"> + <el-button type="primary">取消</el-button> + <el-button type="primary">确认</el-button> + </span> + </template> --> + </el-dialog> </template> <script setup> import { @@ -246,6 +451,11 @@ import { disable, } from '@/api/basicdata/basicdataGoodsShelfView'; import { reactive, toRefs, onMounted, getCurrentInstance } from 'vue'; +import { getToken } from '@/utils/auth'; +import NProgress from 'nprogress'; +import { exportBlob } from '@/api/common'; +import { downloadXls } from '@/utils/util'; +import { dateNow } from '@/utils/date'; const { proxy } = getCurrentInstance(); let details = reactive({ columnList: [], @@ -284,6 +494,8 @@ let details = reactive({ countnumber: {}, inputtxts: '', checkselectchangearr: [], + isshowdow: false, + inputtxts1: '', }); onMounted(() => { details.contenbxsty['--length'] = details.contenarr[0]?.length || 0; @@ -310,6 +522,34 @@ async function initconfig() { function initpage() { // let warehousearr= } +function handleExportArea() { + let id=details.arrlist[details.checkselect]?.id||0 + if (id ===0){ + proxy.$message({ + type: "success", + message: "无选择仓库!" + }); + return; + } + let downloadUrl = `/logpm-basicdata/goodsArea/export-visualizationwarehouse?${proxy.website.tokenHeader}=${getToken()}`; + console.log("id>>>>>>>>>>>>>>",id); + let values = { + areaId:id, + }; + proxy.$confirm("是否导出数据?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + NProgress.start(); + exportBlob(downloadUrl, values).then(res => { + downloadXls(res.data, `仓库${dateNow()}.xlsx`); + NProgress.done(); + }) + }); + +} + function currentChange(currentPage) { details.currentPage = currentPage; searchbuts(); @@ -327,7 +567,7 @@ async function searchbuts() { case 1: url = 'servicenub'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', + // warehouseId: details.arrlist[details.checkindex]?.id || '', serviceNumber: details.inputtxts, current: details.currentPage, size: details.pageSize, @@ -337,7 +577,7 @@ async function searchbuts() { case 2: url = 'order'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', + // warehouseId: details.arrlist[details.checkindex]?.id || '', orderCode: details.inputtxts, // serviceNumber: details.inputtxts, current: details.currentPage, @@ -346,10 +586,10 @@ async function searchbuts() { break; case 3: - url = 'selectWrap'; + url = 'wrap'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', - orderCode: details.inputtxts, + // warehouseId: details.arrlist[details.checkindex]?.id || '', + orderPackageCode: details.inputtxts, // serviceNumber: details.inputtxts, current: details.currentPage, size: details.pageSize, @@ -360,8 +600,8 @@ async function searchbuts() { case 4: url = 'tray'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', - orderCode: details.inputtxts, + // warehouseId: details.arrlist[details.checkindex]?.id || '', + trayCode: details.inputtxts, // serviceNumber: details.inputtxts, current: details.currentPage, size: details.pageSize, @@ -371,7 +611,7 @@ async function searchbuts() { case 5: url = 'Inventory'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', + // warehouseId: details.arrlist[details.checkindex]?.id || '', orderCode: details.inputtxts, // serviceNumber: details.inputtxts, current: details.currentPage, @@ -382,7 +622,7 @@ async function searchbuts() { case 6: url = 'ZeroOrder'; data = { - warehouseId: details.arrlist[details.checkindex]?.id || '', + // warehouseId: details.arrlist[details.checkindex]?.id || '', orderCode: details.inputtxts, // serviceNumber: details.inputtxts, current: details.currentPage, @@ -463,9 +703,28 @@ async function checkshelves() { }; const res = await getVisualization(data); // 调用异步函数获取可视化数据 console.log(res.data, 'res.data.datares.data.datares.data.datares.data.datares.data.data'); - - details.contenarr = res.data.data.reverse(); - details.contenbxsty['--length'] = details.contenarr[0]?.length || 0; + let arrs = []; + let maxlength = 0; + res.data.data.map(item => { + if (item.columnNum > maxlength) { + maxlength = item.columnNum; + } + }); + for (let i = 1; i <= maxlength; i++) { + arrs.push([]); + } + console.log(arrs, 'arrsarrsarrs'); + res.data.data.map(item => { + arrs[item.columnNum - 1]?.push(item); + }); + arrs.map(item => { + return item.sort((a, b) => { + return b.layerNum - a.layerNum; + }); + }); + console.log(arrs, 'arrsarrsarrs'); + details.contenarr = arrs; + details.contenbxsty['--length'] = maxlength; } // checkshelves(); // const checkshelves = async () => { @@ -495,9 +754,9 @@ const showupt = value => { { prop: 'serviceNumber', label: '服务号', - type: 2, + type: 1, values: '', - width: '240', + width: '150', checkarr: [], fixed: true, sortable: true, @@ -506,7 +765,7 @@ const showupt = value => { { prop: 'orderCode', label: '订单自编号', - type: 2, + type: 1, values: '', width: '200', checkarr: [], @@ -517,7 +776,7 @@ const showupt = value => { { prop: 'customerName', label: '顾客名字', - type: 2, + type: 1, values: '', width: '200', checkarr: [], @@ -528,7 +787,7 @@ const showupt = value => { { prop: 'customerTelephone', label: '顾客电话', - type: 2, + type: 1, values: '', width: '260', checkarr: [], @@ -539,7 +798,7 @@ const showupt = value => { { prop: 'customerAddress', label: '顾客电话', - type: 2, + type: 1, values: '', width: '260', checkarr: [], @@ -574,7 +833,7 @@ const showupt = value => { { prop: 'orderCode', label: '订单自编号', - type: 2, + type: 1, values: '', width: '200', checkarr: [], @@ -585,9 +844,9 @@ const showupt = value => { { prop: 'serviceNumber', label: '服务号', - type: 2, + type: 1, values: '', - width: '240', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -596,7 +855,7 @@ const showupt = value => { { prop: 'customerName', label: '顾客名字', - type: 2, + type: 1, values: '', width: '200', checkarr: [], @@ -607,7 +866,7 @@ const showupt = value => { { prop: 'customerTelephone', label: '顾客电话', - type: 2, + type: 1, values: '', width: '260', checkarr: [], @@ -618,7 +877,7 @@ const showupt = value => { { prop: 'customerAddress', label: '顾客电话', - type: 2, + type: 1, values: '', width: '260', checkarr: [], @@ -639,7 +898,6 @@ const showupt = value => { ]; break; - case 3: details.columnList = [ { @@ -651,21 +909,43 @@ const showupt = value => { checkarr: [], fixed: true, }, + { + prop: 'orderPackageCode', + label: '包条码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, { prop: 'serviceNumber', label: '服务号', - type: 2, + type: 1, values: '', - width: '240', + width: '150', checkarr: [], - fixed: true, + fixed: false, sortable: true, head: false, }, { prop: 'orderCode', label: '订单自编号', - type: 2, + type: 1, + values: '', + width: '200', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 1, values: '', width: '200', checkarr: [], @@ -676,7 +956,7 @@ const showupt = value => { { prop: 'customerName', label: '顾客名字', - type: 2, + type: 1, values: '', width: '200', checkarr: [], @@ -687,9 +967,9 @@ const showupt = value => { { prop: 'customerTelephone', label: '顾客电话', - type: 2, + type: 1, values: '', - width: '260', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -698,88 +978,121 @@ const showupt = value => { { prop: 'customerAddress', label: '顾客电话', - type: 2, + type: 1, values: '', - width: '260', + width: '150', checkarr: [], fixed: false, sortable: true, head: false, }, { - prop: '', - label: '操作', - type: 6, + prop: 'orderPackageStatusName', + label: '包件状态', + type: 1, values: '', - width: '190', + width: '150', checkarr: [], - fixed: 'right', - hide: true, + fixed: false, + sortable: true, + head: false, }, - ]; - - break; - case 4: - details.columnList = [ { - prop: '', - label: '序号', - type: 0, + prop: 'orderPackageStockupStatusName', + label: '包件备货状态', + type: 1, values: '', - width: 55, + width: '150', checkarr: [], - fixed: true, + fixed: false, + sortable: true, + head: false, }, { - prop: 'serviceNumber', - label: '服务号', - type: 2, + prop: 'orderPackageGroundingStatusName', + label: '包件上架状态', + type: 1, values: '', - width: '240', + width: '150', checkarr: [], - fixed: true, + fixed: false, sortable: true, head: false, }, { - prop: 'orderCode', - label: '订单自编号', - type: 2, + prop: 'orderPackageLoadingStatusName', + label: '包件装车状态', + type: 1, values: '', - width: '200', + width: '150', checkarr: [], fixed: false, sortable: true, head: false, }, { - prop: 'customerName', - label: '顾客名字', - type: 2, + prop: 'orderPackageFreezeStatusName', + label: '包件冻结状态', + type: 1, values: '', - width: '200', + width: '150', checkarr: [], fixed: false, sortable: true, head: false, }, { - prop: 'customerTelephone', - label: '顾客电话', - type: 2, + prop: 'orderPackageReservationStatusName', + label: '包件预约状态', + type: 1, values: '', - width: '260', + width: '150', checkarr: [], fixed: false, sortable: true, head: false, }, { - prop: 'customerAddress', - label: '顾客电话', - type: 2, + prop: '', + label: '操作', + type: 6, values: '', - width: '260', + width: '190', + checkarr: [], + fixed: 'right', + hide: true, + }, + ]; + + break; + case 4: + details.columnList = [ + // { + // prop: '', + // label: '序号', + // type: 0, + // values: '', + // width: 55, + // checkarr: [], + // fixed: true, + // }, + { + prop: 'palletCode', + label: '托盘码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'num', + label: '在托数', + type: 1, + values: '', + width: '200', checkarr: [], fixed: false, sortable: true, @@ -812,20 +1125,31 @@ const showupt = value => { { prop: 'descriptionGoods', label: '物料名称', - type: 2, + type: 1, values: '', - width: '240', + width: '150', checkarr: [], fixed: true, sortable: true, head: false, }, + { + prop: 'materialCode', + label: '物料编号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, { prop: 'orderCode', label: '订单自编号', - type: 2, + type: 1, values: '', - width: '200', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -834,9 +1158,9 @@ const showupt = value => { { prop: 'sku', label: 'SKU', - type: 2, + type: 1, values: '', - width: '200', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -845,14 +1169,36 @@ const showupt = value => { { prop: 'cargoUnit', label: '单位', - type: 2, + type: 1, values: '', - width: '200', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'residueNumber', + label: '在库数', + type: 1, + values: '', + width: '150', checkarr: [], fixed: false, sortable: true, head: false, }, + { + prop: 'enterNum', + label: '上架数', + type: 10, + values: '', + width: '200', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, { prop: '', label: '操作', @@ -880,29 +1226,528 @@ const showupt = value => { { prop: 'serviceNumber', label: '服务号', - type: 2, + type: 1, values: '', - width: '240', + width: '150', checkarr: [], fixed: true, sortable: true, head: false, }, { - prop: 'orderCode', - label: '订单自编号', - type: 2, + prop: 'enterNum', + label: '上架数', + type: 10, values: '', width: '200', checkarr: [], - fixed: false, + fixed: true, sortable: true, head: false, }, { - prop: 'customerName', - label: '顾客名字', - type: 2, + prop: 'orderCode', + label: '订单自编号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'customerName', + label: '顾客名字', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'customerTelephone', + label: '顾客电话', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + + { + prop: 'customerAddress', + label: '顾客电话', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '190', + checkarr: [], + fixed: 'right', + hide: true, + }, + ]; + + break; + default: + break; + } + searchbuts(); +}; +const alldown = async () => { + console.log(scope.row); + let data = { + allocationId: details.checkite.id, + }; + if(details.checkselectchangearr.length==0){ + proxy.$message({ + type: 'error', + message: '请先勾选数据', + }); + } + let url = ''; + switch (details.isshowdow) { + case 1: + url = 'downPackage'; + data.upShelfPackageList = details.checkselectchangearr; + break; + case 2: + url = 'downZeroOrder'; + scope.row.allocationId = details.checkite.id; + data.upShelfZeroOrderList = details.checkselectchangearr; + + break; + case 3: + url = 'downStock'; + scope.row.stockType=1; + scope.row.allocationId = details.checkite.id; + data.upShelfStockList = details.checkselectchangearr; + break; + case 4: + url = 'downTray'; + data.trayCode = scope.row.palletCode; + break; + default: + break; + } + let response = await posturl(url, data); + if (response.data.code == 200) { + console.log(response.data); + proxy.$message({ + type: 'success', + message: response.data.msg, + }); + searchbutdown() + // details.tablistarr = response.data.data.records; + // details.total = response.data.data.total; + } else { + proxy.$message({ + type: 'error', + message: response.data.msg, + }); + } +}; +const downhj = async scope => { + console.log(scope.row); + let data = { + allocationId: details.checkite.id, + }; + if (!scope.row.enterNum && details.isshowdow == 2) { + proxy.$message({ + type: 'error', + message: '请输入下架数量!', + }); + return; + } + let url = ''; + switch (details.isshowdow) { + case 1: + url = 'downPackage'; + data.upShelfPackageList = [scope.row]; + break; + case 2: + url = 'downZeroOrder'; + scope.row.allocationId = details.checkite.id; + data.upShelfZeroOrderList = [scope.row]; + + break; + case 3: + url = 'downStock'; + scope.row.stockType=1; + scope.row.allocationId = details.checkite.id; + data.upShelfStockList = [scope.row]; + break; + case 4: + url = 'downTray'; + data.trayCode = scope.row.palletCode; + break; + default: + break; + } + let response = await posturl(url, data); + if (response.data.code == 200) { + console.log(response.data); + proxy.$message({ + type: 'success', + message: response.data.msg, + }); + searchbutdown() + // details.tablistarr = response.data.data.records; + // details.total = response.data.data.total; + } else { + proxy.$message({ + type: 'error', + message: response.data.msg, + }); + } +}; +const searchbutdown = async () => { + let url = ''; + let data = null; + // console.log(details.arrlist[details.checkindex].id); + // return + switch (details.isshowdow) { + case 1: + url = 'selectWrap'; + data = { + // warehouseId: details.arrlist[details.checkindex]?.id || '', + id: details.checkite.id, + orderPackageCode: details.inputtxts, + orderCode: details.inputtxts1, + current: details.currentPage, + size: details.pageSize, + }; + + break; + case 2: + url = 'selectZeroOrder'; + data = { + // warehouseId: details.arrlist[details.checkindex]?.id || '', + id: details.checkite.id, + orderCode: details.inputtxts, + // serviceNumber: details.inputtxts, + current: details.currentPage, + size: details.pageSize, + }; + + break; + case 3: + url = 'selectInventory'; + data = { + // warehouseId: details.arrlist[details.checkindex]?.id || '', + id: details.checkite.id, + materialCode: details.inputtxts, + // serviceNumber: details.inputtxts, + current: details.currentPage, + size: details.pageSize, + id: details.checkite.id, + }; + + break; + case 4: + url = 'selectTray'; + data = { + // warehouseId: details.arrlist[details.checkindex]?.id || '', + id: details.checkite.id, + trayCode: details.inputtxts, + // serviceNumber: details.inputtxts, + current: details.currentPage, + size: details.pageSize, + }; + + break; + + default: + break; + } + let response = await geturl(url, data); + if (response.data.code == 200) { + console.log(response.data); + details.tablistarr = response.data.data.records; + details.total = response.data.data.total; + } else { + proxy.$message({ + type: 'error', + message: response.data.msg, + }); + } +}; +const showdown = async value => { + if (value == 5) { + let url = 'downAllocation?ids='+details.checkite.id; + let data={ + ids:details.checkite.id + } + let response = await posturl(url, data); + if (response.data.code == 200) { + console.log(response.data); + proxy.$message({ + type: 'success', + message: response.data.msg, + }); + // details.tablistarr = response.data.data.records; + // details.total = response.data.data.total; + } else { + proxy.$message({ + type: 'error', + message: response.data.msg, + }); + } + return + } + details.isshowdow = value; + switch (details.isshowdow) { + case 1: + details.columnList = [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: 55, + checkarr: [], + fixed: true, + }, + { + prop: 'orderPackageCode', + label: '包条码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'serviceNumber', + label: '服务号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 1, + values: '', + width: '200', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 1, + values: '', + width: '200', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'firsts', + label: '一级品类', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'second', + label: '二级品类', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'thirdProduct', + label: '三级品类', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'materialName', + label: '物料名称', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'materialCode', + label: '物料编号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageStatusName', + label: '包件状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageStockupStatusName', + label: '包件备货状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageGroundingStatusName', + label: '包件上架状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageLoadingStatusName', + label: '包件装车状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageFreezeStatusName', + label: '包件冻结状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderPackageReservationStatusName', + label: '包件预约状态', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '190', + checkarr: [], + fixed: 'right', + hide: true, + }, + ]; + + break; + case 2: + details.columnList = [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: 55, + checkarr: [], + fixed: true, + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 1, + values: '', + width: '200', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'enterNum', + label: '下架数量', + type: 10, + values: '', + width: '200', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'serviceNumber', + label: '服务号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'customerName', + label: '顾客名字', + type: 1, values: '', width: '200', checkarr: [], @@ -913,9 +1758,9 @@ const showupt = value => { { prop: 'customerTelephone', label: '顾客电话', - type: 2, + type: 1, values: '', - width: '260', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -924,9 +1769,110 @@ const showupt = value => { { prop: 'customerAddress', label: '顾客电话', - type: 2, + type: 1, values: '', - width: '260', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '190', + checkarr: [], + fixed: 'right', + hide: true, + }, + ]; + + break; + case 3: + details.columnList = [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: 55, + checkarr: [], + fixed: true, + }, + { + prop: 'materialCode', + label: '物料编码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'descriptionGoods', + label: '物料名称', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'enterNum', + label: '下架数', + type: 10, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'num', + label: '货位剩余数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'orderCode', + label: '订单号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'sku', + label: 'sku', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'cargoUnit', + label: '物料单位', + type: 1, + values: '', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -945,10 +1891,68 @@ const showupt = value => { ]; break; + case 4: + details.columnList = [ + // { + // prop: '', + // label: '序号', + // type: 0, + // values: '', + // width: 55, + // checkarr: [], + // fixed: true, + // }, + { + prop: 'palletCode', + label: '托盘码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'num', + label: '在托数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + // { + // prop: 'orderCode', + // label: '订单自编号', + // type: 1, + // values: '', + // width: '200', + // checkarr: [], + // fixed: false, + // sortable: true, + // head: false, + // }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '190', + checkarr: [], + fixed: 'right', + hide: true, + }, + ]; + + break; + default: break; } - searchbuts(); + searchbutdown(); }; const addhuoj = async scope => { console.log(scope.row); @@ -966,20 +1970,27 @@ const addhuoj = async scope => { data.upShelfOrderList = [scope.row]; break; case 3: - url = 'upSelectWrap'; - data.upShelfOrderList = [scope.row]; + url = 'upPackage'; + data.upShelfPackageList = [scope.row]; break; case 4: url = 'upTray'; - data.upShelfOrderList = [scope.row]; + let obj={ + code:scope.row.palletCode, + allocationId:details.checkite.id + } + + data =obj break; case 5: - url = 'upInventory'; - data.UpShelfStockDTO = [scope.row]; + url = 'upStock'; + scope.row.allocationId = details.checkite.id; + data.upShelfStockList = [scope.row]; break; case 6: url = 'upZeroOrder'; - data.UpShelfStockDTO = [scope.row]; + scope.row.allocationId = details.checkite.id; + data.upShelfZeroOrderList = [scope.row]; break; default: break; @@ -989,8 +2000,9 @@ const addhuoj = async scope => { console.log(response.data); proxy.$message({ type: 'success', - message: '上架成功!', + message: response.data.msg, }); + searchbuts() // details.tablistarr = response.data.data.records; // details.total = response.data.data.total; } else { @@ -1016,20 +2028,30 @@ async function allup() { data.upShelfOrderList = details.checkselectchangearr; break; case 3: - url = 'upSelectWrap'; - data.upShelfOrderList = details.checkselectchangearr; + url = 'upPackage'; + data.upShelfPackageList = details.checkselectchangearr; break; case 4: url = 'upTray'; - data.upShelfOrderList = details.checkselectchangearr; + // scope.row.allocationId=details.checkite.id + // data.trayCode = scope.row; + // data.upShelfOrderList = details.checkselectchangearr; break; case 5: - url = 'upInventory'; - data.upShelfOrderList = details.checkselectchangearr; + url = 'upStock'; + details.checkselectchangearr.map(item => { + item.allocationId = details.checkite.id; + return item; + }); + data.upShelfStockList = details.checkselectchangearr; break; case 6: url = 'upZeroOrder'; - data.UpShelfStockDTO = details.checkselectchangearr; + details.checkselectchangearr.map(item => { + item.allocationId = details.checkite.id; + return item; + }); + data.upShelfZeroOrderList = details.checkselectchangearr; break; default: break; @@ -1039,8 +2061,9 @@ async function allup() { console.log(response.data); proxy.$message({ type: 'success', - message: '上架成功!', + message: response.data.msg, }); + searchbuts() // details.tablistarr = response.data.data.records; // details.total = response.data.data.total; } else { @@ -1050,6 +2073,16 @@ async function allup() { }); } } +const removeinputup = () => { + details.inputtxts = ''; + details.inputtxts1 = ''; + searchbuts(); +}; +const removeinputdown=()=>{ + details.inputtxts = ''; + details.inputtxts1 = ''; + searchbutdown(); +} const btnsc = scope => { console.log(scope); }; @@ -1067,34 +2100,48 @@ const selectionChange = scope => { details.checkselectchangearr = scope; }; const checkitem = ite => { - switch (Number(ite.allocationStatus)) { - case 1: - details.isshowcon = true; - details.checkite = ite; - break; - case 2: - details.isshowcon = true; - details.checkite = ite; - break; - case 3: - details.isshowcon = true; - details.checkite = ite; - break; - case 4: - details.isshowcon = true; - details.checkite = ite; - break; - case 5: - details.isshowcon = true; - details.checkite = ite; - break; - case 6: - details.isshowcon = true; - details.checkite = ite; - break; + details.inputtxts='' + details.inputtxts1='' + if (Number(ite.allocationStatus) == 2) { + details.isshowcon = 2; + details.checkite = ite; + } else { + // #region 匹配状态,测试无用代码 + // switch (Number(ite.allocationStatus)) { + // case 1: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // case 2: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // case 3: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // case 4: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // case 5: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // case 6: + // details.isshowcon = true; + // details.checkite = ite; + // break; + // } + // #endregion + details.isshowcon = 1; + details.checkite = ite; } + console.log(details.isshowcon, 'details.isshowcondetails.isshowcon'); }; const { + isshowdow, + inputtxts1, total, pageSize, currentPage, @@ -1147,8 +2194,8 @@ const { margin-top: 15px; } } - .tabberbox { - } + // .tabberbox { + // } } :root { --boxcolor: #adadad; @@ -1161,30 +2208,50 @@ const { .contentbx { width: calc(150 * var(--length) * 1px); display: flex; - flex-direction: column; - align-items: center; + // flex-direction: column; + align-items: flex-end; border: 1.5px solid var(--boxcolor); background-color: #fff; + box-sizing: border-box; .headtop { display: flex; align-items: center; } .itemwbox { - height: 90px; - // border-right: 1.5px solid #adadad; + // height: 90px; + width: 150px; + box-sizing: border-box; + border-right: 1.5px solid var(--boxcolor); + &:nth-last-child(1) { + border-right: 0; + } + &:nth-last-child(1) { .itemmibox { - border-bottom: none; + border-bottom: 1.5px solid var(--boxcolor); } } + .titls { + font-size: 16px !important; + margin-bottom: 10px; + } .itemmibox { - height: 90px; + height: 130px; width: 150px; + font-size: 12px !important; + // border-bottom: 1.5px solid var(--boxcolor); + // border-right: 1.5px solid var(--boxcolor); border-bottom: 1.5px solid var(--boxcolor); - border-right: 1.5px solid var(--boxcolor); + &:nth-last-child(1) { + border-bottom: none; + } + // margin-right: 1px; + // margin-bottom: 1px; + box-sizing: border-box; display: flex; align-items: center; justify-content: center; + box-sizing: border-box; color: rgba(237, 25, 25); &:nth-last-child(1) { @@ -1195,6 +2262,7 @@ const { > div { display: flex; align-items: center; + flex-direction: column; } } .itembox { @@ -1204,7 +2272,7 @@ const { align-items: center; justify-content: center; flex-direction: column; - font-size: 14px; + // font-size: 14px; } .type1 { background-color: #fff !important; @@ -1266,6 +2334,19 @@ const { > .tips { display: flex; align-items: center; + .exprbuts{ + width: 70px; + height: 30px; + color: #666666; + font-size: 12px; + background-color: #fff; + border-radius: 3px; + display: flex; + align-items: center; + justify-content: center; + border: 1.5px solid #E8E8E8; + cursor: pointer; + } > div { margin-left: 20px; } diff --git a/src/views/basicdata/warehouse/tray/basicdataTray.vue b/src/views/basicdata/warehouse/tray/basicdataTray.vue index bd8fd53c..e4436119 100644 --- a/src/views/basicdata/warehouse/tray/basicdataTray.vue +++ b/src/views/basicdata/warehouse/tray/basicdataTray.vue @@ -36,12 +36,32 @@ icon="el-icon-camera" @click="handleqr">查看二维码 </el-button> + <el-button type="warning" + plain + icon="el-icon-camera" + @click="lossess">报 损 + </el-button> + <el-button type="warning" + plain + icon="el-icon-camera" + @click="disable">禁 用 + </el-button> + <el-button type="warning" + plain + icon="el-icon-camera" + @click="addable">启 用 + </el-button> + <el-button type="warning" + plain + icon="el-icon-camera" + @click="vacants">一 键 空 置 + </el-button> </template> <template #menu="{size,row,index}"> - <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3'" @click="losses(row)">报 损</el-button> - <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==1 && row.trayStatus !=='1' " @click="vacant(row)">一 键 空 置</el-button> - <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==1" @click="disable(row)">禁 用</el-button> - <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==2" @click="addable(row)">启 用</el-button> +<!-- <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3'" @click="losses(row)">报 损</el-button>--> +<!-- <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==1 && row.trayStatus !=='1' " @click="vacant(row)">一 键 空 置</el-button>--> +<!-- <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==1" @click="disable(row)">禁 用</el-button>--> +<!-- <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3' && row.disableType==2" @click="addable(row)">启 用</el-button>--> <el-button type="primary" text icon="el-icon-view" v-if="row.trayStatus !=='3'" @click="Details(row)">在 托 详 情</el-button> <el-button type="primary" text icon="el-icon-view" @click="historys(row)">历 史 记 录</el-button> </template> @@ -93,7 +113,7 @@ </template> <script> - import {getList, getDetail, add, update, remove,vacant,getPrintTemplate} from "@/api/basicdata/basicdataTray"; + import {getList, getDetail, add, update, remove,vacant,getPrintTemplate,disable,addable,vacants} from "@/api/basicdata/basicdataTray"; import option from "@/option/basicdata/basicdataTray"; import {mapGetters} from "vuex"; import {exportBlob} from "@/api/common"; @@ -232,6 +252,19 @@ this.damagedform = row this.damagedBox = true }, + lossess(){ + if (this.selectionList.length === 0) { + this.$message.warning("请选择一条数据"); + return; + } + if (this.selectionList.length > 1) { + this.$message.warning("只能选一条数据"); + return; + } + console.log("this.selectionList>>>>>>",this.selectionList); + this.damagedform.id = this.selectionList[0].id + this.damagedBox = true + }, vacant(row){ this.$confirm('确认空置?') .then(_ => { @@ -250,44 +283,71 @@ .catch(_ => { }); }, - disable(row){ - this.$confirm('确认禁用?') - .then(_ => { - row.disableType =2 - update(row).then(() => { - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); - }, error => { - loading(); - console.log(error); - }); + vacants(){ + if (this.selectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + this.$confirm("确定将选择数据空置?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) .then(() => { + console.log("this.selectionList>>>>>>>>>>>>>>>>>>",this.selectionList); + const newList = this.selectionList.map(item => item.palletCode); + return vacants(newList); }) - .catch(_ => { + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" + }); }); }, - addable(row){ - this.$confirm('确认启用?') - .then(_ => { - row.disableType =1 - update(row).then(() => { - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); - }, error => { - loading(); - console.log(error); + disable(){ + if (this.selectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + this.$confirm("确定将选择数据禁用?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + return disable(this.ids); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" }); + }); + }, + addable(){ + if (this.selectionList.length === 0) { + this.$message.warning("请选择至少一条数据"); + return; + } + this.$confirm("确定将选择数据启用?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + return addable(this.ids); }) - .catch(_ => { + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" + }); }); }, //批量打印数据处理代码 - //批量打印数据处理代码 printTemplate() { let that=this; this.selectionList.map(item=>{ diff --git a/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue b/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue index 9add2718..9828b0ae 100644 --- a/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue +++ b/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue @@ -279,6 +279,18 @@ export default { border: true, selection: true, column: [ + { + label: "服务号", + prop: "serviceNumber", + search: true, + width:"100px" + }, + { + label: "运单号", + prop: "waybillNumber", + search: true, + width:"100px" + }, { label: "包条码", prop: "orderPackageCode", @@ -328,11 +340,42 @@ export default { width:"100px" }, { - label: "运单号", - prop: "waybillNumber", + label: "包件状态", + prop: "orderPackageStatusName", + search: true, + width:"100px" + }, + { + label: "包件冻结状态", + prop: "orderPackageFreezeStatusName", search: true, width:"100px" }, + { + label: "包件上架状态", + prop: "orderPackageGroundingStatusName", + search: true, + width:"100px" + }, + { + label: "包件备货状态", + prop: "orderPackageStockupStatusName", + search: true, + width:"100px" + }, + { + label: "包件预约状态", + prop: "orderPackageReservationStatusName", + search: true, + width:"100px" + }, + { + label: "包件装车状态", + prop: "orderPackageLoadingStatusName", + search: true, + width:"100px" + }, + // { // label: "托盘码", // prop: "pallet", diff --git a/src/views/basicdata/warehouse/tray/basicdataTrayhistory.vue b/src/views/basicdata/warehouse/tray/basicdataTrayhistory.vue index 82460be1..30afccb1 100644 --- a/src/views/basicdata/warehouse/tray/basicdataTrayhistory.vue +++ b/src/views/basicdata/warehouse/tray/basicdataTrayhistory.vue @@ -299,6 +299,18 @@ export default { border: true, selection: true, column: [ + { + label: "服务号", + prop: "serviceNumber", + search: true, + width:"100px" + }, + { + label: "运单号", + prop: "waybillNumber", + search: true, + width:"100px" + }, { label: "包条码", prop: "orderPackageCode", @@ -348,8 +360,38 @@ export default { width:"100px" }, { - label: "运单号", - prop: "waybillNumber", + label: "包件状态", + prop: "orderPackageStatusName", + search: true, + width:"100px" + }, + { + label: "包件冻结状态", + prop: "orderPackageFreezeStatusName", + search: true, + width:"100px" + }, + { + label: "包件上架状态", + prop: "orderPackageGroundingStatusName", + search: true, + width:"100px" + }, + { + label: "包件备货状态", + prop: "orderPackageStockupStatusName", + search: true, + width:"100px" + }, + { + label: "包件预约状态", + prop: "orderPackageReservationStatusName", + search: true, + width:"100px" + }, + { + label: "包件装车状态", + prop: "orderPackageLoadingStatusName", search: true, width:"100px" }, diff --git a/src/views/distribution/inventory/delivery/distributionStockArticle.vue b/src/views/distribution/inventory/delivery/distributionStockArticle.vue index 4539c951..e7303461 100644 --- a/src/views/distribution/inventory/delivery/distributionStockArticle.vue +++ b/src/views/distribution/inventory/delivery/distributionStockArticle.vue @@ -6,10 +6,10 @@ <!-- 查询模块 --> <el-form :inline="true" :model="query"> <el-form-item label="订单自编号:"> - <el-input v-model="query.orderCodeNum" placeholder="请输入订单自编号" ></el-input> + <el-input v-model="query.orderCodeNum" placeholder="请输入订单自编号" clearable ></el-input> </el-form-item> <el-form-item label="运单"> - <el-input v-model="query.waybillNum" placeholder="请输入运单编号" /> + <el-input v-model="query.waybillNum" placeholder="请输入运单编号" clearable /> </el-form-item> <el-form-item label="入库时间:"> <!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>--> diff --git a/src/views/distribution/inventory/distributionStockArticleDetails.vue b/src/views/distribution/inventory/distributionStockArticleDetails.vue index c9eb2fc9..4abe52c3 100644 --- a/src/views/distribution/inventory/distributionStockArticleDetails.vue +++ b/src/views/distribution/inventory/distributionStockArticleDetails.vue @@ -726,8 +726,11 @@ export default { '$route.query.id': { handler(newVal, oldVal) { // console.log(newVal, oldVal); - this.onLoad(this.page); - this.onLoadOwn(this.page); + if(!!this.$route.query.id){ + this.onLoad(this.page); + this.onLoadOwn(this.page); + } + }, deep: true, immediate: true, @@ -1367,20 +1370,23 @@ export default { }, onLoad(page, params = {}) { this.loading = true; - this.query.id = this.$route.query.id; - getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + console.log("执行了查询零零零零"); + this.query.ids = this.$route.query.id; + getDetail(this.$route.query.id).then(res => { + console.log("返回的数据》》》》",res.data.data); const data = res.data.data; // this.page.total = data.total; - this.data = data.records; + this.data[0]= data; + this.loading = false; this.selectionClear(); }); }, onLoadOwn(page, params = {}) { - this.loading = true; + // this.loading = true; this.dataMaterial = false; params = { - stockArticleId: this.$route.query.id, + stockArticleIds: this.$route.query.id, }; getListOwn(page.currentPage, page.pageSize, Object.assign(params, this.queryPage)).then( res => { diff --git a/src/views/distribution/inventory/distrilbutionBillLading.vue b/src/views/distribution/inventory/distrilbutionBillLading.vue index bc512141..97ec06c4 100644 --- a/src/views/distribution/inventory/distrilbutionBillLading.vue +++ b/src/views/distribution/inventory/distrilbutionBillLading.vue @@ -1488,7 +1488,7 @@ export default { fixed: false, sortable: true, head: false, - lessThanNum:'available' + lessThanNum:'available' }, { prop: '', @@ -1505,12 +1505,14 @@ export default { }, mounted() { this.init(); - + if (this.$route.query.type == '2') { //查询提货编辑数据 this.getDetailOen(); - } else { + } else if (this.$route.query.type == '1'){ this.onLoad(this.page); + }else if (this.$route.query.type == '3'){ + this.onLoadCj(); } /** * 初始化获取本地缓存的编辑隐藏的列表 @@ -1595,9 +1597,10 @@ export default { if (this.$route.query.type == '2') { //查询提货编辑数据 this.getDetailOen(); - } else { + } else if (this.$route.query.type == '1'){ this.onLoad(this.page); - // this.onLoadOwn(this.page); + }else if (this.$route.query.type == '3'){ + this.onLoadCj(); } }, deep: true, @@ -1848,6 +1851,10 @@ export default { }, //确定 callFordelivery(inde) { + if(this.selectionListStock.length === 0){ + this.$message.warning("至少选择一条数据!"); + return ; + } let isa = false; console.log('执行了'); this.selectionListStock.some(i => { @@ -2312,7 +2319,7 @@ export default { } }, selectionChangeStock(list) { - console.log('执行了啦啦啦', list); + // console.log('执行了啦啦啦', list); this.selectionListStock = list; }, selectionClear() { @@ -2338,7 +2345,7 @@ export default { onLoad(page, params = {}) { this.loading = true; - params.id = this.$route.query.id; + params.ids = this.$route.query.id; this.orderAdd = false; getListOne(page.currentPage, page.pageSize, params).then(res => { const data = res.data.data; @@ -2348,24 +2355,48 @@ export default { this.selectionClear(); }); }, + /** + * 创建自提 + * @param page + * @param params + */ + onLoadCj(page, params = {}) { + this.orderAdd = true; + }, //库存品 onLoadList(page, params = {}) { this.loading = true; - getListStockList(page.currentPage, page.pageSize, params).then(res => { - const dataOwn = res.data.data; - this.pageStock.total = dataOwn.total; - this.dataOwn = dataOwn.records; - this.dataOwn.forEach(i => { - i.available = i.quantityStock - i.quantityOccupied; + let a = {}; + if(this.$route.query.type == '1'){ + a = this.dataList[0]; + // console.log("11111111111111"); + }else if(this.$route.query.type == '3'){ + a = this.dataOrder[0]; + // console.log("2222222222222"); + } + // let a = this.dataList[0]; + console.log("aaa",a); + if(!!a.mallId){ + params.marketId = a.mallId; + getListStockList(page.currentPage, page.pageSize, params).then(res => { + const dataOwn = res.data.data; + this.pageStock.total = dataOwn.total; + this.dataOwn = dataOwn.records; + this.dataOwn.forEach(i => { + i.available = i.quantityStock - i.quantityOccupied; + }); + this.loading = false; + this.selectionClear(); }); + }else{ this.loading = false; - this.selectionClear(); - }); + this.pageStock.total =0; + } }, //包件信息 onLoadOwn(page, params = {}) { this.loading = true; - this.query.stockArticleId = this.$route.query.id; + this.query.stockArticleIds = this.$route.query.id; getListOwn(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { console.log('包件信息>>>>', res.data.data); const dataList = res.data.data; diff --git a/src/views/distribution/inventory/distrilbutionBillLadingList.vue b/src/views/distribution/inventory/distrilbutionBillLadingList.vue index a3dc7bbe..83edf040 100644 --- a/src/views/distribution/inventory/distrilbutionBillLadingList.vue +++ b/src/views/distribution/inventory/distrilbutionBillLadingList.vue @@ -78,7 +78,7 @@ <div class="avue-crud__left"> <!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新 增</el-button> <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>删 除</el-button>--> -<!-- <el-button type="primary" icon="el-icon-plus" @click="handleBillAdd">创建自提</el-button>--> + <el-button type="primary" icon="el-icon-plus" @click="handleBillAdd">创建自提</el-button> <el-button type="primary" icon="el-icon-plus" @click="handleSign(null,2)">自提签收</el-button> </div> @@ -105,8 +105,8 @@ <template #default="slotProps"> <!-- <el-button size="small" @click="editsolt(slotProps.scope)">修改</el-button>--> <el-text size="small" text @click="handleLike(slotProps.scope)">查看</el-text> - <el-text size="small" type="danger" icon="el-icon-edit" text @click="handleSign(slotProps.scope,1)" v-if="slotProps.scope.row.conditions < 20">签收</el-text> - <el-text type="primary" text icon="el-icon-edit" @click="handleEdits(slotProps.scope)">编辑提货信息</el-text> + <el-text size="small" type="danger" icon="el-icon-edit" text @click="handleSign(slotProps.scope,1)" v-if="slotProps.scope.row.conditions < 30">签收</el-text> + <el-text type="primary" text icon="el-icon-edit" @click="handleEdits(slotProps.scope)" v-if="slotProps.scope.row.conditions < 20">编辑提货信息</el-text> <!-- <el-button size="small" type="danger" icon="el-icon-edit" text @click="handleDeleteOwn(slotProps.scope)">删除</el-button>--> </template> @@ -856,7 +856,7 @@ export default { for(let a = 0;a < clientType.length;a++){ // console.log("进来了",clientType[a].dictKey , costListName[i]); if(clientType[a].dictKey == costListName[i]){ - console.log("进来了",clientType[a].dictKey , costListName[i]); + // console.log("进来了",clientType[a].dictKey , costListName[i]); let zhi = costList[costListName[i]]; if(!zhi){ this.pan = true; @@ -908,7 +908,7 @@ export default { this.$router.push({ path: '/distribution/inventory/distrilbutionBillLading', query:{ - type: '1' + type: '3' } }); }, diff --git a/src/views/distribution/inventory/distrilbutionBillLadingView.vue b/src/views/distribution/inventory/distrilbutionBillLadingView.vue index 7fa36266..de5153a7 100644 --- a/src/views/distribution/inventory/distrilbutionBillLadingView.vue +++ b/src/views/distribution/inventory/distrilbutionBillLadingView.vue @@ -153,6 +153,49 @@ export default { columnListarrs:{ //入库明细 ordoption:[ + { + prop: 'serviceNumber', + label: '服务号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'waybillNumber', + label: '客户车次号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'sendWarehouseName', + label: '始发仓', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, { prop: 'orderCode', label: '订单自编号', @@ -164,6 +207,7 @@ export default { sortable: true, head: false, }, + { prop: 'descriptionGoods', label: '货物名称', @@ -352,6 +396,49 @@ export default { // checkarr: [], // fixed: true, // }, + { + prop: 'serviceNumber', + label: '服务号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'waybillNumber', + label: '客户车次号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false, + }, { prop: 'orderPackageCode', label: '包条码', diff --git a/src/views/distribution/reservation/atlas.vue b/src/views/distribution/reservation/atlas.vue index d8753a7d..72f01a64 100644 --- a/src/views/distribution/reservation/atlas.vue +++ b/src/views/distribution/reservation/atlas.vue @@ -122,11 +122,11 @@ export default { geocoder.getLocation(item.deliveryAddress, (status, result) => { if (status === 'complete' && result.info === 'OK') { // result中对应详细地理坐标信息 - console.log(result.geocodes); + console.log(result.geocodes[0].location); var marker = new AMap.Marker({ map: details.mapLoc, - position: item.pontion, - offset: new AMap.Pixel(-13, -30), + position: result.geocodes[0].location, + offset: new AMap.Pixel(0, 0), }); marker.setMap(details.mapLoc); marker.setLabel({ diff --git a/src/views/distribution/reservation/atlas1.vue b/src/views/distribution/reservation/atlas1.vue index 42035294..dc34661b 100644 --- a/src/views/distribution/reservation/atlas1.vue +++ b/src/views/distribution/reservation/atlas1.vue @@ -9,7 +9,9 @@ <el-scrollbar> <div class="mbx"> <el-text v-for="item in datalists" class="mx-1 txbx" type="primary" - >{{item.content}}--时间:{{item.time}}--距离:{{item.distance}}公里</el-text + > + {{item.content}}--时间:{{item.time}}--距离:{{item.distance}}公里({{item.items.handQuantity}}件) + </el-text > </div> </el-scrollbar> @@ -109,7 +111,7 @@ function init(data) { details.mapLoc.setCenter([result.geocodes[0].location.lng, result.geocodes[0].location.lat]) geocodess.push({ pontion: result.geocodes[0].location, - content: item.customerName + '--' + item.customerAddress + '--' + item.customerTelephone, + content: item.customerName + '--' + item.customerAddress+'' + '--' + item.customerTelephone, items: item, }); if (index + 1 == data.length) { @@ -132,7 +134,7 @@ function maker(geocodess) { }); marker.setMap(details.mapLoc); marker.setLabel({ - offset: new AMap.Pixel(0, -30), //设置文本标注偏移量 + offset: new AMap.Pixel(0, -5), //设置文本标注偏移量 content: `<div class='info'>${item.content}</div>`, //设置文本标注内容 direction: 'top', //设置文本标注方位 }); @@ -156,6 +158,7 @@ function Driving(geocodess) { // console.log(result.routes[0]); item.time=formatSeconds(result.routes[0].time) item.distance=result.routes[0].distance/1000 + // item.distance=result.routes[0].distance/1000 details.datalists.push(item) } else { console.log('获取驾车数据失败:'+ result) @@ -205,6 +208,8 @@ const { datalists } = toRefs(details); .mbx { display: flex; flex-direction: column; + align-items: flex-start; + } } } @@ -214,5 +219,6 @@ const { datalists } = toRefs(details); .txbx { padding: 5px 0px; box-sizing: border-box; + width: 100%; } </style> diff --git a/src/views/distribution/reservation/reservation.vue b/src/views/distribution/reservation/reservation.vue index 8252fb9d..7c8c2912 100644 --- a/src/views/distribution/reservation/reservation.vue +++ b/src/views/distribution/reservation/reservation.vue @@ -1,1458 +1,1522 @@ <template> - <basic-container> - <div class="avue-crud"> - <el-row v-if="!search" style="padding: 6px 18px"> - <!-- 查询模块 --> - <el-form :inline="true" :model="query"> - <el-form-item label="预约单编号:"> - <el-input v-model="query.reservationCode" placeholder="请输入预约单编号"></el-input> - </el-form-item> - <el-form-item label="订单自编号:"> - <el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input> - </el-form-item> - <el-form-item label="收货人:"> - <el-input v-model="query.consignee" placeholder="请输入收货人"></el-input> - </el-form-item> - <el-form-item label="收货地址:"> - <el-input v-model="query.deliveryAddress" placeholder="请输入收货地址"></el-input> - </el-form-item> - <el-form-item label="收件人电话:"> - <el-input v-model="query.deliveryPhone" placeholder="请输入收件人电话"></el-input> - </el-form-item> + <basic-container> + <div class="avue-crud"> + <el-row v-if="!search" style="padding: 6px 18px"> + <!-- 查询模块 --> + <el-form :inline="true" :model="query"> + <el-form-item label="预约单编号:"> + <el-input v-model="query.reservationCode" placeholder="请输入预约单编号"></el-input> + </el-form-item> + <el-form-item label="订单自编号:"> + <el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input> + </el-form-item> + <el-form-item label="收货人:"> + <el-input v-model="query.consignee" placeholder="请输入收货人"></el-input> + </el-form-item> + <el-form-item label="收货地址:"> + <el-input v-model="query.deliveryAddress" placeholder="请输入收货地址"></el-input> + </el-form-item> + <el-form-item label="收件人电话:"> + <el-input v-model="query.deliveryPhone" placeholder="请输入收件人电话"></el-input> + </el-form-item> - <!-- <el-form-item label="顾客姓名:">--> - <!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>--> - <!-- </el-form-item>--> - <!-- 查询按钮 --> - <el-form-item> - <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> - </el-row> - <el-tabs v-model="activeName" type="border-card" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="待确认" name="nocheck"> - <el-row> - <el-button-group> - <!-- <el-button type="primary" icon="el-icon-view" @click="ccc">全部</el-button>--> - </el-button-group> - <div class="avue-crud__header"> - <!-- 头部左侧按钮模块 --> - <div class="avue-crud__left"> - <el-button type="primary" icon="el-icon-plus" @click="handleAdd" - >添加预约</el-button - > - <el-button - v-if="this.query.reservationStatus === '1'" - type="danger" - icon="el-icon-delete" - @click="handleConfirmReservations" - plain - >批量确认 - </el-button> - <el-button - v-if="this.query.reservationStatus === '2'" - type="danger" - icon="el-icon-delete" - @click="handleStockUp()" - plain - >批量转备货 - </el-button> - <el-button - v-if="this.query.reservationStatus === '2'" - type="danger" - icon="el-icon-delete" - @click="handleDeliverys" - plain - >批量转配送 - </el-button> - </div> - <!-- 头部右侧按钮模块 --> - <div class="avue-crud__right"> - <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> - <el-button icon="Operation" @click="showdrawer(true)" circle></el-button> - <el-button icon="el-icon-search" @click="searchHide" circle></el-button> - </div> - </div> - </el-row> - <el-row> - <!-- 列表模块 --> - <tablecmt - :columnList="columnList" - :tableData="data" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > - <template #default="slotProps"> - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="viewReservation(slotProps.scope)" - >查看</el-text - > - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="editsolt(slotProps.scope)" - >编辑</el-text - > - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="cancelReservation(slotProps.scope)" - >取消预约</el-text - > - <el-text - v-if="this.query.reservationStatus === '1' ? true : false" - size="small" - @click="confirmReservation(slotProps.scope)" - >确认预约</el-text - > - </template> - </tablecmt> - <!-- <el-popover :visible="visible" placement="top-start" :width="160">--> - <!-- <p>Are you sure to delete this?</p>--> - <!-- <el-input v-model= 'this.message'--> - <!-- type="textarea"--> - <!-- :rows="1"--> - <!-- placeholder="请输入取消原因"></el-input>--> - <!-- <div style="text-align: right; margin: 10%">--> - <!-- <el-button size="small" text @click="this.message='',visible = false">取消</el-button>--> - <!-- <el-button size="small" type="primary" @click="confirmReservation(slotProps.scope)"--> - <!-- >确认</el-button--> - <!-- >--> - <!-- </div>--> - <!--<!– <template #reference>–>--> - <!--<!– </template>–>--> - <!-- </el-popover>--> - <!-- <el-table ref="table" v-loading="loading" - @selection-change="selectionChange" - :data="data" - :height="height" - style="width: 100%" - :border="option.border"> - <el-table-column type="selection" v-if="option.selection" width="55" - align="center"></el-table-column> - <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> - <el-table-column v-if="option.index" label="序号" type="index" width="80px" - align="center"></el-table-column> - - <template v-for="(item,index) in option.column"> - <el-table-column v-if="item.hide!==true" - :prop="item.prop" - :label="item.label" - :width="item.width" - :key="index"> - </el-table-column> + <!-- <el-form-item label="顾客姓名:">--> + <!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>--> + <!-- </el-form-item>--> + <!-- 查询按钮 --> + <el-form-item> + <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> + </el-row> + <el-tabs v-model="activeName" type="border-card" class="demo-tabs" @tab-click="handleClick"> + <el-tab-pane label="待确认" name="nocheck"> + <el-row> + <el-button-group> + <!-- <el-button type="primary" icon="el-icon-view" @click="ccc">全部</el-button>--> + </el-button-group> + <div class="avue-crud__header"> + <!-- 头部左侧按钮模块 --> + <div class="avue-crud__left"> + <el-button type="primary" icon="el-icon-plus" @click="handleAdd" + >添加预约 + </el-button + > + <el-button + v-if="this.query.reservationStatus === '1'" + type="danger" + icon="el-icon-delete" + @click="handleConfirmReservations" + plain + >批量确认 + </el-button> + <el-button + v-if="this.query.reservationStatus === '2'" + type="danger" + icon="el-icon-delete" + @click="handleStockUp()" + plain + >批量转备货 + </el-button> + <el-button + v-if="this.query.reservationStatus === '2'" + type="danger" + icon="el-icon-delete" + @click="handleDeliverys" + plain + >批量转配送 + </el-button> + </div> + <!-- 头部右侧按钮模块 --> + <div class="avue-crud__right"> + <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> + <el-button icon="Operation" @click="showdrawer(true)" circle></el-button> + <el-button icon="el-icon-search" @click="searchHide" circle></el-button> + </div> + </div> + </el-row> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList" + :tableData="data" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="viewReservation(slotProps.scope)" + >查看 + </el-text + > + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="editsolt(slotProps.scope)" + >编辑 + </el-text + > + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="cancelReservation(slotProps.scope)" + >取消预约 + </el-text + > + <el-text + v-if="this.query.reservationStatus === '1' ? true : false" + size="small" + @click="confirmReservation(slotProps.scope)" + >确认预约 + </el-text + > </template> - <el-table-column prop="menu" label="操作" :width="220" align="center"> - <template #="{row}"> - <el-button type="primary" text icon="el-icon-view" @click="handleView(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> - </el-table-column> - </el-table> --> - </el-row> - </el-tab-pane> - <el-tab-pane label="已确认" name="yescheck"> - <el-row> - <el-button-group> - <!-- <el-button type="primary" icon="el-icon-view" @click="ccc">全部</el-button>--> - </el-button-group> - <div class="avue-crud__header"> - <!-- 头部左侧按钮模块 --> - <div class="avue-crud__left"> - <el-button type="primary" icon="el-icon-plus" @click="handleAdd" - >添加预约</el-button - > - <el-button - v-if="this.query.reservationStatus === '1'" - type="danger" - icon="el-icon-delete" - @click="handleConfirmReservations" - plain - >批量确认 - </el-button> - <el-button - v-if="this.query.reservationStatus === '2'" - type="danger" - icon="el-icon-delete" - @click="handleStockUp()" - plain - >批量转备货 - </el-button> - <el-button - v-if="this.query.reservationStatus === '2'" - type="danger" - icon="el-icon-delete" - @click="handleDeliverys" - plain - >批量转配送 - </el-button> - </div> - <!-- 头部右侧按钮模块 --> - <div class="avue-crud__right"> - <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> - <el-button icon="Operation" @click="showdrawer(true)" circle></el-button> - <el-button icon="el-icon-search" @click="searchHide" circle></el-button> - </div> - </div> - </el-row> - <el-row> - <!-- 列表模块 --> - <tablecmt - :columnList="columnList" - :tableData="data" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > - <template #default="slotProps"> - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="viewReservation(slotProps.scope)" - >查看</el-text - > - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="editsolt(slotProps.scope)" - >编辑</el-text - > - <el-text - size="small" - type="primary" - link - icon="el-icon-view" - @click="cancelReservation(slotProps.scope)" - >取消预约</el-text - > - <el-text - v-if="this.query.reservationStatus === '1' ? true : false" - size="small" - @click="confirmReservation(slotProps.scope)" - >确认预约</el-text - > - </template> - </tablecmt> - <!-- <el-popover :visible="visible" placement="top-start" :width="160">--> - <!-- <p>Are you sure to delete this?</p>--> - <!-- <el-input v-model= 'this.message'--> - <!-- type="textarea"--> - <!-- :rows="1"--> - <!-- placeholder="请输入取消原因"></el-input>--> - <!-- <div style="text-align: right; margin: 10%">--> - <!-- <el-button size="small" text @click="this.message='',visible = false">取消</el-button>--> - <!-- <el-button size="small" type="primary" @click="confirmReservation(slotProps.scope)"--> - <!-- >确认</el-button--> - <!-- >--> - <!-- </div>--> - <!--<!– <template #reference>–>--> - <!--<!– </template>–>--> - <!-- </el-popover>--> - <!-- <el-table ref="table" v-loading="loading" - @selection-change="selectionChange" - :data="data" - :height="height" - style="width: 100%" - :border="option.border"> - <el-table-column type="selection" v-if="option.selection" width="55" - align="center"></el-table-column> - <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> - <el-table-column v-if="option.index" label="序号" type="index" width="80px" - align="center"></el-table-column> + </tablecmt> + <!-- <el-popover :visible="visible" placement="top-start" :width="160">--> + <!-- <p>Are you sure to delete this?</p>--> + <!-- <el-input v-model= 'this.message'--> + <!-- type="textarea"--> + <!-- :rows="1"--> + <!-- placeholder="请输入取消原因"></el-input>--> + <!-- <div style="text-align: right; margin: 10%">--> + <!-- <el-button size="small" text @click="this.message='',visible = false">取消</el-button>--> + <!-- <el-button size="small" type="primary" @click="confirmReservation(slotProps.scope)"--> + <!-- >确认</el-button--> + <!-- >--> + <!-- </div>--> + <!--<!– <template #reference>–>--> + <!--<!– </template>–>--> + <!-- </el-popover>--> + <!-- <el-table ref="table" v-loading="loading" + @selection-change="selectionChange" + :data="data" + :height="height" + style="width: 100%" + :border="option.border"> + <el-table-column type="selection" v-if="option.selection" width="55" + align="center"></el-table-column> + <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> + <el-table-column v-if="option.index" label="序号" type="index" width="80px" + align="center"></el-table-column> - <template v-for="(item,index) in option.column"> - <el-table-column v-if="item.hide!==true" - :prop="item.prop" - :label="item.label" - :width="item.width" - :key="index"> - </el-table-column> + <template v-for="(item,index) in option.column"> + <el-table-column v-if="item.hide!==true" + :prop="item.prop" + :label="item.label" + :width="item.width" + :key="index"> + </el-table-column> + </template> + <el-table-column prop="menu" label="操作" :width="220" align="center"> + <template #="{row}"> + <el-button type="primary" text icon="el-icon-view" @click="handleView(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> + </el-table-column> + </el-table> --> + </el-row> + </el-tab-pane> + <el-tab-pane label="已确认" name="yescheck"> + <el-row> + <el-button-group> + <!-- <el-button type="primary" icon="el-icon-view" @click="ccc">全部</el-button>--> + </el-button-group> + <div class="avue-crud__header"> + <!-- 头部左侧按钮模块 --> + <div class="avue-crud__left"> + <el-button type="primary" icon="el-icon-plus" @click="handleAdd" + >添加预约 + </el-button + > + <el-button + v-if="this.query.reservationStatus === '1'" + type="danger" + icon="el-icon-delete" + @click="handleConfirmReservations" + plain + >批量确认 + </el-button> + <el-button + v-if="this.query.reservationStatus === '2'" + type="danger" + icon="el-icon-delete" + @click="handleStockUp()" + plain + >批量转备货 + </el-button> + <el-button + v-if="this.query.reservationStatus === '2'" + type="danger" + icon="el-icon-delete" + @click="handleDeliverys" + plain + >批量转配送 + </el-button> + </div> + <!-- 头部右侧按钮模块 --> + <div class="avue-crud__right"> + <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> + <el-button icon="Operation" @click="showdrawer(true)" circle></el-button> + <el-button icon="el-icon-search" @click="searchHide" circle></el-button> + </div> + </div> + </el-row> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList" + :tableData="data" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="viewReservation(slotProps.scope)" + >查看 + </el-text + > + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="editsolt(slotProps.scope)" + >编辑 + </el-text + > + <el-text + size="small" + type="primary" + link + icon="el-icon-view" + @click="cancelReservation(slotProps.scope)" + >取消预约 + </el-text + > + <el-text + v-if="this.query.reservationStatus === '1' ? true : false" + size="small" + @click="confirmReservation(slotProps.scope)" + >确认预约 + </el-text + > </template> - <el-table-column prop="menu" label="操作" :width="220" align="center"> - <template #="{row}"> - <el-button type="primary" text icon="el-icon-view" @click="handleView(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> - </el-table-column> - </el-table> --> - </el-row> - </el-tab-pane> - </el-tabs> + </tablecmt> + <!-- <el-popover :visible="visible" placement="top-start" :width="160">--> + <!-- <p>Are you sure to delete this?</p>--> + <!-- <el-input v-model= 'this.message'--> + <!-- type="textarea"--> + <!-- :rows="1"--> + <!-- placeholder="请输入取消原因"></el-input>--> + <!-- <div style="text-align: right; margin: 10%">--> + <!-- <el-button size="small" text @click="this.message='',visible = false">取消</el-button>--> + <!-- <el-button size="small" type="primary" @click="confirmReservation(slotProps.scope)"--> + <!-- >确认</el-button--> + <!-- >--> + <!-- </div>--> + <!--<!– <template #reference>–>--> + <!--<!– </template>–>--> + <!-- </el-popover>--> + <!-- <el-table ref="table" v-loading="loading" + @selection-change="selectionChange" + :data="data" + :height="height" + style="width: 100%" + :border="option.border"> + <el-table-column type="selection" v-if="option.selection" width="55" + align="center"></el-table-column> + <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> + <el-table-column v-if="option.index" label="序号" type="index" width="80px" + align="center"></el-table-column> + + <template v-for="(item,index) in option.column"> + <el-table-column v-if="item.hide!==true" + :prop="item.prop" + :label="item.label" + :width="item.width" + :key="index"> + </el-table-column> + </template> + <el-table-column prop="menu" label="操作" :width="220" align="center"> + <template #="{row}"> + <el-button type="primary" text icon="el-icon-view" @click="handleView(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> + </el-table-column> + </el-table> --> + </el-row> + </el-tab-pane> + </el-tabs> - <el-row> - <div class="avue-crud__pagination" style="width: 100%"> - <!-- 分页模块 --> - <el-pagination - align="right" - background - @size-change="sizeChange" - @current-change="currentChange" - :current-page="page.currentPage" - :page-sizes="[30, 50, 80, 120]" - :page-size="page.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="page.total" - > - </el-pagination> + <el-row> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeChange" + @current-change="currentChange" + :current-page="page.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total" + > + </el-pagination> + </div> + </el-row> </div> - </el-row> - </div> - </basic-container> - <edittablehead - @setcolum="setnewcolum" - @closce="showdrawer" - :drawerShow="drawerShow" - :columnList="columnList" - ></edittablehead> - <el-dialog v-model="dialogFormCustomer" title="指派叉车"> - <el-form :model="info"> - <el-form-item label="备货时间:"> - <el-date-picker v-model="info.stockupDate" type="date" placeholder="选择日期"> - </el-date-picker> - </el-form-item> - <!-- <el-form-item label="装卸班组" :label-width="formLabelWidth">--> - <!-- <el-select v-model="form.loader" clearable placeholder="请选择装卸班组">--> - <!-- <el-option--> - <!-- v-for="item in loaderData"--> - <!-- :key="item.dictKey"--> - <!-- :label="item.dictValue"--> - <!-- :value="item.dictKey">--> - <!-- </el-option>--> - <!-- </el-select>--> - <!-- </el-form-item>--> - <el-form-item label="备货区域:"> - <el-select v-model="info.stockupArea" clearable placeholder="请选择备货区编号"> - <el-option - v-for="item in goodsAreaIdData" - :key="item.dictKey" - :label="item.dictValue" - :value="item.dictKey" - > - </el-option> - </el-select> - </el-form-item> - </el-form> - <template #footer> + </basic-container> + <edittablehead + @setcolum="setnewcolum" + @closce="showdrawer" + :drawerShow="drawerShow" + :columnList="columnList" + ></edittablehead> + <el-dialog v-model="dialogFormCustomer" title="指派叉车"> + <el-form :model="info"> + <el-form-item label="备货时间:"> + <el-date-picker v-model="info.stockupDate" type="date" placeholder="选择日期"> + </el-date-picker> + </el-form-item> + <!-- <el-form-item label="装卸班组" :label-width="formLabelWidth">--> + <!-- <el-select v-model="form.loader" clearable placeholder="请选择装卸班组">--> + <!-- <el-option--> + <!-- v-for="item in loaderData"--> + <!-- :key="item.dictKey"--> + <!-- :label="item.dictValue"--> + <!-- :value="item.dictKey">--> + <!-- </el-option>--> + <!-- </el-select>--> + <!-- </el-form-item>--> + <el-form-item label="备货区域:"> + <el-select v-model="info.stockupArea" clearable placeholder="请选择备货区编号"> + <el-option + v-for="item in goodsAreaIdData" + :key="item.dictKey" + :label="item.dictValue" + :value="item.dictKey" + > + </el-option> + </el-select> + </el-form-item> + </el-form> + <template #footer> <span class="dialog-footer"> <el-button @click="dialogFormCustomer = false">取消</el-button> - <!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>--> + <!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>--> <el-button type="primary" @click="callFordelivery('3')"> 确定 </el-button> </span> - </template> - </el-dialog> + </template> + </el-dialog> - <el-dialog title="预约取消" v-model="dialogCancelReservation" style="width: 30%; height: 40%"> - <el-form :model="cancel"> - <el-form-item label="原因:"> - <el-input v-model="cancel.message" autocomplete="off"></el-input> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="dialogCancelReservation = false">取 消</el-button> - <el-button type="primary" @click="cancelReservationConfirm(row)">确 定</el-button> - </div> - </el-dialog> + <el-dialog title="预约取消" v-model="dialogCancelReservation" style="width: 30%; height: 40%"> + <el-form :model="cancel"> + <el-form-item label="原因:"> + <el-input v-model="cancel.message" autocomplete="off"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogCancelReservation = false">取 消</el-button> + <el-button type="primary" @click="cancelReservationConfirm(row)">确 定</el-button> + </div> + </el-dialog> </template> <script> -import { - getList, - getDetail, - add, - update, - remove, - confirms, - addReservations, - cancelReservation, -} from '@/api/distribution/distributionReservation'; -import option from '@/option/distribution/distributionReservation'; -import { mapGetters } from 'vuex'; -import { getDictionaryBiz } from '@/api/system/dict'; -import { addAssign, getListUser } from '@/api/distribution/distributionStockup'; -import { getPostList } from '@/api/system/post'; -import { getListOwn } from '@/api/system/user'; -import { getListTeam } from '@/api/basicdata/basicdataTeamGroup'; -import { stockUp } from '@/api/basicdata/basicdataGoodsArea'; -import dayjs from 'dayjs'; -export default { - data() { - return { - columnList: [ - { - prop: '', - label: '序号', - type: 0, - values: '', - width: 55, - checkarr: [], - fixed: true, - }, - { - prop: 'reservationCode', - label: '预约单编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: true, - sortable: true, - head: false, - }, - { - prop: 'stockArticleId', - label: '订单自编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: true, - sortable: true, - head: false, - }, - { - prop: 'serviceNumber', - label: '服务号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'warehouseName', - label: '仓库', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'mallName', - label: '商城', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'storeName', - label: '门店', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'consignee', - label: '收货人', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'deliveryAddress', - label: '收货地址', - type: 2, - values: '', - width: '180', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'deliveryPhone', - label: '收件人电话', - type: 2, - values: '', - width: '180', - fixed: false, - sortable: true, - }, - { - prop: 'reservationDate', - label: '预约时间', - type: 5, - values: '', - width: '220', - checkarr: [], - fixed: false, - sortable: true, - }, - // { - // prop: 'periodOfTime', - // label: '时段1', - // type: 3, - // values: '', - // width: '180', - // checkarr: [ - // { - // label: '上午', - // value: '1' - // }, - // { - // label: '下午', - // value: '2' - // }, - // { - // label: '全天', - // value: '3' - // }, - // ], - // fixed: false, - // sortable: true, - // head:true, - // }, - { - prop: 'periodOfTimeName', - label: '时段', - type: 3, - values: '', - width: '180', - checkarr: [ - { - label: '上午', - value: '1', - }, - { - label: '下午', - value: '2', - }, - { - label: '全天', - value: '3', - }, - ], - fixed: false, - sortable: true, - }, - { - prop: 'deliveryWay', - label: '配送方式', - type: 3, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: true, - }, - // { - // prop: 'deliveryType', - // label: '配送类型', - // type: 3, - // values: '', - // width: '150', - // checkarr: [ - // { - // label: '商配', - // value: '1', - // }, - // { - // label: '市配', - // value: '2' - // }, - // ], - // fixed: false, - // sortable: true - // }, - // { - // prop: 'serveType', - // label: '服务类型1', - // type: 2, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: true, - // hide:true, - // }, - { - prop: 'serveTypeName', - label: '服务类型', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'reservationNum', - label: '预约包件数', - type: 1, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'reservationStockListNum', - label: '预约库存品数', - type: 1, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'collectionFee', - label: '待收货款', - type: 1, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'otherFee', - label: '其他费用', - type: 1, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - { - prop: 'replaceFee', - label: '代收运费', - type: 1, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, - // { - // prop: 'fee', - // label: '总费用', - // type: 2, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: true - // }, - // { - // prop: 'reservationStatus', - // label: '预约信息状态1', - // type: 4, - // values: '', - // width: '180', - // checkarr: [], - // fixed: false, - // sortable: true, - // hide: true, - // - // }, - { - prop: 'reservationStatusName', - label: '预约信息状态', - type: 1, - values: '', - width: '180', - checkarr: [ - // { - // label: '待确认', - // value: '1' - // }, - // { - // label: '已确认', - // value: '2' - // }, - ], - fixed: false, - sortable: true, - }, - // { - // prop: 'orderSource', - // label: '订单来源', - // type: 4, - // values: '', - // width: '180', - // checkarr: [], - // fixed: false, - // sortable: true - // }, - // { - // prop: 'stockupStatus', - // label: '备货状态', - // type: 3, - // values: '', - // width: '150', - // checkarr: [ - // { - // label: '待备货', - // value: '1', - // },{ - // label: '已备货', - // value: '2', - // }, - // { - // label: '部分备货', - // value: '3' - // }, - // ], - // fixed: false, - // sortable: true - // }, - { - prop: 'stockupStatusName', - label: '备货状态', - type: 3, - values: '', - width: '150', - checkarr: [ - { - label: '待备货', - value: '1', - }, - { - label: '已备货', - value: '2', - }, - { - label: '部分备货', - value: '3', - }, - ], - fixed: false, - sortable: true, - }, + import { + getList, + getDetail, + add, + update, + remove, + confirms, + addReservations, + cancelReservation + } from '@/api/distribution/distributionReservation'; + import option from '@/option/distribution/distributionReservation'; + import { mapGetters } from 'vuex'; + import { getDictionaryBiz } from '@/api/system/dict'; + import { addAssign, getListUser } from '@/api/distribution/distributionStockup'; + import { getPostList } from '@/api/system/post'; + import { getListOwn } from '@/api/system/user'; + import { getListTeam } from '@/api/basicdata/basicdataTeamGroup'; + import { stockUp } from '@/api/basicdata/basicdataGoodsArea'; + import dayjs from 'dayjs'; + + export default { + data() { + return { + columnList: [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: 55, + checkarr: [], + fixed: true + }, + { + prop: 'reservationCode', + label: '预约单编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false + }, + { + prop: 'stockArticleId', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false + }, + { + prop: 'serviceNumber', + label: '服务号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'warehouseName', + label: '仓库', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'mallName', + label: '商城', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'storeName', + label: '门店', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'consignee', + label: '收货人', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'deliveryAddress', + label: '收货地址', + type: 2, + values: '', + width: '180', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'deliveryPhone', + label: '收件人电话', + type: 2, + values: '', + width: '180', + fixed: false, + sortable: true + }, + { + prop: 'reservationDate', + label: '预约时间', + type: 4, + values: '', + width: '220', + checkarr: [], + fixed: false, + sortable: true + }, + // { + // prop: 'periodOfTime', + // label: '时段1', + // type: 3, + // values: '', + // width: '180', + // checkarr: [ + // { + // label: '上午', + // value: '1' + // }, + // { + // label: '下午', + // value: '2' + // }, + // { + // label: '全天', + // value: '3' + // }, + // ], + // fixed: false, + // sortable: true, + // head:true, + // }, + { + prop: 'periodOfTimeName', + label: '时段', + type: 3, + values: '', + width: '180', + checkarr: [ + { + label: '上午', + value: '1' + }, + { + label: '下午', + value: '2' + }, + { + label: '全天', + value: '3' + } + ], + fixed: false, + sortable: true + }, + { + prop: 'deliveryWay', + label: '配送方式', + type: 3, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: true + }, + // { + // prop: 'deliveryType', + // label: '配送类型', + // type: 3, + // values: '', + // width: '150', + // checkarr: [ + // { + // label: '商配', + // value: '1', + // }, + // { + // label: '市配', + // value: '2' + // }, + // ], + // fixed: false, + // sortable: true + // }, + // { + // prop: 'serveType', + // label: '服务类型1', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // hide:true, + // }, + { + prop: 'serveTypeName', + label: '服务类型', + type: 3, + values: '', + width: '150', + checkarr: [ + { + label: '上楼', + value: '1' + }, + { + label: '超区', + value: '2' + }, + { + label: '拆样', + value: '3' + }, + { + label: '返货', + value: '4' + }, + { + label: '平移', + value: '5' + }, + { + label: '分拣', + value: '6' + }, + { + label: '专车', + value: '7' + } + ], + fixed: false, + sortable: true + }, + { + prop: 'reservationNum', + label: '预约包件数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'reservationStockListNum', + label: '预约库存品数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'collectionFee', + label: '待收货款', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'otherFee', + label: '其他费用', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + { + prop: 'replaceFee', + label: '代收运费', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true + }, + // { + // prop: 'fee', + // label: '总费用', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true + // }, + // { + // prop: 'reservationStatus', + // label: '预约信息状态1', + // type: 4, + // values: '', + // width: '180', + // checkarr: [], + // fixed: false, + // sortable: true, + // hide: true, + // + // }, + { + prop: 'reservationStatusName', + label: '预约信息状态', + type: 1, + values: '', + width: '180', + checkarr: [ + // { + // label: '待确认', + // value: '1' + // }, + // { + // label: '已确认', + // value: '2' + // }, + ], + fixed: false, + sortable: true + }, + // { + // prop: 'orderSource', + // label: '订单来源', + // type: 4, + // values: '', + // width: '180', + // checkarr: [], + // fixed: false, + // sortable: true + // }, + // { + // prop: 'stockupStatus', + // label: '备货状态', + // type: 3, + // values: '', + // width: '150', + // checkarr: [ + // { + // label: '待备货', + // value: '1', + // },{ + // label: '已备货', + // value: '2', + // }, + // { + // label: '部分备货', + // value: '3' + // }, + // ], + // fixed: false, + // sortable: true + // }, + { + prop: 'stockupStatusName', + label: '备货状态', + type: 3, + values: '', + width: '150', + checkarr: [ + { + label: '待备货', + value: '10' + }, + { + label: '部分备货', + value: '20' + }, + { + label: '已备货', + value: '30' + } + ], + fixed: false, + sortable: true + }, - // { - // prop: 'goodsAreaName', - // label: '备货区', - // type: 2, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: true - // }, - // { - // prop: 'goodsAreaId', - // label: '备货区编号', - // type: 2, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: true, - // hide:true, - // }, - // { - // prop: 'signingType', - // label: '签收类型', - // type: 2, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: true, - // }, + // { + // prop: 'goodsAreaName', + // label: '备货区', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true + // }, + // { + // prop: 'goodsAreaId', + // label: '备货区编号', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // hide:true, + // }, + // { + // prop: 'signingType', + // label: '签收类型', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // }, - // { - // prop: 'notes', - // label: '备注', - // type: 1, - // values: '', - // width: '150', - // checkarr: [], - // fixed: false, - // sortable: false, - // }, - { - prop: '', - label: '操作', - type: 6, - values: '', - width: '150', - checkarr: [], - fixed: 'right', - hide: true, + // { + // prop: 'notes', + // label: '备注', + // type: 1, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: false, + // }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '150', + checkarr: [], + fixed: 'right', + hide: true + } + // 更多列的配置... + ], + drawerShow: false, + dialogFormCustomer: false, + height: 0, + // 弹框标题 + title: '', + // 是否展示弹框 + box: false, + // 是否显示查询 + search: true, + // 加载中 + loading: true, + // 是否为查看模式 + view: false, + // 查询信息 + query: {}, + // 分页信息 + page: { + currentPage: 1, + pageSize: 30, + total: 40 }, - // 更多列的配置... - ], - drawerShow: false, - dialogFormCustomer: false, - height: 0, - // 弹框标题 - title: '', - // 是否展示弹框 - box: false, - // 是否显示查询 - search: true, - // 加载中 - loading: true, - // 是否为查看模式 - view: false, - // 查询信息 - query: {}, - // 分页信息 - page: { - currentPage: 1, - pageSize: 30, - total: 40, + // 表单数据 + form: {}, + info: {}, + cancel: {}, + // 选择行 + selectionList: [], + // 表单配置 + option: option, + // 表单列表 + data: [], + dialogCancelReservation: false, + //配送方式字典列表 + deliveryTypeData: [], + //配送类型字典列表 + resvervationStatusData: [], + stockupStatusData: [], + orderSourceData: [], + periodOfTimeData: [], + deliveryWayData: [], + //控制编辑弹窗是否可编辑 + isUpdate: false, + addvalueServeTypeData: [], + forkliftData: [], + loaderData: [], + goodsAreaIdData: [], + deptId: '', + cancelReservationRow: {}, + activeName: 'nocheck' + }; + }, + watch: { + // '$route.query.reservationId': { + handler(newVal, oldVal) { + console.log(newVal, oldVal); + // this.fetchData(); + this.onLoad(this.page); }, - // 表单数据 - form: {}, - info: {}, - cancel: {}, - // 选择行 - selectionList: [], - // 表单配置 - option: option, - // 表单列表 - data: [], - dialogCancelReservation: false, - //配送方式字典列表 - deliveryTypeData: [], - //配送类型字典列表 - resvervationStatusData: [], - stockupStatusData: [], - orderSourceData: [], - periodOfTimeData: [], - deliveryWayData: [], - //控制编辑弹窗是否可编辑 - isUpdate: false, - addvalueServeTypeData: [], - forkliftData: [], - loaderData: [], - goodsAreaIdData: [], - deptId: '', - cancelReservationRow: {}, - activeName: 'nocheck', - }; - }, - watch: { - // '$route.query.reservationId': { - handler(newVal, oldVal) { - console.log(newVal, oldVal); - // this.fetchData(); - this.onLoad(this.page); + deep: false, + immediate: true + // } }, - deep: false, - immediate: true, - // } - }, - mounted() { - this.init(); - this.onLoad(this.page); - this.getDictionary(); + mounted() { + this.init(); + this.onLoad(this.page); + this.getDictionary(); - /** - * 初始化获取本地缓存的编辑隐藏的列表 - * 固定搭配,不能更改 - */ - let checkListnewarr = this.$functions.getStorage(window.location.pathname + 'checkList'); - let flexListnewarr = this.$functions.getStorage(window.location.pathname + 'flexList'); - let sortlistnewarr = this.$functions.getStorage(window.location.pathname + 'sortlist'); - if (checkListnewarr) { - this.columnList.map(item => { - item.head = false; - }); - checkListnewarr.map(ite => { + /** + * 初始化获取本地缓存的编辑隐藏的列表 + * 固定搭配,不能更改 + */ + let checkListnewarr = this.$functions.getStorage(window.location.pathname + 'checkList'); + let flexListnewarr = this.$functions.getStorage(window.location.pathname + 'flexList'); + let sortlistnewarr = this.$functions.getStorage(window.location.pathname + 'sortlist'); + if (checkListnewarr) { this.columnList.map(item => { - if (ite == item.label) { - item.head = true; + item.head = false; + }); + checkListnewarr.map(ite => { + this.columnList.map(item => { + if (ite == item.label) { + item.head = true; + } + }); + }); + } else { + let arr = []; + this.columnList.map(item => { + if (item.head) { + arr.push(item.label); } }); - }); - } else { - let arr = []; - this.columnList.map(item => { - if (item.head) { - arr.push(item.label); - } - }); - this.$functions.setStorage(window.location.pathname + 'checkList', arr); - } - if (flexListnewarr) { - this.columnList.map(item => { - item.fixed = false; - }); - flexListnewarr.map(ite => { + this.$functions.setStorage(window.location.pathname + 'checkList', arr); + } + if (flexListnewarr) { this.columnList.map(item => { - if (ite == item.label) { - if (item.type == 6) { - item.fixed = 'right'; - } else { - item.fixed = true; + item.fixed = false; + }); + flexListnewarr.map(ite => { + this.columnList.map(item => { + if (ite == item.label) { + if (item.type == 6) { + item.fixed = 'right'; + } else { + item.fixed = true; + } } - } + }); }); - }); - } else { - let arr = []; - this.columnList.map(item => { - if (item.fixed) { - arr.push(item.label); - } - }); - this.$functions.setStorage(window.location.pathname + 'flexList', arr); - } - if (sortlistnewarr) { - this.columnList.map(item => { - item.sortable = false; - }); - sortlistnewarr.map(ite => { + } else { + let arr = []; this.columnList.map(item => { - if (ite == item.label) { - item.sortable = true; + if (item.fixed) { + arr.push(item.label); } }); - }); - } else { - let arr = []; - this.columnList.map(item => { - if (item.sortable) { - arr.push(item.label); - } - }); - this.$functions.setStorage(window.location.pathname + 'sortlist', arr); - } - }, - computed: { - ...mapGetters(['permission']), - ids() { - let ids = []; - this.selectionList.forEach(ele => { - ids.push(ele.id); - }); - return ids.join(','); - }, - }, - methods: { - showdrawer(value) { - this.drawerShow = value; - }, - /** - * 弹窗的勾选回调,用于更改头部数组 - * 固定搭配,只需要更换 columnList - */ - setnewcolum(newarr, headarr, type) { - // console.log(newarr,'+++++++++++') - if (type == 1) { - this.columnList = newarr; - this.$functions.setStorage(window.location.pathname + 'checkList', headarr); - } else if (type == 2) { - this.columnList = newarr; - this.$functions.setStorage(window.location.pathname + 'flexList', headarr); - } else if (type == 3) { - this.columnList = newarr; - this.$functions.setStorage(window.location.pathname + 'sortlist', headarr); + this.$functions.setStorage(window.location.pathname + 'flexList', arr); } - }, - selectionsc(value) { - console.log(value); - }, - delectsolt(scope) { - const { row } = scope; - console.log(row); - }, - cancelReservation(scope) { - const { row } = scope; - this.dialogCancelReservation = true; - this.cancelReservationRow = row; - console.log(row); - }, - editsolt(scope) { - const { row } = scope; - this.$router.push({ - path: '/distribution/reservation/reservationAddFrom', - query: { - reservationId: row.id, - name: '编辑预约单', - }, - }); - console.log(row); - }, - viewReservation(scope) { - const { row } = scope; - this.$router.push({ - path: '/distribution/reservation/reservationDetails', - query: { - id: row.id, - }, - }); - console.log(row); - }, - btnsc(index, row) { - console.log(index, row); - }, - selectsc(index, row) { - console.log(index, row); - }, - timesc(index, row) { - console.log(index, row); - }, - inputsc(index, row) { - console.log(index, row); - }, - init() { - this.height = this.setPx(document.body.clientHeight - 340); - }, - handleClick() { - if(this.activeName=='yescheck'){ - this.activeName='nocheck' - }else if(this.activeName=='nocheck'){ - this.activeName='yescheck' - } - if(this.activeName=='yescheck'){ - this.bbb() - }else if(this.activeName=='nocheck'){ - this.aaa() - } - }, - cancelReservationConfirm() { - if (!this.cancel.message) { - this.$message.warning('请输入取消原因!!'); - return; - } - let data = {}; - if (this.cancelReservationRow) { - data = this.cancelReservationRow; - data.cancelReason = this.cancel.message; + if (sortlistnewarr) { + this.columnList.map(item => { + item.sortable = false; + }); + sortlistnewarr.map(ite => { + this.columnList.map(item => { + if (ite == item.label) { + item.sortable = true; + } + }); + }); } else { - this.$message.error('请稍后再试!!'); - return; - } - cancelReservation(data).then(res => { - this.onLoad(this.page); - this.cancelReservationRow = {}; - this.dialogCancelReservation = false; - }); - }, - ddd() { - this.form.deliveryType === ''; - console.log(' this.form.deliveryType===', this.form.deliveryType); - }, - //数据字典数据获取 - getDictionary() { - //服务内容 - getDictionaryBiz('addvalue_serve_type').then(res => { - this.addvalueServeTypeData = res.data.data; - }); - getDictionaryBiz('distribution_type').then(res => { - this.deliveryTypeData = res.data.data; - }); - //订单来源 - getDictionaryBiz('order_source').then(res => { - this.orderSourceData = res.data.data; - }); - //预约状态 - getDictionaryBiz('resvervation_status').then(res => { - this.resvervationStatusData = res.data.data; - }); - //备货状态 - getDictionaryBiz('stockup_status').then(res => { - this.stockupStatusData = res.data.data; - }); - //时段 - getDictionaryBiz('period_of_time').then(res => { - this.periodOfTimeData = res.data.data; - }); - getDictionaryBiz('delivery_way').then(res => { - this.deliveryWayData = res.data.data; - }); - }, - //查询叉车人员 - async getFork() { - let ides = ''; - let ide = {}; - await getListUser().then(res => { - // console.log("res>>>",res.data.data); - ides = res.data.data.tenantId; - this.deptId = res.data.data.deptId; - }); - await getPostList(ides).then(res => { - // console.log(">>>>",res.data.data); - res.data.data.forEach(i => { - if (i.postName == '叉车') { - ide = i; + let arr = []; + this.columnList.map(item => { + if (item.sortable) { + arr.push(item.label); } }); - }); - // console.log("ied>>>>>",ide); - let params = { - postId: ide.id, //岗位 - deptId: this.deptId, //部门 - // roleId: '', //角色 - }; - getListOwn(Object.assign(params, this.query)).then(res => { - // console.log(".............",res.data.data); - let fo = []; - res.data.data.forEach(i => { - let a = { - dictKey: i.id, - dictValue: i.name, - }; - fo.push(a); - }); - this.forkliftData = fo; - }); - await this.getStorageArea(); - await this.getTeam(); + this.$functions.setStorage(window.location.pathname + 'sortlist', arr); + } }, - //查询班组 - async getTeam() { - let params = { - department: this.deptId, - }; - getListTeam( - this.page.currentPage, - this.page.pageSize, - Object.assign(params, this.query) - ).then(res => { - // console.log(">><><",res.data.data.records); - let fo = []; - res.data.data.records.forEach(i => { - let a = { - dictKey: i.id, - dictValue: i.name + '-' + i.groupName, - }; - fo.push(a); + computed: { + ...mapGetters(['permission']), + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); }); - this.loaderData = fo; - }); + return ids.join(','); + } }, - //备货区 - async getStorageArea() { - let params = { - department: this.deptId, - }; - stockUp(params).then(res => { - // console.log("res>>>",res.data.data); - let fo = []; - res.data.data.forEach(i => { - let v = { - dictKey: i.id, - dictValue: i.name + '-' + i.headline, - }; - fo.push(v); + methods: { + showdrawer(value) { + this.drawerShow = value; + }, + /** + * 弹窗的勾选回调,用于更改头部数组 + * 固定搭配,只需要更换 columnList + */ + setnewcolum(newarr, headarr, type) { + // console.log(newarr,'+++++++++++') + if (type == 1) { + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname + 'checkList', headarr); + } else if (type == 2) { + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname + 'flexList', headarr); + } else if (type == 3) { + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname + 'sortlist', headarr); + } + }, + selectionsc(value) { + console.log(value); + }, + delectsolt(scope) { + const { row } = scope; + console.log(row); + }, + cancelReservation(scope) { + const { row } = scope; + this.dialogCancelReservation = true; + this.cancelReservationRow = row; + console.log(row); + }, + editsolt(scope) { + const { row } = scope; + this.$router.push({ + path: '/distribution/reservation/reservationAddFrom', + query: { + reservationId: row.id, + name: '编辑预约单' + } }); - this.goodsAreaIdData = fo; - }); - }, - searchHide() { - this.search = !this.search; - }, - searchChange() { - this.onLoad(this.page); - }, - searchReset() { - this.query = {}; - this.page.currentPage = 1; - this.onLoad(this.page); - }, - handleConfirmReservations() { - if (this.selectionList.length === 0) { - this.$message.warning('请选择至少一条数据'); - return; - } - let param = {}; - param.ids = this.ids.toString(); - addReservations(param).then(res => { - this.selectionClear(); - this.onLoad(this.page); - this.$message({ - type: 'success', - message: '操作成功!', + console.log(row); + }, + viewReservation(scope) { + const { row } = scope; + this.$router.push({ + path: '/distribution/reservation/reservationDetails', + query: { + id: row.id + } }); - }); - }, - confirmReservation(scope) { - const { row } = scope; - let param = {}; - param.ids = row.id; - addReservations(param).then(res => { - this.selectionClear(); + console.log(row); + }, + btnsc(index, row) { + console.log(index, row); + }, + selectsc(index, row) { + console.log(index, row); + if (row.prop === 'periodOfTimeName') { + this.query['periodOfTime'] = index; + } else if (row.prop === 'stockupStatusName') { + this.query['stockupStatus'] = index; + }else if (row.prop === 'serveTypeName') { + this.query['serveType'] = index; + console.log(this.query, '----------->'); + } + + else { + this.query[row.prop] = index; + } this.onLoad(this.page); - this.$message({ - type: 'success', - message: '操作成功!', - }); - }); - }, - handleSubmit() { - this.form.serveType = this.form.serveType.join(','); - update(this.form).then(() => { - this.box = false; + }, + timesc(index, row) { + console.log(index, row); + console.log(index, row); + if (!!index) { + index = dayjs(index).format('YYYY-MM-DD'); + } + this.query[row.prop] = index; + if (!index) { + delete this.query[row.prop]; + } this.onLoad(this.page); - this.$message({ - type: 'success', - message: '操作成功!', - }); - }); - }, - handleAdd() { - this.$router.push({ - path: '/distribution/reservation/reservationAddFrom', - }); - }, - handleEdit(row) { - console.log(row); - this.$router.push({ - path: '/distribution/reservation/reservationAddFrom', - query: { - reservationId: row.id, - }, - }); - }, - aaa() { - this.query.reservationStatus = '1'; - this.onLoad(this.page); - }, - bbb() { - this.query.reservationStatus = '2'; - this.onLoad(this.page); - }, - handleView(row) { - this.title = '查看'; - this.view = true; - this.box = true; - getDetail(row.id).then(res => { - this.form = res.data.data; - }); - }, - /** - * 批量转配送 - */ - handleDeliverys() { - if (this.selectionList.length === 0) { - this.$message.warning('请选择至少一条数据'); - return; - } - let ids = []; - this.selectionList.forEach(item => { - if (item.id) { - ids.push(item.id); + }, + inputsc(index, row) { + console.log(index, row); + this.query[row.prop] = index; + this.onLoad(this.page); + }, + init() { + this.height = this.setPx(document.body.clientHeight - 340); + }, + handleClick() { + if (this.activeName == 'yescheck') { + this.activeName = 'nocheck'; + } else if (this.activeName == 'nocheck') { + this.activeName = 'yescheck'; } - }); - ids = ids.join(','); - this.$router.push({ - path: '/distribution/reservation/atlas', - query: { - id: ids, - type: '1', - }, - }); - // console.log(">>>>>>>>>>",ids); - }, - //批量转备货 - handleStockUp() { - this.info = {}; - if (this.selectionList.length === 0) { - this.$message.warning('请选择至少一条数据'); - return; - } - let data = this.selectionList; - let a = []; - let b = []; - console.log('>>>>>>>>>>>>>', data); - data.forEach(d => { - if (d.stockupStatus === '20' || d.stockupStatusName === '待备货') { - a.push(d.reservationCode); + if (this.activeName == 'yescheck') { + this.bbb(); + } else if (this.activeName == 'nocheck') { + this.aaa(); } - if (d.stockupStatus === '30' || d.stockupStatusName === '已备货') { - b.push(d.reservationCode); + }, + cancelReservationConfirm() { + if (!this.cancel.message) { + this.$message.warning('请输入取消原因!!'); + return; } - }); - if (a.length >= 1) { - this.$message.warning(a.join(',') + '预约单存在备货任务,请勿重复添加'); - return; - } - if (b.length >= 1) { - this.$message.warning(a.join(',') + '预约单备货任务已完成,请勿重复添加'); - return; - } - this.dialogFormCustomer = true; - this.info.stockupDate = dayjs().format('YYYY-MM-DD HH:mm:ss'); - - this.getFork(); - this.getTeam(); - }, - //确定指派 - callFordelivery() { - this.info.ids = this.ids; - this.goodsAreaIdData.forEach(item => { - console.log(item); - if (this.info.stockupArea === item.dictKey) { - this.info.goodsAreaName = item.dictValue; + let data = {}; + if (this.cancelReservationRow) { + data = this.cancelReservationRow; + data.cancelReason = this.cancel.message; + } else { + this.$message.error('请稍后再试!!'); + return; } - }); - confirms(this.info).then(res => { - this.$message({ - type: 'success', - message: '操作成功!', + cancelReservation(data).then(res => { + this.onLoad(this.page); + this.cancelReservationRow = {}; + this.dialogCancelReservation = false; + }); + }, + ddd() { + this.form.deliveryType === ''; + console.log(' this.form.deliveryType===', this.form.deliveryType); + }, + //数据字典数据获取 + getDictionary() { + //服务内容 + getDictionaryBiz('addvalue_serve_type').then(res => { + this.addvalueServeTypeData = res.data.data; + }); + getDictionaryBiz('distribution_type').then(res => { + this.deliveryTypeData = res.data.data; + }); + //订单来源 + getDictionaryBiz('order_source').then(res => { + this.orderSourceData = res.data.data; + }); + //预约状态 + getDictionaryBiz('resvervation_status').then(res => { + this.resvervationStatusData = res.data.data; + }); + //备货状态 + getDictionaryBiz('stockup_status').then(res => { + this.stockupStatusData = res.data.data; }); + //时段 + getDictionaryBiz('period_of_time').then(res => { + this.periodOfTimeData = res.data.data; + }); + getDictionaryBiz('delivery_way').then(res => { + this.deliveryWayData = res.data.data; + }); + }, + //查询叉车人员 + async getFork() { + let ides = ''; + let ide = {}; + await getListUser().then(res => { + // console.log("res>>>",res.data.data); + ides = res.data.data.tenantId; + this.deptId = res.data.data.deptId; + }); + await getPostList(ides).then(res => { + // console.log(">>>>",res.data.data); + res.data.data.forEach(i => { + if (i.postName == '叉车') { + ide = i; + } + }); + }); + // console.log("ied>>>>>",ide); + let params = { + postId: ide.id, //岗位 + deptId: this.deptId //部门 + // roleId: '', //角色 + }; + getListOwn(Object.assign(params, this.query)).then(res => { + // console.log(".............",res.data.data); + let fo = []; + res.data.data.forEach(i => { + let a = { + dictKey: i.id, + dictValue: i.name + }; + fo.push(a); + }); + this.forkliftData = fo; + }); + await this.getStorageArea(); + await this.getTeam(); + }, + //查询班组 + async getTeam() { + let params = { + department: this.deptId + }; + getListTeam( + this.page.currentPage, + this.page.pageSize, + Object.assign(params, this.query) + ).then(res => { + // console.log(">><><",res.data.data.records); + let fo = []; + res.data.data.records.forEach(i => { + let a = { + dictKey: i.id, + dictValue: i.name + '-' + i.groupName + }; + fo.push(a); + }); + this.loaderData = fo; + }); + }, + //备货区 + async getStorageArea() { + let params = { + department: this.deptId + }; + stockUp(params).then(res => { + // console.log("res>>>",res.data.data); + let fo = []; + res.data.data.forEach(i => { + let v = { + dictKey: i.id, + dictValue: i.name + '-' + i.headline + }; + fo.push(v); + }); + this.goodsAreaIdData = fo; + }); + }, + searchHide() { + this.search = !this.search; + }, + searchChange() { this.onLoad(this.page); - this.dialogFormCustomer = false; - }); - }, - handleDelete() { - if (this.selectionList.length === 0) { - this.$message.warning('请选择至少一条数据'); - return; - } - this.$confirm('确定将选择数据删除?', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - return remove(this.ids); - }) - .then(() => { + }, + searchReset() { + this.query = {}; + this.page.currentPage = 1; + this.onLoad(this.page); + }, + handleConfirmReservations() { + if (this.selectionList.length === 0) { + this.$message.warning('请选择至少一条数据'); + return; + } + let param = {}; + param.ids = this.ids.toString(); + addReservations(param).then(res => { this.selectionClear(); this.onLoad(this.page); this.$message({ type: 'success', - message: '操作成功!', + message: '操作成功!' }); }); - }, - rowDel(row) { - this.$confirm('确定将选择数据删除?', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - return remove(row.id); - }) - .then(() => { + }, + confirmReservation(scope) { + const { row } = scope; + let param = {}; + param.ids = row.id; + addReservations(param).then(res => { + this.selectionClear(); this.onLoad(this.page); this.$message({ type: 'success', - message: '操作成功!', + message: '操作成功!' }); }); - }, - beforeClose(done) { - done(); - this.form = {}; - this.view = false; - }, - selectionChange(list) { - this.selectionList = list; - }, - selectionClear() { - this.selectionList = []; - // this.$refs.table.clearSelection(); - }, - currentChange(currentPage) { - this.page.currentPage = currentPage; - this.onLoad(this.page); - }, - sizeChange(pageSize) { - this.page.pageSize = pageSize; - this.onLoad(this.page); - }, - - onLoad(page, params = {}) { - this.loading = true; - if (!this.query.reservationStatus) { + }, + handleSubmit() { + this.form.serveType = this.form.serveType.join(','); + update(this.form).then(() => { + this.box = false; + this.onLoad(this.page); + this.$message({ + type: 'success', + message: '操作成功!' + }); + }); + }, + handleAdd() { + this.$router.push({ + path: '/distribution/reservation/reservationAddFrom' + }); + }, + handleEdit(row) { + console.log(row); + this.$router.push({ + path: '/distribution/reservation/reservationAddFrom', + query: { + reservationId: row.id + } + }); + }, + aaa() { this.query.reservationStatus = '1'; - } - getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { - const data = res.data.data; - console.log('>>>>>>>', data); - data.records.forEach(item => { - this.orderSourceData.forEach(a => { - if (item.orderSource === a.dictKey) { - item.orderSource = a.dictValue; - } + this.onLoad(this.page); + }, + bbb() { + this.query.reservationStatus = '2'; + this.onLoad(this.page); + }, + handleView(row) { + this.title = '查看'; + this.view = true; + this.box = true; + getDetail(row.id).then(res => { + this.form = res.data.data; + }); + }, + /** + * 批量转配送 + */ + handleDeliverys() { + if (this.selectionList.length === 0) { + this.$message.warning('请选择至少一条数据'); + return; + } + let ids = []; + this.selectionList.forEach(item => { + if (item.id) { + ids.push(item.id); + } + }); + ids = ids.join(','); + this.$router.push({ + path: '/distribution/reservation/atlas', + query: { + id: ids, + type: '1' + } + }); + // console.log(">>>>>>>>>>",ids); + }, + //批量转备货 + handleStockUp() { + this.info = {}; + if (this.selectionList.length === 0) { + this.$message.warning('请选择至少一条数据'); + return; + } + let data = this.selectionList; + let a = []; + let b = []; + console.log('>>>>>>>>>>>>>', data); + data.forEach(d => { + if (d.stockupStatus === '20' || d.stockupStatusName === '待备货') { + a.push(d.reservationCode); + } + if (d.stockupStatus === '30' || d.stockupStatusName === '已备货') { + b.push(d.reservationCode); + } + }); + if (a.length >= 1) { + this.$message.warning(a.join(',') + '预约单存在备货任务,请勿重复添加'); + return; + } + if (b.length >= 1) { + this.$message.warning(a.join(',') + '预约单备货任务已完成,请勿重复添加'); + return; + } + this.dialogFormCustomer = true; + this.info.stockupDate = dayjs().format('YYYY-MM-DD HH:mm:ss'); + + this.getFork(); + this.getTeam(); + }, + //确定指派 + callFordelivery() { + this.info.ids = this.ids; + this.goodsAreaIdData.forEach(item => { + console.log(item); + if (this.info.stockupArea === item.dictKey) { + this.info.goodsAreaName = item.dictValue; + } + }); + confirms(this.info).then(res => { + this.$message({ + type: 'success', + message: '操作成功!' }); - // this.stockupStatusData.forEach(b => { - // if (item.stockupStatus === b.dictKey) { - // item.stockupStatus = b.dictValue; - // } - // }); - this.resvervationStatusData.forEach(e => { - if (item.reservationStatus === e.dictKey) { - item.reservationStatus = e.dictValue; - } + this.onLoad(this.page); + this.dialogFormCustomer = false; + }); + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning('请选择至少一条数据'); + return; + } + this.$confirm('确定将选择数据删除?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + return remove(this.ids); + }) + .then(() => { + this.selectionClear(); + this.onLoad(this.page); + this.$message({ + type: 'success', + message: '操作成功!' + }); }); - this.deliveryTypeData.forEach(c => { - if (item.deliveryType === c.dictKey) { - item.deliveryType = c.dictValue; - } + }, + rowDel(row) { + this.$confirm('确定将选择数据删除?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + return remove(row.id); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: 'success', + message: '操作成功!' + }); }); + }, + beforeClose(done) { + done(); + this.form = {}; + this.view = false; + }, + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + // this.$refs.table.clearSelection(); + }, + currentChange(currentPage) { + this.page.currentPage = currentPage; + this.onLoad(this.page); + }, + sizeChange(pageSize) { + this.page.pageSize = pageSize; + this.onLoad(this.page); + }, - this.deliveryWayData.forEach(c => { - if (item.deliveryWay === c.dictKey) { - item.deliveryWay = c.dictValue; - } - }); - this.periodOfTimeData.forEach(d => { - console.log('11111111111'); - if (item.periodOfTime === d.dictKey) { - item.periodOfTime = d.dictValue; - } - }); - let pa = []; - if (item.serveType.length > 1) { - pa = item.serveType.split(','); - } else { - pa.push(item.serveType); - } - this.addvalueServeTypeData.forEach(f => { - pa.forEach((p, index) => { - if (p === f.dictKey) { - pa[index] = f.dictValue; + onLoad(page, params = {}) { + this.loading = true; + if (!this.query.reservationStatus) { + this.query.reservationStatus = '1'; + } + getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + const data = res.data.data; + console.log('>>>>>>>', data); + data.records.forEach(item => { + this.orderSourceData.forEach(a => { + if (item.orderSource === a.dictKey) { + item.orderSource = a.dictValue; } }); + // this.stockupStatusData.forEach(b => { + // if (item.stockupStatus === b.dictKey) { + // item.stockupStatus = b.dictValue; + // } + // }); + this.resvervationStatusData.forEach(e => { + if (item.reservationStatus === e.dictKey) { + item.reservationStatus = e.dictValue; + } + }); + this.deliveryTypeData.forEach(c => { + if (item.deliveryType === c.dictKey) { + item.deliveryType = c.dictValue; + } + }); + + this.deliveryWayData.forEach(c => { + if (item.deliveryWay === c.dictKey) { + item.deliveryWay = c.dictValue; + } + }); + this.periodOfTimeData.forEach(d => { + console.log('11111111111'); + if (item.periodOfTime === d.dictKey) { + item.periodOfTime = d.dictValue; + } + }); + let pa = []; + if (item.serveType.length > 1) { + pa = item.serveType.split(','); + } else { + pa.push(item.serveType); + } + this.addvalueServeTypeData.forEach(f => { + pa.forEach((p, index) => { + if (p === f.dictKey) { + pa[index] = f.dictValue; + } + }); + }); + item.serveType = pa.join(','); }); - item.serveType = pa.join(','); + this.page.total = data.total; + this.data = data.records; + this.loading = false; + this.selectionClear(); }); - this.page.total = data.total; - this.data = data.records; - this.loading = false; - this.selectionClear(); - }); - }, - }, -}; + } + } + }; </script> <style lang="scss"> -// .el-tab-pane{ -// margin-top: -20px; -// } + // .el-tab-pane{ + // margin-top: -20px; + // } </style> \ No newline at end of file diff --git a/src/views/distribution/reservation/reservationAddFrom.vue b/src/views/distribution/reservation/reservationAddFrom.vue index 9355f872..c3cda935 100644 --- a/src/views/distribution/reservation/reservationAddFrom.vue +++ b/src/views/distribution/reservation/reservationAddFrom.vue @@ -1,2437 +1,2572 @@ <template> - <basic-container> - <div class="avue-crud"> - <el-form - ref="form" - :model="form" - prop="consignee" - label-width="80px" - :rules="reservationRules" - > - <el-row> - <el-col :span="10"> - <el-form-item label="收货人:" prop="consignee" label-width="100px"> - <el-input v-model="form.consignee" clearable placeholder="请输入收货人" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="预约时间:" prop="reservationDate" label-width="100px"> - <el-date-picker - v-model="form.reservationDate" - type="date" - clearable - placeholder="选择日期时间" - > - </el-date-picker> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="10"> - <el-form-item label="收货地址:" prop="deliveryAddress" label-width="100px"> - <el-input v-model="form.deliveryAddress" clearable placeholder="请输入收件地址" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="时  段:" prop="periodOfTime" label-width="100px"> - <el-radio-group v-model="form.periodOfTime" v-for="item in this.periodOfTimeData"> - <el-radio :label="item.dictKey" :value="item.dictKey" - >{{ item.dictValue }}  - </el-radio> - </el-radio-group> - <!-- :label="item.dictValue"--> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="10"> - <el-form-item label="收件人电话:" prop="deliveryPhone" label-width="100px"> - <el-input v-model="form.deliveryPhone" placeholder="请输入收件人电话" /> - </el-form-item> - </el-col> + <basic-container> + <div class="avue-crud"> + <el-form + ref="form" + :model="form" + prop="consignee" + label-width="80px" + :rules="reservationRules" + > + <el-row> + <el-col :span="10"> + <el-form-item label="收货人:" prop="consignee" label-width="100px"> + <el-input v-model="form.consignee" clearable placeholder="请输入收货人"/> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="预约时间:" prop="reservationDate" label-width="100px"> + <el-date-picker + v-model="form.reservationDate" + type="date" + clearable + placeholder="选择日期时间" + > + </el-date-picker> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="10"> + <el-form-item label="收货地址:" prop="deliveryAddress" label-width="100px"> + <el-input v-model="form.deliveryAddress" clearable placeholder="请输入收件地址"/> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="时  段:" prop="periodOfTime" label-width="100px"> + <el-radio-group v-model="form.periodOfTime" v-for="item in this.periodOfTimeData"> + <el-radio :label="item.dictKey" :value="item.dictKey" + >{{ item.dictValue }}  + </el-radio> + </el-radio-group> + <!-- :label="item.dictValue"--> + </el-form-item> + </el-col> + </el-row> - <el-col :span="10"> - <el-form-item label="配送类型:" prop="serveType" label-width="100px"> - <!-- v-for="item in this.deliveryTypeData"--> - <el-radio-group v-model="form.deliveryType"> - <el-radio :label="'2'" :value="'2'">市配  </el-radio> - </el-radio-group> - </el-form-item> - </el-col> - </el-row> + <el-row> + <el-col :span="10"> + <el-form-item label="收件人电话:" prop="deliveryPhone" label-width="100px"> + <el-input v-model="form.deliveryPhone" placeholder="请输入收件人电话"/> + </el-form-item> + </el-col> - <el-row> - <el-col :span="10"> - <el-form-item label="代收运费:" prop="replaceFee" label-width="100px"> - <el-input v-model="form.replaceFee" :disabled="true" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="配送方式:" prop="serveType" label-width="100px"> - <!-- v-for="item in this.deliveryWayData"--> - <el-radio-group v-model="form.deliveryWay"> - <el-radio :label="'10'" :value="'10'">送货  </el-radio> - </el-radio-group> - </el-form-item> - </el-col> - </el-row> + <el-col :span="10"> + <el-form-item label="配送类型:" prop="serveType" label-width="100px"> + <!-- v-for="item in this.deliveryTypeData"--> + <el-radio-group v-model="form.deliveryType"> + <el-radio :label="'2'" :value="'2'">市配 </el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> - <el-row> - <!-- <el-col :span="10">--> - <!-- <el-form-item label="到付运费:" prop="collectFee" label-width="100px">--> - <!-- <el-input type="number" v-model="form.collectFee" :disabled="true"/>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :span="10"> - <el-form-item label="待收货款:" prop="collectionFee" label-width="100px"> - <el-input type="number" v-model="form.collectionFee" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="加  急:" prop="serveType" label-width="100px"> - <!-- v-for="item in this.deliveryWayData"--> - <el-radio-group v-model="form.isUrgent" v-for="item in this.whetherData"> - <el-radio :label="item.dictKey" :value="item.dictKey" - >{{ item.dictValue }}  - </el-radio> - </el-radio-group> - </el-form-item> - </el-col> + <el-row> + <el-col :span="10"> + <el-form-item label="代收运费:" prop="replaceFee" label-width="100px"> + <el-input v-model="form.replaceFee" :disabled="true"/> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="配送方式:" prop="serveType" label-width="100px"> + <!-- v-for="item in this.deliveryWayData"--> + <el-radio-group v-model="form.deliveryWay"> + <el-radio :label="'10'" :value="'10'">送货 </el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> - <el-col :span="10"> - <el-form-item label="其他费用:" prop="collectFee" label-width="100px"> - <el-input v-model="form.otherFee" placeholder="请输入其他费用" /> - </el-form-item> - </el-col> - <!-- <el-col :span="10">--> - <!-- <el-form-item label="服务类型:" prop="serveType" label-width="120px">--> - <!-- <el-checkbox-group v-model="serveType" v-for="item in this.addvalueServeTypeData">--> - <!-- <el-checkbox :label="item.dictKey"--> - <!-- :value="item.dictKey">{{item.dictValue}} --> - <!-- </el-checkbox>--> - <!-- </el-checkbox-group>--> - <!-- </el-form-item>--> - <!-- </el-col>--> - <el-col :span="10"> - <el-form-item label="备注:" prop="orderSource" label-width="100px" style="width: 100%"> - <el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="form.remarks"> - </el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> + <el-row> + <!-- <el-col :span="10">--> + <!-- <el-form-item label="到付运费:" prop="collectFee" label-width="100px">--> + <!-- <el-input type="number" v-model="form.collectFee" :disabled="true"/>--> + <!-- </el-form-item>--> + <!-- </el-col>--> + <el-col :span="10"> + <el-form-item label="待收货款:" prop="collectionFee" label-width="100px"> + <el-input type="number" v-model="form.collectionFee"/> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="加  急:" prop="serveType" label-width="100px"> + <!-- v-for="item in this.deliveryWayData"--> + <el-radio-group v-model="form.isUrgent" v-for="item in this.whetherData"> + <el-radio :label="item.dictKey" :value="item.dictKey" + >{{ item.dictValue }}  + </el-radio> + </el-radio-group> + </el-form-item> + </el-col> - <el-tabs type="border-card"> - <el-tab-pane label="订单"> - <el-button type="primary" link @click="handleAddOrder">新 增</el-button> - <tablecmt - :columnList="columnList" - :tableData="orderData" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > - <template #default="slotProps"> - <el-text - type="primary" - link - icon="el-icon-view" - @click="viewStockArticlePackage(slotProps.scope.row)" - >查看包件</el-text - > - <el-text - type="primary" - link - icon="el-icon-edit" - @click="removeStockArticle(slotProps.scope.row)" - >移除</el-text - > - </template> - </tablecmt> - <!-- <el-table ref="table" - v-loading="loading" - :data="orderData" - :height="height" - style="width: 100%" - :border="option.border"> - <el-table-column v-if="option.index" label="序号" type="index" width="80px" - align="center"></el-table-column> - <template v-for="(item,index) in option.columnReservations"> - <el-table-column v-if="item.hide!==true" - :prop="item.prop" - :label="item.label" - :width="item.width" - :key="index"> + <el-col :span="10"> + <el-form-item label="其他费用:" prop="collectFee" label-width="100px"> + <el-input v-model="form.otherFee" placeholder="请输入其他费用"/> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="服务类型:" prop="serveType" label-width="120px"> + <el-checkbox-group v-model="serveType" v-for="item in this.addvalueServeTypeData"> + <el-checkbox :label="item.dictKey" + :value="item.dictKey">{{item.dictValue}}  + </el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="备注:" prop="orderSource" label-width="100px" style="width: 100%"> + <el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="form.remarks"> + </el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> - </el-table-column> + <el-tabs type="border-card"> + <el-tab-pane label="订单"> + <el-button type="primary" link @click="handleAddOrder">新 增</el-button> + <tablecmt + :columnList="columnList" + :tableData="orderData" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <el-text + type="primary" + link + icon="el-icon-view" + @click="viewStockArticlePackage(slotProps.scope.row)" + >查看包件 + </el-text + > + <el-text + type="primary" + link + icon="el-icon-edit" + @click="removeStockArticle(slotProps.scope.row)" + >移除 + </el-text + > </template> - <el-table-column prop="menu" label="操作" :width="220" align="center"> - <template #="{row}"> - <el-button type="primary" link icon="el-icon-view" - @click="viewStockArticlePackage(row)">查看包件 - </el-button> - <el-button type="primary" link icon="el-icon-edit" @click="removeStockArticle(row)">移除 - </el-button> + </tablecmt> + <!-- <el-table ref="table" + v-loading="loading" + :data="orderData" + :height="height" + style="width: 100%" + :border="option.border"> + <el-table-column v-if="option.index" label="序号" type="index" width="80px" + align="center"></el-table-column> + <template v-for="(item,index) in option.columnReservations"> + <el-table-column v-if="item.hide!==true" + :prop="item.prop" + :label="item.label" + :width="item.width" + :key="index"> - </template> - </el-table-column> - </el-table> --> - </el-tab-pane> + </el-table-column> + </template> + <el-table-column prop="menu" label="操作" :width="220" align="center"> + <template #="{row}"> + <el-button type="primary" link icon="el-icon-view" + @click="viewStockArticlePackage(row)">查看包件 + </el-button> + <el-button type="primary" link icon="el-icon-edit" @click="removeStockArticle(row)">移除 + </el-button> - <el-tab-pane label="库存品"> - <el-button link @click="handleAddInventory">新 增</el-button> - <tablecmt - :columnList="stockcolumnList" - :tableData="inventoryData" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > - <template #default="slotProps"> -<!-- <el-text--> -<!-- v-if="inventoryShow"--> -<!-- type="primary"--> -<!-- link--> -<!-- icon="el-icon-edit"--> -<!-- @click="showStockListEdit(slotProps.scope.row)"--> -<!-- >查看详情</el-text>--> + </template> + </el-table-column> + </el-table> --> + </el-tab-pane> - <el-text - type="primary" - link - icon="el-icon-edit" - @click="removeStockList(slotProps.scope.row)" - >移除</el-text - > + <el-tab-pane label="库存品"> + <el-button link @click="handleAddInventory">新 增</el-button> + <tablecmt + :columnList="stockcolumnList" + :tableData="inventoryData" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <!-- <el-text--> + <!-- v-if="inventoryShow"--> + <!-- type="primary"--> + <!-- link--> + <!-- icon="el-icon-edit"--> + <!-- @click="showStockListEdit(slotProps.scope.row)"--> + <!-- >查看详情</el-text>--> - </template> - </tablecmt> - </el-tab-pane> - </el-tabs> - <el-form-item style="margin-left: 45%; margin-top: 5px"> - <el-button type="primary" icon="el-icon-circle-close" @click="onSubmit" - >提交(配送订单预约)</el-button - > - <el-button icon="el-icon-circle-close" @click="$router.go(-1)">返 回</el-button> - </el-form-item> + <el-text + type="primary" + link + icon="el-icon-edit" + @click="removeStockList(slotProps.scope.row)" + >移除 + </el-text + > - <el-dialog v-model="orderShow" title="在库订单信息" width="100%" :model="addvalue"> - <!-- :before-close="handleClose"--> - <el-form :inline="true" :model="query"> - <el-form-item label="订单自编号:"> - <el-input v-model="query.orderCode" placeholder="请输入商场名称"></el-input> - </el-form-item> - <el-form-item label="商场名称:"> - <el-input v-model="query.mallName" placeholder="请输入货物名称"></el-input> - </el-form-item> - <el-form-item label="货物名称:"> - <el-input v-model="query.descriptionGoods" placeholder="请输入货物名称"></el-input> - </el-form-item> - <el-form-item label="品牌:"> - <el-input v-model="query.brand" placeholder="请输入品牌"></el-input> - </el-form-item> - <el-form-item label="顾客姓名:"> - <el-input v-model="query.customerName" placeholder="请输入顾客姓名"></el-input> - </el-form-item> - <el-form-item label="顾客电话:"> - <el-input v-model="query.customerTelephone" placeholder="请输入顾客电话"></el-input> - </el-form-item> + </template> + </tablecmt> + </el-tab-pane> + </el-tabs> + <el-form-item style="margin-left: 45%; margin-top: 5px"> + <el-button type="primary" icon="el-icon-circle-close" @click="onSubmit" + >提交(配送订单预约) + </el-button + > + <el-button icon="el-icon-circle-close" @click="$router.go(-1)">返 回</el-button> + </el-form-item> - <!-- 查询按钮 --> - <el-form-item> - <el-button type="primary" icon="el-icon-search" @click="searchStockArticle" - >搜 索</el-button - > - <el-button icon="el-icon-delete" @click="stockArticleSearchReset()">清 空</el-button> - </el-form-item> - </el-form> - <tablecmt - :columnList="stockArtcolumnList" - :tableData="stockArticleInfo" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > - <template #default="slotProps"> - <el-text - type="primary" - link - icon="el-icon-edit" - @click="removeStockList(slotProps.scope.row)" - >移除</el-text - > - </template> - </tablecmt> + <el-dialog v-model="orderShow" title="在库订单信息" width="100%" :model="addvalue"> + <!-- :before-close="handleClose"--> + <el-form :inline="true" :model="query"> + <el-form-item label="订单自编号:"> + <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input> + </el-form-item> + <el-form-item label="商场名称:"> + <el-input v-model="query.mallName" placeholder="请输入商场名称"></el-input> + </el-form-item> + <el-form-item label="货物名称:"> + <el-input v-model="query.descriptionGoods" placeholder="请输入货物名称"></el-input> + </el-form-item> + <el-form-item label="品牌:"> + <el-input v-model="query.brand" placeholder="请输入品牌"></el-input> + </el-form-item> + <el-form-item label="顾客姓名:"> + <el-input v-model="query.customerName" placeholder="请输入顾客姓名"></el-input> + </el-form-item> + <el-form-item label="顾客电话:"> + <el-input v-model="query.customerTelephone" placeholder="请输入顾客电话"></el-input> + </el-form-item> - <el-row> - <div class="avue-crud__pagination" style="width: 100%"> - <!-- 分页模块 --> - <el-pagination - align="right" - background - @size-change="sizeOrderChange" - @current-change="currentOrderChange" - :current-page="page.currentPage" - :page-sizes="[30, 50, 80, 120]" - :page-size="page.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="page.total" - > - </el-pagination> - </div> - </el-row> - <el-form-item style="margin-left: 45%; margin-top: 5px"> - <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitOrder" - >提交(订单)</el-button - > - <el-button icon="el-icon-circle-close" @click="orderShow = false">返 回</el-button> - </el-form-item> - </el-dialog> + <!-- 查询按钮 --> + <el-form-item> + <el-button type="primary" icon="el-icon-search" @click="searchStockArticle" + >搜 索 + </el-button + > + <el-button icon="el-icon-delete" @click="stockArticleSearchReset()">清 空</el-button> + </el-form-item> + </el-form> + <tablecmt + :columnList="stockArtcolumnList" + :tableData="stockArticleInfo" + :loading="loading" + @inputTxt="inputscStockArtic" + @timeCheck="timescStockArtic" + @btnCheck="btnscStockArtic" + @selectCheck="selectscStockArtic" + @selection="selectionChange" + > + <template #default="slotProps"> + <el-text + type="primary" + link + icon="el-icon-edit" + @click="removeStockList(slotProps.scope.row)" + >移除 + </el-text + > + </template> + </tablecmt> - <el-dialog v-model="stockListShow" title="库存品信息" width="100%"> - <!-- :before-close="handleClose"--> - <el-form :inline="true" :model="query"> - <el-form-item label="商场名称:"> - <el-input v-model="query.marketName" placeholder="请输入服务类型"></el-input> - </el-form-item> - <el-form-item label="物料名称:"> - <el-input v-model="query.descriptionGoods" placeholder="请输入服务类型"></el-input> - </el-form-item> - <el-form-item label="商场编码:"> - <el-input v-model="query.marketCode" placeholder="请输入服务类型"></el-input> - </el-form-item> - <el-form-item label="订单自编号:"> - <el-input v-model="query.orderCode" placeholder="请输入服务类型"></el-input> - </el-form-item> - <el-form-item label="品牌:"> - <el-input v-model="query.brand" placeholder="请输入服务类型"></el-input> - </el-form-item> - <!-- 查询按钮 --> - <el-form-item> - <el-button type="primary" icon="el-icon-search" @click="searchStockList" - >搜 索</el-button - > - <el-button icon="el-icon-delete" @click="stockListSearchReset()">清 空</el-button> - </el-form-item> - </el-form> - <tablecmt - :columnList="inventoryInfocolumnList" - :tableData="inventoryInfo" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionInventoryChange" - > - <template #default="slotProps"> - <el-text - type="primary" - link - icon="el-icon-edit" - @click="removeStockList(slotProps.scope.row)" - >移除</el-text - > - </template> - </tablecmt> - <el-form-item style="margin-left: 45%; margin-top: 5px"> - <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitInventory" - >提交(库存品)</el-button - > - <el-button icon="el-icon-circle-close" @click="stockListShow = false">返 回</el-button> - </el-form-item> - </el-dialog> + <el-row> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeOrderChange" + @current-change="currentOrderChange" + :current-page="page.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total" + > + </el-pagination> + </div> + </el-row> + <el-form-item style="margin-left: 45%; margin-top: 5px"> + <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitOrder" + >提交(订单) + </el-button + > + <el-button icon="el-icon-circle-close" @click="orderShow = false">返 回</el-button> + </el-form-item> + </el-dialog> - <el-dialog v-model="isaddvalue" title="包件信息" width="100%" :model="addvalue"> - <!-- 列表模块 --> - <tablecmt - :columnList="columnParcels" - :tableData="packageData" - :checkselect="packageData" - :isselectfun="checkPackage" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionPackageChange" - > - <template #default="slotProps"> - <!-- <el-text - type="primary" - link - icon="el-icon-edit" - @click="removeStockList(slotProps.scope.row)" - >移除</el-text - > --> - </template> - </tablecmt> - <!-- <el-table - ref="packageList" - v-loading="loading" - @selection-change="selectionPackageChange" - :data="packageData" - :height="height" - style="width: 100%" - :border="option.border" - > - <el-table-column - type="selection" - v-if="option.selection" - :selectable="checkPackage" - align="center" - width="55" - ></el-table-column> - <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> - <el-table-column v-if="option.index" label="序号" type="index" width="60" align="center"> - </el-table-column> - <template v-for="(item, index) in option.columnParcels"> - <el-table-column - v-if="item.hide !== true" - :prop="item.prop" - :label="item.label" - :width="item.width" - :key="index" - > - </el-table-column> - </template> - <el-table-column prop="menu" label="操作" :width="220" align="center"> - <template #="{ row }"> - </template> - </el-table-column> - </el-table> --> - <el-form-item style="margin-left: 45%; margin-top: 5px"> - <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitPackage" - >提交(包件)</el-button - > - <el-button icon="el-icon-circle-close" @click="isaddvalue = false">返 回</el-button> - </el-form-item> - </el-dialog> + <el-dialog v-model="stockListShow" title="库存品信息" width="100%"> + <!-- :before-close="handleClose"--> + <el-form :inline="true" :model="query"> + <el-form-item label="商场名称:"> + <el-input v-model="query.marketName" placeholder="请输入商场名称"></el-input> + </el-form-item> + <el-form-item label="物料名称:"> + <el-input v-model="query.descriptionGoods" placeholder="请输入物料名称"></el-input> + </el-form-item> + <el-form-item label="商场编码:"> + <el-input v-model="query.marketCode" placeholder="请输入商场编码"></el-input> + </el-form-item> + <el-form-item label="订单自编号:"> + <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input> + </el-form-item> + <el-form-item label="品牌:"> + <el-input v-model="query.brand" placeholder="请输入品牌"></el-input> + </el-form-item> + <!-- 查询按钮 --> + <el-form-item> + <el-button type="primary" icon="el-icon-search" @click="searchStockList" + >搜 索 + </el-button + > + <el-button icon="el-icon-delete" @click="stockListSearchReset()">清 空</el-button> + </el-form-item> + </el-form> + <tablecmt + :columnList="inventoryInfocolumnList" + :tableData="inventoryInfo" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionInventoryChange" + > + <template #default="slotProps"> + <el-text + type="primary" + link + icon="el-icon-edit" + @click="removeStockList(slotProps.scope.row)" + >移除 + </el-text + > + </template> + </tablecmt> + <el-form-item style="margin-left: 45%; margin-top: 5px"> + <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitInventory" + >提交(库存品) + </el-button + > + <el-button icon="el-icon-circle-close" @click="stockListShow = false">返 回</el-button> + </el-form-item> + </el-dialog> + + <el-dialog v-model="isaddvalue" title="包件信息" width="100%" :model="addvalue"> + <!-- 列表模块 --> + <tablecmt + :columnList="columnParcels" + :tableData="packageData" + :checkselect="packageData" + :isselectfun="checkPackage" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionPackageChange" + > + <template #default="slotProps"> + <!-- <el-text + type="primary" + link + icon="el-icon-edit" + @click="removeStockList(slotProps.scope.row)" + >移除</el-text + > --> + </template> + </tablecmt> + <!-- <el-table + ref="packageList" + v-loading="loading" + @selection-change="selectionPackageChange" + :data="packageData" + :height="height" + style="width: 100%" + :border="option.border" + > + <el-table-column + type="selection" + v-if="option.selection" + :selectable="checkPackage" + align="center" + width="55" + ></el-table-column> + <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column> + <el-table-column v-if="option.index" label="序号" type="index" width="60" align="center"> + </el-table-column> + <template v-for="(item, index) in option.columnParcels"> + <el-table-column + v-if="item.hide !== true" + :prop="item.prop" + :label="item.label" + :width="item.width" + :key="index" + > + </el-table-column> + </template> + <el-table-column prop="menu" label="操作" :width="220" align="center"> + <template #="{ row }"> + </template> + </el-table-column> + </el-table> --> + <el-form-item style="margin-left: 45%; margin-top: 5px"> + <el-button type="primary" icon="el-icon-circle-close" @click="onSubmitPackage" + >提交(包件) + </el-button + > + <el-button icon="el-icon-circle-close" @click="isaddvalue = false">返 回</el-button> + </el-form-item> + </el-dialog> - <el-dialog - v-model="dialogVisible" - title="增值服务" - width="30%" - :model="addvalue" - :before-close="handleClose" - > - <el-form-item label="增值服务" prop="freightMark"> - <el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange"> - <el-checkbox - style="width: 100%; margin-bottom: 3%" - v-for="(item, index) in addvalueServeTypeData" - :key="item.dictKey" - :label="item.dictKey" - >{{ item.dictValue }} - <span v-if="index === 0 || index === 6 || index === 2 || index === 4" - > 件数: + <el-dialog + v-model="dialogVisible" + title="增值服务" + width="30%" + :model="addvalue" + :before-close="handleClose" + > + <el-form-item label="增值服务" prop="freightMark"> + <el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange"> + <el-checkbox + style="width: 100%; margin-bottom: 3%" + v-for="(item, index) in addvalueServeTypeData" + :key="item.dictKey" + :label="item.dictKey" + >{{ item.dictValue }} + <span v-if="index === 0 || index === 6 || index === 2 || index === 4" + > 件数: <el-input - type="number" - v-model="item.f" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 1)" - style="width: 10%; border: none; border-bottom: 2px solid #eee" + type="number" + v-model="item.f" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 1)" + style="width: 10%; border: none; border-bottom: 2px solid #eee" /> </span> - <span v-if="index === 1" - >公里: + <span v-if="index === 1" + >公里: <el-input - type="primary" - v-model="item.a" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 2)" - style="width: 10%; border: none; border-bottom: 2px solid #eee" + type="primary" + v-model="item.a" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 2)" + style="width: 10%; border: none; border-bottom: 2px solid #eee" /> </span> - <span v-if="index === 3" - >距离: + <span v-if="index === 3" + >距离: <el-input - type="number" - v-model="item.b" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 3)" - style="width: 10%; border: none; border-bottom: 2px solid #eee" + type="number" + v-model="item.b" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 3)" + style="width: 10%; border: none; border-bottom: 2px solid #eee" /> </span> - <span v-if="index === 5" - >人数: + <span v-if="index === 5" + >人数: <el-input - type="number" - v-model="item.c" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 4)" - style="width: 10%; border: none; border-bottom: 2px solid #eee" + type="number" + v-model="item.c" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 4)" + style="width: 10%; border: none; border-bottom: 2px solid #eee" /> </span> - <span v-if="index === 0" - >楼层: + <span v-if="index === 0" + >楼层: <el-input - type="number" - v-model="item.d" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 5)" - style="width: 10%; border: none; border-bottom: 2px solid #eee" + type="number" + v-model="item.d" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 5)" + style="width: 10%; border: none; border-bottom: 2px solid #eee" /> </span> - <span v-if="item" - >预计费用: + <span v-if="item" + >预计费用: <el-input - type="number" - v-model="item.e" - :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" - @change="textbox($event, index, 6)" - style="width: 20%; border: none; border-bottom: 2px solid #eee" + type="number" + v-model="item.e" + :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1" + @change="textbox($event, index, 6)" + style="width: 20%; border: none; border-bottom: 2px solid #eee" /> </span> - </el-checkbox> - </el-checkbox-group> - </el-form-item> - <template #footer> + </el-checkbox> + </el-checkbox-group> + </el-form-item> + <template #footer> <span class="dialog-footer"> <el-button @click="dialogVisible = false">取消</el-button> <el-button type="primary" @click="aaa"> 确定(增值服务) </el-button> </span> - </template> - </el-dialog> - </div> - </basic-container> + </template> + </el-dialog> + </div> + </basic-container> </template> <script> -import { - autonomouslySave, - update, - remove, - getReservationInfo, -} from '@/api/distribution/distributionReservation'; -import { - getStockArticleList, - selectStockArticleList, - selectStockArticleInfoList, - selectUpdateAvailableStockArticle, -} from '@/api/distribution/distributionStockArticle'; -import { getDetailDelivery } from '@/api/distribution/distributionDelivery'; -import { addIncrement } from '@/api/distribution/distributionStockArticle'; -import { getInventoryList,selectInventoryDetail } from '@/api/distribution/distributionStockList'; + import { + autonomouslySave, + update, + remove, + getReservationInfo + } from '@/api/distribution/distributionReservation'; + import { + getStockArticleList, + selectStockArticleList, + selectStockArticleInfoList, + selectUpdateAvailableStockArticle + } from '@/api/distribution/distributionStockArticle'; + import { getDetailDelivery } from '@/api/distribution/distributionDelivery'; + import { addIncrement } from '@/api/distribution/distributionStockArticle'; + import { getInventoryList, selectInventoryDetail } from '@/api/distribution/distributionStockList'; -import option from '@/option/distribution/distributionStockArticle'; -import { mapGetters } from 'vuex'; -import { getDictionaryBiz } from '@/api/system/dict'; + import option from '@/option/distribution/distributionStockArticle'; + import { mapGetters } from 'vuex'; + import { getDictionaryBiz } from '@/api/system/dict'; + import dayjs from 'dayjs'; -export default { - data() { - return { - columnList: [ - { - prop: 'serviceNumber', - label: '服务号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderCode', - label: '订单自编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'mallName', - label: '商场名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeName', - label: '门店名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'descriptionGoods', - label: '货物名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'warehouse', - label: '仓库', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderStatusName', - label: '订单状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeTime', - label: '在库时间', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'totalNumber', - label: '订单总件数', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'handQuantity', - label: '在库件数', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerName', - label: '顾客名字', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerTelephone', - label: '顾客电话', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerAddress', - label: '顾客地址', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: '', - label: '操作', - type: 6, - values: '', - width: '150', - checkarr: [], - fixed: 'right', - hide: true, - }, - ], - stockcolumnList: [ - { - prop: 'orderCode', - label: '订单自编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'marketCode', - label: '商场编码', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'marketName', - label: '商场名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeCode', - label: '门店编码', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeName', - label: '门店名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoNumber', - label: '货物编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'materialId', - label: '物料ID', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'descriptionGoods', - label: '物料名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoUnit', - label: '物料单位', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'category', - label: '品分类', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'warehouseName', - label: '仓库名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'quantityStock', - label: '库存数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'applyNum', - label: '可用数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'quantityOccupied', - label: '冻结数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'outboundQuantity', - label: '出库数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'brand', - label: '品牌', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoNumber', - label: '规格', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoUnit', - label: '单位', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'reservationNum', - label: '预约数量', - type: 10, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: '', - label: '操作', - type: 6, - values: '', - width: '150', - checkarr: [], - fixed: 'right', - hide: true, - }, - ], - stockArtcolumnList: [ - { - prop: '', - label: '序号', - type: 0, - values: '', - width: '50', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderCode', - label: '订单自编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'mallName', - label: '商场名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeName', - label: '门店名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'descriptionGoods', - label: '货物名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'reservationStatusName', - label: '预约状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'freezeStatusName', - label: '冻结状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'warehouse', - label: '仓库', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'warehouseEntryTime', - label: '入库时间', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeTime', - label: '在库时间', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'totalNumber', - label: '订单总件数', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'handQuantity', - label: '在库件数', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'completeSetName', - label: '是否齐套', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'brand', - label: '品牌', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerName', - label: '顾客名字', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerTelephone', - label: '顾客电话', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'customerAddress', - label: '顾客地址', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - ], - inventoryInfocolumnList: [ - { - prop: '', - label: '序号', - type: 0, - values: '', - width: '50', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderCode', - label: '订单自编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'marketCode', - label: '商场编码', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'marketName', - label: '商场名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeCode', - label: '门店编码', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'storeName', - label: '门店名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoNumber', - label: '货物编号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'materialId', - label: '物料ID', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'descriptionGoods', - label: '物料名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoUnit', - label: '物料单位', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'category', - label: '品分类', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'warehouseName', - label: '仓库名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'quantityStock', - label: '库存数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'applyNum', - label: '可用数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'quantityOccupied', - label: '冻结数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'outboundQuantity', - label: '出库数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'brand', - label: '品牌', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoNumber', - label: '规格', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'cargoUnit', - label: '单位', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'reservationNum', - label: '预约数量', - type: 10, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - ], - columnParcels: [ - { - prop: '', - label: '序号', - type: 0, - values: '', - width: '50', - checkarr: [], - fixed: true, - sortable: true, - head: false, - }, - { - prop: 'warehouse', - label: '仓库', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'waybillNumber', - label: '运单号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageStatusName', - label: '包件状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageFreezeStatusName', - label: '冻结状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageGroundingStatusName', - label: '上架状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageStockupStatusName', - label: '备货状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageReservationStatusName', - label: '预约状态', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'orderPackageCode', - label: '包条码', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'goodsAllocation', - label: '货位信息', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'pallet', - label: '所在托盘', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'firsts', - label: '一级品', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'second', - label: '二级品', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'thirdProduct', - label: '三级品', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'materialName', - label: '物料名称', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'quantity', - label: '数量', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }, - { - prop: 'trainNumber', - label: '客户车次号', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: true, - sortable: true, - head: false, - }, - // { - // prop: '', - // label: '操作', - // type: 6, - // values: '', - // width: '150', - // checkarr: [], - // fixed: 'right', - // hide: true, - // }, - ], - height: 0, - // 弹框标题 - title: '', - // 是否展示弹框 - box: false, - // 是否显示查询 - search: true, - // 加载中 - loading: true, - // 是否为查看模式 - view: false, - // 查询信息 - query: {}, - // 分页信息 - page: { - currentPage: 1, - pageSize: 30, - total: 40, - }, - // 表单数据 - form: {}, - // 选择行 - selectionList: [], - // 表单配置 - option: option, - // 表单列表 - data: [], - //增值服务弹窗 - dialogVisible: false, - textarea: '', - //增值服务字典列表 - addvalueServeTypeData: [], - //配送方式字典列表 - deliveryWayData: [], - whetherData: [], - //配送类型字典列表 - deliveryTypeData: [], - //增值服务列表 - addvalueServeType: [], - //增值表单输入框对象 - addvalue: {}, - costList: [], //字典 - //增值服务对象 - addvalueObj: {}, - //费用列表 - feeList: [], - //楼层 - floorList: [], - //订单行数据 - orderInfo: {}, - //服务类型 - serveType: [], - //增加订单弹窗 - orderShow: false, - //在库订单信息 - stockArticleInfo: [], - //库存品信息 - inventoryInfo: [], - //时段 - periodOfTimeData: [], - //路由订单编号 - orderIds: '', - //预约编号 - reservationId: '', - inventoryData: [], - orderData: [], - stockListShow: false, - isaddvalue: false, - packageData: [], - packageList: [], - inventoryList: [], - orderList: [], - inventoryTable: [], - inventoryShow:false, - reservationRules: { - consignee: [{ required: true, message: '请填写收货人名称!!!', trigger: 'change' }], - deliveryAddress: [{ required: true, message: '请填写收货人地址!!!', trigger: 'blur' }], - deliveryPhone: [{ required: true, message: '请填写收货人电话!!!', trigger: 'change' }], - // enableStatus: [ - // { required: true, message: '请选择启用状态!', trigger: 'change' } - // ], - }, - obj: {}, - }; - }, - created() { - this.$watch( - () => this.$route.params, - () => { - this.fetchData(); - }, - // 组件创建完后获取数据, - // 此时 data 已经被 observed 了 - { immediate: true } - ); - }, - mounted() { - this.init(); - let arr = []; - this.option.columnParcels.map(item => { - if (!item.hide) { - arr.push({ - prop: item.prop, - label: item.label, - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - head: false, - }); - } - }); - console.log(JSON.stringify(arr)); - this.onLoad(this.page); - this.getDictionary(); - }, - watch: { - '$route.query.reservationId': { - handler(newVal, oldVal) { - console.log(newVal, oldVal); - this.fetchData(); - this.onLoad(this.page); - }, - deep: true, - immediate: true, - }, - }, - computed: { - ...mapGetters(['permission']), - ids() { - let ids = []; - this.selectionList.forEach(ele => { - ids.push(ele.id); - }); - return ids.join(','); - }, - }, - methods: { - fetchData() { - this.error = this.post = null; - this.loading = true; - if (this.$route.query.id) { - this.orderIds = this.$route.query.id; - } - if (this.$route.query.reservationId) { - this.reservationId = this.$route.query.reservationId; - } - this.loading = false; + export default { + data() { + return { + columnList: [ + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'serviceNumber', + label: '服务号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'mallName', + label: '商场名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeName', + label: '门店名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'descriptionGoods', + label: '货物名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'warehouse', + label: '仓库', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderStatusName', + label: '订单状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeTime', + label: '在库时间', + type: 5, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'totalNumber', + label: '订单总件数', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'handQuantity', + label: '在库件数', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerName', + label: '顾客名字', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerTelephone', + label: '顾客电话', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerAddress', + label: '顾客地址', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '150', + checkarr: [], + fixed: 'right', + hide: true + } + ], + stockcolumnList: [ + { + prop: 'orderCode', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'marketCode', + label: '商场编码', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'marketName', + label: '商场名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeCode', + label: '门店编码', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeName', + label: '门店名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoNumber', + label: '货物编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'materialId', + label: '物料ID', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'descriptionGoods', + label: '物料名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoUnit', + label: '物料单位', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'category', + label: '品分类', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'warehouseName', + label: '仓库名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'quantityStock', + label: '库存数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'applyNum', + label: '可用数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'quantityOccupied', + label: '冻结数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'outboundQuantity', + label: '出库数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'brand', + label: '品牌', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoNumber', + label: '规格', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoUnit', + label: '单位', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'reservationNum', + label: '预约数量', + type: 10, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '150', + checkarr: [], + fixed: 'right', + hide: true + } + ], + stockArtcolumnList: [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: '50', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'mallName', + label: '商场名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeName', + label: '门店名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'descriptionGoods', + label: '货物名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'reservationStatusName', + label: '预约状态', + type: 3, + values: '', + width: '150', + checkarr: [ + { + label: '未预约', + value: '10' + }, + { + label: '部分预约', + value: '20' + }, + ], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'freezeStatusName', + label: '冻结状态', + type: 3, + values: '', + width: '150', + checkarr: [ + { + label: '未冻结', + value: '10' + }, + { + label: '部分冻结', + value: '20' + }, + { + label: '已冻结', + value: '30' + } + ], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'warehouse', + label: '仓库', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'warehouseEntryTime', + label: '入库时间', + type: 4, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeTime', + label: '在库时间', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'totalNumber', + label: '订单总件数', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'handQuantity', + label: '在库件数', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'completeSetName', + label: '是否齐套', + type: 3, + values: '', + width: '150', + checkarr: [ + { + label: '否', + value: '1' + }, + { + label: '是', + value: '2' + }, + ], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'brand', + label: '品牌', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerName', + label: '顾客名字', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerTelephone', + label: '顾客电话', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'customerAddress', + label: '顾客地址', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'allocation', + label: '库位信息', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'trays', + label: '托盘信息', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + } + ], + inventoryInfocolumnList: [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: '50', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderCode', + label: '订单自编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'marketCode', + label: '商场编码', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'marketName', + label: '商场名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeCode', + label: '门店编码', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'storeName', + label: '门店名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoNumber', + label: '货物编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'materialId', + label: '物料ID', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'descriptionGoods', + label: '物料名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoUnit', + label: '物料单位', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'category', + label: '品分类', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'warehouseName', + label: '仓库名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'quantityStock', + label: '库存数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'applyNum', + label: '可用数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'quantityOccupied', + label: '冻结数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'outboundQuantity', + label: '出库数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'brand', + label: '品牌', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoNumber', + label: '规格', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'cargoUnit', + label: '单位', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'reservationNum', + label: '预约数量', + type: 10, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + } + ], + columnParcels: [ + { + prop: '', + label: '序号', + type: 0, + values: '', + width: '50', + checkarr: [], + fixed: true, + sortable: true, + head: false + }, + { + prop: 'warehouse', + label: '仓库', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageStatusName', + label: '包件状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageFreezeStatusName', + label: '冻结状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageGroundingStatusName', + label: '上架状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageStockupStatusName', + label: '备货状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageReservationStatusName', + label: '预约状态', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'orderPackageCode', + label: '包条码', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'goodsAllocation', + label: '货位信息', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'pallet', + label: '所在托盘', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'firsts', + label: '一级品', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'second', + label: '二级品', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'thirdProduct', + label: '三级品', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'materialName', + label: '物料名称', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'quantity', + label: '数量', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }, + { + prop: 'trainNumber', + label: '客户车次号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: true, + sortable: true, + head: false + } + // { + // prop: '', + // label: '操作', + // type: 6, + // values: '', + // width: '150', + // checkarr: [], + // fixed: 'right', + // hide: true, + // }, + ], + height: 0, + // 弹框标题 + title: '', + // 是否展示弹框 + box: false, + // 是否显示查询 + search: true, + // 加载中 + loading: true, + // 是否为查看模式 + view: false, + // 查询信息 + query: {}, + // 分页信息 + page: { + currentPage: 1, + pageSize: 30, + total: 40 + }, + // 表单数据 + form: {}, + // 选择行 + selectionList: [], + // 表单配置 + option: option, + // 表单列表 + data: [], + //增值服务弹窗 + dialogVisible: false, + textarea: '', + //增值服务字典列表 + addvalueServeTypeData: [], + //配送方式字典列表 + deliveryWayData: [], + whetherData: [], + //配送类型字典列表 + deliveryTypeData: [], + //增值服务列表 + addvalueServeType: [], + //增值表单输入框对象 + addvalue: {}, + costList: [], //字典 + //增值服务对象 + addvalueObj: {}, + //费用列表 + feeList: [], + //楼层 + floorList: [], + //订单行数据 + orderInfo: {}, + //服务类型 + serveType: [], + //增加订单弹窗 + orderShow: false, + //在库订单信息 + stockArticleInfo: [], + //库存品信息 + inventoryInfo: [], + //时段 + periodOfTimeData: [], + //路由订单编号 + orderIds: '', + //预约编号 + reservationId: '', + inventoryData: [], + orderData: [], + stockListShow: false, + isaddvalue: false, + packageData: [], + packageList: [], + inventoryList: [], + orderList: [], + inventoryTable: [], + inventoryShow: false, + reservationRules: { + consignee: [{ required: true, message: '请填写收货人名称!!!', trigger: 'change' }], + deliveryAddress: [{ required: true, message: '请填写收货人地址!!!', trigger: 'blur' }], + deliveryPhone: [{ required: true, message: '请填写收货人电话!!!', trigger: 'change' }] + // enableStatus: [ + // { required: true, message: '请选择启用状态!', trigger: 'change' } + // ], + }, + obj: {} + }; }, - init() { - this.height = this.setPx(document.body.clientHeight - 340); + created() { + this.$watch( + () => this.$route.params, + () => { + this.fetchData(); + }, + // 组件创建完后获取数据, + // 此时 data 已经被 observed 了 + { immediate: true } + ); }, - aaa() { - let addvalueInfos = []; - this.form.addvalueType.forEach((item, index) => { - let addvalueInfo = {}; - addvalueInfo.addvalueId = item; - if (item == 1 || item == 3 || item == 5 || item == 7) { - addvalueInfo.number = this.costList[item]; - } - if (item == 2) { - addvalueInfo.kilometer = this.costList[item]; - } - if (item == 4) { - addvalueInfo.distance = this.costList[item]; - } - if (item == 6) { - addvalueInfo.peopleNum = this.costList[item]; - } - if (this.floorList.length > 1) { - addvalueInfo.floor = this.floorList[1]; - this.floorList = []; + mounted() { + this.init(); + let arr = []; + this.option.columnParcels.map(item => { + if (!item.hide) { + arr.push({ + prop: item.prop, + label: item.label, + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false + }); } - addvalueInfo.fee = this.feeList[item]; - addvalueInfos.push(addvalueInfo); - }); - let params = {}; - params.id = this.orderInfo.id; - params.addvalue = addvalueInfos; - params.relatedId = 1; - console.log('params>>>>>>>>>>>>', params); - addIncrement(params).then(res => { - this.dialogVisible = false; - this.$message({ - type: 'success', - message: '操作成功!', - }); }); + console.log(JSON.stringify(arr)); this.onLoad(this.page); + this.getDictionary(); }, - //查询出所有的市配订单 - handleAddOrder() { - this.loading = true; - //这里只需要对订单进行正常的搜索即可 - this.onLoadOrder(this.page); - this.loading = false; - this.orderShow = true; + watch: { + '$route.query.reservationId': { + handler(newVal, oldVal) { + console.log(newVal, oldVal); + this.fetchData(); + this.onLoad(this.page); + }, + deep: true, + immediate: true + } }, - checkOrder(row, index) { - if (row.freezeStatus === '30' || row.freezeStatusName === '已冻结') { - return false; - } else { - return true; + computed: { + ...mapGetters(['permission']), + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(','); } - return false; }, - handleAddInventory() { - let page = this.page; - let params = {}; - this.query.serviceType = '2'; - getInventoryList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then( - res => { - const inventoryList = res.data.data; - inventoryList.records.forEach(item => { - item.reservationNum = '0'; - item.applyNum = item.quantityStock - item.quantityOccupied; + methods: { + fetchData() { + this.error = this.post = null; + this.loading = true; + if (this.$route.query.id) { + this.orderIds = this.$route.query.id; + } + if (this.$route.query.reservationId) { + this.reservationId = this.$route.query.reservationId; + } + this.loading = false; + }, + init() { + this.height = this.setPx(document.body.clientHeight - 340); + }, + aaa() { + let addvalueInfos = []; + this.form.addvalueType.forEach((item, index) => { + let addvalueInfo = {}; + addvalueInfo.addvalueId = item; + if (item == 1 || item == 3 || item == 5 || item == 7) { + addvalueInfo.number = this.costList[item]; + } + if (item == 2) { + addvalueInfo.kilometer = this.costList[item]; + } + if (item == 4) { + addvalueInfo.distance = this.costList[item]; + } + if (item == 6) { + addvalueInfo.peopleNum = this.costList[item]; + } + if (this.floorList.length > 1) { + addvalueInfo.floor = this.floorList[1]; + this.floorList = []; + } + addvalueInfo.fee = this.feeList[item]; + addvalueInfos.push(addvalueInfo); + }); + let params = {}; + params.id = this.orderInfo.id; + params.addvalue = addvalueInfos; + params.relatedId = 1; + console.log('params>>>>>>>>>>>>', params); + addIncrement(params).then(res => { + this.dialogVisible = false; + this.$message({ + type: 'success', + message: '操作成功!' }); - this.page.total = inventoryList.total; - this.inventoryInfo = inventoryList.records; - //存在库存品,需要将库存品进行回显勾选 - if (this.inventoryData) { - this.inventoryInfo.forEach((item, index) => { - this.inventoryData.forEach(inventory => { - if (item.id === inventory.id) { - item = inventory; - this.$nextTick(() => { - this.$refs.inventoryTable.toggleRowSelection(this.inventoryInfo[index], true); - }); - } - }); + }); + this.onLoad(this.page); + }, + //查询出所有的市配订单 + handleAddOrder() { + this.loading = true; + //这里只需要对订单进行正常的搜索即可 + this.onLoadOrder(this.page); + this.loading = false; + this.orderShow = true; + }, + checkOrder(row, index) { + if (row.freezeStatus === '30' || row.freezeStatusName === '已冻结') { + return false; + } else { + return true; + } + return false; + }, + handleAddInventory() { + let page = this.page; + let params = {}; + this.query.serviceType = '2'; + getInventoryList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then( + res => { + const inventoryList = res.data.data; + inventoryList.records.forEach(item => { + item.reservationNum = '0'; + item.applyNum = item.quantityStock - item.quantityOccupied; }); + this.page.total = inventoryList.total; + this.inventoryInfo = inventoryList.records; + //存在库存品,需要将库存品进行回显勾选 + if (this.inventoryData) { + this.inventoryInfo.forEach((item, index) => { + this.inventoryData.forEach(inventory => { + if (item.id === inventory.id) { + item = inventory; + this.$nextTick(() => { + this.$refs.inventoryTable.toggleRowSelection(this.inventoryInfo[index], true); + }); + } + }); + }); + } + console.log('------------->', this.inventoryData); + this.loading = false; + this.selectionClear(); } - console.log('------------->', this.inventoryData); - this.loading = false; - this.selectionClear(); + ); + this.query = {}; + this.inventoryList = []; + this.stockListShow = true; + }, + handleCheckedCitiesChange(value) { + if (value) { + this.form.addvalueType = value; } - ); - this.query = {}; - this.inventoryList = []; - this.stockListShow = true; - }, - handleCheckedCitiesChange(value) { - if (value) { - this.form.addvalueType = value; - } - console.log('>>>>>', this.form); - if (value.length < 1) { - this.costList = []; - this.costListName = []; - } - this.deliveryWayData.forEach(i => { - if (value.includes(i.dictKey)) { - console.log(i); - i.pitch = true; - this.costListName = value; + console.log('>>>>>', this.form); + if (value.length < 1) { + this.costList = []; + this.costListName = []; } - }); - }, - textbox(e, index, a) { - console.log('e,index', e, index, a); - if (a === 6) { - this.feeList[index + 1] = e; - return; - } - if (a === 5) - if (index === 0 && a === 5) { - this.floorList[index + 1] = e; + this.deliveryWayData.forEach(i => { + if (value.includes(i.dictKey)) { + console.log(i); + i.pitch = true; + this.costListName = value; + } + }); + }, + textbox(e, index, a) { + console.log('e,index', e, index, a); + if (a === 6) { + this.feeList[index + 1] = e; return; } - this.costList[index + 1] = e; + if (a === 5) + if (index === 0 && a === 5) { + this.floorList[index + 1] = e; + return; + } + this.costList[index + 1] = e; - //费用列表 - }, - //数据字典数据获取 - getDictionary() { - getDictionaryBiz('addvalue_serve_type').then(res => { - this.addvalueServeTypeData = res.data.data; - }); - getDictionaryBiz('delivery_way').then(res => { - this.deliveryWayData = res.data.data; - }); - getDictionaryBiz('distribution_type').then(res => { - this.deliveryTypeData = res.data.data; - }); - getDictionaryBiz('period_of_time').then(res => { - this.periodOfTimeData = res.data.data; - }); - getDictionaryBiz('yes_no').then(res => { - this.whetherData = res.data.data; - }); - }, - addvalueServe(row) { - //查询订单的增值服务, - this.addvalueServeType = []; - this.addvalue = {}; - this.dialogVisible = true; - this.costList = []; - this.feeList = []; - this.floorList = []; - this.orderInfo = row; - }, - searchHide() { - this.search = !this.search; - }, - searchChange() { - this.onLoad(this.page); - }, - searchReset() { - this.query = {}; - this.page.currentPage = 1; - this.onLoad(this.page); - }, - viewStockArticlePackage(row) { - this.loading = true; - this.packageList = row.packageList; - this.obj = row; - console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', row); - if (this.reservationId) { - //这里就是编辑的数据回显问题 - let packageInfo = row.parcelListVOS; - // this.packageData = row.parcelListVOS; - let packageListData = this.packageData; - if (row.packageList) { - let packageListInfo = row.packageList; - packageInfo.forEach((item, index) => { - packageListInfo.forEach(p => { - if (item.id === p.id) { - this.$nextTick(() => { - // this.$refs.packageList.toggleRowSelection(this.packageData[index], true); - }); - } + //费用列表 + }, + //数据字典数据获取 + getDictionary() { + getDictionaryBiz('addvalue_serve_type').then(res => { + this.addvalueServeTypeData = res.data.data; + }); + getDictionaryBiz('delivery_way').then(res => { + this.deliveryWayData = res.data.data; + }); + getDictionaryBiz('distribution_type').then(res => { + this.deliveryTypeData = res.data.data; + }); + getDictionaryBiz('period_of_time').then(res => { + this.periodOfTimeData = res.data.data; + }); + getDictionaryBiz('yes_no').then(res => { + this.whetherData = res.data.data; + }); + }, + addvalueServe(row) { + //查询订单的增值服务, + this.addvalueServeType = []; + this.addvalue = {}; + this.dialogVisible = true; + this.costList = []; + this.feeList = []; + this.floorList = []; + this.orderInfo = row; + }, + searchHide() { + this.search = !this.search; + }, + searchChange() { + this.onLoad(this.page); + }, + searchReset() { + this.query = {}; + this.page.currentPage = 1; + this.onLoad(this.page); + }, + viewStockArticlePackage(row) { + this.loading = true; + this.packageList = row.packageList; + this.obj = row; + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', row); + if (this.reservationId) { + //这里就是编辑的数据回显问题 + let packageInfo = row.parcelListVOS; + // this.packageData = row.parcelListVOS; + let packageListData = this.packageData; + if (row.packageList) { + let packageListInfo = row.packageList; + packageInfo.forEach((item, index) => { + packageListInfo.forEach(p => { + if (item.id === p.id) { + this.$nextTick(() => { + // this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + }); + } + }); }); - }); - } else { - //新增订单,默认全选 - packageInfo.forEach((item, index) => { - this.$nextTick(() => { - this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + } else { + //新增订单,默认全选 + packageInfo.forEach((item, index) => { + this.$nextTick(() => { + this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + }); }); + } + this.packageData = row.parcelListVOS; + } else { + this.packageData = row.parcelListVOS; + //这里回显展示的效果应该是展示被其他预约单勾选的订单处于禁用勾选,冻结订单处于禁用无法勾选,其他默认为全选 + let data = row.parcelListVOS; + data.forEach((item, index) => { + if ( + item.orderPackageReservationStatusName === '已预约' || + item.orderPackageReservationStatus === '20' + ) { + // //这里就是表示包件此时状态处于已预约,表示该订单下的这个包件信息被其他的预约信息使用,此时应该处于勾选禁用状态 + this.$nextTick(() => { + this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + }); + console.log('::', item); + this.checkPackage(item, index); + } else if ( + item.orderPackageFreezeStatusName !== '已冻结' || + item.orderPackageFreezeStatus !== '20' + ) { + this.$nextTick(() => { + this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + }); + } }); } - this.packageData = row.parcelListVOS; - } else { - this.packageData = row.parcelListVOS; - //这里回显展示的效果应该是展示被其他预约单勾选的订单处于禁用勾选,冻结订单处于禁用无法勾选,其他默认为全选 - let data = row.parcelListVOS; - data.forEach((item, index) => { + this.isaddvalue = true; + this.loading = false; + }, + checkPackage(row, index) { + //区分编辑还是新增 + //编辑需要对这个预约单下的包件信息均可进行调整 + console.log(row, 'rowrowrowrowrowrow'); + if (!this.reservationId) { if ( - item.orderPackageReservationStatusName === '已预约' || - item.orderPackageReservationStatus === '20' + row.orderPackageReservationStatusName === '已预约' || + row.orderPackageReservationStatusName === '20' ) { - // //这里就是表示包件此时状态处于已预约,表示该订单下的这个包件信息被其他的预约信息使用,此时应该处于勾选禁用状态 - this.$nextTick(() => { - this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + return true; + } + } + if (row.orderPackageFreezeStatus === '10' || row.orderPackageFreezeStatusName === '已冻结') { + return false; + } else { + return true; + } + }, + //搜索订单 + searchStockArticle() { + let params = {}; + let page = this.page; + this.query.typeService = 2; + this.query.genre = 1; + // if (this.reservationId) { + // this.onLoadEditOrder(this.page); + // } else { + this.onLoadOrder(this.page); + // } + // selectStockArticleList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + // const data = res.data.data; + // data.records.forEach(item => { + // item.reservationNum = item.handQuantity; + // }); + // this.page.total = data.total; + // this.stockArticleInfo = data.records; + // this.loading = false; + // // this.selectionClear(); + // }); + }, + searchStockList() { + let params = {}; + let page = this.page; + this.query.serviceType = 2; + getInventoryList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then( + res => { + const inventoryList = res.data.data; + inventoryList.records.forEach(item => { + item.reservationNum = '0'; }); - console.log('::', item); - this.checkPackage(item, index); - } else if ( - item.orderPackageFreezeStatusName !== '已冻结' || - item.orderPackageFreezeStatus !== '20' - ) { - this.$nextTick(() => { - this.$refs.packageList.toggleRowSelection(this.packageData[index], true); + this.page.total = inventoryList.total; + this.inventoryInfo = inventoryList.records; + this.loading = false; + this.selectionClear(); + } + ); + }, + stockArticleSearchReset() { + this.selectionList = []; + this.query = {}; + this.handleAddOrder(); + }, + stockListSearchReset() { + this.selectionList = []; + this.query = {}; + this.handleAddInventory(); + }, + onSubmitPackage() { + if (this.packageList.length === 0) { + this.$message.warning('请选择包件!!!'); + return; + } + this.orderData.forEach(item => { + if (item.id === this.obj.id) { + item.packageList = this.packageList; + } + }); + console.log('this.orderData------------>', this.orderData); + this.isaddvalue = false; + }, + onSubmit() { + //新增预约单 + let orderIds = []; + let inventoryIds = []; + let inventoryList = []; + let stockArticleList = []; + let operation = true; + this.inventoryData.forEach(item => { + if (item.reservationNum === '0' || item.reservationNum > item.quantityStock) { + this.$message({ + type: 'warning', + message: '请输入' + item.orderCode + '正确数量!' }); + operation = false; } + item.reservationNum = item.reservationNum; + inventoryIds.push(item.id); + inventoryList.push(item); }); - } - this.isaddvalue = true; - this.loading = false; - }, - checkPackage(row, index) { - //区分编辑还是新增 - //编辑需要对这个预约单下的包件信息均可进行调整 - console.log(row,'rowrowrowrowrowrow') - if (!this.reservationId) { - if ( - row.orderPackageReservationStatusName === '已预约' || - row.orderPackageReservationStatusName === '20' - ) { - return true; - } - } - if (row.orderPackageFreezeStatus === '10' || row.orderPackageFreezeStatusName === '已冻结') { - return false; - } else { - return true; - } - }, - //搜索订单 - searchStockArticle() { - let params = {}; - let page = this.page; - this.query.typeService = 2; - this.query.genre = 1; - // if (this.reservationId) { - // this.onLoadEditOrder(this.page); - // } else { - this.onLoadOrder(this.page); - // } - // selectStockArticleList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { - // const data = res.data.data; - // data.records.forEach(item => { - // item.reservationNum = item.handQuantity; - // }); - // this.page.total = data.total; - // this.stockArticleInfo = data.records; - // this.loading = false; - // // this.selectionClear(); - // }); - }, - searchStockList() { - let params = {}; - let page = this.page; - this.query.serviceType = 2; - getInventoryList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then( - res => { - const inventoryList = res.data.data; - inventoryList.records.forEach(item => { - item.reservationNum = '0'; + orderIds.join(','); + inventoryIds.join(','); + this.form.stockArticleIds = orderIds.toString(); + this.form.inventoryIds = inventoryIds.toString(); + this.form.inventoryList = inventoryList; + console.log('-------------->', this.orderData); + let order = this.orderData; + order.forEach(o => { + if (!o.packageListInfo) { + o.packageListInfo = o.packageList; + } + }); + this.form.stockArticleList = order; + this.deliveryWayData.forEach(item => { + if (this.form.deliveryWay === item.dictValue) { + this.form.deliveryWay = item.dictKey; + } + }); + this.deliveryTypeData.forEach(item => { + if (this.form.deliveryType === item.dictValue) { + this.form.deliveryType = item.dictKey; + } + }); + this.periodOfTimeData.forEach(item => { + if (this.form.periodOfTime === item.dictValue) { + this.form.periodOfTime = item.dictKey; + } + }); + this.form.serveType = this.serveType.sort().join(','); + //服务号 + this.orderData.forEach(item => { + console.log('-------------->item', item); + if (!item.packageListInfo) { + item.packageListInfo = item.parcelListVOS; + } + }); + // this.form.stockArticleList = this.packageList; + console.log('>>>>>>>>', this.form); + if (this.reservationId) { + this.form.id = this.reservationId; + update(this.form).then(() => { + this.$router.go(-1); + this.$message({ + type: 'success', + message: '操作成功!' + }); }); - this.page.total = inventoryList.total; - this.inventoryInfo = inventoryList.records; - this.loading = false; - this.selectionClear(); - } - ); - }, - stockArticleSearchReset() { - this.selectionList = []; - this.query = {}; - this.handleAddOrder(); - }, - stockListSearchReset() { - this.selectionList = []; - this.query = {}; - this.handleAddInventory(); - }, - onSubmitPackage() { - if (this.packageList.length === 0) { - this.$message.warning('请选择包件!!!'); - return; - } - this.orderData.forEach(item => { - if (item.id === this.obj.id) { - item.packageList = this.packageList; - } - }); - console.log('this.orderData------------>', this.orderData); - this.isaddvalue = false; - }, - onSubmit() { - //新增预约单 - let orderIds = []; - let inventoryIds = []; - let inventoryList = []; - let stockArticleList = []; - let operation = true; - this.inventoryData.forEach(item => { - if (item.reservationNum === '0' || item.reservationNum > item.quantityStock) { - this.$message({ - type: 'warning', - message: '请输入' + item.orderCode + '正确数量!', + } else { + this.form.reservationStatus = '20'; + autonomouslySave(this.form).then(() => { + this.$message({ + type: 'success', + message: '操作成功!' + }); + this.$router.go(-1); }); - operation = false; - } - item.reservationNum = item.reservationNum; - inventoryIds.push(item.id); - inventoryList.push(item); - }); - orderIds.join(','); - inventoryIds.join(','); - this.form.stockArticleIds = orderIds.toString(); - this.form.inventoryIds = inventoryIds.toString(); - this.form.inventoryList = inventoryList; - console.log('-------------->', this.orderData); - let order = this.orderData; - order.forEach(o => { - if (!o.packageListInfo) { - o.packageListInfo = o.packageList; - } - }); - this.form.stockArticleList = order; - this.deliveryWayData.forEach(item => { - if (this.form.deliveryWay === item.dictValue) { - this.form.deliveryWay = item.dictKey; - } - }); - this.deliveryTypeData.forEach(item => { - if (this.form.deliveryType === item.dictValue) { - this.form.deliveryType = item.dictKey; - } - }); - this.periodOfTimeData.forEach(item => { - if (this.form.periodOfTime === item.dictValue) { - this.form.periodOfTime = item.dictKey; - } - }); - this.form.serveType = this.serveType.sort().join(','); - //服务号 - this.orderData.forEach(item => { - console.log('-------------->item', item); - if (!item.packageListInfo) { - item.packageListInfo = item.parcelListVOS; } - }); - // this.form.stockArticleList = this.packageList; - console.log('>>>>>>>>', this.form); - if (this.reservationId) { - this.form.id = this.reservationId; - update(this.form).then(() => { - this.$router.go(-1); - this.$message({ - type: 'success', - message: '操作成功!', + }, + handleClose(done) { + this.$confirm('确认关闭?') + .then(_ => { + done(); + }) + .catch(_ => { }); + }, + removeStockArticle(row) { + this.orderData.forEach((item, index) => { + if (item.id === row.id) { + this.orderData.splice(index, 1); + } + console.log(item); }); - } else { - this.form.reservationStatus = '20'; - autonomouslySave(this.form).then(() => { - this.$message({ - type: 'success', - message: '操作成功!', - }); - this.$router.go(-1); + console.log('>>>>>>>>>>>>>>>row', row); + }, + removeStockList(row) { + this.inventoryData.forEach((item, index) => { + if (item.id === row.id) { + this.inventoryData.splice(index, 1); + } + console.log(item); }); - } - }, - handleClose(done) { - this.$confirm('确认关闭?') - .then(_ => { - done(); - }) - .catch(_ => {}); - }, - removeStockArticle(row) { - this.orderData.forEach((item, index) => { - if (item.id === row.id) { - this.orderData.splice(index, 1); - } - console.log(item); - }); - console.log('>>>>>>>>>>>>>>>row', row); - }, - removeStockList(row) { - this.inventoryData.forEach((item, index) => { - if (item.id === row.id) { - this.inventoryData.splice(index, 1); - } - console.log(item); - }); - console.log('>>>>>>>>>>>>>>>row', row); - }, - showStockListEdit(row){ - console.log('>>>>>>>>>>>>>>>row', row); - //查看库存品详情 - let a ={}; - a.reservationId = this.reservationId; - a.inventoryId = row.id; - selectInventoryDetail(1,20,a).then(res=>{ - console.log("------------>",res); - }) - }, - handleView(row) { - this.title = '查看'; - this.view = true; - this.box = true; - getDetailDelivery(row.id).then(res => { - this.form = res.data.data; - }); - }, - rowDel(row) { - this.$confirm('确定将选择数据删除?', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - return remove(row.id); - }) - .then(() => { - this.onLoad(this.page); - this.$message({ - type: 'success', - message: '操作成功!', - }); + console.log('>>>>>>>>>>>>>>>row', row); + }, + showStockListEdit(row) { + console.log('>>>>>>>>>>>>>>>row', row); + //查看库存品详情 + let a = {}; + a.reservationId = this.reservationId; + a.inventoryId = row.id; + selectInventoryDetail(1, 20, a).then(res => { + console.log('------------>', res); }); - }, - beforeClose(done) { - done(); - this.form = {}; - this.view = false; - }, - selectionChange(list) { - this.orderList = list; - }, - selectionPackageChange(list) { - console.log('-----------<>', list); - if (this.reservationId) { - this.packageList = list; - } else { - //新增 - let a = []; - list.forEach(item => { - console.log('--------------->', item); - if ( - item.orderPackageReservationStatus === '10' || - item.orderPackageReservationStatusName === '未预约' - ) { - a.push(item); - } + }, + handleView(row) { + this.title = '查看'; + this.view = true; + this.box = true; + getDetailDelivery(row.id).then(res => { + this.form = res.data.data; }); - this.packageList = a; - } - }, - selectionInventoryChange(list) { - // if (this.reservationId){ - console.log('-----------<>', list); - this.inventoryList = list; - // }else { - // //新增 - // let a = []; - // list.forEach(item=>{ - // if (item.orderPackageReservationStatus === '10' || item.orderPackageReservationStatusName === '未预约'){ - // a.push(item); - // } - // }) - // this.inventoryList = a; - // } - }, + }, + rowDel(row) { + this.$confirm('确定将选择数据删除?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + return remove(row.id); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: 'success', + message: '操作成功!' + }); + }); + }, + beforeClose(done) { + done(); + this.form = {}; + this.view = false; + }, + selectionChange(list) { + this.orderList = list; + }, + selectionPackageChange(list) { + console.log('-----------<>', list); + if (this.reservationId) { + this.packageList = list; + } else { + //新增 + let a = []; + list.forEach(item => { + console.log('--------------->', item); + if ( + item.orderPackageReservationStatus === '10' || + item.orderPackageReservationStatusName === '未预约' + ) { + a.push(item); + } + }); + this.packageList = a; + } + }, + selectionInventoryChange(list) { + // if (this.reservationId){ + console.log('-----------<>', list); + this.inventoryList = list; + // }else { + // //新增 + // let a = []; + // list.forEach(item=>{ + // if (item.orderPackageReservationStatus === '10' || item.orderPackageReservationStatusName === '未预约'){ + // a.push(item); + // } + // }) + // this.inventoryList = a; + // } + }, - // 增加库存品 - onSubmitInventory() { - if (this.inventoryList.length === 0) { - this.$message.warning('请选择至少一条数据'); - return; - } - this.inventoryList.forEach(item => { - if (item.reservationNum > item.applyNum) { - this.$message.warning('该库存品数量输入有误!!!'); + // 增加库存品 + onSubmitInventory() { + if (this.inventoryList.length === 0) { + this.$message.warning('请选择至少一条数据'); return; } - }); - this.inventoryData = this.inventoryList; + this.inventoryList.forEach(item => { + if (item.reservationNum > item.applyNum) { + this.$message.warning('该库存品数量输入有误!!!'); + return; + } + }); + this.inventoryData = this.inventoryList; - // if (this.orderData.length) { - // this.inventoryList.some(i => { - // let a = this.inventoryData.filter((ele) => ele.id == i.id).length >= 1; - // if (!a) { - // this.inventoryData.push(i); - // } - // }); - // } else { - // this.inventoryData = this.selectionList; - // } + // if (this.orderData.length) { + // this.inventoryList.some(i => { + // let a = this.inventoryData.filter((ele) => ele.id == i.id).length >= 1; + // if (!a) { + // this.inventoryData.push(i); + // } + // }); + // } else { + // this.inventoryData = this.selectionList; + // } - this.stockListShow = false; - }, - /** - * 增加订单提交 - */ - onSubmitOrder() { - console.log('-------------》', this.orderList); - const list = this.orderList; - let name = list[0].customerName; - let address = list[0].customerAddress; - let phone = list[0].customerTelephone; - if (!!this.form.consignee) { - if (this.form.consignee !== name) { - this.$message.warning('请选择统一顾客订单!!!'); - return; + this.stockListShow = false; + }, + /** + * 增加订单提交 + */ + onSubmitOrder() { + console.log('-------------》', this.orderList); + const list = this.orderList; + let name = list[0].customerName; + let address = list[0].customerAddress; + let phone = list[0].customerTelephone; + if (!!this.form.consignee) { + if (this.form.consignee !== name) { + this.$message.warning('请选择统一顾客订单!!!'); + return; + } } - } - if (!!this.form.customerAddress) { - if (this.form.customerAddress !== address) { - this.$message.warning('请选择统一顾客订单!!!'); - return; + if (!!this.form.customerAddress) { + if (this.form.customerAddress !== address) { + this.$message.warning('请选择统一顾客订单!!!'); + return; + } } - } - if (!!this.form.customerTelephone) { - if (this.form.customerTelephone !== phone) { - this.$message.warning('请选择统一顾客订单!!!'); - return; + if (!!this.form.customerTelephone) { + if (this.form.customerTelephone !== phone) { + this.$message.warning('请选择统一顾客订单!!!'); + return; + } } - } - //市配 --- 最终客户校验 - for (let i = 1; i < list.length; i++) { - if ( - list[i].customerName !== name || - list[i].customerAddress !== address || - list[i].customerTelephone !== phone - ) { - this.$message.warning('请选择统一顾客订单!!!'); - return; + //市配 --- 最终客户校验 + for (let i = 1; i < list.length; i++) { + if ( + list[i].customerName !== name || + list[i].customerAddress !== address || + list[i].customerTelephone !== phone + ) { + this.$message.warning('请选择统一顾客订单!!!'); + return; + } } - } - this.form.consignee = name; - this.form.deliveryAddress = address; - this.form.deliveryPhone = phone; - //这里需要对选择的订单进行筛选 - const info = []; - this.stockArticleInfo.forEach((item, index) => { - this.orderList.forEach(order => { - // const newDate1 = this.orderData.map(item => { // map遍历本地数据 - // if (this.orderList.find(o => o.id !== item.id)) { // 如果在接口数据中包含本地数据,则返回这条本地数据 - // return item; - // }); - // } info.push(order); - //清理原来订单列表的订单数据 - info.push(order); - this.stockArticleInfo.splice(index, 1); - }); - }); - if (this.orderData.length >= 1) { - let newDate1 = this.orderData.map(item => { - // map遍历本地数据 - if (this.orderList.find(o => o.id !== item.id)) { - // 如果在接口数据中包含本地数据,则返回这条本地数据 - return item; - } - }); - console.log('newDate1-------------->', newDate1.length); - if (newDate1.length >= 1) { - console.log('newDate1-------------->', newDate1); - newDate1.forEach(a => { - this.orderData.push(a); + this.form.consignee = name; + this.form.deliveryAddress = address; + this.form.deliveryPhone = phone; + //这里需要对选择的订单进行筛选 + const info = []; + this.stockArticleInfo.forEach((item, index) => { + this.orderList.forEach(order => { + // const newDate1 = this.orderData.map(item => { // map遍历本地数据 + // if (this.orderList.find(o => o.id !== item.id)) { // 如果在接口数据中包含本地数据,则返回这条本地数据 + // return item; + // }); + // } info.push(order); + //清理原来订单列表的订单数据 + info.push(order); + this.stockArticleInfo.splice(index, 1); }); - } - console.log('this.orderData------------->', this.orderData); - } else { - this.orderData = this.orderList; - } - // this.orderData.push(info); - this.orderShow = false; - }, - selectionClear() { - this.selectionList = []; - this.query = {}; - // this.$refs.table.clearSelection(); - }, - currentOrderChange(currentPage) { - this.page.currentPage = currentPage; - // if (this.reservationId) { - // this.onLoadEditOrder(this.page, this.reservationId); - // } else { - // this.onLoadOrder(this.page); - // } - this.onLoadOrder(this.page); - }, - sizeOrderChange(pageSize) { - this.page.pageSize = pageSize; - // if (this.reservationId) { - // this.onLoadEditOrder(this.page, this.reservationId); - // } else { - // this.onLoadOrder(this.page); - // } - this.onLoadOrder(this.page); - }, - onLoadEditOrder(params = {}) { - this.query.typeService = 2; - this.query.genre = '1'; - const page = this.page; - let a = []; - if (this.orderData) { - this.orderData.forEach(item => { - a.push(item.id); }); - } - this.query.orderIds = a.join(','); - this.query.reservationId = this.reservationId; - selectUpdateAvailableStockArticle( - page.currentPage, - page.pageSize, - this.reservationId, - Object.assign(params, this.query) - ).then(res => { - console.log('res------------>', res); - const data = res.data.data; - this.stockArticleInfo = data.records; - this.stockArticleInfo.forEach((item, index) => { - //检查订单是否冻结 - this.checkOrder(item, index); - if (this.orderData) { - this.orderData.forEach(o => { - if (o.id === item.id) { - //回显选择的包件信息 - this.$nextTick(() => { - this.$refs.orderList.toggleRowSelection(this.stockArticleInfo[index], true); - }); - } + if (this.orderData.length >= 1) { + let newDate1 = this.orderData.map(item => { + // map遍历本地数据 + if (this.orderList.find(o => o.id !== item.id)) { + // 如果在接口数据中包含本地数据,则返回这条本地数据 + return item; + } + }); + console.log('newDate1-------------->', newDate1.length); + if (newDate1.length >= 1) { + console.log('newDate1-------------->', newDate1); + newDate1.forEach(a => { + this.orderData.push(a); }); - } else { - this.orderList = []; } - }); - this.page.total = data.total; - }); - // this.query = {}; - }, - onLoadOrder(page, params = {}) { - this.query.typeService = 2; - this.query.genre = '1'; - // const page = this.page; - let a = []; - if (this.orderData) { - this.orderData.forEach(item => { - a.push(item.id); - }); - } - this.query.orderIds = a.join(','); - console.log('-------------->', this.query); - selectStockArticleInfoList( - page.currentPage, - page.pageSize, - Object.assign(params, this.query) - ).then(res => { - console.log('res------------>', res); - const data = res.data.data; - this.stockArticleInfo = data.records; - this.stockArticleInfo.forEach((item, index) => { - //检查订单是否冻结 - this.checkOrder(item, index); - // if (this.orderData) { - // this.orderData.forEach(o => { - // if (o.id === item.id) { - // this.$nextTick(() => { - // this.$refs.orderList.toggleRowSelection(this.stockArticleInfo[index], true); - // }); - // } - // }); - // }else { - // this.orderList = []; - // } + console.log('this.orderData------------->', this.orderData); + } else { + this.orderData = this.orderList; + } + // this.orderData.push(info); + this.orderShow = false; + }, + selectionClear() { + this.selectionList = []; + this.query = {}; + // this.$refs.table.clearSelection(); + }, + currentOrderChange(currentPage) { + this.page.currentPage = currentPage; + // if (this.reservationId) { + // this.onLoadEditOrder(this.page, this.reservationId); + // } else { + // this.onLoadOrder(this.page); + // } + this.onLoadOrder(this.page); + }, + sizeOrderChange(pageSize) { + this.page.pageSize = pageSize; + // if (this.reservationId) { + // this.onLoadEditOrder(this.page, this.reservationId); + // } else { + // this.onLoadOrder(this.page); + // } + this.onLoadOrder(this.page); + }, + onLoadEditOrder(params = {}) { + this.query.typeService = 2; + this.query.genre = '1'; + const page = this.page; + let a = []; + if (this.orderData) { + this.orderData.forEach(item => { + a.push(item.id); + }); + } + this.query.orderIds = a.join(','); + this.query.reservationId = this.reservationId; + selectUpdateAvailableStockArticle( + page.currentPage, + page.pageSize, + this.reservationId, + Object.assign(params, this.query) + ).then(res => { + console.log('res------------>', res); + const data = res.data.data; + this.stockArticleInfo = data.records; + this.stockArticleInfo.forEach((item, index) => { + //检查订单是否冻结 + this.checkOrder(item, index); + if (this.orderData) { + this.orderData.forEach(o => { + if (o.id === item.id) { + //回显选择的包件信息 + this.$nextTick(() => { + this.$refs.orderList.toggleRowSelection(this.stockArticleInfo[index], true); + }); + } + }); + } else { + this.orderList = []; + } + }); this.page.total = data.total; }); - this.orderList = []; - }); - }, + // this.query = {}; + }, + inputscStockArtic(index, row) { + console.log(index, row); + this.query[row.prop] = index; + this.onLoadOrder(this.page); + }, + timescStockArtic(index, row) { + console.log(index, row); + if (!!index){ + index = dayjs(index).format('YYYY-MM-DD'); + } + this.query[row.prop] = index + if (!index){ + delete this.query[row.prop] + } + this.onLoadOrder(this.page); + }, + btnscStockArtic(index, row) { + console.log(index, row); + this.onLoad(this.page); + }, + selectscStockArtic(index, row) { + console.log(index, row); + if(row.prop ==='reservationStatusName'){ + this.query['reservationStatus'] = index; + }else if(row.prop ==='freezeStatusName'){ + this.query['freezeStatus'] = index; + }else if(row.prop ==='completeSetName'){ + this.query['completeSet'] = index; + } + // else if(row.prop ==='groundingStatusName'){ + // this.query['groundingStatus'] = index; + // }else if(row.prop ==='stockupStatusName'){ + // this.query['stockupStatus'] = index; + // }else if(row.prop ==='orderStatusName'){ + // this.query['orderStatus'] = index; + // }else if(row.prop ==='typeServerName'){ + // this.query['typeService'] = index; + // } + // else if(row.prop ==='orderReceiveStatusName'){ + // this.query['orderReceiveStatus'] = index; + // } - onLoad() { - // this.loading = true; - this.form.deliveryType = '2'; - this.form.deliveryWay = '10'; - this.form.periodOfTime = '3'; - this.form.otherFee = 0; - this.form.replaceFee = 0; - this.form.collectionFee = 0; - this.form.isUrgent = '1'; - this.form.reservationDate = new Date(); - if (this.orderIds) { - getStockArticleList(this.orderIds).then(res => { - console.log(res.data.data); + else{ + this.query[row.prop] = index; + } + this.onLoadOrder(this.page); + }, + onLoadOrder(page, params = {}) { + this.query.typeService = 2; + this.query.genre = '1'; + // const page = this.page; + let a = []; + if (this.orderData) { + this.orderData.forEach(item => { + a.push(item.id); + }); + } + this.query.orderIds = a.join(','); + console.log('-------------->', this.query); + selectStockArticleInfoList( + page.currentPage, + page.pageSize, + Object.assign(params, this.query) + ).then(res => { + console.log('res------------>', res); const data = res.data.data; - let name = ''; - let phone = ''; - let address = ''; - let typeService = ''; - console.log('>>>>>>>>>>>>>', data); - for (let i = 0; i < data.length; i++) { - if (i === 0) { - name = data[0].customerName; - phone = data[0].customerTelephone; - address = data[0].customerAddress; - typeService = data[0].typeService.toString(); - // typeName = data[0].typeName; - } - } - this.form.consignee = name; - this.form.deliveryPhone = phone; - this.form.deliveryType = typeService; - this.form.deliveryAddress = address; - this.orderData = data; - }); - } - if (this.reservationId) { - this.inventoryShow = true; - getReservationInfo(this.reservationId).then(res => { - const reservation = res.data.data; - const stockArticleListInfo = res.data.data.stockArticleList; - // stockArticleListInfo.forEach(item=>{ - // - // }) - console.log('>>>>>>>>', reservation); - this.orderData = reservation.stockArticleList; - this.inventoryData = reservation.inventoryList; - this.inventoryData.forEach(item => { - item.applyNum = item.quantityStock - item.quantityOccupied; + this.stockArticleInfo = data.records; + this.stockArticleInfo.forEach((item, index) => { + //检查订单是否冻结 + this.checkOrder(item, index); + // if (this.orderData) { + // this.orderData.forEach(o => { + // if (o.id === item.id) { + // this.$nextTick(() => { + // this.$refs.orderList.toggleRowSelection(this.stockArticleInfo[index], true); + // }); + // } + // }); + // }else { + // this.orderList = []; + // } + this.page.total = data.total; }); - this.form.deliveryType = reservation.deliveryType; - this.form.periodOfTime = reservation.periodOfTime; - if (reservation.serveType) { - //过滤字符串中的',' - this.serveType = Array.from(reservation.serveType).filter(s => { - return s !== ','; - }); - } - this.form = reservation; + this.orderList = []; }); - } else { + }, + + onLoad() { + // this.loading = true; this.form.deliveryType = '2'; + this.form.deliveryWay = '10'; + this.form.periodOfTime = '3'; + this.form.otherFee = 0; + this.form.replaceFee = 0; + this.form.collectionFee = 0; + this.form.isUrgent = '1'; + this.form.reservationDate = new Date(); + if (this.orderIds) { + getStockArticleList(this.orderIds).then(res => { + console.log(res.data.data); + const data = res.data.data; + let name = ''; + let phone = ''; + let address = ''; + let typeService = ''; + console.log('>>>>>>>>>>>>>', data); + for (let i = 0; i < data.length; i++) { + if (i === 0) { + name = data[0].customerName; + phone = data[0].customerTelephone; + address = data[0].customerAddress; + typeService = data[0].typeService.toString(); + // typeName = data[0].typeName; + } + } + this.form.consignee = name; + this.form.deliveryPhone = phone; + this.form.deliveryType = typeService; + this.form.deliveryAddress = address; + this.orderData = data; + }); + } + if (this.reservationId) { + this.inventoryShow = true; + getReservationInfo(this.reservationId).then(res => { + const reservation = res.data.data; + const stockArticleListInfo = res.data.data.stockArticleList; + // stockArticleListInfo.forEach(item=>{ + // + // }) + console.log('>>>>>>>>', reservation); + this.orderData = reservation.stockArticleList; + this.inventoryData = reservation.inventoryList; + this.inventoryData.forEach(item => { + item.applyNum = item.quantityStock - item.quantityOccupied; + }); + this.form.deliveryType = reservation.deliveryType; + this.form.periodOfTime = reservation.periodOfTime; + if (reservation.serveType) { + //过滤字符串中的',' + this.serveType = Array.from(reservation.serveType).filter(s => { + return s !== ','; + }); + } + this.form = reservation; + }); + } else { + this.form.deliveryType = '2'; + } + this.loading = false; } - this.loading = false; - }, - }, -}; + } + }; </script> <style> -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; -} + input::-webkit-outer-spin-button, + input::-webkit-inner-spin-button { + -webkit-appearance: none; + } -input[type='number'] { - -moz-appearance: textfield; -} + input[type='number'] { + -moz-appearance: textfield; + } </style> diff --git a/src/views/distribution/reservation/reservationSubmitFrom.vue b/src/views/distribution/reservation/reservationSubmitFrom.vue index 28dd3e3c..39d59f83 100644 --- a/src/views/distribution/reservation/reservationSubmitFrom.vue +++ b/src/views/distribution/reservation/reservationSubmitFrom.vue @@ -117,15 +117,15 @@ <el-input v-model="form.otherFee" placeholder="请输入其他费用"/> </el-form-item> </el-col> -<!-- <el-col :span="10">--> -<!-- <el-form-item label="服务类型:" prop="serveType" label-width="120px">--> -<!-- <el-checkbox-group v-model="serveType" v-for="item in this.addvalueServeTypeData">--> -<!-- <el-checkbox :label="item.dictKey"--> -<!-- :value="item.dictKey">{{item.dictValue}} --> -<!-- </el-checkbox>--> -<!-- </el-checkbox-group>--> -<!-- </el-form-item>--> -<!-- </el-col>--> + <el-col :span="10"> + <el-form-item label="服务类型:" prop="serveType" label-width="120px"> + <el-checkbox-group v-model="serveType" v-for="item in this.addvalueServeTypeData"> + <el-checkbox :label="item.dictKey" + :value="item.dictKey">{{item.dictValue}}  + </el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-col> <el-col :span="10"> @@ -318,19 +318,19 @@ <!-- :before-close="handleClose"--> <el-form :inline="true" :model="query"> <el-form-item label="商场名称:"> - <el-input v-model="query.marketName" placeholder="请输入服务类型"></el-input> + <el-input v-model="query.marketName" placeholder="请输入商场名称"></el-input> </el-form-item> <el-form-item label="物料名称:"> - <el-input v-model="query.descriptionGoods" placeholder="请输入服务类型"></el-input> + <el-input v-model="query.descriptionGoods" placeholder="请输入物料名称"></el-input> </el-form-item> <el-form-item label="商场编码:"> - <el-input v-model="query.marketCode" placeholder="请输入服务类型"></el-input> + <el-input v-model="query.marketCode" placeholder="请输入商场编码"></el-input> </el-form-item> <el-form-item label="订单自编号:"> - <el-input v-model="query.orderCode" placeholder="请输入服务类型"></el-input> + <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input> </el-form-item> <el-form-item label="品牌:"> - <el-input v-model="query.brand" placeholder="请输入服务类型"></el-input> + <el-input v-model="query.brand" placeholder="请输入品牌"></el-input> </el-form-item> <!-- 查询按钮 --> <el-form-item> @@ -500,6 +500,7 @@ import option from '@/option/distribution/distributionStockArticle'; import { mapGetters } from 'vuex'; import { getDictionaryBiz } from '@/api/system/dict'; + import dayjs from 'dayjs'; export default { data() { @@ -1322,6 +1323,53 @@ this.page.pageSize = pageSize; this.onLoad(this.page); }, + // inputscStockArtic(index, row) { + // console.log(index, row); + // this.query[row.prop] = index; + // this.onLoadOrder(this.page); + // }, + // timescStockArtic(index, row) { + // console.log(index, row); + // if (!!index){ + // index = dayjs(index).format('YYYY-MM-DD'); + // } + // this.query[row.prop] = index + // if (!index){ + // delete this.query[row.prop] + // } + // this.onLoadOrder(this.page); + // }, + // btnscStockArtic(index, row) { + // console.log(index, row); + // this.onLoad(this.page); + // }, + // selectscStockArtic(index, row) { + // console.log(index, row); + // if(row.prop ==='reservationStatusName'){ + // this.query['reservationStatus'] = index; + // }else if(row.prop ==='freezeStatusName'){ + // this.query['freezeStatus'] = index; + // }else if(row.prop ==='completeSetName'){ + // this.query['completeSet'] = index; + // } + // // else if(row.prop ==='groundingStatusName'){ + // // this.query['groundingStatus'] = index; + // // }else if(row.prop ==='stockupStatusName'){ + // // this.query['stockupStatus'] = index; + // // }else if(row.prop ==='orderStatusName'){ + // // this.query['orderStatus'] = index; + // // }else if(row.prop ==='typeServerName'){ + // // this.query['typeService'] = index; + // // } + // // else if(row.prop ==='orderReceiveStatusName'){ + // // this.query['orderReceiveStatus'] = index; + // // } + // + // else{ + // this.query[row.prop] = index; + // } + // this.onLoadOrder(this.page); + // }, onLoadOrder(page, params = {}) { this.query.typeService = 2; this.query.genre = '1'; diff --git a/src/views/distribution/stockup/distributionStockup.vue b/src/views/distribution/stockup/distributionStockup.vue index fc790c6d..a60ac896 100644 --- a/src/views/distribution/stockup/distributionStockup.vue +++ b/src/views/distribution/stockup/distributionStockup.vue @@ -95,16 +95,16 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="装卸班组" :label-width="formLabelWidth"> - <el-select v-model="form.loaderId" clearable placeholder="请选择装卸班组" @change="getForklift($event,'2')"> - <el-option - v-for="item in loaderData" - :key="item.dictKey" - :label="item.dictValue" - :value="item.dictKey"> - </el-option> - </el-select> - </el-form-item> +<!-- <el-form-item label="装卸班组" :label-width="formLabelWidth">--> +<!-- <el-select v-model="form.loaderId" clearable placeholder="请选择装卸班组" @change="getForklift($event,'2')">--> +<!-- <el-option--> +<!-- v-for="item in loaderData"--> +<!-- :key="item.dictKey"--> +<!-- :label="item.dictValue"--> +<!-- :value="item.dictKey">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> <el-form-item label="备货区域" :label-width="formLabelWidth" > <el-select v-model="form.goodsAreaId" clearable placeholder="请选择备货区编号" @change="getForklift($event,'3')"> <el-option @@ -316,14 +316,14 @@ export default { values: '', width: '150', checkarr: [ - { - label: '未指派', - value: '1', - }, - { - label: '已指派', - value: '2', - }, + // { + // label: '未指派', + // value: '1', + // }, + // { + // label: '已指派', + // value: '2', + // }, ], fixed: false, sortable: true, @@ -369,16 +369,16 @@ export default { fixed: false, sortable: true, },*/ - { - prop: 'loaderName', - label: '装卸班组', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, + // { + // prop: 'loaderName', + // label: '装卸班组', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // }, { prop: 'fixTime', label: '确认完成备货时间', diff --git a/src/views/distribution/stockup/distributionStockupDetails.vue b/src/views/distribution/stockup/distributionStockupDetails.vue index 9418251a..bb8d493b 100644 --- a/src/views/distribution/stockup/distributionStockupDetails.vue +++ b/src/views/distribution/stockup/distributionStockupDetails.vue @@ -83,6 +83,8 @@ > <template #default="slotProps"> <el-text type="primary" text icon="el-icon-view" v-if="!slotProps.scope.row.stockupStatus" @click="handleStockUp(slotProps.scope.row,'2')">备货</el-text> + <el-button type="primary" text icon="el-icon-view" @click="handleQRCode(row)">查看包条码</el-button> + </template> </tablecmt> @@ -112,7 +114,8 @@ @selection="selectionChange" > <template #default="slotProps"> - <el-text type="primary" text icon="el-icon-view" v-if="!row.stockupStatus" @click="handleStockUp(slotProps.scope.row,'2')">备货</el-text> + <el-text type="primary" text icon="el-icon-view" @click="handleDetail(slotProps.scope.row)">明细</el-text> + </template> </tablecmt> @@ -133,6 +136,36 @@ </el-tabs> </el-row> + <el-dialog title="包条码" :visible.sync="dialogPack" width="780px" v-model="dialogPack"> + <div > + <span>lmy 666</span> + </div> + <span slot="footer" class="dialog-footer"> + <!-- <el-button type="primary" @click="ddd">导 出</el-button>--> + <el-button type="primary" @click="printTemplate">打 印</el-button> + <el-button type="primary" @click="dialogPack = false">确 定</el-button> + <el-button @click="dialogPack = false">取 消</el-button> + </span> + </el-dialog> + <el-dialog title="二维码" :visible.sync="dialogVisible" width="780px" v-model="dialogVisible"> + <div> + <div v-html="html"></div> + + <!-- <div v-for="(item,index) in qrCodeObj"> + <el-row> + <el-col :span="24" > + <el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/> + </el-col> + </el-row> + </div> --> + </div> + <span slot="footer" class="dialog-footer"> + <!-- <el-button type="primary" @click="ddd">导 出</el-button>--> + <el-button type="primary" @click="printTemplate">打 印</el-button> + <el-button type="primary" @click="dialogVisible = false">确 定</el-button> + <el-button @click="dialogVisible = false">取 消</el-button> + </span> + </el-dialog> <el-dialog v-model="dialogHand" title="系统备货"> <el-form :model="form"> <el-form-item label="备货区域" :label-width="formLabelWidth" > @@ -214,10 +247,16 @@ import { getDictionaryBiz } from '@/api/system/dict'; import { getParcelListOwn } from '@/api/distribution/distributionParcelList'; import { stockUp } from '@/api/basicdata/basicdataGoodsArea'; import { getStockDetail } from '@/api/distribution/distributionStock'; +import { getStockTemplate, showOrderPackgeCode } from '@/api/distribution/distributionStockArticle'; +import { getLodop } from '@/utils/LodopFuncs'; +import dayjs from 'dayjs'; export default { data () { return { + dialogVisible:false, + dialogPack:false, + html:'', columnListarrs:{ columnReservation:[ { @@ -663,6 +702,17 @@ export default { sortable: true, head: false, }, + { + prop: '', + label: '操作', + type: 6, + values: '', + width: '230', + checkarr: [], + fixed: 'right', + hide: true, + }, + ], }, height: 0, @@ -770,6 +820,135 @@ export default { } }, methods: { + //查看库存品明细 + handleDetail(row){ + console.log("row>><><><",row); + this.dialogPack = true; + + }, + showdrawer(value){ + this.drawerShow=value + }, + /** + * 弹窗的勾选回调,用于更改头部数组 + * 固定搭配,只需要更换 columnList + */ + setnewcolum(newarr, headarr,type) { + // console.log(newarr,'+++++++++++') + if(type==1){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'checkList', headarr); + }else if(type==2){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'flexList', headarr); + }else if(type==3){ + this.columnList = newarr; + this.$functions.setStorage(window.location.pathname+'sortlist', headarr); + } + + }, + selectionsc(value) { + console.log(value); + }, + delectsolt(scope) { + const { row } = scope; + console.log(row); + }, + editsolt(scope) { + const { row } = scope; + console.log(row); + }, + btnsc(index, row) { + console.log(index, row); + }, + selectsc(index, row) { + console.log(index, row); + // if(row.prop =='typeServiceName'){ + // this.query['typeService'] = index; + // }else if(row.prop =='stockupStatusName'){ + // this.query["stockupStatus"] = index; + // }else if(row.prop =='assignStatusName'){ + // this.query["assignStatus"] = index; + // }else{ + // this.query[row.prop] = index; + // } + // // this.query[row.prop] = index; + // this.onLoad(this.page); + }, + timesc(index, row) { + console.log(index, row); + if (!!index){ + index = dayjs(index).format('YYYY-MM-DD'); + } + this.query[row.prop] = index + if (!index){ + delete this.query[row.prop] + } + this.onLoad(this.page); + }, + inputsc(index, row) { + console.log(index, row); + /* if(row.prop =='typeServiceName'){ + this.query['typeService'] = index; + }else if(row.prop =='stockupStatusName'){ + this.query["stockupStatus"] = index; + }else if(row.prop =='assignStatusName'){ + this.query["assignStatus"] = index; + }else{ + this.query[row.prop] = index; + }*/ + this.query[row.prop] = index; + + this.onLoad(this.page); + }, + //打印 + printTemplate() { + let LODOP = getLodop(); + console.log("LODOP>>>>>",LODOP); + // console.log("this.ids>>>>>",this.selectionList); + // if (this.selectionList.length === 0){ + // this.$message.warning("请选择至少一条数据"); + // return; + // } + getStockTemplate({ id: this.materialQRCode.id }).then(res => { + console.log('返回的数据', res.data.data); + let templateData = res.data.data; + // let templateData = "res.data.data"; + // console.log(templateData); + LODOP.PRINT_INITA(1, 1, 900, 660, '测试预览功能'); + LODOP.SET_PRINT_MODE('WINDOW_DEFPRINTER', 'Godex G500'); + LODOP.SET_PRINT_STYLEA(0,"TextNeatRow",true);//允许标点溢出,且英文单词拆开 + // // 设置打印整宽且不变形 + LODOP.SET_PRINT_MODE('PRINT_PAGE_PERCENT', 'Auto-Width'); + // // 设置打印后自动关闭 + LODOP.SET_PRINT_MODE('AUTO_CLOSE_PREWINDOW', 1); + // // data就是一段html文本 + LODOP.ADD_PRINT_HTM('0%', '0%', '100%', '100%', templateData); + // LODOP.PREVIEW(); //预览(预览打印无脚标) + LODOP.PRINT(); //直接打印 + + }); + }, + //查看包条码 + handleQRCode(row) { + // this.title = '查看' + // this.view = true; + // this.box = true; + this.materialQRCode = row; + + let qr = { + ids: row.id, + }; + showOrderPackgeCode(qr).then(res => { + // this.orderPackageCode = res.data + console.log(res.data); + this.html='' + this.html=this.getHtmls(res.data.data.dataList,res.data.data.templateHtml) + + }); + + this.dialogVisible = true; + }, //系统备货确定 callFordelivery(){ let c = false; @@ -1129,16 +1308,19 @@ export default { async getStockUpParcelsList(page){ let a = await getParcelListOwn(page.currentPage,page.pageSize,{id :this.$route.query.id}); console.log("包件...",a.data); - const data = a.data.data; - this.data1 = data.records; - this.data1.forEach(i =>{ - if(!i.stockupStatus){ - i.stockupStatusName = "待备货"; - this.isStockUp = true; - }else{ - i.stockupStatusName = "已备货"; - } - }) + const data = a.data.data; + this.data1 = data.records; + if(this.data1.length > 0){ + this.data1.forEach(i =>{ + if(!i.stockupStatus){ + i.stockupStatusName = "待备货"; + this.isStockUp = true; + }else{ + i.stockupStatusName = "已备货"; + } + }) + } + this.page1.total = a.data.data.total; this.loading = false; this.selectionClear(); diff --git a/src/views/distribution/stockup/distributionStockupDetailsSelf.vue b/src/views/distribution/stockup/distributionStockupDetailsSelf.vue index d41ca065..17152635 100644 --- a/src/views/distribution/stockup/distributionStockupDetailsSelf.vue +++ b/src/views/distribution/stockup/distributionStockupDetailsSelf.vue @@ -225,6 +225,7 @@ <el-table-column prop="menu" label="操作" :width="220" align="center"> <template #="{ row }"> <el-button type="primary" text icon="el-icon-view" v-if=" row.stockupStatusName== '待备货' " @click="handleStockUp(row,'2')">备货</el-button> + <el-button type="primary" text icon="el-icon-view" @click="handleQRCode(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-edit" @click="handleEdit(row)">编辑</el-button>--> <!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>--> @@ -248,6 +249,7 @@ </div> </el-tab-pane> <el-tab-pane label="库存品" name="enter"> + <el-button type="primary" text icon="el-icon-view" >批量打印</el-button> <el-table ref="table" v-loading="loading" @@ -278,6 +280,14 @@ </el-table-column> </template> <!-- 操作栏模块 --> + <el-table-column prop="menu" label="操作" :width="220" align="center"> + <template #="{ row }"> + <el-button type="primary" text icon="el-icon-view" v-if=" row.stockupStatusName== '已备货' " @click="onDetail(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-edit" @click="handleEdit(row)">编辑</el-button>--> + <!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>--> + </template> + </el-table-column> </el-table> <div class="avue-crud__pagination" style="width: 100%"> <!-- 分页模块 --> @@ -312,6 +322,36 @@ </el-pagination> </div> </el-row>--> + <el-dialog title="二维码" :visible.sync="dialogVisible" width="780px" v-model="dialogVisible"> + <div> + <div v-html="html"></div> + + <!-- <div v-for="(item,index) in qrCodeObj"> + <el-row> + <el-col :span="24" > + <el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/> + </el-col> + </el-row> + </div> --> + </div> + <span slot="footer" class="dialog-footer"> + <!-- <el-button type="primary" @click="ddd">导 出</el-button>--> + <el-button type="primary" @click="printTemplate">打 印</el-button> + <el-button type="primary" @click="dialogVisible = false">确 定</el-button> + <el-button @click="dialogVisible = false">取 消</el-button> + </span> + </el-dialog> + <el-dialog title="包条码" :visible.sync="dialogPack" width="780px" v-model="dialogPack"> + <div > + <span>lmy 666</span> + </div> + <span slot="footer" class="dialog-footer"> + <!-- <el-button type="primary" @click="ddd">导 出</el-button>--> + <el-button type="primary" @click="printTemplate">打 印</el-button> + <el-button type="primary" @click="dialogPack = false">确 定</el-button> + <el-button @click="dialogPack = false">取 消</el-button> + </span> + </el-dialog> <el-dialog v-model="dialogHand" title="系统备货"> <el-form :model="form"> <el-form-item label="备货区域" :label-width="formLabelWidth" > @@ -379,12 +419,18 @@ import option from '@/option/distribution/distributionStockup'; import { mapGetters } from 'vuex'; import { getDictionaryBiz } from '@/api/system/dict'; import { getParcelListOwn, getParcelListOwnSelf } from '@/api/distribution/distributionParcelList'; +import { getDisStockList } from '@/api/distribution/disStockListDetail' import { stockUp } from '@/api/basicdata/basicdataGoodsArea'; import { getStockDetail } from '@/api/distribution/distributionStock'; +import { getStockTemplate, showOrderPackgeCode } from '@/api/distribution/distributionStockArticle'; +import { getLodop } from '@/utils/LodopFuncs'; export default { data() { return { + html: null, // 页面包条码内容 + dialogVisible: false, //二维码控制 + dialogPack: false, //包件控制 height: 0, activeName: 'reservation', // 弹框标题 @@ -489,6 +535,69 @@ export default { }, }, methods: { + //查询库存包件明细 + onDetail(row){ + // + this.dialogPack = true; + console.log("row>>>",row); + //查询信息 + let po = { + stockListId: row.stockListId, + reservationId: row.billLadingId, + } + getDisStockList(po).then( res =>{ + console.log("res>>>>库存包件码",res.data.data); + }) + + }, + //打印 + printTemplate() { + let LODOP = getLodop(); + console.log("LODOP>>>>>",LODOP); + // console.log("this.ids>>>>>",this.selectionList); + // if (this.selectionList.length === 0){ + // this.$message.warning("请选择至少一条数据"); + // return; + // } + getStockTemplate({ id: this.materialQRCode.id }).then(res => { + console.log('返回的数据', res.data.data); + let templateData = res.data.data; + // let templateData = "res.data.data"; + // console.log(templateData); + LODOP.PRINT_INITA(1, 1, 900, 660, '测试预览功能'); + LODOP.SET_PRINT_MODE('WINDOW_DEFPRINTER', 'Godex G500'); + LODOP.SET_PRINT_STYLEA(0,"TextNeatRow",true);//允许标点溢出,且英文单词拆开 + // // 设置打印整宽且不变形 + LODOP.SET_PRINT_MODE('PRINT_PAGE_PERCENT', 'Auto-Width'); + // // 设置打印后自动关闭 + LODOP.SET_PRINT_MODE('AUTO_CLOSE_PREWINDOW', 1); + // // data就是一段html文本 + LODOP.ADD_PRINT_HTM('0%', '0%', '100%', '100%', templateData); + // LODOP.PREVIEW(); //预览(预览打印无脚标) + LODOP.PRINT(); //直接打印 + + }); + }, + //查看包条码 + handleQRCode(row) { + // this.title = '查看' + // this.view = true; + // this.box = true; + this.materialQRCode = row; + + let qr = { + ids: row.id, + }; + showOrderPackgeCode(qr).then(res => { + // this.orderPackageCode = res.data + console.log(res.data); + this.html='' + this.html=this.getHtmls(res.data.data.dataList,res.data.data.templateHtml) + + }); + + this.dialogVisible = true; + }, //选择 getForklift(row,ty){ switch (ty){ @@ -599,6 +708,10 @@ export default { //配送类型 this.distributionType = res.data.data; }); + // 费用类型字典 + getDictionaryBiz('delivery_cost').then(res => { + this.clientType = res.data.data; + }); // console.log("配送方式123", this.deliveryWayList); getDictionaryBiz('delivery_way').then(res => { //配送方式 @@ -832,6 +945,38 @@ export default { let a = await billStockList(page.currentPage, page.pageSize, { id: this.$route.query.id }); this.data3 = a.data.data.records; console.log("自提任务》》》》》》",this.data3); + console.log("费用类型lll",this.clientType); + this.data3.forEach(i =>{ + if(!!i.list){ + i.collectFee = 0; + i.storageFee = 0; + i.transport = 0; + i.forklift = 0; + i.otherFee = 0; + i.list.forEach(a =>{ + const { cost, money } = a; // 对象解构,获取a对象的cost和money属性 + switch (cost) { + case '1': // 到付 + i.collectFee = money ? parseInt(money) : 0; + break; + case '2': // 仓储费用 + i.storageFee = money ? parseInt(money) : 0; + break; + case '3': // 搬运费 + console.log("0=-0-="); + i.transport = money ? parseInt(money) : 0; + break; + case '4': // 叉车费 + i.forklift = money ? parseInt(money) : 0; + break; + case '5': // 其他增值费 + i.otherFee = money ? parseInt(money) : 0; + break; + } + }) + } + }); + // if (!!this.data3 && this.data3.length > 0) { // this.data3.forEach(i => { diff --git a/src/views/distribution/stockup/distributionStockupDiscuss.vue b/src/views/distribution/stockup/distributionStockupDiscuss.vue index 5a5ab14b..140a0cdc 100644 --- a/src/views/distribution/stockup/distributionStockupDiscuss.vue +++ b/src/views/distribution/stockup/distributionStockupDiscuss.vue @@ -83,7 +83,7 @@ > <template #default="slotProps"> <el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-text> - <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">编辑</el-text> + <el-text type="primary" text icon="el-icon-edit" v-if=" slotProps.scope.row.stockupStatusName != '已备货' " @click="handleEdit(slotProps.scope)">编辑</el-text> <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">取消</el-button>--> <!-- <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">打印</el-text>--> </template> @@ -177,8 +177,8 @@ <el-form-item label="备货区" prop="stockupArea"> <el-input v-model="form.stockupArea" placeholder="请输入备货区"/> </el-form-item> - <el-form-item label="指派状态;1-未指派、2-已指派" prop="assignStatus"> - <el-select v-model="form.assignStatus" clearable placeholder="请选择指派状态;1-未指派、2-已指派"> + <el-form-item label="指派状态" prop="assignStatus"> + <el-select v-model="form.assignStatus" clearable placeholder="请选择指派状态"> <el-option v-for="item in assignStatusData" :key="item.dictKey" @@ -210,7 +210,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="装卸班组" prop="loader"> + <!--<el-form-item label="装卸班组" prop="loader"> <el-select v-model="form.loader" clearable placeholder="请选择装卸班组"> <el-option v-for="item in loaderData" @@ -219,7 +219,7 @@ :value="item.dictKey"> </el-option> </el-select> - </el-form-item> + </el-form-item>--> <el-form-item label="确认完成备货时间" prop="fixTime"> <el-date-picker v-model="form.fixTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择确认完成备货时间"></el-date-picker> </el-form-item> @@ -355,14 +355,14 @@ export default { values: '', width: '150', checkarr: [ - { - label: '未指派', - value: '1', - }, - { - label: '已指派', - value: '2', - }, + // { + // label: '未指派', + // value: '1', + // }, + // { + // label: '已指派', + // value: '2', + // }, ], fixed: false, sortable: true, @@ -408,16 +408,16 @@ export default { fixed: false, sortable: true, },*/ - { - prop: 'loaderName', - label: '装卸班组', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, + // { + // prop: 'loaderName', + // label: '装卸班组', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // }, { prop: 'fixTime', label: '确认完成备货时间', @@ -893,17 +893,17 @@ export default { return item }); }); - getDictionaryBiz('stock_allocation').then(res => { - this.stockAllocation = res.data.data; - this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { - item.value = item.dictKey - item.label = item.dictValue - return item - }); - }) + // getDictionaryBiz('stock_allocation').then(res => { + // this.stockAllocation = res.data.data; + // this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { + // item.value = item.dictKey + // item.label = item.dictValue + // return item + // }); + // }) getDictionaryBiz('stock_assign_status').then(res => { //指派 - // console.log("8908098080",res.data.data); - this.distributionType = res.data.data; + console.log("8908098080",res.data.data); + // this.distributionType = res.data.data; this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr =res.data.data.map(item=>{ item.value=item.dictKey item.label=item.dictValue diff --git a/src/views/distribution/stockup/distributionStockupMarket.vue b/src/views/distribution/stockup/distributionStockupMarket.vue index 508ccf01..acaa23f0 100644 --- a/src/views/distribution/stockup/distributionStockupMarket.vue +++ b/src/views/distribution/stockup/distributionStockupMarket.vue @@ -65,7 +65,7 @@ > <template #default="slotProps"> <el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-text> - <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">编辑</el-text> + <el-text type="primary" text icon="el-icon-edit" v-if=" slotProps.scope.row.stockupStatusName != '已备货' " @click="handleEdit(slotProps.scope)">编辑</el-text> <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">取消</el-button>--> <!-- <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">打印</el-text>--> </template> @@ -107,7 +107,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="装卸班组" :label-width="formLabelWidth"> + <!--<el-form-item label="装卸班组" :label-width="formLabelWidth"> <el-select v-model="form.loaderId" clearable placeholder="请选择装卸班组" @change="getForklift($event,'2')"> <el-option v-for="item in loaderData" @@ -116,7 +116,7 @@ :value="item.dictKey"> </el-option> </el-select> - </el-form-item> + </el-form-item>--> <el-form-item label="备货区域" :label-width="formLabelWidth" > <el-select v-model="form.goodsAreaId" clearable placeholder="请选择备货区编号" @change="getForklift($event,'3')"> <el-option @@ -401,16 +401,16 @@ export default { // fixed: false, // sortable: true, // }, - { - prop: 'loaderName', - label: '装卸班组', - type: 2, - values: '', - width: '150', - checkarr: [], - fixed: false, - sortable: true, - }, + // { + // prop: 'loaderName', + // label: '装卸班组', + // type: 2, + // values: '', + // width: '150', + // checkarr: [], + // fixed: false, + // sortable: true, + // }, { prop: 'fixTime', label: '确认完成备货时间', @@ -831,14 +831,14 @@ export default { return item }); }); - getDictionaryBiz('stock_allocation').then(res => { - this.stockAllocation = res.data.data; - this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { - item.value = item.dictKey - item.label = item.dictValue - return item - }); - }); + // getDictionaryBiz('stock_allocation').then(res => { + // this.stockAllocation = res.data.data; + // this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { + // item.value = item.dictKey + // item.label = item.dictValue + // return item + // }); + // }); this.onLoad(this.page); }, searchHide () { diff --git a/src/views/distribution/stockup/distributionStockupSelf.vue b/src/views/distribution/stockup/distributionStockupSelf.vue index 028ef25c..9b233e44 100644 --- a/src/views/distribution/stockup/distributionStockupSelf.vue +++ b/src/views/distribution/stockup/distributionStockupSelf.vue @@ -65,7 +65,7 @@ > <template #default="slotProps"> <el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-text> - <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">编辑</el-text> + <el-text type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)" v-if="slotProps.scope.row.stockupStatus != '40'">编辑</el-text> <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(slotProps.scope)">取消</el-button>--> <!-- <el-text type="primary" text icon="el-icon-edit" @click="handleEditPrint(slotProps.scope)">打印</el-text>--> </template> @@ -107,16 +107,16 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="装卸班组" :label-width="formLabelWidth"> - <el-select v-model="form.loaderId" clearable placeholder="请选择装卸班组" @change="getForklift($event,'2')"> - <el-option - v-for="item in loaderData" - :key="item.dictKey" - :label="item.dictValue" - :value="item.dictKey"> - </el-option> - </el-select> - </el-form-item> +<!-- <el-form-item label="装卸班组" :label-width="formLabelWidth">--> +<!-- <el-select v-model="form.loaderId" clearable placeholder="请选择装卸班组" @change="getForklift($event,'2')">--> +<!-- <el-option--> +<!-- v-for="item in loaderData"--> +<!-- :key="item.dictKey"--> +<!-- :label="item.dictValue"--> +<!-- :value="item.dictKey">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> <el-form-item label="备货区域" :label-width="formLabelWidth" > <el-select v-model="form.goodsAreaId" clearable placeholder="请选择备货区编号" @change="getForklift($event,'3')"> <el-option @@ -192,7 +192,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="装卸班组" prop="loader"> + <!--<el-form-item label="装卸班组" prop="loader"> <el-select v-model="form.loader" clearable placeholder="请选择装卸班组"> <el-option v-for="item in loaderData" @@ -201,7 +201,7 @@ :value="item.dictKey"> </el-option> </el-select> - </el-form-item> + </el-form-item>--> <el-form-item label="确认完成备货时间" prop="fixTime"> <el-date-picker v-model="form.fixTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择确认完成备货时间"></el-date-picker> </el-form-item> @@ -401,7 +401,7 @@ export default { // fixed: false, // sortable: true, // }, - { + /*{ prop: 'loaderName', label: '装卸班组', type: 2, @@ -410,7 +410,7 @@ export default { checkarr: [], fixed: false, sortable: true, - }, + },*/ { prop: 'fixTime', label: '确认完成备货时间', @@ -837,14 +837,14 @@ export default { return item }); }); - getDictionaryBiz('stock_allocation').then(res => { - this.stockAllocation = res.data.data; - this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { - item.value = item.dictKey - item.label = item.dictValue - return item - }); - }); + // getDictionaryBiz('stock_allocation').then(res => { + // this.stockAllocation = res.data.data; + // this.$functions.checkcColumnList("assignStatusName", this.columnList).checkarr = res.data.data.map(item => { + // item.value = item.dictKey + // item.label = item.dictValue + // return item + // }); + // }); this.onLoad(this.page); }, searchHide () { diff --git a/src/views/warehouse/updownGoods/warehouseUpdownGoodsLog.vue b/src/views/warehouse/updownGoods/warehouseUpdownGoodsLog.vue index 6d88afba..856a6536 100644 --- a/src/views/warehouse/updownGoods/warehouseUpdownGoodsLog.vue +++ b/src/views/warehouse/updownGoods/warehouseUpdownGoodsLog.vue @@ -1,42 +1,121 @@ <template> <basic-container> <div class="avue-crud"> + <el-tabs type="border-card"> + <el-tab-pane label="订制品"> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList" + :tableData="data" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <!-- <template #default="slotProps">--> + <!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-button>--> + <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-button>--> + <!-- </template>--> + </tablecmt> + </el-row> + <el-row> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeChange" + @current-change="currentChange" + :current-page="page.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total" + > + </el-pagination> + </div> + </el-row> + </el-tab-pane> + <el-tab-pane label="库存品"> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList1" + :tableData="data1" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <!-- <template #default="slotProps">--> + <!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-button>--> + <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-button>--> + <!-- </template>--> + </tablecmt> + </el-row> + <el-row> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeChange1" + @current-change="currentChange1" + :current-page="page1.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page1.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page1.total" + > + </el-pagination> + </div> + </el-row> + </el-tab-pane> + <el-tab-pane label="零担订单"> + <el-row> + <!-- 列表模块 --> + <tablecmt + :columnList="columnList2" + :tableData="data2" + :loading="loading" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <!-- <template #default="slotProps">--> + <!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-button>--> + <!-- <el-button type="primary" text icon="el-icon-edit" @click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-button>--> + <!-- </template>--> + </tablecmt> + </el-row> + <el-row> + <div class="avue-crud__pagination" style="width: 100%"> + <!-- 分页模块 --> + <el-pagination + align="right" + background + @size-change="sizeChange2" + @current-change="currentChange2" + :current-page="page2.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page2.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page2.total" + > + </el-pagination> + </div> + </el-row> + </el-tab-pane> + </el-tabs> - <el-row> - <!-- 列表模块 --> - <tablecmt - :columnList="columnList" - :tableData="data" - :loading="loading" - @inputTxt="inputsc" - @timeCheck="timesc" - @btnCheck="btnsc" - @selectCheck="selectsc" - @selection="selectionChange" - > -<!-- <template #default="slotProps">--> -<!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-button>--> -<!-- <el-button type="primary" text icon="el-icon-edit" @click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-button>--> -<!-- </template>--> - </tablecmt> - </el-row> - <el-row> - <div class="avue-crud__pagination" style="width:100%"> - <!-- 分页模块 --> - <el-pagination align="right" - background - @size-change="sizeChange" - @current-change="currentChange" - :current-page="page.currentPage" - :page-sizes="[30, 50,80, 120]" - :page-size="page.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="page.total"> - </el-pagination> - </div> - </el-row> <!-- 表单模块 --> - </div> </basic-container> <edittablehead @@ -48,12 +127,12 @@ </template> <script> -import { getDetail, getpage, update, remove } from "@/api/warehouse/warehouseUpdownGoodsLog"; -import option from "@/option/warehouse/warehouseUpdownGoodsLog"; -import { mapGetters } from "vuex"; +import { getDetail, getpage, update, remove,getinventorypage,gettruckloadpage } from '@/api/warehouse/warehouseUpdownGoodsLog'; +import option from '@/option/warehouse/warehouseUpdownGoodsLog'; +import { mapGetters } from 'vuex'; export default { - data () { + data() { return { columnList: [ // { @@ -68,7 +147,7 @@ export default { { prop: 'warehouseName', label: '货物仓库', - type: 2, + type: 1, values: '', width: '150', checkarr: [], @@ -79,7 +158,7 @@ export default { { prop: 'orderCode', label: '订单自编码', - type: 2, + type: 1, values: '', width: '150', checkarr: [], @@ -89,19 +168,125 @@ export default { { prop: 'orderPackageCode', label: '包件编码', - type: 2, + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + + { + prop: 'bindingType', + label: '上架类型', + type: 1, + values: '', + width: '150', + checkarr: [ + { label: '上架', value: 1 }, + { label: '下架', value: 2 }, + ], + fixed: false, + sortable: true, + }, + { + prop: 'areaTitle', + label: '货区', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'shelfTitle', + label: '货架', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'allocationTitle', + label: '货位', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'createUserName', + label: '操作员', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'palletCode', + label: '托盘码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'logWarehouseName', + label: '记录仓库', + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, }, + { + prop: 'createTime', + label: '创建时间', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + // { + // prop: '', + // label: '操作', + // type: 6, + // values: '', + // width: '150', + // checkarr: [], + // fixed: 'right', + // hide: true, + // }, + // 更多列的配置... + ], + columnList1: [ + // { + // prop: '', + // label: '序号', + // type: 0, + // values: '', + // width: 55, + // checkarr: [], + // fixed: true, + // }, { prop: 'materialCode', label: '物料编号', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -109,9 +294,9 @@ export default { { prop: 'materialName', label: '物料名称', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -119,9 +304,9 @@ export default { { prop: 'sku', label: 'SKU', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -129,12 +314,12 @@ export default { { prop: 'bindingType', label: '上架类型', - type: 3, + type: 1, values: '', - width: '230', + width: '150', checkarr: [ - {label:'上架',value:1}, - {label:'下架',value:2} + { label: '上架', value: 1 }, + { label: '下架', value: 2 }, ], fixed: false, sortable: true, @@ -142,9 +327,9 @@ export default { { prop: 'areaTitle', label: '货区', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: false, @@ -152,9 +337,9 @@ export default { { prop: 'shelfTitle', label: '货架', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: false, @@ -162,9 +347,9 @@ export default { { prop: 'allocationTitle', label: '货位', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: false, @@ -172,9 +357,9 @@ export default { { prop: 'createUserName', label: '操作员', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: false, @@ -182,9 +367,9 @@ export default { { prop: 'palletCode', label: '托盘码', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -194,7 +379,7 @@ export default { label: '记录仓库', type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -202,9 +387,9 @@ export default { { prop: 'createTime', label: '创建时间', - type: 2, + type: 1, values: '', - width: '180', + width: '150', checkarr: [], fixed: false, sortable: true, @@ -214,13 +399,138 @@ export default { // label: '操作', // type: 6, // values: '', - // width: '230', + // width: '150', // checkarr: [], // fixed: 'right', // hide: true, // }, // 更多列的配置... ], + columnList2: [ + { + prop: 'orderCode', + label: '订单号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'serviceNumber', + label: '服务号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'mallName', + label: '商城名称', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'bindingType', + label: '上架类型', + type: 1, + values: '', + width: '150', + checkarr: [ + { label: '上架', value: 1 }, + { label: '下架', value: 2 }, + ], + fixed: false, + sortable: true, + }, + { + prop: 'areaTitle', + label: '货区', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'shelfTitle', + label: '货架', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'allocationTitle', + label: '货位', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'createUserName', + label: '操作员', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'mallCode', + label: '托盘码', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'logWarehouseName', + label: '记录仓库', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'createTime', + label: '创建时间', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + }, + ], height: 0, // 弹框标题 title: '', @@ -238,7 +548,17 @@ export default { page: { currentPage: 1, pageSize: 30, - total: 40 + total: 40, + }, + page1: { + currentPage: 1, + pageSize: 30, + total: 40, + }, + page2: { + currentPage: 1, + pageSize: 30, + total: 40, }, // 表单数据 form: {}, @@ -248,11 +568,15 @@ export default { option: option, // 表单列表 data: [], - } + data1:[], + data2:[], + }; }, - mounted () { + mounted() { this.init(); this.onLoad(this.page); + this.onLoad(this.page1, {}, 'page1'); + this.onLoad(this.page2, {}, 'page2'); /** * 初始化获取本地缓存的编辑隐藏的列表 * 固定搭配,不能更改 @@ -330,14 +654,14 @@ export default { } }, computed: { - ...mapGetters(["permission"]), - ids () { + ...mapGetters(['permission']), + ids() { let ids = []; this.selectionList.forEach(ele => { ids.push(ele.id); }); - return ids.join(","); - } + return ids.join(','); + }, }, methods: { showdrawer(value) { @@ -376,140 +700,83 @@ export default { }, selectsc(index, row) { console.log(index, row); - }, timesc(index, row) { console.log(index, row); - }, inputsc(index, row) { console.log(index, row); }, - init () { + init() { this.height = this.setPx(document.body.clientHeight - 340); }, - searchHide () { - this.search = !this.search; + + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + // this.$refs.table.clearSelection(); }, - searchChange () { + currentChange(currentPage) { + this.page.currentPage = currentPage; this.onLoad(this.page); }, - searchReset () { - this.query = {}; - this.page.currentPage = 1; + sizeChange(pageSize) { + this.page.pageSize = pageSize; this.onLoad(this.page); }, - handleSubmit () { - if (!this.form.id) { - add(this.form).then(() => { - this.box = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); - }); - } else { - update(this.form).then(() => { - this.box = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); - }) - } + sizeChange1(pageSize) { + this.page1.pageSize = pageSize; + this.onLoad(this.page1, {}, 'page1'); }, - handleAdd () { - this.title = '新增' - this.form = {} - this.box = true + currentChange1(currentPage) { + this.page1.currentPage = currentPage; + this.onLoad(this.page1, {}, 'page1'); }, - handleEdit (row) { - this.title = '编辑' - this.box = true - getDetail(row.id).then(res => { - this.form = res.data.data; - }); + sizeChange2(pageSize) { + this.page1.pageSize = pageSize; + this.onLoad(this.page2, {}, 'page2'); }, - handleView (row) { - this.title = '查看' - this.view = true; - this.box = true; - getDetail(row.id).then(res => { - this.form = res.data.data; - }); + currentChange2(currentPage) { + this.page1.currentPage = currentPage; + this.onLoad(this.page2, {}, 'page2'); }, - handleDelete () { - if (this.selectionList.length === 0) { - this.$message.warning("请选择至少一条数据"); - return; - } - this.$confirm("确定将选择数据删除?", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }) - .then(() => { - return remove(this.ids); - }) - .then(() => { + onLoad(page, params = {}, uname) { + this.loading = true; + if (uname=='page1') { + getinventorypage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + const data = res.data.data; + if (uname) { + this[uname].total = data.total; + } + this.data1 = data.records; + this.data1 = this.$functions.newdatas(this.columnList1, this.data1); + this.loading = false; this.selectionClear(); - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); }); - }, - rowDel (row) { - this.$confirm("确定将选择数据删除?", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }) - .then(() => { - return remove(row.id); - }) - .then(() => { - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); + }else if(uname=='page2'){ + gettruckloadpage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + const data = res.data.data; + if (uname) { + this[uname].total = data.total; + } + this.data2 = data.records; + this.data2 = this.$functions.newdatas(this.columnList2, this.data2); + this.loading = false; + this.selectionClear(); }); + } else { + getpage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + const data = res.data.data; + this.page.total = data.total; + this.data = data.records; + this.data = this.$functions.newdatas(this.columnList, this.data); + this.loading = false; + this.selectionClear(); + }); + } }, - beforeClose (done) { - done() - this.form = {}; - this.view = false; - }, - selectionChange (list) { - this.selectionList = list; - }, - selectionClear () { - this.selectionList = []; - // this.$refs.table.clearSelection(); - }, - currentChange (currentPage) { - this.page.currentPage = currentPage; - this.onLoad(this.page); - }, - sizeChange (pageSize) { - this.page.pageSize = pageSize; - this.onLoad(this.page); - }, - onLoad (page, params = {}) { - this.loading = true; - getpage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { - const data = res.data.data; - this.page.total = data.total; - this.data = data.records; - this.data =this.$functions.newdatas(this.columnList,this.data) - this.loading = false; - this.selectionClear(); - }); - } - } + }, }; </script> diff --git a/src/views/warehouse/warehouseStock/warehouseStock.vue b/src/views/warehouse/warehouseStock/warehouseStock.vue index 25a39be3..3872242c 100644 --- a/src/views/warehouse/warehouseStock/warehouseStock.vue +++ b/src/views/warehouse/warehouseStock/warehouseStock.vue @@ -79,6 +79,26 @@ export default { sortable: false, head: false, }, + { + prop: 'serviceNumber', + label: '服务号', + type: 2, + values: '', + width: '180', + checkarr: [], + fixed: false, + sortable: true, + }, + { + prop: 'waybillNumber', + label: '运单号', + type: 2, + values: '', + width: '180', + checkarr: [], + fixed: false, + sortable: true, + }, { prop: 'orderCode', label: '订单自编码', @@ -170,18 +190,44 @@ export default { sortable: true, }, { - prop: 'warehouseEntryTimeEnd', - label: '入库时间', - type: 2, - values: '', - width: '180', - checkarr: [], - fixed: false, - sortable: true, + label: "包件状态", + prop: "orderPackageStatusName", + search: true, + width:"100px" }, { - prop: 'waybillNumber', - label: '运单号', + label: "包件冻结状态", + prop: "orderPackageFreezeStatusName", + search: true, + width:"100px" + }, + { + label: "包件上架状态", + prop: "orderPackageGroundingStatusName", + search: true, + width:"100px" + }, + { + label: "包件备货状态", + prop: "orderPackageStockupStatusName", + search: true, + width:"100px" + }, + { + label: "包件预约状态", + prop: "orderPackageReservationStatusName", + search: true, + width:"100px" + }, + { + label: "包件装车状态", + prop: "orderPackageLoadingStatusName", + search: true, + width:"100px" + }, + { + prop: 'warehouseEntryTimeEnd', + label: '入库时间', type: 2, values: '', width: '180', @@ -189,6 +235,7 @@ export default { fixed: false, sortable: true, }, + { prop: 'operatorName', label: '操作员', diff --git a/src/views/warehouse/warehousingentry/warehouseWarehousingEntry.vue b/src/views/warehouse/warehousingentry/warehouseWarehousingEntry.vue index 16747380..88065123 100644 --- a/src/views/warehouse/warehousingentry/warehouseWarehousingEntry.vue +++ b/src/views/warehouse/warehousingentry/warehouseWarehousingEntry.vue @@ -50,6 +50,7 @@ <template #default="slotProps"> <el-text type="primary" text icon="el-icon-view" @click="handleViewAdd(slotProps.scope)">查看</el-text> <el-text type="primary" text icon="el-icon-edit" v-if="slotProps.scope.row.conditions != '3'" @click="handleEditOwn(slotProps.scope)">编辑</el-text> + <el-text type="primary" text icon="el-icon-edit" v-if="slotProps.scope.row.conditions != '3'" @click="handleEnter(slotProps.scope)">入库</el-text> <el-dropdown> <el-text type="primary" text > @@ -63,9 +64,9 @@ <el-dropdown-item> <el-text @click="handleDrawer(slotProps.scope)">物品清单</el-text> </el-dropdown-item> - <el-dropdown-item v-if="slotProps.scope.row.conditions != '3'"> + <!-- <el-dropdown-item v-if="slotProps.scope.row.conditions != '3'"> <el-text @click="handleEnter(slotProps.scope)">入库</el-text> - </el-dropdown-item> + </el-dropdown-item>--> </el-dropdown-menu> </template> </el-dropdown>