fix user exprience

main
chenshuichuan 2 years ago
parent c8b3f089f3
commit ccdbf74a77

@ -22,7 +22,10 @@ export const ProduceReportApi = {
getProduceReportPage: async (params: any) => {
return await request.get({ url: `/mes/produce-report/page`, params })
},
// 查询生产报工单分页
getDailyReportPage: async (params: any) => {
return await request.get({ url: `/mes/produce-report/pageDailyReport`, params })
},
// 查询生产报工单详情
getProduceReport: async (id: number) => {
return await request.get({ url: `/mes/produce-report/get?id=` + id })

@ -13,7 +13,16 @@
<el-form-item label="编码" prop="code">
<el-input disabled v-model="formData.code" placeholder="请输入编码" />
</el-form-item>
<el-col :span="12">
<el-form-item label="上次抄表时间" prop="lastCheckTime">
<el-date-picker
v-model="formData.lastCheckTime"
type="date"
value-format="x"
placeholder="选择上次抄表时间"
/>
</el-form-item>
</el-col>
<el-form-item label="最后抄表值" prop="lastCheckValue">
<el-input v-model="formData.lastCheckValue" placeholder="请输入最后抄表值" />
</el-form-item>

@ -94,21 +94,12 @@ const formRef = ref() // 表单 Ref
/** 打开弹窗 */
const open = async (type: string, id?: number, deviceId: number) => {
const open = async (type: string, id?: number, deviceId: number, deviceType: string) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
dialogTitle.value = t('action.' + type) +':'+ deviceType+'抄表'
formType.value = type
resetForm()
formData.value.deviceId = deviceId
//
// if (id) {
// formLoading.value = true
// try {
// formData.value = await EnergyDeviceApi.getEnergyDeviceCheckRecord(id)
// } finally {
// formLoading.value = false
// }
// }
const data = await EnergyDeviceApi.getEnergyDevice(deviceId)
formData.value.lastCheckValue = data.lastCheckValue
formData.value.lastCheckTime = data.lastCheckTime

@ -1,33 +1,34 @@
<template>
<!-- 列表 -->
<ContentWrap>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['mes:energy-device:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增抄表
</el-button>
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- @click="openForm('create')"-->
<!-- v-hasPermi="['mes:energy-device:create']"-->
<!-- >-->
<!-- <Icon icon="ep:plus" class="mr-5px" /> 新增抄表-->
<!-- </el-button>-->
<!-- <el-text style="color:#339c1e;">{{props.deviceName}}</el-text>-->
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column
label="上次抄表时间"
<el-table-column
label="抄表时间"
align="center"
prop="lastCheckTime"
prop="checkTime"
:formatter="dateFormatter"
width="150px"
width="170px"
sortable
/>
<el-table-column label="上次抄表值" align="center" prop="lastCheckValue" />
<el-table-column
label="抄表时间"
<el-table-column
label="上次抄表时间"
align="center"
prop="checkTime"
prop="lastCheckTime"
:formatter="dateFormatter"
width="150px"
width="170px"
sortable
/>
<el-table-column label="抄表值" align="center" prop="checkValue" />
<el-table-column label="上次抄表值" align="center" prop="lastCheckValue" />
<el-table-column label="差值" align="center" prop="diffValue" />
<el-table-column label="单价" align="center" prop="unitPrice" />
<el-table-column label="备注" align="center" prop="remark" />
@ -80,6 +81,7 @@ const message = useMessage() // 消息弹窗
const props = defineProps<{
deviceId?: number // Id
deviceName?: string
}>()
const loading = ref(false) //
const list = ref([]) //
@ -128,7 +130,7 @@ const openForm = (type: string, id?: number) => {
message.error('请选择一个能源设备')
return
}
formRef.value.open(type, id, props.deviceId)
formRef.value.open(type, id, props.deviceId,props.deviceName)
}
/** 删除按钮操作 */

@ -68,8 +68,8 @@
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="编码" align="center" prop="code" />
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="设备类型" align="center" prop="deviceType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.MES_ENERGY_DEVICE_TYPE" :value="scope.row.deviceType" />
@ -91,22 +91,15 @@
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" fixed="right" align="center" width="150px">
<el-table-column label="操作" fixed="right" align="center" width="200px">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
type="warning"
@click="newRecordForm(scope.row.id,scope.row.name )"
v-hasPermi="['mes:energy-device:update']"
>
编辑
抄表
</el-button>
<el-button
link
@ -116,6 +109,14 @@
>
重置
</el-button>
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['mes:energy-device:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@ -136,15 +137,18 @@
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<!-- 新增设备表单弹窗添加/修改 -->
<EnergyDeviceForm ref="formRef" @success="getList" />
<!-- 表单弹窗添加/修改 -->
<!-- 重置弹窗添加/修改 -->
<ResetForm ref="resetFormRef" @success="getList" />
<!-- 抄表弹窗添加/修改 -->
<EnergyDeviceCheckRecordForm ref="newRecordFormRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="energyDeviceCheckRecord">
<el-tab-pane label="抄表记录" name="energyDeviceCheckRecord">
<EnergyDeviceCheckRecordList :device-id="currentRow.id" />
<el-tab-pane :label="'抄表记录: '+currentRow.name" name="energyDeviceCheckRecord">
<EnergyDeviceCheckRecordList :device-id="currentRow.id" :device-name="currentRow.name" />
</el-tab-pane>
</el-tabs>
</ContentWrap>
@ -158,6 +162,8 @@ import { EnergyDeviceApi, EnergyDeviceVO } from '@/api/mes/energydevice'
import EnergyDeviceForm from './EnergyDeviceForm.vue'
import ResetForm from './ResetForm.vue'
import EnergyDeviceCheckRecordList from './components/EnergyDeviceCheckRecordList.vue'
import EnergyDeviceCheckRecordForm
from "@/views/mes/energydevice/components/EnergyDeviceCheckRecordForm.vue";
/** 能源设备 列表 */
defineOptions({ name: 'EnergyDevice' })
@ -192,6 +198,9 @@ const getList = async () => {
const data = await EnergyDeviceApi.getEnergyDevicePage(queryParams)
list.value = data.list
total.value = data.total
if(list.value.length>0){
currentRow.value = list.value[0]
}
} finally {
loading.value = false
}
@ -257,4 +266,11 @@ const handleCurrentChange = (row) => {
onMounted(() => {
getList()
})
/** 添加/修改操作 */
const newRecordFormRef = ref()
const newRecordForm = (id: number, deviceType: string) => {
//type: string, id?: number, deviceId: number, deviceType: string
newRecordFormRef.value.open("create", null, id, deviceType)
}
</script>

@ -206,7 +206,7 @@
type="primary"
@click="handleStatus(scope.row.code, scope.row.id, 'start',2,'开工')"
v-hasPermi="['mes:plan:update']"
v-if="scope.row.status === 1 || scope.row.status ===4"
v-if="scope.row.status === 1 || scope.row.status ===3"
>
开工
</el-button>

@ -19,6 +19,7 @@
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
@change="handleQuery"
/>
</el-form-item>
</el-col>
@ -30,6 +31,7 @@
:key="item.id"
:label="item.nickname"
:value="item.id"
@change="handleQuery"
/>
</el-select>
</el-form-item>
@ -56,6 +58,7 @@
:key="item.id"
:label="item.name"
:value="item.id"
@change="handleQuery"
/>
</el-select>
</el-form-item>
@ -69,7 +72,7 @@
v-for="dict in getStrDictOptions(DICT_TYPE.MES_ORG_TYPE)"
:key="dict.value"
:label="dict.value"
@change="changeDate"
@change="handleQuery"
>
{{ dict.label }}
</el-radio>
@ -96,6 +99,21 @@
<el-tab-pane label="计时报表" name="jishi" />
</el-tabs>
<ContentWrap v-if="typeName==='jijian'">
<el-row>
<el-col :span="4">
<el-text>本页产品总数{{totalNumber}} </el-text>
</el-col>
<el-col :span="4">
<el-text>成品总数{{totalQuality}} </el-text>
</el-col>
<el-col :span="4">
<el-text>废品总数{{totalWaste}} </el-text>
</el-col>
<el-col :span="4">
<el-text>成品率{{erpNumberFormatter(Number(totalQuality)/Number(totalNumber)*100,3)+'%'}} </el-text>
</el-col>
</el-row>
<el-divider />
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column
label="报工日期"
@ -142,6 +160,8 @@
</ContentWrap>
<!-- 列表 -->
<ContentWrap v-if="typeName==='jishi'">
<el-text>本页总计时数{{totalTime}} </el-text>
<el-divider />
<el-table v-loading="loading" :data="listJiShi" :stripe="true" :show-overflow-tooltip="true">
<el-table-column
label="报工日期"
@ -205,7 +225,7 @@ import {defaultProps, handleTree} from "@/utils/tree";
import * as UserApi from "@/api/system/user";
import {OrganizationApi} from "@/api/mes/organization";
import {ProductApi, ProductVO} from "@/api/erp/product/product";
import {erpCountTableColumnFormatter} from "@/utils";
import {erpCountTableColumnFormatter, erpNumberFormatter} from "@/utils";
import {useUserStore} from "@/store/modules/user";
import {checkPermi} from "@/utils/permission";
import ProduceReportDetailList
@ -228,6 +248,11 @@ const total = ref(0) // 列表的总页数
const listJiShi = ref<ProduceReportVO[]>([]) //
const totalJiShi = ref(0) //
const totalNumber = ref(0) //
const totalQuality = ref(0) //
const totalWaste = ref(0) //
const totalTime = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
@ -238,6 +263,7 @@ const queryParams = reactive({
orgId: undefined,
orgType: undefined,
wasteReason: undefined,
totalTime: undefined,
remark: undefined,
isEnable: undefined,
createTime: [],
@ -256,16 +282,33 @@ const getList = async () => {
queryParams.reportStatus = 2
//
if(typeName.value ==='jishi'){
const data = await ProduceReportApi.getProduceReportPage(queryParams)
queryParams.totalTime=0
const data = await ProduceReportApi.getDailyReportPage(queryParams)
listJiShi.value = data.list
totalJiShi.value = data.total
let sumTime= 0;
// value
for (let entity of listJiShi.value) {
sumTime += entity.totalTime
}
totalTime.value = sumTime
}
//
else{
const data = await ProduceReportDetailApi.getProduceReportDetailPage(queryParams)
list.value = data.list
total.value = data.total
// 0
let sumQuality= 0;
let sumWaste= 0;
// value
for (let entity of list.value) {
sumQuality += entity.qualityNumber;
sumWaste += entity.wasteNumber
}
totalQuality.value = sumQuality
totalWaste.value = sumWaste
totalNumber.value = Number(totalQuality.value)+Number(totalWaste.value)
}
} finally {
loading.value = false
@ -293,6 +336,7 @@ const handleExport = async () => {
exportLoading.value = true
//v
queryParams.reportStatus = 2
queryParams.totalTime=0
//
if(typeName.value ==='jishi'){
const data = await ProduceReportApi.exportProduceReport(queryParams)

@ -140,6 +140,7 @@ const formRules = reactive<FormRules>({
],
mobile: [
{
required: true,
pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'

Loading…
Cancel
Save