开发计划修改
This commit is contained in:
parent
0150b7d6fb
commit
1da049357c
|
|
@ -1,6 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container" id="eightMembers">
|
<div class="app-container" id="eightMembers">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
|
<el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryForm"
|
||||||
|
size="small"
|
||||||
|
:inline="true"
|
||||||
|
v-show="showSearch"
|
||||||
|
label-width="90px"
|
||||||
|
>
|
||||||
<el-form-item label="分公司名称" prop="parentOrgName">
|
<el-form-item label="分公司名称" prop="parentOrgName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.parentOrgName"
|
v-model="queryParams.parentOrgName"
|
||||||
|
|
@ -13,26 +20,67 @@
|
||||||
</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
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
type="primary"
|
||||||
|
icon="el-icon-search"
|
||||||
|
size="mini"
|
||||||
|
@click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="warning"
|
||||||
|
@click="onHandleExport"
|
||||||
|
icon="el-icon-download"
|
||||||
|
>
|
||||||
|
导出
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="typeList">
|
<el-table v-loading="loading" :data="typeList">
|
||||||
<el-table-column label="序号" align="center" width="80" type="index">
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
|
<span>{{
|
||||||
|
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分公司名称" align="center" prop="parentOrgName" :show-overflow-tooltip="true" />
|
<el-table-column
|
||||||
<el-table-column label="缺员情况" align="center" :show-overflow-tooltip="true">
|
label="分公司名称"
|
||||||
|
align="center"
|
||||||
|
prop="parentOrgName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="缺员情况"
|
||||||
|
align="center"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="color: #1890FF; cursor: pointer" @click="goShortageSituation(scope.row)">{{scope.row.lackOrgName}}</div>
|
<div
|
||||||
|
style="color: #1890ff; cursor: pointer"
|
||||||
|
@click="goShortageSituation(scope.row)"
|
||||||
|
>
|
||||||
|
{{ scope.row.lackOrgName }}
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="兼职情况" align="center" :show-overflow-tooltip="true">
|
<el-table-column
|
||||||
|
label="兼职情况"
|
||||||
|
align="center"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="color: #1890FF; cursor: pointer" @click="goPartTimeSituation(scope.row)">{{scope.row.moreOrgName}}</div>
|
<div
|
||||||
|
style="color: #1890ff; cursor: pointer"
|
||||||
|
@click="goPartTimeSituation(scope.row)"
|
||||||
|
>
|
||||||
|
{{ scope.row.moreOrgName }}
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -79,8 +127,10 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getOrgEightRoleTable } from "@/api/process/eightMembers";
|
import { getOrgEightRoleTable } from "@/api/process/eightMembers";
|
||||||
import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree";
|
import {
|
||||||
|
treeselect as staffTreeselect,
|
||||||
|
roleStaffTreeselect,
|
||||||
|
} from "@/api/process/tree";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "EightMembers",
|
name: "EightMembers",
|
||||||
|
|
@ -108,7 +158,7 @@ export default {
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
parentOrgName:undefined
|
parentOrgName: undefined,
|
||||||
},
|
},
|
||||||
// 人员列表
|
// 人员列表
|
||||||
staffOptions: [],
|
staffOptions: [],
|
||||||
|
|
@ -119,7 +169,7 @@ export default {
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: "children",
|
children: "children",
|
||||||
label: "name",
|
label: "name",
|
||||||
disabled: "disabled" // 添加 disabled 属性
|
disabled: "disabled", // 添加 disabled 属性
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
@ -130,12 +180,11 @@ export default {
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
getOrgEightRoleTable(this.queryParams).then(response => {
|
getOrgEightRoleTable(this.queryParams).then((response) => {
|
||||||
this.typeList = response.rows;
|
this.typeList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}
|
});
|
||||||
);
|
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
|
|
@ -146,7 +195,7 @@ export default {
|
||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
parentOrgName: undefined,
|
parentOrgName: undefined,
|
||||||
staffOptions:[]
|
staffOptions: [],
|
||||||
};
|
};
|
||||||
this.defaultCheckedKeys = []; // 重置默认选中的节点
|
this.defaultCheckedKeys = []; // 重置默认选中的节点
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
|
|
@ -170,14 +219,20 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
goShortageSituation(item) {
|
goShortageSituation(item) {
|
||||||
this.$router.push({path:"/process/shortageSituation",query:{parentOrgName:item.parentOrgName,lackOrgId:item.lackOrgId}})
|
this.$router.push({
|
||||||
|
path: "/process/shortageSituation",
|
||||||
|
query: { parentOrgName: item.parentOrgName, lackOrgId: item.lackOrgId },
|
||||||
|
});
|
||||||
},
|
},
|
||||||
goPartTimeSituation(item) {
|
goPartTimeSituation(item) {
|
||||||
this.$router.push({path:"/process/partTimeSituation",query:{parentOrgName:item.parentOrgName,moreOrgId:item.moreOrgId}})
|
this.$router.push({
|
||||||
|
path: "/process/partTimeSituation",
|
||||||
|
query: { parentOrgName: item.parentOrgName, moreOrgId: item.moreOrgId },
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function () {
|
submitForm: function () {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const checkedKeys = this.getStaffAllCheckedKeys();
|
const checkedKeys = this.getStaffAllCheckedKeys();
|
||||||
if (checkedKeys.length === 0) {
|
if (checkedKeys.length === 0) {
|
||||||
|
|
@ -185,8 +240,8 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.form.userId = checkedKeys.join(",");
|
this.form.userId = checkedKeys.join(",");
|
||||||
console.log("form",this.form)
|
console.log("form", this.form);
|
||||||
proDeptRole(this.form).then(response => {
|
proDeptRole(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -205,6 +260,10 @@ export default {
|
||||||
checkedKeys.unshift.apply(checkedKeys);
|
checkedKeys.unshift.apply(checkedKeys);
|
||||||
return checkedKeys;
|
return checkedKeys;
|
||||||
},
|
},
|
||||||
|
// 导出按钮
|
||||||
|
onHandleExport() {
|
||||||
|
console.log("导出--");
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container" id="evection">
|
<div class="app-container" id="evection">
|
||||||
<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="出差时间" prop="leaveDate">
|
<el-form-item label="出差时间" prop="leaveDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRange"
|
v-model="dateRange"
|
||||||
|
|
@ -11,11 +18,18 @@
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
|
|
||||||
</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
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
type="primary"
|
||||||
|
icon="el-icon-search"
|
||||||
|
size="mini"
|
||||||
|
@click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
|
@ -43,63 +57,112 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="tableList">
|
<el-table v-loading="loading" :data="tableList">
|
||||||
<el-table-column label="序号" align="center" width="80" type="index">
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
|
<span>{{
|
||||||
|
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="姓名" align="center" prop="userName" width="100"/>
|
<el-table-column
|
||||||
<el-table-column label="职务" align="center" prop="postName" :show-overflow-tooltip="true" width="240"/>
|
label="姓名"
|
||||||
<el-table-column label="所属部门" align="center" prop="orgName" :show-overflow-tooltip="true" width="240">
|
align="center"
|
||||||
|
prop="userName"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="职务"
|
||||||
|
align="center"
|
||||||
|
prop="postName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="240"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="所属部门"
|
||||||
|
align="center"
|
||||||
|
prop="orgName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="240"
|
||||||
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="出行人" align="center" prop="travelersName" :show-overflow-tooltip="true" width="100"/>
|
<el-table-column
|
||||||
|
label="出行人"
|
||||||
|
align="center"
|
||||||
|
prop="travelersName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
|
||||||
<el-table-column label="出差开始时间" align="center" prop="leaveStartDate" :show-overflow-tooltip="true" width="180">
|
<el-table-column
|
||||||
|
label="出差开始时间"
|
||||||
|
align="center"
|
||||||
|
prop="leaveStartDate"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>{{ scope.row.leaveStartDate }}
|
<div>
|
||||||
|
{{ scope.row.leaveStartDate }}
|
||||||
<!-- <span v-show="scope.row.leaveStartInterval=='1'">上午</span>-->
|
<!-- <span v-show="scope.row.leaveStartInterval=='1'">上午</span>-->
|
||||||
<!-- <span v-show="scope.row.leaveStartInterval=='2'">下午</span>-->
|
<!-- <span v-show="scope.row.leaveStartInterval=='2'">下午</span>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="出差结束时间" align="center" prop="leaveEndDate" :show-overflow-tooltip="true" width="180">
|
<el-table-column
|
||||||
|
label="出差结束时间"
|
||||||
|
align="center"
|
||||||
|
prop="leaveEndDate"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>{{ scope.row.leaveEndDate }}
|
<div>
|
||||||
|
{{ scope.row.leaveEndDate }}
|
||||||
<!-- <span v-show="scope.row.leaveEndInterval=='1'">上午</span>-->
|
<!-- <span v-show="scope.row.leaveEndInterval=='1'">上午</span>-->
|
||||||
<!-- <span v-show="scope.row.leaveEndInterval=='2'">下午</span>-->
|
<!-- <span v-show="scope.row.leaveEndInterval=='2'">下午</span>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="出差时长(天)" align="center" prop="leaveDuration" :show-overflow-tooltip="true"
|
<el-table-column
|
||||||
width="180"/>
|
label="出差时长(天)"
|
||||||
|
align="center"
|
||||||
|
prop="leaveDuration"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
width="180"
|
||||||
|
/>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding">
|
<el-table-column label="操作" align="center" class-name="small-padding">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini" type="primary"
|
size="mini"
|
||||||
|
type="primary"
|
||||||
v-hasPermi="['flow:evection:edit']"
|
v-hasPermi="['flow:evection:edit']"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
>编辑
|
>编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini" type="danger"
|
size="mini"
|
||||||
|
type="danger"
|
||||||
v-hasPermi="['flow:evection:remove']"
|
v-hasPermi="['flow:evection:remove']"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>删除
|
>删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
size="mini" type="primary"
|
size="mini"
|
||||||
|
type="primary"
|
||||||
v-hasPermi="['flow:evection:list']"
|
v-hasPermi="['flow:evection:list']"
|
||||||
@click="handleDetails(scope.row)"
|
@click="handleDetails(scope.row)"
|
||||||
>详情
|
>详情
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -132,7 +195,11 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="所属部门:" prop="orgId">
|
<el-form-item label="所属部门:" prop="orgId">
|
||||||
<el-select v-model="form.orgId" @change="changDept" style="width: 100%;">
|
<el-select
|
||||||
|
v-model="form.orgId"
|
||||||
|
@change="changDept"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in orgList"
|
v-for="item in orgList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -145,7 +212,14 @@
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="出行人:" prop="orgHeadUserIdList">
|
<el-form-item label="出行人:" prop="orgHeadUserIdList">
|
||||||
<el-select v-model="form.orgHeadUserIdList" multiple placeholder="请选择出行人" filterable clearable style="width: 100%;">
|
<el-select
|
||||||
|
v-model="form.orgHeadUserIdList"
|
||||||
|
multiple
|
||||||
|
placeholder="请选择出行人"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in personOptions"
|
v-for="item in personOptions"
|
||||||
:key="item.userIds"
|
:key="item.userIds"
|
||||||
|
|
@ -161,9 +235,15 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="出差开始时间:" prop="leaveStartDate">
|
<el-form-item label="出差开始时间:" prop="leaveStartDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.leaveStartDate" :clearable="false"
|
v-model="form.leaveStartDate"
|
||||||
type="date" value-format="yyyy-MM-dd" style="width: 100%;" @change="handleDateChange"
|
:clearable="false"
|
||||||
placeholder="出差开始时间" :pickerOptions="startPickerOptions">
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="handleDateChange"
|
||||||
|
placeholder="出差开始时间"
|
||||||
|
:pickerOptions="startPickerOptions"
|
||||||
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -183,9 +263,15 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="出差结束时间:" prop="leaveEndDate">
|
<el-form-item label="出差结束时间:" prop="leaveEndDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.leaveEndDate" :clearable="false"
|
v-model="form.leaveEndDate"
|
||||||
type="date" value-format="yyyy-MM-dd" style="width: 100%;" @change="handleDateChange"
|
:clearable="false"
|
||||||
placeholder="出差结束时间" :pickerOptions="endPickerOptions">
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="handleDateChange"
|
||||||
|
placeholder="出差结束时间"
|
||||||
|
:pickerOptions="endPickerOptions"
|
||||||
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -225,16 +311,22 @@
|
||||||
v-for="item in isAgreeList"
|
v-for="item in isAgreeList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="代理主持工作人员:" prop="hostUserId">
|
<el-form-item label="代理主持工作人员:" prop="hostUserId">
|
||||||
<el-select v-model="form.hostUserId" multiple placeholder="请选择人员姓名" filterable clearable style="width: 100%;">
|
<el-select
|
||||||
|
v-model="form.hostUserId"
|
||||||
|
multiple
|
||||||
|
placeholder="请选择人员姓名"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userList"
|
v-for="item in userList"
|
||||||
:key="item.userId"
|
:key="item.userId"
|
||||||
|
|
@ -242,7 +334,6 @@
|
||||||
:value="item.userId"
|
:value="item.userId"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -255,7 +346,8 @@
|
||||||
v-for="item in isOutsideList"
|
v-for="item in isOutsideList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -267,7 +359,23 @@
|
||||||
v-for="item in isXizangList"
|
v-for="item in isXizangList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="是否高原:" prop="isOutside">
|
||||||
|
<el-radio-group>
|
||||||
|
<el-radio
|
||||||
|
v-for="item in isOutsideList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.id"
|
||||||
|
>{{ item.name }}
|
||||||
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -276,7 +384,11 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="出差事由:" prop="leaveReason">
|
<el-form-item label="出差事由:" prop="leaveReason">
|
||||||
<el-input type="textarea" v-model="form.leaveReason" maxlength="200"></el-input>
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
v-model="form.leaveReason"
|
||||||
|
maxlength="200"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -284,7 +396,11 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注:" prop="remark">
|
<el-form-item label="备注:" prop="remark">
|
||||||
<el-input type="textarea" v-model="form.remark" maxlength="200"></el-input>
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
v-model="form.remark"
|
||||||
|
maxlength="200"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -296,7 +412,12 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 详情参数配置对话框 -->
|
<!-- 详情参数配置对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="openDetails" width="900px" append-to-body>
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
:visible.sync="openDetails"
|
||||||
|
width="900px"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
|
@ -330,18 +451,32 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="出差开始时间:" prop="leaveStartDate">
|
<el-form-item label="出差开始时间:" prop="leaveStartDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.leaveStartDate" :disabled="true" :clearable="false"
|
v-model="form.leaveStartDate"
|
||||||
type="date" value-format="yyyy-MM-dd" style="width: 100%;" @change="handleDateChange"
|
:disabled="true"
|
||||||
placeholder="出差开始时间" :pickerOptions="startPickerOptions">
|
:clearable="false"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="handleDateChange"
|
||||||
|
placeholder="出差开始时间"
|
||||||
|
:pickerOptions="startPickerOptions"
|
||||||
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="出差结束时间:" prop="leaveEndDate">
|
<el-form-item label="出差结束时间:" prop="leaveEndDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.leaveEndDate" :disabled="true" :clearable="false"
|
v-model="form.leaveEndDate"
|
||||||
type="date" value-format="yyyy-MM-dd" style="width: 100%;" @change="handleDateChange"
|
:disabled="true"
|
||||||
placeholder="出差结束时间" :pickerOptions="endPickerOptions">
|
:clearable="false"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="handleDateChange"
|
||||||
|
placeholder="出差结束时间"
|
||||||
|
:pickerOptions="endPickerOptions"
|
||||||
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -368,10 +503,9 @@
|
||||||
v-for="item in isAgreeList"
|
v-for="item in isAgreeList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
@ -390,7 +524,8 @@
|
||||||
v-for="item in isOutsideList"
|
v-for="item in isOutsideList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -402,7 +537,8 @@
|
||||||
v-for="item in isXizangList"
|
v-for="item in isXizangList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio>
|
>{{ item.name }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -411,7 +547,12 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="出差事由:" prop="leaveReason">
|
<el-form-item label="出差事由:" prop="leaveReason">
|
||||||
<el-input type="textarea" :disabled="true" v-model="form.leaveReason" maxlength="200"></el-input>
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:disabled="true"
|
||||||
|
v-model="form.leaveReason"
|
||||||
|
maxlength="200"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -419,7 +560,12 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注:" prop="remark">
|
<el-form-item label="备注:" prop="remark">
|
||||||
<el-input type="textarea" :disabled="true" v-model="form.remark" maxlength="200"></el-input>
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:disabled="true"
|
||||||
|
v-model="form.remark"
|
||||||
|
maxlength="200"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -428,7 +574,6 @@
|
||||||
<el-button @click="cancel">关 闭</el-button>
|
<el-button @click="cancel">关 闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -442,7 +587,7 @@ import {
|
||||||
getPostName,
|
getPostName,
|
||||||
getUserList,
|
getUserList,
|
||||||
exportEvection,
|
exportEvection,
|
||||||
getPersonSelect
|
getPersonSelect,
|
||||||
} from "@/api/process/evection";
|
} from "@/api/process/evection";
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
|
|
@ -450,7 +595,7 @@ import {getDaysDate} from "@/api/process/leaveReporting";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Evection",
|
name: "Evection",
|
||||||
dicts: ['apply_status'],
|
dicts: ["apply_status"],
|
||||||
components: { Treeselect },
|
components: { Treeselect },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -471,9 +616,18 @@ export default {
|
||||||
// 表格数据
|
// 表格数据
|
||||||
tableList: [],
|
tableList: [],
|
||||||
userList: [],
|
userList: [],
|
||||||
isAgreeList:[{id:'0',name:'否'},{id:'1',name:'是'}],
|
isAgreeList: [
|
||||||
isOutsideList:[{id:'0',name:'否'},{id:'1',name:'是'}],
|
{ id: "0", name: "否" },
|
||||||
isXizangList:[{id:'0',name:'否'},{id:'1',name:'是'}],
|
{ id: "1", name: "是" },
|
||||||
|
],
|
||||||
|
isOutsideList: [
|
||||||
|
{ id: "0", name: "否" },
|
||||||
|
{ id: "1", name: "是" },
|
||||||
|
],
|
||||||
|
isXizangList: [
|
||||||
|
{ id: "0", name: "否" },
|
||||||
|
{ id: "1", name: "是" },
|
||||||
|
],
|
||||||
// 弹出层标题
|
// 弹出层标题
|
||||||
title: "",
|
title: "",
|
||||||
// 是否显示弹出层
|
// 是否显示弹出层
|
||||||
|
|
@ -481,13 +635,16 @@ export default {
|
||||||
openDetails: false,
|
openDetails: false,
|
||||||
|
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
timeStatusList: [{id: '1', name: "上午"}, {id: '2', name: "下午"}],
|
timeStatusList: [
|
||||||
|
{ id: "1", name: "上午" },
|
||||||
|
{ id: "2", name: "下午" },
|
||||||
|
],
|
||||||
// 日期范围
|
// 日期范围
|
||||||
dateRange: [],
|
dateRange: [],
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10
|
pageSize: 10,
|
||||||
},
|
},
|
||||||
personOptions: [],
|
personOptions: [],
|
||||||
// 表单参数
|
// 表单参数
|
||||||
|
|
@ -495,68 +652,78 @@ export default {
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
orgId: [
|
orgId: [
|
||||||
{required: true, message: "所属部门不能为空", trigger: "blur"}
|
{ required: true, message: "所属部门不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
orgHeadUserIdList: [
|
orgHeadUserIdList: [
|
||||||
{required: true, message: "出行人不能为空", trigger: "blur"}
|
{ required: true, message: "出行人不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
leaveStartDate: [
|
leaveStartDate: [
|
||||||
{required: true, message: "出差开始时间不能为空", trigger: "blur"}
|
{ required: true, message: "出差开始时间不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
/*leaveStartInterval: [
|
/*leaveStartInterval: [
|
||||||
{required: true, message: "不能为空", trigger: "change"}
|
{required: true, message: "不能为空", trigger: "change"}
|
||||||
],*/
|
],*/
|
||||||
leaveEndDate: [
|
leaveEndDate: [
|
||||||
{required: true, message: "出差结束时间不能为空", trigger: "blur"}
|
{ required: true, message: "出差结束时间不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
/*leaveEndInterval: [
|
/*leaveEndInterval: [
|
||||||
{required: true, message: "不能为空", trigger: "change"}
|
{required: true, message: "不能为空", trigger: "change"}
|
||||||
],*/
|
],*/
|
||||||
leaveDuration: [
|
leaveDuration: [
|
||||||
{required: true, message: "出差时长不能为空", trigger: "blur"}
|
{ required: true, message: "出差时长不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
location: [
|
location: [
|
||||||
{required: true, message: "地点不能为空", trigger: "blur"}
|
{ required: true, message: "地点不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
isAgree: [
|
isAgree: [
|
||||||
{required: true, message: "是否请示领导同意不能为空", trigger: "blur"}
|
{
|
||||||
|
required: true,
|
||||||
|
message: "是否请示领导同意不能为空",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
isOutside: [
|
isOutside: [
|
||||||
{required: true, message: "是否省外同意不能为空", trigger: "blur"}
|
{ required: true, message: "是否省外同意不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
isXizang: [
|
isXizang: [
|
||||||
{required: true, message: "是否西藏同意不能为空", trigger: "blur"}
|
{ required: true, message: "是否西藏同意不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
hostUserId: [
|
hostUserId: [
|
||||||
{required: true, message: "代理主持工作人员不能为空", trigger: "blur"}
|
{
|
||||||
|
required: true,
|
||||||
|
message: "代理主持工作人员不能为空",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
leaveReason: [
|
leaveReason: [
|
||||||
{required: true, message: "出差事由不能为空", trigger: "blur"}
|
{ required: true, message: "出差事由不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
|
|
||||||
},
|
},
|
||||||
// 开始日期选择限制
|
// 开始日期选择限制
|
||||||
startPickerOptions: {
|
startPickerOptions: {
|
||||||
disabledDate: (v) => {
|
disabledDate: (v) => {
|
||||||
const today = new Date()
|
const today = new Date();
|
||||||
today.setHours(0, 0, 0, 0)
|
today.setHours(0, 0, 0, 0);
|
||||||
if (this.form.leaveEndDate) {
|
if (this.form.leaveEndDate) {
|
||||||
const end = new Date(this.form.leaveEndDate);
|
const end = new Date(this.form.leaveEndDate);
|
||||||
end.setHours(0, 0, 0, 0);
|
end.setHours(0, 0, 0, 0);
|
||||||
return v.getTime() > end.getTime() || v.getTime() < today.getTime();
|
return v.getTime() > end.getTime() || v.getTime() < today.getTime();
|
||||||
}
|
}
|
||||||
return v.getTime() < today.getTime()
|
return v.getTime() < today.getTime();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// 结束日期选择限制
|
// 结束日期选择限制
|
||||||
endPickerOptions: {
|
endPickerOptions: {
|
||||||
disabledDate: (v) => {
|
disabledDate: (v) => {
|
||||||
const today = new Date()
|
const today = new Date();
|
||||||
today.setHours(0, 0, 0, 0)
|
today.setHours(0, 0, 0, 0);
|
||||||
if (this.form.leaveStartDate) {
|
if (this.form.leaveStartDate) {
|
||||||
return v.getTime() < new Date(this.form.leaveStartDate).getTime() - 86400000; // - 86400000是否包括当天
|
return (
|
||||||
|
v.getTime() <
|
||||||
|
new Date(this.form.leaveStartDate).getTime() - 86400000
|
||||||
|
); // - 86400000是否包括当天
|
||||||
}
|
}
|
||||||
return v.getTime() < today.getTime()
|
return v.getTime() < today.getTime();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
daysNumber: "",
|
daysNumber: "",
|
||||||
|
|
@ -572,25 +739,29 @@ export default {
|
||||||
this.form.leaveStartInterval = 1;
|
this.form.leaveStartInterval = 1;
|
||||||
this.form.leaveEndInterval = 2;
|
this.form.leaveEndInterval = 2;
|
||||||
if (this.form.leaveStartDate && this.form.leaveEndDate) {
|
if (this.form.leaveStartDate && this.form.leaveEndDate) {
|
||||||
await this.daysBetween(this.form.leaveStartDate, this.form.leaveEndDate)
|
await this.daysBetween(
|
||||||
console.log(this.daysNumber)
|
this.form.leaveStartDate,
|
||||||
this.form.leaveDuration = this.daysNumber
|
this.form.leaveEndDate
|
||||||
|
);
|
||||||
|
console.log(this.daysNumber);
|
||||||
|
this.form.leaveDuration = this.daysNumber;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async daysBetween(date1, date2) {
|
async daysBetween(date1, date2) {
|
||||||
var data = {
|
var data = {
|
||||||
"leaveStartDate":date1,
|
leaveStartDate: date1,
|
||||||
"leaveEndDate":date2,
|
leaveEndDate: date2,
|
||||||
}
|
};
|
||||||
await getDaysDate(data).then(response => {
|
await getDaysDate(data).then((response) => {
|
||||||
this.daysNumber = response.data.date;
|
this.daysNumber = response.data.date;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
listEvection(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listEvection(this.addDateRange(this.queryParams, this.dateRange)).then(
|
||||||
|
(response) => {
|
||||||
this.tableList = response.rows;
|
this.tableList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
|
@ -600,16 +771,16 @@ export default {
|
||||||
|
|
||||||
getUserLists() {
|
getUserLists() {
|
||||||
const Id = this.$store.state.user.id;
|
const Id = this.$store.state.user.id;
|
||||||
getUserList(Id).then(response => {
|
getUserList(Id).then((response) => {
|
||||||
this.userList = response.data.data;
|
this.userList = response.data.data;
|
||||||
console.log("userList",this.userList)
|
console.log("userList", this.userList);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 人员选择下拉 */
|
/** 人员选择下拉 */
|
||||||
getPersonSelect() {
|
getPersonSelect() {
|
||||||
getPersonSelect().then(response => {
|
getPersonSelect().then((response) => {
|
||||||
this.personOptions=response.data
|
this.personOptions = response.data;
|
||||||
console.log("this.personOptions", this.personOptions);
|
console.log("this.personOptions", this.personOptions);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -636,7 +807,7 @@ export default {
|
||||||
isXizang: "0",
|
isXizang: "0",
|
||||||
hostUserId: [],
|
hostUserId: [],
|
||||||
orgHeadUserIdList: [],
|
orgHeadUserIdList: [],
|
||||||
travelers:[]
|
travelers: [],
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
|
|
@ -657,9 +828,9 @@ export default {
|
||||||
const Id = this.$store.state.user.id;
|
const Id = this.$store.state.user.id;
|
||||||
|
|
||||||
let idNums = [Id + ""];
|
let idNums = [Id + ""];
|
||||||
this.$set(this.form,"orgHeadUserIdList",idNums)
|
this.$set(this.form, "orgHeadUserIdList", idNums);
|
||||||
|
|
||||||
getPostName(Id).then(response => {
|
getPostName(Id).then((response) => {
|
||||||
this.form.postName = response.data.postName;
|
this.form.postName = response.data.postName;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "新增";
|
this.title = "新增";
|
||||||
|
|
@ -669,47 +840,46 @@ export default {
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset();
|
||||||
const Id = row.uuid;
|
const Id = row.uuid;
|
||||||
getEvection(Id).then(response => {
|
getEvection(Id).then((response) => {
|
||||||
this.form = response.data;
|
this.form = response.data;
|
||||||
let num = [];
|
let num = [];
|
||||||
let numArr = this.form.hostUserId.split(",")
|
let numArr = this.form.hostUserId.split(",");
|
||||||
numArr.forEach(function (item) {
|
numArr.forEach(function (item) {
|
||||||
num.push(parseInt(item));
|
num.push(parseInt(item));
|
||||||
})
|
});
|
||||||
this.$set(this.form,"hostUserId",num)
|
this.$set(this.form, "hostUserId", num);
|
||||||
if (this.form.travelers != null) {
|
if (this.form.travelers != null) {
|
||||||
let arr = this.form.travelers.split(',')
|
let arr = this.form.travelers.split(",");
|
||||||
let nums = [];
|
let nums = [];
|
||||||
arr.forEach(function (item) {
|
arr.forEach(function (item) {
|
||||||
nums.push(item.trim() + "");
|
nums.push(item.trim() + "");
|
||||||
})
|
});
|
||||||
this.$set(this.form,"orgHeadUserIdList",nums)
|
this.$set(this.form, "orgHeadUserIdList", nums);
|
||||||
}
|
}
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "编辑";
|
this.title = "编辑";
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/** 详情按钮操作 */
|
/** 详情按钮操作 */
|
||||||
handleDetails(row) {
|
handleDetails(row) {
|
||||||
this.reset();
|
this.reset();
|
||||||
const Id = row.uuid;
|
const Id = row.uuid;
|
||||||
getEvection(Id).then(response => {
|
getEvection(Id).then((response) => {
|
||||||
this.form = response.data;
|
this.form = response.data;
|
||||||
let num = [];
|
let num = [];
|
||||||
let numArr = this.form.hostUserId.split(",")
|
let numArr = this.form.hostUserId.split(",");
|
||||||
numArr.forEach(function (item) {
|
numArr.forEach(function (item) {
|
||||||
num.push(parseInt(item));
|
num.push(parseInt(item));
|
||||||
})
|
});
|
||||||
this.$set(this.form,"hostUserId",num)
|
this.$set(this.form, "hostUserId", num);
|
||||||
if (this.form.travelers != null) {
|
if (this.form.travelers != null) {
|
||||||
let arr = this.form.travelers.split(',')
|
let arr = this.form.travelers.split(",");
|
||||||
let nums = [];
|
let nums = [];
|
||||||
arr.forEach(function (item) {
|
arr.forEach(function (item) {
|
||||||
nums.push(item.trim() + "");
|
nums.push(item.trim() + "");
|
||||||
})
|
});
|
||||||
this.$set(this.form,"orgHeadUserIdList",nums)
|
this.$set(this.form, "orgHeadUserIdList", nums);
|
||||||
}
|
}
|
||||||
this.openDetails = true;
|
this.openDetails = true;
|
||||||
this.title = "详情";
|
this.title = "详情";
|
||||||
|
|
@ -718,57 +888,63 @@ export default {
|
||||||
|
|
||||||
//选择部门
|
//选择部门
|
||||||
changDept(e) {
|
changDept(e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
this.orgList.forEach(item => {
|
this.orgList.forEach((item) => {
|
||||||
if (item.id == e) {
|
if (item.id == e) {
|
||||||
this.form.orgName = item.name
|
this.form.orgName = item.name;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
//选择休假类型
|
//选择休假类型
|
||||||
changType(e) {
|
changType(e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
this.orgList.forEach(item => {
|
this.orgList.forEach((item) => {
|
||||||
if (item.id == e) {
|
if (item.id == e) {
|
||||||
this.form.type = item.name
|
this.form.type = item.name;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getSelectedUserNames(filteredIds) {
|
getSelectedUserNames(filteredIds) {
|
||||||
const selectedUserIds = filteredIds;
|
const selectedUserIds = filteredIds;
|
||||||
const selectedUsers = this.personOptions.filter(option => selectedUserIds.includes(option.userIds));
|
const selectedUsers = this.personOptions.filter((option) =>
|
||||||
const selectedUserNames = selectedUsers.map(user => user.userName);
|
selectedUserIds.includes(option.userIds)
|
||||||
return selectedUserNames.join(', ');
|
);
|
||||||
|
const selectedUserNames = selectedUsers.map((user) => user.userName);
|
||||||
|
return selectedUserNames.join(", ");
|
||||||
},
|
},
|
||||||
|
|
||||||
getSelectedUserNameEvecTion() {
|
getSelectedUserNameEvecTion() {
|
||||||
const selectedUserIdsStr = this.form.hostUserId;
|
const selectedUserIdsStr = this.form.hostUserId;
|
||||||
// 将字符串分割成字符串数组,并将每个元素转换为整数
|
// 将字符串分割成字符串数组,并将每个元素转换为整数
|
||||||
const selectedUserIds = selectedUserIdsStr.split(',').map(id => parseInt(id.trim(), 10));
|
const selectedUserIds = selectedUserIdsStr
|
||||||
|
.split(",")
|
||||||
|
.map((id) => parseInt(id.trim(), 10));
|
||||||
|
|
||||||
const selectedUsers = this.userList.filter(option => selectedUserIds.includes(option.userId));
|
const selectedUsers = this.userList.filter((option) =>
|
||||||
|
selectedUserIds.includes(option.userId)
|
||||||
|
);
|
||||||
|
|
||||||
const selectedUserNames = selectedUsers.map(user => user.userName);
|
const selectedUserNames = selectedUsers.map((user) => user.userName);
|
||||||
|
|
||||||
return selectedUserNames.join(', ');
|
return selectedUserNames.join(", ");
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function () {
|
submitForm: function () {
|
||||||
console.log(this.form)
|
console.log(this.form);
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
var lists = this.form.orgHeadUserIdList.join(",");
|
var lists = this.form.orgHeadUserIdList.join(",");
|
||||||
var idsArray = lists.split(",")
|
var idsArray = lists.split(",");
|
||||||
console.log("idsArray",idsArray)
|
console.log("idsArray", idsArray);
|
||||||
const Ids = this.$store.state.user.id + "";
|
const Ids = this.$store.state.user.id + "";
|
||||||
const containsIds = idsArray.includes(Ids);
|
const containsIds = idsArray.includes(Ids);
|
||||||
console.log("containsIds",containsIds)
|
console.log("containsIds", containsIds);
|
||||||
var filteredIds;
|
var filteredIds;
|
||||||
if (containsIds) {
|
if (containsIds) {
|
||||||
//去掉它
|
//去掉它
|
||||||
filteredIds = idsArray.filter(id => id !== Ids);
|
filteredIds = idsArray.filter((id) => id !== Ids);
|
||||||
} else {
|
} else {
|
||||||
this.$modal.msgError("出行人需要添加申请人");
|
this.$modal.msgError("出行人需要添加申请人");
|
||||||
return;
|
return;
|
||||||
|
|
@ -778,19 +954,18 @@ export default {
|
||||||
// this.$modal.msgError("出行人需要添加申请人以外的人员。");
|
// this.$modal.msgError("出行人需要添加申请人以外的人员。");
|
||||||
// return ;
|
// return ;
|
||||||
// }
|
// }
|
||||||
console.log(filteredIds)
|
console.log(filteredIds);
|
||||||
this.form.travelers = filteredIds.join(",");
|
this.form.travelers = filteredIds.join(",");
|
||||||
console.log(this.form.travelers)
|
console.log(this.form.travelers);
|
||||||
var nameList = this.getSelectedUserNames(filteredIds);
|
var nameList = this.getSelectedUserNames(filteredIds);
|
||||||
this.form.travelersName = nameList;
|
this.form.travelersName = nameList;
|
||||||
|
|
||||||
|
|
||||||
var list = this.form.hostUserId.join(",");
|
var list = this.form.hostUserId.join(",");
|
||||||
// 将字符串分割成数组
|
// 将字符串分割成数组
|
||||||
const userIdArray = list.split(',');
|
const userIdArray = list.split(",");
|
||||||
// 检查数组中是否同时存在0和其他非0的值
|
// 检查数组中是否同时存在0和其他非0的值
|
||||||
const containsZero = userIdArray.includes('0');
|
const containsZero = userIdArray.includes("0");
|
||||||
const containsOtherValues = userIdArray.some(id => id !== '0');
|
const containsOtherValues = userIdArray.some((id) => id !== "0");
|
||||||
if (containsZero && containsOtherValues) {
|
if (containsZero && containsOtherValues) {
|
||||||
this.$modal.msgError("选择’/‘后不能在选择其他人员");
|
this.$modal.msgError("选择’/‘后不能在选择其他人员");
|
||||||
return;
|
return;
|
||||||
|
|
@ -799,16 +974,15 @@ export default {
|
||||||
var hostNameList = this.getSelectedUserNameEvecTion();
|
var hostNameList = this.getSelectedUserNameEvecTion();
|
||||||
this.form.hostUserName = hostNameList;
|
this.form.hostUserName = hostNameList;
|
||||||
|
|
||||||
|
|
||||||
if (this.form.id != undefined) {
|
if (this.form.id != undefined) {
|
||||||
this.form.examineStatus = 0
|
this.form.examineStatus = 0;
|
||||||
updateEvection(this.form).then(response => {
|
updateEvection(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
addEvection(this.form).then(response => {
|
addEvection(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -820,25 +994,29 @@ export default {
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const Ids = row.uuid;
|
const Ids = row.uuid;
|
||||||
this.$modal.confirm('是否确认删除该申请?').then(function () {
|
this.$modal
|
||||||
|
.confirm("是否确认删除该申请?")
|
||||||
|
.then(function () {
|
||||||
return delEvection(Ids);
|
return delEvection(Ids);
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {
|
})
|
||||||
});
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
exportEvection(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
|
exportEvection(this.addDateRange(this.queryParams, this.dateRange)).then(
|
||||||
|
(res) => {
|
||||||
this.downloadFile({
|
this.downloadFile({
|
||||||
fileName: `出差报备_${new Date().getTime()}.xlsx`,
|
fileName: `出差报备_${new Date().getTime()}.xlsx`,
|
||||||
fileData: res,
|
fileData: res,
|
||||||
fileType: 'application/vnd.ms-excel;charset=utf-8'
|
fileType: "application/vnd.ms-excel;charset=utf-8",
|
||||||
})
|
});
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
115
vue.config.js
115
vue.config.js
|
|
@ -1,15 +1,15 @@
|
||||||
'use strict'
|
"use strict";
|
||||||
const path = require('path')
|
const path = require("path");
|
||||||
|
|
||||||
function resolve(dir) {
|
function resolve(dir) {
|
||||||
return path.join(__dirname, dir)
|
return path.join(__dirname, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
const CompressionPlugin = require('compression-webpack-plugin')
|
const CompressionPlugin = require("compression-webpack-plugin");
|
||||||
|
|
||||||
const name = process.env.VUE_APP_TITLE || '考勤后台管理系统' // 网页标题
|
const name = process.env.VUE_APP_TITLE || "考勤后台管理系统"; // 网页标题
|
||||||
|
|
||||||
const port = process.env.port || process.env.npm_config_port || 80 // 端口
|
const port = process.env.port || process.env.npm_config_port || 80; // 端口
|
||||||
|
|
||||||
// vue.config.js 配置说明
|
// vue.config.js 配置说明
|
||||||
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
||||||
|
|
@ -20,113 +20,112 @@ module.exports = {
|
||||||
// 例如 https://www.bonus.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.bonus.vip/admin/,则设置 baseUrl 为 /admin/。
|
// 例如 https://www.bonus.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.bonus.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||||
publicPath: process.env.NODE_ENV === "production" ? "/gz-att/" : "/gz-att/",
|
publicPath: process.env.NODE_ENV === "production" ? "/gz-att/" : "/gz-att/",
|
||||||
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
||||||
outputDir: 'gz-att',
|
outputDir: "gz-att",
|
||||||
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
||||||
assetsDir: 'static',
|
assetsDir: "static",
|
||||||
// 是否开启eslint保存检测,有效值:ture | false | 'error'
|
// 是否开启eslint保存检测,有效值:ture | false | 'error'
|
||||||
lintOnSave: process.env.NODE_ENV === 'development',
|
lintOnSave: process.env.NODE_ENV === "development",
|
||||||
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
||||||
productionSourceMap: false,
|
productionSourceMap: false,
|
||||||
// webpack-dev-server 相关配置
|
// webpack-dev-server 相关配置
|
||||||
devServer: {
|
devServer: {
|
||||||
host: '0.0.0.0',
|
host: "0.0.0.0",
|
||||||
port: port,
|
port: port,
|
||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
target: `http://127.0.0.1:8100`,
|
target: `http://192.168.0.50:8100`, // 孙亮
|
||||||
// target: `http://192.168.0.14:8001`,
|
// target: `http://192.168.0.14:8001`,
|
||||||
// target: `http://192.168.2.146:8100`,
|
// target: `http://192.168.2.146:8100`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
["^" + process.env.VUE_APP_BASE_API]: "",
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
disableHostCheck: true
|
},
|
||||||
|
},
|
||||||
|
disableHostCheck: true,
|
||||||
},
|
},
|
||||||
css: {
|
css: {
|
||||||
loaderOptions: {
|
loaderOptions: {
|
||||||
sass: {
|
sass: {
|
||||||
sassOptions: { outputStyle: "expanded" }
|
sassOptions: { outputStyle: "expanded" },
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
configureWebpack: {
|
configureWebpack: {
|
||||||
name: name,
|
name: name,
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': resolve('src')
|
"@": resolve("src"),
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
// http://doc.bonus.vip/bonus-vue/other/faq.html#使用gzip解压缩静态文件
|
// http://doc.bonus.vip/bonus-vue/other/faq.html#使用gzip解压缩静态文件
|
||||||
new CompressionPlugin({
|
new CompressionPlugin({
|
||||||
cache: false, // 不启用文件缓存
|
cache: false, // 不启用文件缓存
|
||||||
test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式
|
test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式
|
||||||
filename: '[path][base].gz[query]', // 压缩后的文件名
|
filename: "[path][base].gz[query]", // 压缩后的文件名
|
||||||
algorithm: 'gzip', // 使用gzip压缩
|
algorithm: "gzip", // 使用gzip压缩
|
||||||
minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩
|
minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩
|
||||||
deleteOriginalAssets: false // 压缩后删除原文件
|
deleteOriginalAssets: false, // 压缩后删除原文件
|
||||||
})
|
}),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
chainWebpack(config) {
|
chainWebpack(config) {
|
||||||
config.plugins.delete('preload') // TODO: need test
|
config.plugins.delete("preload"); // TODO: need test
|
||||||
config.plugins.delete('prefetch') // TODO: need test
|
config.plugins.delete("prefetch"); // TODO: need test
|
||||||
|
|
||||||
// set svg-sprite-loader
|
// set svg-sprite-loader
|
||||||
|
config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
|
||||||
config.module
|
config.module
|
||||||
.rule('svg')
|
.rule("icons")
|
||||||
.exclude.add(resolve('src/assets/icons'))
|
|
||||||
.end()
|
|
||||||
config.module
|
|
||||||
.rule('icons')
|
|
||||||
.test(/\.svg$/)
|
.test(/\.svg$/)
|
||||||
.include.add(resolve('src/assets/icons'))
|
.include.add(resolve("src/assets/icons"))
|
||||||
.end()
|
.end()
|
||||||
.use('svg-sprite-loader')
|
.use("svg-sprite-loader")
|
||||||
.loader('svg-sprite-loader')
|
.loader("svg-sprite-loader")
|
||||||
.options({
|
.options({
|
||||||
symbolId: 'icon-[name]'
|
symbolId: "icon-[name]",
|
||||||
})
|
})
|
||||||
.end()
|
.end();
|
||||||
|
|
||||||
config.when(process.env.NODE_ENV !== 'development', config => {
|
config.when(process.env.NODE_ENV !== "development", (config) => {
|
||||||
config
|
config
|
||||||
.plugin('ScriptExtHtmlWebpackPlugin')
|
.plugin("ScriptExtHtmlWebpackPlugin")
|
||||||
.after('html')
|
.after("html")
|
||||||
.use('script-ext-html-webpack-plugin', [{
|
.use("script-ext-html-webpack-plugin", [
|
||||||
|
{
|
||||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||||
inline: /runtime\..*\.js$/
|
inline: /runtime\..*\.js$/,
|
||||||
}])
|
},
|
||||||
.end()
|
])
|
||||||
|
.end();
|
||||||
|
|
||||||
config.optimization.splitChunks({
|
config.optimization.splitChunks({
|
||||||
chunks: 'all',
|
chunks: "all",
|
||||||
cacheGroups: {
|
cacheGroups: {
|
||||||
libs: {
|
libs: {
|
||||||
name: 'chunk-libs',
|
name: "chunk-libs",
|
||||||
test: /[\\/]node_modules[\\/]/,
|
test: /[\\/]node_modules[\\/]/,
|
||||||
priority: 10,
|
priority: 10,
|
||||||
chunks: 'initial' // only package third parties that are initially dependent
|
chunks: "initial", // only package third parties that are initially dependent
|
||||||
},
|
},
|
||||||
elementUI: {
|
elementUI: {
|
||||||
name: 'chunk-elementUI', // split elementUI into a single package
|
name: "chunk-elementUI", // split elementUI into a single package
|
||||||
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
|
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
|
||||||
priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app
|
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
|
||||||
},
|
},
|
||||||
commons: {
|
commons: {
|
||||||
name: 'chunk-commons',
|
name: "chunk-commons",
|
||||||
test: resolve('src/components'), // can customize your rules
|
test: resolve("src/components"), // can customize your rules
|
||||||
minChunks: 3, // minimum common number
|
minChunks: 3, // minimum common number
|
||||||
priority: 5,
|
priority: 5,
|
||||||
reuseExistingChunk: true
|
reuseExistingChunk: true,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
config.optimization.runtimeChunk('single')
|
config.optimization.runtimeChunk("single");
|
||||||
})
|
});
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue