From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示
---
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue | 323 +++++++++++++++++++++++++++++++----------------------
1 files changed, 186 insertions(+), 137 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
index f6ee0e2..fb092ed 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
@@ -1,6 +1,6 @@
<script setup>
-import {reactive, ref} from "vue";
+import {onMounted, reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
@@ -10,11 +10,15 @@
import SelectProduct from "@/views/sd/product/SelectProduct.vue";
import useUserInfoStore from "@/stores/userInfo";
import footSum from "@/hook/footSum"
+import userInfo from "@/stores/userInfo"
+import useOrderInfoStore from "@/stores/sd/order/orderInfo";
//璇█鑾峰彇
const { t } = useI18n()
const userStore = useUserInfoStore()
let router=useRouter()
+const user=userInfo()
+const orderInfo = useOrderInfoStore()
const getTableRow = (row,type) =>{
switch (type) {
case 'edit' :{
@@ -23,7 +27,11 @@
break
}
case 'delete':{
- request.post(`/reportingWork/deleteWork/${row.reportingWorkId}/${row.processId}/${row.thisProcess}`).then((res) => {
+ let userId=user.user.userId;
+ let userName=user.user.userName;
+ const str=row.processId
+ let processId=str.split('/')[0];
+ request.post(`/reportingWork/deleteWork/${row.reportingWorkId}/${processId}/${row.thisProcess}/${userId}/${userName}`).then((res) => {
if (res.code == 200 && res.data===true) {
ElMessage.success(t('workOrder.deleteOk'))
router.push({path: '/main/reportingWorks/SelectReportingWorks', query: {random:Math.random()}})
@@ -83,11 +91,11 @@
//鑾峰彇涓冨ぉ鍓嶅埌褰撳墠鏃堕棿
function getNowTime() {
- const start = new Date(new Date().getTime()- 3600 * 1000 * 24 * 7)
+ const start = new Date(new Date().getTime()- 3600 * 1000 * 24 * 3)
.toISOString()
.replace('T', ' ')
.slice(0,10) //榛樿寮�濮嬫椂闂�7澶╁墠
- const end = new Date(new Date().getTime()+3600 * 1000 * 24)
+ const end = new Date(new Date().getTime())
.toISOString()
.replace('T', ' ')
.slice(0,10)//榛樿缁撴潫鏃堕棿褰撳墠鏃堕棿
@@ -108,37 +116,41 @@
dataTotal : 0,
pageSize : 100
})
+let date = new Date(endTime); // 灏嗘棩鏈熷瓧绗︿覆杞负 Date 瀵硅薄
+// 浣跨敤 setDate 鏂规硶鍔犱竴澶�
+date.setDate(date.getDate() + 1);
+let newEndTime = date.toISOString().split('T')[0]; // 鑾峰彇 YYYY-MM-DD 鏍煎紡鐨勫瓧绗︿覆
+const getReportingWorkList = async () => {
//绗竴娆″姞杞芥暟鎹�
-request.post(`/reportingWork/selectReportingWork/1/${total.pageSize}/${startTime}/${endTime}/${inputVal}`, filterData.value).then((res) => {
+ await request.post(`/reportingWork/selectReportingWork/1/${total.pageSize}/${orderInfo.reportingWorkDate}/${inputVal}`, filterData.value).then((res) => {
- if (res.code == 200) {
- total.dataTotal = res.data.total.total*1
- total.pageTotal= res.data.total.pageTotal
- pageTotal.value = res.data.total
- produceList = produceList.value.concat(deepClone(res.data.data))
- // 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
- let modifiedCollection = produceList.map(item => {
- if (item.reviewedState === 1) {
- return { ...item, reviewedState: "宸插鏍�" };
- }
- else if (item.reviewedState === 0) {
- return { ...item, reviewedState: "鏈鏍�" };
- }
- else if (item.reviewedState === 2){
- return { ...item, reviewedState: "瀹℃牳涓嶉�氳繃" };
- }
- else {
- // 鍏朵粬鎯呭喌淇濇寔涓嶅彉
- return item;
- }
- });
- xGrid.value.reloadData(modifiedCollection)
- gridOptions.loading = false
- } else {
- ElMessage.warning(res.msg)
- }
-})
-
+ if (res.code == 200) {
+ total.dataTotal = res.data.total.total * 1
+ total.pageTotal = res.data.total.pageTotal
+ orderInfo.reportingWorkDate = res.data.selectDate
+ pageTotal.value = res.data.total
+ total.value = res.data.total
+ produceList = produceList.value.concat(deepClone(res.data.data))
+ // 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
+ let modifiedCollection = produceList.map(item => {
+ if (item.reviewedState === 1) {
+ return {...item, reviewedState: t('productStock.approved')};
+ } else if (item.reviewedState === 0) {
+ return {...item, reviewedState: t('reportingWorks.unreviewed')};
+ } else if (item.reviewedState === 2) {
+ return {...item, reviewedState: t('reportingWorks.notunreviewed')};
+ } else {
+ // 鍏朵粬鎯呭喌淇濇寔涓嶅彉
+ return item;
+ }
+ });
+ xGrid.value.loadData(modifiedCollection)
+ gridOptions.loading = false
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+}
//椤佃剼缈婚〉鏌ヨ
const selectPageList = ()=>{
let startTime = form.date1[0]
@@ -147,28 +159,37 @@
if (inputVal == '') {
inputVal = null
}
- request.post(`/reportingWork/selectReportingWork/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${inputVal}`,filterData.value).then((res) => {
+ let date = new Date(endTime); // 灏嗘棩鏈熷瓧绗︿覆杞负 Date 瀵硅薄
+// 浣跨敤 setDate 鏂规硶鍔犱竴澶�
+ date.setDate(date.getDate() + 1);
+ let newEndTime = date.toISOString().split('T')[0]; // 鑾峰彇 YYYY-MM-DD 鏍煎紡鐨勫瓧绗︿覆
+ gridOptions.loading=true
+ request.post(`/reportingWork/selectReportingWork/${pageNum.value}/${total.pageSize}/${orderInfo.reportingWorkDate}/${inputVal}`,filterData.value).then((res) => {
if(res.code==200){
-
+ total.value = res.data.total
produceList = deepClone(res.data.data)
// 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
let modifiedCollection = produceList.map(item => {
if (item.reviewedState === 1) {
- return { ...item, reviewedState: "宸插鏍�" };
+ //宸插鏍�
+ return { ...item, reviewedState: t('productStock.approved') };
}
else if (item.reviewedState === 0) {
- return { ...item, reviewedState: "鏈鏍�" };
+ //鏈鏍�
+ return { ...item, reviewedState: t('reportingWorks.unreviewed') };
}
else if (item.reviewedState === 2){
- return { ...item, reviewedState: "瀹℃牳涓嶉�氳繃" };
+ //瀹℃牳鏈�氳繃
+ return { ...item, reviewedState: t('reportingWorks.notunreviewed') };
}
else {
// 鍏朵粬鎯呭喌淇濇寔涓嶅彉
return item;
}
});
- xGrid.value.reloadData(modifiedCollection)
+ xGrid.value.loadData(modifiedCollection)
+ gridOptions.loading=false
}else{
ElMessage.warning(res.msg)
}
@@ -177,36 +198,45 @@
//鐐瑰嚮鏌ヨ
const getWorkOrder = () => {
-
+ gridOptions.loading = true
let startTime = form.date1[0]
let endTime = form.date1[1]
let inputVal = form.orderId
if (inputVal == '') {
inputVal = null
}
- request.post(`/reportingWork/selectReportingWork/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${inputVal}`, filterData.value).then((res) => {
+ let date = new Date(endTime); // 灏嗘棩鏈熷瓧绗︿覆杞负 Date 瀵硅薄
+// 浣跨敤 setDate 鏂规硶鍔犱竴澶�
+ date.setDate(date.getDate() + 1);
+ let newEndTime = date.toISOString().split('T')[0]; // 鑾峰彇 YYYY-MM-DD 鏍煎紡鐨勫瓧绗︿覆
+ request.post(`/reportingWork/selectReportingWork/${pageNum.value}/${total.pageSize}/${orderInfo.reportingWorkDate}/${inputVal}`, filterData.value).then((res) => {
if (res.code == 200) {
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
pageTotal.value = res.data.total
+ total.value = res.data.total
+ orderInfo.reportingWorkDate = res.data.selectDate
produceList=res.data.data
// 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
let modifiedCollection = produceList.map(item => {
if (item.reviewedState === 1) {
- return { ...item, reviewedState: "宸插鏍�" };
+ //宸插鏍�
+ return { ...item, reviewedState: t('productStock.approved') };
}
else if (item.reviewedState === 0) {
- return { ...item, reviewedState: "鏈鏍�" };
+ //鏈鏍�
+ return { ...item, reviewedState: t('reportingWorks.unreviewed') };
}
else if (item.reviewedState === 2){
- return { ...item, reviewedState: "瀹℃牳涓嶉�氳繃" };
+ //瀹℃牳鏈�氳繃
+ return { ...item, reviewedState: t('reportingWorks.notunreviewed') };
}
else {
// 鍏朵粬鎯呭喌淇濇寔涓嶅彉
return item;
}
});
- xGrid.value.reloadData(modifiedCollection)
+ xGrid.value.loadData(modifiedCollection)
gridOptions.loading = false
} else {
ElMessage.warning(res.msg)
@@ -245,31 +275,40 @@
//鑾峰彇閫変腑鏃堕棿
let startTime = form.date1[0]
let endTime = form.date1[1]
-
- request.post(`/reportingWork/selectReportingWork/1/${total.pageSize}/${startTime}/${endTime}/${inputVal}`, filterData.value).then((res) => {
+ let date = new Date(endTime); // 灏嗘棩鏈熷瓧绗︿覆杞负 Date 瀵硅薄
+// 浣跨敤 setDate 鏂规硶鍔犱竴澶�
+ date.setDate(date.getDate() + 1);
+ let newEndTime = date.toISOString().split('T')[0]; // 鑾峰彇 YYYY-MM-DD 鏍煎紡鐨勫瓧绗︿覆
+ request.post(`/reportingWork/selectReportingWork/1/${total.pageSize}/${orderInfo.reportingWorkDate}/${inputVal}`, filterData.value).then((res) => {
if(res.code==200){
total.dataTotal = res.data.total.total*1
total.pageTotal=parseInt(res.data.total)
pageNum.value=1
+ total.value = res.data.total
produceList = deepClone(res.data.data)
// 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
let modifiedCollection = produceList.map(item => {
if (item.reviewedState === 1) {
- return { ...item, reviewedState: "宸插鏍�" };
+ //宸插鏍�
+ return { ...item, reviewedState: t('productStock.approved') };
}
else if (item.reviewedState === 0) {
- return { ...item, reviewedState: "鏈鏍�" };
+ //鏈鏍�
+ return { ...item, reviewedState: t('reportingWorks.unreviewed') };
}
else if (item.reviewedState === 2){
- return { ...item, reviewedState: "瀹℃牳涓嶉�氳繃" };
+ //瀹℃牳鏈�氳繃
+ return { ...item, reviewedState: t('reportingWorks.notunreviewed') };
}
else {
// 鍏朵粬鎯呭喌淇濇寔涓嶅彉
return item;
}
});
- xGrid.value.reloadData(modifiedCollection)
+ xGrid.value.loadData(modifiedCollection)
gridOptions.loading=false
+ orderInfo.selectReportingWorksFilter.list = xGrid.value.getCheckedFilters()
+ orderInfo.selectReportingWorksFilter.data = filterData.value
}else{
ElMessage.warning(res.msg)
}
@@ -318,20 +357,21 @@
{title: t('basicData.operate'), width: 140, slots: { default: 'button_slot' },fixed:"left"},
{ type: 'seq',fixed:"left", title: t('basicData.Number'), width: 50 },
{field: 'reportingWorkId', width: 120, title: t('reportingWorks.reportingWorkId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, },
- {field: 'reportingWorkTime',width: 120, title: t('reportingWorks.reportingWorkTime') ,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'reportingWorkTime',width: 120, title: t('reportingWorks.reportingWorkTime') ,showOverflow:"ellipsis" ,},
{field: 'orderId', width: 130,title: t('order.orderId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'processId', width: 130,title: t('processCard.processId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'order.project',width: 120, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, },
+ {field: 'processId', width: 160,title: t('processCard.processId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'order.project',width: 150, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, },
{field: 'order.batch', width: 100,title: t('order.batch') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-
{field: 'thisProcess',width: 100, title: t('reportingWorks.thisProcess'),filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
{field: 'thisCompletedQuantity',width: 120, title: t('reportingWorks.thisCompletedQuantity') },
{field: 'completedArea', width: 120,title: t('reportingWorks.completedArea'), },
{field: 'thisWornQuantity',width: 120, title: t('reportingWorks.thisWornQuantity'), },
{field: 'wornArea',width: 120, title: t('reportingWorks.wornArea'), },
- {field: 'deviceName', width: 100,title: t('reportingWorks.deviceType'), },
- {field: 'teamsGroupsName',width: 120, title: t('reportingWorks.teamsType'), },
+ {field: 'deviceName', width: 100,title: t('reportingWorks.deviceType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
+ {field: 'teamsGroupsName',width: 120, title: t('reportingWorks.teamsType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' } },
{field: 'reviewedState',width: 120, title: t('processCard.reviewedState'), },
+ {field: 'reviewed',width: 120, title: t('processCard.reviewed'), },
+ {field: 'notes',width: 120, title: t('basicData.remarks'), },
],//琛ㄥご鎸夐挳
@@ -355,7 +395,8 @@
}
const List = ["thisCompletedQuantity",'completedArea','thisWornQuantity','wornArea']
if (List.includes(column.field)) {
- return footSum(data, column.field)
+ //return footSum(data, column.field)
+ return total.value?.[column.field] ?? 0
}
return ''
})
@@ -364,15 +405,20 @@
})
-
+onMounted(async () => {
+ filterData.value = orderInfo.selectReportingWorksFilter.data
+ await getReportingWorkList()
+ orderInfo.selectReportingWorksFilter.list.forEach(item => {
+ xGrid.value.getColumnByField(item.field).filters = item.column.filters
+ })
+})
</script>
<template>
- <div class="main-div-customer">
- <div id="selectForm">
- <el-row :gutter="0">
+ <div style="width: 100%;height: 100%">
+ <div class="head">
<el-date-picker
- v-model="form.date1"
+ v-model="orderInfo.reportingWorkDate"
type="daterange"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
@@ -390,81 +436,83 @@
type="primary" :icon="Search">{{$t('basicData.search')}}
</el-button>
- </el-row>
-
</div>
- <vxe-grid
- max-height="100%"
- @filter-change="filterChanged"
- class="mytable-scrollbar"
- ref="xGrid"
- v-bind="gridOptions"
+ <div class="main-table">
+ <vxe-grid
+ height="100%"
+ @filter-change="filterChanged"
+ class="mytable-scrollbar"
+ ref="xGrid"
+ v-bind="gridOptions"
- >
- <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
- <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
- <template #content="{ row }">
- <ul class="expand-wrapper">
- <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
- <span style="font-weight: bold">{{ item.title + ': ' }}</span>
- <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
- <span v-else>{{ row[item.field] }}</span>
+ >
+ <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
+ <span style="font-weight: bold">{{ item.title + ': ' }}</span>
+ <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
+ <span v-else>{{ row[item.field] }}</span>
- </li>
- </ul>
- </template>
+ </li>
+ </ul>
+ </template>
- <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
- <template #button_slot="{ row }">
-<!-- <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>-->
- <el-button @click="getTableRow(row,'edit')"
- v-if="userStore.user.permissions.indexOf('SelectReportingWorks.edit') > -1"
- link
- type="primary"
- size="small">
- {{ $t('basicData.edit') }}
- </el-button>
-<!-- <el-button @click="getTableRow(row,'delete')"-->
-<!-- v-if="userStore.user.permissions.indexOf('basicData.delete') > -1"-->
-<!-- link-->
-<!-- type="primary"-->
-<!-- size="small">-->
-<!-- {{ $t('basicData.delete') }}-->
-<!-- </el-button>-->
- <el-popconfirm :title="$t('searchOrder.deleteConfirm')" @confirm="getTableRow(row,'delete')">
- <template #reference>
- <el-button link size="small" type="primary">{{ $t('basicData.delete') }}</el-button>
- </template>
- </el-popconfirm>
-<!-- <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">-->
-<!-- <template #reference>-->
-<!-- <el-button link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>-->
-<!-- </template>-->
-<!-- </el-popconfirm>-->
- </template>
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <template #button_slot="{ row }">
+ <!-- <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>-->
+ <el-button @click="getTableRow(row,'edit')"
+ v-if="userStore.user.permissions.indexOf('selectReportingWorks.edit') > -1"
+ link
+ type="primary"
+ size="small">
+ {{ $t('basicData.edit') }}
+ </el-button>
+ <!-- <el-button @click="getTableRow(row,'delete')"-->
+ <!-- v-if="userStore.user.permissions.indexOf('basicData.delete') > -1"-->
+ <!-- link-->
+ <!-- type="primary"-->
+ <!-- size="small">-->
+ <!-- {{ $t('basicData.delete') }}-->
+ <!-- </el-button>-->
+ <el-popconfirm :title="$t('searchOrder.deleteConfirm')" @confirm="getTableRow(row,'delete')">
+ <template #reference>
+ <el-button link size="small" type="primary">{{ $t('basicData.delete') }}</el-button>
+ </template>
+ </el-popconfirm>
+ <!-- <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">-->
+ <!-- <template #reference>-->
+ <!-- <el-button link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>-->
+ <!-- </template>-->
+ <!-- </el-popconfirm>-->
+ </template>
- <template #num1_filter="{ column, $panel }">
- <div>
- <div v-for="(option, index) in column.filters" :key="index">
- <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input type="type" v-model="option.data"
+ @keyup.enter.native="$panel.confirmFilter()"
+ @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
</div>
- </div>
- </template>
- <template #pager>
- <!--浣跨敤 pager 鎻掓Ы-->
- <!-- 'PrevJump','NextJump', -->
- <vxe-pager
- @page-change="handlePageChange"
- :layouts="[ 'PrevPage', 'Jump','PageCount', 'NextPage', 'Total']"
- v-model:current-page="pageNum"
- v-model:page-size="total.pageSize"
- v-model:pager-count="total.pageTotal"
- :total="total.dataTotal"
- >
- </vxe-pager>
- </template>
+ </template>
+ <template #pager>
+ <!--浣跨敤 pager 鎻掓Ы-->
+ <!-- 'PrevJump','NextJump', -->
+ <vxe-pager
+ @page-change="handlePageChange"
+ :layouts="[ 'PrevPage', 'Jump','PageCount', 'NextPage', 'Total']"
+ v-model:current-page="pageNum"
+ v-model:page-size="total.pageSize"
+ v-model:pager-count="total.pageTotal"
+ :total="total.dataTotal"
+ >
+ </vxe-pager>
+ </template>
- </vxe-grid>
+ </vxe-grid>
+ </div>
<!-- <el-dialog v-model="updateWork" style="width: 80%;height:75% ">-->
<!-- <select-product :rowIndex="rowIndex" @getProductRow="getProductRow" style="width: 100%;height: 100%" />-->
<!-- </el-dialog>-->
@@ -472,12 +520,13 @@
</template>
<style scoped>
-.main-div-customer{
- width: 99%;
- height: 100%;
+.head{
+ width: 100%;
+ height: 35px;
}
-#selectForm {
- width: 45%;
- text-align: center;
+
+.main-table{
+ width: 100%;
+ height: calc(100% - 25px);
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0