|
|
@@ -4,11 +4,17 @@
|
|
|
<ElButton :icon="Plus" @click="onEdit()">添加</ElButton>
|
|
|
</template>
|
|
|
<ElTableColumn prop="id" label="#" width="80" />
|
|
|
- <ElTableColumn prop="username" label="经销商名" min-width="120" />
|
|
|
+ <ElTableColumn prop="username" label="用户名" min-width="120" />
|
|
|
<ElTableColumn prop="name" label="昵称" min-width="120" />
|
|
|
+ <ElTableColumn prop="roles" label="角色" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <ElTag v-if="row.roles.includes('user')" type="success">发送用户</ElTag>
|
|
|
+ <ElTag v-else-if="row.roles.includes('api')">运营</ElTag>
|
|
|
+ <ElTag v-else-if="row.roles.includes('superApi')" type="warning">超级运营</ElTag>
|
|
|
+ </template>
|
|
|
+ </ElTableColumn>
|
|
|
<ElTableColumn prop="phone" label="手机" min-width="120" />
|
|
|
<ElTableColumn prop="createdAt" label="注册时间" :formatter="timeFormatter" width="150" />
|
|
|
- <ElTableColumn prop="invitor" label="上级" />
|
|
|
<ElTableColumn prop="balance" label="余额" />
|
|
|
<ElTableColumn prop="rate" label="费率" />
|
|
|
<ElTableColumn prop="send" label="已发送" />
|
|
|
@@ -33,18 +39,30 @@
|
|
|
<ElFormItem prop="password" label="密码">
|
|
|
<ElInput v-model="model.password" placeholder="请输入密码" />
|
|
|
</ElFormItem>
|
|
|
+ <ElFormItem v-if="isSuperApi" prop="roles" label="角色">
|
|
|
+ <EnumSelect v-model="model.roles" :enum="myUserRole" multiple :multiple-limit="1" />
|
|
|
+ </ElFormItem>
|
|
|
</EditDialog>
|
|
|
<ElDialog v-model="showDetailDialog" title="详情" width="500px">
|
|
|
<PagingTable url="/balance/records/" :where="{ userId: (selectedRow || {}).id }" :order="{createdAt:'DESC'}"
|
|
|
ref="balanceTable" height="50vh">
|
|
|
<ElTableColumn prop="id" label="#" width="80" />
|
|
|
<ElTableColumn prop="amount" label="金额" min-width="120" />
|
|
|
+ <ElTableColumn prop="type" label="类型" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <ElTag v-if="row.type === 'recharge'" type="success">充值</ElTag>
|
|
|
+ <ElTag v-else-if="row.type === 'consumption'" type="warning">消费</ElTag>
|
|
|
+ <ElTag v-else-if="row.type === 'refund'" type="warning">退款</ElTag>
|
|
|
+ <ElTag v-else-if="row.type === 'other'">其他</ElTag>
|
|
|
+ <ElTag v-else>未知</ElTag>
|
|
|
+ </template>
|
|
|
+ </ElTableColumn>
|
|
|
<ElTableColumn prop="createdAt" label="时间" :formatter="timeFormatter" min-width="120" />
|
|
|
</PagingTable>
|
|
|
</ElDialog>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
-import { ref } from 'vue'
|
|
|
+import { inject, ref } from 'vue'
|
|
|
import PagingTable from '@/components/PagingTable.vue'
|
|
|
import { useTimeFormatter } from '@/utils/formatter'
|
|
|
import { Plus } from '@vicons/tabler'
|
|
|
@@ -57,7 +75,8 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import { useClipboard } from '@vueuse/core'
|
|
|
import { useUserStore } from '@/stores/user'
|
|
|
|
|
|
-const where = ref({ roles: 'user' })
|
|
|
+const isSuperApi = inject('isSuperApi')
|
|
|
+const where = ref({})
|
|
|
const timeFormatter = useTimeFormatter()
|
|
|
const table = ref(null)
|
|
|
const model = ref({})
|
|
|
@@ -70,10 +89,15 @@ const rules = {
|
|
|
roles: [{ required: true, message: '请选择角色', trigger: 'blur' }]
|
|
|
}
|
|
|
const { showEditDialog, onEdit } = setupEditDialog(model)
|
|
|
+const myUserRole = {
|
|
|
+ user: '发送用户',
|
|
|
+ api: '运营'
|
|
|
+}
|
|
|
|
|
|
async function submit() {
|
|
|
- // 经销商
|
|
|
- model.value.roles = ['user']
|
|
|
+ if (!model.value.roles){
|
|
|
+ model.value.roles = ['user']
|
|
|
+ }
|
|
|
// 上级
|
|
|
model.value.invitor = user.id
|
|
|
await http.put('/admin/users', model.value)
|