文件

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>