Browse Source

Merge branch 'master' of http://47.92.161.104:10080/shuzhan/shinestar-portal

xiao547607 4 years ago
parent
commit
3103cb8a2c

+ 3 - 0
.env.development

@@ -5,6 +5,9 @@ OUT_PUT_DIR=dist/shinestar-portal
 VUE_APP_BACKEND_URL=http://127.0.0.1:8086/shinestar-server
 #VUE_APP_BACKEND_URL=http://xpgjapi.xiaoxinda.com
 
+VUE_APP_LOCAL_IP=127.0.0.1
+VUE_APP_LOCAL_BACKEND_URL=http://127.0.0.1:8086/shinestar-server
+
 #手机企业版
 VUE_APP_COMPANY_HEALTH_WECHAT_QY_URL=http://wisdomhousewechat.sudaonline.net/prevention/motemwall.html 
 #手机校园版

+ 2 - 0
.env.production

@@ -1,6 +1,8 @@
 OUT_PUT_DIR=dist/shinestar-portal
 
 VUE_APP_BACKEND_URL=http://223.75.170.44:6060/shinestar-server
+VUE_APP_LOCAL_IP=173.168.0.188
+VUE_APP_LOCAL_BACKEND_URL=http://173.168.0.188:6060/shinestar-server
 
 #手机企业版
 VUE_APP_COMPANY_HEALTH_WECHAT_QY_URL=http://wisdomhousewechat.sudaonline.net/prevention/motemwall.html 

+ 3 - 0
.env.test

@@ -4,6 +4,9 @@ OUT_PUT_DIR=dist/shinestar-portal
 #VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
 VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/shinestar-server
 
+VUE_APP_LOCAL_IP=127.0.0.1
+VUE_APP_LOCAL_BACKEND_URL=http://127.0.0.1:8086/shinestar-server
+
 #手机企业版
 VUE_APP_COMPANY_HEALTH_WECHAT_QY_URL=http://wisdomhousewechat.sudaonline.net/prevention/motemwall.html 
 

+ 5 - 1
src/api/base/address.js

@@ -5,6 +5,10 @@ function pageList(formData){
   return request.post(constant.serverUrl + "/base/addressInfo/pageList", formData);
 }
 
+function list(){
+  return request.post(constant.serverUrl + "/base/addressInfo/list");
+}
+
 function create(){
   return request.get(constant.serverUrl + "/base/addressInfo/create");
 }
@@ -42,5 +46,5 @@ function batchRemove(idList){
 }
 
 export default {
-  pageList,create,edit,add,update,remove,batchRemove
+  pageList,create,edit,add,update,remove,batchRemove,list
 }

+ 10 - 0
src/routers/index.js

@@ -10,6 +10,7 @@ import { Message } from 'element-ui'
 import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
 import { getToken } from '@/utils/auth' // get token from cookie
+import Constant from "@/constant";
 
 Vue.use(Router)
 
@@ -67,6 +68,15 @@ router.beforeEach((to, from, next) => {
   NProgress.start();
   console.log(`${to.path}`);
 
+  var url = window.location.href;
+
+  var localIP = process.env.VUE_APP_LOCAL_IP;
+
+  if(url.indexOf(localIP)!=-1){
+    console.log("通过内网访问");
+    Constant.serverUrl =  process.env.VUE_APP_LOCAL_BACKEND_URL;
+  }
+
   const hasToken = getToken()
 
   if (hasToken != null) {

+ 13 - 0
src/routers/modules/base.js

@@ -776,6 +776,18 @@ var routers = [
 
                 }
         },
+        {
+                path: '/base/meetingInfo/detail',
+                name: 'BaseMeetingInfoDetail',
+                // route level code-splitting
+                // this generates a separate chunk (about.[hash].js) for this route
+                // which is lazy-loaded when the route is visited.
+                component: () => import('@/views/base/meetingInfo-detail.vue'),
+                meta: {
+                        roles: ["admin"],
+                        title: '会议编辑'
+                }
+        },
         {
                 //外协人员管理
                 path: '/base/personInfo/listOutsourcer',
@@ -787,6 +799,7 @@ var routers = [
                 meta: {
                         roles: ["admin"],
                         title: '外协人员管理'
+
                 }
         },
 

+ 3 - 1
src/views/Login.vue

@@ -136,7 +136,9 @@ export default {
   destroyed() {
     // window.removeEventListener('hashchange', this.afterQRScan)
   },
-  mounted() {}
+  mounted() {
+
+  }
 };
 </script>
 

+ 28 - 0
src/views/base/canteenOutsourcerBalance-list.vue

@@ -21,6 +21,16 @@
       <el-form-item label="工号" prop="jobNumber">
         <el-input type="text" size="mini" v-model="queryModel.jobNumber"></el-input>
       </el-form-item>
+
+      <el-form-item label="部门" prop="companyId">
+        <el-select-tree
+          size="mini"
+          :props="props"
+          :options="companyResult"
+          v-model="queryModel.companyId"
+          height="200"
+        ></el-select-tree>&nbsp;
+      </el-form-item>
       <el-form-item>
         <el-button
           type="primary"
@@ -112,6 +122,8 @@ import canteenOutsourcerBalanceApi from "@/api/base/canteenOutsourcerBalance";
 import pageUtil from "@/utils/page";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
+import SelectTree from "@/components/SelectTree";
+import companyInfoApi from "@/api/base/companyInfo";
 
 export default {
   name: 'BaseCanteenOutsourcerBalanceList',
@@ -122,6 +134,7 @@ export default {
       queryModel: {
         name: "",
         jobNumber:"",
+        companyId:"",
       },
       canteenId:"",
       loading: false,
@@ -171,7 +184,15 @@ export default {
     };
   },
   created() {
+    var self = this;
+    companyInfoApi.outScourcerTreeList().then(function(response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        self.companyResult = jsonData.data;
+      }
+    });
 
+    this.loadTree();
   },
   methods: {
     indexMethod(index) {
@@ -191,6 +212,11 @@ export default {
 
     formData.append("name", self.queryModel.name);
     formData.append("jobNumber", self.queryModel.jobNumber);
+
+    if(self.queryModel.companyId!=null&&self.queryModel.companyId!=""){
+      formData.append("companyId", self.queryModel.companyId);
+    }
+    
     
 
       canteenOutsourcerBalanceApi
@@ -230,6 +256,7 @@ export default {
     },
     handleReset(name) {
       this.$refs[name].resetFields();
+      this.queryModel.companyId = "";
     },
     handleAdd() {
       this.modalTitle = "新增";
@@ -353,6 +380,7 @@ export default {
     "canteenDiningRecord-list": canteenDiningRecordList,
     "canteenOutsourcerRechargeRecord-list": canteenOutsourcerRechargeRecordList,
     "canteenOutsourcerRecharge":canteenOutsourcerRecharge,
+    "el-select-tree": SelectTree,
   }
 };
 </script>

+ 218 - 59
src/views/base/meetingInfo-detail.vue

@@ -1,19 +1,36 @@
 
-<style scoped>
-.user-panel {
-  margin: 10px auto;
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
 }
 </style>
 <template>
-  <el-dialog
-    :visible.sync="showDialog"
-    :title="title"
-    :modal-append-to-body="false"
-    style="text-align: left"
-    @close="closeDialog"
-    :close-on-click-modal="false"
-    width="950px"
-  >
+  <div>
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/meetingInfo">会议管理</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
     <div class="user-panel" v-loading="loading">
       <el-form
         ref="form"
@@ -23,6 +40,7 @@
         :inline="true" 
         class="demo-form-inline"
       >
+      <h4>会议基础信息</h4>
         <el-form-item label="会议编号" prop="number">
           <el-input
             v-model="formModel.number"
@@ -38,67 +56,154 @@
           ></el-input>
         </el-form-item>
         <el-form-item label="会议地点" prop="addressId">
-          <el-input
-            v-model="formModel.addressId"
-            placeholder="请输入详细地址"
-            style="width: 300px"
-          ></el-input>
+          <el-select v-model="formModel.addressId" placeholder="请选择" style="width: 180px">
+            <el-option
+              v-for="item in addressList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+              >
+            </el-option>
+          </el-select>
+           <el-button type="primary" style="margin-left: 20px">添加地点</el-button>
         </el-form-item>
-        <el-form-item label="会议日期" prop="addressId">
+        <el-form-item label="会议日期" prop="meetingDate">
           <el-input
-            v-model="formModel.addressId"
+            v-model="formModel.meetingDate"
             placeholder="请输入详细地址"
             style="width: 300px"
           ></el-input>
         </el-form-item>
-                <el-form-item label="会议内容" prop="addressId">
+                <el-form-item label="会议内容" prop="content">
           <el-input
-            v-model="formModel.addressId"
+            v-model="formModel.content"
             placeholder="请输入详细地址"
             style="width: 300px"
           ></el-input>
         </el-form-item>
-        <el-form-item label="会议备注" prop="addressId">
+        <el-form-item label="会议备注" prop="remark">
           <el-input
-            v-model="formModel.addressId"
+            v-model="formModel.remark"
             placeholder="请输入详细地址"
             style="width: 300px"
           ></el-input>
         </el-form-item>
         <h4>会议配置</h4>
-        <el-table
-        ref="formTable"
-        :data="tableData"
-        v-loading="loading"
-        :element-loading-text="loadingText"
-        stripe
-        :height="tableHeight"
-        >
-        <el-table-column prop="number" label="序号" width="150"></el-table-column>
-        <el-table-column prop="name" label="会议日期" width="200"></el-table-column>
-        <el-table-column prop="name" label="会议时间" width="200"></el-table-column>
-        <el-table-column prop="name" label="会前签到时间" ></el-table-column>
-        <el-table-column prop="name" label="结束签到时间" ></el-table-column>
-        </el-table>
-        <el-divider></el-divider>
-        <h4>添加参会人员</h4>
-        <el-form-item label="部门" prop="number">
-          <el-input
-            v-model="formModel.number"
-            placeholder="请输入会议编号"
-            style="width: 200px"
-          ></el-input>
-        </el-form-item>
 
-        <template>
-            <el-transfer
-                filterable
-                :filter-method="filterMethod"
-                filter-placeholder="请输入城市拼音"
-                v-model="value"
-                :data="data">
-            </el-transfer>
-        </template>
+        <el-table :data="formModel.meetingTimeList">
+            <el-table-column
+              type="index"
+              label="序号"
+              width="55"
+            ></el-table-column>
+            <el-table-column prop="name" label="会议日期" width="270px">
+                <el-form-item>
+                  <el-date-picker
+                    v-model="value1"
+                    type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+            </el-table-column>
+            <el-table-column prop="classify" label="会议时间" width="400px">
+               <el-form-item>
+                <el-time-picker
+                  is-range
+                  v-model="value1"
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  placeholder="选择时间范围">
+                </el-time-picker>
+               </el-form-item>
+            </el-table-column>
+            <el-table-column prop="location" label="会前签到时间" width="400px">
+                <el-form-item>
+                  <el-time-picker
+                    is-range
+                    v-model="value1"
+                    range-separator="至"
+                    start-placeholder="开始时间"
+                    end-placeholder="结束时间"
+                    placeholder="选择时间范围">
+                  </el-time-picker>
+                </el-form-item>
+            </el-table-column>
+            <el-table-column prop="name" label="结束签到时间" width="400px">
+
+                <el-form-item>
+                  <el-time-picker
+                    is-range
+                    v-model="value1"
+                    range-separator="至"
+                    start-placeholder="开始时间"
+                    end-placeholder="结束时间"
+                    placeholder="选择时间范围">
+                  </el-time-picker>
+                </el-form-item>
+            </el-table-column>
+            <el-table-column label="操作" width="150">
+              <template slot-scope="{ row }">
+                <el-form-item>
+                  <i
+                    class="el-icon-delete my-font"
+                    @click="handleDelete(row)"
+                  ></i>
+                  <i class="el-icon-top my-font" @click="handleUp(row)"></i>
+                  <i
+                    class="el-icon-bottom my-font"
+                    @click="handleDown(row)"
+                  ></i>
+                  <i
+                    class="el-icon-document-add my-font"
+                    @click="handleInsert(row)"
+                  ></i>
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <div slot="empty">
+              <el-button
+                icon="el-icon-circle-plus-outline"
+                :plain="true"
+                @click="handleAdd()"
+                >新增</el-button
+              >
+            </div>
+          </el-table>
+
+          <div
+            class="el-table__empty-block"
+            v-if="formModel.meetingTimeList.length != 0"
+          >
+            <el-button icon="el-icon-circle-plus-outline" @click="handleAdd()"
+              >新增</el-button
+            >
+          </div>
+
+        <h4>添加参会人员</h4>
+        <el-row>
+          <el-form-item label="部门" prop="companyInfoId">
+            <el-input
+              v-model="formModel.companyInfoId"
+              placeholder="请输入会议编号"
+              style="width: 200px"
+              size="mini"
+            ></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="添加人员" prop="companyInfoId">
+            <template>
+                <el-transfer
+                    filterable
+                    :filter-method="filterMethod"
+                    filter-placeholder="请输入城市拼音"
+                    v-model="value"
+                    :data="data">
+                </el-transfer>
+            </template>
+          </el-form-item>
+        </el-row>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -107,14 +212,15 @@
         >确 定</el-button
       >
     </span>
-  </el-dialog>
+  </div>
 </template>
 <script>
 import meetingInfoApi from "@/api/base/meetingInfo";
-import dataDictionaryApi from "@/api/sys/dataDictionary";
+import addressInfoApi from "@/api/base/address";
 import "nprogress/nprogress.css"; // progress bar style
 
 export default {
+  name: "baseMeetingDetail",
   props: ["businessKey", "title"],
   data() {
     const generateData = _ => {
@@ -134,10 +240,19 @@ export default {
     return {
         data: generateData(),
         value:[],
-        formModel: {},
+        formModel: {
+          addressId:"",
+          meetingTimeList: [],
+          removeMeetingTimeList: []
+        },
         ruleValidate: {
-            name: [{ required: true, message: "会议地点名称不能为空", trigger: "blur" }],
+            number: [{ required: true, message: "会议编号不能为空", trigger: "blur" }],
+            name: [{ required: true, message: "会议名称不能为空", trigger: "blur" }],
+            addressId: [{ required: true, message: "会议地点不能为空", trigger: "blur" }],
+            meetingDate: [{ required: true, message: "会议地点名称不能为空", trigger: "blur" }],
+
         },
+        addressList:[],
         showDialog: true,
         loading: false,
         submitting: false,
@@ -146,6 +261,15 @@ export default {
         },
     };
   },
+  created() {
+    var self = this;
+    addressInfoApi.list().then(function(response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        self.addressList = jsonData.data;
+      }
+    });
+  },
   methods: {
     closeDialog() {
       this.$emit("close", false);
@@ -185,6 +309,41 @@ export default {
         }
       });
     },
+    handleAdd() {
+      this.formModel.meetingTimeList.push({
+        sortNo: this.formModel.meetingTimeList.length + 1,
+        name: "",
+        routeId: this.businessKey,
+        classify: "",
+        location: "",
+        delFlag: 0,
+      });
+    },
+    handleDelete(row) {
+      var meetingTimeList = this.formModel.meetingTimeList;
+
+      meetingTimeList.splice(meetingTimeList.indexOf(row), 1);
+
+      this.formModel.removeMeetingTimeList.push(row);
+    },
+    handleUp(row) {
+      var meetingTimeList = this.formModel.meetingTimeList;
+      var index = meetingTimeList.indexOf(row);
+
+      if (index > 0) {
+        meetingTimeList.splice(index, 1);
+        meetingTimeList.splice(index - 1, 0, row);
+      }
+    },
+    handleDown(row) {
+      var meetingTimeList = this.formModel.meetingTimeList;
+      var index = meetingTimeList.indexOf(row);
+
+      if (index < meetingTimeList.length - 1) {
+        meetingTimeList.splice(index, 1);
+        meetingTimeList.splice(index + 1, 0, row);
+      }
+    },
   },
   mounted: function () {
     var self = this;

+ 18 - 12
src/views/base/meetingInfo-list.vue

@@ -54,7 +54,7 @@
     </el-form>
     <el-divider></el-divider>
     <el-row class="button-group">
-      <el-button type="primary" size="small" plain icon="el-icon-circle-plus" @click="handleAdd">新增</el-button>
+      <el-button type="primary" size="small" plain icon="el-icon-circle-plus" @click="handleToDetail">新增</el-button>
       <el-button type="success" size="small" plain icon="el-icon-location-information" @click="handleToAddress">会议地点管理</el-button>
     </el-row>
     <el-table
@@ -108,7 +108,7 @@
         <template slot-scope="{row}">
           <el-row>
             <el-col :span="10">
-              <el-link type="primary" @click="handleEdit(row)">编辑</el-link>
+              <el-link type="primary" @click="handleToDetail(row)">编辑</el-link>
             </el-col>
             <el-col :span="10">
               <el-link type="primary" @click="bindDevice(row)">签到详情</el-link>
@@ -133,16 +133,9 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-    <meetingInfo-detail
-      v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
-      @close="onDetailModalClose"
-    ></meetingInfo-detail>
   </div>
 </template>
 <script>
-import meetingInfoDetail from "./meetingInfo-detail";
 import meetingInfoApi from "@/api/base/meetingInfo";
 import dataDictionaryApi from "@/api/sys/dataDictionary";
 import "nprogress/nprogress.css"; // progress bar style
@@ -332,6 +325,22 @@ export default {
         this.changePage(this.pageIndex);
       }
     },
+    handleToDetail(row){
+      var path = "/base/meetingInfo/detail";
+
+      this.$store.dispatch("tagsView/delView", {
+          name: "BaseMeetingInfoDetail",
+          path: path,
+          })
+          .then(({ visitedViews }) => {
+          this.$router.push({
+              path: path,
+              query: {
+                id: row.id,
+              },
+          });
+      });
+    },
     handleToAddress(){
       var path = "/base/addressInfo/list";
 
@@ -351,9 +360,6 @@ export default {
     this.changePage(1);
 
   },
-  components: {
-    "meetingInfo-detail": meetingInfoDetail,
-  }
 };
 </script>
 <style lang="scss" scoped>

+ 70 - 40
src/views/base/roleCheckOn-detail.vue

@@ -64,6 +64,7 @@
         </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
+      <el-button type="danger" @click="handleDelete" v-if="formModel.id!=null">删 除</el-button>
       <el-button @click="closeDialog">取 消</el-button>
       <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
     </span>
@@ -77,7 +78,9 @@ export default {
         return {
             ruleValidate: {
             },
-            formModel:{},
+            formModel:{
+                checkTimeRange: []
+            },
             showDialog: true,
             loading: false,
             submitting: false,
@@ -100,55 +103,77 @@ export default {
         
         },
         handleSubmit() {
-        var self = this;
-        this.$refs["form"].validate(valid => {
-            if (valid) {
-            (function() {
-                
-                if(self.formModel.checkTimeRange.length>0){
-                   self.formModel.checkTimeRange = self.formModel.checkTimeRange[0]+","+self.formModel.checkTimeRange[1];
-                }
-                //alert(JSON.stringify(self.formModel))
-                return rolePersonCheckOnApi.save(self.formModel);
-            })().then(function(response) {
-                var jsonData = response.data;
-
-                if (jsonData.result) {
-                self.$message({
-                    message: "保存成功!",
-                    type: "success"
-                });
+            var self = this;
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                (function() {
+                    var formModel = JSON.parse(JSON.stringify(self.formModel));
 
-                self.$emit("close", {
-                    result : true,
-                    data : jsonData.data
-                });
-                } else {
-                self.$message({
-                    message: jsonData.message + "",
-                    type: "warning"
-                });
+                    if(formModel.checkTimeRange.length>0){
+                        formModel.checkTimeRange = formModel.checkTimeRange[0] +","+ formModel.checkTimeRange[1];
+                    }
+
+                    return rolePersonCheckOnApi.save(formModel);
+                })().then(function(response) {
+                    var jsonData = response.data;
+
+                    if (jsonData.result) {
+                    self.$message({
+                        message: "保存成功!",
+                        type: "success"
+                    });
 
-                self.$emit("close", {
-                    result : false
+                    self.$emit("close", {
+                        result : true,
+                        data : jsonData.data
+                    });
+                    } else {
+                    self.$message({
+                        message: jsonData.message + "",
+                        type: "warning"
+                    });
+
+                    self.$emit("close", {
+                        result : false
+                    });
+                    }
                 });
                 }
             });
-            }
-        });
         },
+        handleDelete() {
+            var self = this;
+
+            self.$confirm("是否确认删除?", "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                self.loading = true;
+                rolePersonCheckOnApi.remove(self.formModel.id).then(function (response) {
+                    var jsonData = response.data;
+                    self.loading = false;
+                    if (jsonData.result) {
+                        self.$message({
+                            type: "success",
+                            message: "删除成功!",
+                        });
+
+                        self.$emit("close", false);
+                    }
+                });
+            })
+            .catch(() => {
+                self.loading = false;
+            });
+        }
     },
     mounted: function() {
         var self = this;
-        (function() {
+
         self.loading = true;
 
-        if (self.businessKey.length == 0) {
-            return rolePersonCheckOnApi.create();
-        } else {
-            return rolePersonCheckOnApi.editRole(self.businessKey);
-        }
-        })()
+        rolePersonCheckOnApi.editRole(self.businessKey)
         .then(response => {
             var jsonData = response.data;
             self.loading = false;
@@ -156,9 +181,14 @@ export default {
             if (jsonData.result) {
                 self.formModel = jsonData.data;
                 var checkTimeRange = new Array();
+
                 checkTimeRange[0]=jsonData.data.checkStartTime;
                 checkTimeRange[1]=jsonData.data.checkEndTime
-                self.formModel.checkTimeRange = checkTimeRange;
+
+                if(checkTimeRange[0]!=null && checkTimeRange[1]!=null){
+                    self.formModel.checkTimeRange = checkTimeRange;
+                }
+
                 self.formModel.rolePerson = 0
 
                 var checkOnTimeFlag = jsonData.data.checkOnTimeFlag;

+ 83 - 56
src/views/base/rolePersonCheckOn-detail.vue

@@ -9,7 +9,7 @@
 <template>
     <el-dialog
     :visible.sync="showDialog"
-    title="出入权限配置"
+    title="出入权限配置123"
     :modal-append-to-body="false"
     style="text-align:left;"
     @close="closeDialog"
@@ -64,8 +64,9 @@
         </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+        <el-button type="danger" @click="handleDelete" v-if="formModel.id!=null">删 除</el-button>
+        <el-button @click="closeDialog">取 消</el-button>
+        <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
     </span>
     </el-dialog>
 </template>
@@ -76,8 +77,11 @@ export default {
     data(){
         return {
             ruleValidate: {
+                
+            },
+            formModel:{
+                checkTimeRange: []
             },
-            formModel:{},
             showDialog: true,
             loading: false,
             submitting: false,
@@ -88,67 +92,86 @@ export default {
             this.$emit("close", false);
         },
         handleClose(tag) {
-        if(this.formModel.personInfoList.length>1){
-            this.formModel.personInfoList.splice(this.formModel.personInfoList.indexOf(tag), 1);
-        }
-        else{
-            this.$message({
-            message: "人员至少保留一位",
-            type: "error"
-            });
-        } 
-        
+            if(this.formModel.personInfoList.length>1){
+                this.formModel.personInfoList.splice(this.formModel.personInfoList.indexOf(tag), 1);
+            }
+            else{
+                this.$message({
+                message: "人员至少保留一位",
+                type: "error"
+                });
+            }
         },
         handleSubmit() {
-        var self = this;
-        this.$refs["form"].validate(valid => {
-            if (valid) {
-            (function() {
-                
-                if(self.formModel.checkTimeRange.length>0){
-                   self.formModel.checkTimeRange = self.formModel.checkTimeRange[0]+","+self.formModel.checkTimeRange[1];
-                }
-                //alert(JSON.stringify(self.formModel))
-                return rolePersonCheckOnApi.save(self.formModel);
-            })().then(function(response) {
-                var jsonData = response.data;
+            var self = this;
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                    (function() {
+                        var formModel = JSON.parse(JSON.stringify(self.formModel));
 
-                if (jsonData.result) {
-                self.$message({
-                    message: "保存成功!",
-                    type: "success"
-                });
+                        if(formModel.checkTimeRange.length>0){
+                            formModel.checkTimeRange = formModel.checkTimeRange[0] +","+ formModel.checkTimeRange[1];
+                        }
 
-                self.$emit("close", {
-                    result : true,
-                    data : jsonData.data
-                });
-                } else {
-                self.$message({
-                    message: jsonData.message + "",
-                    type: "warning"
-                });
+                        return rolePersonCheckOnApi.save(formModel);
+                    })().then(function(response) {
+                        var jsonData = response.data;
 
-                self.$emit("close", {
-                    result : false
-                });
+                        if (jsonData.result) {
+                        self.$message({
+                            message: "保存成功!",
+                            type: "success"
+                        });
+
+                        self.$emit("close", {
+                            result : true,
+                            data : jsonData.data
+                        });
+                        } else {
+                        self.$message({
+                            message: jsonData.message + "",
+                            type: "warning"
+                        });
+
+                        self.$emit("close", {
+                            result : false
+                        });
+                        }
+                    });
                 }
             });
-            }
-        });
-        },
+        },        
+        handleDelete() {
+            var self = this;
+
+            self.$confirm("是否确认删除?", "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                self.loading = true;
+                rolePersonCheckOnApi.remove(self.formModel.id).then(function (response) {
+                    var jsonData = response.data;
+                    self.loading = false;
+                    if (jsonData.result) {
+                        self.$message({
+                            type: "success",
+                            message: "删除成功!",
+                        });
+
+                        self.$emit("close", false);
+                    }
+                });
+            })
+            .catch(() => {
+                self.loading = false;
+            });
+        }
     },
     mounted: function() {
         var self = this;
-        (function() {
-        self.loading = true;
-
-        if (self.businessKey.length == 0) {
-            return rolePersonCheckOnApi.create();
-        } else {
-            return rolePersonCheckOnApi.edit(self.businessKey);
-        }
-        })()
+        
+        rolePersonCheckOnApi.edit(self.businessKey)
         .then(response => {
             var jsonData = response.data;
             self.loading = false;
@@ -158,7 +181,11 @@ export default {
                 var checkTimeRange = new Array();
                 checkTimeRange[0]=jsonData.data.checkStartTime;
                 checkTimeRange[1]=jsonData.data.checkEndTime
-                self.formModel.checkTimeRange = checkTimeRange;
+
+                if(checkTimeRange[0]!=null && checkTimeRange[1]!=null){
+                    self.formModel.checkTimeRange = checkTimeRange;
+                }
+
                 self.formModel.rolePerson = 1
 
                 var checkOnTimeFlag = jsonData.data.checkOnTimeFlag;