263 行
11 KiB
HTML
可执行文件
263 行
11 KiB
HTML
可执行文件
<!--[1.8.50]-->
|
|
<div id="managerApp">
|
|
<!--搜索及操作内容-->
|
|
<el-form label-width="90px" size="small" :inline="true">
|
|
<el-form-item label="关键词搜索">
|
|
<el-input placeholder="登录账号/名称"
|
|
v-model="searchForm.keyword"
|
|
type="text"
|
|
clearable
|
|
style="width: 200px"
|
|
@keydown.enter.exact.native.prevent="handleCurrentChange(1)"
|
|
class="input-with-select">
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="按门店搜索">
|
|
<select-store :store-id.sync="searchForm.store_id"
|
|
:show-status="true"></select-store>
|
|
</el-form-item>
|
|
<el-form-item label="">
|
|
<el-button type="primary" @click="handleCurrentChange(1)">搜索</el-button>
|
|
<el-button type="primary" plain
|
|
v-if="operate.addManager"
|
|
@click="operateManager(null)">添加店长
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<!--列表-->
|
|
<div style="max-width: calc(100vw - 208px);margin-top: 10px;">
|
|
<el-table border :header-cell-style="{background:'#F5F7FA',color:'#606266'}"
|
|
:data="dataList"
|
|
style="width: 100%"
|
|
size="small" max-height="670">
|
|
<el-table-column align="center" type="index" label="序号" width="50"></el-table-column>
|
|
<el-table-column prop="name" align="center" label="姓名" min-width="160px"
|
|
show-overflow-tooltip></el-table-column>
|
|
<el-table-column prop="mobile" align="center" label="手机号/登录账号" min-width="120px"
|
|
show-overflow-tooltip></el-table-column>
|
|
<el-table-column prop="add_time" align="center" label="添加时间" min-width="160px"
|
|
show-overflow-tooltip></el-table-column>
|
|
<el-table-column prop="store_name" align="center" label="所属门店" width="100px"></el-table-column>
|
|
<el-table-column align="center" fixed="right" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-button @click.native.prevent="operateManager(scope.row)"
|
|
v-if="operate.editManager"
|
|
type="text" size="small">编辑
|
|
</el-button>
|
|
<el-button @click.native.prevent="delManager(scope.row.id)"
|
|
v-if="operate.delManager"
|
|
style="color: #999"
|
|
type="text"
|
|
size="small">删除
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-pagination
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
:current-page="searchForm.page"
|
|
:page-sizes="[10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100]"
|
|
:page-size="10"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="currentLen">
|
|
</el-pagination>
|
|
</div>
|
|
|
|
<el-dialog :title="dataForm.id>0?'编辑店长':'添加店长'" :append-to-body="true" width="500px"
|
|
:visible.sync="showOperateManager" :close-on-click-modal="false" :before-close="closeDialog">
|
|
<el-form label-width="130px" size="small" :model="dataForm" ref="dataForm" :rules="rules">
|
|
<el-form-item label="所属门店" prop="store_id">
|
|
<select-store :store-id.sync="dataForm.store_id"
|
|
:show-status="true"></select-store>
|
|
</el-form-item>
|
|
<el-form-item label="店长姓名" prop="name">
|
|
<el-input v-model="dataForm.name" style="width: 200px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="登录账号/手机号" prop="mobile">
|
|
<el-input v-model="dataForm.mobile" max-length="11" style="width: 200px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="登录密码" prop="password">
|
|
<el-input v-model="dataForm.password" style="width: 200px"
|
|
show-password
|
|
:placeholder="dataForm.id>0?'不需要修改密码请留空':''"></el-input>
|
|
<div style="color: #aaa;font-size: 13px;">密码长度不得少于6个字符串,不得超过16个字符串</div>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div style="text-align: center">
|
|
<el-button type="primary" :loading="submitLoading" @click="saveOperateData">保存设置</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
</div>
|
|
<script src="/Public/Retail/common/js/select-store.js?v=1.0.2"></script>
|
|
<script>
|
|
var managerApp = new Vue({
|
|
el: '#managerApp',
|
|
data() {
|
|
let _t = this;
|
|
return {
|
|
searchForm: {
|
|
page: 1,
|
|
limit: 10,
|
|
keyword: '',
|
|
store_id: '',
|
|
},//搜索表单
|
|
submitLoading: false,
|
|
dataForm: {
|
|
id: '',
|
|
store_id: '',
|
|
name: '',
|
|
mobile: '',
|
|
password: '',
|
|
},//新增、编辑表单
|
|
rules: {
|
|
store_id: [{required: true, message: '请选择门店', trigger: 'blur'}],
|
|
name: [{required: true, message: '请输入店长名称', trigger: 'change'}],
|
|
mobile: [{required: true, message: '请输入手机号', trigger: 'change'}, {
|
|
validator: function (rule, value, callback) {
|
|
if (!(/^[1][3456789][0-9]{9}$/).test(value)) {
|
|
callback(new Error("请输入正确的手机号"));
|
|
} else {
|
|
callback();
|
|
}
|
|
}, trigger: 'change'
|
|
}],
|
|
password: [{required: true, message: '请输入登录密码', trigger: 'change'}, {
|
|
validator: function (rule, value, callback) {
|
|
if ((value || !(_t.dataForm.id > 0)) && !(/^[a-zA-Z0-9.+*-/<>?!@#$%^&*():''"";]{6,16}$/).test(value)) {
|
|
callback(new Error("密码必须是6-16位的字母、数字、符号"));
|
|
} else {
|
|
callback();
|
|
}
|
|
}
|
|
}],
|
|
},
|
|
dataList: [],
|
|
currentLen: 0,
|
|
operate: {},
|
|
showOperateManager: false,
|
|
requestUrl: {
|
|
addManager: '/index.php/Retail/Manager/addManager',
|
|
editManager: '/index.php/Retail/Manager/editManager',
|
|
delManager: '/index.php/Retail/Manager/delManager',
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
//新增、编辑店长
|
|
operateManager(data) {
|
|
this.dataForm = {
|
|
id: '',
|
|
store_id: '',
|
|
name: '',
|
|
mobile: '',
|
|
password: '',
|
|
}
|
|
this.showOperateManager = true;
|
|
this.$nextTick(() => {
|
|
if (data) {
|
|
this.dataForm = {
|
|
id: data.id,
|
|
store_id: data.storeid,
|
|
name: data.name,
|
|
mobile: data.mobile,
|
|
password: '',
|
|
}
|
|
}
|
|
})
|
|
},
|
|
closeDialog() {
|
|
this.$refs.dataForm.resetFields();
|
|
this.$nextTick(() => {
|
|
this.showOperateManager = false;
|
|
})
|
|
},
|
|
//保存店长信息
|
|
saveOperateData() {
|
|
this.$refs.dataForm.validate((valid) => {
|
|
if (!valid) {
|
|
return this.$message.warning('请检查表单信息');
|
|
}
|
|
this.$confirm('您确认提交该店长的信息吗?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'info'
|
|
}).then(() => {
|
|
this.submitLoading = true;
|
|
this.sendRequest((this.dataForm.id ? this.requestUrl.editManager : this.requestUrl.addManager), {
|
|
data: this.dataForm,
|
|
success: (res) => {
|
|
this.submitLoading = false;
|
|
if (res.status == 1) {
|
|
this.$message.success(res.message);
|
|
this.closeDialog();
|
|
this.getData();
|
|
} else {
|
|
this.$message.error(res.message);
|
|
}
|
|
},
|
|
})
|
|
}).catch(() => {
|
|
});
|
|
|
|
})
|
|
},
|
|
//删除店长
|
|
delManager(id) {
|
|
this.$confirm("您确认要删除该店长吗", "温馨提示", {
|
|
confirmButtonText: '删除',
|
|
cancelButtonText: '取消',
|
|
type: 'info'
|
|
}).then(() => {
|
|
this.sendRequest(this.requestUrl.delManager, {
|
|
data: {id: id},
|
|
success: (res) => {
|
|
if (res.status == 1) {
|
|
this.$message.success(res.message);
|
|
this.getData();
|
|
} else {
|
|
this.$message.error(res.message);
|
|
}
|
|
},
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
},
|
|
handleSizeChange(val) {
|
|
this.searchForm.limit = val;//切换每页数量
|
|
this.searchForm.page = 1;
|
|
this.getData();
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.searchForm.page = val;
|
|
this.getData();//切换页数
|
|
},
|
|
getData() {
|
|
this.sendRequest('Retail/Manager/managerList', {
|
|
data: this.searchForm,
|
|
success: (res) => {
|
|
if (res.status == 1) {
|
|
this.dataList = res.list;
|
|
this.currentLen = res.count * 1;
|
|
}
|
|
}
|
|
})
|
|
},
|
|
},
|
|
created() {
|
|
this.getData();
|
|
this.checkOperateAuth(this.requestUrl, (data) => {
|
|
this.operate = data;
|
|
})
|
|
},
|
|
watch: {
|
|
'dataForm.id': {
|
|
deep: true,
|
|
handler(n) {
|
|
this.rules['password'][0].required = n > 0 ? false : true;
|
|
}
|
|
}
|
|
}
|
|
})
|
|
</script>
|