Przeglądaj źródła

用户登录扫码修复。

tomatozq 4 lat temu
rodzic
commit
9da5ae07cb

+ 30 - 1
src/api/sys/user.js

@@ -64,7 +64,36 @@ function userInfo() {
   return request.get(constant.serverUrl + "/userInfo");
 }
 
+
+function bindWechat(userId) {
+  var formData = new FormData();
+
+  formData.append("expire_seconds", "3600");
+  formData.append("action_name", "QR_STR_SCENE");
+  formData.append("scene_str", process.env.VUE_APP_BIND_WECHAT_CODE + "," + userId);
+
+  return request.post(constant.serverUrl + "/wechat/qrcode/create", formData);
+}
+
+function scanLogin(rnd) {
+  var formData = new FormData();
+
+  formData.append("expire_seconds", "3600");
+  formData.append("action_name", "QR_STR_SCENE");
+  formData.append("scene_str", process.env.VUE_APP_SCAN_CODE_LOGIN + "," + rnd);
+
+  return request.post(constant.serverUrl + "/wechat/qrcode/create", formData);
+}
+
+function queryScanResult(rnd){
+  var formData = new FormData();
+  formData.append("rnd", rnd);
+
+  return request.post(constant.serverUrl + "/qrcode/queryScanResult", formData);
+}
+
+
 export default {
   login, pageList, create, edit, add, update, remove, batchRemove, userInfo,
-  changeUserPassword,changeLoginPassword
+  changeUserPassword,changeLoginPassword,bindWechat,scanLogin,queryScanResult
 }

+ 1 - 3
src/constant.js

@@ -3,7 +3,5 @@ var Constant = {
 	//根据当前环境修改
 	serverUrl:process.env.VUE_APP_BACKEND_URL
 };
-if(false&&process.env.NODE_ENV=='development'){
-	Constant.serverUrl="http://192.168.33.120:8088/jp-housekeeper-server";
-}
+
 export default Constant;

+ 19 - 19
src/routers/modules/base.js

@@ -142,19 +142,19 @@ var routers = [
                         title: '车位申请'
                 }
         },
-		{
-		        //车辆白名单
-		        path: '/base/parkingWhite/list',
-		        name: 'BaseParkingWhiteList',
-		        // 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/parkingWhite-list.vue'),
-		        meta: {
-		                roles: ["admin"],
-		                title: '车辆白名单'
-		        }
-		},
+        {
+                //车辆白名单
+                path: '/base/parkingWhite/list',
+                name: 'BaseParkingWhiteList',
+                // 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/parkingWhite-list.vue'),
+                meta: {
+                        roles: ["admin"],
+                        title: '车辆白名单'
+                }
+        },
         {
                 //围墙报警
                 path: '/base/alarmInfoFence/list',
@@ -563,7 +563,7 @@ var routers = [
                         roles: ["admin"],
                         title: '外勤申请记录'
                 }
-        }, 
+        },
         {
                 path: '/base/checkinInfo/list',
                 name: 'baseCheckinInfo',
@@ -581,7 +581,7 @@ var routers = [
                         roles: ["admin"],
                         title: '收款账户管理'
                 }
-        }, 
+        },
         {
                 path: '/base/returnInfo/list',
                 name: 'baseReturnInfoList',
@@ -590,7 +590,7 @@ var routers = [
                         roles: ["admin"],
                         title: '返乡人员管理'
                 }
-        }, 
+        },
         {
                 path: '/base/approvalConfig/list',
                 name: 'baseApprovalConfigList',
@@ -599,7 +599,7 @@ var routers = [
                         roles: ["admin"],
                         title: '审核层级管理'
                 }
-        },  
+        },
         {
                 path: '/base/workOver/list',
                 name: 'baseWorkOverList',
@@ -608,7 +608,7 @@ var routers = [
                         roles: ["admin"],
                         title: '加班申请记录'
                 }
-        }, 
+        },
         {
                 path: '/base/workSchedule/list',
                 name: 'baseWorkScheduleList',
@@ -697,7 +697,7 @@ var routers = [
                 }
         },
 
-        
+
 ]
 
 export default routers;

+ 35 - 47
src/views/base/parkingCoupon-detail.vue

@@ -20,21 +20,17 @@
         :rules="ruleValidate"
         :label-width="'180px'"
       >
-	  
-	  <el-form-item label="车牌号码" prop="carNumber">
-	    <el-input
-	      v-model="formModel.carNumber"
-	      placeholder="请输入车牌号码"
-	      style="width: 180px"
-	    ></el-input>
-	  </el-form-item>
-       <el-form-item label="授权商户">
-         {{merchantName}}
-       </el-form-item>
-		<el-form-item label="抵扣卷金额">
-		  {{reduce}}元
-		</el-form-item>
-		
+        <el-form-item label="车牌号码" prop="carNumber">
+          <el-input
+            v-model="formModel.carNumber"
+            placeholder="请输入车牌号码"
+            style="width: 180px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="授权商户">
+          {{ merchantName }}
+        </el-form-item>
+        <el-form-item label="抵扣卷金额"> {{ reduce }}元 </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -52,50 +48,45 @@ import dataDictionaryApi from "@/api/sys/dataDictionary";
 import companyInfoApi from "@/api/base/companyInfo";
 
 export default {
-  components: {
-   
-  },
-  props: [ "title", "reduce","merchantName"],
+  components: {},
+  props: ["title", "reduce", "merchantName"],
   data() {
-	  let Capitalization = (rule, value, callback) => {
-	  	this.formModel[rule.field]=value.toUpperCase()
-			 
-	     callback();
-	  };
+    let Capitalization = (rule, value, callback) => {
+      this.formModel[rule.field] = value.toUpperCase();
+
+      callback();
+    };
     return {
-	   myMemberLeaveTime:[{required:true,message:"请选择离场时间", trigger: "blur"}],
+      myMemberLeaveTime: [
+        { required: true, message: "请选择离场时间", trigger: "blur" },
+      ],
       formModel: {
-		  carNumber:"鄂D"
-	  },
+        carNumber: "鄂D",
+      },
       ruleValidate: {
         carNumber: [
           { required: true, message: "车牌号码不能为空", trigger: "blur" },
-		  {
-		  			  validator: Capitalization,
-		  			  trigger:"change"
-		  },
+          {
+            validator: Capitalization,
+            trigger: "change",
+          },
         ],
-     
-		
       },
       showDialog: true,
       loading: false,
       submitting: false,
       typeResult: [],
       companyResult: [],
-	  props: {
-	    // 配置项(必选)
-	    value: "id",
-	    label: "name",
-	    children: "children",
-	  },
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
     };
   },
   created() {
     var self = this;
-
-   
-    
   },
   methods: {
     closeDialog() {
@@ -109,8 +100,7 @@ export default {
           (function () {
             var id = self.formModel.id;
 
-             return parkingCouponApi.pcGiveDiscountTicket(self.formModel);
-             
+            return parkingCouponApi.pcGiveDiscountTicket(self.formModel);
           })().then(function (response) {
             var jsonData = response.data;
 
@@ -134,8 +124,6 @@ export default {
       });
     },
   },
-  mounted: function () {
-    
-  },
+  mounted: function () {},
 };
 </script>

+ 59 - 64
src/views/base/parkingCoupon-list.vue

@@ -26,15 +26,16 @@
           v-model="queryModel.carNum"
         ></el-input>
       </el-form-item>
-	  
-      
-      <el-form-item label="商户名称"  v-show="!detail.enableCoupon" prop="merchantName">
+
+      <el-form-item
+        label="商户名称"
+        v-show="!detail.enableCoupon"
+        prop="merchantName"
+      >
         <el-input
           type="text"
           size="mini"
           v-model="queryModel.merchantName"
-		  
-		 
         ></el-input>
       </el-form-item>
       <el-form-item label="使用状态" prop="useStatus">
@@ -77,16 +78,16 @@
     </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"
-		  v-show="detail.enableCoupon"
-		  >录入车辆</el-button
-		>
-		
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        @click="handleAdd"
+        v-show="detail.enableCoupon"
+        >录入车辆</el-button
+      >
+
       <el-button
         type="primary"
         size="small"
@@ -94,7 +95,8 @@
         icon="el-icon-download"
         :loading="downloadLoading"
         @click="downloadXls"
-      >导出数据</el-button>
+        >导出数据</el-button
+      >
     </el-row>
     <el-table
       :data="tableData"
@@ -115,15 +117,14 @@
         label="车牌号码"
         width="130"
       ></el-table-column>
-	  
-   
+
       <el-table-column
-		v-if="!detail.enableCoupon"
+        v-if="!detail.enableCoupon"
         prop="merchantName"
         label="登记商户"
         width="150"
       ></el-table-column>
-	  <!-- 
+      <!-- 
       <el-table-column prop="useStatus" label="使用状态" width="90">
         <template slot-scope="{ row }">
           <span v-if="row.useStatus">使用</span>
@@ -164,15 +165,13 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-	
-	<parkingCoupon-detail
-	  v-if="showModal"
-	
-	  :merchantName="merchantName"
-	  :reduce="reduce"
-	  @close="onDetailModalClose"
-	></parkingCoupon-detail>
-	
+
+    <parkingCoupon-detail
+      v-if="showModal"
+      :merchantName="merchantName"
+      :reduce="reduce"
+      @close="onDetailModalClose"
+    ></parkingCoupon-detail>
   </div>
 </template>
 <script>
@@ -192,7 +191,7 @@ export default {
     var self = this;
 
     return {
-	  detail:{},
+      detail: {},
       queryModel: {
         id: "",
         merchantName: "",
@@ -239,28 +238,26 @@ export default {
     });
   },
   methods: {
-	 
     indexMethod(index) {
       return (this.pageIndex - 1) * this.pageSize + (index + 1);
     },
-	init(){
-		var self = this;
-		
-		//self.loading = true;
-		
-		parkingCouponApi
-		  .parkingMemberDetail()
-		  .then(function (response) {
-		    //self.loading = false;
-			
-		     self.detail = response.data.data;
-		
-		  })
-		  .catch((error) => {
-		   // self.loading = false;
-		    // self.$message.error(error + "");
-		  });
-	},
+    init() {
+      var self = this;
+
+      //self.loading = true;
+
+      parkingCouponApi
+        .parkingMemberDetail()
+        .then(function (response) {
+          //self.loading = false;
+
+          self.detail = response.data.data;
+        })
+        .catch((error) => {
+          // self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
     changePage(pageIndex) {
       var self = this;
 
@@ -338,7 +335,7 @@ export default {
     handleAdd() {
       this.modalTitle = "录入车辆";
       this.merchantName = this.detail.merchantName;
-	  this.reduce = this.detail.reduce;
+      this.reduce = this.detail.reduce;
       this.showModal = true;
     },
     handleEdit(record) {
@@ -446,21 +443,20 @@ export default {
         formData.append("direction", this.direction);
       }
 
-      parkingCouponApi.exportXls(formData).then(function(response) {
+      parkingCouponApi.exportXls(formData).then(function (response) {
         var jsonData = response.data;
         self.downloadLoading = false;
         self.loading = false;
         if (jsonData.result) {
-            //下载有错误信息提示的报表
-            self.$message({
-              showClose: true,
-              dangerouslyUseHTMLString: true,
-              message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a>&nbsp;`,
-              duration: 60000,
-              type: 'success'
-            });
-        }
-        else{
+          //下载有错误信息提示的报表
+          self.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a>&nbsp;`,
+            duration: 60000,
+            type: "success",
+          });
+        } else {
           self.$message.error(jsonData.message);
         }
       });
@@ -468,11 +464,10 @@ export default {
   },
   mounted: function () {
     this.init();
-	this.changePage(1);
+    this.changePage(1);
   },
   components: {
-    "el-select-tree": SelectTree,
-	"parkingCoupon-detail":ParkingCouponDetail,
+    "parkingCoupon-detail": ParkingCouponDetail,
   },
 };
 </script>

+ 76 - 88
src/views/base/parkingMerchant-detail.vue

@@ -20,13 +20,13 @@
         :rules="ruleValidate"
         :label-width="'120px'"
       >
-	  <el-form-item label="商户名称" prop="merchantName">
-	    <el-input
-	      v-model="formModel.merchantName"
-	      placeholder="请输入商户名称"
-	      style="width: 300px"
-	    ></el-input>
-	  </el-form-item>
+        <el-form-item label="商户名称" prop="merchantName">
+          <el-input
+            v-model="formModel.merchantName"
+            placeholder="请输入商户名称"
+            style="width: 300px"
+          ></el-input>
+        </el-form-item>
         <el-form-item label="所属物业公司" prop="companyId">
           <el-select-tree
             :props="props"
@@ -39,76 +39,66 @@
         </el-form-item>
         <el-form-item label="商户账号" prop="userName">
           <el-input
-		 :disabled="formModel.id!=null"
-		  
+            :disabled="formModel.id != null"
             v-model="formModel.userName"
             placeholder="请输入商户账号"
             style="width: 300px"
           ></el-input>
         </el-form-item>
-		<el-form-item label="商户密码" prop="password">
-		  <el-input
-		    v-model="formModel.password"
-		    placeholder="请输入商户密码"
-		    style="width: 300px"
-		  ></el-input>
-		</el-form-item>
-		
-		
-       
-		<el-row >
-		  <el-col :span="8">
-		    <el-form-item label="停车抵扣券" prop="enableCoupon">
-		      <el-switch
-		        v-model="formModel.enableCoupon"
-		        active-color="#13ce66"
-		        inactive-color="#ff4949"
-		       
-		      ></el-switch>
-			  
-		    </el-form-item>
-		  </el-col>
-		  <el-col :span="16">
-			   <el-form-item label="抵扣券金额" prop="reduce">
-				 <el-input-number
-				 :precision="0"
-				   v-model="formModel.reduce"
-				   placeholder="请输入金额"
-				   style="width: 180px"
-				   :min="1"
-				 ></el-input-number>
-			   </el-form-item>
-		  </el-col>
-		</el-row>
-        <el-row >
+        <el-form-item label="商户密码" prop="password">
+          <el-input
+            v-model="formModel.password"
+            placeholder="请输入商户密码"
+            style="width: 300px"
+          ></el-input>
+        </el-form-item>
+
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="停车抵扣券" prop="enableCoupon">
+              <el-switch
+                v-model="formModel.enableCoupon"
+                active-color="#13ce66"
+                inactive-color="#ff4949"
+              ></el-switch>
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="抵扣券金额" prop="reduce">
+              <el-input-number
+                :precision="0"
+                v-model="formModel.reduce"
+                placeholder="请输入金额"
+                style="width: 180px"
+                :min="1"
+              ></el-input-number>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="8">
             <el-form-item label="车辆白名单" prop="enableMember">
               <el-switch
                 v-model="formModel.enableMember"
                 active-color="#13ce66"
                 inactive-color="#ff4949"
-               
               ></el-switch>
-        	  
             </el-form-item>
           </el-col>
           <el-col :span="16">
-        	   <el-form-item label="离场时间" prop="memberLeaveTime" >
-        		
-				 <el-time-picker
-				     v-model="formModel.memberLeaveTime"
-					  format="HH:mm"
-					  :clearable="false"
-					  value-format="HH:mm"
-					 style="width: 180px"
-				     placeholder="请选择离场时间">
-				   </el-time-picker>
-				   
-        	   </el-form-item>
+            <el-form-item label="离场时间" prop="memberLeaveTime">
+              <el-time-picker
+                v-model="formModel.memberLeaveTime"
+                format="HH:mm"
+                :clearable="false"
+                value-format="HH:mm"
+                style="width: 180px"
+                placeholder="请选择离场时间"
+              >
+              </el-time-picker>
+            </el-form-item>
           </el-col>
         </el-row>
-		
-		
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -133,7 +123,9 @@ export default {
   props: ["businessKey", "title"],
   data() {
     return {
-	   myMemberLeaveTime:[{required:true,message:"请选择离场时间", trigger: "blur"}],
+      myMemberLeaveTime: [
+        { required: true, message: "请选择离场时间", trigger: "blur" },
+      ],
       formModel: {},
       ruleValidate: {
         merchantName: [
@@ -142,26 +134,25 @@ export default {
         companyId: [
           { required: true, message: "所属物业公司不能为空", trigger: "blur" },
         ],
-		userName: [
-		  { required: true, message: "商户账号不能为空", trigger: "blur" }
-		],
+        userName: [
+          { required: true, message: "商户账号不能为空", trigger: "blur" },
+        ],
 
-		password: [
-		  { required: true, message: "商户密码不能为空", trigger: "blur" }
-		],
-		
+        password: [
+          { required: true, message: "商户密码不能为空", trigger: "blur" },
+        ],
       },
       showDialog: true,
       loading: false,
       submitting: false,
       typeResult: [],
       companyResult: [],
-	  props: {
-	    // 配置项(必选)
-	    value: "id",
-	    label: "name",
-	    children: "children",
-	  },
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
     };
   },
   created() {
@@ -175,17 +166,15 @@ export default {
         }
       }
     });
-	if(false){
-		dataDictionaryApi
-		  .findByCatalogName({
-		    catalogName: "优惠券类型",
-		  })
-		  .then((response) => {
-		    var jsonData = response.data;
-		    this.typeResult = jsonData.data;
-		  });
-	}
     
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "优惠券类型",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.typeResult = jsonData.data;
+      });
   },
   methods: {
     closeDialog() {
@@ -243,10 +232,9 @@ export default {
 
         if (jsonData.result) {
           self.formModel = jsonData.data;
-		  if(!self.formModel.memberLeaveTime){
-			  
-			  self.formModel.memberLeaveTime="14:00"
-		  }
+          if (!self.formModel.memberLeaveTime) {
+            self.formModel.memberLeaveTime = "14:00";
+          }
         } else {
           self.$message.error(jsonData.message + "");
         }

+ 55 - 68
src/views/base/parkingMerchant-list.vue

@@ -105,66 +105,62 @@
         :index="indexMethod"
         width="50"
       ></el-table-column>
-	  
-	  <el-table-column
-	    prop="merchantName"
-	    label="商户名称"
-	    width="180"
-	  ></el-table-column>
-	  
+
+      <el-table-column
+        prop="merchantName"
+        label="商户名称"
+        width="180"
+      ></el-table-column>
+
       <el-table-column
         prop="companyName"
         label="所属物业公司"
         width="180"
       ></el-table-column>
-	  
-     
+
       <el-table-column
         prop="userName"
         label="商户账号"
         width="180"
       ></el-table-column>
-	  
-      
-     <el-table-column prop="enableCoupon" label="停车抵用卷" width="200">
-       <template slot-scope="{ row }">
-         <el-switch
-           v-model="row.enableCoupon"
-           active-color="#13ce66"
-           inactive-color="#ff4949"
-           @change="updateEnabled(row)"
-         ></el-switch>
-       </template>
-     </el-table-column>
-	 
+
+      <el-table-column prop="enableCoupon" label="停车抵用卷" width="200">
+        <template slot-scope="{ row }">
+          <el-switch
+            v-model="row.enableCoupon"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            @change="updateEnabled(row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
+
       <el-table-column
         prop="reduce"
         label="抵用卷金额"
         width="180"
       ></el-table-column>
-	  
-	  <el-table-column prop="enableMember" label="车辆白名单" width="200">
-	    <template slot-scope="{ row }">
-	      <el-switch
-	        v-model="row.enableMember"
-	        active-color="#13ce66"
-	        inactive-color="#ff4949"
-	        @change="updateEnabled(row)"
-	      ></el-switch>
-	    </template>
-	  </el-table-column>
-	  <el-table-column
-	    prop="memberLeaveTime"
-	    label="固定离场时间"
-	    width="180"
-	  ></el-table-column>
-	  
+
+      <el-table-column prop="enableMember" label="车辆白名单" width="200">
+        <template slot-scope="{ row }">
+          <el-switch
+            v-model="row.enableMember"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            @change="updateEnabled(row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="memberLeaveTime"
+        label="固定离场时间"
+        width="180"
+      ></el-table-column>
+
       <el-table-column label="操作" width="250" fixed="right">
         <template slot-scope="{ row }">
-          
           <el-row>
             <el-col>
-              
               <el-link type="warning" @click="handleEdit(row)">编辑</el-link>-
               <el-link type="danger" @click="handleDelete(row)">删除</el-link>
             </el-col>
@@ -186,19 +182,16 @@
       :title="modalTitle"
       @close="onDetailModalClose"
     ></parkingMerchant-detail>
-     
-    
-   
   </div>
 </template>
 <script>
 import Constant from "@/constant";
 import ParkingMerchantDetail from "./parkingMerchant-detail";
- 
+
 import parkingMerchantApi from "@/api/base/parkingMerchant";
 import dataDictionaryApi from "@/api/sys/dataDictionary";
- 
- import companyInfoApi from "@/api/base/companyInfo";
+
+import companyInfoApi from "@/api/base/companyInfo";
 import SelectTree from "@/components/SelectTree";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
@@ -239,8 +232,8 @@ export default {
       bindWechatVisible: false,
       bindWechatUrl: "",
       bindWechatLoading: false,
-      showBindMerchantModal:false,
-      merchantId:"",
+      showBindMerchantModal: false,
+      merchantId: "",
     };
   },
   created() {
@@ -254,16 +247,15 @@ export default {
         }
       }
     });
-	if(false){
-		dataDictionaryApi.findByCatalogName({
-		    catalogName: "优惠券类型",
-		  })
-		  .then((response) => {
-		    var jsonData = response.data;
-		    this.typeResult = jsonData.data;
-		  });
-	}
-   
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "优惠券类型",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.typeResult = jsonData.data;
+      });
   },
   methods: {
     indexMethod(index) {
@@ -401,14 +393,10 @@ export default {
         this.changePage(this.pageIndex);
       }
     },
-     
-    
-     
-     
-   
-	updateEnabled(row) {
-	  parkingMerchantApi.update(row);
-	},
+
+    updateEnabled(row) {
+      parkingMerchantApi.update(row);
+    },
   },
   mounted: function () {
     this.changePage(1);
@@ -416,7 +404,6 @@ export default {
   components: {
     "parkingMerchant-detail": ParkingMerchantDetail,
     "el-select-tree": SelectTree,
-    
   },
 };
 </script>

+ 0 - 1
src/views/base/parkingRecord-list.vue

@@ -28,7 +28,6 @@
       </el-form-item>
       <el-form-item label="所属物业公司" prop="companyId">
         <el-select-tree
-          :props="props"
           :options="companyResult"
           v-model="queryModel.companyId"
           height="200"

+ 182 - 194
src/views/base/parkingWhite-detail.vue

@@ -20,68 +20,65 @@
         :rules="ruleValidate"
         :label-width="'180px'"
       >
-	  
-	  <el-form-item label="车牌号码" prop="memberCarNum">
-	    <el-input
-	      v-model="formModel.memberCarNum"
-	      placeholder="请输入车牌号码"
-	      style="width: 180px"
-	    ></el-input>
-	  </el-form-item>
-	  
-	  <el-row >
-	    <el-col :span="8">
-	      <el-form-item label="车主姓名" prop="memberName">
-	         <el-input
-	           v-model="formModel.memberName"
-	           placeholder="请输入车主姓名"
-	           style="width: 180px"
-	         ></el-input>
-	  	  
-	      </el-form-item>
-	    </el-col>
-	    <el-col :span="16">
-	  	   <el-form-item label="联系方式" prop="memberPhone">
-	  	      <el-input
-	  	        v-model="formModel.memberPhone"
-	  	        placeholder="请输入联系方式"
-	  	        style="width: 180px"
-	  	      ></el-input>
-	  	   
-	  	   </el-form-item>
-		   
-	    </el-col>
-	  </el-row>
-	  
-	  
-       <el-form-item label="授权商户">
-         {{merchantName}}
-       </el-form-item>
-	   <el-form-item label="起始时间" v-if="businessKey.length == 0">
-	      {{startTime}}
-	   </el-form-item>
-	   <el-form-item label="起始时间" v-else>
-	     {{formModel.memberStartTime}} 
-	   </el-form-item>
-		
-		<el-form-item label="存放天数" prop="days" v-show="businessKey.length == 0">
-						 <el-input-number
-						 :precision="0"
-						   v-model="formModel.days"
-						   placeholder="存放天数"
-						   style="width: 180px"
-						  
-						   :min="1"
-						 ></el-input-number>
-		</el-form-item>
-		
-		
-		<el-form-item label="结束时间" v-if="businessKey.length == 0">
-		  {{endTime}} {{memberLeaveTime}} 
-		</el-form-item>
-		<el-form-item label="结束时间" v-else>
-		  {{formModel.memberEndTime}}
-		</el-form-item>
+        <el-form-item label="车牌号码" prop="memberCarNum">
+          <el-input
+            v-model="formModel.memberCarNum"
+            placeholder="请输入车牌号码"
+            style="width: 180px"
+          ></el-input>
+        </el-form-item>
+
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="车主姓名" prop="memberName">
+              <el-input
+                v-model="formModel.memberName"
+                placeholder="请输入车主姓名"
+                style="width: 180px"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="联系方式" prop="memberPhone">
+              <el-input
+                v-model="formModel.memberPhone"
+                placeholder="请输入联系方式"
+                style="width: 180px"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-form-item label="授权商户">
+          {{ merchantName }}
+        </el-form-item>
+        <el-form-item label="起始时间" v-if="businessKey.length == 0">
+          {{ startTime }}
+        </el-form-item>
+        <el-form-item label="起始时间" v-else>
+          {{ formModel.memberStartTime }}
+        </el-form-item>
+
+        <el-form-item
+          label="存放天数"
+          prop="days"
+          v-show="businessKey.length == 0"
+        >
+          <el-input-number
+            :precision="0"
+            v-model="formModel.days"
+            placeholder="存放天数"
+            style="width: 180px"
+            :min="1"
+          ></el-input-number>
+        </el-form-item>
+
+        <el-form-item label="结束时间" v-if="businessKey.length == 0">
+          {{ endTime }} {{ memberLeaveTime }}
+        </el-form-item>
+        <el-form-item label="结束时间" v-else>
+          {{ formModel.memberEndTime }}
+        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -99,116 +96,115 @@ import dataDictionaryApi from "@/api/sys/dataDictionary";
 import companyInfoApi from "@/api/base/companyInfo";
 
 export default {
-  components: {
-   
-  },
+  components: {},
+
+  computed: {
+    // 计算属性的 getter
+    endTime: function () {
+      // `this` 指向 vm 实例
 
-    computed: {
-      // 计算属性的 getter
-      endTime: function () {
-        // `this` 指向 vm 实例
-		
-		var date = new Date();
-		var day=this.formModel.days;
-		if(!day){
-			return ""
-		}
-		date.setDate(date.getDate()+day);
-		
-		var year = date.getFullYear();
-		var month = date.getMonth() + 1;
-		if (month < 10) {
-		  month = "0" + month;
-		}
-		var data = date.getDate();
-		if (data < 10) {
-		  data = "0" + data;
-		}
-		
-		
-		
-		
-        return  year + "-" + month + "-" + data;
+      var date = new Date();
+      var day = this.formModel.days;
+      if (!day) {
+        return "";
+      }
+      date.setDate(date.getDate() + day);
+
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      if (month < 10) {
+        month = "0" + month;
+      }
+      var data = date.getDate();
+      if (data < 10) {
+        data = "0" + data;
       }
+
+      return year + "-" + month + "-" + data;
     },
-	
-  props: [ "title", "businessKey","memberLeaveTime","merchantName"],
+  },
+
+  props: ["title", "businessKey", "memberLeaveTime", "merchantName"],
   data() {
-	  let Capitalization = (rule, value, callback) => {
-		
-		  this.formModel[rule.field]=value.toUpperCase()
-	     callback();
-	  };
-	  let checkPhone = (rule, value, callback) => {
-	    if (!value) {
-	      callback();
-	    } else {
-	      const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
-	      console.log(reg.test(value));
-	      if (reg.test(value)) {
-	        callback();
-	      } else {
-	        return callback(new Error("请输入正确的手机号"));
-	      }
-	    }
-	  };
+    let Capitalization = (rule, value, callback) => {
+      this.formModel[rule.field] = value.toUpperCase();
+      callback();
+    };
+    let checkPhone = (rule, value, callback) => {
+      if (!value) {
+        callback();
+      } else {
+        const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
+        console.log(reg.test(value));
+        if (reg.test(value)) {
+          callback();
+        } else {
+          return callback(new Error("请输入正确的手机号"));
+        }
+      }
+    };
     return {
-	   myMemberLeaveTime:[{required:true,message:"请选择离场时间", trigger: "blur"}],
+      myMemberLeaveTime: [
+        { required: true, message: "请选择离场时间", trigger: "blur" },
+      ],
       formModel: {
-		  memberCarNum:"鄂D"
-	  },
-	 // endTime:"",
+        memberCarNum: "鄂D",
+      },
+      // endTime:"",
       ruleValidate: {
         memberCarNum: [
           { required: true, message: "车牌号码不能为空", trigger: "blur" },
-		  { 
-			  validator: Capitalization,
-			  trigger:"change"
-		  },
-		  
-		  
+          {
+            validator: Capitalization,
+            trigger: "change",
+          },
+        ],
+        memberPhone: [
+          {
+            validator: checkPhone,
+            trigger: "blur",
+          },
         ],
-		memberPhone: [
-		  
-		  {
-		    validator: checkPhone,
-		    trigger: "blur"
-		  }
-		],
       },
-	  startTime:{},
- 
+      startTime: {},
+
       showDialog: true,
       loading: false,
       submitting: false,
       typeResult: [],
       companyResult: [],
-	  props: {
-	    // 配置项(必选)
-	    value: "id",
-	    label: "name",
-	    children: "children",
-	  },
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
     };
   },
   created() {
     var self = this;
-	
-	  var date = new Date();
-      var year = date.getFullYear();
-      var month = date.getMonth() + 1;
-      if (month < 10) {
-        month = "0" + month;
-      }
-      var data = date.getDate();
-      if (data < 10) {
-        data = "0" + data;
-      }
 
-      this.startTime = year + "-" + month + "-" + data+" "+date.getHours()+":"+date.getMinutes();
+    var date = new Date();
+    var year = date.getFullYear();
+    var month = date.getMonth() + 1;
+    if (month < 10) {
+      month = "0" + month;
+    }
+    var data = date.getDate();
+    if (data < 10) {
+      data = "0" + data;
+    }
 
-   
-    
+    this.startTime =
+      year +
+      "-" +
+      month +
+      "-" +
+      data +
+      " " +
+      date.getHours() +
+      ":" +
+      date.getMinutes();
   },
   methods: {
     closeDialog() {
@@ -218,19 +214,14 @@ export default {
       var self = this;
 
       this.$refs["form"].validate((valid) => {
-		  
         if (valid) {
           (function () {
-          
-			
-			if (self.businessKey.length == 0) {
-				return parkingWhiteApi.pcGiveParkingMember(self.formModel);
-			} else {
-				   self.formModel.id=self.businessKey;
-				return parkingWhiteApi.editsubmit(self.formModel);
-			}
-			
-             
+            if (self.businessKey.length == 0) {
+              return parkingWhiteApi.pcGiveParkingMember(self.formModel);
+            } else {
+              self.formModel.id = self.businessKey;
+              return parkingWhiteApi.editsubmit(self.formModel);
+            }
           })().then(function (response) {
             var jsonData = response.data;
 
@@ -255,41 +246,38 @@ export default {
     },
   },
   mounted: function () {
-    
-      var self = this;
-    
-      (function () {
-        if (self.businessKey.length == 0) {
-          return parkingWhiteApi.create();
-        } else {
-          return parkingWhiteApi.edit(self.businessKey);
-        }
-      })()
-        .then((response) => {
-          var jsonData = response.data;
-		  
-          self.loading = false;
-    
-          if (jsonData.result) {
-			    if (self.businessKey.length == 0) {
-					 self.formModel = jsonData.data;
-				}else{
-					
-					 self.formModel = jsonData.data.data[0];
-				}
-           
-			//self.formModel.days=null;
-    		  if(!self.formModel.memberCarNum){
-				  
-    			  self.formModel.memberCarNum="鄂D"
-    		  }
+    var self = this;
+
+    (function () {
+      if (self.businessKey.length == 0) {
+        return parkingWhiteApi.create();
+      } else {
+        return parkingWhiteApi.edit(self.businessKey);
+      }
+    })()
+      .then((response) => {
+        var jsonData = response.data;
+
+        self.loading = false;
+
+        if (jsonData.result) {
+          if (self.businessKey.length == 0) {
+            self.formModel = jsonData.data;
           } else {
-            self.$message.error(jsonData.message + "");
+            self.formModel = jsonData.data.data[0];
+          }
+
+          //self.formModel.days=null;
+          if (!self.formModel.memberCarNum) {
+            self.formModel.memberCarNum = "鄂D";
           }
-        })
-        .catch((error) => {
-          self.$message.error(error + "");
-        });
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch((error) => {
+        self.$message.error(error + "");
+      });
   },
 };
 </script>

+ 110 - 151
src/views/base/parkingWhite-list.vue

@@ -26,12 +26,15 @@
           v-model="queryModel.carNumber"
         ></el-input>
       </el-form-item>
-     
-      <el-form-item label="商户名称" v-show="!detail.enableMember" prop="merchantName">
+
+      <el-form-item
+        label="商户名称"
+        v-show="!detail.enableMember"
+        prop="merchantName"
+      >
         <el-input
           type="text"
           size="mini"
-		  
           v-model="queryModel.merchantName"
         ></el-input>
       </el-form-item>
@@ -55,23 +58,21 @@
         >
         </el-date-picker>
       </el-form-item>
-	  
-	  
-	  <el-form-item label="截止时间" prop="endTime">
-	    <el-date-picker
-	      v-model="queryModel.endTime"
-	      type="daterange"
-	      size="mini"
-	      range-separator="至"
-	      start-placeholder="开始时间"
-	      end-placeholder="结束时间"
-	      placeholder="选择时间范围"
-	      value-format="yyyy-MM-dd"
-	    >
-	    </el-date-picker>
-	  </el-form-item>
-	  
-	  
+
+      <el-form-item label="截止时间" prop="endTime">
+        <el-date-picker
+          v-model="queryModel.endTime"
+          type="daterange"
+          size="mini"
+          range-separator="至"
+          start-placeholder="开始时间"
+          end-placeholder="结束时间"
+          placeholder="选择时间范围"
+          value-format="yyyy-MM-dd"
+        >
+        </el-date-picker>
+      </el-form-item>
+
       <el-form-item>
         <el-button
           type="primary"
@@ -92,16 +93,16 @@
     </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"
-		  v-show="detail.enableMember"
-		  >录入车辆</el-button
-		>
-		
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        @click="handleAdd"
+        v-show="detail.enableMember"
+        >录入车辆</el-button
+      >
+
       <el-button
         type="primary"
         size="small"
@@ -109,7 +110,8 @@
         icon="el-icon-download"
         :loading="downloadLoading"
         @click="downloadXls"
-      >导出数据</el-button>
+        >导出数据</el-button
+      >
     </el-row>
     <el-table
       :data="tableData"
@@ -119,12 +121,12 @@
       @sort-change="sortChange"
       @selection-change="handleSelectionChange"
     >
-     <el-table-column
-       type="index"
-       label="序号"
-       :index="indexMethod"
-       width="50"
-     ></el-table-column>
+      <el-table-column
+        type="index"
+        label="序号"
+        :index="indexMethod"
+        width="50"
+      ></el-table-column>
       <el-table-column
         prop="memberCarNum"
         label="车牌号码"
@@ -134,14 +136,12 @@
         prop="merchantName"
         label="所属商户"
         width="180"
-		v-if="!detail.enableMember"
+        v-if="!detail.enableMember"
       ></el-table-column>
- 
+
       <el-table-column prop="statusName" label="当前状态" width="90">
-      
       </el-table-column>
-	  
-    
+
       <el-table-column
         prop="memberStartTime"
         label="生效时间"
@@ -152,20 +152,17 @@
         label="截止时间"
         width="180"
       ></el-table-column>
-	  
-	  <el-table-column label="操作" width="250" fixed="right">
-	    <template slot-scope="{ row }">
-	      
-	      <el-row>
-	        <el-col>
-	          
-	          <el-link type="warning" @click="handleEdit(row)">编辑</el-link>-
-	          <el-link type="danger" @click="handleDelete(row)">删除</el-link>
-	        </el-col>
-	      </el-row>
-	    </template>
-	  </el-table-column>
-	  
+
+      <el-table-column label="操作" width="250" fixed="right">
+        <template slot-scope="{ row }">
+          <el-row>
+            <el-col>
+              <el-link type="warning" @click="handleEdit(row)">编辑</el-link>-
+              <el-link type="danger" @click="handleDelete(row)">删除</el-link>
+            </el-col>
+          </el-row>
+        </template>
+      </el-table-column>
     </el-table>
     <el-pagination
       :current-page.sync="pageIndex"
@@ -175,22 +172,21 @@
       @size-change="pageSizeChange"
       layout="total, sizes, prev, pager, next, jumper"
     ></el-pagination>
-	
-	<parkingWhite-detail
-	  v-if="showModal"
-		:businessKey="businessKey"
-	  :merchantName="detail.merchantName"
-	  :memberLeaveTime="detail.memberLeaveTime"
-	  @close="onDetailModalClose"
-	></parkingWhite-detail>
-	
+
+    <parkingWhite-detail
+      v-if="showModal"
+      :businessKey="businessKey"
+      :merchantName="detail.merchantName"
+      :memberLeaveTime="detail.memberLeaveTime"
+      @close="onDetailModalClose"
+    ></parkingWhite-detail>
   </div>
 </template>
 <script>
 import Constant from "@/constant";
 import parkingWhiteApi from "@/api/base/parkingWhite";
 
- import dataDictionaryApi from "@/api/sys/dataDictionary";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
 import companyInfoApi from "@/api/base/companyInfo";
 import SelectTree from "@/components/SelectTree";
 import NProgress from "nprogress"; // progress bar
@@ -204,15 +200,15 @@ export default {
     var self = this;
 
     return {
-	  detail:{},
+      detail: {},
       queryModel: {
         id: "",
-		carNumber:"",
+        carNumber: "",
         merchantName: "",
-   
+
         startTime: ["", ""],
-		endTime: ["", ""],
-        status	: "",
+        endTime: ["", ""],
+        status: "",
       },
       loading: false,
       tableData: [],
@@ -240,62 +236,33 @@ export default {
   },
   created() {
     var self = this;
-
-  
   },
   methods: {
-	 handleEdit(record) {
-	   this.modalTitle = "编辑";
-	   this.businessKey = record.id;
-	   this.showModal = true;
-	 },
-	 handleDelete(record) {
-	   var self = this;
-	 
-	   self
-	     .$confirm("是否确认删除?", "提示", {
-	       confirmButtonText: "确定",
-	       cancelButtonText: "取消",
-	       type: "warning",
-	     })
-	     .then(() => {
-	       parkingWhiteApi.remove(record.id).then(function (response) {
-	         var jsonData = response.data;
-	 
-	         if (jsonData.result) {
-	           // var index = self.tableData.indexOf(record);
-	           // self.tableData.splice(index, 1);
-	           self.changePage(self.pageIndex);
-	 
-	           self.$message({
-	             type: "success",
-	             message: "删除成功!",
-	           });
-	         }
-	       });
-	     });
-	 },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
     indexMethod(index) {
       return (this.pageIndex - 1) * this.pageSize + (index + 1);
     },
-	init(){
-		var self = this;
-		
-		//self.loading = true;
-		
-		parkingWhiteApi
-		  .parkingMemberDetail()
-		  .then(function (response) {
-		    //self.loading = false;
-			
-		     self.detail = response.data.data;
-		
-		  })
-		  .catch((error) => {
-		   // self.loading = false;
-		    // self.$message.error(error + "");
-		  });
-	},
+    init() {
+      var self = this;
+
+      //self.loading = true;
+
+      parkingWhiteApi
+        .parkingMemberDetail()
+        .then(function (response) {
+          //self.loading = false;
+
+          self.detail = response.data.data;
+        })
+        .catch((error) => {
+          // self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
     changePage(pageIndex) {
       var self = this;
 
@@ -309,27 +276,26 @@ export default {
 
       formData.append("id", self.queryModel.id);
       formData.append("merchantName", self.queryModel.merchantName);
- 
-  
+
       formData.append("carNumber", self.queryModel.carNumber);
       formData.append("verifyTime", self.queryModel.verifyTime);
 
-      if (self.queryModel.startTime&&self.queryModel.startTime[0] != null) {
+      if (self.queryModel.startTime && self.queryModel.startTime[0] != null) {
         formData.append("startTime1", self.queryModel.startTime[0]);
       }
 
-      if (self.queryModel.startTime&&self.queryModel.startTime[1] != null) {
+      if (self.queryModel.startTime && self.queryModel.startTime[1] != null) {
         formData.append("startTime2", self.queryModel.startTime[1]);
       }
 
-   if (self.queryModel.endTime&&self.queryModel.endTime[0] != null) {
+      if (self.queryModel.endTime && self.queryModel.endTime[0] != null) {
         formData.append("endTime1", self.queryModel.endTime[0]);
       }
 
-      if (self.queryModel.endTime&&self.queryModel.endTime[1] != null) {
+      if (self.queryModel.endTime && self.queryModel.endTime[1] != null) {
         formData.append("endTime2", self.queryModel.endTime[1]);
       }
-	  
+
       formData.append("status", self.queryModel.status);
 
       if (this.field != null) {
@@ -377,15 +343,10 @@ export default {
     },
     handleAdd() {
       this.modalTitle = "录入车辆";
-	  this.businessKey = "";
-	  
+      this.businessKey = "";
+
       this.merchantName = this.detail.merchantName;
-	  this.reduce = this.detail.reduce;
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
+      this.reduce = this.detail.reduce;
       this.showModal = true;
     },
     handleDelete(record) {
@@ -488,21 +449,20 @@ export default {
         formData.append("direction", this.direction);
       }
 
-      parkingWhiteApi.exportXls(formData).then(function(response) {
+      parkingWhiteApi.exportXls(formData).then(function (response) {
         var jsonData = response.data;
         self.downloadLoading = false;
         self.loading = false;
         if (jsonData.result) {
-            //下载有错误信息提示的报表
-            self.$message({
-              showClose: true,
-              dangerouslyUseHTMLString: true,
-              message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a>&nbsp;`,
-              duration: 60000,
-              type: 'success'
-            });
-        }
-        else{
+          //下载有错误信息提示的报表
+          self.$message({
+            showClose: true,
+            dangerouslyUseHTMLString: true,
+            message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a>&nbsp;`,
+            duration: 60000,
+            type: "success",
+          });
+        } else {
           self.$message.error(jsonData.message);
         }
       });
@@ -510,11 +470,10 @@ export default {
   },
   mounted: function () {
     this.init();
-	this.changePage(1);
+    this.changePage(1);
   },
   components: {
-    "el-select-tree": SelectTree,
-	"parkingWhite-detail":ParkingWhiteDetail,
+    "parkingWhite-detail": ParkingWhiteDetail,
   },
 };
 </script>