Browse Source

新增盘点任务编辑功能

fix_bug_pro20231227
qb 2 years ago
parent
commit
97ed2bd02f
  1. 33
      src/api/distribution/createTask.js
  2. 335
      src/views/distribution/checkInventoryTask/createTask.vue

33
src/api/distribution/createTask.js

@ -11,3 +11,36 @@ export const getDictList = params => {
params, params,
}); });
}; };
/**
* 添加盘点任务
*/
export const postAddtaskQuest = data => {
return request({
url: '/api/logpm-warehouse/blade-taskQuest/taskQuest/save',
method: 'post',
data,
});
};
/**
* 获取盘点列表
*/
export const getTaskQuestPage = params => {
return request({
url: '/api/logpm-warehouse/blade-taskQuest/taskQuest/page',
method: 'get',
params,
});
};
/**
* 编辑盘点任务
*/
export const postEditTaskQuestUpdate = data => {
return request({
url: '/api/logpm-warehouse/blade-taskQuest/taskQuest/update',
method: 'post',
data,
});
};

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

@ -1,8 +1,8 @@
<template> <template>
<basic-container> <basic-container>
<div class="avue-crud"> <div class="avue-crud">
<!-- 查询模块 -->
<el-row v-if="!search"> <el-row v-if="!search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query"> <el-form :inline="true" :model="query">
<div class="fo-rl"> <div class="fo-rl">
<el-form-item label="货物名称:"> <el-form-item label="货物名称:">
@ -22,6 +22,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<!-- 控件区 -->
<el-row> <el-row>
<div class="avue-crud__header"> <div class="avue-crud__header">
<!-- 头部左侧按钮模块 --> <!-- 头部左侧按钮模块 -->
@ -38,8 +40,9 @@
</div> </div>
</div> </div>
</el-row> </el-row>
<!-- 列表模块 -->
<el-row> <el-row>
<!-- 列表模块 -->
<tablecmt <tablecmt
:columnList="columnList" :columnList="columnList"
:tableData="data" :tableData="data"
@ -55,30 +58,32 @@
type="primary" type="primary"
text text
icon="el-icon-view" icon="el-icon-view"
@click="handleViewCheck(slotProps.scope)" @click="handleViewCheck(slotProps.scope.row)"
> </el-text > </el-text
> >
<el-text <el-text
type="primary" type="primary"
text text
icon="el-icon-view" icon="el-icon-view"
@click="handleEditCheck(slotProps.scope)" @click="handleEditCheck(slotProps.scope.row)"
> </el-text > </el-text
> >
<el-text <el-text
type="primary" type="primary"
text text
icon="el-icon-view" icon="el-icon-view"
@click="handleDeleteCheck(slotProps.scope)" @click="handleDeleteCheck(slotProps.scope.row)"
> </el-text > </el-text
> >
</template> </template>
</tablecmt> </tablecmt>
</el-row> </el-row>
<!-- 分页模块 -->
<el-row> <el-row>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> <div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div> <div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 --> <!-- 分页 -->
<el-pagination <el-pagination
align="right" align="right"
background background
@ -102,14 +107,12 @@
center center
:before-close="beforeClose" :before-close="beforeClose"
append-to-body append-to-body
:disabled="view"
> >
<el-form :disabled="view" ref="form" :model="form" label-width="120px"> <el-form :disabled="view" ref="form" :model="form" label-width="120px">
<!-- 表单字段 --> <!-- 商场名称 -->
<el-form-item label="订单自编号" prop="orderCode"> <el-form-item label="商场名称">
<el-input v-model="form.orderCode" placeholder="请输入订单自编号" clearable /> <el-select v-model="form.clientList" multiple placeholder="请选择商场" clearable>
</el-form-item>
<el-form-item label="商场名称" prop="orderCode">
<el-select v-model="form.region" multiple placeholder="请选择商场" clearable>
<template v-if="form.selectList && form.selectList.length !== 0"> <template v-if="form.selectList && form.selectList.length !== 0">
<el-option <el-option
v-for="item in form.selectList" v-for="item in form.selectList"
@ -119,10 +122,14 @@
</template> </template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="品牌" prop="orderCode">
<!-- 品牌 -->
<el-form-item label="品牌">
<el-input v-model="form.brandName" placeholder="品牌名称" disabled /> <el-input v-model="form.brandName" placeholder="品牌名称" disabled />
</el-form-item> </el-form-item>
<el-form-item label="订单时间">
<!-- 盘点时间 -->
<el-form-item label="盘点时间">
<div class="block" prop="time"> <div class="block" prop="time">
<el-date-picker <el-date-picker
v-model="form.time" v-model="form.time"
@ -134,6 +141,21 @@
/> />
</div> </div>
</el-form-item> </el-form-item>
<!-- 盘点订单状态 -->
<template v-if="isEdit">
<el-form-item label="盘点订单状态">
<el-select v-model="form.dictKey" placeholder="请选择订单状态" clearable>
<template v-if="this.typeData.length !== 0">
<el-option
v-for="item in this.typeData"
:label="item.dictValue"
:value="item.dictKey"
/>
</template>
</el-select>
</el-form-item>
</template>
</el-form> </el-form>
<!-- 表单按钮 --> <!-- 表单按钮 -->
<template #footer> <template #footer>
@ -163,7 +185,12 @@
</template> </template>
<script> <script>
import { getDictList } from '@/api/distribution/createTask'; import {
getDictList,
postAddtaskQuest,
getTaskQuestPage,
postEditTaskQuestUpdate,
} from '@/api/distribution/createTask';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
@ -185,52 +212,71 @@ export default {
checkarr: [], checkarr: [],
fixed: true, fixed: true,
}, },
{ {
prop: 'serviceNumber', prop: 'questNum',
label: '任务编号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '仓库名称', label: '仓库名称',
type: 2, type: 2,
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],
fixed: true, fixed: false,
sortable: true, sortable: true,
head: false,
}, },
{ {
prop: 'serviceNumber', prop: 'marketName',
label: '商城名称', label: '商城名称',
type: 2, type: 2,
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],
fixed: true, fixed: false,
sortable: true, sortable: true,
head: false,
}, },
{ {
prop: 'serviceNumber', prop: 'brandName',
label: '品牌名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '任务开始时间', label: '任务开始时间',
type: 2, type: 2,
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],
fixed: true, fixed: false,
sortable: true, sortable: true,
head: false,
}, },
{ {
prop: 'serviceNumber', prop: 'endTime',
label: '任务结束时间', label: '任务结束时间',
type: 2, type: 2,
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],
fixed: true, fixed: false,
sortable: true, sortable: true,
head: false,
}, },
{ {
@ -240,26 +286,25 @@ export default {
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],
fixed: true, fixed: false,
sortable: true, sortable: true,
head: false,
}, },
{ {
prop: 'unpack', prop: 'questStatusName',
label: '拆包状态', label: '状态',
type: 1, type: 1,
values: '', values: '',
width: '130', width: '130',
checkarr: [ checkarr: [
{ // {
value: `true`, // value: `true`,
label: '是', // label: '',
}, // },
{ // {
value: `false`, // value: `false`,
label: '否', // label: '',
}, // },
], ],
fixed: false, fixed: false,
sortable: true, sortable: true,
@ -313,6 +358,9 @@ export default {
selectionList: [], selectionList: [],
// //
data: [], data: [],
//
typeData: [],
}; };
}, },
mounted() { mounted() {
@ -402,14 +450,43 @@ export default {
}, },
methods: { methods: {
timeChange(value) { timeChange(value) {
console.log('value :>> ', value); //
value.forEach((item)=>{ const _time = new Date().getTime();
console.log('item :>> ', item); //
item.getFullYear() const _isTime = value.every(item => {
console.log('item.getFullYear() :>> ', item.getFullYear()); console.log('item.toLocaleString() :>> ', item.toLocaleString());
// const date = new Date(item) return _time < item.getTime();
// console.log('date :>> ', date); });
}) if (!_isTime) {
this.form.time = [];
return this.$message({
type: 'error',
message: '开始时间不能小于当前时间',
});
}
// _time.toLocaleTimeString()
// console.log('_time.toLocaleTimeString() :>> ', _time.toLocaleString());
},
//
filterTime(time) {
const y = time.getFullYear();
const m = time;
myDate.getYear(); //(2)
myDate.getFullYear(); //(4,1970-????)
myDate.getMonth(); //(0-11,01)
myDate.getDate(); //(1-31)
myDate.getDay(); //X(0-6,0)
myDate.getTime(); //(1970.1.1)
myDate.getHours(); //(0-23)
myDate.getMinutes(); //(0-59)
myDate.getSeconds(); //(0-59)
myDate.getMilliseconds(); //(0-999)
myDate.toLocaleDateString(); //
var mytime = myDate.toLocaleTimeString(); //
myDate.toLocaleString(); //
}, },
showdrawer(value) { showdrawer(value) {
@ -540,10 +617,92 @@ export default {
}, },
// //
handleSubmit() {}, async handleSubmit() {
//
if (!this.form.time || this.form.time.length === 0) {
return this.$message({
type: 'error',
message: '请选择盘点时间',
});
}
const formData = {};
formData.list = [];
//
this.form.selectList.forEach(val => {
if (this.form.clientList.includes(val.id))
formData.list.push({
refId: val.id,
refName: val.clientName,
});
});
//
formData.startTime = this.form.time[0].toLocaleString();
//
formData.endTime = this.form.time[1].toLocaleString();
console.log('formData :>> ', formData);
const res = await postAddtaskQuest(formData);
const { code, msg } = res.data;
if (code === 200)
this.$message({
message: msg,
type: 'success',
});
//
this.onLoad();
//
this.box = false;
},
// //
handleEditSubmit() {}, async handleEditSubmit() {
console.log('this.form :>> ', this.form);
//
if (!this.form.time || this.form.time.length === 0) {
return this.$message({
type: 'error',
message: '请选择盘点时间',
});
}
const formData = {};
formData.list = [];
//
this.form.selectList.forEach(val => {
if (this.form.clientList.includes(val.id))
formData.list.push({
refId: val.id,
refName: val.clientName,
});
});
//
formData.startTime = this.form.time[0].toLocaleString();
//
formData.endTime = this.form.time[1].toLocaleString();
console.log('formData :>> ', formData);
formData.questStatus = this.form.dictKey;
formData.questNum = this.form.questNum;
const res = await postEditTaskQuestUpdate(formData);
const { code, msg } = res.data;
console.log('msg :>> ', msg);
console.log('res :>> ', res);
if (code === 200)
this.$message({
message: msg,
type: 'success',
});
//
this.onLoad();
//
this.box = false;
},
handleDelete() { handleDelete() {
if (this.selectionList.length === 0) { if (this.selectionList.length === 0) {
@ -601,11 +760,36 @@ export default {
/** /**
* 编辑单个任务 * 编辑单个任务
*/ */
handleEditCheck(row) { async handleEditCheck(row) {
this.title = '编辑盘点任务'; this.title = '编辑盘点任务';
this.isEdit = true; // this.isEdit = true; //
this.box = true; // this.box = true; //
console.log('row :>> ', row); console.log('row :>> ', row);
this.form.brandName = row.brandName;
this.form.time = [row.startTime, row.endTime];
this.form.clientList = row.list.map(val => val.refId);
this.form.dictKey = row.questStatus;
this.form.selectList = [];
this.form.questNum = row.questNum;
console.log('this.form :>> ', this.form);
//
const res = await getDictList();
const { code, data } = res.data;
if (code === 200 && !!data) {
console.log('data :>> ', data);
this.form.selectList = data.map(item => {
return {
//
clientName: item.clientName,
// id
id: item.id,
//
brandName: item.brandName,
};
});
}
}, },
beforeClose(done) { beforeClose(done) {
@ -627,31 +811,60 @@ export default {
this.page.pageSize = pageSize; this.page.pageSize = pageSize;
this.onLoad(this.page); this.onLoad(this.page);
}, },
onLoad(page, params = {}) { async onLoad(page, params = {}) {
this.loading = true; this.loading = true;
this.query.serviceType = '3'; const postData = { ...page, ...params };
const res = await getTaskQuestPage(postData);
const {
code,
data: { records },
} = res.data;
this.data = []; this.data = [];
if (code === 200) this.data = records;
console.log('records :>> ', records);
this.data.forEach(val => {
val.brandName = '';
val.marketName = '';
val.list.forEach(item => {
if (item.brandName) val.brandName += item.brandName + ',';
if (item.refName) val.marketName += item.refName + ',';
});
});
this.loading = false; this.loading = false;
//
getDictionaryBiz('warehouse_quest_status').then(res => {
this.typeData = res.data.data.map(val => {
return {
dictKey: val.dictKey,
dictValue: val.dictValue,
};
});
});
}, },
}, },
watch: { watch: {
// //
'form.region'(newVal) { 'form.clientList'(newVal) {
let _newVal = Array.from(newVal);
let _value = ''; let _value = '';
// , // ,
if (newVal.length === 0) return (this.form.brandName = _value); if (_newVal.length === 0) return (this.form.brandName = _value);
console.log('this.form.selectList :>> ', this.form.selectList);
// //
this.form.brandName = newVal.reduce((curr, item)=> { this.form.brandName = _newVal.reduce((curr, item) => {
const _brandName = this.form.selectList.find(val => val.id === item).brandName; const _brand = this.form.selectList.find(val => val.id === item);
if (_brandName) return curr += _brandName; if (_brand) return (curr += _brand.brandName);
return curr return curr;
}, '') }, '');
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style scoped lang="scss">
.zhu { .zhu {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -676,8 +889,6 @@ export default {
.demo-form-inline .el-input { .demo-form-inline .el-input {
--el-input-width: 220px; --el-input-width: 220px;
} }
</style>
<style scoped lang="scss">
.el-row:first-of-type { .el-row:first-of-type {
/* 样式规则 */ /* 样式规则 */
.el-form { .el-form {

Loading…
Cancel
Save