123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- <template>
- <div>
- <top-header :pageTitle="pageTitle" v-show="!stepSelect"></top-header>
-
- <select-person v-if="initSelectPerson" batchJob="1" v-show="stepSelectPerson" :setids="subForm.personIds" :setnames="seletPerson" @confirm="confirm2"></select-person>
-
- <div class="mui-content vongi-fx vongi-qingjiadt margin60" v-show="!stepSelect">
- <form class="mui-input-group vongi-editme margin10 mt-10">
- <div class="mui-input-row">
- <label><i class="colorfe616c">*</i> 加班人员</label>
- <button class="mui-btn mui-btn-block mui-navigate-right"
- @click="selectPersonBtn" v-html="seletPerson"
- type='button' style="width:65%">
- 请选择
- </button>
- </div>
- </form>
- <form class="mui-input-group vongi-editme margin10 mt-10">
- <div class="mui-input-row">
- <label><i class="colorfe616c">*</i> 开始时间</label>
- <button class="mui-btn mui-btn-block mui-navigate-right" type='button'
- @click="selectData('startTime',false,subForm.endTime)" v-text="subForm.startTime?subForm.startTime:'请选择'"
- style="width:65%">
- 2021-03-01 17:30
- </button>
- </div>
- <div class="mui-input-row">
- <label><i class="colorfe616c">*</i> 结束时间</label>
- <button class="mui-btn mui-btn-block mui-navigate-right" type='button' style="width:65%" @click="selectData('endTime',subForm.startTime)" v-text="subForm.endTime?subForm.endTime:'请选择'" >
- 2021-03-01 17:30
- </button>
- </div>
- </form>
- <form class="mui-input-group vongi-editme margin10">
- <div class="mui-input-row">
- <label > 时长(小时)</label>
- <span v-text="subForm.hours">4.5</span>
- </div>
- </form>
- <form class="mui-input-group vongi-editme margin10">
- <div class="mui-input-row">
- <label style="width:100%"><i class="colorfe616c">*</i> 加班原因</label>
- <textarea id="textarea" rows="3" v-model="subForm.reason" placeholder="请填写加班原因"></textarea>
- </div>
- </form>
-
-
-
- <form class="mui-input-group vongi-editme">
- <div class="mui-input-row" v-show="examinePersonList.length>1" >
- <label><i class="colorfe616c">*</i> 审批模板</label>
- <button class="mui-btn mui-btn-block mui-navigate-right"
- @click="selectSpBtn" v-html="seletSpName"
- type='button' style="width:65%">
- 请选择
- </button>
- </div>
- <div class="mui-input-row">
- <label> 审核人</label>
- <span v-text="examinePerson.name">赵振</span>
- </div>
- </form>
- </div>
- <div class="fyy-footer" v-show="!stepSelect">
- <div class="bindfyy-btn">
- <button class="mui-btn " style="width: 50%;" :class="examinePerson.name?'mui-btn-success':'mui-btn-grey'" type="submit" @click="submit(0)">
- <i icon="mui-icon mui-icon-compose"></i>保存草稿
- </button>
- <button class="mui-btn " style="width: 50%;" :class="examinePerson.name?'mui-btn-primary':'mui-btn-grey'" type="submit" @click="submit(1)">
- 提交
- </button>
- </div>
- </div>
- </div>
- </template>
- <script>
- import * as API_sp from '@/apis-xsy/xsy'
- require('$project/assets/js/mui.picker.min.js');
- import * as API_ExtraWork from '@/apis/Master/extra_work'
- import Common from '$project/components/Common.vue'
- import Loading from '$project/components/Loading.vue'
- import TopHeader from '$project/components/TopHeader.vue'
- import SelectPerson from '../PlanClass/Person.vue'
-
- import {
- mapGetters,
- mapMutations
- } from 'vuex'
- import {
- currentTimeStamp,
- parseUnixTime,
- hourDistanceArr
- } from '$project/utils'
- export default {
- name: 'MasterExtraWorkForm',
- components: {
- Common,
- Loading,
- TopHeader,SelectPerson,
- },
- data() {
- return {
- examinePersonList:[],
- examinePerson:{},
- pageTitle: '加班申请',
- isLoading: false,
- stepSelect:false,
- id:"",
- initSelectPerson:false,
- stepSelectPerson:false,
- seletPerson:"请选择",
- seletSpName:"请选择",
-
- subForm: {
- personIds:"",
- reason: '',
- startTime: '',
- endTime: '',
- hours: 0,
- type: '2',
-
- formId: 'batchExtraWork',
- },
- approvalPersonList: [],
- //补卡/加班1,外出2,出差3 ,请假4
- personForm: {
- type: '1'
- }
- }
- },
- created() {
- this.id = this.$route.query.id;
-
- this.subForm.startTime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d} {h}:{i}');
- },
- methods: {
- //获取详情
- getInfo() {
- if(!this.id){
- return
- }
- this.isLoading = true;
- API_ExtraWork.workOverBatchDetail(this.id).then(response => {
- this.isLoading = false;
- this.subForm.ids=this.id
- //this.subForm = response;
-
- this.subForm = {
- ... this.subForm ,
- ...response
- };
- this.subForm.personIds=response.nameId;
- this.seletPerson=response.name
- }).catch(error => {
- this.isLoading = false;
- mui.toast(error);
- })
- },
- confirm2(temp){
- this.stepSelect=false;
- this.stepSelectPerson=false;
- console.log(temp)
- if(temp.status==1){
- this.seletPerson="";
- for(var i in temp.selectPerson){
- if(i==0){
- this.seletPerson=temp.selectPerson[i].name;
- }else{
- this.seletPerson+=","+temp.selectPerson[i].name;
- }
- }
-
- this.subForm.personIds=temp.selectId.join();
- }
- },
- //类型选择
- selectSpBtn() {
- var picker = new mui.PopPicker();
- var list= this.examinePersonList
- var data=[]
- for (var i = 0; i < list.length; i++) {
- data.push({
- value: list[i]['id'],
- text: list[i]['name']
- })
- }
- picker.setData(data);
- var _this = this;
- picker.show(function(selectItems) {
-
- _this.seletSpName=selectItems[0].text
- _this.getExaminePerson(selectItems[0].value)
- //_this.typeName = selectItems[0].text;
- })
- },
- selectPersonBtn(){
- this.initSelectPerson=true;
- this.stepSelectPerson=true;
- this.stepSelect=true;
- },
- //获取审核人列表
- getBusinessOutApprovalPerson() {
- this.isLoading = true;
- API_BusinessTravel.getBusinessOutApprovalPerson(this.personForm).then(response => {
- this.isLoading = false;
- var list = response.data;
- var approvalPersonList = [];
- for (var i = 0; i < list.length; i++) {
- approvalPersonList.push({
- value: list[i]['id'],
- text: list[i]['personName']
- })
- }
- if (approvalPersonList.length) {
- this.subForm.approvalPersonId = approvalPersonList[0]['value'];
- }
- this.approvalPersonList = approvalPersonList;
- }).catch(error => {
- this.isLoading = false;
- mui.toast(error);
- })
- },
- //选择审核人
- selectPerson() {
- var _this = this;
- var picker = new mui.PopPicker();
- picker.setData(_this.approvalPersonList);
- picker.pickers[0].setSelectedValue(this.subForm.approvalPersonId);
- picker.show(function(selectItems) {
- _this.subForm.approvalPersonId = selectItems[0].value;
- picker.dispose();
- })
- },
- //选择日期
- selectData(field,vdate,edate) {
- var _this = this;
- if(vdate){
-
- vdate=new Date(vdate)
- }
- if(edate){
- edate=new Date(edate)
- }
- var picker = new mui.DtPicker({
- "type": "datetime",
- "beginYear": 2020,
- "endYear": 2040,
- "beginDate": vdate,
- "endDate":edate,
- "value": _this.subForm[field]
- });
- picker.show(function(rs) {
- _this.subForm[field] = rs.text;
- picker.dispose();
- _this.countHours();
- });
- },
- //表单检测
- checkForm() {
- if(!this.examinePerson.name){
- return
- }
-
- if (!this.subForm.personIds) {
- mui.toast('请选择人员');
- return false;
- }else if (!this.subForm.startTime) {
- mui.toast('请选择开始时间');
- return false;
- } else if (!this.subForm.endTime) {
- mui.toast('请填写结束时间');
- return false;
- } else if (!this.subForm.reason) {
- mui.toast('请填写加班原因');
- return false;
- } else if (false) {
- mui.toast('请选择审批人');
- return false;
- } else {
- return true;
- }
- },
- //提交
- submit(status) {
- this.subForm.draft=status;
- if (this.checkForm()) {
- this.isLoading = true;
-
- this.subForm.processTemplateId=this.examinePerson.processTemplateId;
- API_ExtraWork.workOverPathSubmit(this.subForm).then(response => {
- this.isLoading = false;
- if(status){
- mui.toast('提交成功');
- this.$router.replace({
- name: "XsyApprovalInfo",
- query:{id:response.id,formId:'extraWork'}
- })
-
- }else{
- mui.toast('保存成功');
- this.subForm.ids=response.id;
- this.id=response.id
- }
-
- }).catch(error => {
- this.isLoading = false;
- mui.toast(error);
- })
- }
- },
- countHours() {
- var hoursArr = hourDistanceArr(this.subForm.startTime, this.subForm.endTime);
- this.subForm.hours = hoursArr[0];
- },
- getExaminePersonList(){
-
- API_sp.examinePersonList(this.subForm.formId).then(response => {
- this.examinePersonList=response.list
- if(this.examinePersonList.length){
- this.seletSpName=this.examinePersonList[0].name
- this.getExaminePerson(this.examinePersonList[0].id)
- }
- }).catch(error => {
-
- mui.toast(error);
- })
- },
- getExaminePerson(id){
-
- API_sp.examinePerson(this.subForm.formId,id).then(response => {
- this.examinePerson=response
- this.examinePerson.processTemplateId=id
- }).catch(error => {
-
- mui.toast(error);
- })
- },
- asynCallBack() {
- },
- },
- mounted() {
- //获取审核人列表
- //this.getBusinessOutApprovalPerson();
- this.getExaminePersonList();
- this.getInfo();
- },
- destroyed() {},
- computed: {
-
- },
- }
- </script>
- <style src="$project/assets/css/mui.picker.min.css"></style>
- <style src="$project/assets/css/iconfont.css"></style>
- <style scoped src="$project/assets/css/xpwyfyy.css"></style>
- <style src="$project/assets/css/xsy.css"></style>
- <style>
- </style>
|