瀏覽代碼

添加自定义数据设置

ith5 5 月之前
父節點
當前提交
27931cf35e
共有 2 個文件被更改,包括 110 次插入2 次删除
  1. 94 0
      src/views/system/user/custom-data.vue
  2. 16 2
      src/views/system/user/index.vue

+ 94 - 0
src/views/system/user/custom-data.vue

@@ -0,0 +1,94 @@
+<template>
+  <a-modal :unmount-on-close="true" v-model:visible="visible" width="600px" @close="handleClose" @ok="handleOk">
+    <template #title>数据权限设置</template>
+    <a-form :form="formData" auto-label-width>
+      <a-form-item label="数据权限">
+        <a-radio-group type="button" v-model="formData.data_permission">
+          <a-radio :value="0">全部组员及自然量</a-radio>
+          <a-radio :value="1">自定义</a-radio>
+        </a-radio-group>
+      </a-form-item>
+      <a-form-item label="广告数据权限" v-show="formData.data_permission === 1">
+        <a-radio-group type="button" v-model="formData.ad_permission">
+          <a-radio :value="1">仅自己</a-radio>
+          <a-radio :value="2">自己以及组员</a-radio>
+        </a-radio-group>
+      </a-form-item>
+      <a-form-item label="自然量游戏权限设置" v-show="formData.data_permission === 1">
+        <game-permission ref="gamePermissionRef" :comType="comType" />
+      </a-form-item>
+    </a-form>
+  </a-modal>
+</template>
+<script setup>
+import { ref, computed } from 'vue'
+import api from '@/api/center/game'
+import userApi from '@/api/system/user'
+import commonApi from '@/views/v1/api/common'
+import GamePermission from '@/components/game-permission/index.vue'
+import { Message } from '@arco-design/web-vue'
+const emit = defineEmits(['success'])
+
+const visible = ref(false)
+const adPermission = ref(0)
+const gamePermissionRef = ref()
+const deptId = ref(0)
+const id = ref(0)
+const comType = ref('natural')
+const checkedGameList = ref('')
+const formData = ref({})
+
+const handleClose = () => {
+  visible.value = false
+}
+
+const handleOk = async () => {
+  let { selectType, checkedKeys } = await gamePermissionRef.value.getGamePermissionData()
+
+  let type = 'normal_game_list'
+  let data = {
+    [type]: selectType !== '0' ? selectType : checkedKeys.join(','),
+  }
+  // 更新用户数据
+  const result = await userApi.setUserPermission({
+    id: formData.value.id,
+    data_permission: formData.value.data_permission,
+    ad_permission: formData.value.ad_permission,
+    ...data,
+  })
+
+  if (result.code === 200) {
+    Message.success('操作成功')
+    emit('success')
+  }
+}
+
+// 打开弹框
+const open = async (row, type = 'game') => {
+  let rowData = JSON.parse(JSON.stringify(row))
+
+  formData.value = rowData
+  deptId.value = rowData.dept_id
+  checkedGameList.value = rowData.normal_game_list
+  comType.value = type
+
+  visible.value = true
+
+  await initPage()
+}
+
+// 根据部门ID获取游戏列表数据
+const getGameListByDeptId = async () => {
+  const resp = await commonApi.getGameListByDeptIdApi({
+    dept_id: deptId.value,
+  })
+  let gameList = JSON.parse(JSON.stringify(resp.data))
+  gamePermissionRef.value.init(gameList, checkedGameList.value)
+}
+
+const initPage = async () => {
+  await getGameListByDeptId()
+}
+
+defineExpose({ open })
+</script>

+ 16 - 2
src/views/system/user/index.vue

@@ -76,11 +76,12 @@
               <a-doption value="setHomePage" v-auth="['/core/user/setHomePage']"
                 >设置首页</a-doption
               > -->
-              <a-doption value="setPermission" v-auth="['/core/user/setPermission']">设置广告数据权限</a-doption>
+              <a-doption value="setCustomData">设置数据权限</a-doption>
+              <!-- <a-doption value="setPermission" v-auth="['/core/user/setPermission']">设置广告数据权限</a-doption>
 
               <a-doption value="setNaturalPermission" v-auth="['/core/user/setPermission']"
                 >设置自然量数据权限</a-doption
-              >
+              > -->
               <a-doption value="resetPassword" v-auth="['/core/user/initUserPassword']">重置密码</a-doption>
             </template>
           </a-dropdown>
@@ -98,6 +99,8 @@
         <sa-select v-model="homePage" placeholder="请选择用户首页" dict="dashboard"></sa-select>
       </a-form-item>
     </a-modal> -->
+    <!-- 设置数据权限 -->
+    <custom-data ref="customDataRef" @success="refresh" />
     <!-- 设置游戏数据权限 -->
     <Permission ref="permissionRef" @success="refresh" />
     <!-- 设置自然量数据权限 -->
@@ -113,10 +116,12 @@ import { Message, Modal } from '@arco-design/web-vue'
 import EditForm from './edit.vue'
 import Permission from './permission.vue'
 import GamePermission from './game-permission.vue'
+import customData from './custom-data.vue'
 
 const depts = ref([{ label: '所有部门', value: 0 }])
 const crudRef = ref()
 const editRef = ref()
+const customDataRef = ref()
 const permissionRef = ref()
 const gamePermissionRef = ref()
 
@@ -172,6 +177,11 @@ const setPermission = (record) => {
   permissionRef.value.open(record)
 }
 
+// 设置数据
+const setCustomData = (record) => {
+  customDataRef.value.open(record)
+}
+
 // 设置游戏数据权限
 const setGamePermission = (record) => {
   gamePermissionRef.value.open(record, 'game')
@@ -222,6 +232,10 @@ const selectOperation = (value, record) => {
     return
   }
 
+  if (value === 'setCustomData') {
+    setCustomData(record)
+  }
+
   if (value === 'setPermission') {
     setPermission(record)
     return