Browse Source

沙吉海光钎测温详情,文件审批-提交

lxh 1 year ago
parent
commit
697de3cf32

+ 1 - 1
src/utils/http/axios/Axios.ts

@@ -226,7 +226,7 @@ export class VAxios {
               //zhangyafei---添加回调方法
               config.success && config.success(res.data);
               //zhangyafei---添加回调方法
-              resolve(ret);
+              resolve(ret);//lxh
             } catch (err) {
               reject(err || new Error('request error!'));
             }

+ 20 - 14
src/utils/http/axios/index.ts

@@ -49,25 +49,31 @@ const transform: AxiosTransform = {
       throw new Error(t('sys.api.apiRequestFailed'));
     }
     //  这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
-
-    const { code, result, message, success } = data;
-    // 这里逻辑可以根据项目进行修改
-    const hasSuccess = data && Reflect.has(data, 'code') && (code === ResultEnum.SUCCESS || code == 200);
-    if (hasSuccess) {
-      if (success && message && options.successMessageMode === 'success') {
+    if (data.result) {//lxh
+      const { code, result, message, success } = data;
+      // 这里逻辑可以根据项目进行修改
+      const hasSuccess = data && Reflect.has(data, 'code') && (code === ResultEnum.SUCCESS || code == 200);
+      if (hasSuccess) {
+        if (success && message && options.successMessageMode === 'success') {
+          //信息成功提示
+          createMessage.success(message);
+        }
+        return result;
+      } else if (data && data.type) {
         //信息成功提示
-        createMessage.success(message);
+        createMessage.success('下载成功!');
+        return data;
+      } else {
+        createMessage.error(message);
+        throw new Error(message);
       }
-      return result;
-    } else if (data && data.type) {
-      //信息成功提示
-      createMessage.success('下载成功!');
-      return data;
     } else {
-      createMessage.error(message);
-      throw new Error(message);
+      return data;
     }
 
+
+
+
     // 在此处根据自己项目的实际情况对不同的code执行不同的操作
     // 如果不希望中断当前请求,请return数据,否则直接抛出异常即可
     let timeoutMsg = '';

+ 45 - 45
src/views/vent/monitorManager/deviceMonitor/components/device/modal/fiber.sjh.vue

@@ -53,13 +53,13 @@
                         <a-table size="small" :columns="columns" :data-source="posList" :pagination="false"
                             :scroll="{ y: 200 }" />
                     </div>
-                    <div class="warning-box">
+                    <!-- <div class="warning-box">
                         <span class="base-title">预警历史详情</span>
                         <div class="warning-container">
                             <dv-scroll-board ref="scrollBoard" :config="warningConfig"
                                 style="width: 100%; height: 240px; overflow-y: auto; border: 1px solid #39e8ff33" />
                         </div>
-                    </div>
+                    </div> -->
                 </div>
                 <div class="right-bottom">
                     <span class="base-title">测点监测曲线</span>
@@ -153,26 +153,26 @@ export default defineComponent({
             },
         ];
 
-        const warningConfig = reactive({
-            header: ['测点', '温度', '预警信息'],
-            data: [
-                ['测点6', '318℃', '严重报警'],
-                ['测点43', '142℃', '一般预警'],
-                ['测点23', '167℃', '一般预警'],
-                ['测点6', '198℃', '超高预警'],
-                ['测点65', '197℃', '超高预警'],
-                ['测点78', '154℃', '一般预警'],
-                ['测点61', '104℃', '一般预警'],
-                ['测点87', '150℃', '一般信息'],
-            ],
-            index: false,
-            columnWidth: [150],
-            headerHeight: 38,
-            headerBGC: '#3d9dd45d',
-            oddRowBGC: '#009acd10',
-            evenRowBGC: '#009acd05',
-            align: ['center', 'center', 'center'],
-        });
+        // const warningConfig = reactive({
+        //     header: ['测点', '温度', '预警信息'],
+        //     data: [
+        //         ['测点6', '318℃', '严重报警'],
+        //         ['测点43', '142℃', '一般预警'],
+        //         ['测点23', '167℃', '一般预警'],
+        //         ['测点6', '198℃', '超高预警'],
+        //         ['测点65', '197℃', '超高预警'],
+        //         ['测点78', '154℃', '一般预警'],
+        //         ['测点61', '104℃', '一般预警'],
+        //         ['测点87', '150℃', '一般信息'],
+        //     ],
+        //     index: false,
+        //     columnWidth: [150],
+        //     headerHeight: 38,
+        //     headerBGC: '#3d9dd45d',
+        //     oddRowBGC: '#009acd10',
+        //     evenRowBGC: '#009acd05',
+        //     align: ['center', 'center', 'center'],
+        // });
 
         const [register, { setModalProps, closeModal }] = useModalInner();
 
@@ -249,7 +249,7 @@ export default defineComponent({
             posList1,
             chartsColumns,
             columns,
-            warningConfig,
+            // warningConfig,
         };
     },
 });
@@ -405,31 +405,31 @@ export default defineComponent({
 
             .table-box {
                 position: relative;
-                width: 500px;
+                width: 100%;
                 height: 250px;
             }
 
-            .warning-box {
-                width: calc(100% - 520px);
-
-                .warning-container {
-                    width: 100%;
-                    height: convert;
-                    background: #009acd00;
-
-                    :deep(.dv-scroll-board) {
-                        .row-item {
-                            height: 40px !important;
-                            line-height: 40px !important;
-                        }
-
-                        .header-item {
-                            border-top: 1px solid #91e9fe !important;
-                            border-bottom: 1px solid #91e9fe !important;
-                        }
-                    }
-                }
-            }
+            // .warning-box {
+            //     width: calc(100% - 520px);
+
+            //     .warning-container {
+            //         width: 100%;
+            //         height: convert;
+            //         background: #009acd00;
+
+            //         :deep(.dv-scroll-board) {
+            //             .row-item {
+            //                 height: 40px !important;
+            //                 line-height: 40px !important;
+            //             }
+
+            //             .header-item {
+            //                 border-top: 1px solid #91e9fe !important;
+            //                 border-bottom: 1px solid #91e9fe !important;
+            //             }
+            //         }
+            //     }
+            // }
         }
 
         .right-bottom {

+ 47 - 11
src/views/vent/performance/approvalPend/index.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="approvalPend">
-        <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 730 }" :pagination="pagination"
+        <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 620 }" :pagination="pagination"
             @change="pageChange">
 
             <template #action="{ record }">
@@ -13,19 +13,55 @@
 </template>
 
 <script setup lang="ts">
-import {ref,reactive,watch,nextTick} from 'vue'
-import {columns} from './approvalPend.data.ts'
+import { ref, reactive, watch, nextTick, defineProps,onMounted } from 'vue'
+import { columns } from './approvalPend.data'
+import { getNowUserAgencyData } from '../fileDetail/fileDetail.api';
 
+let props = defineProps({
+    selected: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    }
+})
 //待审批列表数据
-let dataSource=ref<any[]>([])
+let dataSource = ref<any[]>([])
 //分页参数配置
-    let pagination = reactive({
-  current: 1, // 当前页码
-  pageSize: 10, // 每页显示条数
-  total: 0, // 总条目数,后端返回
-  // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
-  showSizeChanger: true, // 是否可改变每页显示条数
-  pageSizeOptions: ['10', '20', '50',], // 可选的每页显示条数
+let pagination = reactive({
+    current: 1, // 当前页码
+    pageSize: 10, // 每页显示条数
+    total: 0, // 总条目数,后端返回
+    // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
+    showSizeChanger: true, // 是否可改变每页显示条数
+    pageSizeOptions: ['10', '20', '50',], // 可选的每页显示条数
+})
+let selectedParam=reactive({})
+
+//获取待办列表数据
+async function getNowUserAgencyDataList() {
+    let res = await getNowUserAgencyData({ pageNo: pagination.current, pageSize: pagination.pageSize, tableName: 'vent.file_server_info', parentId:selectedParam.id || ''})
+    console.log(res,'待办列表--------')
+    dataSource.value=res.records
+    pagination.total=res.total
+}
+//分页切换
+function pageChange(val){
+    pagination.current=val.current
+    pagination.pageSize=val.pageSize
+    getNowUserAgencyDataList()
+}
+//查看
+function getViews(){}
+watch(()=>props.selected,(newV,oldV)=>{
+    console.log(newV,'newV---=======')
+    selectedParam=newV
+    getNowUserAgencyDataList()
+},{
+    deep:true
+})
+onMounted(()=>{
+    getNowUserAgencyDataList()
 })
 
 </script>

+ 0 - 58
src/views/vent/performance/approved/approved.data.ts

@@ -1,58 +0,0 @@
-import { BasicColumn } from '/@/components/Table';
-export const  columns:BasicColumn[]=[
-  {
-    title: '序号',
-    width: 60,
-    align: 'center',
-    customRender: ({ index }: { index: number }) => `${index + 1}`
-  },
-  {
-    title: '文件名称',
-    dataIndex: 'areaName',
-    key: 'areaName',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '文件类型',
-    dataIndex: 'warnLevel_dictText',
-    key: 'warnLevel_dictText',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '文件来源',
-    dataIndex: 'zhType',
-    key: 'zhType',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '上传时间',
-    dataIndex: 'isLk',
-    key: 'isLk',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '审批状态',
-    dataIndex: 'remarks',
-    key: 'remarks',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '当前审批人',
-    dataIndex: 'suggestMsg',
-    key: 'suggestMsg',
-    align: 'center',
-    ellipsis: true,
-  },
-  {
-    title: '操作',
-    key: 'action',
-    width: 250,
-    slots: { customRender: 'action' },
-    align: 'center',
-  },
-]

+ 0 - 39
src/views/vent/performance/approved/index.vue

@@ -1,39 +0,0 @@
-<template>
-    <div class="approved">
-        <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 730 }" :pagination="pagination"
-            @change="pageChange">
-
-            <template #action="{ record }">
-                <a-button type="link" style="color:#3DF6FF" @click="getViews">
-                    查看
-                </a-button>
-            </template>
-        </a-table>
-    </div>
-</template>
-
-<script setup lang="ts">
-import {ref,reactive,watch,nextTick} from 'vue'
-import {columns} from './approved.data'
-
-//已审批列表数据
-let dataSource=ref<any[]>([])
-//分页参数配置
-let pagination = reactive({
-  current: 1, // 当前页码
-  pageSize: 10, // 每页显示条数
-  total: 0, // 总条目数,后端返回
-  // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
-  showSizeChanger: true, // 是否可改变每页显示条数
-  pageSizeOptions: ['10', '20', '50',], // 可选的每页显示条数
-})
-
-</script>
-
-<style lang="less" scoped>
-.approved{
-    position: relative;
-    width: 100%;
-    height: 100%;
-}
-</style>

+ 117 - 0
src/views/vent/performance/comment/HistorySp.vue

@@ -0,0 +1,117 @@
+<template>
+    <div class="HistorySp">
+        <div class="top-box">
+            <div class="box-title">流程审批进度历史</div>
+            <div class="box-content">
+                <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 730 }"
+                    :pagination="pagination"></a-table>
+            </div>
+        </div>
+        <div class="bottom-box">
+            <div class="box-title">实时流程图</div>
+            <div class="box-content">
+                <img :src="imgSrc" alt="">
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive, defineProps, watch } from 'vue'
+import { columns } from './comment.data'
+
+let props = defineProps({
+    historySpList: {
+        type: Array,
+        default: () => {
+            return []
+        }
+    },
+    imgSrc: {
+        type: String,
+        default: ''
+    }
+})
+//数据列表
+let dataSource = ref<any[]>([])
+
+//分页参数配置
+let pagination = reactive({
+    current: 1, // 当前页码
+    pageSize: 10, // 每页显示条数
+    total: 0, // 总条目数,后端返回
+    // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
+    showSizeChanger: true, // 是否可改变每页显示条数
+    pageSizeOptions: ['10', '20', '50',], // 可选的每页显示条数
+})
+
+watch(() => props.historySpList, (newV, oldV) => {
+    console.log(newV, 'newV---------------')
+    if (newV.length != 0) {
+        dataSource.value = newV
+    }
+}, {
+    immediate: true,
+    deep: true
+})
+
+</script>
+
+<style lang="less" scoped>
+.HistorySp {
+    position: relative;
+    width: 100%;
+    height: 100%;
+
+
+    .top-box {
+        width: 98%;
+        height: 400px;
+        margin: 15px auto;
+        // background-color: rgba(255, 255, 255, 0.0666666667);
+        box-shadow: 0 0 20px rgba(68, 180, 255, 0.2) inset;
+        border-radius: 2px;
+        border: 1px solid rgba(68, 211, 255, 0.4392156863) !important;
+        padding: 10px;
+        box-sizing: border-box;
+
+        .box-content {
+            height: calc(100% - 40px);
+        }
+    }
+
+    .bottom-box {
+        width: 98%;
+        height: 200px;
+        margin: 15px auto;
+        // background-color: rgba(255, 255, 255, 0.0666666667);
+        box-shadow: 0 0 20px rgba(68, 180, 255, 0.2) inset;
+        border-radius: 2px;
+        border: 1px solid rgba(68, 211, 255, 0.4392156863) !important;
+        padding: 10px;
+        box-sizing: border-box;
+
+        .box-content {
+            position: relative;
+            height: calc(100% - 40px);
+
+            img {
+                position: absolute;
+                left: 50%;
+                top: -35px;
+                transform: translate(-70%, 0);
+                width: 70%;
+                height: 85%;
+            }
+        }
+    }
+
+    .box-title {
+        font-size: 14px;
+        height: 40px;
+        line-height: 40px;
+        color: #fff;
+    }
+
+}
+</style>

+ 46 - 13
src/views/vent/performance/comment/NormalTable.vue

@@ -9,6 +9,7 @@
           <a class="table-action-link">删除</a>
         </a-popconfirm>
         <a class="table-action-link" @click="handleDownLoad(record)">下载</a>
+        <a class="table-action-link" @click="handleSpDetail(record)">审批详情</a>
       </template>
       <template #bodyCell="{ column, record }">
         <slot name="filterCell" v-bind="{ column, record }"></slot>
@@ -27,6 +28,10 @@
         </a-form-item>
       </a-form>
     </a-modal>
+    <!-- 审批详情弹窗 -->
+    <a-modal v-model:visible="visibleSp" width="1000px" :footer="null" :title="titleSp" centered destroyOnClose>
+      <HistorySp :historySpList="historySpList" :imgSrc="imgSrc"></HistorySp>
+    </a-modal>
   </div>
 </template>
 
@@ -34,12 +39,15 @@
 //ts语法
 import { ref, provide, reactive, toRaw, defineExpose } from 'vue';
 import { BasicTable, TableAction } from '/@/components/Table';
-import { useModal } from '/@/components/Modal';
 import DeviceModal from './DeviceModal.vue';
 import CADModal from './CADModal.vue';
+import HistorySp from './HistorySp.vue'
+import { useModal } from '/@/components/Modal';
 import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
 import { useListPage } from '/@/hooks/system/useListPage';
 import { commit } from '../fileDetail/fileDetail.api'
+import {historicFlowNew,getHighlightImgNew} from './comment.api'
+import { message } from 'ant-design-vue';
 
 
 const props = defineProps({
@@ -121,7 +129,12 @@ let formStateTj = reactive({
 })
 //文件审批-提交信息弹窗下拉选项数据
 let fileList = reactive<any[]>([])
-
+//审批详情弹窗数据
+let visibleSp = ref(false)
+let titleSp = ref('审批详情')
+//审批详情历史数据
+let historySpList = reactive<any[]>([])
+let imgSrc=ref('')
 
 // 列表页面公共参数、方法
 const { tableContext, doRequest } = useListPage({
@@ -149,7 +162,7 @@ const { tableContext, doRequest } = useListPage({
     striped: true,
     showIndexColumn: true, //是否显示序列号
     actionColumn: {
-      width: 280,
+      width: 400,
     },
     useSearchForm: false, //不使用查询条件
     // pagination: false, //不使用分页组件
@@ -173,13 +186,17 @@ function handleTo(data) {
     fileList.push({ label: el.name, value: el.id })
   })
   formStateTj.id = data.id
-  console.log(data, '提交参数信息---------')
 }
 //确认提交
 async function handleTjOk() {
   if (formStateTj.file) {
     let res = await commit({ procDefId: formStateTj.file, tableId: formStateTj.id, firstGateway: true })
-    console.log(res, 'res--000000000')
+    if (res == '提交成功') {
+      message.success(res);
+      visibleTj.value = false
+    }
+  } else {
+    message.warning('请先选择要提交的文件!');
   }
 }
 //取消提交
@@ -187,18 +204,38 @@ function handleTjCancel() {
   formStateTj.file = ''
   visibleTj.value = false
 }
+//审批详情点击
+function handleSpDetail(data) {
+  visibleSp.value = true
+  getHistoricFlowNewList({tableId:data.id,tableName:data.tableName})
+  getHighlightImgNewList({tableId:data.id,tableName:data.tableName})
+}
+//审批详情-审批历史列表
+async function getHistoricFlowNewList(params) {
+    let res = await historicFlowNew({...params})
+    if (res.length != 0) {
+        historySpList.length = 0
+        res.forEach(el => {
+            historySpList.push({ name: el.name, username: el.assignees[0].username, deleteReason: el.deleteReason, comment: el.comment, startTime: el.startTime, endTime: el.endTime,status:el.status||'待处理'  })
+        })
+
+    }
+}
+//审批详情-流程轨迹
+async function getHighlightImgNewList(params){
+ let res=await getHighlightImgNew({...params})
+  let imageUrl = window.URL.createObjectURL(res);               
+  imgSrc.value=imageUrl
+}
 /**
  * 编辑事件
  */
 function handleEdit(data) {
   isUpdate.value = true;
   Object.assign(record, toRaw(data));
-  console.log(record, '编辑');
   let index = record.fileSuffix.indexOf('.');
   fileType.value = record.fileSuffix.substring(index + 1);
   editID.value = record.id;
-  console.log(fileType, '文件格式');
-  console.log(editID.value, '编辑文件ID');
 
   // 根据文件后缀名打开不同的模态框
   if (['.dwg', '.mxcad'].includes(data.fileSuffix)) {
@@ -221,17 +258,13 @@ async function handleDelete(record) {
 
 //下载文件
 function handleDownLoad(record) {
-  console.log(record, '下载');
   props.downLoad({ id: record.id }).then((res) => {
-    console.log('11111');
-    console.log(res, '文件下载成功');
     let filename = `${record.fileName}`;
     downFilePublic(res, filename);
   });
 }
 // 下载公用方法
 function downFilePublic(content, fileName) {
-  // const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
   const blob = new Blob([content], { type: 'application/xlsx;charset=UTF-8' }); // 构造一个blob对象来处理数据
   // 对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
   // IE10以上支持blob但是依然不支持download
@@ -287,7 +320,7 @@ defineExpose({
 }
 
 .zxm-form {
-  padding-top: 20px!important;
+  padding-top: 20px !important;
   box-sizing: border-box;
 }
 </style>

+ 18 - 0
src/views/vent/performance/comment/comment.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+    historicFlowNew = 'safety/actTask/historicFlowNew',
+    getHighlightImgNew='/activiti/models/getHighlightImgNew'
+}
+/**
+ * 审批详情-审批历史
+ * @param params
+ */
+export const historicFlowNew = (params) => defHttp.get({ url: Api.historicFlowNew,params });
+
+/**
+ * 审批详情-流程轨迹
+ * @param params
+ */
+export const getHighlightImgNew = (params) => defHttp.get({ url: Api.getHighlightImgNew,params,responseType: 'blob' });
+

+ 54 - 0
src/views/vent/performance/comment/comment.data.ts

@@ -0,0 +1,54 @@
+import { BasicColumn } from '/@/components/Table';
+export const columns: BasicColumn[] = [
+  {
+    title: '序号',
+    width: 60,
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`
+  },
+  {
+    title: '当前环节',
+    dataIndex: 'name',
+    key: 'name',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '审批人',
+    dataIndex: 'username',
+    key: 'username',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '审批结果',
+    dataIndex: 'deleteReason',
+    key: 'deleteReason',
+    align: 'center',
+    ellipsis: true,
+  },
+  {
+    title: '审批开始时间',
+    dataIndex: 'startTime',
+    key: 'startTime',
+    align: 'center',
+    ellipsis: true,
+    width: 150,
+  },
+  {
+    title: '审批结束时间',
+    dataIndex: 'endTime',
+    key: 'endTime',
+    align: 'center',
+    ellipsis: true,
+    width: 150
+  },
+  {
+    title: '状态',
+    dataIndex: 'status',
+    key: 'status',
+    align: 'center',
+    ellipsis: true,
+  },
+
+]

+ 38 - 2
src/views/vent/performance/endEd/index.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="endEd">
-        <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 730 }" :pagination="pagination"
+        <a-table size="small" :dataSource="dataSource" :columns="columns" :scroll="{ y: 620 }" :pagination="pagination"
             @change="pageChange">
 
             <template #action="{ record }">
@@ -13,8 +13,18 @@
 </template>
 
 <script setup lang="ts">
-import {ref,reactive,watch,nextTick} from 'vue'
+import {ref,reactive,watch,nextTick,defineProps,onMounted} from 'vue'
 import {columns} from './endEd.data'
+import { getNowUserApprovedData } from '../fileDetail/fileDetail.api';
+
+let props = defineProps({
+    selected: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    }
+})
 
 //已结束列表数据
 let dataSource=ref<any[]>([])
@@ -27,6 +37,32 @@ let pagination = reactive({
   showSizeChanger: true, // 是否可改变每页显示条数
   pageSizeOptions: ['10', '20', '50',], // 可选的每页显示条数
 })
+let selectedParam=reactive({})
+
+//获取待办列表数据
+async function getNowUserApprovedDataList() {
+    let res = await getNowUserApprovedData({ pageNo: pagination.current, pageSize: pagination.pageSize, tableName: 'vent.file_server_info', parentId:selectedParam.id || ''})
+    console.log(res,'已办列表--------')
+    dataSource.value=res.records
+    pagination.total=res.total
+}
+//分页切换
+function pageChange(val){
+    pagination.current=val.current
+    pagination.pageSize=val.pageSize
+    getNowUserApprovedDataList()
+}
+//查看
+function getViews(){}
+watch(()=>props.selected,(newV,oldV)=>{
+    selectedParam=newV
+    getNowUserApprovedDataList()
+},{
+    deep:true
+})
+onMounted(()=>{
+    getNowUserApprovedDataList()
+})
 </script>
 
 <style lang="less" scoped>

+ 15 - 2
src/views/vent/performance/fileDetail/fileDetail.api.ts

@@ -9,7 +9,9 @@ enum Api {
   uploadApi = '/ventanaly-sharefile/fileServer/upload',
   downLoad = '/ventanaly-sharefile/fileServer/download',
   listData ='/activiti/activiti_process/listData',
-  commit='/safety/actBusiness/commit'
+  commit='/safety/actBusiness/commit',
+  getNowUserAgencyData='/safety/approvalBusiness/getNowUserAgencyData',
+  getNowUserApprovedData='/safety/approvalBusiness/getNowUserApprovedData'
 }
 
 /**
@@ -64,4 +66,15 @@ export const listData = (params) => defHttp.get({ url: Api.listData, params });
  * 审批-确认提交
  * @param params
  */
-export const commit = (params) => defHttp.post({ url: Api.commit, params });
+export const commit = (params) => defHttp.post({ url: Api.commit, params }, { joinParamsToUrl: true });
+/**
+ * 审批-待审批列表
+ * @param params
+ */
+export const getNowUserAgencyData = (params) => defHttp.get({ url: Api.getNowUserAgencyData, params });
+
+/**
+ * 审批-已审批列表
+ * @param params
+ */
+export const getNowUserApprovedData = (params) => defHttp.get({ url: Api.getNowUserApprovedData, params });

+ 371 - 392
src/views/vent/performance/fileDetail/index.vue

@@ -4,15 +4,8 @@
     <div class="content">
       <div class="left-box">
         <!-- 左侧树菜单 -->
-        <fileSystem
-          :selected="selected"
-          :list="listArr"
-          :draggable="true"
-          @delete-node="onDeltet"
-          @on-click="onClick"
-          @change-name="onChangeName"
-          @addNode="onAddNode"
-        >
+        <fileSystem :selected="selected" :list="listArr" :draggable="true" @delete-node="onDeltet" @on-click="onClick"
+          @change-name="onChangeName" @addNode="onAddNode">
           <template #icon="{ item }">
             <template v-if="item.isFolder">
               <SvgIcon v-if="item.expanded" size="18" name="file-open" />
@@ -23,7 +16,8 @@
           <template #operation="{ type }">
             <i class="iconfont icon-xinzeng" v-if="type == 'addDocument'"></i>
             <i class="iconfont icon-bianji" v-if="type == 'Editable'"></i>
-            <a-popconfirm v-if="type == 'deleteNode'" title="是否确认删除!" ok-text="确定" cancel-text="取消" @confirm="confirmDel">
+            <a-popconfirm v-if="type == 'deleteNode'" title="是否确认删除!" ok-text="确定" cancel-text="取消"
+              @confirm="confirmDel">
               <i class="iconfont icon-guanbi"></i>
             </a-popconfirm>
           </template>
@@ -38,28 +32,15 @@
         <div class="list">
           <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange">
             <a-tab-pane key="1" tab="全部">
-              <NormalTable
-                v-if="alive"
-                :submitInfo="submitInfo"
-                :selfParam="selfParam"
-                :searchParam="fileName"
-                :nodeParam="nodeParam"
-                :columns="columns"
-                :list="getTree"
-                :deleteById="deleteById"
-                :downLoad="downLoad"
-                designScope="file-detail"
-                title="文件详情"
-              />
+              <NormalTable :key="alive" :submitInfo="submitInfo" :selfParam="selfParam" :searchParam="fileName"
+                :nodeParam="nodeParam" :columns="columns" :list="getTree" :deleteById="deleteById" :downLoad="downLoad"
+                designScope="file-detail" title="文件详情" />
             </a-tab-pane>
             <a-tab-pane key="2" tab="待审批">
-              <approvalPend></approvalPend>
+              <approvalPend :key="alive2" :selected="selected"></approvalPend>
             </a-tab-pane>
-            <a-tab-pane key="3" tab="审批中">
-              <approved></approved>
-            </a-tab-pane>
-            <a-tab-pane key="4" tab="已审批">
-              <endEd></endEd>
+            <a-tab-pane key="3" tab="已审批">
+              <endEd :key="alive3" :selected="selected"></endEd>
             </a-tab-pane>
           </a-tabs>
         </div>
@@ -75,7 +56,8 @@
           </a-radio-group>
         </a-form-item>
         <a-form-item label="文件类型">
-          <JDictSelectTag v-model:value="formState.fileType" placeholder="请选择文件类型" dictCode="file_type" style="width: 260px" />
+          <JDictSelectTag v-model:value="formState.fileType" placeholder="请选择文件类型" dictCode="file_type"
+            style="width: 260px" />
         </a-form-item>
         <a-form-item label="文件上传">
           <a-upload :before-upload="beforeUpload" @remove="handleRemove" :multiple="false" :file-list="fileList">
@@ -87,395 +69,392 @@
   </div>
 </template>
 <script lang="ts" setup name="system-user">
-  import customHeader from '/@/components/vent/customHeader.vue';
-  import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
-  import fileSystem from './commen/fileSystem.vue';
-  import treeIcon from './commen/Icon/treeIcon.vue';
-  import NormalTable from '../comment/NormalTable.vue';
-  import approvalPend from '../approvalPend/index.vue';
-  import approved from '../approved/index.vue';
-  import endEd from '../endEd/index.vue';
-  import { useRouter } from 'vue-router';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { SvgIcon } from '/@/components/Icon';
-  import { ref, onMounted, reactive, nextTick, watch } from 'vue';
-  import { columns } from './fileDetail.data';
-  import { getTree, createFile, editMenu, delMenu, uploadApi, downLoad, deleteById,listData } from './fileDetail.api';
-
-  let activeKey = ref('1');
-  let selfParam = reactive({
-    //各矿参数
-    sysOrgCode: '',
-    bpmStatus: null,
-    flag: false,
-  });
-  let router = useRouter(); //路由
-  const { createMessage } = useMessage();
-  let fileName = ref('');
-  let fileList = reactive<any[]>([]); //上传文件列表
-  // let uploadParam = reactive({}); //上传文件参数
-  let nodeParam = reactive({}); //点击树节点时传递的参数
-  let alive = ref(true); //点击树节点刷新表格数据
-  let visible = ref(false); //控制上传弹窗的显示
-  let formState = reactive({
-    //上传文件类型,是否审批
-    isApprove: null,
-    fileType: '',
+import customHeader from '/@/components/vent/customHeader.vue';
+import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
+import fileSystem from './commen/fileSystem.vue';
+import treeIcon from './commen/Icon/treeIcon.vue';
+import NormalTable from '../comment/NormalTable.vue';
+import approvalPend from '../approvalPend/index.vue';
+import endEd from '../endEd/index.vue';
+import { useRouter } from 'vue-router';
+import { useMessage } from '/@/hooks/web/useMessage';
+import { SvgIcon } from '/@/components/Icon';
+import { ref, onMounted, reactive, nextTick, watch } from 'vue';
+import { columns } from './fileDetail.data';
+import { getTree, createFile, editMenu, delMenu, uploadApi, downLoad, deleteById, listData, getNowUserAgencyData } from './fileDetail.api';
+
+let activeKey = ref('1');
+let selfParam = reactive({
+  //各矿参数
+  sysOrgCode: '',
+  bpmStatus: null,
+  flag: false,
+});
+let router = useRouter(); //路由
+const { createMessage } = useMessage();
+let fileName = ref('');
+let fileList = reactive<any[]>([]); //上传文件列表
+// let uploadParam = reactive({}); //上传文件参数
+let nodeParam = reactive({}); //点击树节点时传递的参数
+let alive = ref(0); //点击树节点刷新表格数据
+let alive2 = ref(0)
+let alive3 = ref(0)
+let visible = ref(false); //控制上传弹窗的显示
+let formState = reactive({
+  //上传文件类型,是否审批
+  isApprove: null,
+  fileType: '',
+});
+//文件审批-提交信息
+let submitInfo = ref<any[]>([])
+
+//lxh 当前选中树节点
+let selected = reactive<any>({
+  id: null,
+  pid: null,
+  title: '',
+  isFolder: false,
+});
+let flag = ref('');
+//左侧菜单列表
+let listArr = reactive<any[]>([]);
+//获取要删除的节点数据
+let delNode = reactive({});
+
+//上传文件
+let openModal = (val) => {
+  formState.isApprove = null;
+  formState.fileType = '';
+  fileList.length = 0;
+  visible.value = val;
+};
+
+//tabs选项切换
+let tabChange = (activeKeyVal) => {
+  activeKey.value = activeKeyVal;
+  switch (activeKeyVal) {
+    case '1':
+      alive.value = new Date().getTime()
+      break;
+    case '2':
+      alive2.value = new Date().getTime()
+      break;
+    case '3':
+      alive3.value = new Date().getTime()
+      break;
+
+  }
+};
+//文件审批状态切换
+let changeRadio = (val) => {
+  formState.isApprove = val.target.value;
+};
+//开始上传
+let handleOk = () => {
+  if (formState.isApprove === null) {
+    createMessage.warning('请选择文件审批状态!');
+  } else {
+    const formData = new FormData();
+    formData.append('file', fileList[0]);
+    formData.append('parentId', selected.id);
+    formData.append('isApprove', formState.isApprove);
+    formData.append('fileType', formState.fileType);
+    uploadApi(formData).then((res) => {
+      console.log(res, '上传返回');
+      alive.value = new Date().getTime()
+      visible.value = false;
+    });
+  }
+};
+//取消上传
+let handleCancel = () => {
+  visible.value = false;
+};
+let list2trees = (data) => {
+  // 删除 所有 children,以防止多次调用
+  data.forEach(function (item) {
+    delete item.children;
   });
-  //文件审批-提交信息
-  let submitInfo=ref<any[]>([])
-
-  //lxh 当前选中树节点
-  let selected = reactive<any>({
-    id: null,
-    pid: null,
-    title: '',
-    isFolder: false,
+  // 将数据存储为 以 id 为 KEY 的 map 索引数据列
+  let map = {};
+  data.forEach(function (item) {
+    map[item.id] = item;
   });
-  let flag = ref('');
-  //左侧菜单列表
-  let listArr = reactive<any[]>([]);
-  //获取要删除的节点数据
-  let delNode = reactive({});
-
-  //上传文件
-  let openModal = (val) => {
-    formState.isApprove = null;
-    formState.fileType = '';
-    fileList.length = 0;
-    visible.value = val;
-  };
-
-  //tabs选项切换
-  let tabChange = (activeKeyVal) => {
-    activeKey.value = activeKeyVal;
-    if (activeKeyVal == 1) {
-      // nextTick(() => {
-      //   MonitorDataTable.value.setSelectedRowKeys([selectData.deviceID]);
-      // });
-    }
-  };
-
-  //文件审批状态切换
-  let changeRadio = (val) => {
-    formState.isApprove = val.target.value;
-  };
-  //开始上传
-  let handleOk = () => {
-    if (formState.isApprove === null) {
-      createMessage.warning('请选择文件审批状态!');
+  var val = [];
+  data.forEach(function (item) {
+    item.isFolder = true;
+    item.title = item.fileName;
+    item.pid = item.parentId;
+    // 以当前遍历项,的pid,去map对象中找到索引的id
+    var parent = map[item.pid];
+    // 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中
+    if (parent) {
+      (parent.children || (parent.children = [])).push(item);
     } else {
-      const formData = new FormData();
-      formData.append('file', fileList[0]);
-      formData.append('parentId', selected.id);
-      formData.append('isApprove', formState.isApprove);
-      formData.append('fileType', formState.fileType);
-      uploadApi(formData).then((res) => {
-        console.log(res, '上传返回');
-        alive.value = false;
-        nextTick(() => {
-          alive.value = true;
-          visible.value = false;
-        });
-      });
+      //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级
+      val.push(item);
     }
-  };
-  //取消上传
-  let handleCancel = () => {
-    visible.value = false;
-  };
-  let list2trees = (data) => {
-    // 删除 所有 children,以防止多次调用
-    data.forEach(function (item) {
-      delete item.children;
-    });
-    // 将数据存储为 以 id 为 KEY 的 map 索引数据列
-    let map = {};
-    data.forEach(function (item) {
-      map[item.id] = item;
-    });
-    var val = [];
-    data.forEach(function (item) {
-      item.isFolder = true;
-      item.title = item.fileName;
-      item.pid = item.parentId;
-      // 以当前遍历项,的pid,去map对象中找到索引的id
-      var parent = map[item.pid];
-      // 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中
-      if (parent) {
-        (parent.children || (parent.children = [])).push(item);
-      } else {
-        //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级
-        val.push(item);
-      }
-    });
-    return val;
-  };
-
-  let getTypeTableList = async () => {
-    let parentId = nodeParam.id || '';
-    let selectFlag = nodeParam.id ? false : true;
-    let likeFileName = fileName.value || '';
-    let bpmStatus = selfParam.bpmStatus || '';
-    let sysOrgCode = selfParam.sysOrgCode || '';
-    let res = await getTree({ parentId: parentId, selectFlag: selectFlag, likeFileName: likeFileName, bpmStatus: bpmStatus, sysOrgCode: sysOrgCode });
-    console.log(res, 'tableList--------------------');
-  };
-
-  //获取左侧菜单树数据
-  let getTreeList = async () => {
-    listArr.length = 0;
-    let data = await getTree({ parentId: '' });
-    let datas = data.records.filter((v) => v.fileType == null);
-    let list = list2trees(datas);
-    listArr.push(...list);
-    console.log(listArr, '树节点数据');
-    selected.id = listArr[0].id;
-    selected.pid = listArr[0].pid;
-    selected.title = listArr[0].title;
-    selected.isFolder = listArr[0].isFolder;
-  };
-
-  //点击目录
-  const onClick = (node) => {
-    selected = node;
-    if (flag.value != node.title) {
-      alive.value = false;
-      nextTick(() => {
-        alive.value = true;
-        nodeParam = node;
-        flag.value = node.title;
-      });
-    }
-  };
-  //添加文件
-  const onAddNode = async (node) => {
-    let data = await createFile({ fileName: node.newName, type: 'FOL', parentId: node.id });
-    console.log(data, '新增文件返回');
+  });
+  return val;
+};
+
+let getTypeTableList = async () => {
+  let parentId = nodeParam.id || '';
+  let selectFlag = nodeParam.id ? false : true;
+  let likeFileName = fileName.value || '';
+  let bpmStatus = selfParam.bpmStatus || '';
+  let sysOrgCode = selfParam.sysOrgCode || '';
+  let res = await getTree({ parentId: parentId, selectFlag: selectFlag, likeFileName: likeFileName, bpmStatus: bpmStatus, sysOrgCode: sysOrgCode });
+  console.log(res, 'tableList--------------------');
+};
+
+//获取左侧菜单树数据
+let getTreeList = async () => {
+  listArr.length = 0;
+  let data = await getTree({ parentId: '' });
+  let datas = data.records.filter((v) => v.fileType == null);
+  let list = list2trees(datas);
+  listArr.push(...list);
+  console.log(listArr, '树节点数据');
+  selected.id = listArr[0].id;
+  selected.pid = listArr[0].pid;
+  selected.title = listArr[0].title;
+  selected.isFolder = listArr[0].isFolder;
+};
+
+//点击目录
+const onClick = (node) => {
+  selected.id = node.id;
+  selected.pid = node.pid;
+  selected.title = node.title;
+  selected.isFolder = node.isFolder;
+  console.log(selected, 'selec----------')
+  if (flag.value != node.title) {
+    alive.value = new Date().getTime()
+    nodeParam = node;
+    flag.value = node.title;
+  }
+};
+//添加文件
+const onAddNode = async (node) => {
+  let data = await createFile({ fileName: node.newName, type: 'FOL', parentId: node.id });
+  console.log(data, '新增文件返回');
+  getTreeList();
+};
+
+//  修改名字
+const onChangeName = (node) => {
+  editMenu({
+    id: node.id,
+    fileName: node.newName,
+    parentId: node.pid,
+  }).then((res) => {
     getTreeList();
-  };
-
-  //  修改名字
-  const onChangeName = (node) => {
-    editMenu({
-      id: node.id,
-      fileName: node.newName,
-      parentId: node.pid,
-    }).then((res) => {
+  });
+};
+// 删除
+let onDeltet = (node) => {
+  delNode = { ...node };
+};
+//确定删除
+let confirmDel = () => {
+  if (delNode.pid == 'root') {
+    createMessage.warning('根节点不能被删除!');
+  } else if (delNode.children) {
+    createMessage.warning('该节点无法被删除,请先删除该节点下的子节点!');
+  } else {
+    delMenu({ id: delNode.id }).then((res) => {
+      console.log(res, '删除文件');
       getTreeList();
     });
-  };
-  // 删除
-  let onDeltet = (node) => {
-    delNode = { ...node };
-  };
-  //确定删除
-  let confirmDel = () => {
-    if (delNode.pid == 'root') {
-      createMessage.warning('根节点不能被删除!');
-    } else if (delNode.children) {
-      createMessage.warning('该节点无法被删除,请先删除该节点下的子节点!');
-    } else {
-      delMenu({ id: delNode.id }).then((res) => {
-        console.log(res, '删除文件');
-        getTreeList();
-      });
-    }
-  };
-
-  //查询列表
-  let onSearch = () => {
-    alive.value = false;
-    nextTick(() => {
-      alive.value = true;
-    });
-  };
-  //上传文件
-  let beforeUpload = (file) => {
-    console.log(file, '选中文件');
-    fileList.length = 0;
-    let index = file.name.indexOf('.');
-    let name = file.name.substring(index + 1);
-    if (name == 'png' || name == 'jpg' || name == 'gif' || name == 'psd' || name == 'webp') {
-      createMessage.warning('禁止上传图片类型的文件!');
-    } else {
-      fileList.push(file);
-    }
-  };
-  // 文件移除
-  let handleRemove = (file) => {
-    const index = fileList.indexOf(file);
-    const newFileList = fileList.slice();
-    newFileList.splice(index, 1);
-    fileList.length = 0;
-  };
-  //文件-提交
-  async function getListData(){
-    let res=await listData({zx:true,column:'createTime',order:'desc',status:1})
-    console.log(res,'审批提交-----------')
-      submitInfo.value=res
   }
-  watch(
-    () => router.currentRoute.value,
-    (val) => {
-      console.log('各矿传参', val);
-      selfParam.bpmStatus = val.query.bpmStatus;
-      selfParam.sysOrgCode = val.query.sysOrgCode;
-      selfParam.flag = val.query.flag;
-    },
-    { immediate: true }
-  );
-  onMounted(() => {
-    getTreeList();
-    getListData()
-    getTypeTableList();
-  });
+};
+
+//查询列表
+let onSearch = () => {
+  alive.value = new Date().getTime()
+};
+//上传文件
+let beforeUpload = (file) => {
+  console.log(file, '选中文件');
+  fileList.length = 0;
+  let index = file.name.indexOf('.');
+  let name = file.name.substring(index + 1);
+  if (name == 'png' || name == 'jpg' || name == 'gif' || name == 'psd' || name == 'webp') {
+    createMessage.warning('禁止上传图片类型的文件!');
+  } else {
+    fileList.push(file);
+  }
+};
+// 文件移除
+let handleRemove = (file) => {
+  const index = fileList.indexOf(file);
+  const newFileList = fileList.slice();
+  newFileList.splice(index, 1);
+  fileList.length = 0;
+};
+//文件-提交
+async function getListData() {
+  let res = await listData({ zx: true, column: 'createTime', order: 'desc', status: 1 })
+  console.log(res, '审批提交-----------')
+  submitInfo.value = res
+}
+watch(
+  () => router.currentRoute.value,
+  (val) => {
+    console.log('各矿传参', val);
+    selfParam.bpmStatus = val.query.bpmStatus;
+    selfParam.sysOrgCode = val.query.sysOrgCode;
+    selfParam.flag = val.query.flag;
+  },
+  { immediate: true }
+);
+onMounted(() => {
+  getTreeList();
+  getListData()
+  getTypeTableList();
+});
 </script>
 
 <style lang="less" scoped>
-  @ventSpace: zxm;
+@ventSpace: zxm;
+
+.file-details {
+  width: calc(100% - 10px);
+  height: calc(100% - 100px);
+  padding: 0px 15px 15px 15px;
+  position: relative;
+  margin-top: 100px;
+  // background: url(../../../../assets/images/files/homes/bd.png) no-repeat center;
+  // background-size: contain;
+
+  &::after {
+    display: block;
+    content: '';
+    height: 200px;
+    width: 100%;
+    position: absolute;
+    background-image: linear-gradient(#2eb2ff05, #2ea2ff00);
+    border-top: 1px solid #2eb2ff20;
+    top: 0px;
+    left: 0px;
+  }
 
-  .file-details {
-    width: calc(100% - 10px);
-    height: calc(100% - 100px);
-    padding: 0px 15px 15px 15px;
+  .content {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: flex-start;
     position: relative;
-    margin-top: 100px;
-    // background: url(../../../../assets/images/files/homes/bd.png) no-repeat center;
-    // background-size: contain;
-
-    &::after {
-      display: block;
-      content: '';
-      height: 200px;
-      width: 100%;
-      position: absolute;
-      background-image: linear-gradient(#2eb2ff05, #2ea2ff00);
-      border-top: 1px solid #2eb2ff20;
-      top: 0px;
-      left: 0px;
-    }
+    z-index: 999;
 
-    .content {
-      width: 100%;
+    .left-box {
+      width: 15%;
       height: 100%;
-      display: flex;
-      flex-direction: row;
-      justify-content: space-between;
-      align-items: flex-start;
-      position: relative;
-      z-index: 999;
-
-      .left-box {
-        width: 15%;
-        height: 100%;
-        padding: 20px;
-        border: 1px solid #99e8ff66;
-        background: #27546e1a;
-        box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-        -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-        -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
-
-        // lxh
-        .iconfont {
-          color: #fff;
-          font-size: 12px;
-          margin-left: 5px;
-        }
+      padding: 20px;
+      border: 1px solid #99e8ff66;
+      background: #27546e1a;
+      box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+      -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+      -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
+
+      // lxh
+      .iconfont {
+        color: #fff;
+        font-size: 12px;
+        margin-left: 5px;
       }
+    }
 
-      .right-box {
-        width: 85%;
-        height: 100%;
-        padding: 0px 0px 0px 15px;
-        box-sizing: border-box;
-
-        .search {
-          height: 34px;
-          line-height: 34px;
-          margin-bottom: 15px;
-        }
-      }
+    .right-box {
+      width: 85%;
+      height: 100%;
+      padding: 0px 0px 0px 15px;
+      box-sizing: border-box;
 
-      .list {
-        height: calc(100% - 49px);
-        position: relative;
+      .search {
+        height: 34px;
+        line-height: 34px;
+        margin-bottom: 15px;
       }
     }
 
-    .zxm-form {
-      padding: 10px !important;
+    .list {
+      height: calc(100% - 49px);
+      position: relative;
     }
   }
 
-  ::v-deep .jeecg-svg-icon {
-    margin-right: 5px;
-  }
-
-  ::v-deep .jeecg-basic-table-form-container {
-    padding: 0px 0px;
-  }
-
-  ::v-deep .zxm-btn-primary {
-    background-color: transparent;
-    border: none;
-    background: url(../../../../assets/images/files/details/btn.png) no-repeat !important;
-    background-size: 100% 100% !important;
-  }
-
-  ::v-deep .zxm-tree-switcher {
-    background: transparent;
-  }
-
-  ::v-deep .zxm-input {
-    width: 220px;
-    height: 28px;
-    background: transparent;
-    border: 1px solid #31bccc;
-    color: #fff;
-    margin: 0px 20px;
-    border-radius: 5px;
+  .zxm-form {
+    padding: 10px !important;
   }
-
-  ::v-deep .zxm-btn-group {
-    margin-right: 25px;
-  }
-
-  ::v-deep .zxm-upload-list-item-name {
-    color: #fff;
-  }
-
-  ::v-deep .zxm-upload-list-item:hover .zxm-upload-list-item-info {
-    background-color: transparent;
-  }
-
-  :deep(.@{ventSpace}-table-cell-row-hover) {
-    background: #264d8833 !important;
+}
+
+::v-deep .jeecg-svg-icon {
+  margin-right: 5px;
+}
+
+::v-deep .jeecg-basic-table-form-container {
+  padding: 0px 0px;
+}
+
+::v-deep .zxm-btn-primary {
+  background-color: transparent;
+  border: none;
+  background: url(../../../../assets/images/files/details/btn.png) no-repeat !important;
+  background-size: 100% 100% !important;
+}
+
+::v-deep .zxm-tree-switcher {
+  background: transparent;
+}
+
+::v-deep .zxm-input {
+  width: 220px;
+  height: 28px;
+  background: transparent;
+  border: 1px solid #31bccc;
+  color: #fff;
+  margin: 0px 20px;
+  border-radius: 5px;
+}
+
+::v-deep .zxm-btn-group {
+  margin-right: 25px;
+}
+
+::v-deep .zxm-upload-list-item-name {
+  color: #fff;
+}
+
+::v-deep .zxm-upload-list-item:hover .zxm-upload-list-item-info {
+  background-color: transparent;
+}
+
+:deep(.@{ventSpace}-table-cell-row-hover) {
+  background: #264d8833 !important;
+}
+
+:deep(.@{ventSpace}-table-row-selected) {
+  background: #268bc522 !important;
+}
+
+:deep(.@{ventSpace}-select-dropdown) {
+  border: 1px solid #ececec66;
+
+  .@{ventSpace}-select-item-option-selected,
+  .@{ventSpace}-select-item-option-active {
+    background-color: #ffffff33 !important;
   }
 
-  :deep(.@{ventSpace}-table-row-selected) {
-    background: #268bc522 !important;
+  .@{ventSpace}-select-item:hover {
+    background-color: #ffffff33 !important;
   }
+}
 
-  :deep(.@{ventSpace}-select-dropdown) {
-    border: 1px solid #ececec66;
-    // background: #ffffff !important;
-    // left: 0px !important;
-    // backdrop-filter: blur(50px);
-    // background: transparent !important;
-    // backdrop-filter: blur(50px);
-
-    .@{ventSpace}-select-item-option-selected,
-    .@{ventSpace}-select-item-option-active {
-      background-color: #ffffff33 !important;
-    }
-
-    .@{ventSpace}-select-item:hover {
-      background-color: #ffffff33 !important;
-    }
-  }
-
-  ::v-deep .zxm-form-item-control-input {
-    width: 90%;
-  }
+::v-deep .zxm-form-item-control-input {
+  width: 90%;
+}
 </style>