Bladeren bron

测试环境配置

jwyu 10 maanden geleden
bovenliggende
commit
96c413002e
5 gewijzigde bestanden met toevoegingen van 50 en 30 verwijderingen
  1. 1 1
      .env.production
  2. 1 1
      .env.test
  3. 13 6
      src/directives/buttonPermission.js
  4. 33 20
      src/views/customer/UserList.vue
  5. 2 2
      vite.config.js

+ 1 - 1
.env.production

@@ -1,5 +1,5 @@
 # 接口地址
-VITE_APP_API_URL="/v1"
+VITE_APP_API_URL="/adminapi"
 # 路由根地址
 VITE_APP_BASE_URL="/"
 # 打包输入文件名

+ 1 - 1
.env.test

@@ -1,5 +1,5 @@
 # 接口地址
-VITE_APP_API_URL="/v1"
+VITE_APP_API_URL="http://8.136.199.33:8705/adminapi/"
 # 路由根地址
 VITE_APP_BASE_URL="/"
 # 打包输入文件名

+ 13 - 6
src/directives/buttonPermission.js

@@ -1,4 +1,5 @@
 import {usePermission} from '@/hooks/permission'
+import { watchEffect } from 'vue';
 
 const {authList} =usePermission()
 
@@ -7,12 +8,18 @@ export const permission={
   updated(el,binding) {
     let {value} = binding
     if(value && typeof(value)=='string'){
-      // 拿出所有按钮的code
-      let buttonCodes = authList.value.map(item => item.ButtonCode)
-      if(!buttonCodes.includes(value)){
-        // 没有权限,删除dom
-        el.parentNode && el.parentNode.removeChild(el)
-      }
+      // 使用watchEffect来监听authList的变化
+      watchEffect(() => {
+        // 如果authList还未获取到,则直接返回
+        if (!authList.value) return;
+
+        // 拿出所有按钮的code
+        let buttonCodes = authList.value.map(item => item.ButtonCode);
+        if (!buttonCodes.includes(value)) {
+          // 没有权限,删除dom
+          el.parentNode && el.parentNode.removeChild(el);
+        }
+      });
     }else{
       throw new Error('permission指令只接受字符串类型')
     }

+ 33 - 20
src/views/customer/UserList.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { Search,Plus } from '@element-plus/icons-vue'
+import { Search, Plus } from '@element-plus/icons-vue'
 import { apiCustomerUser } from '@/api/customer'
 import { useRouter } from 'vue-router'
 import { ElMessage, ElMessageBox } from 'element-plus'
@@ -42,7 +42,7 @@ const tableColOpt = [
   {
     label: '有效期',
     key: 'ValidStartTime',
-    width:'200px'
+    width: '200px'
   },
   {
     label: '到期时长',
@@ -80,7 +80,7 @@ async function getUserList() {
   const res = await apiCustomerUser.userList({
     PageSize: pageSize.value,
     CurrentIndex: page.value,
-    SellerId:filterState.seller?filterState.seller.join(','):'',
+    SellerId: filterState.seller ? filterState.seller.join(',') : '',
     Status: filterState.status,
     KeyWord: filterState.keyword,
     IsRegistered: filterState.register,
@@ -105,8 +105,8 @@ function handleTableSort(e) {
   // console.log(e);
   const { order, prop } = e//order:"descending",prop: "RegisterTime"
 }
-function handleFilterList(){
-  page.value=1
+function handleFilterList() {
+  page.value = 1
   getUserList()
 }
 
@@ -246,7 +246,7 @@ function handleDelUser(row) {
         v-model="filterState.keyword"
         :prefix-icon="Search"
         clearable
-        style="max-width: 359px;margin-left:auto"
+        style="max-width: 359px; margin-left: auto"
         @input="handleFilterList"
       />
     </div>
@@ -298,37 +298,50 @@ function handleDelUser(row) {
               @click="$router.push('/customer/userDetail?id=' + row.UserId)"
               >{{ row[column.key] }}</span
             >
-            <span
-              v-else-if="column.key === 'ValidStartTime'"
-              >{{ formatTime(row.ValidStartTime,'YYYY-MM-DD') }}~{{formatTime(row.ValidEndTime,'YYYY-MM-DD')}}</span
-            >
-            <span
-              v-else-if="column.key === 'RegisterTime'"
-              >{{ formatTime(row.RegisterTime) }}</span
-            >
-            <span
-              v-else-if="column.key === 'CreateTime'"
-              >{{ formatTime(row.CreateTime) }}</span
+            <span v-else-if="column.key === 'ValidStartTime'"
+              >{{ formatTime(row.ValidStartTime, "YYYY-MM-DD") }}~{{
+                formatTime(row.ValidEndTime, "YYYY-MM-DD")
+              }}</span
             >
+            <span v-else-if="column.key === 'RegisterTime'">{{
+              formatTime(row.RegisterTime)
+            }}</span>
+            <span v-else-if="column.key === 'CreateTime'">{{
+              formatTime(row.CreateTime)
+            }}</span>
             <span v-else>{{ row[column.key] }}</span>
           </template>
         </el-table-column>
         <el-table-column label="操作" width="160">
           <template #default="{ row }">
-            <el-button type="primary" link @click="handleEditUser(row)"
+            <el-button
+              v-permission="'user:edit'"
+              type="primary"
+              link
+              @click="handleEditUser(row)"
               >编辑</el-button
             >
             <el-button
+              v-permission="'user:editEnabled'"
               type="danger"
               link
               v-if="row.Status"
               @click="handleDisabledUser(row)"
               >禁用</el-button
             >
-            <el-button type="primary" link v-else @click="handleEnableUser(row)"
+            <el-button
+              v-permission="'user:editEnabled'"
+              type="primary"
+              link
+              v-else
+              @click="handleEnableUser(row)"
               >启用</el-button
             >
-            <el-button type="danger" link @click="handleDelUser(row)"
+            <el-button
+              v-permission="'user:delete'"
+              type="danger"
+              link
+              @click="handleDelUser(row)"
               >删除</el-button
             >
           </template>

+ 2 - 2
vite.config.js

@@ -90,10 +90,10 @@ export default defineConfig(({ mode }) => {
       outDir: ENV.VITE_APP_OUTDIR,
     },
     server: {
-      port: 8715,
+      port: 8706,
       proxy: {
         "/v1": {
-          target: "http://192.168.77.27:8715/adminapi",
+          target: "http://8.136.199.33:8705/adminapi",
           changeOrigin: true,
           rewrite: (path) => path.replace(/^\/v1/, ""),
         },