vue-gg-market/src/views/market/index.vue

784 lines
37 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<p>当前操作用户: {{ empName }}</p>
<el-tabs :tab-position="tabPosition1" style="height: 80%">
<el-tab-pane label="销售管理" v-if="role == 1 || role == 4">销售管理</el-tab-pane>
<el-tab-pane label="人员管理" v-if="role == 1 || role == 3">
<el-tabs :tab-position="tabPosition2" style="height: 80%">
<el-tab-pane label="管理员管理" v-if="post == 1 || post == 2">
<div>
<el-button @click="fetchManager">刷新</el-button>
</div>
<el-form :inline="true" :model="empRequest" class="demo-form-inline">
<el-form-item label="管理员姓名">
<el-input v-model="empRequest.empName" placeholder="管理员姓名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchManager" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
<el-button type="primary" @click="dialogFormVisible1 = true">新增管理员</el-button>
<el-table :data="empResponse.list" border stripe @selection-change="handleSelectionChange"
tooltip-effect="dark" style="width: 100%"
>
<el-table-column type="selection" width="55"/>
<el-table-column label="员工Id" prop="empId"/>
<el-table-column label="员工姓名" prop="empName"/>
<el-table-column label="员工用户名" prop="username"/>
<el-table-column label="员工手机号" prop="empTel"/>
<el-table-column label="员工身份证号" prop="empIdCard"/>
<el-table-column label="员工年龄" prop="empAge"/>
<el-table-column label="员工性别">
<template slot-scope="scope">
<span v-if="scope.row.empGender == 1">男</span>
<span v-if="scope.row.empGender == 2">女</span>
</template>
</el-table-column>
<el-table-column label="员工住址" prop="empAddress"/>
<el-table-column label="员工薪资" prop="empSal"/>
<el-table-column label="员工权限" prop="roleName"/>
<el-table-column label="员工岗位" prop="postName"/>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="warning" @click="openManager(scope.row.empId)">编辑</el-button>
<el-button type="danger" @click="delManager(scope.row.empId)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="empRequest.pageNum"
:page-sizes="[1, 5, 10, 20]"
:page-size="empRequest.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="empResponse.total"
>
</el-pagination>
<el-button type="danger" @click="batchDelManager">删除管理员</el-button>
<el-dialog title="新增管理员" :visible.sync="dialogFormVisible1">
<el-form :model="emp" :rules="rules" ref="emp">
<el-form-item label="员工姓名" :label-width="formLabelWidth" prop="empName">
<el-input v-model="emp.empName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工用户名" :label-width="formLabelWidth" prop="username">
<el-input v-model="emp.username" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工密码" :label-width="formLabelWidth" prop="password">
<el-input v-model="emp.password" autocomplete="off" :key="passwordType" :type="passwordType" tabindex="2" auto-complete="on"></el-input>
<span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/>
</span>
</el-form-item>
<el-form-item label="员工手机号" :label-width="formLabelWidth" prop="empTel">
<el-input v-model="emp.empTel" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工身份证号" :label-width="formLabelWidth" prop="empIdCard">
<el-input v-model="emp.empIdCard" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工年龄" :label-width="formLabelWidth" prop="empAge">
<el-input v-model="emp.empAge" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工性别" :label-width="formLabelWidth" prop="empGender">
<el-radio-group v-model="emp.empGender">
<el-radio :label="1">男</el-radio>
<el-radio :label="2">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="员工住址" :label-width="formLabelWidth" prop="empAddress">
<el-input v-model="emp.empAddress" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工薪资" :label-width="formLabelWidth" prop="empSal">
<el-input v-model="emp.empSal" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工角色" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.roleId" clearable placeholder="请选择">
<el-option v-for="item in roles" :key="item.roleId" :label="item.roleName" :value="item.roleId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="员工岗位" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.postId" clearable placeholder="请选择">
<el-option v-for="item in posts" :key="item.postId" :label="item.postName" :value="item.postId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible1 = false">取 消</el-button>
<el-button type="primary" @click="addManager">确 定</el-button>
</div>
</el-dialog>
<el-dialog title="编辑管理员" :visible.sync="dialogFormVisible2">
<el-form :model="emp" :rules="rules" ref="emp">
<el-form-item label="员工姓名" :label-width="formLabelWidth" prop="empName">
<el-input v-model="emp.empName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工用户名" :label-width="formLabelWidth" prop="username">
<el-input v-model="emp.username" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工密码" :label-width="formLabelWidth" prop="password">
<el-input v-model="emp.password" autocomplete="off" :key="passwordType" :type="passwordType" tabindex="2" auto-complete="on"></el-input>
<span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/>
</span>
</el-form-item>
<el-form-item label="员工手机号" :label-width="formLabelWidth" prop="empTel">
<el-input v-model="emp.empTel" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工身份证号" :label-width="formLabelWidth" prop="empIdCard">
<el-input v-model="emp.empIdCard" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工年龄" :label-width="formLabelWidth" prop="empAge">
<el-input v-model="emp.empAge" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工性别" :label-width="formLabelWidth" prop="empGender">
<el-radio-group v-model="emp.empGender">
<el-radio :label="1">男</el-radio>
<el-radio :label="2">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="员工住址" :label-width="formLabelWidth" prop="empAddress">
<el-input v-model="emp.empAddress" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工薪资" :label-width="formLabelWidth" prop="empSal">
<el-input v-model="emp.empSal" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工角色" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.roleId" clearable placeholder="请选择">
<el-option v-for="item in roles" :key="item.roleId" :label="item.roleName" :value="item.roleId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="员工岗位" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.postId" clearable placeholder="请选择">
<el-option v-for="item in posts" :key="item.postId" :label="item.postName" :value="item.postId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible2 = false">取 消</el-button>
<el-button type="primary" @click="updateManager">确 定</el-button>
</div>
</el-dialog>
</el-tab-pane>
<el-tab-pane label="员工管理" v-if="post == 1 || post == 2">
<div>
<el-button @click="fetchEmp">刷新</el-button>
</div>
<el-form :inline="true" :model="empRequest" class="demo-form-inline">
<el-form-item label="员工编号">
<el-input v-model="empRequest.empId" placeholder="员工编号" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchEmp" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
<el-button type="primary" @click="dialogFormVisible3 = true">新增员工</el-button>
<el-table :data="empResponse.list" border stripe @selection-change="handleSelectionChange" tooltip-effect="dark" style="width: 100%">
<el-table-column type="selection" width="55"/>
<el-table-column label="员工Id" prop="empId"/>
<el-table-column label="员工姓名" prop="empName"/>
<el-table-column label="员工用户名" prop="username"/>
<el-table-column label="员工手机号" prop="empTel"/>
<el-table-column label="员工身份证号" prop="empIdCard"/>
<el-table-column label="员工年龄" prop="empAge"/>
<el-table-column label="员工性别" >
<template slot-scope="scope">
<span v-if="scope.row.empGender == 1">男</span>
<span v-if="scope.row.empGender == 2">女</span>
</template>
</el-table-column>
<el-table-column label="员工住址" prop="empAddress"/>
<el-table-column label="员工薪资" prop="empSal"/>
<el-table-column label="员工权限" prop="roleName"/>
<el-table-column label="员工岗位" prop="postName"/>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="warning" @click="openEmp(scope.row.empId)">编辑</el-button>
<el-button type="danger" @click="delEmp(scope.row.empId)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="empRequest.pageNum"
:page-sizes="[1, 5, 10, 20]"
:page-size="empRequest.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="empResponse.total">
</el-pagination>
<el-button type="danger" @click="batchDelEmp">删除员工</el-button>
<el-dialog title="新增管理员" :visible.sync="dialogFormVisible3">
<el-form :model="emp" :rules="rules" ref="emp">
<el-form-item label="员工姓名" :label-width="formLabelWidth" prop="empName">
<el-input v-model="emp.empName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工用户名" :label-width="formLabelWidth" prop="username">
<el-input v-model="emp.username" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工密码" :label-width="formLabelWidth" prop="password">
<el-input v-model="emp.password" autocomplete="off" :key="passwordType" :type="passwordType" tabindex="2" auto-complete="on"></el-input>
<span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/>
</span>
</el-form-item>
<el-form-item label="员工手机号" :label-width="formLabelWidth" prop="empTel">
<el-input v-model="emp.empTel" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工身份证号" :label-width="formLabelWidth" prop="empIdCard">
<el-input v-model="emp.empIdCard" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工年龄" :label-width="formLabelWidth" prop="empAge">
<el-input v-model="emp.empAge" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工性别" :label-width="formLabelWidth" prop="empGender">
<el-radio-group v-model="emp.empGender">
<el-radio :label="1">男</el-radio>
<el-radio :label="2">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="员工住址" :label-width="formLabelWidth" prop="empAddress">
<el-input v-model="emp.empAddress" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工薪资" :label-width="formLabelWidth" prop="empSal">
<el-input v-model="emp.empSal" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工角色" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.roleId" clearable placeholder="请选择">
<el-option v-for="item in roles" :key="item.roleId" :label="item.roleName" :value="item.roleId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="员工岗位" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.postId" clearable placeholder="请选择">
<el-option v-for="item in posts" :key="item.postId" :label="item.postName" :value="item.postId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible3 = false">取 消</el-button>
<el-button type="primary" @click="addEmp">确 定</el-button>
</div>
</el-dialog>
<el-dialog title="编辑管理员" :visible.sync="dialogFormVisible4">
<el-form :model="emp" :rules="rules" ref="emp">
<el-form-item label="员工姓名" :label-width="formLabelWidth" prop="empName">
<el-input v-model="emp.empName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工用户名" :label-width="formLabelWidth" prop="username">
<el-input v-model="emp.username" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工密码" :label-width="formLabelWidth" prop="password">
<el-input v-model="emp.password" autocomplete="off" :key="passwordType" :type="passwordType" tabindex="2" auto-complete="on"></el-input>
<span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/>
</span>
</el-form-item>
<el-form-item label="员工手机号" :label-width="formLabelWidth" prop="empTel">
<el-input v-model="emp.empTel" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工身份证号" :label-width="formLabelWidth" prop="empIdCard">
<el-input v-model="emp.empIdCard" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工年龄" :label-width="formLabelWidth" prop="empAge">
<el-input v-model="emp.empAge" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工性别" :label-width="formLabelWidth" prop="empGender">
<el-radio-group v-model="emp.empGender">
<el-radio :label="1">男</el-radio>
<el-radio :label="2">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="员工住址" :label-width="formLabelWidth" prop="empAddress">
<el-input v-model="emp.empAddress" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工薪资" :label-width="formLabelWidth" prop="empSal">
<el-input v-model="emp.empSal" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="员工角色" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.roleId" clearable placeholder="请选择">
<el-option v-for="item in roles" :key="item.roleId" :label="item.roleName" :value="item.roleId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="员工岗位" :label-width="formLabelWidth" prop="empSal">
<el-select v-model="emp.postId" clearable placeholder="请选择">
<el-option v-for="item in posts" :key="item.postId" :label="item.postName" :value="item.postId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4 = false">取 消</el-button>
<el-button type="primary" @click="updateEmp">确 定</el-button>
</div>
</el-dialog>
</el-tab-pane>
<el-tab-pane label="会员管理" v-if="post == 1 || post == 3">
</el-tab-pane>
<el-tab-pane label="客户管理" v-if="post == 1 || post == 3">
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane label="仓库管理" v-if="role == 1 || role == 2">
<el-tabs :tab-position="tabPosition3" style="height: 80%">
<el-tab-pane label="商品信息管理">
<el-form :inline="true" :model="merchRequest" class="demo-form-inline">
<el-form-item label="商品编号">
<el-input v-model="merchRequest.merchId" placeholder="商品编号" clearable></el-input>
</el-form-item>
<el-form-item label="商品类型">
<el-select v-model="merchRequest.merchType" clearable>
<el-option v-for="item in merchTypes" :key="item.typeId" :label="item.typeName" :value="item.typeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品名称">
<el-input v-model="merchRequest.merchName" placeholder="商品名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchMerch" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
<el-button type="primary" @click="dialogFormVisible5 = true">新增商品</el-button>
<el-table :data="merchResponse.list" stripe border tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"/>
<el-table-column label="商品编号" prop="merchId"/>
<el-table-column label="商品名称" prop="merchName"/>
<el-table-column label="商品类型" prop="typeName"/>
<el-table-column label="价格" prop="merchPrice"/>
<el-table-column label="条形码" prop="barCode"/>
<el-table-column label="促销价" prop="salesProPrice"/>
<el-table-column label="厂商编号" prop="factoryId"/>
<el-table-column label="供货商编号" prop="provideId"/>
<el-table-column label="过期日期" prop="merchDeadTime"/>
<el-table-column label="库存数量" prop="merchNum"/>
<el-table-column label="商品状态" prop="merchSta">
<template slot-scope="scope">
<span v-if="scope.row.merchSta == 1">未上架</span>
<span v-if="scope.row.merchSta == 2">上架</span>
<span v-if="scope.row.merchSta == 3">下架</span>
</template>
</el-table-column>
<el-table-column label="操作" prop="">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-edit" @click="openMerch(scope.row.merchId)" circle></el-button>
<el-button type="danger" icon="el-icon-delete" @click="delMerch(scope.row.merchId)" circle></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"
:current-page="merchRequest.pageNum"
:page-sizes="[1, 5, 10, 20]"
:page-size="merchRequest.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="merchResponse.total">
</el-pagination>
<el-button type="danger" @click="batchDelMerch">删除</el-button>
<el-dialog title="新增商品" :visible.sync="dialogFormVisible5">
<el-form :model="merch">
<el-form-item label="商品名称" :label-width="formLabelWidth">
<el-input v-model="merch.merchName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品类型" :label-width="formLabelWidth">
<el-select v-model="merch.merchType">
<el-option label="区域一" value="1"></el-option>
<el-option label="区域二" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品价格" :label-width="formLabelWidth">
<el-input v-model="merch.merchPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="条形码" :label-width="formLabelWidth">
<el-input v-model="merch.barCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="促销价" :label-width="formLabelWidth">
<el-input v-model="merch.salesProPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="厂商编号" :label-width="formLabelWidth">
<el-input v-model="merch.factoryId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="供应商编号" :label-width="formLabelWidth">
<el-input v-model="merch.provideId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="过期日期" :label-width="formLabelWidth">
<el-date-picker v-model="merch.merchDeadTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
<el-form-item label="库存" :label-width="formLabelWidth">
<el-input v-model="merch.merchNum" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品状态" :label-width="formLabelWidth">
<el-radio-group v-model="merch.merchSta">
<el-radio :label="1">未上架</el-radio>
<el-radio :label="2">上架</el-radio>
<el-radio :label="3">下架</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible5 = false">取 消</el-button>
<el-button type="primary" @click="addMerch">确 定</el-button>
</div>
</el-dialog>
<el-dialog title="编辑商品" :visible.sync="dialogFormVisible6">
<el-form :model="merch">
<el-form-item label="商品名称" :label-width="formLabelWidth">
<el-input v-model="merch.merchName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品类型" :label-width="formLabelWidth">
</el-form-item>
<el-form-item label="商品价格" :label-width="formLabelWidth">
<el-input v-model="merch.merchPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="条形码" :label-width="formLabelWidth">
<el-input v-model="merch.barCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="促销价" :label-width="formLabelWidth">
<el-input v-model="merch.salesProPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="厂商编号" :label-width="formLabelWidth">
<el-input v-model="merch.factoryId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="供应商编号" :label-width="formLabelWidth">
<el-input v-model="merch.provideId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="过期日期" :label-width="formLabelWidth">
<el-date-picker v-model="merch.merchDeadTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
<el-form-item label="库存" :label-width="formLabelWidth">
<el-input v-model="merch.merchNum" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品状态" :label-width="formLabelWidth">
<el-radio-group v-model="merch.merchSta">
<el-radio :label="1">未上架</el-radio>
<el-radio :label="2">上架</el-radio>
<el-radio :label="3"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible6 = false"> </el-button>
<el-button type="primary" @click="updateMerch"> </el-button>
</div>
</el-dialog>
</el-tab-pane>
<el-tab-pane label="进货">进货</el-tab-pane>
<el-tab-pane label="退货">退货</el-tab-pane>
<el-tab-pane label="报损">报损</el-tab-pane>
<el-tab-pane label="报溢">报溢</el-tab-pane>
<el-tab-pane label="查询库存">查询库存</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane label="综合统计" v-if="role == 1 || role == 2 || role == 3">综合统计</el-tab-pane>
<el-tab-pane label="报表统计" v-if="role == 1 || role == 2 || role == 3"></el-tab-pane>
</el-tabs>
</div>
</template>
<script>
//这里可以导入其他文件比如组件工具js第三方插件jsjson文件图片文件等等,
//例如import { 组件名称 } from '组件路径',
import { add, batchDel, del, fetchManager, findById, update, fetchEmp } from '@/api/manager';
import { findRoles, findPosts } from '@/api/role';
import { fetchMerch, addMerch, findByMerchId, updateMerch, delMerch, batchDelMerch } from '@/api/merch';
import item from '@/layout/components/Sidebar/Item.vue'
export default {
//import引入的组件需要注入到对象中才能使用
data() {
//这里存放数据
return {
tabPosition1: 'left',
tabPosition2: 'left',
tabPosition3: 'left',
role: localStorage.getItem('roleId'),
post: localStorage.getItem('postId'),
empName: localStorage.getItem('empName'),
emp: {
empId: null,
empName: '',
username: '',
password: '',
empTel: '',
empIdCard: '',
empAge: null,
empGender: null,
empAddress: '',
empSal: null,
roleId: null,
roleName: '',
postId: null,
postName: ''
},
empRequest: {
empId: null,
empName: '',
pageNum: 1,
pageSize: 5
},
empResponse: {
total: 0,
list: []
},
dialogFormVisible1: false,
dialogFormVisible2: false,
dialogFormVisible3: false,
dialogFormVisible4: false,
formLabelWidth: '120px',
passwordType: 'password',
redirect: undefined,
multipleSelection: [],
rules: {
empName: [
{ required: true, message: '请输入员工姓名', trigger: 'blur' },
{ pattern: /^[\u4e00-\u9fa5a-zA-Z0-9]+$/, message: '姓名只能包含中文、英文和数字', trigger: 'blur' }
],
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
empTel: [
{ required: true, message: '请输入联系方式', trigger: 'blur' },
{ pattern: /^(\d{11})$/, message: '手机号格式错误', trigger: 'blur' }
],
empIdCard: [
{ required: true, message: '请输入身份证号', trigger: 'blur' },
{ min: 18, max: 18, message: '身份证号长度应为18位', trigger: 'blur' },
{ pattern: /^[1-9][0-9]{16}[\dXx]$/, message: '身份证号格式不正确', trigger: 'blur' }],
empAge: [
{ required: true, message: '请输入年龄', trigger: 'blur' },
{ pattern: /^(\d+|\d+\.\d+)$/, message: '只能输入数字', trigger: 'blur' }
],
empGender: [{ required: true, message: '请输入性别', trigger: 'blur' }],
empAddress: [{ required: true, message: '请输入住址', trigger: 'blur' }],
empSal: [
{ required: true, message: '请输入薪资', trigger: 'blur' },
{ pattern: /^(\d+|\d+\.\d+)$/, message: '只能输入数字', trigger: 'blur' }
]
},
roles: [],
posts: [],
merch: {
merchId: null,
merchName: '',
merchType: null,
merchPrice: null,
barCode: '',
salesProPrice: null,
factoryId: '',
provideId: '',
merchDeadTime: null,
merchNum: null,
merchSta: null
},
merchRequest: {
merchId: null,
merchName: '',
merchType: null,
pageNum: 1,
pageSize: 5
},
merchResponse:{
total: 0,
list: []
},
merchTypes: [],
dialogFormVisible5: false,
dialogFormVisible6: false,
}
},
methods: {
fetchManager() {
fetchManager(this.empRequest).then(res => {
this.empResponse.list = []
this.empResponse = res.data
})
},
handleSizeChange(val) {
this.empRequest.pageSize = val
this.fetchManager()
},
handleCurrentChange(val) {
this.empRequest.pageNum = val
this.fetchManager()
},
showPwd() {
if (this.passwordType === 'password') {
this.passwordType = ''
} else {
this.passwordType = 'password'
}
this.$nextTick(() => {
this.$refs.password.focus()
})
},
handleSelectionChange(val) {
this.multipleSelection = val
},
addManager() {
add(this.emp).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible1 = false
this.emp = {}
this.fetchManager()
})
},
openManager(empId) {
this.dialogFormVisible2 = true
findById(empId).then(res => {
this.emp = res.data
})
},
updateManager() {
update(this.emp).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible2 = false
this.emp = {}
this.fetchManager()
})
},
delManager(empId) {
del(empId).then(res => {
this.$message.success(res.msg)
this.fetchManager()
})
},
batchDelManager() {
batchDel(this.multipleSelection.map(item => item.empId)).then(res => {
this.$message.success(res.msg)
this.fetchManager()
})
},
fetchEmp(){
fetchEmp(this.empRequest).then(res =>{
this.empResponse.list = []
this.empResponse = res.data
})
},
addEmp() {
add(this.emp).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible3 = false
this.emp = {}
this.fetchManager()
})
},
openEmp(empId){
this.dialogFormVisible4 = true
findById(empId).then(res =>{
this.emp = res.data
})
},
updateEmp() {
update(this.emp).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible4 = false
this.emp = {}
this.fetchManager()
})
},
delEmp(empId){
del(empId).then(res =>{
this.$message.success(res.msg)
this.fetchManager()
})
},
batchDelEmp() {
batchDel(this.multipleSelection.map(item => item.empId)).then(res => {
this.$message.success(res.msg)
this.fetchManager()
})
},
findRoles() {
findRoles().then(res => {
this.roles = res.data
})
},
findPosts() {
findPosts().then(res => {
this.posts = res.data
})
},
fetchMerch(){
fetchMerch(this.merchRequest).then(res=>{
this.merchResponse = res.data
})
},
handleSizeChange1(val) {
this.merchRequest.pageSize = val
this.fetchManager()
},
handleCurrentChange1(val) {
this.merchRequest.pageNum = val
this.fetchManager()
},
addMerch() {
addMerch(this.merch).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible5 = false
this.merch = {}
this.fetchMerch()
})
},
openMerch(merchId){
this.dialogFormVisible6 = true
findByMerchId(merchId).then(res =>{
this.merch = res.data
})
},
updateMerch() {
updateMerch(this.merch).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible6 = false
this.merch = {}
this.fetchMerch()
})
},
delMerch(merchId){
delMerch(merchId).then(res => {
this.$message.success(res.msg)
this.fetchMerch()
})
},
batchDelMerch(){
batchDelMerch(this.multipleSelection.map(item => item.merchId)).then(res => {
this.$message.success(res.msg)
this.fetchMerch()
})
}
},
//声明周期 - 创建完成可以访问当前this实例,
created() {
this.fetchManager()
this.findRoles()
this.findPosts()
this.fetchEmp()
this.fetchMerch()
}
}
</script>
<style scoped>
</style>