@@ -98,52 +98,36 @@ export default {
{ required: true, message: `名称不能为空`, trigger: 'blur' },
],
},
- list: [],
- // {
- // id: 1,
- // label: '爱尚云',
- // children: [{
- // id: 2,
- // label: '北京区域',
- // children: []
- // },
- // {
- // id: 3,
- // label: '上海区域',
- // children: []
- // },
- // {
- // id: 4,
- // label: '深圳区域',
- // children: []
- // },
- // {
- // id: 5,
- // label: '广州区域',
- // children: [{
- // id: 6,
- // label: '白云山景区',
- // children: []
- // }, {
- // id: 7,
- // label: '白水寨景区',
- // children: []
- // }, {
- // id: 8,
- // label: '越秀公园景区',
- // children: []
- // }]
- // }]
- // }],
+ list: [{
+ id: 0,
+ name: '爱尚云',
+ sons: []
+ }],
+ lamLoading: false,
parentId: '',
parentName: '',
parentArr: []
}
},
async created() {
- const id = await this.getTree()
+ // const id = await this.getTree()
+ this.getTrees();
},
methods: {
+ // 查询结构树
+ async getTrees(){
+ try {
+ this.lamLoading = true;
+ await crudArea.tree().then(async(res) => {
+ res.id = 0;
+ this.list[0] = res;
+ await this.getTree();
+ })
+ this.lamLoading = false;
+ } catch (error) {
+ this.lamLoading = false;
+ }
+ },
// 节点点击
handleNodeClick(data) {
console.log(data)
@@ -165,6 +149,9 @@ export default {
[CRUD.HOOK.beforeRefresh](crud, form) {
crud.query.current = crud.page.page;
},
+ [CRUD.HOOK.afterSubmit](crud, form) {
+ this.getTrees();
+ },
getTree() {
return new Promise(resolve => {
// tree().then(res => {
@@ -177,7 +164,7 @@ export default {
return {
last: true,
...item,
- children: setLast(item.children, item.id, item.label, level + 1),
+ sons: setLast(item.sons || [], item.id, item.name, level + 1),
parentId,
parentName,
level
@@ -186,7 +173,7 @@ export default {
return {
last: false,
...item,
- children: setLast(item.children, item.id, item.label, level + 1),
+ sons: setLast(item.sons || [], item.id, item.name, level + 1),
parentId,
parentName,
level
@@ -202,8 +189,8 @@ export default {
const setSelectList = (data) => {
data.forEach((item) => {
arr = [...arr, item]
- if (item.children) {
- setSelectList(item.children)
+ if (item.sons) {
+ setSelectList(item.sons)
}
})
}
@@ -213,7 +200,7 @@ export default {
resolve(this.active)
})
// })
- }
+ },
}
}
diff --git a/src/views/system/customer/index.vue b/src/views/system/customer/index.vue
index d325e3c..9533b21 100644
--- a/src/views/system/customer/index.vue
+++ b/src/views/system/customer/index.vue
@@ -5,7 +5,7 @@
-
-
+
+
@@ -43,12 +43,20 @@
-
-
-
+
+
+
+
@@ -99,13 +151,14 @@ import crudCustomer from '@/api/system/customer'
import { isvalidPhone } from '@/utils/validate'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
+import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
-const defaultForm = { phone: null, nickName: null, gender: null, userType: null }
+const defaultForm = { phone: null, name: null, gender: null, customerType: null, status: '' }
export default {
name: 'Customer',
- components: { rrOperation, pagination },
+ components: { udOperation, rrOperation, pagination },
// 数据字典
- dicts: ['common_gender'],
+ dicts: ['common_gender','customer_type'],
cruds() {
return CRUD({ title: '客户', url: '/aerocraftAdminApi/cnCustomer', crudMethod: { ...crudCustomer }, optShow: { add: true, reset: true }})
},
@@ -125,36 +178,68 @@ export default {
permission: {
add: ['admin', 'customer:add'],
enable: ['admin', 'customer:enable'],
+ edit: ['admin', 'customer:edit'],
del: ['admin', 'customer:del']
},
pop: false,
- userTypes: [
- { label: '普通用户', value: '普通用户' },
- { label: '公司对接人', value: '公司对接人' }
- ],
rules: {
gender: [
{ required: true, message: '请选择性别', trigger: 'change' },
],
- userType: [
+ customerType: [
{ required: true, message: '请选择用户类型', trigger: 'change' },
],
- nickName: [
+ name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
{ min: 2, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' }
],
phone: [
{ required: true, trigger: 'blur', validator: validPhone }
],
+ status: [
+ { required: true, message: '请选择用户状态', trigger: 'change' }
+ ]
+ },
+ checkForm: {},
+ showCheck: false,
+ }
+ },
+ computed: {
+ // 查看客户类型
+ getCustomerType() {
+ if(this.checkForm.gender){
+ const customerType = this.dict.customer_type.find(item=>item.value===this.checkForm.customerType);
+ return customerType ? customerType.label : '暂无';
}
}
+
},
created() {
},
methods: {
// 启/停用客户账号
toEnable(row){
- row.enable = Number(row.enable) === 1 ? 0 : 1;
+ try {
+ row.status = Number(row.status) === 1 ? 0 : 1;
+ crudCustomer.enable({status: row.status, id: row.id}).then(res => {
+ this.$message.success(`该客户${row.status?'启用':'停用'}成功!`);
+ })
+ } catch (error) {
+ this.$message.error('操作失败!');
+ } finally {
+ }
+ },
+ // 查看详情
+ toCheck(row){
+ this.checkForm = row;
+ this.showCheck = true;
+ },
+ // 通用格式化
+ commonFormatter(row, column) {
+ return row[column.property] || '暂无';
+ },
+ [CRUD.HOOK.beforeToEdit](crud, form) {
+ form.status = Number(form.status) || '';
},
[CRUD.HOOK.beforeRefresh](crud, form) {
crud.query.current = crud.page.page;