Browse Source

build 添加功能权限 部分功能权限写的默认值

xiaodai2017 2 years ago
parent
commit
d498b81063

+ 2 - 1
src/views/InvoiceSales/capitalClaim/config/content.config.ts

@@ -85,7 +85,8 @@ const contentConfig: ContentConfig = {
   notPreview: true,
   apis: {
     httpList
-  }
+  },
+  powers: ["001", "002", "003", "004", "005", "006", "007", "008"]
 };
 
 export default contentConfig;

+ 2 - 1
src/views/purchase/inputInvoice/config/content.config.ts

@@ -78,7 +78,8 @@ const contentConfig: ContentConfig = {
   columns,
   apis: {
     httpList
-  }
+  },
+  powers: ["001", "002", "003", "004", "005", "006", "007", "008"]
 };
 
 export default contentConfig;

+ 2 - 1
src/views/purchase/orderRecord/config/content.config.ts

@@ -111,7 +111,8 @@ const contentConfig: ContentConfig = {
   apis: {
     httpList,
     httpDelete: httpDel
-  }
+  },
+  powers: ["001", "002", "003", "004", "005", "006", "007", "008"]
 };
 
 export default contentConfig;

+ 38 - 33
src/views/purchase/orderRecord/detail.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { computed, ref, watchEffect } from "vue";
+import { computed, ref, watchEffect, onMounted } from "vue";
 import { useRoute, useRouter } from "vue-router";
 import { useResponseHandle } from "/@/hooks";
 import { httpInfo, httpStatus } from "/@/api/purchase/orderRecord";
@@ -8,10 +8,10 @@ import BusinessReview from "./components/approval-process/business-review.vue";
 import FinancialAudit from "./components/approval-process/financial-audit.vue";
 import CreateStatement from "./components/create-statement/index.vue";
 import StatementDetail from "./components/statement-detail/index.vue";
-
+import { useUserStoreHook } from "/@/store/modules/user";
 const { query } = useRoute();
 const { push } = useRouter();
-
+const powers = ref([]);
 const payNo = computed(() => query.id as string);
 const isCreate = computed(() => !payNo.value);
 const responseHandle = useResponseHandle();
@@ -50,42 +50,47 @@ async function requesetChangeStatus(otherParams: any) {
     handler: () => push("/purchase/orderRecord")
   });
 }
-
+onMounted(() => {
+  powers.value = useUserStoreHook().getMenuActions("orderRecordDetail");
+});
 //初始化对账单详情
 watchEffect(() => payNo.value && initalStatementDetail());
 </script>
 
 <template>
   <div class="porde__content" bg-white>
-    <!-- 创建 -->
-    <CreateStatement v-if="isCreate" />
-
-    <!-- 详情 -->
-    <ElTabs v-else>
-      <ElTabPane label="订单对账详情">
-        <ElCollapse v-model="collapses">
-          <!-- 详情 -->
-          <ElCollapseItem title="订单对账详情" name="1">
-            <StatementDetail :statement-detail="statementDetail" />
-          </ElCollapseItem>
-
-          <!-- 审批流程 -->
-          <ElCollapseItem name="2" v-if="status === 0" title="发起审核流程">
-            <InitiateAudit @change-status="requesetChangeStatus" />
-          </ElCollapseItem>
-
-          <ElCollapseItem name="3" v-if="status === 1" title="业务审核">
-            <BusinessReview @change-status="requesetChangeStatus" />
-          </ElCollapseItem>
-
-          <ElCollapseItem name="4" v-if="status === 2" title="财务审核">
-            <FinancialAudit @change-status="requesetChangeStatus" />
-          </ElCollapseItem>
-        </ElCollapse>
-      </ElTabPane>
-
-      <ElTabPane label="审批记录" />
-    </ElTabs>
+    <div v-show="powers.some(i => i == '007')">
+      <!-- 创建 -->
+      <CreateStatement v-if="isCreate" />
+
+      <!-- 详情 -->
+      <ElTabs v-else>
+        <ElTabPane label="订单对账详情">
+          <ElCollapse v-model="collapses">
+            <!-- 详情 -->
+            <ElCollapseItem title="订单对账详情" name="1">
+              <StatementDetail :statement-detail="statementDetail" />
+            </ElCollapseItem>
+
+            <!-- 审批流程 -->
+            <ElCollapseItem name="2" v-if="status === 0" title="发起审核流程">
+              <InitiateAudit @change-status="requesetChangeStatus" />
+            </ElCollapseItem>
+
+            <ElCollapseItem name="3" v-if="status === 1" title="业务审核">
+              <BusinessReview @change-status="requesetChangeStatus" />
+            </ElCollapseItem>
+
+            <ElCollapseItem name="4" v-if="status === 2" title="财务审核">
+              <FinancialAudit @change-status="requesetChangeStatus" />
+            </ElCollapseItem>
+          </ElCollapse>
+        </ElTabPane>
+
+        <ElTabPane label="审批记录" />
+      </ElTabs>
+    </div>
+    <NoAuth v-show="!powers.some(i => i == '007')" />
   </div>
 </template>
 

+ 35 - 18
src/views/purchase/orderRecord/index.vue

@@ -4,11 +4,12 @@ import { PageSearch, usePageSearch } from "/@/components/PageSearch";
 import { useRouter } from "vue-router";
 import contentConfig from "./config/content.config";
 import searchFormConfig from "./config/search.config";
-
+import { useUserStoreHook } from "/@/store/modules/user";
+import { ref, onMounted } from "vue";
 defineOptions({
   name: "orderRecord"
 });
-
+const powers = ref([]);
 const searchCallback = ({ timer }: any) => {
   const [startTime, endTime] = timer;
   return {
@@ -35,25 +36,41 @@ function handlePreview(item) {
     }
   });
 }
+onMounted(() => {
+  const arr = useUserStoreHook().getMenuActions("orderRecord");
+  powers.value = [].concat(...arr);
+  contentConfig.powers = [].concat(...arr);
+  // if (powers.value.some(i => i == "001")) {
+  //   actionTableRef.value.onSearch();F
+  // }
+});
 </script>
 
 <template>
-  <div class="main role">
-    <PageSearch
-      ref="pageContentRef"
-      :form-config="searchFormConfig"
-      @search-btn-click="handleSearchClick"
-      @reset-btn-click="handleResetClick"
-    />
+  <div class="main orderRecord">
+    <div v-show="powers.some(i => i == '001')">
+      <PageSearch
+        ref="pageContentRef"
+        :form-config="searchFormConfig"
+        @search-btn-click="handleSearchClick"
+        @reset-btn-click="handleResetClick"
+      />
 
-    <PageContent
-      ref="pageContentRef"
-      :content-config="contentConfig"
-      @preview-btn-click="handlePreview"
-    >
-      <template #create>
-        <el-button type="primary" @click="handleCreate">新建</el-button>
-      </template>
-    </PageContent>
+      <PageContent
+        ref="pageContentRef"
+        :content-config="contentConfig"
+        @preview-btn-click="handlePreview"
+      >
+        <template #create>
+          <el-button
+            type="primary"
+            v-if="powers.some(i => i == '002')"
+            @click="handleCreate"
+            >新建</el-button
+          >
+        </template>
+      </PageContent>
+    </div>
+    <NoAuth v-show="!powers.some(i => i == '001')" />
   </div>
 </template>

+ 114 - 100
src/views/purchase/porder/index.vue

@@ -10,9 +10,10 @@ import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
 import { useNav } from "/@/layout/hooks/nav";
 import { statusList } from "/@/utils/status";
 import PreviewDialog from "./preview-dialog.vue";
+import { useUserStoreHook } from "/@/store/modules/user";
 const { logout } = useNav();
 defineOptions({
-  name: "role"
+  name: "porder"
 });
 
 const selectList = ref([
@@ -34,6 +35,7 @@ const form = reactive({
 });
 
 const dataList = ref([]);
+const powers = ref([]);
 const loading = ref(true);
 const { columns } = useColumns();
 const formRef = ref<FormInstance>();
@@ -113,110 +115,122 @@ const resetForm = (formEl: FormInstance | undefined) => {
 };
 
 onMounted(() => {
-  onSearch();
+  powers.value = useUserStoreHook().getMenuActions("porder");
+  // console.log("8888888888888888");
+  // console.log(powers.value);
+  if (powers.value.some(i => i == "001")) {
+    onSearch();
+  }
 });
 </script>
 
 <template>
-  <div class="main role">
-    <el-form
-      ref="formRef"
-      :inline="true"
-      :model="form"
-      :label-width="0"
-      class="bg-white w-99/100 pl-8 pt-4"
-    >
-      <el-form-item prop="status">
-        <el-select
-          v-model="form.status"
-          style="width: 100%"
-          placeholder="采购单状态"
-          clearable
-        >
-          <el-option
-            v-for="(si, sii) in statusList"
-            :key="'status' + si.value + sii"
-            :label="si.label"
-            :value="si.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item prop="input">
-        <el-input
-          v-model="form.input"
-          placeholder="关键字"
-          class="input-with-select"
-        >
-          <template #prepend>
-            <el-select
-              v-model="form.select"
-              placeholder="关键字类型"
-              style="width: 130px"
-            >
-              <el-option
-                v-for="(si, sii) in selectList"
-                :key="'si' + si.value + sii"
-                :label="si.label"
-                :value="si.value"
-              />
-            </el-select>
-          </template>
-        </el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button
-          type="primary"
-          :icon="useRenderIcon('search')"
-          :loading="loading"
-          @click="resetSearch"
-        >
-          搜索
-        </el-button>
-        <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)">
-          重置
-        </el-button>
-      </el-form-item>
-    </el-form>
-
-    <TableProBar
-      title="采购单管理"
-      :loading="loading"
-      :dataList="dataList"
-      @refresh="onSearch"
-    >
-      <template #buttons />
-      <template v-slot="{ size, checkList }">
-        <PureTable
-          border
-          align="left"
-          showOverflowTooltip
-          table-layout="auto"
-          :size="size"
-          :data="dataList"
-          :columns="columns"
-          :checkList="checkList"
-          :pagination="pagination"
-          :paginationSmall="size === 'small' ? true : false"
-          :header-cell-style="{ background: '#fafafa', color: '#606266' }"
-          @selection-change="handleSelectionChange"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-        >
-          <template #operation="{ row }">
-            <el-button
-              class="reset-margin"
-              link
-              type="primary"
-              :size="size"
-              @click="editItem(row)"
-              :icon="useRenderIcon('eye-view')"
+  <div class="main porder">
+    <div v-show="powers.some(i => i == '001')">
+      <el-form
+        ref="formRef"
+        :inline="true"
+        :model="form"
+        :label-width="0"
+        class="bg-white w-99/100 pl-8 pt-4"
+      >
+        <el-form-item prop="status">
+          <el-select
+            v-model="form.status"
+            style="width: 100%"
+            placeholder="采购单状态"
+            clearable
+          >
+            <el-option
+              v-for="(si, sii) in statusList"
+              :key="'status' + si.value + sii"
+              :label="si.label"
+              :value="si.value"
             />
-          </template>
-        </PureTable>
-      </template>
-    </TableProBar>
-
-    <PreviewDialog ref="PreviewDialogRef" />
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="input">
+          <el-input
+            v-model="form.input"
+            placeholder="关键字"
+            class="input-with-select"
+          >
+            <template #prepend>
+              <el-select
+                v-model="form.select"
+                placeholder="关键字类型"
+                style="width: 130px"
+              >
+                <el-option
+                  v-for="(si, sii) in selectList"
+                  :key="'si' + si.value + sii"
+                  :label="si.label"
+                  :value="si.value"
+                />
+              </el-select>
+            </template>
+          </el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            type="primary"
+            :icon="useRenderIcon('search')"
+            :loading="loading"
+            @click="resetSearch"
+          >
+            搜索
+          </el-button>
+          <el-button
+            :icon="useRenderIcon('refresh')"
+            @click="resetForm(formRef)"
+          >
+            重置
+          </el-button>
+        </el-form-item>
+      </el-form>
+
+      <TableProBar
+        title="采购单管理"
+        :loading="loading"
+        :dataList="dataList"
+        @refresh="onSearch"
+      >
+        <template #buttons />
+        <template v-slot="{ size, checkList }">
+          <PureTable
+            border
+            align="left"
+            showOverflowTooltip
+            table-layout="auto"
+            :size="size"
+            :data="dataList"
+            :columns="columns"
+            :checkList="checkList"
+            :pagination="pagination"
+            :paginationSmall="size === 'small' ? true : false"
+            :header-cell-style="{ background: '#fafafa', color: '#606266' }"
+            @selection-change="handleSelectionChange"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          >
+            <template #operation="{ row }">
+              <el-button
+                class="reset-margin"
+                link
+                v-if="powers.some(i => i == '007')"
+                type="primary"
+                :size="size"
+                @click="editItem(row)"
+                :icon="useRenderIcon('eye-view')"
+              />
+            </template>
+          </PureTable>
+        </template>
+      </TableProBar>
+
+      <PreviewDialog ref="PreviewDialogRef" />
+    </div>
+    <NoAuth v-show="!powers.some(i => i == '001')" />
   </div>
 </template>
 

+ 2 - 1
src/views/purchase/purchPay/config/content.config.ts

@@ -110,7 +110,8 @@ const contentConfig: ContentConfig = {
   apis: {
     httpList,
     httpDelete
-  }
+  },
+  powers: ["001", "002", "003", "004", "005", "006", "007", "008"]
 };
 
 export default contentConfig;

+ 2 - 1
src/views/purchase/ticketReturn/config/content.config.ts

@@ -100,7 +100,8 @@ const contentConfig: ContentConfig = {
   columns,
   apis: {
     httpList
-  }
+  },
+  powers: ["001", "002", "003", "004", "005", "006", "007", "008"]
 };
 
 export default contentConfig;