文章管理,素材管理,客户管理接口对接

This commit is contained in:
Double-_-Z 2025-07-17 18:36:04 +08:00
parent 688a7a10b3
commit 55431028c2
9 changed files with 233 additions and 117 deletions

View File

@ -23,4 +23,11 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function tree() {
return request({
url: 'aerocraftAdminApi/emArea/areaTree',
method: 'get',
})
}
export default { tree, add, edit, del }

View File

@ -2,7 +2,7 @@ import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/cnCustomer',
url: 'aerocraftAdminApi/cnCustomer',
method: 'post',
data
})
@ -10,17 +10,26 @@ export function add(data) {
export function del(id) {
return request({
url: `api/cnCustomer/${id}`,
url: `aerocraftAdminApi/cnCustomer/${id}`,
method: 'delete',
})
}
export function enable(data) {
return request({
url: 'api/cnCustomer',
url: 'aerocraftAdminApi/cnCustomer',
method: 'put',
data
})
}
export default { add, enable, del }
export function edit(data) {
return request({
url: 'aerocraftAdminApi/cnCustomer',
method: 'put',
data
})
}
export default { add, enable, del, edit }

View File

@ -1,13 +1,19 @@
<template>
<div>
<el-button v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" icon="el-icon-edit" @click.stop="crud.toEdit(data)" />
<el-popover v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="onPopoverShow" @hide="onPopoverHide">
<el-button v-if="showPop.includes('edit')&&!editText" v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" icon="el-icon-edit" @click.stop="crud.toEdit(data)" />
<el-button v-if="showPop.includes('edit')&&editText" v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" @click.stop="crud.toEdit(data)">
{{ editText }}
</el-button>
<el-popover v-if="showPop.includes('del')" v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="onPopoverShow" @hide="onPopoverHide">
<p>{{ msg }}</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="doCancel">取消</el-button>
<el-button :loading="crud.dataStatus[crud.getDataId(data)].delete === 2" type="primary" size="mini" @click="crud.doDelete(data)">确定</el-button>
</div>
<el-button slot="reference" :disabled="disabledDle" type="danger" icon="el-icon-delete" size="mini" @click.stop="toDelete" />
<el-button v-if="!delText" slot="reference" :disabled="disabledDle" type="danger" icon="el-icon-delete" size="mini" @click.stop="toDelete" />
<el-button v-else slot="reference" :disabled="disabledDle" type="danger" size="mini" @click.stop="toDelete">
{{ delText }}
</el-button>
</el-popover>
</div>
</template>
@ -35,7 +41,19 @@ export default {
msg: {
type: String,
default: '确定删除本条数据吗?'
}
},
showPop: {
type: Array,
default: () => { return ['edit','del'] }
},
delText: {
type: String,
default: ''
},
editText: {
type: String,
default: ''
},
},
data() {
return {

View File

@ -26,16 +26,16 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="模块名称:" prop="moduleName">
<el-select size="default" @change="getLabels" v-model="form.moduleName" placeholder="请选择模块" clearable>
<el-option :data-op="item.id" v-for="(item,index) in moduleList" :key="index" :label="item.moduleName" :value="item.moduleName"></el-option>
<el-form-item label="模块名称:" prop="moduleId">
<el-select size="default" @change="getLabels" v-model="form.moduleId" placeholder="请选择模块" clearable>
<el-option :data-op="item.id" v-for="(item,index) in moduleList" :key="index" :label="item.moduleName" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="标签名称:" prop="labelName">
<el-select @change="handleChangeLabel" size="default" v-model="form.labelName" placeholder="请选择标签" clearable class="ml10">
<el-option :data-op="item.id" v-for="(item,index) in labelList" :key="index" :label="item.name" :value="item.name"></el-option>
<el-form-item label="标签名称:" prop="labelId">
<el-select @change="handleChangeLabel" size="default" v-model="form.labelId" placeholder="请选择标签" clearable class="ml10">
<el-option :data-op="item.id" v-for="(item,index) in labelList" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -83,7 +83,7 @@
import WangEditor from '@/components/WangEditor/index'
import { add, edit } from '@/api/platform/article'
import { all } from '@/api/platform/module'
import { tree } from '@/api/platform/label'
import { list } from '@/api/platform/label'
import { upload } from '@/utils/upload'
import { mapGetters } from 'vuex'
import { single } from '@/api/platform/article'
@ -112,14 +112,14 @@ export default {
loading: false,
isAdd: this.$route.path==='/platform/article/add',
form:{
labelName: '',
moduleName: '',
labelId: '',
moduleId: '',
title: '',
articleType: '',
photo: '',
text: '',
top: false,// 01
cplabelId: '',
labelId: '',
fileArray:[]//
},
//
@ -127,8 +127,8 @@ export default {
//
labelList: [],
rules:{
moduleName: { required: true, message: '请选择模块', trigger: 'change' },
labelName: { required: true, message: '请输入标签名称', trigger: 'blur' },
moduleId: { required: true, message: '请选择模块', trigger: 'change' },
labelId: { required: true, message: '请输入标签名称', trigger: 'blur' },
title: { required: true, message: '请输入标题', trigger: 'blur' },
articleType: { required: true, message: '请选择文章类型', trigger: 'change' },
top: { required: true, message: '请选择是否置顶', trigger: 'blur' },
@ -166,7 +166,7 @@ export default {
const data = res.data;
const url = '/file/图片/' + data.newFileName;
this.form.photo = url;
this.form.fileArray = [this.baseApi+url];
this.form.fileArray = [{url:this.baseApi+url}];
this.coverHide = true;
}else{
this.$message.error('图片上传失败!');
@ -204,16 +204,16 @@ export default {
},
// id
getLabels(val){
this.form.labelName = '';
if(!val){this.labelList=[]; this.form.cplabelId = '';return;}
this.form.labelId = '';
if(!val){this.labelList=[]; this.form.labelId = '';return;}
const op = event.currentTarget;
tree(op.dataset.op).then(res => {
list(op.dataset.op).then(res => {
this.labelList = res;
});
},
//
handleChangeLabel(val){
this.form.cplabelId = val ? event.currentTarget.dataset.op : '';
this.form.labelId = val ? event.currentTarget.dataset.op : '';
},
// -id
getArticleDetailById(id){
@ -223,6 +223,10 @@ export default {
if(res){
res.top = res.top ? true : false;
this.form = res;
this.form.labelId = res.cplabelId;
list(res.moduleId).then(resp => {
this.labelList = resp;
});
if(res.photo) {
this.coverHide = true;
this.form.photo = res.photo;
@ -254,6 +258,8 @@ export default {
delete articleForm.fileArray;
const ft = this.isAdd? add : edit;
ft(articleForm).then(res => {
console.log(res);
this.$message.success(`文章${this.isAdd?'添加':'编辑'}成功!`);
this.cancel();
})

View File

@ -41,7 +41,7 @@
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="浏览数:">
{{ data.view || 0 }}
{{ data.viewCount || 0 }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
@ -85,7 +85,7 @@ export default {
photo: '',
text: '',
top: '',
view: '',
viewCount: '',
},
loading: false,
}

View File

@ -12,7 +12,7 @@
style="width: 200px">
<el-option v-for="(item,index) in labels" :key="index" :label="item.name" :value="item.id" />
</el-select>
<el-input v-model="query.title" clearable size="small" placeholder="请输入标题" style="width: 200px;"
<el-input v-model="query.titleKeyword" clearable size="small" placeholder="请输入标题" style="width: 200px;"
class="filter-item" @keyup.enter.native="crud.toQuery"/>
<rrOperation />
<el-button v-permission="permission.add" class="filter-item" size="mini" type="primary"
@ -24,7 +24,7 @@
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;">
<el-table-column type="index" align="center" width="55" label="序号" />
<el-table-column :show-overflow-tooltip="true" prop="title" label="标题" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="title" label="标题" align="center" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="articleType" label="文章类型" align="center"
:formatter="(row) => { let dot = dict.article_type.find(item => Number(item.value) === row.articleType); return dot?dot.label:''}" />
<el-table-column :show-overflow-tooltip="true" prop="top" label="置顶" align="center">
@ -33,14 +33,14 @@
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="moduleName" label="模块名称" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="labelName" label="标签名称" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="moduleName" label="模块名称" align="center" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="labelName" label="标签名称" align="center" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" label="链接" align="center" min-width="80">
<template slot-scope="scope">
<el-button size="mini" style="border-radius: 10px;" @click="copyLink(scope.row)">复制</el-button>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间" align="center" />
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间" align="center" :formatter="commonFormatter" />
<el-table-column label="操作" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="toShowDetail(scope.row)">查看详情</el-button>
@ -102,6 +102,10 @@ export default {
this.$message.success('复制成功');
aux.remove();
},
//
commonFormatter(row, column){
return row[column.property] || '暂无';
},
//
getModules(){
all().then(res => {

View File

@ -5,7 +5,7 @@
<div>
<!-- 搜索 -->
<el-input
v-model="query.name"
v-model="query.keyword"
clearable
size="small"
placeholder="输入素材名称"

View File

@ -5,10 +5,10 @@
<el-divider direction="vertical" />
<span>区域架构</span>
</div>
<div class="al-tree">
<div class="al-tree" v-loading="lamLoading">
<div class="boxShadow" @click="active = list[0].id; crud.title = '区域'" />
<el-tree default-expand-all :data="list" :indent="20" icon-class="#"
:props="{ children: 'children', label: 'label' }" @node-click="handleNodeClick">
:props="{ children: 'sons', label: 'name' }" @node-click="handleNodeClick">
<template slot-scope="{node,data}">
<div style="width:100%;" class="treeData"
:class="{ activeBlue: active === data.id, activeIndent: node.level === 3 || node.level === 4 }"
@ -23,7 +23,7 @@
<svg-icon v-else style="width: 1rem;height: 1rem;opacity: 0.8;"
:icon-class="node.level === 1 ? 'gongsilanse' : 'tree-table'" />
</div>
<div :title="data.label">{{ data.label }}</div>
<div :title="data.name">{{ data.name }}</div>
</div>
</template>
</el-tree>
@ -53,13 +53,13 @@
</el-form>
<div slot="footer" class="dialog-footer" style="margin-top: -30px;">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">新增</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">保存</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;">
<el-table-column :show-overflow-tooltip="true" prop="name" :label="`${crud.title}名称`" />
<el-table-column :show-overflow-tooltip="true" prop="num" :label="`${crud.title === '区域' ? '景区' : '人员'}数量`" />
<el-table-column :show-overflow-tooltip="true" prop="name" align="center" :label="`${crud.title}名称`" />
<el-table-column :show-overflow-tooltip="true" prop="scenicNum" align="center" :label="`${crud.title === '区域' ? '景区' : '人员'}数量`" />
<el-table-column v-if="checkPer(['admin', 'area:edit', 'area:del'])" label="操作" width="115" align="center"
fixed="right">
<template slot-scope="scope">
@ -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)
})
// })
}
},
}
}
</script>

View File

@ -5,7 +5,7 @@
<div>
<!-- 搜索 -->
<el-input
v-model="query.nickName"
v-model="query.phone"
clearable
size="small"
placeholder="输入手机号"
@ -26,8 +26,8 @@
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-row :gutter="10">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="姓名" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入姓名"/>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
@ -43,12 +43,20 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="用户类型" prop="userType">
<el-select v-model="form.userType" placeholder="请选择用户类型" clearable>
<el-option v-for="(item,index) in userTypes" :key="index" :label="item.label" :value="item.value" />
<el-form-item label="用户类型" prop="customerType">
<el-select v-model="form.customerType" placeholder="请选择用户类型" clearable>
<el-option v-for="(item,index) in dict.customer_type" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="用户状态" prop="status">
<el-select v-model="form.status" placeholder="请选择用户类型" clearable>
<el-option label="启用" :value="1" />
<el-option label="停用" :value="0" />
</el-select>
</el-form-item>
</el-col> -->
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="margin-top: -30px;">
@ -58,38 +66,82 @@
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;">
<el-table-column :show-overflow-tooltip="true" prop="nickName" label="姓名" />
<el-table-column :show-overflow-tooltip="true" prop="name" label="姓名" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="gender" label="性别">
<template slot-scope="scope">
<el-tag size="medium" v-if="Number(scope.row.gender) === 0"></el-tag>
<el-tag size="medium" v-else type="danger"></el-tag>
<el-tag size="medium" :type="!scope.row.gender?'warning':scope.row.gender==='女'?'danger':''">
{{ scope.row.gender || '未知' }}
</el-tag>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="phone" label="手机号" />
<el-table-column :show-overflow-tooltip="true" prop="userType" label="用户类型" />
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间" />
<el-table-column :show-overflow-tooltip="true" prop="enable" label="用户状态">
<el-table-column :show-overflow-tooltip="true" prop="phone" label="手机号" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="customerType" label="用户类型" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间" :formatter="commonFormatter" />
<el-table-column :show-overflow-tooltip="true" prop="status" label="用户状态">
<template slot-scope="scope">
<el-tag size="medium" v-if="Number(scope.row.enable) === 1" type="success">启用</el-tag>
<el-tag size="medium" v-if="Number(scope.row.status) === 1" type="success">启用</el-tag>
<el-tag size="medium" v-else type="danger">停用</el-tag>
</template>
</el-table-column>
<el-table-column v-if="checkPer(['admin', 'customer:enable', 'customer:del'])" label="操作" align="center"
fixed="right">
<template slot-scope="scope">
<el-button v-permission="permission.enable" size="mini" :type="Number(scope.row.enable) === 1 ?'info':'primary'"
@click.stop="toEnable(scope.row)">{{ Number(scope.row.enable) === 1 ? '停用' : '启用' }}</el-button>
<el-popover v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="pop = false" @hide="pop = false">
<p>确定删除本条数据吗</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="pop = false;crud.cancelDelete(scope.row)">取消</el-button>
<el-button :loading="crud.dataStatus[crud.getDataId(scope.row)].delete === 2" type="primary" size="mini" @click="crud.doDelete(scope.row)">确定</el-button>
<div style="display: flex;flex-wrap: wrap;align-items: center;justify-content: center;">
<el-button size="mini" type="success" @click="toCheck(scope.row)"
style="margin-right: 0px;">查看详情</el-button>
<el-button v-permission="permission.enable" size="mini"
:type="Number(scope.row.status) === 1 ?'info':'primary'"
@click.stop="toEnable(scope.row)" style="margin-right: 5px;">
{{ Number(scope.row.status) === 1 ? '停用' : '启用' }}
</el-button>
<udOperation
:data="scope.row"
:permission="permission"
:showPop="['edit']"
editText="编辑"
/>
</div>
<el-button slot="reference" type="danger" size="mini" @click.stop="pop = true">删除</el-button>
</el-popover>
</template>
</el-table-column>
</el-table>
<!--查看弹窗-->
<el-dialog append-to-body :before-close="()=>{checkForm={};showCheck=false;}" :visible.sync="showCheck"
title="客户详情" width="400px">
<el-form ref="form" :model="checkForm" :rules="rules" size="small" label-width="100px">
<el-row :gutter="10">
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="姓名:">{{ checkForm.name }}</el-form-item>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="性别:">{{ checkForm.gender||'未知' }}</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="手机号:">
{{ checkForm.phone }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="用户类型:">
{{ getCustomerType }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="用户状态:">
<el-tag size="medium" v-if="Number(checkForm.status) === 1" type="success">启用</el-tag>
<el-tag size="medium" v-else type="danger">停用</el-tag>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="创建时间:">
{{ checkForm.createTime }}
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="margin-top: -30px;">
<el-button type="primary" @click="()=>{checkForm={};showCheck=false;}">确定</el-button>
</div>
</el-dialog>
<!--分页组件-->
<pagination />
</div>
@ -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;