|
@@ -0,0 +1,178 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-dialog title="提交审核" :visible.sync="visible" width="500px" append-to-body destroy-on-close
|
|
|
+ :close-on-click-modal="false" :before-close="handleClose">
|
|
|
+ <div>
|
|
|
+ 文件信息
|
|
|
+ <hr>
|
|
|
+ <el-form :model="fileForm" ref="fileForm" label-width="120px" >
|
|
|
+ <el-form-item label="文件名称:" prop="referencesName">
|
|
|
+ <el-input v-model="fileForm.referencesName" placeholder="请输入文件名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注:" prop="remark">
|
|
|
+ <el-input v-model="fileForm.remark" placeholder="请输入备注" type="textarea"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 任务信息
|
|
|
+ <hr>
|
|
|
+ <el-form :model="taskForm" :rules="TaskRules" ref="form" label-width="120px">
|
|
|
+ <el-form-item label="任务名称:" prop="name">
|
|
|
+ <el-input v-model="taskForm.name" type="text" placeholder="请输入任务名称" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审核人:" prop="handlerName">
|
|
|
+ <el-autocomplete v-model="taskForm.handlerName" value-key="name" v-SelectLazyLoading="personnelLoad"
|
|
|
+ :fetch-suggestions="querySearchPersonnel" placeholder="请输入审核人(外部审核人请直接输入邮箱)" :trigger-on-focus="false"
|
|
|
+ @select="handleSelectPersonnel" @blur="handleBlur(taskForm.handlerName)" style="width: 100%;"></el-autocomplete>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="截止日期:" prop="deadLineTime">
|
|
|
+ <el-date-picker style="width:100%" v-model="taskForm.deadLineTime" value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ type="datetime" placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注:" prop="description">
|
|
|
+ <el-input v-model="taskForm.description" type="textarea" placeholder="输入备注" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="handleClose">取 消</el-button>
|
|
|
+ <el-button type="primary" :loading="btnLoading" @click="submit">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ components: {},
|
|
|
+ props: {},
|
|
|
+ data() {
|
|
|
+ const isTime = (rule, value, callback) => {
|
|
|
+ if (this.isEndTime) {
|
|
|
+ this.isEndTimes = Date.parse(new Date)
|
|
|
+ }
|
|
|
+
|
|
|
+ let b = Date.parse(value)
|
|
|
+ if (value) {
|
|
|
+ if (b < this.isEndTimes) {
|
|
|
+ callback(new Error('禁止选择现在及以前时间,请重新选择'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback(new Error('请选择时间'))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ visible:false,
|
|
|
+ fileForm:{},
|
|
|
+ btnLoading:false,
|
|
|
+ taskForm:{},
|
|
|
+ isEndTime: true,
|
|
|
+ isEndTimes: null,
|
|
|
+ // 任务表单校验
|
|
|
+ TaskRules: {
|
|
|
+ name: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],
|
|
|
+ handlerName: [{ required: true, message: '请选择审核人', trigger: 'change' },],
|
|
|
+ deadLineTime: [{ required: true, validator: isTime, trigger: 'change' }],
|
|
|
+ },
|
|
|
+ //人员列表懒加载
|
|
|
+ personnelList: {
|
|
|
+ queryParams: {
|
|
|
+ current: 1,
|
|
|
+ size: 10
|
|
|
+ },
|
|
|
+ loading: false,
|
|
|
+ name: '',
|
|
|
+ data: [],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {},
|
|
|
+ computed: {},
|
|
|
+ created() {},
|
|
|
+ mounted() {},
|
|
|
+ methods: {
|
|
|
+ open(form = {}){
|
|
|
+ this.fileForm = form
|
|
|
+ if(this.fileForm.referencesName){
|
|
|
+ this.$set(this.taskForm,'name',this.fileForm.referencesName+'文件审核')
|
|
|
+ }
|
|
|
+ this.visible = true
|
|
|
+ },
|
|
|
+ handleClose(){
|
|
|
+ this.$refs.form.resetFields()
|
|
|
+ this.visible = false
|
|
|
+ this.taskForm = {}
|
|
|
+ },
|
|
|
+ submit(){
|
|
|
+ this.btnLoading = true
|
|
|
+ if (this.taskForm.handlerName.includes('@')) {//是邮箱为1
|
|
|
+ this.taskForm.handlerType = 1
|
|
|
+ } else {//是id为0
|
|
|
+ this.taskForm.handlerType = 0
|
|
|
+ }
|
|
|
+ var params = {
|
|
|
+ fileForm:this.fileForm,
|
|
|
+ taskForm:this.taskForm
|
|
|
+ }
|
|
|
+ this.$api.saveNewFile(params).then(response=>{
|
|
|
+ if(response.code == 200){
|
|
|
+ this.$message.success('新文件保存成功')
|
|
|
+ this.btnLoading = false
|
|
|
+ this.handleClose()
|
|
|
+ }
|
|
|
+ }).catch(error=>{
|
|
|
+ this.btnLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 人员
|
|
|
+ */
|
|
|
+ // 懒加载人员方法
|
|
|
+ personnelLoad() {
|
|
|
+ if (this.personnelList.queryParams.current * this.personnelList.queryParams.size >= this.personnelList.queryParams.total) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ this.personnelList.queryParams.current++
|
|
|
+ this.questionPersonnel()
|
|
|
+ },
|
|
|
+ // 查询人员
|
|
|
+ async questionPersonnel() {
|
|
|
+ let params = {
|
|
|
+ ...this.personnelList.queryParams,
|
|
|
+ name:this.personnelList.name
|
|
|
+ }
|
|
|
+ await this.$api.getPermissionPersonnel(params).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.personnelList.data.push(...res.data)
|
|
|
+ this.personnelList.queryParams.total = res.pageColumn.total
|
|
|
+ this.personnelList.cb(this.personnelList.data);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //获取下拉建议人员数据
|
|
|
+ async querySearchPersonnel(queryString, cb) {
|
|
|
+ this.personnelList.queryParams.current = 1
|
|
|
+ this.personnelList.name = queryString
|
|
|
+ this.personnelList.data = []
|
|
|
+ this.personnelList.cb = cb
|
|
|
+ await this.questionPersonnel()
|
|
|
+ },
|
|
|
+ // 人员输入框失焦
|
|
|
+ handleBlur(val) {
|
|
|
+ if (this.taskForm.handlerName && this.taskForm.handlerName.includes('@')) {
|
|
|
+ this.taskForm.handler = val
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 人员输入框选择
|
|
|
+ handleSelectPersonnel(val) {
|
|
|
+ this.taskForm.handler=val.id
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+</style>
|