Commit 2e89dded by xuwenhao
parents 6bdb2b34 a13bec33
import request from "@/utils/request";
//查询科室预算填报项目明细列表
export function getksBudgetList(query) {
......@@ -15,4 +14,3 @@ export function depBudget(id) {
method: "get",
});
}
......@@ -47,3 +47,10 @@ export function submitApply(id) {
method: "post",
});
}
// 获取登录人信息
export function departUser() {
return request({
url: "/departmentBudget/getUserXx",
method: "get",
});
}
\ No newline at end of file
......@@ -58,3 +58,10 @@ export function getLeaderList(data) {
params: data,
});
}
// 附件上传
export function uploadList() {
return request({
url: "/common/upload",
method: "post",
});
}
\ No newline at end of file
import request from "@/utils/request";
// 查询全部礼堂预约列表
export function listAuditor(query) {
export function listAuditorqb(query) {
return request({
url: "/auditorium/list",
method: "get",
......
......@@ -10,10 +10,11 @@ export function addStudio(data) {
}
// 查看录播室列表
export function getStudio() {
export function getStudio(query) {
return request({
url: "/studio/list",
method: "get",
params: query,
});
}
......
<template>
<div class="upload-file">
<el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :limit="limit"
:on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess" :show-file-list="false"
:headers="headers" class="upload-file-uploader" ref="fileUpload">
<!-- 上传按钮 -->
<el-button size="mini" type="primary">流程单附件</el-button>
<!-- 上传提示 -->
<!-- <div class="el-upload__tip" slot="tip" v-if="showTip">
请上传
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
的文件
</div> -->
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.fjlj" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<el-link :href="`${baseUrl}${file.fjlj}`" :underline="false" target="_blank">
<!-- <span class="el-icon-document"> {{ getFileName(file.name) }} </span> -->
<span class="el-icon-document"> {{ file.fjmc }} </span>
</el-link>
<!-- <div class="ele-upload-list__item-content-action">
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div> -->
<div class="ele-upload-list__item-content-action" style="float: right">
<el-link style="margin-left: 10px;color: #1890ff" :href="`${baseUrl}${file.fjlj}`" :underline="false"
target="_blank">下载</el-link>
<el-link style="margin-left: 15px" :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
name: "FileUploadNew",
props: {
// 值
value: [String, Object, Array],
// 数量限制
limit: {
type: Number,
default: 5,
},
// 大小限制(MB)
// fileSize: {
// type: Number,
// default: 5,
// },
// 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ["doc", "xls", "ppt", "txt", "pdf"],
},
// 是否显示提示
isShowTip: {
type: Boolean,
default: true
}
},
data() {
return {
number: 0,
uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
let temp = 1;
// 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(',');
// 然后将数组转为对象数组
this.fileList = list.map(item => {
if (typeof item === "string") {
item = { fjmc: item, fjlj: item };
}
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
} else {
this.fileList = [];
return [];
}
},
deep: true,
immediate: true
}
},
computed: {
// 是否显示提示
showTip() {
return this.isShowTip && (this.fileType || this.fileSize);
},
},
methods: {
// 上传前校检格式和大小
handleBeforeUpload(file) {
// 校检文件类型
if (this.fileType) {
let fileExtension = "";
if (file.name.lastIndexOf(".") > -1) {
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
}
const isTypeOk = this.fileType.some((type) => {
if (file.type.indexOf(type) > -1) return true;
if (fileExtension && fileExtension.indexOf(type) > -1) return true;
return false;
});
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
return false;
}
}
// 校检文件大小
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
// 文件个数超出
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
this.$modal.msgError("上传图片失败,请重试");
this.$modal.closeLoading()
},
// 上传成功回调
handleUploadSuccess(res, file) {
console.log('res', res);
console.log('file', file);
if (res.code === 200) {
this.uploadList.push({ fjmc: file.response.originalFilename, fjlj: file.response.url });
this.uploadedSuccessfully();
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
// 删除文件
handleDelete(index) {
console.log('this.fileList', this.fileList);
this.fileList.splice(index, 1);
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
},
// 上传结束处理
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
this.$modal.closeLoading();
}
},
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return "";
}
},
// 对象转成指定字符串分隔
listToString(list, separator) {
let strs = "";
separator = separator || ",";
for (let i in list) {
strs += list[i].url + separator;
}
return strs != '' ? strs.substr(0, strs.length - 1) : '';
}
}
};
</script>
<style scoped lang="scss">
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-list .el-upload-list__item {
border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: space-between;
align-items: center;
color: inherit;
}
.ele-upload-list__item-content-action .el-link {
margin-right: 10px;
}
</style>
......@@ -95,7 +95,7 @@ export default [
component: () =>
import("@/views/smartSchool/indexMould/myTask/depBudgetapproval"),
name: "depBudgetapproval",
meta: { title: "科室申请请假审批" },
meta: { title: "科室预算审批" },
},
],
},
......
......@@ -20,17 +20,17 @@
<el-input :value="infoForm.activityNumber"></el-input>
</el-form-item>
<el-form-item label="是否彩排">
<el-input :value="infoForm.isRehearsal"></el-input>
<el-input :value="displayIsRehearsal" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否录像">
<el-input :value="infoForm.isRehearsal"></el-input>
<el-input :value="displayIsRecording" readonly></el-input>
</el-form-item>
<el-form-item label="是否直播">
<el-input :value="infoForm.isLive"></el-input>
<el-input :value="displayIsLive" readonly></el-input>
</el-form-item>
<el-form-item label="申请部门">
<el-input :value="infoForm.applyDept"></el-input>
......@@ -54,9 +54,9 @@
<script>
import {
getAuditor,// 查看详情
} from "@/api/smartSchool/personWork/auditoriumReservation";
import TaskResolve from "@/views/smartSchool/indexMould/myTask/audApplicationapproval/components/autaskResolve.vue"
......@@ -64,6 +64,19 @@ export default {
name: "auinfo",
dicts: ['biz_leave_type', 'course_num'],
components: { TaskResolve },
computed: {
displayIsRehearsal() {
return this.infoForm.isRehearsal === 0 ? '否' : '是';
},
displayIsRecording() {
return this.infoForm.isRehearsal === 0 ? '否' : '是';
},
displayIsLive() {
return this.infoForm.isLive === 0 ? '否' : '是';
}
},
props: {
id: {
type: [String, Number],
......@@ -117,8 +130,11 @@ export default {
/** 获取详情 */
getDetailInfo() {
getAuditor(this.id).then(res => {
this.infoForm = res.data
console.log(111,this.infoForm);
this.infoForm = res.data;
if (this.infoForm.isRehearsal == 1) {
}
console.log(111, this.infoForm);
})
},
......
......@@ -22,9 +22,21 @@
<el-table-column label="活动地点" align="center" prop="activityArea" />
<el-table-column label="负责人" align="center" prop="specificUserName" />
<el-table-column label="活动人数" align="center" prop="activityNumber" />
<el-table-column prop="isRehearsal" label="是否彩排" align="center" />
<el-table-column label="是否录像" align="center" prop="isVideo" />
<el-table-column label="是否直播" align="center" prop="isVideo" />
<el-table-column prop="isRehearsal" label="是否彩排" align="center">
<template slot-scope="{ row }">
{{ row.isRehearsal == 0 ? "否" : row.isRehearsal == 1 ? "是" : "" }}
</template>
</el-table-column>
<el-table-column label="是否录像" align="center" prop="isVideo">
<template slot-scope="{ row }">
{{ row.isVideo == 0 ? "否" : row.isVideo == 1 ? "是" : "" }}
</template>
</el-table-column>
<el-table-column label="是否直播" align="center" prop="isLive">
<template slot-scope="{ row }">
{{ row.isLive == 0 ? "否" : row.isLive == 1 ? "是" : "" }}
</template>
</el-table-column>
<el-table-column label="申请部门" align="center" prop="applyDept" />
<el-table-column label="申请人" align="center" prop="applyName" />
<el-table-column label="申请时间" align="center" prop="applyTime" />
......
......@@ -15,7 +15,7 @@
<el-form :model="queryParams" :inline="true" style="padding:0 0 0 0" size="small">
</el-form>
<el-table :data="tableData" v-loading="loading">
<el-table-column prop="year" label="年度" width="60" type="index" align="center" style="height: 20px;" />
<el-table-column prop="year" label="年度" width="60" align="center" style="height: 20px;" />
<el-table-column prop="deptName" label="科室" align="center" />
<el-table-column label="填报人" align="center" prop="informant" />
<el-table-column label="分管领导" align="center" prop="leadershipName" />
......@@ -109,6 +109,7 @@ export default {
this.loading = true;
taskDoneList().then((response) => {
this.tableData = response.rows
console.log('this.tableData', this.tableData);
this.total = response.total
this.loading = false
});
......
......@@ -63,14 +63,12 @@
<el-row style="margin-top: 15px;margin-left: 20px;">
<el-col :span="14">
<span class="uploadname" style="font-size: 16px;font-weight: bold;">填报人:
<!-- <img v-if="jlqztp" :src="jlqztp">
<span v-else>{{ jlmc }}</span> -->
{{ form.informant }}
</span>
</el-col>
<el-col :span="10">
<span class="uploadname" style="font-size: 16px;font-weight: bold;">分管领导:
<!-- <img v-if="sjqztp" :src="sjqztp">
<span v-else>{{ sjmc }}</span> -->
{{ form.leadershipName }}
</span>
</el-col>
</el-row>
......@@ -198,8 +196,10 @@ export default {
this.lookTable = response.data.schoolDepartmentBudgetProjectmxList;
this.form.year = response.data.year;
this.form.deptName = response.data.deptName;
this.form.informant = response.data.informant;
this.form.leadershipName = response.data.leadershipName;
console.log(this.form.year, this.form.deptName);
console.log(response.data);
console.log(11110, response.data);
this.openLook = true;
this.$modal.closeLoading();
......
......@@ -13,8 +13,8 @@
<el-form-item prop="deptName">
<el-input v-model="queryForm.deptName" placeholder="科室" clearable> </el-input>
</el-form-item>
<el-form-item prop="isGov">
<el-select v-model="queryForm.isGov" placeholder="是否政府采购" style="width: 100%">
<el-form-item prop="isGovernmentPurchase">
<el-select v-model="queryForm.isGovernmentPurchase" placeholder="是否政府采购" style="width: 100%">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
......
......@@ -12,6 +12,7 @@
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增 </el-button>
</el-form-item>
</el-form>
<!-- 表格数据 -->
<el-table v-loading="loading" :row-style="{ height: '35px' }" :cell-style="{ padding: '0' }" :data="budgetList"
style="font-size: 14px" stripe>
<el-table-column label="年度" prop="year" align="center" />
......@@ -181,6 +182,7 @@ import {
getdeBudgetList,//查看本单位预算填报列表;
deleteDepart,// 删除预算填报
submitApply,//提交
departUser,//获取当前登录人
} from '@/api/smartSchool/officialWork/budgetFilling'
import {
getLeaderList,//获取校领导下拉框
......@@ -191,6 +193,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getToken } from "@/utils/auth";
import { MessageBox } from "element-ui";
import SelectUser from "./components/SelectUser";
import moment from 'moment';
export default {
name: "budgetFilling",
......@@ -467,16 +470,21 @@ export default {
// 编辑按钮
handleUpdate(row) {
this.open = true;
console.log('row.id', row.id);
queryDepart(row.id).then(response => {
console.log(11122, response.data);
this.postForm.id = response.data.id
this.xzTable = response.data.schoolDepartmentBudgetProjectmxList;
this.postForm.informant = this.$store.state.user.name;
this.postForm.informant = response.data.informant;
this.postForm.year = response.data.year;
this.postForm.deptName = response.data.deptName;
this.postForm.projectName = this.xzTable[0].projectName;
this.postForm.content = this.xzTable[0].content;
this.postForm.projectExpenditures = this.xzTable[0].projectExpenditures;
this.postForm.isGovernmentPurchase = this.xzTable[0].isGovernmentPurchas;
this.open = true;
this.postForm.handUserName2 = response.data.leadershipName;
this.postForm.handUserName2 = response.data.leadershipName;
// this.postForm.projectName = tresponse.data.schoolDepartmentBudgetProjectmxList.projectName;
// this.postForm.content = response.data.schoolDepartmentBudgetProjectmxList.content;
// this.postForm.projectExpenditures = response.data.schoolDepartmentBudgetProjectmxList.projectExpenditures;
// this.postForm.isGovernmentPurchase = response.data.schoolDepartmentBudgetProjectmxList.isGovernmentPurchas;
this.$modal.closeLoading();
}).catch(err => {
......@@ -513,6 +521,7 @@ export default {
this.lookTable = response.data.schoolDepartmentBudgetProjectmxList;
console.log(111, this.lookTable);
this.postForm.informant = this.$store.state.user.name;
console.log(222, this.$store.state.user);
this.postForm.leadershipName = response.data.leadershipName;
this.postForm.year = response.data.year;
this.postForm.deptName = response.data.deptName;
......@@ -534,6 +543,20 @@ export default {
applyMoney: "",
remark: "",
}];
departUser().then(response => {
this.postForm.informant = response.data.userName;
this.postForm.deptName = response.data.deptName;
console.log(111, response.data);
this.postForm.year = moment().add(1, 'years').format('YYYY');
if (response.hasOwnProperty('total') && typeof response.total === 'number' && !isNaN(response.total)) {
this.total = response.total;
} else {
this.total = 0;
}
})
this.open = true;
this.postForm.informant = this.$store.state.user.name;
this.title = '新增预算批复信息'
......@@ -563,18 +586,12 @@ export default {
if (valid) {
this.$modal.loading('正在上传数据,请稍等...');
if (this.xzTable[0].id != null) {
const newObj = {};
newObj.leadershipName = this.postForm.handUserName2;
newObj.leadershipId = this.postForm.leadershipId;
newObj.xzTable = this.schoolDepartmentBudgetProjectmxList;
newObj.year = this.postForm.year;
newObj.deptName = this.postForm.deptName;
newObj.projectName = this.xzTable[0].projectName;
newObj.content = this.xzTable[0].content;
newObj.projectExpenditures = this.xzTable[0].projectExpenditures;
newObj.isGovernmentPurchase = this.xzTable[0].isGovernmentPurchas;
newObj.applyMoney = this.xzTable[0].applyMoney;
newObj.remark = this.xzTable[0].remark;
const newObj = {
id: this.postForm.id,
year: this.postForm.year,
leadershipId: this.postForm.leadershipId,
schoolDepartmentBudgetProjectmxList: this.xzTable
};
console.log('newObj', newObj)
// 编辑
editdeBudget(newObj).then(response => {
......@@ -586,20 +603,58 @@ export default {
this.$modal.closeLoading();
});
} else {
// 新增
const newObj = {};
newObj.leadershipName = this.postForm.handUserName2;
newObj.leadershipId = this.postForm.leadershipId;
newObj.xzTable = this.schoolDepartmentBudgetProjectmxList;
newObj.year = this.postForm.year;
newObj.deptName = this.postForm.deptName;
newObj.projectName = this.xzTable[0].projectName;
newObj.content = this.xzTable[0].content;
newObj.projectExpenditures = this.xzTable[0].projectExpenditures;
newObj.isGovernmentPurchase = this.xzTable[0].isGovernmentPurchas;
newObj.applyMoney = this.xzTable[0].applyMoney;
newObj.remark = this.xzTable[0].remark;
console.log('newObj', newObj)
// let fromData = {
// year: "",
// leadershipId: "",
// };
// fromData.schoolDepartmentBudgetProjectmxList = [];
// this.bzjData.forEach((element) => {
// fromData.schoolDepartmentBudgetProjectmxList.push(element.obj);
// });
// fromData.earthTaskXIdList = this.earthTaskXIdList;
// fromData.rwrq = self.form.rwrq;
// fromData.rwlx = self.form.rwlx;
// fromData.xmid = self.form.xmid;
// fromData.jfjg = self.form.jfjg;
// 新增
// const newObj = {};
// newObj.leadershipName = this.postForm.handUserName2;
// newObj.leadershipId = this.postForm.leadershipId;
// newObj.xzTable = this.schoolDepartmentBudgetProjectmxList;
// newObj.year = this.postForm.year;
// newObj.deptName = this.postForm.deptName;
// console.log('newObj.deptName', newObj.deptName);
// newObj.projectName = this.xzTable[0].projectName;
// newObj.content = this.xzTable[0].content;
// newObj.projectExpenditures = this.xzTable[0].projectExpenditures;
// newObj.isGovernmentPurchase = this.xzTable[0].isGovernmentPurchas;
// newObj.applyMoney = this.xzTable[0].applyMoney;
// newObj.remark = this.xzTable[0].remark;
// console.log('newObj', newObj)
const newObj = {
year: this.postForm.year,
leadershipId: this.postForm.leadershipId,
schoolDepartmentBudgetProjectmxList: this.xzTable
};
console.log('xzTable', this.xzTable);
console.log('newObj', newObj);
// if (Array.isArray(this.schoolDepartmentBudgetProjectmxList) && this.schoolDepartmentBudgetProjectmxList.length > 0) {
// for (let i = 0; i < this.schoolDepartmentBudgetProjectmxList.length; i++) {
// let project = {};
// project.projectName = this.schoolDepartmentBudgetProjectmxList[i].projectName;
// project.content = this.schoolDepartmentBudgetProjectmxList[i].content;
// project.projectExpenditures = this.schoolDepartmentBudgetProjectmxList[i].projectExpenditures;
// project.isGovernmentPurchase = this.schoolDepartmentBudgetProjectmxList[i].isGovernmentPurchase;
// project.applyMoney = this.schoolDepartmentBudgetProjectmxList[i].applyMoney;
// project.remark = this.schoolDepartmentBudgetProjectmxList[i].remark;
// newObj.xzTable.push(project);
// }
// }
console.log('newObj', newObj);
adddeBudget(newObj).then(response => {
this.$modal.closeLoading();
console.log(this);
......@@ -609,6 +664,8 @@ export default {
}).catch(err => {
this.$modal.closeLoading();
});
}
}
});
......
......@@ -5,9 +5,10 @@
<el-input v-model="queryForm.activityName" @keyup.enter.native="handleQuery" placeholder="活动名称"></el-input>
</el-form-item>
<el-form-item>
<el-date-picker v-model="queryForm.sj" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeData(queryForm.sj)">
<el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeData(dateRange)">
</el-date-picker>
<!-- @change="changeData(queryForm.sj) -->
<span v-if="diffDate !== ''" style="font-size: 14px">({{ diffDate }})天</span>
</el-form-item>
<el-form-item>
......@@ -18,8 +19,8 @@
</el-form>
<!-- 表格信息 -->
<el-table stripe ref="applyTable" v-loading="loading" :data="infoList" :cell-style="cellStyle">
<el-table-column type="index" label="序号" width="55" align="center"></el-table-column>
<el-table-column label="活动名称" align="center" prop="activityName" />
<el-table-column type="index" label="序号" width="55" align="center" fixed="left"></el-table-column>
<el-table-column label="活动名称" align="center" prop="activityName" width="100px" fixed="left" />
<el-table-column label="活动地点" align="center" width="120px" prop="activityArea" />
<el-table-column label="负责人" align="center" prop="specificUserName" />
<el-table-column label="活动人数" align="center" prop="activityNumber" />
......@@ -47,7 +48,7 @@
</template>
</el-table-column>
<el-table-column label="申请人" align="center" prop="applyName" />
<el-table-column label="申请时间" align="center" prop="applyTime" />
<el-table-column label="申请时间" width="200px" align="center" prop="applyTime" />
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope">
<div v-if="scope.row.state === '0'">
......@@ -94,7 +95,7 @@
<el-col :span="8">
<el-form-item label="活动时间" prop="activityTime" style="width: 276.66px">
<el-date-picker v-model="postForm.activityTime" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择日期">
value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择日期" :picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -157,20 +158,29 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分管领导" prop="handUserName2">
<el-input :value="postForm.handUserName2" placeholder="请选择分管领导"
<el-form-item label="分管领导" prop="leadershipName">
<el-input :value="postForm.leadershipName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="流程单附件" prop="fjmc">
<el-input v-model="postForm.fjmc" placeholder="请输入">
<!-- <template slot-scope="scope">
<p v-for="item in scope.row.dzbFjList" :key="item.id">{{ item.fjmc }}</p>
</template> -->
</el-input>
<el-form-item label="流程单附件" prop="url">
<!-- <el-upload class="upload-demo" ref="upload" action="#" :auto-upload="true"
:before-upload="beforeUpload" :on-change="fileChange" :http-request="uploadFile"
:on-remove="handleRemoveFile" :file-list="fileList">
<el-input slot="trigger" size="small" type="primary">选取文件
</el-input>
</el-upload> -->
<FileUploadNew @input="getFileList" :limit="1" :value="fileList"></FileUploadNew>
<!--
limit:number 附件最大数量
fileSize:number 附件大小限制(mb)
fileType:array 附件类型
:value="附件List" 编辑、查看时向子组件传递的附件list(value在子组件props中定义)
@input="接收方法" 子组件向父组件传参的方法(input在子组件中引用用于数据回传)
-->
</el-form-item>
</el-col>
</el-row>
......@@ -217,31 +227,43 @@
</tr>
<tr>
<td>是否彩排</td>
<td class="btntext">{{ isRehearsal }}</td>
<td class="btntext"> {{
isRehearsal === '1' ? '是' : '否' }} </td>
<td>是否录像</td>
<td class="btntext">{{ isVideo }}</td>
<td class="btntext">{{ isVideo === '1' ? '是' : '否' }}</td>
<td style="width: 100px">是否直播</td>
<td class="btntext">{{ isLive }}</td>
<td class="btntext">{{ isLive === '1' ? '是' : '否' }}</td>
</tr>
<tr>
<td>话筒数量</td>
<td>{{ htNumber }}</td>
<td>是否需要大屏</td>
<td class="btntext" colspan="5">{{ isBigScreen }}</td>
<td class="btntext" colspan="5">{{ isBigScreen === '1' ? '是' : '否' }}</td>
</tr>
<tr>
<td rowspan="2" class="btntxt">附件
<template slot-scope="scope">
<p v-for="item in scope.row.dzbFjList" :key="item.id">
<el-link type="primary" :href="item.fjlj" :underline="false" target="_blank">{{
item.fjmc
}}</el-link>
</p>
</template>
</td>
<td colspan="7">{{ fjmc }}</td>
<td rowspan="2" class="btntxt">附件</td>
<td colspan="6">
<!-- <p v-for="(item, index) in fileList" :key="index">
<el-link :underline="false" :href="item.fjlj" type="primary" target="_blank">
{{ item.fjmc }}
</el-link>
</p> -->
<p>
<el-link :underline="false" :href="postForm.fjlj" type="primary" target="_blank">
{{ postForm.fjmc }}
</el-link>
<!-- <el-button type="primary" size="mini" @click="downloadFile(postForm.fjlj)">
下载
</el-button> -->
</p>
</td>
</tr>
</table>
<el-row style="margin-top: 15px; margin-left: 20px">
<el-col :span="8">
......@@ -256,7 +278,7 @@
</el-col>
<el-col :span="8">
<span class="uploadname" style="font-size: 16px; font-weight: bold">学校分管领导:
{{ leadershipName }}
{{ leadershipName }}&nbsp; {{ displayState }}
</span>
</el-col>
</el-row>
......@@ -287,27 +309,40 @@ import {
delAuditor, // 删除礼堂预约
submitAuditor,//提交礼堂预约申请
getLeaderList,//获取校领导下拉框
uploadList,//文件上传
} from "@/api/smartSchool/personWork/auditoriumReservation";
import { CustomCellStyle } from "@/enums/customStyle";
import { commonUpload } from "@/api/common";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { SubmitState } from "@/enums/apply";
import SelectUser from "./components/SelectUser";
import moment from 'moment'
import FileUploadNew from '@/components/FileUploadNew';
import { downLoadFile } from "@/utils/utilLibrary/downloadFile";
import 'moment/locale/zh-cn';
export default {
name: "auditoriumReservation",
components: {
SelectUser
SelectUser,
FileUploadNew
},
data() {
return {
stateTexts: ['未提交', '审核中', '审核通过', '审核不通过'],
// 上传
upload: {
isUploading: false,
progress: 0,
hasFile: false,
},
// 天数
diffDate: "",
title: '', // 初始化 "title" 属性
week: "", // 选择的天数
dateRange: [], // 用于存储选定的时间段
// 日期范围
dateRange: [],
// 提交状态
state: "",
// 自定义列表单元格样式
......@@ -336,6 +371,8 @@ export default {
htNumber: "",
// 附件名称
fjmc: "",
// 附件路径
fjlj: "",
// 申请人
applyName: "",
//申请部门
......@@ -351,7 +388,7 @@ export default {
// 查询表单
queryForm: {
activityName: "",
dateRange: [null, null], // 选择的开始日期和结束日期
dateRange: [], // 选择的开始日期和结束日期
pageNum: 1,
pageSize: 10,
sj: ''
......@@ -396,9 +433,17 @@ export default {
isBigScreen: "",
htNumber: "",
fjmc: "",
fjlj: "",
leadershipId: "",
},
pickerOptions: {
disabledDate(time) {
const today = moment().startOf('day');
return moment(time).isBefore(today);
}
},
// 分管领导id
leadershipId: '',
// 审批人
......@@ -406,6 +451,8 @@ export default {
open: false,
title: '选择审批人'
},
// 文件回显
fileList: [],
// 选择对应处理人
selectHandles: {
id: null,
......@@ -424,21 +471,135 @@ export default {
// 是否禁用输入框
isDisabled: false,
// // 表单校验
rules: {},
rules: {
activityName: [
{ required: true, message: "活动名称不能为空", trigger: "blur" }
],
activityArea: [
{ required: true, message: "活动场地不能为空", trigger: "blur" }
],
specificUserName: [
{ required: true, message: "具体负责人不能为空", trigger: "blur" }
],
activityNumber: [
{ required: true, message: "活动人数不能为空", trigger: "blur" }
],
activityTime: [
{ required: true, message: "活动不能为空", trigger: "blur" }
],
duration: [
{ required: true, message: "预计时长不能为空", trigger: "blur" }
],
isRehearsal: [
{ required: true, message: "是否彩排不能为空", trigger: "blur" }
],
isVideo: [
{ required: true, message: "是否录像不能为空", trigger: "blur" }
],
isLive: [
{ required: true, message: "是否直播为空", trigger: "blur" }
],
isBigScreen: [
{ required: true, message: "是否需要大屏不能为空", trigger: "blur" }
],
// leadershipName: [
// { required: true, message: "分管领导不能为空", trigger: "change" }
// ],
fjmc: [
{ required: true, message: "流程单附件不能为空", trigger: "blur" }
],
},
// 列表信息
columns: [],
};
},
computed: {
displayState() {
return this.stateTexts[this.state] || '';
}
},
created() {
this.getList();
},
methods: {
downloadFile(url) {
// 在这里编写下载文件的逻辑,可以使用浏览器的下载功能或者自定义的下载方法
window.open(url, "_blank");
},
// changeData(dateRange) {
// if (Array.isArray(dateRange) && dateRange.length === 2) {
// this.queryForm.sj = dateRange; // 更新日期范围选择器的值
// this.queryForm.startTime = dateRange[0]; // 更新开始日期
// this.queryForm.endTime = dateRange[1]; // 更新结束日期
// // 调用后端接口或其他相关处理
// // this.getList();
// }
// },
getDisplayState(state) {
switch (state) {
case 0:
return '未提交';
case 1:
return '审核中';
case 2:
return '审核通过';
case 3:
return '审核不通过';
default:
return '';
}
},
handleUploadClick() {
// 触发文件上传的点击事件
this.$refs.upload.$el.querySelector('.el-upload__input').click();
},
//上传按钮
getFileList(data) {
console.log('data', data);
this.fileList = data;
if (this.fileList.length != 0) {
this.postForm.fjlj = data[0].fjlj;
this.postForm.fjmc = data[0].fjmc;
console.log('this.postForm', this.postForm);
} else {
this.postForm.fjlj = '';
this.postForm.fjmc = '';
}
},
/** 获取列表数据 */
getList() {
listAuditor(this.queryForm).then(response => {
const params = {
activityName: this.queryForm.activityName,
pageNum: this.queryForm.pageNum,
pageSize: this.queryForm.pageSize,
startTime: this.dateRange[0],
endTime: this.dateRange[1]
};
console.log('params', params);
listAuditor(params).then(response => {
this.loading = false;
this.infoList = response.rows;
console.log(111, response.rows);
......@@ -496,9 +657,9 @@ export default {
}))
},
handleDeputyLeader(data) {
const { handUserName2, handUserId2 } = data;
this.form.handUserName2 = handUserName2;
this.form.handUserId2 = handUserId2;
const { leadershipName, leadershipId } = data;
this.form.leadershipName = leadershipName;
this.form.leadershipId = leadershipId;
},
/** 查看 */
......@@ -524,22 +685,28 @@ export default {
this.applyName = response.data.applyName;
this.applyDept = response.data.applyDept;
this.leadershipName = response.data.leadershipName;
this.fjmc = response.data.fjmc;
console.log(response.data.state);
this.postForm.fjmc = response.data.fjmc; // 将 fjmc 存储在 postForm 中
this.postForm.fjlj = response.data.fjlj; // 将 fjlj 存储在 postForm 中
console.log('this.fjmc', this.fjmc);
this.state = response.data.state;
this.loading = false;
this.look = true;
});
},
// 计算天数
// 计算天数
changeData(value) {
const startDate = value[0];
const endDate = value[1];
const diffDate = moment(endDate).diff(startDate, 'day');
this.diffDate = diffDate; // 更新diffDate属性的值
console.log('value', value);
console.log('this.diffDate', this.diffDate);
},
// 提交按钮
submitApply(row) {
console.log('row', row);
this.$confirm('确认要提交申请?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
......@@ -576,24 +743,25 @@ export default {
// 重置按钮
resetQuery() {
const state = this.queryForm.state;
this.dateRange = []; // 重置日期选择器
this.diffDate = ''; // 重置 diffDate 为默认值
this.queryForm = {
state: state,
pageNum: 1,
pageSize: 10,
};
this.dateRange = [];
this.week = "";
this.handleQuery(); // 重新发一次请求
},
getFormatDate(timeDate) {
let date = new Date(timeDate);
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
return [year, '-', month, '-', day].join('');
},
// getFormatDate(timeDate) {
// let date = new Date(timeDate);
// let year = date.getFullYear();
// let month = date.getMonth() + 1;
// let day = date.getDate();
// return [year, '-', month, '-', day].join('');
// },
......@@ -619,7 +787,7 @@ export default {
// 这种写法存在一定危险,后续最好是可以有更好的字段名对应
this.$set(this.form, `handUserName${this.selectHandles.type}`, select.name);
this.$set(this.form, `handUserId${this.selectHandles.type}`, select.id);
this.postForm.handUserName2 = select.name;
this.postForm.leadershipName = select.name;
this.postForm.leadershipId = select.id;
},
......@@ -628,11 +796,11 @@ export default {
// 新增按钮操作
handleAdd() {
this.reset();
// const userId = this.$store.state.user.userId;
this.postForm.activityArea = "博远礼堂";
// this.postForm.specificUserName = this.$store.state.user.name;
this.postForm.fjlj = '';
this.postForm.fjmc = '';
this.isShow = true;
this.isDisabled = false;
this.open = true;
......@@ -644,12 +812,27 @@ export default {
this.reset();
const id = row.id || this.ids;
this.postForm = row;
console.log('this.fileList', this.fileList);
getAuditor(id).then(response => {
this.postForm = response.data;
this.postForm.handUserName2 = response.data.leadershipName
console.log('this.fileList', this.fileList)
if (this.postForm.fjlj == '' || this.postForm.fjlj == undefined || this.postForm.fjlj == null) {
this.fileList = []
} else {
this.fileList = [{
fjlj: this.postForm.fjlj,
fjmc: this.postForm.fjmc,
}]
}
console.log('postForm', this.postForm);
this.postForm.leadershipName = response.data.leadershipName
console.log(1111, response.data);
this.open = true;
this.isDisabled = false;
});
},
// 删除按钮操作
......@@ -682,32 +865,44 @@ export default {
this.throttle(() => {
this.$refs["postForm"].validate((valid) => {
if (valid) {
this.$modal.loading("正在上传数据,请稍等...");
console.log('this.postForm', this.postForm);
// this.$modal.loading("正在上传数据,请稍等...");
if (this.postForm.id != null) {
// 查看表单
updateAuditor(this.postForm)
.then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.catch((err) => {
this.$modal.closeLoading();
});
if (this.fileList.length != 0) {
// 查看表单
updateAuditor(this.postForm)
.then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.catch((err) => {
this.$modal.closeLoading();
});
} else {
this.$modal.msgError("流程单附件不能为空");
}
} else {
if (this.fileList.length != 0) {
console.log('this.postForm', this.postForm);
addAuditor(this.postForm)
.then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.catch((err) => {
this.$modal.closeLoading();
});
} else {
this.$modal.msgError("流程单附件不能为空");
}
// 新增
console.log('this.postForm', this.postForm);
addAuditor(this.postForm)
.then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.catch((err) => {
this.$modal.closeLoading();
});
}
}
});
......@@ -720,7 +915,7 @@ export default {
// this.resetQuery();
this.reset();
},
// 重置
reset() {
// 这里需要重置对话框表单
this.postForm = {
......@@ -735,14 +930,87 @@ export default {
isLive: "",
isBigScreen: "",
htNumber: "",
fjmc: "",
// fjmc: null,
// fjlj: null,
leadershipId: "",
pageNum: 1,
pageSize: 10,
leadershipName: ""
};
this.resetForm("postForm");
},
/** 下载 */
handleDownLoad({ url, name, id }) {
if (isString(url) && url.lastIndexOf("/") > -1) {
// this.$download.name(url.slice(url.lastIndexOf("/") + 1), false);
// this.download(url, {});
// downLoadFile(url, name);
updateDownload(id).then(response => {
this.$download.resource(url);
this.getList();
}).catch(error => {
})
} else {
return "";
}
},
/** 上传文件前的钩子 */
beforeUpload() {
this.upload.isUploading = false;
this.upload.progress = 0;
},
/** 添加的文件时触发该钩子 */
fileChange(file, fileList) {
fileList.length > 0 && (this.upload.hasFile = true);
this.$refs.upload.uploadFiles = [file];
},
/** 上传文件到服务器 */
submitFile() {
this.$refs.upload.submit();
},
/** 删除文件 */
handleRemoveFile(file, fileList) {
fileList.length === 0 && (this.upload.hasFile = false);
},
/** 文件上传 */
// uploadFile(file, fileList) {
// const fileData = file.file;
// const fileName = fileData.name;
// const formData = new FormData();
// formData.append("file", fileData);
// this.upload.isUploading = true;
// uploadList(formData).then(response => {
// this.$message.success("上传成功");
// this.form.url = response.url;
// this.form.name = fileName;
// this.upload.isUploading = false;
// }).catch(error => {
// // 处理上传失败的情况
// });
// },
// 附件上传回调函数
uploadFile(data) {
console.log('getFileList', data)
// this.form.files = data
uploadList().then(response => {
return {
"fjlj": item.url,
"fjmc": item.name
}
})
console.log('dzbFjList', this.dzbFjList)
},
/** 文件下载 */
// downloadFile(fileUrl) {
// },
},
};
</script>
......
......@@ -154,6 +154,7 @@ export default {
},
/** 选项选中发生变化 */
selectionChange(selections) {
console.log('seselections', selections);
this.selectUser = selections[0];
},
/** 点击选中、取消 */
......
......@@ -9,7 +9,7 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-show="activeName === SubmitState.WILL_SUBMIT">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:leave:add']">新增
v-hasPermi="['system:leave:add']">新增
</el-button>
</el-col>
<el-col :span="1.5">
......@@ -18,12 +18,12 @@
</el-col>
<el-col :span="1.5" v-show="activeName === SubmitState.WILL_SUBMIT">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:leave:edit']">修改
v-hasPermi="['system:leave:edit']">修改
</el-button>
</el-col>
<el-col :span="1.5" v-show="activeName === SubmitState.WILL_SUBMIT">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:leave:remove']">删除
v-hasPermi="['system:leave:remove']">删除
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
......@@ -34,38 +34,38 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="teacherLeaveList" @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="流程实例ID" prop="instanceId" min-width="100" key="instanceId"
v-if="activeName === SubmitState.HAS_SUBMIT" align="center"></el-table-column>
v-if="activeName === SubmitState.HAS_SUBMIT" align="center"></el-table-column>
<el-table-column label="教师名称" key="teacherName" v-if="columns[0].visible" align="center" prop="teacherName"
show-overflow-tooltip/>
show-overflow-tooltip />
<el-table-column label="标题" key="title" v-if="columns[1].visible" align="center" min-width="250" prop="title"
show-overflow-tooltip/>
show-overflow-tooltip />
<el-table-column label="请假类型" key="type" min-width="100" v-if="columns[7].visible" align="center" prop="type">
<template slot-scope="scope">
<dict-tag :options="dict.type.biz_leave_type" :value="scope.row.type"></dict-tag>
</template>
</el-table-column>
<el-table-column label="请假开始时间" key="startTime" v-if="columns[3].visible" min-width="125" align="center"
prop="startTime">
prop="startTime">
<template slot-scope="scope">
<span v-if="scope.row.applyType == 0">{{
parseTime(scope.row.startTime, "{y}-{m}-{d}")
}} {{ scope.row.startSort }}节课</span>
parseTime(scope.row.startTime, "{y}-{m}-{d}")
}} {{ scope.row.startSort }}节课</span>
<span v-else>{{ parseTime(scope.row.startTime, "{y}-{m}-{d}-{h}:{m}:{s}") }}</span>
</template>
</el-table-column>
<el-table-column label="请假结束时间" key="endTime" v-if="columns[4].visible" min-width="125" align="center"
prop="endTime">
prop="endTime">
<template slot-scope="scope">
<span v-if="scope.row.applyType == 0">{{
parseTime(scope.row.endTime, "{y}-{m}-{d}")
}} {{ scope.row.endSort }}节课</span>
parseTime(scope.row.endTime, "{y}-{m}-{d}")
}} {{ scope.row.endSort }}节课</span>
<span v-else>{{ parseTime(scope.row.endTime, "{y}-{m}-{d}-{h}:{m}:{s}") }}</span>
</template>
</el-table-column>
<el-table-column label="申请人" key="applyUser" align="center" prop="applyUser"
v-if="columns[8].visible && activeName === SubmitState.HAS_SUBMIT">
v-if="columns[8].visible && activeName === SubmitState.HAS_SUBMIT">
</el-table-column>
<el-table-column label="当前任务名称" key="taskName" prop="taskName" min-width="140" align="center">
<template slot-scope="scope">
......@@ -73,20 +73,20 @@
</template>
</el-table-column>
<el-table-column label="操作" v-if="columns[9].visible" align="center" class-name="small-padding fixed-width"
min-width="180" key="operate">
min-width="180" key="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-s-promotion"
@click="submitApply(scope.row)" v-hasPermi="['system:teacherLeave:edit']">提交申请
@click="submitApply(scope.row)" v-hasPermi="['system:teacherLeave:edit']">提交申请
</el-button>
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['system:teacherLeave:edit']">修改
@click="handleUpdate(scope.row)" v-hasPermi="['system:teacherLeave:edit']">修改
</el-button>
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['system:teacherLeave:remove']">删除
@click="handleDelete(scope.row)" v-hasPermi="['system:teacherLeave:remove']">删除
</el-button>
<el-button v-if="scope.row.instanceId != null" size="mini" type="text" icon="el-icon-search"
@click="handleDetailAwait(scope.row)" v-hasPermi="['system:teacherOvertime:edit']">查看
@click="handleDetailAwait(scope.row)" v-hasPermi="['system:teacherOvertime:edit']">查看
</el-button>
</template>
......@@ -94,27 +94,26 @@
</el-table>
<ExPagination v-show="total > 0" :total="total" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNum"
@pagination="getList"></ExPagination>
@pagination="getList"></ExPagination>
<!-- 添加或修改教师请假信息对话框 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogTeacherLeave" width="1000px" append-to-body>
<el-form ref="form" :model="form" :disabled="isEdit" :rules="rules" label-width="110px"
style="width: 100%; margin: auto">
style="width: 100%; margin: auto">
<el-form-item label="标题" prop="title">
<el-input :value="title" placeholder="请输入标题"/>
<el-input :value="title" placeholder="请输入标题" />
</el-form-item>
<el-row>
<el-col :span="11">
<el-form-item label="姓名" prop="teacherName">
<el-input :value="form.teacherName" placeholder="请输入教师名称"/>
<el-input :value="form.teacherName" placeholder="请输入教师名称" />
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
<el-form-item label="级部/处室" prop="applyOrgid">
<template v-if="!isEdit">
<Treeselect v-model="form.applyOrgid" :options="gradeOfficeList" :disable-branch-nodes="true"
:searchable="true" :show-count="true"
:clearable="false" @select="deptIdAndName" placeholder="请选择归属部门"
style="width:224px"/>
:searchable="true" :show-count="true" :clearable="false" @select="deptIdAndName" placeholder="请选择归属部门"
style="width:224px" />
</template>
<template v-else>
<el-input :value="form.applyOrgname"></el-input>
......@@ -126,9 +125,8 @@
<el-col :span="11">
<el-form-item label="请假开始时间" prop="startTime">
<el-date-picker @change="leaveTime" style="width: 100%" v-model="form.startTime" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptionsStart"
placeholder="选择开始时间">
value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptionsStart"
placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -136,8 +134,7 @@
<el-col :offset="2" :span="11">
<el-form-item label="请假结束时间" prop="endTime">
<el-date-picker @change="leaveTime" style="width: 100%" v-model="form.endTime" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptionsEnd"
placeholder="选择结束时间">
value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptionsEnd" placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -147,28 +144,28 @@
<el-col :span="7">
<el-form-item label="请假开始时间" prop="startTime">
<el-date-picker v-model="form.startTime" type="date" style="width: 100%" value-format="yyyy-MM-dd"
@change="leaveTime" :picker-options="pickerOptionsStart" placeholder="日期">
@change="leaveTime" :picker-options="pickerOptionsStart" placeholder="日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-select v-model="form.startSort" @change="leaveTime" style="width: 100%" placeholder="课程节次">
<el-option v-for="dict in dict.type.course_arrange" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-col>
<el-col :offset="2" :span="7">
<el-form-item label="请假结束时间" prop="endTime">
<el-date-picker type="date" v-model="form.endTime" value-format="yyyy-MM-dd" @change="leaveTime"
style="width: 100%" :picker-options="pickerOptionsEnd" placeholder="日期">
style="width: 100%" :picker-options="pickerOptionsEnd" placeholder="日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-select v-model="form.endSort" @change="leaveTime" style="width: 100%" placeholder="课程节次">
<el-option v-for="dict in dict.type.course_arrange" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-col>
......@@ -185,7 +182,7 @@
<el-row v-else>
<el-col :span="11">
<el-form-item label="请假时间" prop="dayCourse">
<el-input :value="form.dayCourse" placeholder="请假时间"/>
<el-input :value="form.dayCourse" placeholder="请假时间" />
</el-form-item>
</el-col>
</el-row>
......@@ -194,7 +191,7 @@
<el-form-item label="请假类型" prop="type">
<el-select v-model="form.type" style="width: 100%" placeholder="请选择请假类型">
<el-option v-for="dict in dict.type.biz_leave_type" :key="dict.value" :label="dict.label"
:value="dict.value">
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -202,7 +199,7 @@
<el-col :offset="2" :span="11">
<el-form-item label="级部/处室主任" prop="handUserName1">
<el-input :value="form.handUserName1" placeholder="请先选择级部/处室"
@focus="openSelect('选择级部/处室主任', 'gradeOfficeDirector', 1)"></el-input>
@focus="openSelect('选择级部/处室主任', 'gradeOfficeDirector', 1)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -210,20 +207,20 @@
<el-col :span="11">
<el-form-item label="分管领导" prop="handUserName2" v-if="form.totalTime > 0.5">
<el-input :value="form.handUserName2" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
<el-form-item label="主要领导" prop="handUserName3" v-if="form.totalTime > 2">
<el-input :value="form.handUserName3" placeholder="请选择主要领导"
@focus="openSelect('选择主要领导', 'leaderList', 3)"></el-input>
@focus="openSelect('选择主要领导', 'leaderList', 3)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="请假事由" prop="reasonForLeave">
<el-input type="textarea" placeholder="请输入请假事由" resize="none" :autosize="{ minRows: 5 }"
v-model="form.reasonForLeave"/>
v-model="form.reasonForLeave" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -241,14 +238,14 @@
<el-descriptions-item label="请假结束时间">{{ form.endTime }}</el-descriptions-item>
<!-- <el-descriptions-item label="请假类型">{{ form.type }}</el-descriptions-item>-->
<el-descriptions-item label="请假类型">
<dict-tag :options="dict.type.biz_leave_type" :value="form.type"/>
<dict-tag :options="dict.type.biz_leave_type" :value="form.type" />
</el-descriptions-item>
</el-descriptions>
</el-card>
<br/>
<br />
<el-card>
<el-descriptions title="请假原因"/>
<span v-html="form.reasonForLeave"/>
<el-descriptions title="请假原因" />
<span v-html="form.reasonForLeave" />
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="progress.open = false"> </el-button>
......@@ -260,7 +257,7 @@
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
......@@ -273,10 +270,10 @@ import {
listHistory,
submitApply,
} from "@/api/smartSchool/personWork/leaveApply";
import {SubmitState} from "@/enums/apply";
import {listInform} from "@/api/smartSchool/teacherManage/teacherInformation";
import {getListByRole} from "@/api/smartSchool/common";
import {ExportType} from "@/enums/common";
import { SubmitState } from "@/enums/apply";
import { listInform } from "@/api/smartSchool/teacherManage/teacherInformation";
import { getListByRole } from "@/api/smartSchool/common";
import { ExportType } from "@/enums/common";
import TeacherSelect from '@/views/components/moduleComponets/TeacherSelect/index.vue'
import HandleResolve from "@/views/smartSchool/teacherManage/teacherLeave/components/HandleResolve";
import HandleEntrust from "@/views/components/moduleComponets/HandleEntrust";
......@@ -286,8 +283,8 @@ import {
getGradeOfficeDirectorList,
getLeaderList
} from "@/api/smartSchool/personWork/leaveApply";
import {formatDate} from "../../../../utils";
import {getDepId} from "../../../../api/smartSchool/personWork/leaveApply";
import { formatDate } from "../../../../utils";
import { getDepId } from "../../../../api/smartSchool/personWork/leaveApply";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import SelectUser from "./components/SelectUser";
......@@ -393,28 +390,28 @@ export default {
// 列信息
columns: [
{key: 0, label: `教师名称`, visible: true},
{key: 1, label: `标题`, visible: true},
{key: 2, label: `请假原因`, visible: true},
{key: 3, label: `请假开始时间`, visible: true},
{key: 4, label: `请假结束时间`, visible: true},
{key: 5, label: `请假时长`, visible: true},
{key: 6, label: `流程实例ID`, visible: true},
{key: 7, label: `申请人`, visible: true},
{key: 8, label: `申请时间`, visible: true},
{key: 9, label: `操作`, visible: true},
{ key: 0, label: `教师名称`, visible: true },
{ key: 1, label: `标题`, visible: true },
{ key: 2, label: `请假原因`, visible: true },
{ key: 3, label: `请假开始时间`, visible: true },
{ key: 4, label: `请假结束时间`, visible: true },
{ key: 5, label: `请假时长`, visible: true },
{ key: 6, label: `流程实例ID`, visible: true },
{ key: 7, label: `申请人`, visible: true },
{ key: 8, label: `申请时间`, visible: true },
{ key: 9, label: `操作`, visible: true },
],
// 表单校验
rules: {
teacherName: [{required: true, message: '教师名称不能为空', trigger: 'change'}],
applyOrgname: [{required: true, message: '级部/处室不能为空', trigger: 'change'}],
handUserName1: [{required: true, message: '级部/处室主任不能为空', trigger: 'change'}],
handUserName2: [{required: true, message: '分管领导', trigger: 'change'}],
handUserName3: [{required: true, message: '主要领导', trigger: 'change'}],
startTime: [{required: true, message: '请假开始时间不能为空', trigger: 'blur'}],
endTime: [{required: true, message: '请假结束时间不能为空', trigger: 'blur'}],
type: [{required: true, message: '请假类型不能为空', trigger: 'blur'}],
reasonForLeave: [{required: true, message: '请假原因不能为空', trigger: 'blur'}]
teacherName: [{ required: true, message: '教师名称不能为空', trigger: 'change' }],
applyOrgname: [{ required: true, message: '级部/处室不能为空', trigger: 'change' }],
handUserName1: [{ required: true, message: '级部/处室主任不能为空', trigger: 'change' }],
handUserName2: [{ required: true, message: '分管领导', trigger: 'change' }],
handUserName3: [{ required: true, message: '主要领导', trigger: 'change' }],
startTime: [{ required: true, message: '请假开始时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '请假结束时间不能为空', trigger: 'blur' }],
type: [{ required: true, message: '请假类型不能为空', trigger: 'blur' }],
reasonForLeave: [{ required: true, message: '请假原因不能为空', trigger: 'blur' }]
},
// 导出选项
exportOptions: {
......@@ -476,7 +473,7 @@ export default {
this.multiple = !selection.length
},
/** 切换tab标签 */
handleClick({name}) {
handleClick({ name }) {
this.$set(this.queryParams, 'submitState', Number(name));
this.resetQuery();
},
......@@ -547,13 +544,13 @@ export default {
const ids = this.ids;
// TODO: 这里因为是两种状态: 提交和未提交,所以需要判断状态
const options = [
{type: ExportType.TOTAL, path: '/school/teacherLeave/export', params: {}},
{ type: ExportType.TOTAL, path: '/school/teacherLeave/export', params: {} },
{
type: ExportType.SELECT,
path: '/school/teacherLeave/export/' + ids,
params: {}
},
{type: ExportType.QUERY, path: '/school/teacherLeave/export', params: this.queryParams},
{ type: ExportType.QUERY, path: '/school/teacherLeave/export', params: this.queryParams },
]
callback(options, `老师请假信息${new Date().getTime()}.xlsx`);
},
......@@ -592,15 +589,15 @@ export default {
this.$refs["form"].validate(valid => {
let temp1, temp2, temp3
[this.form.startTime,
this.form.endTime,
this.form.endTime,
temp1,
temp2,
temp3] =
[formatDate(this.form.startTime),
formatDate(this.form.endTime),
this.form.startTime,
this.form.endTime,
this.title]
formatDate(this.form.endTime),
this.form.startTime,
this.form.endTime,
this.title]
console.log(temp1, temp2)
if (valid) {
if (this.form.totalTime < 2) {
......@@ -613,13 +610,13 @@ export default {
}
if (this.form.id != null) {
updateTeacherLeave({...this.form, title: temp3}).then(response => {
updateTeacherLeave({ ...this.form, title: temp3 }).then(response => {
this.$modal.msgSuccess("修改成功");
this.dialogTeacherLeave = false;
this.getList();
});
} else {
addTeacherLeave({...this.form, title: temp3}).then(response => {
addTeacherLeave({ ...this.form, title: temp3 }).then(response => {
this.$modal.msgSuccess("新增成功");
this.dialogTeacherLeave = false;
this.getList();
......@@ -652,7 +649,7 @@ export default {
this.getApproveHistoryList(row)
},
getApproveHistoryList(row) {
listHistory({instanceId: row.instanceId}).then(res => {
listHistory({ instanceId: row.instanceId }).then(res => {
})
},
openTeacherSelect() {
......@@ -758,7 +755,7 @@ export default {
if (this.form.handUserName1) {
this.form.handUserName1 = ""
}
const {id, label} = data;
const { id, label } = data;
console.log(id, label, 758)
this.form.applyOrgname = label;
this.form.applyOrgid = id;
......@@ -769,19 +766,19 @@ export default {
}))
},
handleDirector(data) {
const {handUserName1, handUserId1} = data;
const { handUserName1, handUserId1 } = data;
this.form.handUserName1 = handUserName1;
this.form.handUserId1 = handUserId1;
},
handleDeputyLeader(data) {
const {handUserName2, handUserId2} = data;
const { handUserName2, handUserId2 } = data;
this.form.handUserName2 = handUserName2;
this.form.handUserId2 = handUserId2;
},
handleLeader(data) {
const {handUserName3, handUserId3} = data;
const { handUserName3, handUserId3 } = data;
this.form.handUserName3 = handUserName3;
this.form.handUserId3 = handUserId3;
},
......@@ -862,7 +859,7 @@ export default {
},
readNodes(nodes = [], arr = []) {
for (let item of nodes) {
arr.push({id: item.id, label: item.label})
arr.push({ id: item.id, label: item.label })
if (item.children && item.children.length) this.readNodes(item.children, arr)
}
return arr
......@@ -876,12 +873,16 @@ export default {
this.selectHandles.type = type;
// 将级部、处室 id赋值
this.selectHandles.id = this.form.applyOrgid;
console.log('this.selectHandles', this.selectHandles);
},
// 选择处理人
selectUser(select) {
console.log('this.form1', this.form);
// 这种写法存在一定危险,后续最好是可以有更好的字段名对应
this.$set(this.form, `handUserName${this.selectHandles.type}`, select.name);
this.$set(this.form, `handUserId${this.selectHandles.type}`, select.id);
console.log('this.form', this.form);
}
}
};
......
......@@ -4,9 +4,8 @@
<el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="showSearch">
<el-form-item label="日期" prop="startTime">
<el-date-picker size="small" v-model="queryParams.startTime" type="date" placeholder="开始日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd" @change="changeDate" :picker-options="pickerOptions"
style="margin-right:10px">
value-format="yyyy-MM-dd" format="yyyy-MM-dd" @change="changeDate" :picker-options="pickerOptions"
style="margin-right:10px">
</el-date-picker>
<el-date-picker size="small" type="date" v-model="endTime" disabled>
......@@ -16,7 +15,7 @@
<el-form-item prop="studioName" :rules="[{ required: true, message: '请选择录播室', trigger: 'change,blur' }]">
<el-select v-model="queryParams.studioId" placeholder="录播室" >
<el-select v-model="queryParams.studioId" placeholder="录播室">
<el-option v-for="item in options" :key="item.id" :label="item.studioName" :value="item.id">
</el-option>
</el-select>
......@@ -24,7 +23,7 @@
</el-form-item>
<el-button size="mini" type="primary" icon="el-icon-search" @click="fetchData">搜索</el-button>
<!-- <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> -->
<el-button size="mini" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<!-- :disabled="isReservationDisabled" -->
<el-button size="mini" @click="reserve">预约</el-button>
</el-form>
......@@ -33,34 +32,34 @@
<!-- 录播室占用情况表格 -->
<table style="margin-left: 30px">
<thead>
<tr>
<!-- 表头首列 -->
<th style="background:none"></th>
<!-- 表格表头日期-->
<th style="background:none;font-size:16px;font-weight:normal" v-for="day in days" :key="day">{{ day }}</th>
</tr>
<tr>
<!-- 表头首列 -->
<th style="background:none"></th>
<!-- 表格表头日期-->
<th style="background:none;font-size:16px;font-weight:normal" v-for="day in days" :key="day">{{ day }}</th>
</tr>
</thead>
<tbody>
<!--tr 行 -->
<tr v-for="(timeSlot, index) in timeSlots" :key="index">
<!-- td 列 -->
<!-- 第一列,节次 -->
<td>{{ timeSlot }}</td>
<!-- <td v-for="(day, dayIndex) in days" :key="dayIndex" :class="{-->
<!-- occupied: isOccupied(day, index),-->
<!-- selected: isSelected(day, index),-->
<!-- }" @mousedown="handleMouseDown(day, index)" @mouseup="handleMouseUp(day, index)"-->
<!-- @mouseenter="handleMouseEnter(day, index)" @click="handleCellClick(day, index)">-->
<!-- {{ isOccupied(day, index) ? "占用" : "" }}-->
<!-- </td>-->
<!-- 第二列往后循环日期,拿到day日期和节次index索引值 -->
<td style="cursor: pointer" v-for="(day, dayIndex) in days" :key="dayIndex" :class="{
<tr v-for="(timeSlot, index) in timeSlots" :key="index">
<!-- td 列 -->
<!-- 第一列,节次 -->
<td>{{ timeSlot }}</td>
<!-- <td v-for="(day, dayIndex) in days" :key="dayIndex" :class="{-->
<!-- occupied: isOccupied(day, index),-->
<!-- selected: isSelected(day, index),-->
<!-- }" @mousedown="handleMouseDown(day, index)" @mouseup="handleMouseUp(day, index)"-->
<!-- @mouseenter="handleMouseEnter(day, index)" @click="handleCellClick(day, index)">-->
<!-- {{ isOccupied(day, index) ? "占用" : "" }}-->
<!-- </td>-->
<!-- 第二列往后循环日期,拿到day日期和节次index索引值 -->
<td style="cursor: pointer" v-for="(day, dayIndex) in days" :key="dayIndex" :class="{
occupied: isOccupied(day, index),
selected: isSelected(day, index),
}" @click="handleCellClick(day, index)">
{{ isOccupied(day, index) ? "占用" : "" }}
</td>
</tr>
{{ isOccupied(day, index) ? "占用" : "" }}
</td>
</tr>
</tbody>
</table>
......@@ -143,10 +142,21 @@ export default {
// this.fetchData();
},
methods: {
// 重置按钮
resetQuery() {
this.queryParams = {
studioId: "",
startTime: "",
pageNum: 1,
pageSize: 10,
};
this.fetchStudioUseData(); // 重新发一次请求
},
changeDate() {
this.endTime = moment(this.queryParams.startTime).add(9, 'days')
},
fetchStudioUseData() {
// 调用接口获取录播室占用情况数据
console.log(123654, this.queryParams);
......@@ -161,7 +171,7 @@ export default {
const occupiedData = this.studioUseData.find((item) => {
// console.log('Array.from(item.useJc)',item.useJc.split(','))
// console.log('Array.from(item.useJc)',index + 1)
return item.useDate === day && item.useJc.split(',').includes((index+1).toString());
return item.useDate === day && item.useJc.split(',').includes((index + 1).toString());
});
return occupiedData ? occupiedData.useUserId : false;
},
......@@ -170,7 +180,7 @@ export default {
if (this.isOccupied(day, index)) {
return false
} else {
console.log('this.selectedTimeSlots',this.selectedTimeSlots)
console.log('this.selectedTimeSlots', this.selectedTimeSlots)
// 检查时间段是否已选中
return this.selectedTimeSlots.some((selectedSlot) => {
// console.log('selectedSlot',selectedSlot)
......@@ -190,9 +200,9 @@ export default {
return
} else if (this.selectedTimeSlots.length == 0) {
// 处理单元格点击事件,点击第一个
this.selectedTimeSlots.push({day, index})
this.selectedTimeSlots.push({ day, index })
this.remark = true
//没有选同一天
//没有选同一天
} else if (this.selectedTimeSlots[0].day != day) {
this.remark = true
this.$modal.alertWarning("预约不可跨天");
......@@ -211,7 +221,7 @@ export default {
this.selectedTimeSlots = this.selectedTimeSlots.filter(item => item.index != index)
this.selectedTimeSlots.length == 0 ? this.remark = false : this.selectedTimeSlots
} else {
this.selectedTimeSlots.push({day, index})
this.selectedTimeSlots.push({ day, index })
}
}
},
......@@ -220,7 +230,7 @@ export default {
getRoomList() {
getAppointmentList({}).then((res) => {
this.options = res.rows;
console.log('res',res)
console.log('res', res)
});
},
......@@ -272,13 +282,13 @@ export default {
handleMouseDown(day, index) {
// 处理鼠标按下事件
this.isMouseDown = true;
this.startSelection = {day, index};
this.endSelection = {day, index};
this.startSelection = { day, index };
this.endSelection = { day, index };
},
handleMouseUp(day, index) {
// 处理鼠标松开事件
this.isMouseDown = false;
this.endSelection = {day, index};
this.endSelection = { day, index };
// 根据按下的键盘按键进行选择操作
if (event.ctrlKey) {
......@@ -296,7 +306,7 @@ export default {
handleMouseEnter(day, index) {
// 处理鼠标进入单元格事件(用于 Shift 键多选)
if (this.isMouseDown && event.shiftKey) {
this.endSelection = {day, index};
this.endSelection = { day, index };
this.selectMultipleSlots();
}
},
......@@ -321,22 +331,22 @@ export default {
dayIndex === this.days.indexOf(endDay)
) {
for (let index = startIndex; index <= endIndex; index++) {
selectedTimeSlots.push({day, index});
selectedTimeSlots.push({ day, index });
}
} else if (dayIndex === this.days.indexOf(startDay)) {
// 对于起始日期,选择从起始索引到最后一个时间段
for (let index = startIndex; index < this.timeSlots.length; index++) {
selectedTimeSlots.push({day, index});
selectedTimeSlots.push({ day, index });
}
} else if (dayIndex === this.days.indexOf(endDay)) {
// 对于结束日期,选择从第一个时间段到结束索引
for (let index = 0; index <= endIndex; index++) {
selectedTimeSlots.push({day, index});
selectedTimeSlots.push({ day, index });
}
} else {
// 其他日期完全选择
for (let index = 0; index < this.timeSlots.length; index++) {
selectedTimeSlots.push({day, index});
selectedTimeSlots.push({ day, index });
}
}
}
......@@ -367,17 +377,17 @@ export default {
},
//弹窗
reserve(day, index) {
if (this.remark) {
if(this.queryParams.studioId == ''){
this.successDialogVisible = false;
this.$modal.alertWarning("请选择录播室");
}else{
this.successDialogVisible = true;
}
} else{
console.log(this.remark)
if (this.remark) {
if (this.queryParams.studioId == '') {
this.successDialogVisible = false;
this.$modal.alertWarning("请选择录播室");
} else {
this.successDialogVisible = true;
}
} else {
console.log(this.remark)
this.successDialogVisible = false;
}
// }
......@@ -393,56 +403,56 @@ export default {
// 在这里,你可以处理预约操作,例如发送请求进行录播室预约操作
// 预约成功后,你可以根据已选时间段的数据来更新录播室的占用情况
this.successDialogVisible = false;
console.log('queryParams.studioName',this.queryParams)
console.log('this.selectedTimeSlots',this.selectedTimeSlots)
console.log('form.studioContent',this.form.studioContent)
console.log('queryParams.studioName', this.queryParams)
console.log('this.selectedTimeSlots', this.selectedTimeSlots)
console.log('form.studioContent', this.form.studioContent)
const jc = this.selectedTimeSlots.map(item => {
return item.index+1
return item.index + 1
})
const stringJC = jc.toString()
console.log('stringJC',stringJC)
console.log('stringJC', stringJC)
const params = {
//录播室id
studioId:this.queryParams.studioId,
studioId: this.queryParams.studioId,
//预约时间
appointmentTime:this.selectedTimeSlots[0].day,
appointmentTime: this.selectedTimeSlots[0].day,
//预约节次
appointmentJc:stringJC,
appointmentJc: stringJC,
//录播内容
studioContent:this.form.studioContent
studioContent: this.form.studioContent
}
addIdle(params).then(res => {
console.log('res',res)
if(res.code == 200){
console.log('res', res)
if (res.code == 200) {
this.$message({
message: "预约成功",
type: "success",
});
message: "预约成功",
type: "success",
});
this.fetchStudioUseData()
}
})
// 更新录播室占用情况
// for (const selectedSlot of this.selectedTimeSlots) {
// const day = selectedSlot.day;
// const index = selectedSlot.index;
// // 在这里,你可以根据录播室ID、日期和时间段进行更新录播室占用情况的操作
// // 调用接口或更新数据来标记录播室在指定的日期和时间段被占用
// console.log(`录播室在 ${day} 的 ${this.timeSlots[index]} 被预约成功`);
// }
//
// // 清除已选时间段
// this.selectedTimeSlots = [];
//
// this.$message({
// message: "预约成功",
// type: "success",
// });
//
// console.log("确定");
// },
// isReservationDisabled() {
// // 预约按钮是否禁用
// return this.selectedTimeSlots.length === 0;
// for (const selectedSlot of this.selectedTimeSlots) {
// const day = selectedSlot.day;
// const index = selectedSlot.index;
// // 在这里,你可以根据录播室ID、日期和时间段进行更新录播室占用情况的操作
// // 调用接口或更新数据来标记录播室在指定的日期和时间段被占用
// console.log(`录播室在 ${day} 的 ${this.timeSlots[index]} 被预约成功`);
// }
//
// // 清除已选时间段
// this.selectedTimeSlots = [];
//
// this.$message({
// message: "预约成功",
// type: "success",
// });
//
// console.log("确定");
// },
// isReservationDisabled() {
// // 预约按钮是否禁用
// return this.selectedTimeSlots.length === 0;
},
},
};
......@@ -480,5 +490,4 @@ th {
background-color: #66b3ff;
}
</style>
......@@ -74,7 +74,7 @@
<td>申请时间</td>
<td>{{ applyTime }}</td>
<td>状态</td>
<td class="btntext" colspan="5">{{ statu }}</td>
<td class="btntext" colspan="5">{{ statu === '1' ? '预约成功' : '取消' }}</td>
</tr>
</table>
</div>
......
......@@ -4,13 +4,11 @@
<el-form-item prop="activityName">
<el-input v-model="queryForm.activityName" @keyup.enter.native="handleQuery" placeholder="活动名称"></el-input>
</el-form-item>
<el-form-item>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="至" start-placeholder="开始日期"
value-format="yyyy-MM-dd HH:mm" end-placeholder="结束日期"
@change="changeData(queryForm.sj)"></el-date-picker>
<span v-if="week !== ''" style="font-size: 14px">({{ week }})</span>
<el-form-item prop="dateRange">
<el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
<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>
......@@ -49,8 +47,8 @@
</el-table-column>
<el-table-column label="申请人" align="center" prop="applyName" />
<el-table-column label="申请时间" align="center" prop="applyTime" />
<el-table-column :width="queryForm.submitState ? 100 : 250" label="操作" align="center" v-if="columns[12].visible"
fixed="right" class-name="small-padding fixed-width">
<el-table-column :width="queryForm.submitState ? 100 : 250" label="操作" align="center" fixed="right"
class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- v-if="queryForm.submitState" -->
<div>
......@@ -162,7 +160,7 @@
<script>
import {
listAuditor,
listAuditorqb,
getAuditor,
} from "@/api/smartSchool/personWork/venueReservation/audreservationStatus";
......@@ -199,7 +197,8 @@ export default {
};
return {
week: "", // 选择的天数
dateRange: [], // 用于存储选定的时间段
// 日期范围
dateRange: [],
// 单选框
radio1: 3,
radio2: 3,
......@@ -213,35 +212,12 @@ export default {
activeName: SubmitState.WILL_SUBMIT,
// 查询表单
queryForm: {
submitState: 0,
activityName: "",
dateRange: [], // 选择的开始日期和结束日期
pageNum: 1,
pageSize: 10,
title: '',//标题
type: '',//类型
vehicleId: '',//车辆id
applicantId: '',//申请人id
applicantName: '',//用车人姓名
departmentId: undefined,//用车部门id
reason: '',//用车原因
peopleNumber: '',//人数
departurePlace: '',//出发地点
destination: '',//目的地
startTime: '',//用车开始时间
endTime: '',//用车结束时间
driver: '',//司机
vehicleType: '',//用车类型
remarks: '',//备注
kilometers: '',//公里数
state: '',//状态
instanceId: '',//流程实例id
// applyUser: '',//创建人
applyTime: '',//申请时间
taskName: '',//任务名称
comment: '',//批注
assignee: '',//
assigneeName: '',//办理人
realityStartTime: '',//实际开始时间
realityEndTime: '',//实际结束时间
sj: '',
state: "",
},
// 审批历史表单
historyForm: {
......@@ -305,30 +281,7 @@ export default {
title: '',
// 列表信息
columns: [
{ key: 0, label: `流程实例ID`, visible: true },
{ key: 1, label: `申请人`, visible: true },
{ key: 2, label: `人数`, visible: true },
{ key: 3, label: `出发地点`, visible: true },
{ key: 4, label: `目的地`, visible: true },
{ key: 5, label: `用车开始时间`, visible: true },
{ key: 6, label: `用车结束时间`, visible: true },
{ key: 7, label: `司机`, visible: true },
{ key: 8, label: `用车类型`, visible: true },
{ key: 9, label: `用车原因`, visible: true },
{ key: 10, label: `申请时间`, visible: true },
{ key: 11, label: `备注`, visible: true },
{ key: 12, label: `公里数`, visible: true },
{ key: 13, label: `操作`, visible: true },
{ key: 14, label: `车牌号`, visible: true },
{ key: 15, label: `车辆类型`, visible: true },
{ key: 16, label: `车辆状态`, visible: true },
{ key: 17, label: `任务名称`, visible: true },
{ key: 18, label: `处理人ID`, visible: true },
{ key: 19, label: `处理人`, visible: true },
{ key: 20, label: `审批意见`, visible: true },
{ key: 21, label: `开始时间`, visible: true },
{ key: 22, label: `结束时间`, visible: true },
{ key: 23, label: `耗时`, visible: true },
],
// 活动名称
......@@ -396,12 +349,21 @@ export default {
},
methods: {
/** 获取列表数据 */
getList() {
listAuditor(this.addDateRange(this.queryForm, this.dateRange)).then(response => {
const params = {
activityName: this.queryForm.activityName,
pageNum: this.queryForm.pageNum,
pageSize: this.queryForm.pageSize,
startTime: this.dateRange[0],
endTime: this.dateRange[1],
};
console.log(123, params);
listAuditorqb(params).then(response => {
this.loading = false;
this.infoList = response.rows;
console.log(111);
console.log(111, response.rows);
this.total = response.total;
}).catch(err => {
this.loading = false;
......
......@@ -34,8 +34,8 @@
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> -->
<!-- 新增/修改弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="1200px">
<el-form ref="form" :model="form" label-width="114px" :rules="rules">
......@@ -90,16 +90,6 @@ export default {
return {
studioStatu: "",
queryParams: {
id: "",
studioName: "",
studioStatu: "",
studioArea: "",
pageNum: 1,
pageSize: 10,
},
queryForm: {
studioName: "",
studioStatu: "",
studioArea: "",
},
title: "",
......@@ -130,7 +120,6 @@ export default {
methods: {
/** 查询 */
getList() {
this.loading = true;
getStudio(this.queryParams).then((response) => {
this.tableData = response.rows;
this.loading = false;
......
......@@ -45,8 +45,8 @@ module.exports = {
//target: `http://47.105.176.202:8137`,
//学校内网
// target: `http://10.20.100.201:57321`,
// target: `http://192.168.1.121:8848`,
target: `http://192.168.1.116:8848`,
// target: `http://192.168.1.116:8848`,
changeOrigin: true,
pathRewrite: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment