Răsfoiți Sursa

feat: ai stock for tenant

Casper Dai 3 ani în urmă
părinte
comite
ebe7b382f5

+ 3 - 3
src/router/index.js

@@ -289,10 +289,10 @@ export const asyncRoutes = [
         meta: { title: '设备分配' }
       },
       {
-        name: 'stock',
-        path: 'stock',
+        name: 'ai-stock',
+        path: 'ai/stock',
         component: () => import('@/views/realm/ai-stock/index'),
-        access: Access.MANAGE_TENANTS,
+        access: [Access.MANAGE_TENANTS, Access.MANAGE_TENANT],
         meta: { title: 'AI审核库存' }
       }
     ]

+ 65 - 0
src/views/realm/ai-stock/Group.vue

@@ -0,0 +1,65 @@
+<template>
+  <wrapper
+    fill
+    margin
+    padding
+    background
+  >
+    <schema-table :schema="schema" />
+    <credit-config-dialog ref="creditDialog" />
+  </wrapper>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import { getTenantCredits } from './api'
+import CreditConfigDialog from './components/CreditConfigDialog'
+
+export default {
+  name: 'AIStockGroup',
+  components: {
+    CreditConfigDialog
+  },
+  data () {
+    return {
+      schema: {
+        condition: { auditType: void 0 },
+        list: this.getTenantCredits,
+        buttons: [
+          { label: '阈值配置', on: this.onConfig }
+        ],
+        filters: [
+          { key: 'auditType', type: 'select', placeholder: '全部类型', options: [
+            { value: 1, label: '图片' },
+            { value: 2, label: '视频' }
+          ] }
+        ],
+        cols: [
+          { label: '审核类型', render: this.transformAuditType },
+          { prop: 'effectiveDate', label: '生效日期' },
+          { prop: 'expiryDate', label: '结束日期' },
+          { prop: 'initialAmount', label: '总次数' },
+          { prop: 'remaining', label: '剩余次数' }
+        ]
+      }
+    }
+  },
+  computed: {
+    ...mapGetters(['tenant'])
+  },
+  methods: {
+    getTenantCredits (params) {
+      return getTenantCredits({
+        tenant: this.tenant,
+        ...params
+      })
+    },
+    transformAuditType (data) {
+      return ['', '图片', '视频'][data.auditType]
+    },
+    onConfig () {
+      this.$refs.creditDialog.show(this.tenant)
+    }
+  }
+}
+</script>

+ 1 - 10
src/views/realm/ai-stock/Stock.vue

@@ -87,16 +87,7 @@ export default {
           ] }
         ]
       },
-      credit: {},
-      creditConfig: {
-        has: false,
-        threshold: 0
-      }
-    }
-  },
-  computed: {
-    creditTitle () {
-      return this.creditConfig.has ? '更新阈值' : '新增阈值'
+      credit: {}
     }
   },
   methods: {

+ 44 - 0
src/views/realm/ai-stock/Tenant.vue

@@ -0,0 +1,44 @@
+<template>
+  <wrapper
+    fill
+    margin
+    padding
+    background
+  >
+    <el-tabs
+      v-model="active"
+      class="c-tabs has-bottom-padding"
+    >
+      <el-tab-pane
+        label="库存管理"
+        name="Stock"
+      />
+      <el-tab-pane
+        label="库存分配"
+        name="StockAssign"
+      />
+    </el-tabs>
+    <component
+      :is="active"
+      class="l-flex__auto"
+    />
+  </wrapper>
+</template>
+
+<script>
+import Stock from './Stock'
+import StockAssign from './Assign'
+
+export default {
+  name: 'AIStockTenant',
+  components: {
+    Stock,
+    StockAssign
+  },
+  data () {
+    return {
+      active: 'Stock'
+    }
+  }
+}
+</script>

+ 10 - 35
src/views/realm/ai-stock/index.vue

@@ -1,44 +1,19 @@
-<template>
-  <wrapper
-    fill
-    margin
-    padding
-    background
-  >
-    <el-tabs
-      v-model="active"
-      class="c-tabs has-bottom-padding"
-    >
-      <el-tab-pane
-        label="库存管理"
-        name="Stock"
-      />
-      <el-tab-pane
-        label="库存分配"
-        name="StockAssign"
-      />
-    </el-tabs>
-    <component
-      :is="active"
-      class="l-flex__auto"
-    />
-  </wrapper>
-</template>
-
 <script>
-import Stock from './Stock'
-import StockAssign from './Assign'
+import { mapGetters } from 'vuex'
+import Tenant from './Tenant'
+import Group from './Group'
 
 export default {
   name: 'AIStock',
   components: {
-    Stock,
-    StockAssign
+    Tenant,
+    Group
+  },
+  computed: {
+    ...mapGetters(['isSuperAdmin'])
   },
-  data () {
-    return {
-      active: 'Stock'
-    }
+  render (h) {
+    return h(this.isSuperAdmin ? 'Tenant' : 'Group')
   }
 }
 </script>