From ec7cc88fca8de4b3c56f8ebee074fb7ce71ebf1e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 02 七月 2025 10:39:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/components/system/dict/DictDataManagerWindow.vue | 194 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 194 insertions(+), 0 deletions(-)
diff --git a/admin/src/components/system/dict/DictDataManagerWindow.vue b/admin/src/components/system/dict/DictDataManagerWindow.vue
new file mode 100644
index 0000000..5fb62d7
--- /dev/null
+++ b/admin/src/components/system/dict/DictDataManagerWindow.vue
@@ -0,0 +1,194 @@
+<template>
+ <GlobalWindow
+ :title="dictName + '鏁版嵁绠$悊'"
+ width="78%"
+ :visible.sync="visible"
+ :with-footer="false"
+ >
+ <TableLayout :with-breadcrumb="false">
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="$refs.operaDictDataWindow.open('鏂板缓瀛楀吀鏁版嵁', searchForm.dictId)" icon="el-icon-plus">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete">鍒犻櫎</el-button></li>
+ <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">涓婄Щ</el-button></li>
+ <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">涓嬬Щ</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="remark" label="鏁版嵁璇存槑" min-width="130px"></el-table-column>
+ <el-table-column prop="label" label="鏁版嵁鏍囩" min-width="130px"></el-table-column>
+ <el-table-column prop="code" label="鏁版嵁鍊�" min-width="100px">
+ <template slot-scope="{row}">
+ <div v-if="row.code && row.code.length>20" :title="row.code">
+ <el-button type="text" @click="showCode(row)" >鐐瑰嚮鏌ョ湅</el-button>
+ </div>
+ <div v-else>{{row.code}}</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="disabled" label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">{{row.disabled | disabledText}}</template>
+ </el-table-column>
+ <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
+ <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
+ </el-table-column>
+ <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
+ <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
+ </el-table-column>
+ <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaDictDataWindow.open('缂栬緫瀛楀吀鏁版嵁', dictId, row)" icon="el-icon-edit">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ ></pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaDictDataWindow ref="operaDictDataWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+ <el-dialog
+ class="center-title"
+ title="瀛楀吀鍊�"
+ width="70%"
+ height="70%"
+ text="瀛楀吀鍊�"
+ :visible.sync="visible1"
+ append-to-body
+ >
+ <div class="agree-list" v-html="agreement">
+ </div>
+ <template v-slot:footer>
+ <el-button @click="visible1=false">杩斿洖</el-button>
+ </template>
+ </el-dialog>
+ </TableLayout>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import Pagination from '@/components/common/Pagination'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import TableLayout from '@/layouts/TableLayout'
+import OperaDictDataWindow from './OperaDictDataWindow'
+export default {
+ name: 'DictDataManagerWindow',
+ extends: BaseTable,
+ components: { OperaDictDataWindow, TableLayout, GlobalWindow, Pagination },
+ data () {
+ return {
+ visible: false,
+ visible1: false,
+ agreement: '',
+ searchForm: {
+ // 瀛楀吀ID
+ dictId: null
+ },
+ // 鏄惁姝e湪澶勭悊涓�
+ isWorking: {
+ sort: false
+ },
+ // 瀛楀吀鍚嶇О
+ dictName: ''
+ }
+ },
+ methods: {
+ showCode(row){
+ this.agreement=row.code
+ this.visible1=true
+ },
+ /**
+ * 鎵撳紑绐楀彛
+ *
+ * @param dictId 瀛楀吀ID
+ * @param dictName 瀛楀吀鍚嶇О
+ */
+ open (dictId, dictName) {
+ this.searchForm.dictId = dictId
+ this.dictName = dictName
+ this.visible = true
+ this.search()
+ },
+ /**
+ * 鎺掑簭
+ *
+ * @param direction 鏂瑰悜锛屽彇鍊糩top:涓婄Щ,bottom:涓嬬Щ]
+ */
+ sort (direction) {
+ if (this.isWorking.sort) {
+ return
+ }
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ if (this.tableData.selectedRows.length > 1) {
+ this.$tip.warning('鎺掑簭鏃朵粎鍏佽閫夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ const rowId = this.tableData.selectedRows[0].id
+ const index = this.tableData.list.findIndex(item => item.id === rowId)
+ // 涓婄Щ鏍¢獙
+ if (direction === 'top' && index === 0) {
+ this.$tip.warning('鏁版嵁宸插埌椤堕儴')
+ return
+ }
+ // 涓嬬Щ鏍¢獙
+ if (direction === 'bottom' && index === this.tableData.list.length - 1) {
+ this.$tip.warning('鏁版嵁宸插埌搴曢儴')
+ return
+ }
+ this.isWorking.sort = true
+ this.api.sort({
+ id: this.tableData.selectedRows[0].id,
+ direction
+ })
+ .then(() => {
+ if (direction === 'top') {
+ this.tableData.list.splice(index, 0, this.tableData.list.splice(index - 1, 1)[0])
+ } else {
+ this.tableData.list.splice(index, 0, this.tableData.list.splice(index + 1, 1)[0])
+ }
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.sort = false
+ })
+ }
+ },
+ created () {
+ this.config({
+ api: '/system/dictData',
+ 'field.main': 'label'
+ })
+ }
+}
+</script>
+
+<style scoped lang="scss">
+/deep/ .window__body {
+ .table-content {
+ padding: 0;
+ .table-wrap {
+ padding-top: 0;
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3