Compare commits
4 Commits
072390dc13
...
95689baff9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95689baff9 | ||
|
|
d39650eca5 | ||
|
|
4f44f50db5 | ||
|
|
27a2052241 |
@@ -100,7 +100,7 @@ export default {
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</ai-table>
|
</ai-table>
|
||||||
<ai-dialog v-model="dialog" title="认证材料" width="500px" @close="userId=''"
|
<ai-dialog v-model="dialog" title="认证材料" width="50vw" @close="userId=''"
|
||||||
@open="getTreeData" customFooter>
|
@open="getTreeData" customFooter>
|
||||||
<el-button class="mar-b8" type="primary" @click="createNode(treeData)">新增根节点</el-button>
|
<el-button class="mar-b8" type="primary" @click="createNode(treeData)">新增根节点</el-button>
|
||||||
<el-tree :data="treeData" :props="{label:'name'}" default-expand-all>
|
<el-tree :data="treeData" :props="{label:'name'}" default-expand-all>
|
||||||
@@ -108,7 +108,7 @@ export default {
|
|||||||
<div class="flex" style="width: 100%">
|
<div class="flex" style="width: 100%">
|
||||||
<span class="fill" v-text="node.label"/>
|
<span class="fill" v-text="node.label"/>
|
||||||
<el-button size="mini" type="text" @click="createNode(data)">增加子节点</el-button>
|
<el-button size="mini" type="text" @click="createNode(data)">增加子节点</el-button>
|
||||||
<el-button size="mini" type="text" @click="handleDelete(data)">删除</el-button>
|
<el-button size="mini" type="text" @click="handleDelete(data)" v-if="$isEmpty(data.children)" class="del">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
@@ -120,5 +120,9 @@ export default {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.AppAccountConfigManage {
|
.AppAccountConfigManage {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
|
.el-button .del {
|
||||||
|
color: #f46;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -22,12 +22,13 @@
|
|||||||
<div>{{ row.name }}</div>
|
<div>{{ row.name }}</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column slot="options" align="center" label="操作" fixed="right" width="180px">
|
<el-table-column slot="options" align="center" label="操作" fixed="right" width="220px">
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<div class="table-options">
|
<div class="table-options">
|
||||||
<el-button type="text" @click="changeEnable(row)">{{ row.status == 1 ? '禁用' : '启用' }}</el-button>
|
<el-button type="text" @click="changeEnable(row)">{{ row.status == 1 ? '禁用' : '启用' }}</el-button>
|
||||||
<el-button type="text" @click="appAllot(row)">编辑</el-button>
|
<el-button type="text" @click="appAllot(row)">编辑</el-button>
|
||||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
<el-button type="text" @click="resetPassword(row.id)">重置密码</el-button>
|
||||||
|
<el-button type="text" @click="handleDelete(row)">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -40,12 +41,12 @@
|
|||||||
<el-form-item required label="行政区划" prop="areaId">
|
<el-form-item required label="行政区划" prop="areaId">
|
||||||
<ai-area-get v-model.trim="dialogForm.areaId" placeholder="请选择" :instance="instance"/>
|
<ai-area-get v-model.trim="dialogForm.areaId" placeholder="请选择" :instance="instance"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item required label="账户" prop="username">
|
<el-form-item required label="账户" prop="userName">
|
||||||
<el-input v-model.trim="dialogForm.username" placeholder="请输入..." clearable :maxLength="15"/>
|
<el-input v-model.trim="dialogForm.userName" placeholder="请输入..." clearable :maxLength="15"/>
|
||||||
</el-form-item>
|
|
||||||
<el-form-item required label="账号密码" prop="password" v-if="!isEdit" :rules="[{ required: true, message: '请输入密码' }]">
|
|
||||||
<el-input v-model.trim="dialogForm.password" placeholder="请输入密码" clearable :minlength="6"/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- <el-form-item required label="账号密码" prop="password" v-if="!isEdit" :rules="[{ required: true, message: '请输入密码' }]">-->
|
||||||
|
<!-- <el-input v-model.trim="dialogForm.password" placeholder="请输入密码" clearable :minlength="6"/>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
<el-form-item required label="角色" prop="roleId">
|
<el-form-item required label="角色" prop="roleId">
|
||||||
<el-select placeholder="请选择角色" :value="dialogForm.roleId" filterable v-model="dialogForm.roleId" clearable>
|
<el-select placeholder="请选择角色" :value="dialogForm.roleId" filterable v-model="dialogForm.roleId" clearable>
|
||||||
<el-option v-for="(op, i) in accountRoles" :key="i" :label="op.name" :value="op.id"/>
|
<el-option v-for="(op, i) in accountRoles" :key="i" :label="op.name" :value="op.id"/>
|
||||||
@@ -91,19 +92,18 @@ export default {
|
|||||||
colConfigs() {
|
colConfigs() {
|
||||||
return [
|
return [
|
||||||
// {type: 'selection', align: 'center'},
|
// {type: 'selection', align: 'center'},
|
||||||
{label: "账号", slot: "username"},
|
{label: "账号", prop: "userName"},
|
||||||
{label: "姓名", slot: "name"},
|
{label: "姓名", slot: "name"},
|
||||||
{label: "联系方式", prop: "phone", align: 'center'},
|
{label: "联系方式", prop: "phone", align: 'center'},
|
||||||
{label: "角色", prop: "roleName", align: 'center'},
|
{label: "角色", prop: "roleName", align: 'center'},
|
||||||
{label: "状态", prop: "status", align: 'center', dict: "enable"},
|
{label: "状态", prop: "status", align: 'center', dict: "enable"},
|
||||||
{label: "认证状态", prop: "authStatus", align: 'center', dict: "authStatus"},
|
{label: "认证状态", prop: "authStatus", align: 'center', dict: "authStatus"},
|
||||||
{label: "配置状态", prop: "configStatus", align: 'center', dict: "configStatus"},
|
{label: "配置状态", prop: "configStatus", align: 'center', dict: "configStatus"},
|
||||||
{slot: "options"}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
rules() {
|
rules() {
|
||||||
return {
|
return {
|
||||||
username: [{required: true, message: "请输入账号"}],
|
userName: [{required: true, message: "请输入账号"}],
|
||||||
name: [{required: true, message: "请输入姓名"}],
|
name: [{required: true, message: "请输入姓名"}],
|
||||||
password: [{required: true, message: '请输入密码'}],
|
password: [{required: true, message: '请输入密码'}],
|
||||||
areaId: [{required: true, message: "请选择行政区划"}],
|
areaId: [{required: true, message: "请选择行政区划"}],
|
||||||
@@ -193,8 +193,13 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(ids) {
|
handleDelete(row) {
|
||||||
this.$confirm("是否要删除该账号?").then(() => {
|
const {id: ids, authStatus, configStatus} = row
|
||||||
|
let text = "是否要删除该账号?"
|
||||||
|
if (authStatus == 1) {
|
||||||
|
text = configStatus == 1 ? "该账户已经认证,是否确认删除该账户?" : "该账户已经认证及配置,是否确认删除该账户?"
|
||||||
|
}
|
||||||
|
this.$confirm(text).then(() => {
|
||||||
this.instance.post("/admin/user/del", null, {
|
this.instance.post("/admin/user/del", null, {
|
||||||
params: {ids}
|
params: {ids}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
@@ -215,6 +220,16 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
resetPassword(id) {
|
||||||
|
this.$confirm("是否要重置密码?").then(() => {
|
||||||
|
this.instance.post("/api/user/resetPwd", null, {params: {id}}).then(res => {
|
||||||
|
if (res?.code == 0) {
|
||||||
|
this.$message.success("重置成功!")
|
||||||
|
this.getTableData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
<script>
|
<script>
|
||||||
|
|
||||||
import AiSelect from "dui/packages/basic/AiSelect.vue";
|
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{label: "序号", type: "index"},
|
{label: "序号", type: "index"},
|
||||||
{label: "账号", prop: "userName"},
|
{label: "账号", prop: "userName"},
|
||||||
@@ -13,7 +10,6 @@ const columns = [
|
|||||||
]
|
]
|
||||||
export default {
|
export default {
|
||||||
name: "authList",
|
name: "authList",
|
||||||
components: {AiSelect},
|
|
||||||
props: {
|
props: {
|
||||||
instance: Function,
|
instance: Function,
|
||||||
dict: Object,
|
dict: Object,
|
||||||
@@ -29,6 +25,15 @@ export default {
|
|||||||
form: {}
|
form: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
search: {
|
||||||
|
deep: true,
|
||||||
|
handler() {
|
||||||
|
this.page.pageNum = 1
|
||||||
|
this.getTableData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getTableData() {
|
getTableData() {
|
||||||
this.instance.post("/api/user/auth/page", null, {
|
this.instance.post("/api/user/auth/page", null, {
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ import $reg from "./regular"
|
|||||||
*/
|
*/
|
||||||
const addChild = (parent, pending, config) => {
|
const addChild = (parent, pending, config) => {
|
||||||
let conf = {
|
let conf = {
|
||||||
key: 'id',
|
key: 'id',
|
||||||
parent: 'parentId',
|
parent: 'parentId',
|
||||||
children: 'children',
|
children: 'children',
|
||||||
...config
|
...config
|
||||||
},
|
},
|
||||||
doBeforeCount = pending.length
|
doBeforeCount = pending.length
|
||||||
for (let i = pending.length - 1; i >= 0; i--) {
|
for (let i = pending.length - 1; i >= 0; i--) {
|
||||||
let e = pending[i]
|
let e = pending[i]
|
||||||
if (e[conf.parent] == parent[conf.key]) {
|
if (e[conf.parent] == parent[conf.key]) {
|
||||||
@@ -58,7 +58,7 @@ const $decimalCalc = (...arr) => {
|
|||||||
return ('' + e).length - index
|
return ('' + e).length - index
|
||||||
})
|
})
|
||||||
let maxDecimal = Math.max(...decimalLengthes),
|
let maxDecimal = Math.max(...decimalLengthes),
|
||||||
precision = Math.pow(10, maxDecimal)
|
precision = Math.pow(10, maxDecimal)
|
||||||
// 计算
|
// 计算
|
||||||
let intArr = arr.map(e => (Number(e) || 0) * precision)
|
let intArr = arr.map(e => (Number(e) || 0) * precision)
|
||||||
// 返回计算值
|
// 返回计算值
|
||||||
@@ -86,10 +86,10 @@ const $colorUtils = {
|
|||||||
if (color.length == 4) {
|
if (color.length == 4) {
|
||||||
// 检测诸如#FFF简写格式
|
// 检测诸如#FFF简写格式
|
||||||
color =
|
color =
|
||||||
'#' +
|
'#' +
|
||||||
color.charAt(1).repeat(2) +
|
color.charAt(1).repeat(2) +
|
||||||
color.charAt(2).repeat(2) +
|
color.charAt(2).repeat(2) +
|
||||||
color.charAt(3).repeat(2)
|
color.charAt(3).repeat(2)
|
||||||
}
|
}
|
||||||
hex = parseInt(color.slice(1), 16)
|
hex = parseInt(color.slice(1), 16)
|
||||||
}
|
}
|
||||||
@@ -170,8 +170,8 @@ export default {
|
|||||||
},
|
},
|
||||||
$dateFormat: (time, format) => {
|
$dateFormat: (time, format) => {
|
||||||
return $moment(time)
|
return $moment(time)
|
||||||
.format(format || 'YYYY-MM-DD')
|
.format(format || 'YYYY-MM-DD')
|
||||||
.replace('Invalid Date', '')
|
.replace('Invalid Date', '')
|
||||||
},
|
},
|
||||||
$copy,
|
$copy,
|
||||||
$download: (url, name) => {
|
$download: (url, name) => {
|
||||||
@@ -190,7 +190,7 @@ export default {
|
|||||||
$arr2tree: (list, config = {}) => {
|
$arr2tree: (list, config = {}) => {
|
||||||
let result = []
|
let result = []
|
||||||
const {key = 'id', parent = 'parentId', children = 'children'} = config, itemMap = {},
|
const {key = 'id', parent = 'parentId', children = 'children'} = config, itemMap = {},
|
||||||
ids = list?.map(e => `#${e[key]}#`)?.toString()
|
ids = list?.map(e => `#${e[key]}#`)?.toString()
|
||||||
for (const e of list) {
|
for (const e of list) {
|
||||||
const id = e[key], pid = e[parent]
|
const id = e[key], pid = e[parent]
|
||||||
itemMap[id] = {...e, [children]: [itemMap[id]?.[children]].flat().filter(Boolean)}
|
itemMap[id] = {...e, [children]: [itemMap[id]?.[children]].flat().filter(Boolean)}
|
||||||
@@ -230,5 +230,11 @@ export default {
|
|||||||
}
|
}
|
||||||
return max
|
return max
|
||||||
} else return 0
|
} else return 0
|
||||||
|
},
|
||||||
|
$isEmpty(obj) {
|
||||||
|
if (obj === null || obj === undefined) return true;
|
||||||
|
if (typeof obj === 'string' && obj.trim() === '') return true;
|
||||||
|
if (Array.isArray(obj) && obj.length === 0) return true;
|
||||||
|
return typeof obj === 'object' && Object.keys(obj).length === 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user