From f54d7fe89cf6b9143b468a7cc192f13a4c9cec22 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 二月 2026 10:42:21 +0800
Subject: [PATCH] 进销存升级 1.生产报工带出来的出厂检数据编辑时,规格型号回显还是有问题 2.用印管理分页数字展示有误
---
src/views/collaborativeApproval/sealManagement/index.vue | 224 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 158 insertions(+), 66 deletions(-)
diff --git a/src/views/collaborativeApproval/sealManagement/index.vue b/src/views/collaborativeApproval/sealManagement/index.vue
index 8e0d054..b4a1886 100644
--- a/src/views/collaborativeApproval/sealManagement/index.vue
+++ b/src/views/collaborativeApproval/sealManagement/index.vue
@@ -27,7 +27,7 @@
<el-option label="宸叉嫆缁�" value="rejected" />
</el-select>
</el-col>
- <el-col :span="8">
+ <el-col :span="6">
<el-button type="primary" @click="searchSealApplications">鎼滅储</el-button>
<el-button @click="resetSealSearch">閲嶇疆</el-button>
<el-button @click="handleExport">瀵煎嚭</el-button>
@@ -36,53 +36,27 @@
</el-col>
</el-row>
- <el-table :data="sealApplications" border v-loading="tableLoading" style="width: 100%">
- <el-table-column prop="applicationNum" label="鐢宠缂栧彿" width="120" />
- <el-table-column prop="title" label="鐢宠鏍囬" min-width="200" />
- <el-table-column prop="createUserName" label="鐢宠浜�" width="120" />
- <el-table-column prop="department" label="鎵�灞為儴闂�" width="150" />
- <el-table-column prop="sealType" label="鐢ㄥ嵃绫诲瀷" width="120">
- <template #default="scope">
- {{ getSealTypeText(scope.row.sealType) }}
- </template>
- </el-table-column>
- <el-table-column prop="createTime" label="鐢宠鏃堕棿" width="180" />
- <el-table-column prop="status" label="鐘舵��" width="100">
- <template #default="scope">
- <el-tag :type="getStatusType(scope.row.status)">
- {{ getStatusText(scope.row.status) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" width="200" fixed="right">
- <template #default="scope">
- <el-button link @click="viewSealDetail(scope.row)">鏌ョ湅</el-button>
- <el-button
- v-if="scope.row.status === 'pending'"
- link
- type="primary"
- @click="approveSeal(scope.row)"
- >
- 瀹℃壒
- </el-button>
- <el-button
- v-if="scope.row.status === 'pending'"
- link
- type="danger"
- @click="rejectSeal(scope.row)"
- >
- 鎷掔粷
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
- :page="page.current" :limit="page.size" @pagination="paginationChange" />
+ <PIMTable
+ rowKey="id"
+ :column="sealTableColumn"
+ :tableData="sealApplications"
+ :tableLoading="tableLoading"
+ :page="page"
+ :isShowPagination="true"
+ @pagination="paginationChange"
+ />
</div>
</el-card>
<!-- 鐢ㄥ嵃鐢宠瀵硅瘽妗� -->
- <el-dialog v-model="showSealApplyDialog" title="鐢宠鐢ㄥ嵃" width="600px">
+ <FormDialog
+ v-model="showSealApplyDialog"
+ title="鐢宠鐢ㄥ嵃"
+ :width="'600px'"
+ @close="closeSealApplyDialog"
+ @confirm="submitSealApplication"
+ @cancel="closeSealApplyDialog"
+ >
<el-form :model="sealForm" :rules="sealRules" ref="sealFormRef" label-width="100px">
<el-form-item label="鐢宠缂栧彿" prop="applicationNum">
<el-input v-model="sealForm.applicationNum" placeholder="璇疯緭鍏ョ敵璇风紪鍙�" />
@@ -119,13 +93,7 @@
</el-radio-group>
</el-form-item>
</el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="showSealApplyDialog = false">鍙栨秷</el-button>
- <el-button type="primary" @click="submitSealApplication">鎻愪氦鐢宠</el-button>
- </span>
- </template>
- </el-dialog>
+ </FormDialog>
<!-- 瑙勭珷鍒跺害鍙戝竷瀵硅瘽妗� -->
<!-- <el-dialog v-model="showRegulationDialog" :title="operationType === 'add' ? '鍙戝竷鍒跺害' : '缂栬緫鍒跺害'" width="800px">
@@ -177,10 +145,17 @@
</el-dialog> -->
<!-- 鐢ㄥ嵃璇︽儏瀵硅瘽妗� -->
- <el-dialog v-model="showSealDetailDialog" title="鐢ㄥ嵃鐢宠璇︽儏" width="700px">
+ <FormDialog
+ v-model="showSealDetailDialog"
+ title="鐢ㄥ嵃鐢宠璇︽儏"
+ :width="'700px'"
+ @close="closeSealDetailDialog"
+ @confirm="closeSealDetailDialog"
+ @cancel="closeSealDetailDialog"
+ >
<div v-if="currentSealDetail" class="mb10">
<el-descriptions :column="2" border>
- <el-descriptions-item label="鐢宠缂栧彿">{{ currentSealDetail.id }}</el-descriptions-item>
+ <el-descriptions-item label="鐢宠缂栧彿">{{ currentSealDetail.applicationNum }}</el-descriptions-item>
<el-descriptions-item label="鐢宠鏍囬">{{ currentSealDetail.title }}</el-descriptions-item>
<el-descriptions-item label="鐢宠浜�">{{ currentSealDetail.createUserName }}</el-descriptions-item>
<el-descriptions-item label="鎵�灞為儴闂�">{{ currentSealDetail.department }}</el-descriptions-item>
@@ -194,10 +169,17 @@
<el-descriptions-item label="鐢宠鍘熷洜" :span="2">{{ currentSealDetail.reason }}</el-descriptions-item>
</el-descriptions>
</div>
- </el-dialog>
+ </FormDialog>
<!-- 瑙勭珷鍒跺害璇︽儏瀵硅瘽妗� -->
- <el-dialog v-model="showRegulationDetailDialog" title="瑙勭珷鍒跺害璇︽儏" width="800px">
+ <FormDialog
+ v-model="showRegulationDetailDialog"
+ title="瑙勭珷鍒跺害璇︽儏"
+ :width="'800px'"
+ @close="closeRegulationDetailDialog"
+ @confirm="handleRegulationDetailConfirm"
+ @cancel="closeRegulationDetailDialog"
+ >
<div v-if="currentRegulationDetail">
<el-descriptions :column="2" border>
<el-descriptions-item label="鍒跺害缂栧彿">{{ currentRegulationDetail.id }}</el-descriptions-item>
@@ -216,10 +198,17 @@
<el-button type="success" @click="resetForm(currentRegulationDetail)">纭鏌ョ湅</el-button>
</div>
</div>
- </el-dialog>
+ </FormDialog>
<!-- 鐗堟湰鍘嗗彶瀵硅瘽妗� -->
- <el-dialog v-model="showVersionHistoryDialog" title="鐗堟湰鍘嗗彶" width="800px">
+ <FormDialog
+ v-model="showVersionHistoryDialog"
+ title="鐗堟湰鍘嗗彶"
+ :width="'800px'"
+ @close="closeVersionHistoryDialog"
+ @confirm="closeVersionHistoryDialog"
+ @cancel="closeVersionHistoryDialog"
+ >
<el-table :data="versionHistory" style="width: 100%;margin-bottom: 10px">
<el-table-column prop="version" label="鐗堟湰鍙�" width="100" />
<el-table-column prop="updateTime" label="鏇存柊鏃堕棿" width="180" />
@@ -232,10 +221,17 @@
</template>
</el-table-column>
</el-table>
- </el-dialog>
+ </FormDialog>
<!-- 闃呰鐘舵�佸璇濇 -->
- <el-dialog v-model="showReadStatusDialog" title="闃呰鐘舵��" width="800px">
+ <FormDialog
+ v-model="showReadStatusDialog"
+ title="闃呰鐘舵��"
+ :width="'800px'"
+ @close="closeReadStatusDialog"
+ @confirm="closeReadStatusDialog"
+ @cancel="closeReadStatusDialog"
+ >
<el-table :data="readStatusList" style="width: 100%;margin-bottom: 10px">
<el-table-column prop="employee" label="鍛樺伐濮撳悕" width="120" />
<el-table-column prop="department" label="鎵�灞為儴闂�" width="150" />
@@ -249,7 +245,7 @@
</template>
</el-table-column>
</el-table>
- </el-dialog>
+ </FormDialog>
</div>
</template>
@@ -261,9 +257,11 @@
import { listSealApplication, addSealApplication, updateSealApplication,listRuleManagement,addRuleManagement,updateRuleManagement,delRuleManagement,getReadingStatusByRuleId,getReadingStatusList,addReadingStatus,updateReadingStatus } from '@/api/collaborativeApproval/sealManagement.js'
import { el } from 'element-plus/es/locales.mjs'
import { getUserProfile, userListNoPageByTenantId } from '@/api/system/user.js'
-import {staffJoinDel, staffJoinListPage} from "@/api/personnelManagement/onboarding.js";
import useUserStore from '@/store/modules/user'
import { userLoginFacotryList } from "@/api/system/user.js"
+import {staffOnJobListPage} from "@/api/personnelManagement/staffOnJob.js"
+import FormDialog from '@/components/Dialog/FormDialog.vue'
+import PIMTable from '@/components/PIMTable/PIMTable.vue'
// 鍝嶅簲寮忔暟鎹�
const currentUser = ref(null)
@@ -305,7 +303,7 @@
// 鍒嗛〉鍙傛暟
const page = reactive({
current: 1,
- size: 100,
+ size: 10,
total: 0
})
// 瑙勭珷鍒跺害鐩稿叧
@@ -388,10 +386,56 @@
official: '鍏珷',
contract: '鍚堝悓涓撶敤绔�',
finance: '璐㈠姟涓撶敤绔�',
+ legal: '娉曚汉绔�',
tegal: '鎶�鏈笓鐢ㄧ珷'
}
return sealTypeMap[sealType] || '鏈煡'
}
+
+// 鐢ㄥ嵃鐢宠琛ㄦ牸鍒楅厤缃紙闇�鍦� getStatusText/getSealTypeText 绛変箣鍚庡畾涔夛級
+const sealTableColumn = ref([
+ { label: '鐢宠缂栧彿', prop: 'applicationNum',},
+ { label: '鐢宠鏍囬', prop: 'title', showOverflowTooltip: true },
+ { label: '鐢宠浜�', prop: 'createUserName', },
+ { label: '鎵�灞為儴闂�', prop: 'department', width: 150 },
+ {
+ label: '鐢ㄥ嵃绫诲瀷',
+ prop: 'sealType',
+ dataType: 'tag',
+ formatData: (v) => getSealTypeText(v),
+ formatType: () => 'info'
+ },
+ { label: '鐢宠鏃堕棿', prop: 'createTime', width: 180 },
+ {
+ label: '鐘舵��',
+ prop: 'status',
+ width: 100,
+ dataType: 'tag',
+ formatData: (v) => getStatusText(v),
+ formatType: (v) => getStatusType(v)
+ },
+ {
+ dataType: 'action',
+ label: '鎿嶄綔',
+ width: 200,
+ fixed: 'right',
+ align: 'center',
+ operation: [
+ { name: '鏌ョ湅', clickFun: (row) => viewSealDetail(row) },
+ {
+ name: '瀹℃壒',
+ clickFun: (row) => approveSeal(row),
+ showHide: (row) => row.status === 'pending'
+ },
+ {
+ name: '鎷掔粷',
+ clickFun: (row) => rejectSeal(row),
+ showHide: (row) => row.status === 'pending'
+ }
+ ]
+ }
+])
+
// 鍒跺害鍒嗙被
const getCategoryText = (category) => {
const categoryMap = {
@@ -434,7 +478,7 @@
addSealApplication(sealForm).then(res => {
if(res.code == 200){
ElMessage.success('鐢宠鎻愪氦鎴愬姛')
- showSealApplyDialog.value = false
+ closeSealApplyDialog()
getSealApplicationList()
Object.assign(sealForm, {
applicationNum: '',
@@ -447,12 +491,53 @@
})
}
}).catch(err => {
- ElMessage.error(err.msg)
+ console.log(err.msg)
})
} catch (error) {
- ElMessage.error('璇峰畬鍠勭敵璇蜂俊鎭�')
}
+}
+// 鍏抽棴鐢ㄥ嵃鐢宠瀵硅瘽妗�
+const closeSealApplyDialog = () => {
+ // 娓呯┖琛ㄥ崟鏁版嵁
+ Object.assign(sealForm, {
+ applicationNum: '',
+ title: '',
+ sealType: '',
+ reason: '',
+ approveUserId: '',
+ urgency: 'normal',
+ status: 'pending'
+ })
+ // 娓呴櫎琛ㄥ崟楠岃瘉鐘舵��
+ if (sealFormRef.value) {
+ sealFormRef.value.clearValidate()
+ }
+ showSealApplyDialog.value = false
+}
+// 鍏抽棴鐢ㄥ嵃璇︽儏瀵硅瘽妗�
+const closeSealDetailDialog = () => {
+ showSealDetailDialog.value = false
+}
+// 鍏抽棴瑙勭珷鍒跺害璇︽儏瀵硅瘽妗�
+const closeRegulationDetailDialog = () => {
+ showRegulationDetailDialog.value = false
+}
+// 澶勭悊瑙勭珷鍒跺害璇︽儏纭
+const handleRegulationDetailConfirm = () => {
+ // 濡傛灉tableData>0锛屾墽琛岀‘璁ゆ煡鐪嬫搷浣�
+ if (currentRegulationDetail.value && tableData.value && tableData.value.length > 0) {
+ resetForm(currentRegulationDetail.value)
+ }
+ closeRegulationDetailDialog()
+}
+// 鍏抽棴鐗堟湰鍘嗗彶瀵硅瘽妗�
+const closeVersionHistoryDialog = () => {
+ showVersionHistoryDialog.value = false
+}
+// 鍏抽棴闃呰鐘舵�佸璇濇
+const closeReadStatusDialog = () => {
+ showReadStatusDialog.value = false
}
// 鏂板
const handleAdd = () => {
@@ -583,7 +668,7 @@
currentUser.value = res.data.userName
}
})
- staffJoinListPage({staffState: 1, ...page}).then(res => {
+ staffOnJobListPage({staffState: 1, ...page}).then(res => {
tableLoading.value = false;
// tableData.value = res.data.records
// //绛涢�夊嚭鍜宑urrentUser鍚屽悕鐨勪汉鍛�
@@ -735,6 +820,13 @@
})
}
+// 鍒嗛〉鍙樺寲澶勭悊
+const paginationChange = (obj) => {
+ page.current = obj.page;
+ page.size = obj.limit;
+ getSealApplicationList();
+};
+
// 鐩戝惉瀵硅瘽妗嗘墦寮�锛岃幏鍙栫敤鎴峰垪琛�
watch(showSealApplyDialog, (newVal) => {
if (newVal) {
--
Gitblit v1.9.3