huang_an 1 yıl önce
ebeveyn
işleme
db80e27c9a

Dosya farkı çok büyük olduğundan ihmal edildi
+ 569 - 21
package-lock.json


+ 1 - 0
package.json

@@ -17,6 +17,7 @@
     "@ant-design/colors": "^6.0.0",
     "@babel/core": "^7.18.13",
     "axios": "^0.27.2",
+    "build": "^0.1.4",
     "core-js": "^3.25.0",
     "countup.js": "^2.3.2",
     "cropperjs": "^1.5.12",

+ 3 - 0
qiankun_config/store.js

@@ -18,4 +18,7 @@ export default function (state) {
   if (state.user?.info) {
     store.commit('user/setUserInfo', state.user.info);
   }
+  if (state.user?.authorityDept) {
+    store.dispatch('user/getCurrentUserAuthorityDept');
+  }
 }

+ 11 - 0
src/api/login/index.js

@@ -23,3 +23,14 @@ export async function getCaptcha() {
   }
   return Promise.reject(new Error(res.data.message));
 }
+/**
+ * 获取当前登陆用户数据权限部门数据
+ * @param
+ */
+export async function getCurrentUserAuthorityDeptAPI () {
+  const res = await request.post('/main/user/getCurrentUserAuthorityDepts');
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 75 - 0
src/components/authSelection/index.vue

@@ -0,0 +1,75 @@
+<template>
+  <div>
+    <ele-tree-select
+      clearable
+      :data="deptTreeList"
+      v-model="selectVal"
+      valueKey="id"
+      labelKey="name"
+      :show-checkbox="true"
+      :check-strictly="true"
+      multiple
+      collapseTags
+      filterable
+      placeholder="请选择"
+      default-expand-all
+    />
+  </div>
+</template>
+<script>
+  import { mapGetters } from 'vuex';
+
+  export default {
+    name: 'index',
+    model: {
+      prop: 'value',
+      event: 'updateVal'
+    },
+    props: {
+      value: {
+        type: [String, Array],
+        default: ''
+      },
+      dataType: {
+        type: String,
+        default: 'String'
+      }
+    },
+    data() {
+      return {
+        deptTreeList: []
+      };
+    },
+    computed: {
+      ...mapGetters(['user']),
+      selectVal: {
+        set(val) {
+          switch (this.dataType) {
+            case 'Array':
+              this.$emit('updateVal', val);
+              break;
+            default:
+              this.$emit('updateVal', val.join(','));
+          }
+        },
+        get() {
+          switch (this.dataType) {
+            case 'Array':
+              return this.value || [];
+            default:
+              return this.value ? this.value.split(',') : [];
+          }
+        }
+      }
+    },
+    mounted() {
+      this.deptTreeList = this.$util.toTreeData({
+        data: this.user?.authorityDept?.groupList || [],
+        idField: 'id',
+        parentIdField: 'parentId'
+      });
+    }
+  };
+</script>
+
+<style scoped lang="scss"></style>

+ 2 - 1
src/main.js

@@ -14,6 +14,7 @@ import HeaderTitle from '@/components/header-title';
 import initParentStore from '../qiankun_config/store';
 import elTableInfiniteScroll from 'el-table-infinite-scroll';
 import { create, all } from 'mathjs'; // 引入mathjs工具并初始化
+import authSelection from '@/components/authSelection';
 Vue.use(elTableInfiniteScroll);
 const config = {
   number: 'BigNumber',
@@ -21,7 +22,7 @@ const config = {
 };
 Vue.prototype.$math = create(all, config);
 Vue.component('HeaderTitle', HeaderTitle);
-
+Vue.component('authSelection', authSelection);
 // // register globally
 import '@/icons';
 

+ 12 - 1
src/store/modules/user.js

@@ -4,6 +4,7 @@
 import { formatMenus, toTreeData, formatTreeData } from 'ele-admin';
 import { USER_MENUS } from '@/config/setting';
 import { getResourcesTree } from '@/api/layout';
+import {getCurrentUserAuthorityDeptAPI} from "@/api/login";
 
 const formatRouter = (list) => {
   let menuList = []; // menuType
@@ -45,7 +46,9 @@ export default {
     // 当前登录用户的权限路由
     authoritiesRouter: [],
     // 当前登录用户的角色
-    roles: []
+    roles: [],
+    // 当前登录用户的数据权限部门数据
+    authorityDept: {}
   },
   mutations: {
     // 设置登录用户的信息
@@ -69,9 +72,17 @@ export default {
     // 设置登录用户的角色
     setRoles(state, roles) {
       state.roles = roles;
+    },
+    // 当前登录用户的数据权限部门数据
+    setAuthorityDept(state, info) {
+      state.authorityDept = info;
     }
   },
   actions: {
+    async getCurrentUserAuthorityDept({ commit }) {
+      const info = await getCurrentUserAuthorityDeptAPI();
+      commit('setAuthorityDept', info);
+    },
     /**
      * 请求用户信息、权限、角色、菜单
      */

+ 1 - 0
src/views/login/index.vue

@@ -180,6 +180,7 @@
               this.$store.commit('user/setUserInfo', res.data);
               this.loading = false;
               this.$message.success(res.message);
+              this.$store.dispatch('user/getCurrentUserAuthorityDept');
               this.goHome();
             })
             .catch((e) => {

+ 7 - 2
src/views/warehouseManagement/inventoryAllocation/components/inventory-search.vue

@@ -1,7 +1,7 @@
 <!-- 搜索表单 -->
 <template>
   <el-form
-    label-width="70px"
+    label-width="80px"
     class="ele-form-search"
     @keyup.enter.native="search"
     @submit.native.prevent
@@ -54,7 +54,12 @@
           />
         </el-form-item>
       </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 18, md: 12 } : { span: 6 }">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="组织机构:" prop="deptIds">
+          <auth-selection data-type="Array" v-model="where.deptIds" style="width: 100%"></auth-selection>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 6 }">
         <div class="ele-form-actions">
           <el-button
             type="primary"

+ 8 - 3
src/views/warehouseManagement/outgoingManagement/index.vue

@@ -16,7 +16,7 @@
                 value-format="yyyy-MM-dd"
               ></el-date-picker> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="出库单号" prop="bizNo">
               <el-input
                 size="small"
@@ -25,7 +25,7 @@
                 v-model="formData.bizNo"
               ></el-input> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="领料人" prop="fromUser">
               <el-input
                 size="small"
@@ -35,7 +35,7 @@
               ></el-input> </el-form-item
           ></el-col>
 
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="状态" prop="verifyStatus">
               <el-select
                 filterable
@@ -67,6 +67,11 @@
             ></el-date-picker> </el-form-item
         ></el-col> -->
           <el-col :span="6">
+            <el-form-item label="组织机构:" prop="deptIds">
+              <auth-selection v-model="formData.deptIds" style="width: 100%"></auth-selection>
+            </el-form-item>
+          </el-col>
+          <el-col  style="display: flex;justify-content: flex-end" :span="18">
             <div>
               <el-button icon="el-icon-refresh-left" size="small" @click="reset"
                 >重置</el-button

+ 8 - 3
src/views/warehouseManagement/sparePartsOutbound/index.vue

@@ -16,7 +16,7 @@
                 value-format="yyyy-MM-dd"
               ></el-date-picker> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="出库单号" prop="bizNo">
               <el-input
                 size="small"
@@ -25,7 +25,7 @@
                 v-model="formData.bizNo"
               ></el-input> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="领料人" prop="fromUser">
               <el-input
                 size="small"
@@ -35,7 +35,7 @@
               ></el-input> </el-form-item
           ></el-col>
 
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="状态" prop="verifyStatus">
               <el-select
                 filterable
@@ -67,6 +67,11 @@
             ></el-date-picker> </el-form-item
         ></el-col> -->
           <el-col :span="6">
+            <el-form-item label="组织机构:" prop="deptIds">
+              <auth-selection v-model="formData.deptIds" style="width: 100%"></auth-selection>
+            </el-form-item>
+          </el-col>
+          <el-col style="display: flex;justify-content: flex-end" :span="18">
             <div>
               <el-button icon="el-icon-refresh-left" size="small" @click="reset"
                 >重置</el-button

+ 1 - 1
src/views/warehouseManagement/stockLedger/components/item-list.vue

@@ -11,7 +11,7 @@
       :initLoad="false"
       :columns="columns"
       :datasource="datasource"
-      height="calc(100vh - 355px)"
+      height="calc(100vh - 405px)"
       full-height="calc(100vh - 116px)"
       tool-class="ele-toolbar-form"
       cache-key="systemOrgUserTable"

+ 5 - 0
src/views/warehouseManagement/stockLedger/components/item-search.vue

@@ -130,6 +130,11 @@
             ></el-input>
           </el-form-item>
         </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="组织机构:">
+            <auth-selection v-model="params.deptIds" style="width: 100%"></auth-selection>
+          </el-form-item>
+        </el-col>
         <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
           <div class="ele-form-actions">
             <el-button

+ 28 - 6
src/views/warehouseManagement/stockManagement/index.vue

@@ -3,7 +3,7 @@
     <el-card shadow="never">
       <el-form :model="formData" ref="formName" label-width="80px">
         <el-row :gutter="10">
-          <el-col :span="5">
+          <el-col :span="6">
             <el-form-item label="入库时间" prop="time">
               <el-date-picker
                 class="w100"
@@ -16,7 +16,7 @@
                 value-format="yyyy-MM-dd"
               ></el-date-picker> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="入库单号" prop="bizNum">
               <el-input
                 size="small"
@@ -25,7 +25,7 @@
                 v-model="formData.bizNum"
               ></el-input> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="编码" prop="assetCode">
               <el-input
                 size="small"
@@ -34,7 +34,7 @@
                 v-model="formData.assetCode"
               ></el-input> </el-form-item
           ></el-col>
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="名称" prop="assetName">
               <el-input
                 size="small"
@@ -44,7 +44,7 @@
               ></el-input> </el-form-item
           ></el-col>
 
-          <el-col :span="4">
+          <el-col :span="6">
             <el-form-item label="状态" prop="verifyStatus">
               <el-select
                 filterable
@@ -62,7 +62,28 @@
                 ></el-option>
               </el-select> </el-form-item
           ></el-col>
-          <el-col :span="3">
+          <el-col :span="6">
+            <el-form-item label="组织机构:" prop="deptIds">
+              <auth-selection
+                v-model="formData.deptIds"
+                style="width: 100%"
+              ></auth-selection>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :lg="6" :sm="8" :xs="8">
+          <el-form-item label="创建时间" prop="time">
+            <el-date-picker
+              class="w100"
+              size="small"
+              v-model="formData.time"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              value-format="yyyy-MM-dd"
+            ></el-date-picker> </el-form-item
+        ></el-col> -->
+          <el-col :span="12" style="display: flex; justify-content: flex-end">
             <div>
               <el-button icon="el-icon-refresh-left" size="small" @click="reset"
                 >重置</el-button
@@ -170,6 +191,7 @@
         codeList: [],
         tableData: [],
         formData: {
+          deptIds: '',
           bizNum: '',
           deliveryName: '',
           time: [],

+ 4 - 1
src/views/warehouseManagement/stocktaking/plan/components/plan-search.vue

@@ -19,6 +19,9 @@
         <el-form-item label="计划名称:">
           <el-input clearable v-model="where.name" placeholder="请输入" />
         </el-form-item>
+        <el-form-item label="组织机构:" prop="deptIds">
+          <auth-selection v-model="where.deptIds" style="width: 100%"></auth-selection>
+        </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="盘点部门:">
@@ -95,4 +98,4 @@
 		align-items: center;
 		justify-content: flex-end;
 	}
-</style>
+</style>

+ 5 - 2
src/views/warehouseManagement/stocktaking/reportLoss/components/reportloss-search.vue

@@ -1,7 +1,7 @@
 <!-- 搜索表单 -->
 <template>
   <el-form
-    label-width="70px"
+    label-width="80px"
     class="ele-form-search"
     @keyup.enter.native="search"
     @submit.native.prevent
@@ -19,6 +19,9 @@
         <el-form-item label="名称:">
           <el-input clearable v-model="where.name" placeholder="请输入" />
         </el-form-item>
+        <el-form-item label="组织机构:" prop="deptIds">
+          <auth-selection v-model="where.deptIds" style="width: 100%"></auth-selection>
+        </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="报损报溢部门:" label-width="120px">
@@ -95,4 +98,4 @@
 		align-items: center;
 		justify-content: flex-end;
 	}
-</style>
+</style>

+ 20 - 17
src/views/warehouseManagement/stocktaking/work/components/work-search.vue

@@ -35,24 +35,27 @@
         <el-form-item label="盘点部门:">
           <el-input clearable v-model="where.texture" placeholder="请输入" />
         </el-form-item>
-		<div class="ele-form-actions">
-			<el-button
-				type="primary"
-				icon="el-icon-search"
-				class="ele-btn-icon"
-				@click="search"
-				size="small"
-			>
-				查询
-			</el-button>
-			 <el-button @click="reset"
-				 icon="el-icon-refresh-left"
-				 size="small"
-				 type="primary"
-			 >重置</el-button>
-		</div>
+        <el-form-item label="组织机构:" prop="deptIds">
+          <auth-selection v-model="where.deptIds" style="width: 100%"></auth-selection>
+        </el-form-item>
       </el-col>
     </el-row>
+    <div class="ele-form-actions">
+      <el-button
+        type="primary"
+        icon="el-icon-search"
+        class="ele-btn-icon"
+        @click="search"
+        size="small"
+      >
+        查询
+      </el-button>
+      <el-button @click="reset"
+                 icon="el-icon-refresh-left"
+                 size="small"
+                 type="primary"
+      >重置</el-button>
+    </div>
   </el-form>
 </template>
 
@@ -101,4 +104,4 @@
 		align-items: center;
 		justify-content: flex-end;
 	}
-</style>
+</style>

+ 23 - 15
src/views/warehouseManagement/warehouseDefinition/index.vue

@@ -20,7 +20,7 @@
                 v-model="formData.inventoryType"
               /> </el-form-item
           ></el-col>
-          <el-col :span="5">
+          <el-col :span="4">
             <el-form-item label="所属工厂" prop="factoryId">
               <el-select
                 filterable
@@ -37,7 +37,7 @@
                 ></el-option>
               </el-select> </el-form-item
           ></el-col>
-          <el-col :span="5">
+          <el-col :span="4">
             <el-form-item label="空货位数">
               <div class="divider11">
                 <el-col :span="9">
@@ -75,18 +75,25 @@
               </div>
             </el-form-item>
           </el-col>
-          <el-col :span="6" style="text-align: right">
-            <el-form-item>
-              <div>
-                <el-button icon="el-icon-refresh-left" @click="reset"
-                  >重置</el-button
-                >
-                <el-button type="primary" icon="el-icon-search" @click="search"
-                  >搜索</el-button
-                >
-              </div>
+          <el-col :span="5">
+            <el-form-item label="组织机构:" prop="deptIds">
+              <auth-selection
+                data-type="Array"
+                v-model="formData.deptIds"
+                style="width: 100%"
+              ></auth-selection>
             </el-form-item>
           </el-col>
+          <el-col :span="3" style="display: flex; justify-content: flex-end">
+            <div>
+              <el-button icon="el-icon-refresh-left" @click="reset"
+                >重置</el-button
+              >
+              <el-button type="primary" icon="el-icon-search" @click="search"
+                >搜索</el-button
+              >
+            </div>
+          </el-col>
         </el-row>
       </el-form>
 
@@ -240,6 +247,7 @@
         isTable: false,
         loading: false,
         formData: {
+          deptIds: [],
           code: '',
           name: '',
           inventoryType: '',
@@ -356,9 +364,6 @@
       },
       remove({ id, name }) {
         this.$confirm(`确认删除仓库${name}?`).then(async () => {
-          const res = await warehouseDefinition.delete(id);
-          this.$message.success('删除' + res + '!');
-          this.handleList();
           // const isDeleted = await warehouseDefinition.isDelete(id);
           // if (isDeleted == 1) {
           //   const res = await warehouseDefinition.delete(id);
@@ -367,6 +372,9 @@
           // } else {
           //   this.$message.warning('此数据可能有关联数据,暂时无法删除!');
           // }
+          const res = await warehouseDefinition.delete(id);
+          this.$message.success('删除' + res + '!');
+          this.handleList();
         });
       }
     }

+ 1 - 1
vue.config.js

@@ -34,7 +34,7 @@ module.exports = {
         // target: 'http://124.71.68.31:50001', // 测试环境
         // target: 'http://124.71.68.31:50001',
         // target: 'http://192.168.1.132:18086',
-        target: 'http://192.168.1.116:18086',
+        target: 'http://192.168.1.147:18086',
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {
           '^/api': ''

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor