From 84bd2806feecfe7938fcdf91469e025a8e7f5749 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 18 八月 2025 18:04:42 +0800
Subject: [PATCH] 规范涉及mes接口的请求前缀
---
src/views/mdc/base/modules/EquipmentList/UserRecycleBinModal.vue | 194 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 194 insertions(+), 0 deletions(-)
diff --git a/src/views/mdc/base/modules/EquipmentList/UserRecycleBinModal.vue b/src/views/mdc/base/modules/EquipmentList/UserRecycleBinModal.vue
new file mode 100644
index 0000000..921a3ed
--- /dev/null
+++ b/src/views/mdc/base/modules/EquipmentList/UserRecycleBinModal.vue
@@ -0,0 +1,194 @@
+<template>
+ <a-modal
+ :width="1000"
+ :title="title"
+ :visible="innerVisible"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴"
+ :okButtonProps="{style:{display:'none'}}"
+ >
+ <a-alert type="info" showIcon style="margin-bottom: 16px;">
+ <template slot="message">
+ <span>宸查�夋嫨</span>
+ <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
+ <span>椤�</span>
+ <template v-if="selectedRowKeys.length>0">
+ <a-divider type="vertical"/>
+ <a @click="handleClearSelection">娓呯┖閫夋嫨</a>
+ <a-divider type="vertical"/>
+ <a @click="handleRevertBatch">鎵归噺杩樺師</a>
+ <a-divider type="vertical"/>
+ <a @click="handleDeleteBatch">鎵归噺鍒犻櫎</a>
+ </template>
+ </template>
+ </a-alert>
+
+ <a-table
+ ref="table"
+ rowKey="id"
+ size="middle"
+ bordered
+ :columns="columns"
+ :loading="loading"
+ :dataSource="dataSource"
+ :pagination="false"
+ :rowSelection="{selectedRowKeys, onChange: handleTableSelectChange}"
+ >
+
+ <!-- 鏄剧ず澶村儚 -->
+ <template slot="avatarslot" slot-scope="text, record, index">
+ <div class="anty-img-wrap">
+ <a-avatar shape="square" :src="url.getAvatar(record.avatar)" icon="user"/>
+ </div>
+ </template>
+
+ <span slot="action" slot-scope="text, record">
+ <a @click="handleRevert([record.id])"><a-icon type="redo"/> 杩樺師鐢ㄦ埛</a>
+ <a-divider type="vertical"/>
+ <a @click="handleDelete([record.id])"><a-icon type="delete"/> 褰诲簳鍒犻櫎</a>
+ </span>
+ </a-table>
+
+ </a-modal>
+</template>
+
+<script>
+ import { putAction,deleteAction,getFileAccessHttpUrl } from "@/api/manage"
+
+ // 楂樺害灏佽鐨勮姹傦紝璇峰姟蹇呬娇鐢� superRequest.call(this,{}) 鐨勬柟寮忚皟鐢�
+ function superRequest(options) {
+ this.loading = !!options.loading
+ options.promise.then(res => {
+ if (res.success && typeof options.success === 'function') {
+ options.success(res)
+ } else {
+ throw new Error(res.message)
+ }
+ }).catch(e => {
+ console.error('鏌ヨ宸插垹闄ょ殑鐢ㄦ埛澶辫触锛�', e)
+ this.$message.warning('鏌ヨ宸插垹闄ょ殑鐢ㄦ埛澶辫触锛�' + (e.message || e))
+ }).finally(() => {
+ this.loading = false
+ })
+ }
+
+ export default {
+ name: 'UserRecycleBinModal',
+ props: {
+ visible: {
+ type: Boolean,
+ default: false
+ },
+ },
+ data() {
+ return {
+ title: '鐢ㄦ埛鍥炴敹绔�',
+ loading: false,
+ innerVisible: false,
+ selectedRowKeys: [],
+ dataSource: [],
+ columns: [
+ { title: '#', align: 'center', key: 'rowIndex', width: 80, customRender: (t, r, i) => i + 1 },
+ { title: '璐﹀彿', align: 'center', dataIndex: 'username' },
+ { title: '濮撳悕', align: 'center', dataIndex: 'realname', },
+ { title: '澶村儚', align: 'center', dataIndex: 'avatar', scopedSlots: { customRender: 'avatarslot' } },
+ { title: '閮ㄩ棬', align: 'center', dataIndex: 'orgCode' },
+ { title: '杞﹂棿', align: 'center', dataIndex: 'productionName' },
+ { title: '鎿嶄綔', align: 'center', dataIndex: 'action', width: 200, scopedSlots: { customRender: 'action' } }
+ ],
+ url: {
+ getAvatar: (path) => getFileAccessHttpUrl(`${path}`),
+ // 鍥炴敹绔欐搷浣滐紝get = 鑾峰彇鍒楄〃锛沺ut = 鍙栧洖锛沝elete = 褰诲簳鍒犻櫎
+ recycleBin: '/sys/user/recycleBin',
+ putRecycleBin: '/sys/user/putRecycleBin',
+ deleteRecycleBin: '/sys/user/deleteRecycleBin',
+ },
+ }
+ },
+ watch: {
+ visible: {
+ immediate: true,
+ handler(val) {
+ if (val) {
+ this.loadData()
+ }
+ this.innerVisible = val
+ }
+ },
+ innerVisible(val) {
+ this.$emit('update:visible', val)
+ },
+ },
+ methods: {
+ loadData() {
+ superRequest.call(this, {
+ loading: true,
+ promise: this.$http.get(this.url.recycleBin),
+ success: res => this.dataSource = res.result
+ })
+ },
+ handleOk() {
+ this.loadData()
+ this.$emit('ok')
+ },
+ handleCancel() {
+ this.innerVisible = false
+ },
+ // 杩樺師鐢ㄦ埛
+ handleRevert(userIds) {
+ this.$confirm({
+ title: '鎭㈠鐢ㄦ埛',
+ content: `鎮ㄧ‘瀹氳鎭㈠杩� ${userIds.length} 涓敤鎴峰悧锛焋,
+ centered: true,
+ onOk: () => {
+ putAction(this.url.putRecycleBin,{userIds:userIds.join(',')}).then((res)=>{
+ if(res.success){
+ this.handleOk()
+ this.handleClearSelection()
+ this.$message.success(`杩樺師 ${userIds.length} 涓敤鎴锋垚鍔燂紒`)
+ }
+ })
+ }
+ })
+ },
+ // 褰诲簳鍒犻櫎鐢ㄦ埛
+ handleDelete(userIds) {
+ this.$confirm({
+ title: '褰诲簳鍒犻櫎鐢ㄦ埛',
+ content: (<div>
+ <p>鎮ㄧ‘瀹氳褰诲簳鍒犻櫎杩� {userIds.length} 涓敤鎴峰悧锛�</p>
+ <p style="color:red;">娉ㄦ剰锛氬交搴曞垹闄ゅ悗灏嗘棤娉曟仮澶嶏紝璇疯皑鎱庢搷浣滐紒</p>
+ </div>),
+ centered: true,
+ onOk: () => {
+ var that = this;
+ deleteAction(that.url.deleteRecycleBin, {userIds: userIds.join(',')}).then((res) => {
+ if (res.success) {
+ this.loadData()
+ this.handleClearSelection()
+ this.$message.success(`褰诲簳鍒犻櫎 ${userIds.length} 涓敤鎴锋垚鍔燂紒`)
+ } else {
+ that.$message.warning(res.message);
+ }
+ });
+ },
+ })
+ },
+ handleRevertBatch() {
+ this.handleRevert(this.selectedRowKeys)
+ },
+ handleDeleteBatch() {
+ this.handleDelete(this.selectedRowKeys)
+ },
+ handleClearSelection() {
+ this.handleTableSelectChange([], [])
+ },
+ handleTableSelectChange(selectedRowKeys, selectionRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectionRows = selectionRows
+ },
+ }
+ }
+</script>
+
+<style lang="less" scoped></style>
\ No newline at end of file
--
Gitblit v1.9.3