This commit is contained in:
qianhao.xu
2024-04-28 15:19:52 +08:00
parent 64deb91da0
commit 0d8e4cbdce
4 changed files with 118 additions and 35 deletions

View File

@@ -25,3 +25,12 @@ export function getworkorderlist(data) {
data
})
}
export function generatetasklist(data) {
return request({
url: '/mes/mm/materialinput/generatetask',
method: 'post',
data
})
}

View File

@@ -8,7 +8,7 @@
<u--input
v-model="select_position"
border="surround"
placeholder="后置图标"
placeholder="填入站点"
suffixIcon="map-fill"
suffixIconStyle="{color: #00aaff;font-size: 30px;}"
></u--input>
@@ -33,14 +33,20 @@
</view>
<u-line></u-line>
<view class="area">
<view style="margin-top: 5px; margin-bottom: 20px; font-size: 1.2rem">选择日期 {{ workerorder_time | formatDate }}</view>
<u-row>
<u-col span="8">
<u-button @click="timeshow = true">选择日期</u-button>
<u-datetime-picker :show="timeshow" v-model="workerorder_time" mode="date" @confirm="confirm()" @cancel="timeshow = false"></u-datetime-picker>
</u-col>
<u-col span="4">
<view style="font-size: 1.2rem">{{ workerorder_time | formatDate }}</view>
</u-col>
</u-row>
</view>
<u-line></u-line>
<u-row gutter="30">
<u-col span="4">
<view>工单</view>
<view>毛坯</view>
</u-col>
<u-col span="3">
<span>计划上件数</span>
@@ -57,7 +63,7 @@
<u-list-item v-for="(item, index) in workerorder_list" :key="index">
<u-row gutter="30">
<u-col span="4">
<u-tag :text="item.clientWorkorder" plain></u-tag>
<u-tag :text="item.blankNumber" plain></u-tag>
</u-col>
<u-col span="3">
<u-tag :text="item.previousNumber" plain></u-tag>
@@ -66,18 +72,28 @@
<u-tag type="success" :text="item.previousNumbered" plain></u-tag>
</u-col>
<u-col span="2">
<u-switch v-model="item.selected" size="38"></u-switch>
<u-switch v-model="item.selected" size="38" @change="switch_change(index, item.selected)"></u-switch>
<u-modal :show="show_model" title="确认选中数量" @confirm="ingredient_confirm">
<u--form labelPosition="left" labelWidth="240" :labelStyle="labelstyle">
<u-form-item label="配料数量" borderBottom>
<u--input v-model="ingredient" border="surround" type="number"></u--input>
</u-form-item>
</u--form>
</u-modal>
</u-col>
</u-row>
<u-line></u-line>
</u-list-item>
</u-list>
</view>
<u-button type="primary" size="big" text="生成配料任务" @click="generatetask"></u-button>
<u-modal :show="task.show" :title="task.title" :content="task.content" @confirm="task.show = false"></u-modal>
</view>
</template>
<script>
import { achievestartpoints, getworkorderlist } from '@/api/materialManagement/MaterialProductionInput.js';
import { achievestartpoints, getworkorderlist, generatetasklist } from '@/api/materialManagement/MaterialProductionInput.js';
export default {
data() {
@@ -87,7 +103,16 @@ export default {
timeshow: false,
workerorder_time: Number(new Date()),
labelstyle: { 'font-size': '1.2rem' },
workerorder_list: []
workerorder_list: [],
show_model: false,
ingredient: 100,
selected_index: null,
message: false,
task: {
show: false,
title: '生成配料任务',
content: ''
}
};
},
filters: {
@@ -131,39 +156,89 @@ export default {
},
//todo 根据日期获取工单
get_workorder_list() {
// let date = new Date(this.workerorder_time);
// date = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
// 使用时间戳创建一个日期对象
let date = new Date(this.workerorder_time);
// 获取上海时区的时间偏移量(以分钟为单位)
let offset = 8 * 60; // 上海时区为 UTC+8
// 计算上海时区的时间
let shanghaiTime = new Date(date.getTime() + offset * 60 * 1000);
const query = {
datetimespan: date
datetimespan: shanghaiTime
};
getworkorderlist(query).then((res) => {
if (res.code == 200) {
this.workerorder_list = res.data;
let newList = [];
for(let item of workerorder_list){
item.selected = false;
item.previousNumbered = 0;
newList.push(item);
for (let item = 0; item < this.workerorder_list.length; item++) {
this.workerorder_list[item].selected = false;
this.workerorder_list[item].previousNumbered = 0;
}
this.workerorder_list = newList;
// this.workerorder_list.forEach((item) => {
// item['selected'] = false;
// item['previousNumbered'] = 0;
// });
}
});
},
//todo 选中事件
// change_selected(value) {
// // 修改值
// console.log('change_selected',value);
// // console.log(index);
// // //this.workerorder_list[index].selected = true;
// // this.$nextTick(()=>{
// // this.workerorder_list[index].selected = true;
// // })
// // // this.$set(this.workerorder_list[index], 'selected', true);
// // console.log('123456',this.workerorder_list[index])
// }
//todo 选中之后 弹窗
switch_change(index, selected) {
console.log('selected', selected);
if (selected) {
this.show_model = true;
this.ingredient = this.workerorder_list[index].previousNumber;
this.selected_index = index;
} else {
this.workerorder_list[index].previousNumbered = 0;
// 使用 Vue.set 方法或 this.$set 方法来添加新的属性
// this.$set(this.workerorder_list[index], 'previousNumbered', 0);
// this.$nextTick(() => {
// this.workerorder_list[index].previousNumbered = 0;
// });
this.$forceUpdate();
}
},
//模态框 确认
ingredient_confirm() {
this.show_model = false;
this.workerorder_list[this.selected_index].previousNumbered = this.ingredient;
},
// 生成配料任务
generatetask() {
let array1 = this.workerorder_list.filter((it) => it.selected);
console.log(array1);
let array = array1.map((it) => {
return {
workorder: it.clientWorkorder,
partnumber: it.blankNumber,
previousNumber: it.previousNumber,
previousNumbered: it.previousNumbered
};
});
console.log(array);
const query = {
agv_position: this.select_position,
workorders: array
};
generatetasklist(query).then((res) => {
if (res.code == 200) {
this.task.show = true;
this.task.content = '生产配料任务成功' + res.data;
this.reset()
}
});
},
reset(){
this.select_position="";
this.selected_index=null;
for (let i = 0; i < this.workerorder_list.length; i++) {
this.workerorder_list[i].previousNumbered = 0,
this.workerorder_list[i].selected = false
}
this.get_workorder_list();
}
}
};
</script>
@@ -173,7 +248,7 @@ export default {
background-color: white;
}
.scrollable-container {
height: 300px;
height: 400px;
overflow: auto;
border: 3px solid #ccc;
}

View File

@@ -33,7 +33,7 @@
index: 1
},
{
name: 'AGV运输',
name: '车间叫料',
icon: 'grid-fill',
url: 'pages/materialManagement/MaterialProductionInput/MaterialProductionInput',
type: 1,

View File

@@ -50,7 +50,6 @@ const request = config => {
dataType: 'json'
}).then(response => {
let [error, res] = response
console.log(response);
// console.log('token:','Bearer ' + getToAccess-Control-Allow-Originken());
// console.log('request:',storageBaseUrl + config.url,response);
if (error) {