浏览代码

字典回显

lzw 4 年之前
父节点
当前提交
eb29943c05
共有 2 个文件被更改,包括 234 次插入134 次删除
  1. 13 0
      src/api/activiti/leave/leave.js
  2. 221 134
      src/views/system/actform/leave/leave.vue

+ 13 - 0
src/api/activiti/leave/leave.js

@@ -0,0 +1,13 @@
+import request from '@/utils/request'
+
+
+
+
+// 新增【请填写功能名称】
+export function addLeave(data) {
+  return request({
+    url: '/system/leave',
+    method: 'post',
+    data: data
+  })
+}

+ 221 - 134
src/views/system/actform/leave/leave.vue

@@ -1,92 +1,141 @@
 <template>
   <div class="app-container">
     <el-row :gutter="15">
-      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" class="qjform">
+      <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px" class="qjform" :data="leaveList">
         <el-col :span="24">
           <h2 align="center">请假单</h2>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="请假人" prop="field101">
-            <el-input v-model="formData.field101" placeholder="请输入请假人" clearable :style="{width: '100%'}">
-            </el-input>
+        <el-form-item label="请假事由" prop="activitiKey"  v-show="false">
+          <el-input v-model="form.activitiKey"></el-input>
+        </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="请假人" prop="leavename">
+            <el-input
+              v-model="form.leavename"
+              placeholder="请输入请假人"
+              clearable
+              size="small"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="部门" prop="field102">
-            <el-input v-model="formData.field102" placeholder="请输入部门" clearable :style="{width: '100%'}">
-            </el-input>
+          <el-form-item label="部门" prop="deptname">
+            <el-input
+              v-model="form.deptname"
+              placeholder="请输入部门"
+              clearable
+              size="small"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="职务" prop="field103">
-            <el-input v-model="formData.field103" placeholder="请输入职务" clearable :style="{width: '100%'}">
-            </el-input>
+          <el-form-item label="职物" prop="positions">
+            <el-input
+              v-model="form.positions"
+              placeholder="请输入职物"
+              size="small"
+              clearable :style="{width: '100%'}"
+
+            />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="请假类别" prop="field106">
-            <el-radio-group v-model="formData.field106" size="medium">
-              <el-radio v-for="(item, index) in field106Options" :key="index" :label="item.value"
-                        :disabled="item.disabled">{{item.label}}
-              </el-radio>
+          <el-form-item label="请假类别" prop="options">
+<!--            <el-radio-group v-model="form.options" size="medium">-->
+<!--              <el-radio v-for="(item, index) in field106Options" :key="index" :label="item.value"-->
+<!--                        :disabled="item.disabled">{{item.label}}-->
+<!--              </el-radio>-->
+<!--            </el-radio-group>-->
+            <el-radio-group v-model="form.options"size="medium">
+              <el-radio
+                v-for="dict in options"
+                :key="dict.dictValue"
+                :label="dict.dictValue"
+              >{{dict.dictLabel}}</el-radio>
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="请假事由" prop="field107">
-            <el-input v-model="formData.field107" type="textarea" placeholder="请输入请假事由"
+          <el-form-item label="请假事由" prop="reason">
+            <el-input v-model="form.reason" type="textarea" placeholder="请输入请假事由"
                       :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="18">
-          <el-form-item label="日期范围" prop="field102">
-            <el-date-picker type="daterange" v-model="formData.field102" format="yyyy-MM-dd"
-                            value-format="yyyy-MM-dd" :style="{width: '100%'}" start-placeholder="开始日期"
-                            end-placeholder="结束日期" range-separator="至" clearable></el-date-picker>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="共" prop="field110">
-            <el-input v-model="formData.field110" placeholder="" show-word-limit clearable
-                      :style="{width: '100%'}">
-              <template slot="append">天</template>
-            </el-input>
-          </el-form-item>
-        </el-col>
+<!--        <el-row :span="24">-->
+          <el-col :span="18">
+            <el-col :span="12">
+              <el-form-item label="请假开始时间" prop="daterange">
+                <!--            <el-date-picker type="daterange" v-model="form.daterange" format="yyyy-MM-dd"-->
+                <!--                            value-format="yyyy-MM-dd" :style="{width: '100%'}" start-placeholder="开始日期"-->
+                <!--                            end-placeholder="结束日期" range-separator="至" clearable></el-date-picker>-->
+                <el-date-picker
+                  v-model="form.daterange"
+                  format="yyyy-MM-dd"
+                  value-format="yyyy-MM-dd"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="请假结束时间" prop="endTime">
+                <el-date-picker
+                  v-model="form.endTime"
+                  format="yyyy-MM-dd"
+                  value-format="yyyy-MM-dd"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="共" prop="statistics">
+              <el-input v-model="form.statistics" placeholder="" show-word-limit clearable
+                        :style="{width: '100%'}">
+                <template slot="append">天</template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+<!--        </el-row>-->
+
         <el-col :span="24">
           <p style="padding-left: 100px;color:#ff4949;">
             1.请假半天可以写0.5不能写0.1,0.2等小数。2.全天假以00:00:00开始以23:59:59结束,下午请假以12:00:00开始</p>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="休息期间联系方式" prop="field111">
-            <el-input v-model="formData.field111" placeholder="请输入休息期间联系方式" clearable
+          <el-form-item label="休息期间联系方式" prop="phone">
+            <el-input v-model="form.phone" placeholder="请输入休息期间联系方式" clearable
                       :style="{width: '100%'}"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="休息期间应急工作委托人" prop="field112">
-            <el-input v-model="formData.field112" placeholder="请输入休息期间应急工作委托人" clearable
+          <el-form-item label="休息期间应急工作委托人" prop="consignor">
+            <el-input v-model="form.consignor" placeholder="请输入休息期间应急工作委托人" clearable
                       :style="{width: '100%'}"></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
-          <el-form-item label="部门主管(经理)意见" prop="field114">
-            <el-input v-model="formData.field114" type="textarea" placeholder="请输入部门主管(经理)意见"
-                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="人力资源部(行政办)意见" prop="field115">
-            <el-input v-model="formData.field115" type="textarea" placeholder="请输入人力资源部(行政办)意见"
-                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="总经理意见" prop="field116">
-            <el-input v-model="formData.field116" type="textarea" placeholder="请输入总经理意见"
-                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>
-          </el-form-item>
-        </el-col>
+
+        <!--        <el-col :span="12">-->
+        <!--          <el-form-item label="部门主管(经理)意见" prop="field114">-->
+        <!--            <el-input v-model="formData.field114" type="textarea" placeholder="请输入部门主管(经理)意见"-->
+        <!--                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
+        <!--        <el-col :span="12">-->
+        <!--          <el-form-item label="人力资源部(行政办)意见" prop="field115">-->
+        <!--            <el-input v-model="formData.field115" type="textarea" placeholder="请输入人力资源部(行政办)意见"-->
+        <!--                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
+        <!--        <el-col :span="12">-->
+        <!--          <el-form-item label="总经理意见" prop="field116">-->
+        <!--            <el-input v-model="formData.field116" type="textarea" placeholder="请输入总经理意见"-->
+        <!--                      :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}"></el-input>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
         <el-col :span="12">
           <p>
             说明: 1.返回公司报到时间为销假时间。 2.所有员工3天及以上请假需总经理批准。 3.本表存人力资源部(行政办)备案。"
@@ -100,109 +149,147 @@
         </el-col>
       </el-form>
     </el-row>
+
+<!--        <el-form-item label="actkey:" prop="mailTheme">-->
+<!--          <el-input v-model="form.actkey" type="textarea" placeholder="" />-->
+<!--        </el-form-item>-->
+
   </div>
 </template>
 <script>
+  import {  addLeave } from "@/api/activiti/leave/leave";
   export default {
+    name: "Leave",
     components: {},
-    props: [],
+    props: {
+      data:'',
+    },
     data() {
       return {
-        formData: {
-          field101: undefined,
-          field102: undefined,
-          field103: undefined,
-          field106: undefined,
-          field107: undefined,
-          field109: null,
-          field110: undefined,
-          field111: undefined,
-          field112: undefined,
-          field114: undefined,
-          field115: undefined,
-          field116: undefined,
-          field119: undefined
+        leaveList: [],
+        form: {
+          leavename: undefined,
+          deptname: undefined,
+          positions: undefined,
+          options: undefined,
+          reason: undefined,
+         daterange: undefined,
+         endTime:undefined,
+        //   daterange : Date.parse(this.form.daterange),
+        //   endTime : Date.parse(this.form.endTime),
+        //   statistics: parseInt((daterange-endTime)/ (1000 * 60 * 60 * 24)),
+          phone: undefined,
+          consignor: undefined,
         },
         rules: {
-          field101: [{
-            required: true,
-            message: '请输入请假人',
-            trigger: 'blur'
-          }],
-          field102: [{
-            required: true,
-            message: '请输入部门',
-            trigger: 'blur'
-          }],
-          field103: [],
-          field106: [{
-            required: true,
-            message: '请假类别不能为空',
-            trigger: 'change'
-          }],
-          field107: [{
-            required: true,
-            message: '请输入请假事由',
-            trigger: 'blur'
-          }],
-          field109: [{
-            required: true,
-            message: '时间范围不能为空',
-            trigger: 'change'
-          }],
-          field110: [],
-          field111: [],
-          field112: [],
-          field114: [],
-          field115: [],
-          field116: [],
-          field119: []
+          leavename: [
+            { required: true, message: "请假人不能为空", trigger: "blur" }
+          ],
+          deptname: [
+            { required: true, message: "部门不能为空", trigger: "blur" }
+          ],
+          positions: [
+            { required: true, message: "职物不能为空", trigger: "blur" }
+          ],
+          options: [
+            { required: true, message: "请假类别不能为空", trigger: "blur" }
+          ],
+          reason: [
+            { required: true, message: "请假事由不能为空", trigger: "blur" }
+          ],
+          daterange: [
+            { required: true, message: "请假开始时间不能为空", trigger: "blur" }
+          ],
+          endTime: [
+            { required: true, message: "请假结束时间不能为空", trigger: "blur" }
+          ],
+          statistics: [
+            { required: true, message: "请假天数不能为空", trigger: "blur" }
+          ],
         },
-        field106Options: [{
-          'label': '病假',
-          'value': 1
-        }, {
-          'label': '事假',
-          'value': 2
-        }, {
-          'label': '年假',
-          'value': 3
-        }, {
-          'label': '婚假',
-          'value': 4
-        }, {
-          'label': '产假',
-          'value': 5
-        }, {
-          'label': '丧假',
-          'value': 6
-        }, {
-          'label': '探亲假',
-          'value': 7
-        }, {
-          'label': '护理假',
-          'value': 8
-        }, {
-          'label': '其他',
-          'value': 9
-        }]
+        options: []
       }
     },
     computed: {},
     watch: {},
     created() {
+      this.form.activitiKey = this.data;
+      this.getList();
     },
     mounted() {
     },
     methods: {
+  //   GetNumberOfDays(date1,date2){//获得天数
+  //   //date1:开始日期,date2结束日期
+  //
+  //   var day = parseInt((a2-a1)/ (1000 * 60 * 60 * 24));//核心:时间戳相减,然后除以天数
+  //    // var a1="12-19-2018";
+  //     //var a2="2019/1/7";
+  //     var b=GetNumberOfDays(a1,a2)
+  //     console.log(b);
+  //     this.getDicts("options").then(response => {
+  //       this.options = response.data;
+  //     });
+  // },
+    getList(){
+      this.getDicts("options").then(response => {
+        this.options = response.data;
+      });
+    },
+
+      // 表单重置
+      reset() {
+        this.form = {
+          id: undefined,
+          leavename: undefined,
+          deptname: undefined,
+          position: undefined,
+          option: undefined,
+          reason: undefined,
+          daterange: undefined,
+          statistics: undefined,
+          phone: undefined,
+          consignor: undefined,
+          createTime: undefined
+        };
+        this.resetForm("form");
+      },
       submitForm() {
-        this.$refs['elForm'].validate(valid => {
-          if (!valid) return
-          // TODO 提交表单
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            // TODO 提交表单
+            this.getDicts("options").then(response => {
+              this.options = response.data;
+            });
+            var a1 = Date.parse(this.form.daterange);
+            var a2 = Date.parse(this.form.endTime);
+          // this.form.statistics=.parse(this.form.daterange)-this.form.endTime.parse()
+            var day = parseInt((a2-a1)/ (1000 * 60 * 60 * 24));//核心:时间戳相减,然后除以天数
+            console.log(a1)
+            console.log(a2)
+            console.log(day)
+            if (day==0){
+              alert(day)
+              this.form.statistics=1;
+              console.log( this.form.statistics)
+            }else{
+              this.form.statistics=day
+              alert(this.form.statistics)
+            }
+            addLeave(this.form).then(response => {
+
+              if (response.code === 200) {
+                console.log(response.code)
+                this.msgSuccess("新增成功");
+                this.resetForm("form");
+              }
+            });
+          }
         })
       },
       resetForm() {
-        this.$refs['elForm'].resetFields()
+        this.form=[];
+        // this.$refs['form'].resetFields()
       }
     }
   }