员工修改

master
Wangxubin1999 3 years ago
parent 21f66198a6
commit 79a7898819

@ -105,6 +105,14 @@ export function leave(params) {
data: params
});
}
export function deactivate(params) {
return service({
url: "/api" + "/demay/ssm/staff/stop",
method: "post",
data: params
});
}
//员工复职
export function reinstated(params) {
return service({

@ -440,7 +440,7 @@ export default {
}else{
if (this.debtMoney * 1 != 0) {
this.$alert("转入金额和转出加支付金额不相等(本店不允许加价转疗程存在欠)", "提示", {
this.$alert("转入金额和转出加支付金额不相等(本店不允许加价转疗程存在欠)", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",

@ -124,7 +124,8 @@
{{ scope.row.spendMoney }}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus oninput ="value=value.replace(/[^\d]/g,'')" class="form-input-width-xs" @change="endEditCard(scope.row)" @blur="endEditCard(scope.row)" v-else v-model.lazy="scope.row.spendMoney" precision="2"></el-input>
<el-input v-focus οninput="value=value.replace(/^0[0-9]+/,val=>val[1]).replace(/^(\.)+/,'').replace(/[^\d.]/g,'').replace(/\.+/,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
class="form-input-width-xs" @change="endEditCard(scope.row)" @blur="endEditCard(scope.row)" v-else v-model.lazy="scope.row.spendMoney" precision="2"></el-input>
</template>
</el-table-column>
<!-- <el-table-column align="center" prop="discoutMoney" label="抵扣支付" width="90">

@ -789,39 +789,16 @@ export default {
}, 0);
return num.toFixed(2);
},
appearPrice() {
/*
      现付金额 = 项目金额transactionPrice - 卡付抵扣金额collectionAmounts
      需要转换下number格式,不然是字符串拼接
      */
let num = this.list.reduce((pre, item) => {
console.log(
"🚀 ~ file: service.vue ~ line 804 ~ num ~ item.courseAccountId",
item
);
item.transactionPrice = item.transactionPrice
? (item.transactionPrice * 1).toFixed(2) * 1
: 0; // ,
if (item.isCardPay !== 0) {
return pre;
}
if (item.courseAccountId == null) {
item.collectionAmounts = (item.collectionAmounts * 1).toFixed(2) * 1;
} else {
item.collectionAmounts = (item.transactionPrice * 1).toFixed(2) * 1;
}
if (item.collectionAmounts) {
return pre + (item.transactionPrice - item.collectionAmounts);
} // ,
else if (!item.collectionAmounts && item.transactionPrice) {
return item.transactionPrice + pre; //
} else {
return pre + 0;
}
}, 0);
return num.toFixed(2);
}, //
    appearPrice() {
      try{
        if(this.list){
          let collectionAmounts =this.list[this.projectIndex].collectionAmounts
          return (this.list[this.projectIndex].amount-(collectionAmounts?collectionAmounts*1:0)).toFixed(2)*1;  
        }
      }catch(err){
        return 0
      }
    }, //
total() {
/*
      项目金额transactionPrice   卡付抵扣金额collectionAmounts  卡付金额collectionRechargeAmount

@ -42,6 +42,7 @@ export default {
methods: {
//
show(form) {
console.log("🚀 ~ file: memberSuit.vue ~ line 45 ~ show ~ form", form)
this.dataList = [];
this.form = { ...form };
if (form.promotionMemberLists) {

@ -43,6 +43,7 @@ export default {
methods: {
//
show(form) {
console.log("🚀 ~ file: suit.vue ~ line 46 ~ show ~ form", form)
this.dataList = [];
this.form = { ...form };
if (form.promotionStores) {

@ -48,14 +48,17 @@
<div class="block" style="margin-top:15px;">
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" :page-sizes="[10,20,30,40,50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="pageInfo.total"></el-pagination>
</div>
<editother ref="editother" @editData="leave"></editother>
</div>
</template>
<script>
import { staffPage, staffStart } from "../../../../api/storeManage";
import { staffPage, staffStart,selectOne, } from "../../../../api/storeManage";
import Bus from "../Bus.js";
import editother from "./editother.vue";
export default {
props: ["notList"],
components: {editother },
data() {
return {
dialogFormVisible: false,
@ -80,34 +83,23 @@ export default {
},
methods: {
start(row) {
this.$confirm("是否启用该员工, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
})
.then(() => {
staffStart({ id: row.id, mobilePhone: row.mobilePhone }).then(
(res) => {
console.log(res);
if (res.code == "000000") {
this.$message.success({ message: res.message });
this.leave();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
);
var id = { id: row.id };
selectOne(id)
.then((res) => {
if ((res.code = "000000")) {
this.$refs.editother.show(row, "修改","启用");
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch(() => {
this.$message.info({ message: "已取消操作!" });
.catch((err) => {
//console.log(err);
});
},
//
@ -133,7 +125,7 @@ export default {
},
leave() {
var arr1 = {
state: 2,
state: 3,
pageNum: this.pageNum,
pageSize: this.pageSize,
};

@ -48,7 +48,7 @@
</el-table-column>
<el-table-column align="center" fixed="right" label="复职" width="76" v-role='4002006'>
<template slot-scope="scope">
<el-button @click="backWork(scope.row)" size="mini" type="primary">复职</el-button>
<el-button @click="giveto(scope.row)" size="mini" type="primary">复职</el-button>
</template>
</el-table-column>
</el-table>
@ -56,6 +56,7 @@
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" :page-sizes="[10,20,30,40,50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="pageInfo.total"></el-pagination>
</div>
<edit ref="edit"></edit>
<editother ref="editother" @editData="leave"></editother>
</div>
</template>
<script>
@ -67,9 +68,10 @@ import {
} from "../../../../api/storeManage";
import Bus from "../Bus.js";
import edit from "./edit";
import editother from "./editother.vue";
export default {
props: ["notList"],
components: { edit },
components: { edit,editother },
data() {
return {
dialogFormVisible: false, //
@ -87,6 +89,26 @@ export default {
};
},
methods: {
giveto(row){
var id = { id: row.id };
selectOne(id)
.then((res) => {
if ((res.code = "000000")) {
this.$refs.editother.show(row, "修改","复职");
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch((err) => {
//console.log(err);
});
},
//
examine(row) {
var id = { id: row.id };
@ -112,49 +134,7 @@ export default {
confirm() {
this.pageInfo.tableList[this.examineIndex] = this.examineForm;
},
backWork(row) {
this.id.id = row.id;
this.$confirm("将该员工复职, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
})
.then(() => {
reinstated({
id: row.id,
mobilePhone: row.mobilePhone,
brandNumber: row.brandNumber,
})
.then((res) => {
//console.log(res);
if (res.code == "000000") {
this.$message.success({
message: "已经将该员工复职!",
});
if (this.pageInfo.total % this.pageSize == 1) {
this.pageNum = this.pageNum - 1;
}
this.leave();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch((err) => {
console.error(err);
});
})
.catch(() => {
this.$message.info({ message: "已取消操作!" });
});
},
works() {
this.$router.push("/staffWorks");
},

@ -0,0 +1,349 @@
<template>
<el-dialog :close-on-click-modal="false" :title="title+'员工'" :visible.sync="dialogFormVisible" width="70vw" v-dialogDrag :before-close="handleClose">
<el-form :model="form" :rules="title=='明细'?rule:rules" inline ref="form" class="max-height-60 " label-width="100px">
<el-form-item label="员工编码" prop="staffNum">
<div class="form-width">
<el-input :disabled="title=='修改'" placeholder="请输入员工编码" oninput="this.value=this.value.replace(/[^\w_]/g,'');" v-model="form.staffNum" autocomplete="on"></el-input>
</div>
</el-form-item>
<el-form-item label="水牌号" prop="brandNumber">
<div class="form-width">
<el-input type="number" :disabled="title=='查看'" placeholder="请输入水牌号" ref="brandNumber" v-model="form.brandNumber" autocomplete="on"></el-input>
</div>
</el-form-item>
<el-form-item label="员工名称" prop="staffName">
<div class="form-width">
<el-input :disabled="title=='修改'" placeholder="请输入员工名称" oninput="value=value.replace(/[\d]/g,'')" v-model="form.staffName" autocomplete="on"></el-input>
</div>
</el-form-item>
<el-form-item label="手机号码" prop="mobilePhone">
<div class="form-width">
<el-input :disabled="title=='修改'" placeholder="请输入手机号" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" v-model="form.mobilePhone" autocomplete="on" :maxlength="11" show-word-limit></el-input>
</div>
</el-form-item>
<el-form-item label="工种">
<el-select :disabled="title=='修改'" v-model="form.wordTypeName" placeholder="请选择" @change="jobchange">
<el-option v-for="item in jobList" :key="item.id" :label="item.wordTypeName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="部门">
<el-select :disabled="title=='修改'" v-model="form.deptName" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="员工类型" prop="type">
<el-radio-group :disabled="title=='修改'" v-model="form.type">
<el-radio :label="0">高管</el-radio>
<el-radio :label="1">普工</el-radio>
<el-radio :label="2">收银</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label=" ">
<div>
<el-button size="mini" type="primary" plain @click="handleClose"> </el-button>
<el-button size="mini" v-if="title!='查看'" type="primary" @click="confirm()"> </el-button>
</div>
</el-form-item>
</el-form>
</el-dialog>
</template>
<script>
import {
addStaff,
rolePage,
editStaff,
pageBasePost,
pageBaseWorkType,
reinstated,
staffStart
} from "@/api/storeManage.js";
export default {
data() {
return {
dialogFormVisible: false, //
title: "", //
form: {}, //
sessionStorageData: JSON.parse(
sessionStorage.getItem("sessionStorageData")
), //
options: [
//
{ value: 0, label: "美发部" },
{ value: 1, label: "美容部" },
{ value: 2, label: "其他部" },
],
jobList: [],
rule: {},
rules: {
staffName: {
required: true,
message: "请输入员工名字",
trigger: ["blur", "change"],
},
brandNumber: {
required: true,
message: "请输入员工水牌号",
trigger: ["blur", "change"],
},
sex: {
required: true,
message: "请选择员工性别",
trigger: ["blur", "change"],
},
// mobilePhone: [
// {
// required: true,
// message: "",
// trigger: ["blur", "change"],
// },
// {
// max: 11,
// message: "11",
// trigger: ["blur", "change"],
// },
// ],
// identityCard: [
// {
// required: true,
// message: "",
// trigger: ["blur", "change"],
// },
// {
// max: 18,
// message: "18",
// trigger: ["blur", "change"],
// },
// ],
type: {
required: true,
message: "请选择员工类型!",
trigger: ["blur", "change"],
},
roleName: {
required: true,
message: "请分配角色!",
trigger: ["blur", "change"],
},
joinedDate: {
required: true,
message: "请选择入职日期",
trigger: ["blur", "change"],
},
},
grade: [
{
label: "店长",
value: 1,
},
{
label: "美发经理",
value: 2,
},
{
label: "美容经理",
value: 3,
},
{
label: "总监",
value: 4,
},
{
label: "美发师",
value: 5,
children: [
{
label: "1级美发师",
value: 51,
},
{
label: "2级美发师",
value: 52,
},
{
label: "3级美发师",
value: 53,
},
{
label: "4级美发师",
value: 54,
},
{
label: "5级美发师",
value: 55,
},
{
label: "6级美发师",
value: 56,
},
{
label: "7级美发师",
value: 57,
},
{
label: "8级美发师",
value: 58,
},
{
label: "9级美发师",
value: 59,
},
],
},
{
label: "员工",
value: 6,
},
],
job: [
{
label: "美发师",
value: 1,
},
{
label: "技师",
value: 2,
},
{
label: "助理",
value: 3,
},
{
label: "收银员",
value: 4,
},
{
label: "美容师",
value: 5,
},
],
headOffice: sessionStorage.getItem("headOffice") * 1, //
rowForm: {}, //
roleLists: [], //
gradeList: [], //
type:''
};
},
methods: {
//
handleClose() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//
show(row, title,type) {
this.type=type
if (row == "添加") {
this.title = row;
this.form = { type: 1, deptName: 0 };
} else {
this.title = "修改";
this.form = { ...row };
this.rowForm = { ...row };
if (this.form.row == 1) {
this.form.row = true;
} else {
this.form.row = false;
}
if (this.form.userState == 1) {
this.form.userState = true;
} else {
this.form.userState = false;
}
}
if (title) {
this.title = title;
}
this.dialogFormVisible = true;
this.getData();
},
//
async getData() {
var arr = {
state: 1,
pageNum: 1,
pageSize: 1000,
industry: JSON.parse(sessionStorage.getItem("storeInfo")).industry,
};
rolePage(arr).then((res) => {
this.roleLists = res.pageInfo.list;
});
pageBasePost({ pageSize: 999 }).then((res) => {
res.pageInfo.list.forEach((item) => {
item.value = item.postNum;
item.label = item.postName;
});
this.gradeList = res.pageInfo.list;
});
pageBaseWorkType({}).then((res) => {
res.data.forEach((item) => {
item.value = item.wordTypeNum;
item.label = item.wordTypeName;
});
this.jobList = res.data;
});
},
//
confirm() {
if(this.type=="复职"){
reinstated({
id: this.rowForm.id,
mobilePhone: this.rowForm.mobilePhone,
brandNumber:this.form.brandNumber,
})
.then((res) => {
//console.log(res);
if (res.code == "000000") {
this.$message.success({
message: "已经将该员工复职!",
});
this.$emit("editData");
this.dialogFormVisible = false;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch((err) => {
console.error(err);
});
}else{
staffStart({ id: this.rowForm.id, mobilePhone: this.rowForm.mobilePhone,brandNumber:this.form.brandNumber }).then(
(res) => {
console.log(res);
if (res.code == "000000") {
this.$message.success({
message: "已经将该员工账户重新启用!",
});
this.$emit("editData");
this.dialogFormVisible = false;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
);
}
},
},
};
</script>
<style>
</style>

@ -67,6 +67,11 @@
<el-button size="mini" type="primary" @click="leave(scope.row,leavesdialogFormVisible=true)" plain v-role='4002005'>离职</el-button>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="停用" width="76" v-role='4002006'>
<template slot-scope="scope">
<el-button @click="deactivate(scope.row)" size="mini" type="primary">停用</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top:15px;">
<!-- 分页组件 -->
@ -241,17 +246,20 @@
</div>
</el-dialog>
<edit ref="edit" @editData="getPage"></edit>
</div>
</template>
<script>
import edit from "./edit.vue";
import monthlytask from "../components/monthlyTask/monthlyTask";
import { staffPage, leave, monthJob } from "@/api/storeManage.js";
import { staffPage, leave, monthJob,deactivate, } from "@/api/storeManage.js";
import Bus from "../Bus.js";
export default {
components: {
monthlytask,
edit,
},
staffName: "",
data() {
@ -317,6 +325,45 @@ export default {
...this.wageList,
};
},
deactivate(row){
this.$confirm("将该员工账号停用, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
})
.then(() => {
deactivate({
id: row.id,
mobilePhone: row.mobilePhone,
brandNumber: row.brandNumber,
})
.then((res) => {
//console.log(res);
if (res.code == "000000") {
this.$message.success({
message: "已经将该员工账号停用!",
});
this.getPage();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch((err) => {
console.error(err);
});
})
.catch(() => {
this.$message.info({ message: "已取消操作!" });
});
},
editWage() {
if (this.editwageForm.row == true) {
this.editwageForm.row = 1;

Loading…
Cancel
Save