|
|
|
@ -24,7 +24,7 @@
|
|
|
|
|
v-model="timeAry"
|
|
|
|
|
:show-time="{ format: 'HH:mm' }"
|
|
|
|
|
format="YYYY-MM-DD HH:mm"
|
|
|
|
|
:placeholder="['Start Time', 'End Time']"
|
|
|
|
|
:placeholder="['开始时间', '结束时间']"
|
|
|
|
|
@change="onRangeChange"
|
|
|
|
|
@ok="onRangeOk"
|
|
|
|
|
/>
|
|
|
|
@ -55,48 +55,60 @@
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import {Spin, Button, Cascader, Input, InputNumber, Modal, Select, DatePicker,Icon,TimePicker} from 'ant-design-vue';
|
|
|
|
|
import {
|
|
|
|
|
Spin,
|
|
|
|
|
Button,
|
|
|
|
|
Cascader,
|
|
|
|
|
Input,
|
|
|
|
|
InputNumber,
|
|
|
|
|
Modal,
|
|
|
|
|
Select,
|
|
|
|
|
DatePicker,
|
|
|
|
|
Icon,
|
|
|
|
|
TimePicker
|
|
|
|
|
} from 'ant-design-vue';
|
|
|
|
|
import InterConfig from '../interConfig';
|
|
|
|
|
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
import ATextarea from "ant-design-vue/es/input/TextArea";
|
|
|
|
|
import Upload from '../../../../../../components/common/uploader/Upload.vue';
|
|
|
|
|
import SelectStudent from '../../../../../../components/common/selectPeople/SelectStudent';
|
|
|
|
|
export default{
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
props: {
|
|
|
|
|
absenceId:{
|
|
|
|
|
type:String,
|
|
|
|
|
default:""
|
|
|
|
|
absenceId: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: ""
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
data(){
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
pageLoading: false,
|
|
|
|
|
showStudentPanel:false,
|
|
|
|
|
absenceid:this.$props.absenceId,//
|
|
|
|
|
absenceCause:"",
|
|
|
|
|
showStudentPanel: false,
|
|
|
|
|
absenceid: this.$props.absenceId,//
|
|
|
|
|
absenceCause: "",
|
|
|
|
|
locale,
|
|
|
|
|
studentId: "",
|
|
|
|
|
studentName:"",
|
|
|
|
|
selectedPerson:[],
|
|
|
|
|
activityDate:"",//活动日期
|
|
|
|
|
activityPlace:"",//活动地点
|
|
|
|
|
studentName: "",
|
|
|
|
|
selectedPerson: [],
|
|
|
|
|
activityDate: "",//活动日期
|
|
|
|
|
activityPlace: "",//活动地点
|
|
|
|
|
dateFormat: "YYYY-MM-DD",
|
|
|
|
|
attachmentJson:[],
|
|
|
|
|
startTime:null,//会议开始时间
|
|
|
|
|
startTimeStr:"",
|
|
|
|
|
endTime:null,//会议结束时间
|
|
|
|
|
endTimeStr:"",
|
|
|
|
|
timeAry:[],
|
|
|
|
|
attachmentJson: [],
|
|
|
|
|
startTime: null,//会议开始时间
|
|
|
|
|
startTimeStr: "",
|
|
|
|
|
endTime: null,//会议结束时间
|
|
|
|
|
endTimeStr: "",
|
|
|
|
|
timeAry: [],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created(){
|
|
|
|
|
created() {
|
|
|
|
|
if (this.$props.absenceId !== "") {
|
|
|
|
|
this.getInfo();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
showChoose:function () {
|
|
|
|
|
showChoose: function () {
|
|
|
|
|
this.showStudentPanel = true;
|
|
|
|
|
},
|
|
|
|
|
closeStudentPanel: function () {
|
|
|
|
@ -109,29 +121,29 @@
|
|
|
|
|
this.studentId = objAry[0].student_id;
|
|
|
|
|
this.studentName = objAry[0].student_name;
|
|
|
|
|
let student = {
|
|
|
|
|
student_id:this.studentId,
|
|
|
|
|
student_name:this.studentName,
|
|
|
|
|
student_id: this.studentId,
|
|
|
|
|
student_name: this.studentName,
|
|
|
|
|
}
|
|
|
|
|
this.selectedPerson.push(student);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.showStudentPanel = false;
|
|
|
|
|
},
|
|
|
|
|
clearStudent:function(){
|
|
|
|
|
clearStudent: function () {
|
|
|
|
|
this.studentId = "";
|
|
|
|
|
this.studentName = "";
|
|
|
|
|
this.selectedPerson = [];
|
|
|
|
|
},
|
|
|
|
|
onRangeChange:function(value,dateString){
|
|
|
|
|
if(dateString.length > 0){
|
|
|
|
|
onRangeChange: function (value, dateString) {
|
|
|
|
|
if (dateString.length > 0) {
|
|
|
|
|
this.startTime = value[0];
|
|
|
|
|
this.startTimeStr = dateString[0];
|
|
|
|
|
this.endTime = value[1];
|
|
|
|
|
this.endTimeStr = dateString[1];
|
|
|
|
|
this.timeAry = [this.startTime,this.endTime];
|
|
|
|
|
this.timeAry = [this.startTime, this.endTime];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onRangeOk:function(value){
|
|
|
|
|
onRangeOk: function (value) {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
onStartChange(value, dateString) {
|
|
|
|
@ -156,27 +168,27 @@
|
|
|
|
|
if (resData.code === 2000) {
|
|
|
|
|
let info = resData.data;
|
|
|
|
|
this.absenceCause = info.absence_cause;
|
|
|
|
|
this.startTime = moment(info.start_time,'YYYY-MM-DD HH:mm');
|
|
|
|
|
this.startTimeStr =info.start_time;
|
|
|
|
|
this.endTime = moment(info.end_time,'YYYY-MM-DD HH:mm');
|
|
|
|
|
this.endTimeStr =info.end_time;
|
|
|
|
|
this.timeAry = [this.startTime,this.endTime];
|
|
|
|
|
this.startTime = moment(info.start_time, 'YYYY-MM-DD HH:mm');
|
|
|
|
|
this.startTimeStr = info.start_time;
|
|
|
|
|
this.endTime = moment(info.end_time, 'YYYY-MM-DD HH:mm');
|
|
|
|
|
this.endTimeStr = info.end_time;
|
|
|
|
|
this.timeAry = [this.startTime, this.endTime];
|
|
|
|
|
this.studentId = info.student_id;
|
|
|
|
|
this.studentName = info.student_name;
|
|
|
|
|
this.selectedPerson.push({
|
|
|
|
|
student_id:info.student_id,
|
|
|
|
|
student_name:info.student_name,
|
|
|
|
|
student_id: info.student_id,
|
|
|
|
|
student_name: info.student_name,
|
|
|
|
|
});
|
|
|
|
|
if(Object.keys(info.attachment_json).length > 0){
|
|
|
|
|
if (Object.keys(info.attachment_json).length > 0) {
|
|
|
|
|
this.attachmentJson.push(info.attachment_json);
|
|
|
|
|
}
|
|
|
|
|
if(Array.isArray(info.attachment_json)){
|
|
|
|
|
if (Array.isArray(info.attachment_json)) {
|
|
|
|
|
this.attachmentJson = info.attachment_json;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
certificateFile:function(file){
|
|
|
|
|
certificateFile: function (file) {
|
|
|
|
|
this.attachmentJson = file;
|
|
|
|
|
},
|
|
|
|
|
submit: function () {
|
|
|
|
@ -196,14 +208,6 @@
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (this.startTimeStr === "") {
|
|
|
|
|
Modal.warning({
|
|
|
|
|
title: "请选择会议开始时间",
|
|
|
|
|
content: "",
|
|
|
|
|
centered: true
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (this.startTimeStr === "") {
|
|
|
|
|
Modal.warning({
|
|
|
|
|
title: "请选择缺勤开始时间",
|
|
|
|
@ -221,16 +225,16 @@
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
let param = {
|
|
|
|
|
student_id:this.studentId,
|
|
|
|
|
student_id: this.studentId,
|
|
|
|
|
absence_cause: this.absenceCause,
|
|
|
|
|
start_time:this.startTimeStr,
|
|
|
|
|
end_time:this.endTimeStr,
|
|
|
|
|
attachment_json:JSON.stringify(this.attachmentJson),
|
|
|
|
|
start_time: this.startTimeStr,
|
|
|
|
|
end_time: this.endTimeStr,
|
|
|
|
|
attachment_json: JSON.stringify(this.attachmentJson),
|
|
|
|
|
person_id: this.BaseConfig.userInfo.person_id,
|
|
|
|
|
identity_id: this.BaseConfig.userInfo.identity_id,
|
|
|
|
|
bureau_id: this.BaseConfig.person_info_my.bureau_id,
|
|
|
|
|
}
|
|
|
|
|
if(this.$props.absenceId !== ""){
|
|
|
|
|
if (this.$props.absenceId !== "") {
|
|
|
|
|
param.absence_id = this.$props.absenceId;
|
|
|
|
|
}
|
|
|
|
|
this.pageLoading = true;
|
|
|
|
@ -263,10 +267,10 @@
|
|
|
|
|
ASelectOption: Select.Option,
|
|
|
|
|
AInput: Input,
|
|
|
|
|
ADatePicker: DatePicker,
|
|
|
|
|
ARangePicker:DatePicker.RangePicker,
|
|
|
|
|
ARangePicker: DatePicker.RangePicker,
|
|
|
|
|
Upload,
|
|
|
|
|
AButton: Button,
|
|
|
|
|
AIcon:Icon,
|
|
|
|
|
AIcon: Icon,
|
|
|
|
|
SelectStudent
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -277,108 +281,130 @@
|
|
|
|
|
height: auto;
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
color: black;
|
|
|
|
|
.add-record-row-style {
|
|
|
|
|
width: 50%;
|
|
|
|
|
min-height: 3rem;
|
|
|
|
|
margin: 0.5rem auto;
|
|
|
|
|
display: flex;
|
|
|
|
|
.li-box {
|
|
|
|
|
min-height: 3rem;
|
|
|
|
|
line-height: 3rem;
|
|
|
|
|
.must-option-style {
|
|
|
|
|
color: red;
|
|
|
|
|
margin-right: 0.2rem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.li-left {
|
|
|
|
|
width: 15%;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
.li-right {
|
|
|
|
|
width: 85%;
|
|
|
|
|
.person-list-content-style {
|
|
|
|
|
width: 700px;
|
|
|
|
|
height: 500px;
|
|
|
|
|
background-color: #ebebeb;
|
|
|
|
|
.list-content-style {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
.honor-person-info {
|
|
|
|
|
width: auto;
|
|
|
|
|
height: 180px;
|
|
|
|
|
border: 1px solid #31a8fa;
|
|
|
|
|
margin: 0.5rem 0 0 0.5rem;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
.person-name {
|
|
|
|
|
width: 100%;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
/deep/ .img-style {
|
|
|
|
|
margin-right: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.ant-select {
|
|
|
|
|
width: 100px;
|
|
|
|
|
}
|
|
|
|
|
.no-border-input-style {
|
|
|
|
|
border-top: 0 !important;
|
|
|
|
|
border-left: 0 !important;
|
|
|
|
|
border-right: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
.photo-container-style {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
align-content: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
justify-items: center;
|
|
|
|
|
width: 120px !important;
|
|
|
|
|
border: 1px solid #e5e5e5;
|
|
|
|
|
height: 160px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
position: relative;
|
|
|
|
|
.operate-class {
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 0.1rem;
|
|
|
|
|
color: #31a8fa;
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
.photo-size-style {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
align-content: center;
|
|
|
|
|
justify-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.edit-style {
|
|
|
|
|
&:hover {
|
|
|
|
|
.operate-class {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.button-row-style {
|
|
|
|
|
width: 50%;
|
|
|
|
|
margin: auto;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.button-style {
|
|
|
|
|
margin-left: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.add-record-row-style {
|
|
|
|
|
width: 50%;
|
|
|
|
|
min-height: 3rem;
|
|
|
|
|
margin: 0.5rem auto;
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.li-box {
|
|
|
|
|
min-height: 3rem;
|
|
|
|
|
line-height: 3rem;
|
|
|
|
|
|
|
|
|
|
.must-option-style {
|
|
|
|
|
color: red;
|
|
|
|
|
margin-right: 0.2rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
.li-left {
|
|
|
|
|
width: 15%;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.li-right {
|
|
|
|
|
width: 85%;
|
|
|
|
|
|
|
|
|
|
.person-list-content-style {
|
|
|
|
|
width: 700px;
|
|
|
|
|
height: 500px;
|
|
|
|
|
background-color: #ebebeb;
|
|
|
|
|
|
|
|
|
|
.list-content-style {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
.honor-person-info {
|
|
|
|
|
width: auto;
|
|
|
|
|
height: 180px;
|
|
|
|
|
border: 1px solid #31a8fa;
|
|
|
|
|
margin: 0.5rem 0 0 0.5rem;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
.person-name {
|
|
|
|
|
width: 100%;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/deep/ .img-style {
|
|
|
|
|
margin-right: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.ant-select {
|
|
|
|
|
width: 100px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.no-border-input-style {
|
|
|
|
|
border-top: 0 !important;
|
|
|
|
|
border-left: 0 !important;
|
|
|
|
|
border-right: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photo-container-style {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
align-content: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
justify-items: center;
|
|
|
|
|
width: 120px !important;
|
|
|
|
|
border: 1px solid #e5e5e5;
|
|
|
|
|
height: 160px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.operate-class {
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 0.1rem;
|
|
|
|
|
color: #31a8fa;
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photo-size-style {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
align-content: center;
|
|
|
|
|
justify-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
.edit-style {
|
|
|
|
|
|
|
|
|
|
&
|
|
|
|
|
:hover {
|
|
|
|
|
|
|
|
|
|
.operate-class {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.button-row-style {
|
|
|
|
|
width: 50%;
|
|
|
|
|
margin: auto;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.button-style {
|
|
|
|
|
margin-left: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|