From bb5ec20596998a83287706f7be2c91a7d7080b10 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 26 十二月 2025 10:40:33 +0800
Subject: [PATCH] 1.金鹰黄金加上筛选条件
---
src/views/lavorissue/issue/index.vue | 86 ++++++++++++++++++++++++++++++++++--------
1 files changed, 69 insertions(+), 17 deletions(-)
diff --git a/src/views/lavorissue/issue/index.vue b/src/views/lavorissue/issue/index.vue
index 6222ea0..320a27b 100644
--- a/src/views/lavorissue/issue/index.vue
+++ b/src/views/lavorissue/issue/index.vue
@@ -35,9 +35,10 @@
</el-tree>
</div>
<div class="right">
- <div v-if="currentPosition" class="position-config">
+ <div v-if="currentDept || currentPosition" class="position-config">
<div class="title">
- <span>宀椾綅閰嶇疆锛歿{ currentPosition.label }}</span>
+ <span v-if="currentPosition">宀椾綅閰嶇疆锛歿{ currentPosition.label }}</span>
+ <span v-else-if="currentDept">閮ㄩ棬閰嶇疆锛歿{ currentDept.label }}</span>
</div>
<div class="q-toolbar">
<el-button size="small" type="primary" @click="openAddItemDialog">鏂板鐢ㄥ搧</el-button>
@@ -57,8 +58,20 @@
</template>
</el-table-column>
</el-table>
+ <!-- 鍒嗛〉缁勪欢 -->
+ <el-pagination
+ v-model:current-page="queryParams.current"
+ v-model:page-size="queryParams.size"
+ :page-sizes="[10, 20, 50, 100]"
+ :total="total"
+ background
+ layout="total, sizes, prev, pager, next, jumper"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ style="margin-top: 16px; justify-content: flex-end;s"
+ />
</div>
- <div v-else class="empty">璇烽�夋嫨宸︿晶宀椾綅杩涜閰嶇疆</div>
+ <div v-else class="empty">璇烽�夋嫨宸︿晶閮ㄩ棬鎴栧矖浣嶈繘琛岄厤缃�</div>
</div>
</div>
<!-- 鏂板閮ㄩ棬/宀椾綅寮圭獥 -->
@@ -98,7 +111,7 @@
<el-input-number v-model="addItemForm.quantity" :min="0" :precision="0" />
</el-form-item>
<el-form-item label="瀛e害">
- <el-select v-model="addItemForm.quarter" placeholder="閫夋嫨瀛e害" style="width: 160px">
+ <el-select v-model="addItemForm.quarter" placeholder="閫夋嫨瀛e害">
<el-option :value="1" :label="quarterLabelFromNumber(1)" />
<el-option :value="2" :label="quarterLabelFromNumber(2)" />
<el-option :value="3" :label="quarterLabelFromNumber(3)" />
@@ -200,10 +213,41 @@
return n === 1 ? '绗竴瀛e害' : n === 2 ? '绗簩瀛e害' : n === 3 ? '绗笁瀛e害' : n === 4 ? '绗洓瀛e害' : ''
}
+// 鏌ヨ鍙傛暟鍜屽垎椤电浉鍏冲彉閲�
+const queryParams = reactive({
+ current: 1,
+ size: 10
+})
+const total = ref(0)
+
+// 鍒嗛〉澶у皬鏀瑰彉
+function handleSizeChange(val) {
+ queryParams.size = val
+ queryParams.current = 1
+ loadLaborConf()
+}
+
+// 褰撳墠椤垫敼鍙�
+function handleCurrentChange(val) {
+ queryParams.current = val
+ loadLaborConf()
+}
+
+// 鍔犺浇鍔充繚鐢ㄥ搧閰嶇疆鍒楄〃锛堟敮鎸佸垎椤碉級
async function loadLaborConf(deptPositionId) {
+ if (!deptPositionId) {
+ const currentId = currentPosition.value?.id ?? currentDept.value?.raw?.id
+ if (!currentId) return
+ deptPositionId = currentId
+ }
+
try {
laborConfLoading.value = true
- const res = await laborConfListPage({ deptPositionId })
+ const res = await laborConfListPage({
+ deptPositionId,
+ current: queryParams.current,
+ size: queryParams.size
+ })
laborConfList.value = res.data.records.map(it => ({
...it,
id: it.id ?? it.dictId ?? it.value,
@@ -212,6 +256,7 @@
quarter: it.quarter,
quarterLabel: quarterLabelFromNumber(it.quarter),
}))
+ total.value = res.data.total || 0
} finally {
laborConfLoading.value = false
}
@@ -224,7 +269,7 @@
const addItemForm = reactive({ id: undefined, dictId: undefined, quantity: 0, quarter: 1 })
function openAddItemDialog() {
- if (!currentPosition.value) return
+ if (!currentDept.value && !currentPosition.value) return
addItemDialogTitle.value = '鏂板鐢ㄥ搧'
addItemForm.id = undefined
addItemForm.dictId = undefined
@@ -234,7 +279,7 @@
}
function openEditItemDialog(row) {
- if (!currentPosition.value || !row) return
+ if ((!currentDept.value && !currentPosition.value) || !row) return
addItemDialogTitle.value = '缂栬緫鐢ㄥ搧'
addItemForm.id = row.id
addItemForm.dictId = row.dictId
@@ -248,12 +293,13 @@
}
async function onConfirmAddItem() {
- if (!currentPosition.value) return
+ if (!currentDept.value && !currentPosition.value) return
addItemSaving.value = true
try {
const qNum = Number(addItemForm.quarter) || 1
- const deptPositionId = currentPosition.value.id ?? currentPosition.value.raw?.id ?? currentPosition.value?.id
+
if (addItemForm.id) {
+ // 缂栬緫鐢ㄥ搧
await updateLaborConf({
id: addItemForm.id,
dictId: addItemForm.dictId,
@@ -261,15 +307,19 @@
quarter: qNum,
})
} else {
+ // 鏂板鐢ㄥ搧
+ const currentId = currentPosition.value?.id ?? currentDept.value?.raw?.id
await addLaborConf({
- deptPositionId,
+ deptPositionId: currentId,
dictId: addItemForm.dictId,
num: Number(addItemForm.quantity) || 0,
quarter: qNum,
})
}
- const posId = currentPosition.value.raw?.id ?? currentPosition.value.id
- await loadLaborConf(posId)
+
+ // 閲嶆柊鍔犺浇鐢ㄥ搧閰嶇疆鍒楄〃
+ await loadLaborConf()
+
addItemDialogVisible.value = false
ElMessage.success('淇濆瓨鎴愬姛')
} catch (e) {
@@ -280,7 +330,7 @@
}
async function onDeleteItem(row) {
- if (!currentPosition.value || !row) return
+ if ((!currentDept.value && !currentPosition.value) || !row) return
try {
await ElMessageBox.confirm('纭畾鍒犻櫎璇ョ敤鍝侀厤缃悧锛�', '鎻愮ず', { type: 'warning' })
} catch {
@@ -288,8 +338,8 @@
}
try {
await deleteLaborConf([row.id])
- const posId = currentPosition.value.raw?.id ?? currentPosition.value.id
- await loadLaborConf(posId)
+ // 閲嶆柊鍔犺浇鐢ㄥ搧閰嶇疆鍒楄〃
+ await loadLaborConf()
ElMessage.success('鍒犻櫎鎴愬姛')
} catch (e) {
ElMessage.error((e && (e.msg || e.message)) || '鍒犻櫎澶辫触')
@@ -367,12 +417,14 @@
if (node.type === 1) {
currentDept.value = node
currentPosition.value = null
+ // 閫夋嫨閮ㄩ棬鏃讹紝鍔犺浇閮ㄩ棬绾у埆鐨勭敤鍝侀厤缃�
+ loadLaborConf()
} else if (node.type === 2) {
const dept = findDeptById(departments, node.parentDeptId)
if (dept) currentDept.value = mapDeptToTree(dept)
currentPosition.value = node.raw
- // 閫夋嫨宀椾綅鏃讹紝鎸夎姹傛煡璇㈢敤鍝侀厤缃垪琛�
- loadLaborConf(node.raw.id)
+ // 閫夋嫨宀椾綅鏃讹紝鏌ヨ鐢ㄥ搧閰嶇疆鍒楄〃
+ loadLaborConf()
}
}
--
Gitblit v1.9.3