From 4538b67070a6acab27d856c778fd6991003e319b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 23 八月 2025 10:05:01 +0800
Subject: [PATCH] 锁定解锁按钮,增加权限
---
src/views/basesetting/machine.vue | 240 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 191 insertions(+), 49 deletions(-)
diff --git a/src/views/basesetting/machine.vue b/src/views/basesetting/machine.vue
index 7aab866..a93d5b2 100644
--- a/src/views/basesetting/machine.vue
+++ b/src/views/basesetting/machine.vue
@@ -1,44 +1,73 @@
<template>
- <basic-container>
- <avue-crud
- :addBtn="false"
- :option="option"
- :table-loading="loading"
- :data="data"
- ref="crud"
- v-model:search="search"
- v-model:page="mypage"
- @search-change="searchChange"
- @search-reset="searchReset"
- @current-change="currentChange"
- @size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad"
- >
- <template #menu-left>
- <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleExport">瀵煎嚭</el-button>
- <!-- <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleView">瀵煎叆</el-button> -->
- <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleAdd">鏂板</el-button>
- </template>
- <template #menu="scope">
- <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleEdit(scope.row, scope.index)">缂栬緫</el-button>
- <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleDel(scope.row, scope.index)">鍒犻櫎</el-button>
- <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleUp(scope.row, scope.index)">浜х敓鏈哄簥鍥炰紶鏈烘瀯鏍�</el-button>
- </template>
+ <el-row>
+ <el-col :span="5">
+ <div class="box">
+ <el-scrollbar>
+ <basic-container>
+ <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" />
+ </basic-container>
+ </el-scrollbar>
+ </div>
+ </el-col>
+ <el-col :span="19">
+ <basic-container>
+ <avue-crud
+ :addBtn="false"
+ :option="option"
+ :table-loading="loading"
+ :data="data"
+ ref="crud"
+ v-model:search="search"
+ v-model:page="mypage"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @refresh-change="refreshChange"
+ @on-load="onLoad"
+ >
+ <template #menu-left>
+ <div class="menuLeft">
+ <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleExport">瀵煎嚭</el-button>
+ <!-- <el-upload :show-file-list="false" class="upload-demo"
+ action="/api/blade-mdm/machine/import"
+ :on-change="handleChange">
+ <el-button type="primary" plain size="default">瀵煎叆</el-button>
+ </el-upload> -->
+ <el-button type="primary" plain @click="importAction">瀵煎叆</el-button>
+ <el-button type="primary" plain @click="downloadTemplate">涓嬭浇妯℃澘
+ </el-button>
+ <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleAdd">鏂板</el-button>
+ </div>
+ </template>
+ <template #menu="scope">
+ <el-button type="primary" text size="default" icon="el-icon-edit" @click.stop="handleEdit(scope.row, scope.index)">缂栬緫</el-button>
+ <el-button type="primary" text size="default" icon="el-icon-delete" @click.stop="handleDel(scope.row, scope.index)">鍒犻櫎</el-button>
+ <!--
+ <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleUp(scope.row, scope.index)">浜х敓鏈哄簥鍥炰紶鏈烘瀯鏍�</el-button>
+ -->
+ </template>
- <template #status="{ row }">
- <span>{{ row.status=="1"?"鍚敤":"绂佺敤" }}</span>
- </template>
- </avue-crud>
+ <template #status="{ row }">
+ <span>{{ row.status=="1"?"鍚敤":"绂佺敤" }}</span>
+ </template>
+ </avue-crud>
- <el-dialog :title="machineTitle" append-to-body v-model="editBox" width="60%">
- <avue-form ref="editFormModal1" :option="editFormModal" v-model="editForm" @submit="formSubmit" @resetForm="resetForm">
- <template #ownerDept="{}">
- <el-tree-select v-model="editForm.ownerDept" :data="organizationTreeList" :props="treePropsConfig"/>
- </template>
- </avue-form>
- </el-dialog>
- </basic-container>
+ <el-dialog :title="machineTitle" append-to-body v-model="editBox" width="60%">
+ <avue-form ref="editFormModal1" :option="editFormModal" v-model="editForm" @submit="formSubmit" @resetForm="resetForm">
+ <template #ownerDept="{}">
+ <el-tree-select v-model="editForm.ownerDept" :data="organizationTreeList" :props="treePropsConfig"/>
+ </template>
+ </avue-form>
+ </el-dialog>
+
+ <el-dialog title="" append-to-body v-model="excelBox" width="555px">
+ <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+ </avue-form>
+ </el-dialog>
+ </basic-container>
+ </el-col>
+ </el-row>
</template>
<script>
@@ -47,10 +76,61 @@
import NProgress from 'nprogress';
import { downloadXls } from '@/utils/util';
import 'nprogress/nprogress.css';
+import { getDeptLazyTree } from '@/api/system/dept';
export default {
data() {
var that = this;
return {
+ excelBox: false,
+ excelOption: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: '鏂囦欢瀵煎叆',
+ prop: 'file',
+ type: 'upload',
+ drag: true,
+ loadText: '瀵煎叆涓紝璇风◢鍚�',
+ span: 24,
+ propsHttp: {
+ res: 'data',
+ },
+ data: {
+ },
+ tip: '',
+ action: '/blade-mdm/machine/import',
+ },
+ ],
+ },
+ excelForm: {},
+ treeOption: {
+ nodeKey: 'id',
+ lazy: true,
+ treeLoad: function (node, resolve) {
+ const parentId = node.level === 0 ? 0 : node.data.id;
+ getDeptLazyTree(parentId).then(res => {
+ resolve(
+ res.data.data.map(item => {
+ return {
+ ...item,
+ leaf: !item.hasChildren,
+ };
+ })
+ );
+ });
+ },
+ addBtn: false,
+ menu: false,
+ size: 'small',
+ props: {
+ labelText: '鏍囬',
+ label: 'title',
+ value: 'value',
+ children: 'children',
+ },
+ },
+ treeData: [],
treePropsConfig: {
value: 'id',
label: 'title',
@@ -99,6 +179,7 @@
{
label: '鏈哄簥缁�',
prop: 'machineGroupName',
+ filterable:true,
search: true,
type: 'select',
dicUrl: '/blade-system/dict-biz/dictionary?code=machine_group',
@@ -182,6 +263,7 @@
{
label: '鎵�灞炴満搴婄粍',
prop: 'machineGroupCode',
+ filterable:true,
type: 'select',
span: 12,
dicUrl: '/blade-system/dict-biz/dictionary?code=machine_group',
@@ -225,7 +307,7 @@
dataType: 'string',
},
{
- label: '绯荤粺鎺у埗',
+ label: '鎺у埗绯荤粺',
prop: 'controlSystem',
type: 'select',
span: 12,
@@ -246,11 +328,27 @@
}]
},
{
+ label: '绋嬪簭涓存椂鐩綍',
+ prop: 'progTempDir',
+ type: 'input',
+ span: 12,
+ dataType: 'string',
+ },
+ {
label: '绋嬪簭涓嬪彂鐩綍',
prop: 'progSendDir',
type: 'input',
span: 12,
dataType: 'string',
+ },
+ {
+ label: '涓嬪彂鐩綍淇濆瓨鏃堕棿',
+ prop: 'sendDirExpiryHours',
+ placeholder:"(灏忔椂)",
+ max:24,
+ min:1,
+ type: 'number',
+ span: 12,
},
{
label: '绋嬪簭鍥炰紶鐩綍',
@@ -259,6 +357,16 @@
span: 12,
dataType: 'string',
},
+ {
+ label: '鍥炰紶鐩綍淇濆瓨鏃堕棿',
+ prop: 'receiveDirExpiryHours',
+ max:24,
+ min:1,
+ placeholder:"(灏忔椂)",
+ type: 'number',
+ span: 12,
+ },
+
{
label: '澶囨敞',
prop: 'remark',
@@ -272,16 +380,32 @@
};
},
methods: {
- initData(tenantId) {
- axios({
- url: 'blade-system/dept/tree',
- method: 'get'
- }).then(
- res => {
- //const column = this.findObject(this.option.column, 'parentId');
- //column.dicData = res.data.data;
+ importAction() {
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log('res',res);
+ //console.log('res',res)
+ if(res.failure==0 && res.success>0){
+ //鏈夋垚鍔熺殑锛屽叧闂璇濇
+ this.excelBox = false;
+ this.$message.success(res.message);
+ this.onLoad(this.page);
+ //done();
+ }else{
+ //0鎴愬姛鐨勶紝浠呮彁绀�
+ this.$message.info("鎴愬姛"+res.success+",澶辫触"+res.failure+":"+res.message);
+ done();
}
- );
+
+ },
+ handleChange(a,b,c) {
+ console.log(a,b,c);
+ },
+ nodeClick(data) {
+ this.treeDeptId = data.id;
+ this.mypage.current = 1;
+ this.onLoad(this.page);
},
handleAdd() {
this.machineTitle = "鏂板";
@@ -364,6 +488,15 @@
});
});
},
+ downloadTemplate() {
+ NProgress.start();
+ exportBlob(
+ `/blade-mdm/machine/download-template`
+ ).then(res => {
+ downloadXls(res.data, `鏈哄簥瀵煎叆妯$増.xlsx`);
+ NProgress.done();
+ });
+ },
formSubmit(params, done) {
var obj = {...params};
if(params.status.length == 0) {
@@ -417,6 +550,7 @@
machineGroupCode: this.search.machineGroupName,
current: this.mypage.current,
size: this.mypage.size,
+ deptId: this.treeDeptId
}
axios({
url: '/blade-mdm/machine/page',
@@ -461,5 +595,13 @@
</script>
<style lang="scss">
-
+.upload-demo {
+ display: inline-block;
+ margin-left: 6px;
+ margin-right: 6px;
+}
+.menuLeft {
+ display: flex;
+ align-items: center;
+}
</style>
--
Gitblit v1.9.3