|  | @@ -1,30 +1,52 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="mod-demo__leaveapplication">
 | 
	
		
			
				|  |  |      <el-form :inline="true" :model="state.dataForm" @keyup.enter="state.getDataList()">
 | 
	
		
			
				|  |  | +      <el-form-item>
 | 
	
		
			
				|  |  | +        <el-input v-model="state.dataForm.creator" placeholder="姓名" clearable></el-input>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item>
 | 
	
		
			
				|  |  | +        <el-button @click="state.getDataList()">查询</el-button>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  |        <el-form-item>
 | 
	
		
			
				|  |  |          <el-button v-if="state.hasPermission('emergency:leaveapplication:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  |        <el-form-item>
 | 
	
		
			
				|  |  |          <el-button v-if="state.hasPermission('emergency:leaveapplication:delete')" type="danger" @click="state.deleteHandle()">删除</el-button>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  | +      <!-- 审阅 -->
 | 
	
		
			
				|  |  | +       <el-form-item>
 | 
	
		
			
				|  |  | +        <el-button v-if="state.hasPermission('emergency:leaveapplication:review')" type="danger" @click="reviewHandle()">审阅</el-button>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item>
 | 
	
		
			
				|  |  | +        <el-button v-if="state.hasPermission('emergency:leaveapplication:export')" type="info" @click="state.exportHandle()">导出</el-button>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  |      </el-form>
 | 
	
		
			
				|  |  |      <el-table v-loading="state.dataListLoading" :data="state.dataList" border @selection-change="state.dataListSelectionChangeHandle" style="width: 100%">
 | 
	
		
			
				|  |  |        <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="id" label="请假单ID" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -              <el-table-column prop="leaveType" label="请假类型" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  | +              <el-table-column prop="leaveType" label="请假类型" header-align="center" align="center">
 | 
	
		
			
				|  |  | +                <template v-slot="scope">
 | 
	
		
			
				|  |  | +                  {{ state.getDictLabel("askLeave", scope.row.leaveType) }}
 | 
	
		
			
				|  |  | +                </template>
 | 
	
		
			
				|  |  | +              </el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="startTime" label="开始时间" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="endTime" label="结束时间" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -              <el-table-column prop="status" label="审批状态" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  | +              <el-table-column prop="status" label="审批状态" header-align="center" align="center">
 | 
	
		
			
				|  |  | +                <template v-slot="scope">
 | 
	
		
			
				|  |  | +                  {{ state.getDictLabel("approvalStatus", scope.row.status) }}
 | 
	
		
			
				|  |  | +                </template>
 | 
	
		
			
				|  |  | +              </el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="approvalComment" label="审批意见" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="creator" label="创建人" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="updater" label="更新人" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="updateDate" label="更新时间" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  |                <el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -            <el-table-column label="操作" fixed="right" header-align="center" align="center" width="150">
 | 
	
		
			
				|  |  | +            <el-table-column label="操作" fixed="right" header-align="center" align="center" width="180">
 | 
	
		
			
				|  |  |          <template v-slot="scope">
 | 
	
		
			
				|  |  |            <el-button v-if="state.hasPermission('emergency:leaveapplication:update')" type="primary" link @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
 | 
	
		
			
				|  |  |            <el-button v-if="state.hasPermission('emergency:leaveapplication:delete')" type="primary" link @click="state.deleteHandle(scope.row.id)">删除</el-button>
 | 
	
		
			
				|  |  | +          <el-button v-if="state.hasPermission('emergency:leaveapplication:review')" type="primary" link @click="reviewHandle(scope.row.id)">审阅</el-button>
 | 
	
		
			
				|  |  |          </template>
 | 
	
		
			
				|  |  |        </el-table-column>
 | 
	
		
			
				|  |  |      </el-table>
 | 
	
	
		
			
				|  | @@ -37,6 +59,8 @@
 | 
	
		
			
				|  |  |  <script lang="ts" setup>
 | 
	
		
			
				|  |  |  import useView from "@/hooks/useView";
 | 
	
		
			
				|  |  |  import { reactive, ref, toRefs } from "vue";
 | 
	
		
			
				|  |  | +import baseService from "@/service/baseService";
 | 
	
		
			
				|  |  | +import { ElMessage, ElMessageBox } from "element-plus";
 | 
	
		
			
				|  |  |  import AddOrUpdate from "./leaveapplication-add-or-update.vue";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const view = reactive({
 | 
	
	
		
			
				|  | @@ -53,4 +77,38 @@ const addOrUpdateRef = ref();
 | 
	
		
			
				|  |  |  const addOrUpdateHandle = (id?: number) => {
 | 
	
		
			
				|  |  |    addOrUpdateRef.value.init(id);
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 审阅
 | 
	
		
			
				|  |  | +const reviewHandle = (id?: string) => {
 | 
	
		
			
				|  |  | +  if (!id && state.dataListSelections && state.dataListSelections.length <= 0) {
 | 
	
		
			
				|  |  | +    return ElMessage({
 | 
	
		
			
				|  |  | +      message: "请选择操作项",
 | 
	
		
			
				|  |  | +      type: "warning",
 | 
	
		
			
				|  |  | +      duration: 500
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  const reviewData = id 
 | 
	
		
			
				|  |  | +    ? { id: Number(id)} 
 | 
	
		
			
				|  |  | +    : (state.dataListSelections || []).map((item: IObject) => {return { id: item.id};});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  ElMessageBox.confirm("确定进行[审阅]操作?", "提示", {
 | 
	
		
			
				|  |  | +    confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +    cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +    type: "warning"
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  .then(() => {
 | 
	
		
			
				|  |  | +      baseService.put("/emergency/leaveapplication/review", reviewData).then((res) => {
 | 
	
		
			
				|  |  | +        ElMessage.success({
 | 
	
		
			
				|  |  | +          message: "审阅成功",
 | 
	
		
			
				|  |  | +          duration: 500,
 | 
	
		
			
				|  |  | +          onClose: () => {
 | 
	
		
			
				|  |  | +            state.getDataList();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    .catch(() => {
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  |  </script>
 |