日工工时页面修改

master
wanglei 7 months ago
parent f3dd411937
commit da9ff84197

@ -18,69 +18,44 @@
<div :class="$store.state.user.tenantId?'content-all':'content'"> <div :class="$store.state.user.tenantId?'content-all':'content'">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="租户id" prop="tenantId"> <el-form-item label="部门" prop="deptId">
<el-input <treeselect v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 220px"/>
v-model="queryParams.tenantId"
placeholder="请输入租户id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="员工部门id" prop="deptId"> <el-form-item label="员工" prop="empId">
<el-input <el-select v-model="queryParams.empId" filterable clearable placeholder="请选择">
v-model="queryParams.deptId" <el-option
placeholder="请输入员工部门id" v-for="item in employeeList"
clearable :key="item.id"
@keyup.enter.native="handleQuery" :label="item.name"
/> :value="item.id">
</el-form-item> </el-option>
<el-form-item label="员工部门名称" prop="deptName"> </el-select>
<el-input
v-model="queryParams.deptName"
placeholder="请输入员工部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="员工id" prop="employeeId">
<el-input
v-model="queryParams.employeeId"
placeholder="请输入员工id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="员工姓名" prop="empName">
<el-input
v-model="queryParams.empName"
placeholder="请输入员工姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="日工日期" prop="date"> <el-form-item label="日工日期" prop="date">
<el-date-picker clearable <el-date-picker
v-model="queryParams.date" v-model="queryParams.date"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择日工日期"> placeholder="请选择日工日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="日工年月" prop="dwYearMonth"> <el-form-item label="月份" prop="dwYearMonth">
<el-input <el-date-picker
v-model="queryParams.dwYearMonth" v-model="queryParams.dwYearMonth"
placeholder="请输入日工年月" type="month"
clearable value-format="yyyy-MM"
@keyup.enter.native="handleQuery" placeholder="请选择月份">
/> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="note"> <el-form-item label="业务员" prop="salesman">
<el-input <el-select v-model="queryParams.salesman" filterable placeholder="请选择">
v-model="queryParams.note" <el-option
placeholder="请输入备注" v-for="item in employeeList"
clearable :key="item.id"
@keyup.enter.native="handleQuery" :label="item.name"
/> :value="item.id">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -136,11 +111,7 @@
<el-table v-loading="loading" :data="dayWorkHoursList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="dayWorkHoursList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" v-if="true"/> <el-table-column label="部门名称" align="center" prop="deptName" />
<el-table-column label="租户id" align="center" prop="tenantId" />
<el-table-column label="员工部门id" align="center" prop="deptId" />
<el-table-column label="员工部门名称" align="center" prop="deptName" />
<el-table-column label="员工id" align="center" prop="employeeId" />
<el-table-column label="员工姓名" align="center" prop="empName" /> <el-table-column label="员工姓名" align="center" prop="empName" />
<el-table-column label="日工日期" align="center" prop="date" width="180"> <el-table-column label="日工日期" align="center" prop="date" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
@ -180,52 +151,333 @@
</div> </div>
<!-- 添加或修改日工工时对话框 --> <!-- 添加或修改日工工时对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog class="my-dialog" :title="title" :visible.sync="open" width="980px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="租户id" prop="tenantId"> <el-row>
<el-input v-model="form.tenantId" placeholder="请输入租户id" /> <el-col :span="24">
</el-form-item> <el-form-item label="日工日期" prop="date">
<el-form-item label="员工部门id" prop="deptId"> <el-date-picker clearable
<el-input v-model="form.deptId" placeholder="请输入员工部门id" /> v-model="form.date"
</el-form-item> type="date"
<el-form-item label="员工部门名称" prop="deptName"> value-format="yyyy-MM-dd"
<el-input v-model="form.deptName" placeholder="请输入员工部门名称" /> placeholder="请选择日工日期">
</el-form-item> </el-date-picker>
<el-form-item label="员工id" prop="employeeId"> </el-form-item>
<el-input v-model="form.employeeId" placeholder="请输入员工id" /> </el-col>
</el-form-item> </el-row>
<el-form-item label="员工姓名" prop="empName"> <el-row v-for="(elctment, index) in form.empInfos" :key="elctment.key">
<el-input v-model="form.empName" placeholder="请输入员工姓名" /> <el-col :span="8">
</el-form-item> <el-form-item
<el-form-item label="日工日期" prop="date"> label="员工姓名"
<el-date-picker clearable :prop="'empInfos.' + index + '.empName'"
v-model="form.date" :rules="{required: true, message: '员工姓名不能为空', trigger: 'blur'}">
type="datetime" <el-input placeholder="请选择员工姓名" readonly v-model="elctment.empName" @focus="changeEmp(elctment, index)">
value-format="yyyy-MM-dd HH:mm:ss" <i slot="suffix" class="el-input__icon el-icon-search" style="color:#0f00d1; font-weight: bolder"></i>
placeholder="请选择日工日期"> </el-input>
</el-date-picker> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="日工年月" prop="dwYearMonth"> <el-col :span="8">
<el-input v-model="form.dwYearMonth" placeholder="请输入日工年月" /> <el-form-item
</el-form-item> label="部门名称"
<el-form-item label="备注" prop="note"> :prop="'empInfos.' + index + '.deptId'"
<el-input v-model="form.note" placeholder="请输入备注" /> :rules="{required: true, message: '员工姓名不能为空', trigger: 'blur'}">
</el-form-item> <treeselect v-model="elctment.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 200px" @select="changeDeptChange"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="my-delete">
<el-button size="mini" @click.prevent="removeElet(elctment)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<el-button size="mini" @click="addElet"></el-button>
</el-form-item>
</el-col>
</el-row>
<el-row v-for="(domain, index) in form.dwHoursContrasts" :key="domain.key">
<el-col :span="1.5">
<el-form-item
label="开始时间"
:prop="'dwHoursContrasts.' + index + '.beginTime'"
:rules="{required: true, message: '开始时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.beginTime" value-format="HH:mm" format="HH:mm" placeholder="开始时间" style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="结束时间"
:prop="'dwHoursContrasts.' + index + '.fnishTime'"
:rules="{required: true, message: '结束时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.fnishTime" value-format="HH:mm" format="HH:mm" placeholder="结束时间" style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="业务员"
:prop="'dwHoursContrasts.' + index + '.salesman'">
<el-autocomplete
popper-class="my-autocomplete"
v-model="domain.salesman"
:fetch-suggestions="querySaleSearch"
placeholder="请选择业务员"
@select="((business) => {handleSaleQuerySelect(business, index)})">
<i
class="el-icon-edit el-input__icon"
slot="suffix"
@click="handleSaleQueryIconClick(index)">
</i>
<template slot-scope="{ item }">
<div class="name">{{ item.name }}</div>
</template>
</el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="是否帮工" :prop="'dwHoursContrasts.' + index + '.isHelper'"
:rules="{required: true, message: '请选择是否帮工', trigger: 'change'}">
<el-radio-group v-model="domain.isHelper" @change="getHelpers">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item label="部门名称" :prop="'dwHoursContrasts.' + index + '.deptId'"
:rules="{required: true, message: '部门不能为空', trigger: 'change'}"
v-if="domain.isHelper === 1">
<treeselect v-model="domain.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 200px" @select="((dept) => {currDepartChange(dept, index)})"/>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item class="my-delete">
<el-button size="mini" @click.prevent="removeDomain(domain)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<el-button size="mini" @click="addDomain"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- <el-dialog class="my-dialog" :title="title" :visible.sync="opena" width="980px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="title !== '日工工时详情'">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="empName">
<el-select v-model="form.empName" filterable clearable placeholder="请选择" @change="getEmployee">
<el-option
v-for="item in form.employeeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门名称" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 200px" @select="changeDeptChange"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="日工日期" prop="date">
<el-date-picker clearable
v-model="form.date"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择日工日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row v-for="(domain, index) in form.dwHoursContrasts" :key="domain.key">
<el-col :span="1.5">
<el-form-item
label="开始时间"
:prop="'dwHoursContrasts.' + index + '.beginTime'"
:rules="{required: true, message: '开始时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.beginTime" value-format="HH:mm" format="HH:mm" placeholder="开始时间" style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="结束时间"
:prop="'dwHoursContrasts.' + index + '.fnishTime'"
:rules="{required: true, message: '结束时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.fnishTime" value-format="HH:mm" format="HH:mm" placeholder="结束时间" style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="业务员"
:prop="'dwHoursContrasts.' + index + '.salesman'">
<el-autocomplete
popper-class="my-autocomplete"
v-model="domain.salesman"
:fetch-suggestions="querySaleSearch"
placeholder="请选择业务员"
@select="((business) => {handleSaleQuerySelect(business, index)})">
<i
class="el-icon-edit el-input__icon"
slot="suffix"
@click="handleSaleQueryIconClick(index)">
</i>
<template slot-scope="{ item }">
<div class="name">{{ item.name }}</div>
</template>
</el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="是否帮工" :prop="'dwHoursContrasts.' + index + '.isHelper'"
:rules="{required: true, message: '请选择是否帮工', trigger: 'change'}">
<el-radio-group v-model="domain.isHelper" @change="getHelpers">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item label="部门名称" :prop="'dwHoursContrasts.' + index + '.deptId'"
:rules="{required: true, message: '部门不能为空', trigger: 'change'}"
v-if="domain.isHelper === 1">
<treeselect v-model="domain.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 200px" @select="((dept) => {currDepartChange(dept, index)})"/>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item class="my-delete">
<el-button size="mini" @click.prevent="removeDomain(domain)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<el-button size="mini" @click="addDomain"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="title === '日工工时详情'">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="empName">
<el-select v-model="form.empName" filterable clearable placeholder="请选择" @change="getEmployee" disabled>
<el-option
v-for="item in form.employeeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门名称" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width: 200px" @select="changeDeptChange" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="日工日期" prop="date">
<el-date-picker clearable
v-model="form.date"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择日工日期" disabled>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row v-for="(domain, index) in form.dwHoursContrasts" :key="domain.key">
<el-col :span="1.5">
<el-form-item
label="开始时间"
:prop="'dwHoursContrasts.' + index + '.beginTime'"
:rules="{required: true, message: '开始时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.beginTime" value-format="HH:mm" format="HH:mm" placeholder="开始时间" disabled style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="结束时间"
:prop="'dwHoursContrasts.' + index + '.fnishTime'"
:rules="{required: true, message: '结束时间不能为空', trigger: 'blur'}">
<el-time-picker v-model="domain.fnishTime" value-format="HH:mm" format="HH:mm" placeholder="结束时间" disabled style="width: 145px;"></el-time-picker>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="业务员"
:prop="'dwHoursContrasts.' + index + '.salesman'">
<el-autocomplete
popper-class="my-autocomplete"
v-model="domain.salesman"
:fetch-suggestions="querySaleSearch"
placeholder="请选择业务员"
@select="((business) => {handleSaleQuerySelect(business, index)})" disabled>
<i
class="el-icon-edit el-input__icon"
slot="suffix"
@click="handleSaleQueryIconClick(index)">
</i>
<template slot-scope="{ item }">
<div class="name">{{ item.name }}</div>
</template>
</el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item
label="是否帮工" :prop="'dwHoursContrasts.' + index + '.isHelper'"
:rules="{required: true, message: '请选择是否帮工', trigger: 'change'}">
<el-radio-group v-model="domain.isHelper" @change="getHelpers" disabled>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="1.5">
<el-form-item label="部门名称" :prop="'dwHoursContrasts.' + index + '.deptId'"
:rules="{required: true, message: '部门不能为空', trigger: 'change'}"
v-if="domain.isHelper === 1">
<treeselect v-model="domain.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" disabled style="width: 200px" @select="((dept) => {currDepartChange(dept, index)})"/>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="title !== '日工工时详情'"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
-->
</div> </div>
</template> </template>
<script> <script>
import { listDayWorkHours, getDayWorkHours, delDayWorkHours, addDayWorkHours, updateDayWorkHours } from "@/api/pay/dayWorkHours"; import { listDayWorkHours, getDayWorkHours, delDayWorkHours, addDayWorkHours, updateDayWorkHours } from "@/api/pay/dayWorkHours";
import { listTenant } from "@/api/pay/tenant"; import { listTenant } from "@/api/pay/tenant";
import { listEmployeeInfo } from "@/api/pay/employeeInfo";
import { deptTreeSelect } from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "DayWorkHours", name: "DayWorkHours",
components: { Treeselect },
data() { data() {
return { return {
// //
@ -250,6 +502,8 @@ export default {
total: 0, total: 0,
// //
dayWorkHoursList: [], dayWorkHoursList: [],
//
deptOptions: undefined,
// //
title: "", title: "",
// //
@ -269,6 +523,8 @@ export default {
}, },
// //
form: {}, form: {},
//
employeeList: [],
// //
rules: { rules: {
id: [ id: [
@ -307,6 +563,8 @@ export default {
}else { }else {
this.gsInfo.active_id = this.$store.state.user.tenantId this.gsInfo.active_id = this.$store.state.user.tenantId
this.getList(); this.getList();
this.getDeptTree();
this.getlistEmployee();
} }
}, },
methods: { methods: {
@ -316,7 +574,9 @@ export default {
if(response.rows.length>0){ if(response.rows.length>0){
this.gsInfo.list = response.rows; this.gsInfo.list = response.rows;
this.gsInfo.active_id = this.gsInfo.list[0].id this.gsInfo.active_id = this.gsInfo.list[0].id
this.getList() this.getList();
this.getDeptTree();
this.getlistEmployee();
}else{ }else{
this.$alert(`没有查到相关公司,暂无数据!`, `提示`, { this.$alert(`没有查到相关公司,暂无数据!`, `提示`, {
type: 'warning' type: 'warning'
@ -329,36 +589,28 @@ export default {
this.gsInfo.active_id = id this.gsInfo.active_id = id
this.getList() this.getList()
}, },
/** 查询时员工 */
getlistEmployee() {
listEmployeeInfo({ pageSize: 1000000000, tenantId: this.gsInfo.active_id }).then(response => {
this.employeeList = response.rows
});
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect({tenantId: this.gsInfo.active_id}).then(response => {
this.deptOptions = response.data;
});
},
/** 查询日工工时列表 */ /** 查询日工工时列表 */
getList() { getList() {
this.loading = true; this.loading = true;
// this.queryParams.tenantId = this.gsInfo.active_id; this.queryParams.tenantId = this.gsInfo.active_id;
listDayWorkHours(this.queryParams).then(response => { listDayWorkHours(this.queryParams).then(response => {
this.dayWorkHoursList = response.rows; this.dayWorkHoursList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
tenantId: undefined,
deptId: undefined,
deptName: undefined,
employeeId: undefined,
empName: undefined,
date: undefined,
dwYearMonth: undefined,
note: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
@ -367,6 +619,8 @@ export default {
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams.employeeId = null
this.queryParams.deptId = null
this.handleQuery(); this.handleQuery();
}, },
// //
@ -381,44 +635,6 @@ export default {
this.open = true; this.open = true;
this.title = "添加日工工时"; this.title = "添加日工工时";
}, },
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getDayWorkHours(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改日工工时";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
this.form.tenantId = this.gsInfo.active_id;
if (this.form.id != null) {
updateDayWorkHours(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addDayWorkHours(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
@ -439,6 +655,301 @@ export default {
this.download('pay/dayWorkHours/export', { this.download('pay/dayWorkHours/export', {
...this.queryParams ...this.queryParams
}, `dayWorkHours_${new Date().getTime()}.xlsx`) }, `dayWorkHours_${new Date().getTime()}.xlsx`)
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getDayWorkHours(id).then(response => {
this.form = response.data;
/*getEmpNameList().then(response => {
this.$set(this.form,'employeeList',response.data)
})*/
/*treeselect().then(response => {
this.form.dwHoursContrasts.forEach(item => {
this.$set(item,'departOptions',response.data)
var sth = new Date(item.startTime).getHours();
sth = sth < 10 ? sth : sth;
var stm = new Date(item.startTime).getMinutes();
stm = stm < 10 ? '0' + stm : stm;
var eth = new Date(item.endTime).getHours();
eth = eth < 10 ? eth : eth;
var etm = new Date(item.endTime).getMinutes();
etm = etm < 10 ? '0' + etm : etm;
this.$set(item,"beginTime",sth+":"+stm);
this.$set(item,"fnishTime",eth+":"+etm);
})
})*/
this.opena = true;
this.title = "修改日工工时";
});
},
/** 查询时选择部门 */
changeDeptChange(dept) {
this.form.deptName = dept.label
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
var sum = 0
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总小时数';
return;
}
if (column.property == 'hours') {
data.forEach(item => {
item.dwHoursContrasts.forEach(hour => {
if(hour.hours != null){
sum += Number(hour.hours);
sums[index] = parseFloat(sum).toFixed(2);
}
})
})
} else {
sums[index] = '';
}
});
return sums;
},
/** 查询员工 */
getNamelist() {
getEmpNameList().then(response => {
this.queryParams.employeeList = response.data;
this.form.employeeList = response.data;
})
},
/** 查询时选择员工 */
getEmploy(val) {
this.queryParams.employeeList.forEach(employ => {
if (employ.id == val) {
this.queryParams.employeeId = employ.id
this.queryParams.empName = employ.name
}
})
},
/** 新增或修改时选择员工 */
getEmployee(val, index) {
this.form.employeeList.forEach(employee => {
if (employee.id == val) {
this.form.employeeId = employee.id;
this.form.empName = employee.name;
this.form.deptName = employee.deptName;
this.form.deptId = employee.deptId;
this.form.empInfos[index].employeeId = employee.id;
this.form.empInfos[index].empName = employee.name;
this.form.empInfos[index].deptName = employee.deptName;
this.form.empInfos[index].deptId = employee.deptId;
}
})
},
/** 查询部门 */
getTreeselect() {
treeselect().then(response => {
this.deptOptions = response.data;
})
},
/** 查询时选择部门 */
currDeptChange(dept) {
this.form.deptName = dept.label
},
getHelpers() {
treeselect().then(response => {
this.form.dwHoursContrasts.forEach(item => {
if(0 == item.isHelper){
item.departOptions = []
item.deptId = null
item.deptName = null
} else {
// item.departOptions = response.data[0].children;
item.departOptions = response.data;
}
})
})
},
currDepartChange(val, i) {
this.form.dwHoursContrasts[i].deptName = val.label
},
//
handleSalelist() {
getSalelist().then(response => {
this.saleList = response
})
},
getSalemanList(val) {
this.saleList.forEach(sal => {
if(sal.id == val){
this.queryParams.salesman = sal.name
}
})
},
//
cancel() {
this.open = false;
this.opena = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
deptId: null,
deptName: null,
employeeId: null,
empName: null,
employeeList: [],
date: null,
empInfos: [{
deptId: null,
deptName: null,
employeeId: null,
empName: null
}],
dwHoursContrasts: [{
startTime: null,
beginTime: null,
endTime: null,
fnishTime: null,
isHelper: 0,
departOptions: [],
deptId: null,
deptName: null,
salesman: null
}]
};
this.resetForm("form");
this.getNamelist();
this.getTreeselect();
},
//
addElet() {
this.form.empInfos.push({
deptId: null,
deptName: null,
employeeId: null,
empName: null
});
},
//
removeElet(elp) {
var index = this.form.empInfos.indexOf(elp)
if (index !== -1) {
this.form.empInfos.splice(index, 1)
}
},
/** 新增时间段 */
addDomain() {
this.form.dwHoursContrasts.push({
startTime: null,
beginTime: null,
endTime: null,
fnishTime: null,
isHelper: 0,
departOptions: [],
deptId: null,
deptName: null,
salesman: null
});
},
/** 删除时间段 */
removeDomain(item) {
var index = this.form.dwHoursContrasts.indexOf(item)
if (index !== -1) {
this.form.dwHoursContrasts.splice(index, 1)
}
},
/** 详情按钮操作 */
handleDetails(row) {
this.reset();
const id = row.id || this.ids
/*getDwhours(id).then(response => {
this.form = response.data;
getEmpNameList().then(response => {
this.$set(this.form,'employeeList',response.data)
})
treeselect().then(response => {
this.form.dwHoursContrasts.forEach(item => {
this.$set(item,'departOptions',response.data)
var sth = new Date(item.startTime).getHours();
sth = sth < 10 ? sth : sth;
var stm = new Date(item.startTime).getMinutes();
stm = stm < 10 ? '0' + stm : stm;
var eth = new Date(item.endTime).getHours();
eth = eth < 10 ? eth : eth;
var etm = new Date(item.endTime).getMinutes();
etm = etm < 10 ? '0' + etm : etm;
this.$set(item,"beginTime",sth+":"+stm);
this.$set(item,"fnishTime",eth+":"+etm);
})
})
this.opena = true;
this.title = "日工工时详情";
});*/
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.tenantId = this.gsInfo.active_id;
this.form.dwHoursContrasts.forEach(a => {
a.startTime = this.form.date + ' ' + a.beginTime + ':00';
a.endTime = this.form.date + ' ' + a.fnishTime + ':00';
})
var isHour = true
if(this.form.dwHoursContrasts.length > 0){
for(var i=0; i<this.form.dwHoursContrasts.length; i++){
if(new Date(this.form.dwHoursContrasts[i].endTime).getTime() <= new Date(this.form.dwHoursContrasts[i].startTime).getTime()){
isHour = false
this.$alert('结束时间应大于开始时间', '信息', {
confirmButtonText: '确定',
customClass:'message_box_alert'
}).catch((err) => {
console.log(err)
})
break;
}
}
}
if (isHour) {
if (this.form.id != null) {
updateDayWorkHours(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.opena = false;
this.getList();
});
} else {
addDayWorkHours(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
}
});
},
replaceall( restr ,oldstr, newstr ){
while (restr.indexOf(oldstr) >= 0){
restr = restr.replace(oldstr,newstr);
}
return restr;
},
querySaleSearch(queryString, cb) {
let saleList = this.saleList;
let results = queryString ? saleList.filter(this.createSaleFilter(queryString)) : saleList;
// callback
cb(results);
},
createSaleFilter(queryString) {
return (sale) => {
return (sale.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
}
},
handleSaleQuerySelect(item, index) {
this.form.dwHoursContrasts[index].salesman = item.name
},
handleSaleQueryIconClick(index) {
this.form.dwHoursContrasts[index].salesman = null
} }
} }
}; };

Loading…
Cancel
Save