|
|
|
|
@ -13,21 +13,44 @@
|
|
|
|
|
safe-area-inset-top
|
|
|
|
|
placeholder
|
|
|
|
|
/>
|
|
|
|
|
<u-tabs
|
|
|
|
|
:list="menuList"
|
|
|
|
|
:current="current"
|
|
|
|
|
key-name="name"
|
|
|
|
|
:scrollable="false"
|
|
|
|
|
:active-style="{
|
|
|
|
|
color: '#0E85FF',
|
|
|
|
|
}"
|
|
|
|
|
@change="change"
|
|
|
|
|
/>
|
|
|
|
|
</u-sticky>
|
|
|
|
|
<uni-notice-bar show-icon scrollable
|
|
|
|
|
text="安全生产!有序生产!高效生产!" />
|
|
|
|
|
<!-- 已提交-->
|
|
|
|
|
<uni-section title="已提交" type="line" title-color="#18bc37"></uni-section>
|
|
|
|
|
<el-collapse accordion>
|
|
|
|
|
<el-collapse-item v-for="(item, index) in finishList" :name="item.id" @click="handleFinishClick(item.id,index)">
|
|
|
|
|
<template #title>
|
|
|
|
|
<el-icon><Tickets /></el-icon>
|
|
|
|
|
<el-text type="success">{{timestampToTime(item.feedingTime)}}</el-text> /
|
|
|
|
|
<el-text type="warning">{{ findTextByValue(pipelineTypes, item.feedingPipeline)}}</el-text> /
|
|
|
|
|
<!-- 已提交-->
|
|
|
|
|
<view v-if="current === 0" class="container" >
|
|
|
|
|
<u-list>
|
|
|
|
|
<u-list-item
|
|
|
|
|
v-for="(item, index) in finishList"
|
|
|
|
|
:key="item"
|
|
|
|
|
@click="handleFinishClick(item.id,index)"
|
|
|
|
|
>
|
|
|
|
|
<view class="content">
|
|
|
|
|
<view class="header">
|
|
|
|
|
<view class="title">
|
|
|
|
|
<u-image
|
|
|
|
|
src="@/static/images/icon/product.png"
|
|
|
|
|
width="40rpx"
|
|
|
|
|
height="40rpx"
|
|
|
|
|
/>
|
|
|
|
|
<el-text type="success" class="u-m-l-10">
|
|
|
|
|
{{ timestampToTime(item.feedingTime) }}
|
|
|
|
|
</el-text>
|
|
|
|
|
</view>
|
|
|
|
|
<el-text type="warning">{{ findTextByValue(pipelineTypes, item.feedingPipeline)}}</el-text>
|
|
|
|
|
<el-text type="info">{{findTextByValue(feedingTypes, item.feedingType) }}</el-text>
|
|
|
|
|
</template>
|
|
|
|
|
<el-text size="large">{{item.feedingRecordCode}}</el-text>
|
|
|
|
|
<el-row>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="u-m-t-30"><el-text size="large">{{item.feedingRecordCode}}</el-text></view>
|
|
|
|
|
<el-row class="u-m-t-30 u-m-b-30">
|
|
|
|
|
<el-col :span="8">记录人:
|
|
|
|
|
<el-text type="success">{{ item.userName }}</el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
@ -35,7 +58,7 @@
|
|
|
|
|
<el-text>{{ item.weight }} </el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row v-for="(item2, index2) in finishList[index].detailList">
|
|
|
|
|
<el-row v-for="(item2, index2) in handleFinishClick(item.id,index)" :key="index2" class="u-m-b-30">
|
|
|
|
|
<el-col :span="8">原料:
|
|
|
|
|
<el-text type="warning">{{item2.itemName}}</el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
@ -46,34 +69,42 @@
|
|
|
|
|
<el-text>{{item2.unitName }} </el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
</el-collapse>
|
|
|
|
|
</view>
|
|
|
|
|
</u-list-item>
|
|
|
|
|
</u-list>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 草稿状态-->
|
|
|
|
|
<uni-section title="草稿" type="line" title-color="#f3a73f"></uni-section>
|
|
|
|
|
<el-collapse accordion>
|
|
|
|
|
<el-collapse-item v-for="(item, index) in draftList" :name="item.id" @click="handleDraftClick(item.id,index)">
|
|
|
|
|
<template #title>
|
|
|
|
|
<el-icon><Tickets /></el-icon>
|
|
|
|
|
<el-text type="success">{{timestampToTime(item.feedingTime)}}</el-text> /
|
|
|
|
|
<el-text type="warning">{{ findTextByValue(pipelineTypes, item.feedingPipeline)}}</el-text> /
|
|
|
|
|
<view v-if="current === 1" class="container" >
|
|
|
|
|
<u-list>
|
|
|
|
|
<u-list-item
|
|
|
|
|
v-for="(item, index) in draftList"
|
|
|
|
|
:key="item"
|
|
|
|
|
>
|
|
|
|
|
<view class="content">
|
|
|
|
|
<view class="header">
|
|
|
|
|
<view class="title">
|
|
|
|
|
<u-image
|
|
|
|
|
src="@/static/images/icon/product.png"
|
|
|
|
|
width="40rpx"
|
|
|
|
|
height="40rpx"
|
|
|
|
|
/>
|
|
|
|
|
<el-text type="success" class="u-m-l-10">
|
|
|
|
|
{{ timestampToTime(item.feedingTime) }}
|
|
|
|
|
</el-text>
|
|
|
|
|
</view>
|
|
|
|
|
<el-text type="warning">{{ findTextByValue(pipelineTypes, item.feedingPipeline)}}</el-text>
|
|
|
|
|
<el-text type="info">{{findTextByValue(feedingTypes, item.feedingType) }}</el-text>
|
|
|
|
|
</template>
|
|
|
|
|
<el-text size="large">{{item.feedingRecordCode}}</el-text>
|
|
|
|
|
<el-row>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="u-m-t-30"><el-text size="large">{{item.feedingRecordCode}}</el-text></view>
|
|
|
|
|
<el-row class="u-m-t-30 u-m-b-30">
|
|
|
|
|
<el-col :span="8">记录人:
|
|
|
|
|
<el-text type="success">{{ item.userName }}</el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="4" v-if="item.feedingType !=='org'">重量/kg:
|
|
|
|
|
<el-col :span="8" v-if="item.feedingType !=='org'">重量/kg:
|
|
|
|
|
<el-text>{{ item.weight }} </el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="3">
|
|
|
|
|
<el-button type="info" @click="handleUpdate(item.id)">提交</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="3">
|
|
|
|
|
<el-button type="danger" @click="handleDelete(item.id)">删除</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row v-for="(item2, index2) in draftList[index].detailList">
|
|
|
|
|
<el-row v-for="(item2, index2) in handleDraftClick(item.id,index)" :key="index2" class="u-m-b-30">
|
|
|
|
|
<el-col :span="8">原料:
|
|
|
|
|
<el-text type="warning">{{item2.itemName}}</el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
@ -84,23 +115,47 @@
|
|
|
|
|
<el-text>{{item2.unitName }} </el-text>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
</el-collapse>
|
|
|
|
|
</view>
|
|
|
|
|
</u-list-item>
|
|
|
|
|
</u-list>
|
|
|
|
|
<view class="u-m-t-30 u-m-b-30"><u-line/></view>
|
|
|
|
|
<view class="u-flex justify-end">
|
|
|
|
|
<el-col :span="4" class="u-m-r-30">
|
|
|
|
|
<u-button type="info" @click="handleUpdate(item.id)">提交</u-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="4">
|
|
|
|
|
<u-button type="error" @click="handleDelete(item.id)">删除</u-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<uni-fab v-if="auth.hasPermi('mes:feeding-record:create')" ref="fab" :pattern="pattern" @fabClick="handleAdd" />
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
import {ref, onMounted} from 'vue';
|
|
|
|
|
import {getRecordList, updateStatus, deleteById, getDetailByRecordId} from "@/api/mes/record"
|
|
|
|
|
import {timestampToTime,timestampToDateTime} from "@/utils/dateUtil";
|
|
|
|
|
import { ref, onMounted } from 'vue';
|
|
|
|
|
import { getRecordList, updateStatus, deleteById, getDetailByRecordId } from "@/api/mes/record"
|
|
|
|
|
import { timestampToTime } from "@/utils/dateUtil";
|
|
|
|
|
import { pipelineTypes,feedingTypes, findTextByValue} from "@/api/system/dict/data";
|
|
|
|
|
import {Tickets} from "@element-plus/icons-vue";
|
|
|
|
|
import modal from "@/plugins/modal";
|
|
|
|
|
import tab from "@/plugins/tab";
|
|
|
|
|
import {showConfirm} from "@/utils/common";
|
|
|
|
|
import auth from "@/plugins/auth";
|
|
|
|
|
|
|
|
|
|
const menuList = ref([
|
|
|
|
|
{
|
|
|
|
|
name: '已提交'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '草稿'
|
|
|
|
|
}
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
const current = ref(0)
|
|
|
|
|
const change = (index)=>{
|
|
|
|
|
current.value = index.index
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//已经提交的列表
|
|
|
|
|
const finishList = ref([]);
|
|
|
|
|
//草稿状态的列表
|
|
|
|
|
@ -129,11 +184,13 @@ function handleFinishClick(id, index){
|
|
|
|
|
getDetailByRecordId(id).then(response => {
|
|
|
|
|
finishList.value[index].detailList = response.data
|
|
|
|
|
})
|
|
|
|
|
return finishList.value[index].detailList
|
|
|
|
|
}
|
|
|
|
|
function handleDraftClick(id, index){
|
|
|
|
|
getDetailByRecordId(id).then(response => {
|
|
|
|
|
draftList.value[index].detailList = response.data
|
|
|
|
|
})
|
|
|
|
|
return draftList.value[index].detailList
|
|
|
|
|
}
|
|
|
|
|
/** 提交 */
|
|
|
|
|
function handleUpdate(id){
|
|
|
|
|
@ -164,11 +221,30 @@ function handleAdd(){
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.sticky {
|
|
|
|
|
background: linear-gradient(180deg, #d4e9ff 0%, #f3f9ff 100%);
|
|
|
|
|
backdrop-filter: blur(27.18px);
|
|
|
|
|
box-shadow: 0 1px 1px 0 rgba(0, 72, 145, 0.1),
|
|
|
|
|
0 0.5px 0 0 rgba(0, 0, 0, 0.1);
|
|
|
|
|
}
|
|
|
|
|
.container {
|
|
|
|
|
background-color: #f1f1f1;
|
|
|
|
|
padding: 0 20rpx 20rpx 20rpx;
|
|
|
|
|
.content {
|
|
|
|
|
margin: 20rpx 0;
|
|
|
|
|
padding: 20rpx;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
.header {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
.title {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|